<div dir="ltr">Hello, I have such a question: assume you have some type `T` which has Applicative and Monad instances. Is it ok if code like this: <div><br></div><div><font face="monospace, monospace">foo :: Int -> T String</font></div><div><font face="monospace, monospace">bar :: Int -> T Int</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">(,) <$> foo 10 <*> bar "20" </font></div><div><br></div><div>behaves not like this code: </div><div><br></div><div><div><font face="monospace, monospace">foobar = do</font></div><div><font face="monospace, monospace">    x <- foo 10</font></div><div><font face="monospace, monospace">    y <- bar "20"</font></div><div><font face="monospace, monospace">    return (x, y)</font></div></div><div><br></div><div>The word "behaves" I mean not just returning value but the effect performed also.</div><div><br></div></div>