Are local closure more efficient in haskell?

Viewed 78

Is there any advantage in haskell to write a local closure like below ?

-- | A fix-point type.
newtype Fix f = Fix { unFix :: f (Fix f) }

-- | Fold 'Fix'.
foldFix :: Functor f => (f a -> a) -> Fix f -> a
foldFix f = go where go = f . fmap go . unFix --- go closes over f

foldFix2 :: Functor f => (f a -> a) -> Fix f -> a
foldFix2 f = f . fmap (foldFix f) . unFix
0 Answers
Related