haskellfunctional-programmingpointfreeequational-reasoning

(sequence .) . flip fmap === forM?


Is (sequence .) . flip fmap the same as forM? I ask here because pointfree.io seems not to say the same...


Solution

  • Yes, it is:

    (sequence .) . flip fmap
    (sequence .) . (\u f -> fmap f u)
    \u -> sequence . (\f -> fmap f u)
    \u f -> sequence (fmap f u)
    \u f -> mapM f u
    flip mapM
    forM
    

    As chi notes, presumably it's just that pointfree.io doesn't know about forM.