hydra-0.1.0: Type-aware transformations for data and functional programs
Safe HaskellSafe-Inferred
LanguageHaskell2010

Hydra.Impl.Haskell.Dsl.Base

Documentation

(>:) :: String -> Datum a -> Fld a infixr 0 Source #

(<.>) :: Datum (b -> c) -> Datum (a -> b) -> Datum (a -> c) Source #

($$) :: Datum (a -> b) -> Datum a -> Datum b Source #

(@@) :: Datum (a -> b) -> Datum a -> Datum b Source #

(@->) :: a -> b -> (a, b) infixr 0 Source #

(-->) :: Case a -> Datum (a -> b) -> Field Meta infixr 0 Source #

apply :: Datum (a -> b) -> Datum a -> Datum b Source #

apply2 :: Datum (a -> b -> c) -> Datum a -> Datum b -> Datum c Source #

caseField :: Case a -> Datum (a -> b) -> Field Meta Source #

compareTo :: Datum a -> Datum (a -> Bool) Source #

compose :: Datum (b -> c) -> Datum (a -> b) -> Datum (a -> c) Source #

constant :: Datum a -> Datum (b -> a) Source #

denom :: Name -> Datum (a -> b) Source #

doc :: String -> Datum a -> Datum a Source #

lambda :: String -> Datum x -> Datum (a -> b) Source #

list :: [Datum a] -> Datum [a] Source #

map :: Map (Datum a) (Datum b) -> Datum (Map a b) Source #

matchData :: Name -> [(FieldName, Datum (x -> b))] -> Datum (a -> b) Source #

matchOpt :: Datum b -> Datum (a -> b) -> Datum (Maybe a -> b) Source #

match :: Name -> Type Meta -> [Field Meta] -> Datum (u -> b) Source #

matchToEnum :: Name -> Name -> [(FieldName, FieldName)] -> Datum (a -> b) Source #

matchToUnion :: Name -> Name -> [(FieldName, Field Meta)] -> Datum (a -> b) Source #

nom :: Name -> Datum a -> Datum b Source #

opt :: Maybe (Datum a) -> Datum (Maybe a) Source #

project :: Name -> Type Meta -> FieldName -> Datum (a -> b) Source #

record :: Name -> [Fld a] -> Datum a Source #

set :: Set (Datum a) -> Datum (Set a) Source #

union2 :: Name -> FieldName -> Datum (a -> b) Source #