Talk:Bruijndejx

I/O Monad
Maybe it can make a codensity monad to use as I/O monad (including the same definitions for fmap/return/join as codensity monads have): stop = [*]; putZero = PutZero BruijndejxIO | PutOne BruijndejxIO | GetBit BruijndejxIO BruijndejxIO BruijndejxIO; data BruijndejxBit = Zero | One | EOF; type BruijndejxIO_Monad = Cont BruijndejxIO; stop = cont $ const Stop; putZero = cont $ \f -> PutZero (f ); putOne = cont $ \f -> PutOne (f ); getBit = cont $ \f -> GetBit (f Zero) (f One) (f EOF); --[[User:Zzo38|Zzo38 (talk) 06:01, 11 August 2012 (UTC)