What does the `forall` keyword in Haskell/GHC do?
Let’s start with a code example: foob :: forall a b. (b -> b) -> b -> (a -> b) -> Maybe a -> b foob postProcess onNothin onJust mval = postProcess val where val :: b val = maybe onNothin onJust mval This code doesn’t compile (syntax error) in plain Haskell 98. It requires … Read more