[Haskell-cafe] Inlinable (>>>)
David Sorokin
david.sorokin at gmail.com
Thu Mar 2 15:18:32 UTC 2017
Hi Cafe,
I offer to define the functions of the Control.Category module inlinable:
-- | Right-to-left composition
(<<<) :: Category cat => cat b c -> cat a b -> cat a c
{-# INLINABLE (<<<) #-}
(<<<) = (.)
-- | Left-to-right composition
(>>>) :: Category cat => cat a b -> cat b c -> cat a c
{-# INLINABLE (>>>) #-}
f >>> g = g . f
Perhaps all functions from this module should be marked by this pragma as possible.
I suppose that the current definition without the pragma is the cause why the execution slows down in my applications, when using monad parameters in the constraints. I noticed it yet two or three years ago, while playing with the monad transformers, but decided to write now.
Best regards,
David Sorokin
More information about the Haskell-Cafe
mailing list