packages feed

argo-0.2022.2.23: source/library/Argo/Type/Optional.hs

module Argo.Type.Optional where

newtype Optional a
    = Optional (Maybe a)
    deriving (Eq, Show)

fromMaybe :: Maybe a -> Optional a
fromMaybe = Optional

toMaybe :: Optional a -> Maybe a
toMaybe (Optional x) = x

nothing :: Optional a
nothing = fromMaybe Nothing

just :: a -> Optional a
just = fromMaybe . Just