Monad Transformers - Ben Kolera

แชร์
ฝัง
  • เผยแพร่เมื่อ 14 พ.ย. 2024

ความคิดเห็น • 7

  • @pdr.
    @pdr. 8 ปีที่แล้ว +6

    Code and slides at github.com/benkolera/talk-stacking-your-monads

    • @pdr.
      @pdr. 8 ปีที่แล้ว +3

      Slides also at stackingyourmonads.benkolera.com/

  • @amogh09
    @amogh09 4 ปีที่แล้ว

    What if my Monad transformer module (for example Logic transformer shown in the video) has a StateT inside it and I need the updated state for future bind calls to my module? Wouldn't the lift function unwrap the whole transformer and thus my state is lost?

  • @peterstorm_io
    @peterstorm_io 6 ปีที่แล้ว +1

    Great talk, please stop panning away from the slides when he explains them though :D

  • @mariusraducan1348
    @mariusraducan1348 6 ปีที่แล้ว

    At 25:40 runApp e = flip runReaderT e . (runExceptT . unApp) and compiles

    • @bzhkl
      @bzhkl 5 ปีที่แล้ว

      aha! you are absolute right, we should run the outer layer first!

  • @aoeu256
    @aoeu256 5 ปีที่แล้ว

    You know it would be awesome if there were IDEs or GHCI front-ends that automatically did type-tetris for you [rearrange arguments when you get the order wrong, automatically lift and unlift arguments so that they are the right type like those autofix in Java IDEs]. Its really important for Monad transformers and Monadic code. The IDEs could also use rewrite rules to hide the Monad transformers as well showing an alternate view of code that is easy to understand rather than those zygo-ana-hylo-morphs.... and help you convert pure code to monadic code and back again... I was trying to build a simple code linter in Template Haskell, but I still need to learn more.