Como projetar uma pilha monádica?
Como você projeta e constrói suas pilhas monádicas? Pela primeira vez eu preciso construir uma pilha monádica (usando transformadores) para resolver um problema do mundo real, mas não tenho certeza absolutaordem empilhar os transformadores. Como você já sabe, desde que um cálculo tenha tipo* -> *
basicamente, qualquer coisa pode desempenhar o papel da mônada interior em um transformador, portanto, um par de perguntas:
lift . lift . liftIO [...]
? Meu instinto sugeriria que, se os transformadores deriva algumas instâncias (por exemplo, MonadReader, MonadIO, etc, como a maioria dos transformadores emmtl
fazer), não importa em que ordem eu coloquei os transformadores.Tenho interesse em ouvir de Haskellers experientes sobre as melhores práticas ou regras práticas.
forever $ print "Thanks!"
UMA.