module Data.MonoidMap.Internal.NonNullMap.FromMapWith
( fromMapWith_mapMaybe
, fromMapWith_map_filter
, fromMapWith_map_filter_if_any_null
)
where
import Prelude
import Data.Map.Strict
( Map )
import Data.Monoid.Null
( MonoidNull )
import Data.MonoidMap.Internal.NonNull
( NonNull, nonNull )
import Data.MonoidMap.Internal.NonNullMap.FromMap
( fromMap_filter
, fromMap_filter_if_any_null
)
import Data.MonoidMap.Internal.NonNullMap.Unsafe
( NonNullMap (..) )
import qualified Data.Map.Strict as Map
fromMapWith_mapMaybe
:: MonoidNull v2 => (v1 -> v2) -> Map k v1 -> NonNullMap k v2
fromMapWith_mapMaybe :: forall v2 v1 k.
MonoidNull v2 =>
(v1 -> v2) -> Map k v1 -> NonNullMap k v2
fromMapWith_mapMaybe v1 -> v2
f = Map k (NonNull v2) -> NonNullMap k v2
forall k v. Map k (NonNull v) -> NonNullMap k v
NonNullMap (Map k (NonNull v2) -> NonNullMap k v2)
-> (Map k v1 -> Map k (NonNull v2)) -> Map k v1 -> NonNullMap k v2
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (v1 -> Maybe (NonNull v2)) -> Map k v1 -> Map k (NonNull v2)
forall a b k. (a -> Maybe b) -> Map k a -> Map k b
Map.mapMaybe (v2 -> Maybe (NonNull v2)
forall v. MonoidNull v => v -> Maybe (NonNull v)
nonNull (v2 -> Maybe (NonNull v2))
-> (v1 -> v2) -> v1 -> Maybe (NonNull v2)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. v1 -> v2
f)
{-# INLINABLE fromMapWith_mapMaybe #-}
fromMapWith_map_filter
:: MonoidNull v2 => (v1 -> v2) -> Map k v1 -> NonNullMap k v2
fromMapWith_map_filter :: forall v2 v1 k.
MonoidNull v2 =>
(v1 -> v2) -> Map k v1 -> NonNullMap k v2
fromMapWith_map_filter v1 -> v2
f = Map k v2 -> NonNullMap k v2
forall v k. MonoidNull v => Map k v -> NonNullMap k v
fromMap_filter (Map k v2 -> NonNullMap k v2)
-> (Map k v1 -> Map k v2) -> Map k v1 -> NonNullMap k v2
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (v1 -> v2) -> Map k v1 -> Map k v2
forall a b k. (a -> b) -> Map k a -> Map k b
Map.map v1 -> v2
f
{-# INLINABLE fromMapWith_map_filter #-}
fromMapWith_map_filter_if_any_null
:: MonoidNull v2 => (v1 -> v2) -> Map k v1 -> NonNullMap k v2
fromMapWith_map_filter_if_any_null :: forall v2 v1 k.
MonoidNull v2 =>
(v1 -> v2) -> Map k v1 -> NonNullMap k v2
fromMapWith_map_filter_if_any_null v1 -> v2
f = Map k v2 -> NonNullMap k v2
forall v k. MonoidNull v => Map k v -> NonNullMap k v
fromMap_filter_if_any_null (Map k v2 -> NonNullMap k v2)
-> (Map k v1 -> Map k v2) -> Map k v1 -> NonNullMap k v2
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (v1 -> v2) -> Map k v1 -> Map k v2
forall a b k. (a -> b) -> Map k a -> Map k b
Map.map v1 -> v2
f
{-# INLINABLE fromMapWith_map_filter_if_any_null #-}