<div dir="ltr">Following up on Andres's explanation, we have<div><br></div><div><div><font face="monospace, monospace">ap f x </font><font face="monospace, monospace">= </font><span style="font-family:monospace,monospace">liftM2 id mf ma                          -- </span><span style="font-family:monospace,monospace">definition of ap</span></div><div><span style="font-family:monospace,monospace">       = do { f <- mf; a <- ma; return (id f x) } -- definition of liftM2</span><br></div><div><font face="monospace, monospace">       = do { f <- mf; a <- ma; return (f x) }    -- definition of id, f x y = (f x) y<br></font></div><div><br></div><div>We can see that <font face="monospace, monospace">id</font><font face="arial, helvetica, sans-serif"> applied to </font><span style="font-family:monospace,monospace">f</span><font face="arial, helvetica, sans-serif"> gives </font><span style="font-family:monospace,monospace">f</span><font face="arial, helvetica, sans-serif"> which is then applied t</font><font face="arial, helvetica, sans-serif">o </font><span style="font-family:monospace,monospace">a</span><font face="arial, helvetica, sans-serif">.</font></div></div></div>