Извините, если вопрос кажется немного тривиальным ... это не для меня. Я счастливо составил следующий монад:
type SB i a = ReaderT ( AlgRO i ) (State ( AlgState i ) ) a
, который, ну, хорошо себя ведет монад. Readert - это монадский трансформер, и государство является государственным монадом, и ALGRO и ALGSTATE являются параметризованными дататками в i для соревнований и состояния только для чтения соответственно. Теперь, если я хочу сделать из этого аккуратного монадского трансформатора с Newtype, что-то вроде этого:
newtype SbT m i a = SbT {
runSbT:: m ( SB i a )
}
Как я должен продолжить? Я даже не сможет объединить метод привязки (монадской типекласс), гораздо меньше «подъема» (монадранс) ... Я думаю, что автоматическое вывод может помочь, но я хочу понять, как это работает в этом случае.
заранее спасибо.