packages feed

hydra-0.8.0: src/main/haskell/Hydra/Dsl/Lib/Optionals.hs

module Hydra.Dsl.Lib.Optionals where

import Hydra.Phantoms
import Hydra.Sources.Libraries
import qualified Hydra.Dsl.Terms as Terms


apply :: TTerm (Maybe (a -> b) -> Maybe a -> Maybe b)
apply = TTerm $ Terms.primitive _optionals_apply

bind :: TTerm (Maybe a -> (a -> Maybe b) -> Maybe b)
bind = TTerm $ Terms.primitive _optionals_bind

cat :: TTerm ([Maybe a] -> [a])
cat = TTerm $ Terms.primitive _optionals_cat

compose :: TTerm ((a -> Maybe b) -> (b -> Maybe c) -> (a -> Maybe c))
compose = TTerm $ Terms.primitive _optionals_compose

fromMaybe :: TTerm (a -> Maybe a -> a)
fromMaybe = TTerm $ Terms.primitive _optionals_fromMaybe

isJust :: TTerm (Maybe a -> Bool)
isJust = TTerm $ Terms.primitive _optionals_isJust

isNothing :: TTerm (Maybe a -> Bool)
isNothing = TTerm $ Terms.primitive _optionals_isNothing

map :: TTerm ((a -> b) -> Maybe a -> Maybe b)
map = TTerm $ Terms.primitive _optionals_map

maybe :: TTerm (b -> (a -> b) -> Maybe a -> b)
maybe = TTerm $ Terms.primitive _optionals_maybe

pure :: TTerm (a -> Maybe a)
pure = TTerm $ Terms.primitive _optionals_pure