I hadn’t realised just how horrible such things are in Scala; the types were very confusing to me, because I couldn’t see where the initial F[A] was being input into flatMap. Then I realised flatmap was a method on objects of type F[A] and winced a bit because it wasn’t clear to me at least what flatMap was being applied to.

I’d hate to see what the continuation monad (Cont in Haskell) looks like in Scala, but would appreciate it if someone were able to show it to me anyway. I have a morbid curiosity now…

“In category theory, a monad builds on a certain morphism between categories. Practically speaking, this allows a function of type A => F[B] to be lifted to a function of type F[A] => F[B], for some type constructor F.”

I hadn’t realised just how horrible such things are in Scala; the types were very confusing to me, because I couldn’t see where the initial F[A] was being input into flatMap. Then I realised flatmap was a method on objects of type F[A] and winced a bit because it wasn’t clear to me at least what flatMap was being applied to.

I’d hate to see what the continuation monad (Cont in Haskell) looks like in Scala, but would appreciate it if someone were able to show it to me anyway. I have a morbid curiosity now…

This is why I just teach Haskell, no strawman languages.

I need to listen to Tony Morris more I think.

“In category theory, a monad builds on a certain morphism between categories. Practically speaking, this allows a function of type A => F[B] to be lifted to a function of type F[A] => F[B], for some type constructor F.”

Well, of course.