module Hydra.Dsl.Graph where import Hydra.Kernel import Hydra.Dsl.Base as Base import qualified Data.Map as M elementName :: TTerm (Element -> Name) elementName :: TTerm (Element -> Name) elementName = Name -> Name -> TTerm (Element -> Name) forall a b. Name -> Name -> TTerm (a -> b) project Name _Element Name _Element_name graph :: TTerm (M.Map Name Element) -> TTerm (M.Map Name (Maybe Term)) -> TTerm (M.Map Name TypeScheme) -> TTerm Term -> TTerm (M.Map Name Primitive) -> TTerm (Maybe Graph) -> TTerm Graph graph :: TTerm (Map Name Element) -> TTerm (Map Name (Maybe Term)) -> TTerm (Map Name TypeScheme) -> TTerm Term -> TTerm (Map Name Primitive) -> TTerm (Maybe Graph) -> TTerm Graph graph TTerm (Map Name Element) elements TTerm (Map Name (Maybe Term)) environment TTerm (Map Name TypeScheme) types TTerm Term body TTerm (Map Name Primitive) primitives TTerm (Maybe Graph) schema = Name -> [Field] -> TTerm Graph forall a. Name -> [Field] -> TTerm a record Name _Graph [ Name _Graph_elementsName -> TTerm (Map Name Element) -> Field forall a. Name -> TTerm a -> Field >>: TTerm (Map Name Element) elements, Name _Graph_environmentName -> TTerm (Map Name (Maybe Term)) -> Field forall a. Name -> TTerm a -> Field >>: TTerm (Map Name (Maybe Term)) environment, Name _Graph_typesName -> TTerm (Map Name TypeScheme) -> Field forall a. Name -> TTerm a -> Field >>: TTerm (Map Name TypeScheme) types, Name _Graph_bodyName -> TTerm Term -> Field forall a. Name -> TTerm a -> Field >>: TTerm Term body, Name _Graph_primitivesName -> TTerm (Map Name Primitive) -> Field forall a. Name -> TTerm a -> Field >>: TTerm (Map Name Primitive) primitives, Name _Graph_schemaName -> TTerm (Maybe Graph) -> Field forall a. Name -> TTerm a -> Field >>: TTerm (Maybe Graph) schema] graphElements :: TTerm (Graph -> M.Map Name Element) graphElements :: TTerm (Graph -> Map Name Element) graphElements = Name -> Name -> TTerm (Graph -> Map Name Element) forall a b. Name -> Name -> TTerm (a -> b) project Name _Graph Name _Graph_elements graphEnvironment :: TTerm (Graph -> M.Map Name (Maybe Term)) graphEnvironment :: TTerm (Graph -> Map Name (Maybe Term)) graphEnvironment = Name -> Name -> TTerm (Graph -> Map Name (Maybe Term)) forall a b. Name -> Name -> TTerm (a -> b) project Name _Graph Name _Graph_environment graphTypes :: TTerm (Graph -> M.Map Name TypeScheme) graphTypes :: TTerm (Graph -> Map Name TypeScheme) graphTypes = Name -> Name -> TTerm (Graph -> Map Name TypeScheme) forall a b. Name -> Name -> TTerm (a -> b) project Name _Graph Name _Graph_types graphBody :: TTerm (Graph -> Term) graphBody :: TTerm (Graph -> Term) graphBody = Name -> Name -> TTerm (Graph -> Term) forall a b. Name -> Name -> TTerm (a -> b) project Name _Graph Name _Graph_body graphPrimitives :: TTerm (Graph -> M.Map Name Primitive) graphPrimitives :: TTerm (Graph -> Map Name Primitive) graphPrimitives = Name -> Name -> TTerm (Graph -> Map Name Primitive) forall a b. Name -> Name -> TTerm (a -> b) project Name _Graph Name _Graph_primitives graphSchema :: TTerm (Graph -> Maybe Graph) graphSchema :: TTerm (Graph -> Maybe Graph) graphSchema = Name -> Name -> TTerm (Graph -> Maybe Graph) forall a b. Name -> Name -> TTerm (a -> b) project Name _Graph Name _Graph_schema primitiveName :: TTerm (Primitive -> Name) primitiveName :: TTerm (Primitive -> Name) primitiveName = Name -> Name -> TTerm (Primitive -> Name) forall a b. Name -> Name -> TTerm (a -> b) project Name _Primitive Name _Primitive_name primitiveType :: TTerm (Primitive -> TypeScheme) primitiveType :: TTerm (Primitive -> TypeScheme) primitiveType = Name -> Name -> TTerm (Primitive -> TypeScheme) forall a b. Name -> Name -> TTerm (a -> b) project Name _Primitive Name _Primitive_type primitiveImplementation :: TTerm (Primitive -> ([Term] -> Flow Graph Term)) primitiveImplementation :: TTerm (Primitive -> [Term] -> Flow Graph Term) primitiveImplementation = Name -> Name -> TTerm (Primitive -> [Term] -> Flow Graph Term) forall a b. Name -> Name -> TTerm (a -> b) project Name _Primitive Name _Primitive_type