add an INLINE to the list version of traverse, to enable fusion
[ghc-base.git] / Data / Traversable.hs
index 30aaee6..28fa761 100644 (file)
@@ -62,7 +62,7 @@ import Array
 --
 -- a suitable instance would be
 --
--- > instance Traversable Tree
+-- > instance Traversable Tree where
 -- >    traverse f Empty = pure Empty
 -- >    traverse f (Leaf x) = Leaf <$> f x
 -- >    traverse f (Node l k r) = Node <$> traverse f l <*> f k <*> traverse f r
@@ -107,6 +107,7 @@ instance Traversable Maybe where
         traverse f (Just x) = Just <$> f x
 
 instance Traversable [] where
+        {-# INLINE traverse #-} -- so that traverse can fuse
         traverse f = Prelude.foldr cons_f (pure [])
           where cons_f x ys = (:) <$> f x <*> ys