migmit: (Default)
[personal profile] migmit

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

Date: 2008-05-24 06:21 pm (UTC)
From: [identity profile] zamotivator.livejournal.com
Чем-то на http://zabivator.livejournal.com/271987.html?format=light#cutid1 похоже...

Date: 2008-05-24 06:25 pm (UTC)
From: [identity profile] migmit.vox.com (from livejournal.com)
О! Точно, именно этого ублюдка я и имел в виду.

Date: 2008-05-25 03:26 pm (UTC)
From: [identity profile] vanja-y.livejournal.com
У третьего BlaBlaBla вроде пять аргументов должно быть?

Date: 2008-05-25 03:32 pm (UTC)
From: [identity profile] migmit.vox.com (from livejournal.com)
Да, первый t забыл. На самом деле, он фиксированный. А ещё на самом деле, этот тип неправильный - нефиксированных аргументов тоже должно быть пять.