For example, say putStrLn "one" >> putStrLn "two". If I do :info >>, I see this:
type Monad :: (* -> *) -> Constraint
class Applicative m => Monad m where
...
(>>) :: m a -> m b -> m b
...
-- Defined in ‘GHC.Base’
infixl 1 >>
I would like to see what the expression putStrLn "one" >> putStrLn "two" is, replacing >> with this definition. But not just for this function expression, but any function expression, how to find and print the sugarless version.