{-# LANGUAGE Haskell2010 #-} {-# LANGUAGE RankNTypes #-} {-# OPTIONS_GHC -ddump-simpl-stats #-} -- The rule foo/bar should fire module Roman where foo :: (forall m. m a -> m b) -> m a -> m b {-# NOINLINE foo #-} foo f = f bar :: (forall m. m a -> m a) -> m a -> m a bar f = f {-# RULES "foo/bar" foo = bar #-} blip = foo id