Thu Jul 23 22:04:19 EDT 2015

Representation type constructor

This (phantom type?) trick doesn't pop up any more.  Why?

    class (Repr r, Monad m) => DataRing m r t | r -> m where
      add  :: r t -> r t -> m (r t) 

I believe the point of that was exactly to embed constructors:

    r (x, y) <-> (r x, r y)

I got this out of one of Charette / Kiseljov papers..
Maybe the "finally tagless" papers.