haskell - объясните, где в коде ошибка
mainMonad = {(mainMonad x) >>= (k.mainMonad)}что-то непонятное с фигурной скобкой.
data ActionMonadT m a = ActionMonadC{mainMonad :: m a}
instance (Monad c) => Monad (ActionMonadT c) where
x >>= k = ActionMonadC{
mainMonad = mainMonad x) >>= (mainMonad . k
}
return a = ActionMonadC{
mainMonad = return a
}
У меня компилится.
всё ясно, оператор (.) неправильно я понял
Оставить комментарий
yroslavasako
пытался составить монаду - не получилось из-за ошибки, стал её упрощать - упростил до идентити, а ошибка осталась. Что хотел: чтобы монада хранила внутри себя монаду и применяла её при обработке всех процедур.
Что получилось: ошибка
Что хочу от форума - чтобы объяснили, где косяк в синтаксисе.