module Antelude.Maybe
( Maybe (..)
, Maybe.isJust
, Maybe.isNothing
, fromEitherLeft
, fromEitherRight
, fromResult
, map
, mapWithDefault
, withDefault
) where
import safe Antelude.Internal.TypesClasses
( Either (..)
, Functor (fmap)
, Maybe (..)
, Result (..)
)
import safe qualified Data.Maybe as Maybe
map :: (a -> b) -> Maybe a -> Maybe b
map :: forall a b. (a -> b) -> Maybe a -> Maybe b
map = (a -> b) -> Maybe a -> Maybe b
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
withDefault :: a -> Maybe a -> a
withDefault :: forall a. a -> Maybe a -> a
withDefault = a -> Maybe a -> a
forall a. a -> Maybe a -> a
Maybe.fromMaybe
mapWithDefault :: b -> (a -> b) -> Maybe a -> b
mapWithDefault :: forall b a. b -> (a -> b) -> Maybe a -> b
mapWithDefault = b -> (a -> b) -> Maybe a -> b
forall b a. b -> (a -> b) -> Maybe a -> b
Maybe.maybe
fromResult :: Result err ok -> Maybe ok
fromResult :: forall err ok. Result err ok -> Maybe ok
fromResult = \case
Ok ok
ok -> ok -> Maybe ok
forall a. a -> Maybe a
Just ok
ok
Err err
_ -> Maybe ok
forall a. Maybe a
Nothing
fromEitherRight :: Either left right -> Maybe right
fromEitherRight :: forall left right. Either left right -> Maybe right
fromEitherRight = \case
Right right
right -> right -> Maybe right
forall a. a -> Maybe a
Just right
right
Left left
_ -> Maybe right
forall a. Maybe a
Nothing
fromEitherLeft :: Either left right -> Maybe left
fromEitherLeft :: forall left right. Either left right -> Maybe left
fromEitherLeft = \case
Left left
left -> left -> Maybe left
forall a. a -> Maybe a
Just left
left
Right right
_ -> Maybe left
forall a. Maybe a
Nothing