May. 24th, 2008

migmit: (Default)

newtype Foo t a b = Foo ((b -> t) -> a -> t)
data BlaBlaBla t q r a b = BlaBlaBla (Foo t a b) (a -> Either b ((q, Foo t a b), BlaBlaBla (q, Foo t a b) r r b))

И вот на этом надо задать (>>>) :: BlaBlaBla t q r a b -> BlaBlaBla t q r b c -> BlaBlaBla t q r a c. Кто там вякал про ублюдочный код на C++?

P.S.: Очень помогает правило: если при сборке результата функции остались лишние аргументы - значит, вы что-то делаете не так.

Originally posted on migmit.vox.com