3 ms·
Many times do blocks are passed into functions so the monad type can be looked up from the function definition. flip runStateT s $ do ... To find the type
by nogenerics123 9y ago
Many times do blocks are passed into functions so the monad type can be looked up from the function definition.
flip runStateT s $ do ...
To find the type of this do block I don't have to scan it I just have to look up the definition of runStateT.
If I have to add an explicit annotation to a do block it's simple enough to separate it into another function.
justSix :: Maybe Int
justSix = do
x <- pure 1
y <- pure 5
pure (x + y)
I read the article and couldn't find the part where they said that type inference is a problem with do notation.