diff --git a/Control/Monad/Trans/List.hs b/Control/Monad/Trans/List.hs index 3cde4ce6b4d07077364beeb7ccd9fc91611b8072..919898e47c80b944781d80bf21ea5a030851beff 100644 --- a/Control/Monad/Trans/List.hs +++ b/Control/Monad/Trans/List.hs @@ -145,8 +145,8 @@ instance (Monad m) => MonadPlus (ListT m) where instance (MonadFix m) => MonadFix (ListT m) where mfix f = ListT $ mfix (runListT . f . head) >>= \ xs -> case xs of - [] -> pure [] - x:_ -> (x:) <$> (runListT . mfix) ((mapListT . fmap) tail . f) + [] -> return [] + x:_ -> liftM (x:) (runListT (mfix (mapListT (fmap tail) . f))) {-# INLINE mfix #-} instance MonadTrans ListT where