Thu May 16 09:27:12 EDT 2019

exposing functor structure

A pattern that tends to happen a lot when exploring how to represent

1. Start with an ad-hoc data type

2. Write a generalized fold for it

3. Factor it out such that the Functor structure is exposed,
   i.e. separate structure from content. This then yields Foldabale
   and Traversable.