hydra-0.5.0: src/main/haskell/Hydra/Dsl/Graph.hs
module Hydra.Dsl.Graph where
import Hydra.Kernel
import Hydra.Dsl.Base as Base
import qualified Data.Map as M
graph :: Datum (M.Map Name Element)
-> Datum (M.Map Name (Maybe Term))
-> Datum (M.Map Name Type)
-> Datum Term
-> Datum (M.Map Name Primitive)
-> Datum (Maybe Graph)
-> Datum Graph
graph elements environment types body primitives schema = record _Graph [
_Graph_elements>>: elements,
_Graph_environment>>: environment,
_Graph_types>>: types,
_Graph_body>>: body,
_Graph_primitives>>: primitives,
_Graph_schema>>: schema]
graphElements :: Datum (Graph -> M.Map Name Element)
graphElements = project _Graph _Graph_elements
graphEnvironment :: Datum (Graph -> M.Map Name (Maybe Term))
graphEnvironment = project _Graph _Graph_environment
graphTypes :: Datum (Graph -> M.Map Name Type)
graphTypes = project _Graph _Graph_types
graphBody :: Datum (Graph -> Term)
graphBody = project _Graph _Graph_body
graphPrimitives :: Datum (Graph -> M.Map Name Primitive)
graphPrimitives = project _Graph _Graph_primitives
graphSchema :: Datum (Graph -> Maybe Graph)
graphSchema = project _Graph _Graph_schema