{-# LANGUAGE Safe #-}
module Data.List.Maybe (
MaybeList,
concatMapMaybes
) where
import Data.Maybe(catMaybes)
type MaybeList a = [Maybe a]
concatMapMaybes :: Foldable f
=> (a -> MaybeList b)
-> f a
-> [b]
concatMapMaybes :: (a -> MaybeList b) -> f a -> [b]
concatMapMaybes = (a -> [b]) -> f a -> [b]
forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
concatMap ((a -> [b]) -> f a -> [b])
-> ((a -> MaybeList b) -> a -> [b])
-> (a -> MaybeList b)
-> f a
-> [b]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ( MaybeList b -> [b]
forall a. [Maybe a] -> [a]
catMaybes (MaybeList b -> [b]) -> (a -> MaybeList b) -> a -> [b]
forall b c a. (b -> c) -> (a -> b) -> a -> c
.)
{-# SPECIALISE concatMapMaybes :: (a -> [Maybe b]) -> [a] -> [b] #-}