Dissectable functors.
Based on work by Conor McBride and Phil Freeman.
Dissectable functors in PureScript.