module Argo.Internal.Type.Optional where newtype Optional a = Optional (Maybe a) deriving (Optional a -> Optional a -> Bool (Optional a -> Optional a -> Bool) -> (Optional a -> Optional a -> Bool) -> Eq (Optional a) forall a. Eq a => Optional a -> Optional a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Optional a -> Optional a -> Bool $c/= :: forall a. Eq a => Optional a -> Optional a -> Bool == :: Optional a -> Optional a -> Bool $c== :: forall a. Eq a => Optional a -> Optional a -> Bool Eq, Int -> Optional a -> ShowS [Optional a] -> ShowS Optional a -> String (Int -> Optional a -> ShowS) -> (Optional a -> String) -> ([Optional a] -> ShowS) -> Show (Optional a) forall a. Show a => Int -> Optional a -> ShowS forall a. Show a => [Optional a] -> ShowS forall a. Show a => Optional a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Optional a] -> ShowS $cshowList :: forall a. Show a => [Optional a] -> ShowS show :: Optional a -> String $cshow :: forall a. Show a => Optional a -> String showsPrec :: Int -> Optional a -> ShowS $cshowsPrec :: forall a. Show a => Int -> Optional a -> ShowS Show) fromMaybe :: Maybe a -> Optional a fromMaybe :: Maybe a -> Optional a fromMaybe = Maybe a -> Optional a forall a. Maybe a -> Optional a Optional toMaybe :: Optional a -> Maybe a toMaybe :: Optional a -> Maybe a toMaybe (Optional Maybe a x) = Maybe a x nothing :: Optional a nothing :: Optional a nothing = Maybe a -> Optional a forall a. Maybe a -> Optional a fromMaybe Maybe a forall a. Maybe a Nothing just :: a -> Optional a just :: a -> Optional a just = Maybe a -> Optional a forall a. Maybe a -> Optional a fromMaybe (Maybe a -> Optional a) -> (a -> Maybe a) -> a -> Optional a forall b c a. (b -> c) -> (a -> b) -> a -> c . a -> Maybe a forall a. a -> Maybe a Just