Am 05.02.2008 um 21:27 schrieb Dan Weston:

Matthew,

Your SuperMonad seems remarkably similar to Gabor Greif's Thrist datatype [1,2] reported only six days ago on this list [3].

Can you compare/contrast your class approach with his polymorphic type approach? Or have I completely confused the two because of the similar kind of their arguments?

    data Thrist :: (* -> * -> *) -> * -> * -> * where
    Nil :: Thrist p a a
    Cons :: p a b -> Thrist p b c -> Thrist p a c

    data Arrow' :: (* -> * -> *) -> * -> * -> * where
    Arr :: Arrow a => a b c -> Arrow' a b c
    First :: Arrow a => Arrow' a b c -> Arrow' a (b, d) (c, d)


For the record, I have done the monad into thrist embedding now:

http://heisenbug.blogspot.com/2008/02/embeddings-part-two-monad- thrist.html

Will start pondering about mfix and restricted monads now.

Cheers,

        Gabor

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to