{-# LANGUAGE OverloadedStrings #-}
module Hydra.Sources.Tier4.Langs.Tinkerpop.Validate where
import Prelude hiding ((++))
import qualified Data.List as L
import qualified Data.Map as M
import qualified Data.Set as S
import qualified Data.Maybe as Y
import Hydra.Dsl.Base as Base
import qualified Hydra.Dsl.Core as Core
import qualified Hydra.Dsl.Graph as Graph
import qualified Hydra.Dsl.Lib.Equality as Equality
import qualified Hydra.Dsl.Lib.Flows as Flows
import qualified Hydra.Dsl.Lib.Io as Io
import qualified Hydra.Dsl.Lib.Lists as Lists
import qualified Hydra.Dsl.Lib.Literals as Literals
import qualified Hydra.Dsl.Lib.Logic as Logic
import qualified Hydra.Dsl.Lib.Maps as Maps
import qualified Hydra.Dsl.Lib.Math as Math
import qualified Hydra.Dsl.Lib.Optionals as Optionals
import qualified Hydra.Dsl.Lib.Sets as Sets
import Hydra.Dsl.Lib.Strings as Strings
import qualified Hydra.Dsl.Module as Module
import qualified Hydra.Dsl.Terms as Terms
import qualified Hydra.Dsl.Types as Types
import Hydra.Kernel hiding (Edge(..), _Edge, _Edge_in, _Edge_out, Element(..), _Element, Graph(..), _Graph)
import Hydra.Langs.Tinkerpop.PropertyGraph as PG
import Hydra.Sources.Tier4.Langs.Tinkerpop.PropertyGraph
validateDefinition :: String -> Datum a -> Definition a
validateDefinition :: forall a. String -> Datum a -> Definition a
validateDefinition = Module -> String -> Datum a -> Definition a
forall a. Module -> String -> Datum a -> Definition a
definitionInModule Module
tinkerpopValidateModule
tinkerpopValidateModule :: Module
tinkerpopValidateModule :: Module
tinkerpopValidateModule = Namespace
-> [Element] -> [Module] -> [Module] -> Maybe String -> Module
Module (String -> Namespace
Namespace String
"hydra/langs/tinkerpop/validate") [Element]
elements
[] [Module
tinkerpopPropertyGraphModule] (Maybe String -> Module) -> Maybe String -> Module
forall a b. (a -> b) -> a -> b
$
String -> Maybe String
forall a. a -> Maybe a
Just String
"Utilities for validating property graphs against property graph schemas"
where
elements :: [Element]
elements = [
Definition
((Any -> Any -> Maybe String)
-> (Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any
-> Edge Any
-> Maybe String)
-> Element
forall a. Definition a -> Element
el Definition
((Any -> Any -> Maybe String)
-> (Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any
-> Edge Any
-> Maybe String)
forall t v.
Definition
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
validateEdgeDef,
Definition
((Any -> Any -> Maybe String)
-> (Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> ElementType Any
-> Element Any
-> Maybe String)
-> Element
forall a. Definition a -> Element
el Definition
((Any -> Any -> Maybe String)
-> (Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> ElementType Any
-> Element Any
-> Maybe String)
forall t v.
Definition
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String)
validateElementDef,
Definition
((Any -> Any -> Maybe String)
-> (Any -> String) -> GraphSchema Any -> Graph Any -> Maybe String)
-> Element
forall a. Definition a -> Element
el Definition
((Any -> Any -> Maybe String)
-> (Any -> String) -> GraphSchema Any -> Graph Any -> Maybe String)
forall t v.
Definition
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String)
validateGraphDef,
Definition
((Any -> Any -> Maybe String)
-> [PropertyType Any] -> Map PropertyKey Any -> Maybe String)
-> Element
forall a. Definition a -> Element
el Definition
((Any -> Any -> Maybe String)
-> [PropertyType Any] -> Map PropertyKey Any -> Maybe String)
forall t v.
Definition
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
validatePropertiesDef,
Definition
((Any -> Any -> Maybe String)
-> (Any -> String) -> VertexType Any -> Vertex Any -> Maybe String)
-> Element
forall a. Definition a -> Element
el Definition
((Any -> Any -> Maybe String)
-> (Any -> String) -> VertexType Any -> Vertex Any -> Maybe String)
forall t v.
Definition
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
validateVertexDef,
Definition ([Maybe Any] -> Maybe Any) -> Element
forall a. Definition a -> Element
el Definition ([Maybe Any] -> Maybe Any)
forall a. Definition ([Maybe a] -> Maybe a)
checkAllDef,
Definition ((Any -> String) -> Edge Any -> String -> String)
-> Element
forall a. Definition a -> Element
el Definition ((Any -> String) -> Edge Any -> String -> String)
forall v. Definition ((v -> String) -> Edge v -> String -> String)
edgeErrorDef,
Definition (EdgeLabel -> EdgeLabel -> String) -> Element
forall a. Definition a -> Element
el Definition (EdgeLabel -> EdgeLabel -> String)
edgeLabelMismatchDef,
Definition (String -> String -> String) -> Element
forall a. Definition a -> Element
el Definition (String -> String -> String)
prependDef,
Definition (Bool -> String -> Maybe String) -> Element
forall a. Definition a -> Element
el Definition (Bool -> String -> Maybe String)
verifyDef,
Definition ((Any -> String) -> Vertex Any -> String -> String)
-> Element
forall a. Definition a -> Element
el Definition ((Any -> String) -> Vertex Any -> String -> String)
forall v.
Definition ((v -> String) -> Vertex v -> String -> String)
vertexErrorDef,
Definition (VertexLabel -> VertexLabel -> String) -> Element
forall a. Definition a -> Element
el Definition (VertexLabel -> VertexLabel -> String)
vertexLabelMismatchDef]
validateEdgeDef :: Definition (
(t -> v -> Maybe String)
-> (v -> String)
-> Y.Maybe (v -> Y.Maybe PG.VertexLabel)
-> PG.EdgeType t
-> PG.Edge v
-> Y.Maybe String)
validateEdgeDef :: forall t v.
Definition
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
validateEdgeDef = String
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
-> Definition
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
forall a. String -> Datum a -> Definition a
validateDefinition String
"validateEdge" (Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
-> Definition
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String))
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
-> Definition
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
forall a b. (a -> b) -> a -> b
$
[Type]
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
forall a. [Type] -> Datum a -> Datum a
functionN [
Type -> Type -> Type
funT Type
tT (Type -> Type -> Type
funT Type
vT (Type -> Type
optionalT Type
stringT)),
Type -> Type -> Type
funT Type
vT Type
stringT,
Type -> Type
optionalT (Type -> Type -> Type
funT Type
vT (Type -> Type
optionalT Type
vertexLabelT)),
Type
edgeTypeTT,
Type
edgeVT,
Type -> Type
optionalT Type
stringT] (Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String))
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
forall a b. (a -> b) -> a -> b
$
String
-> Datum (Any -> Any)
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"checkValue" (Datum (Any -> Any)
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String))
-> Datum (Any -> Any)
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Any -> Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"showValue" (Datum (Any -> Any) -> Datum (Any -> Any))
-> Datum (Any -> Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Any -> Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"labelForVertexId" (Datum (Any -> Any) -> Datum (Any -> Any))
-> Datum (Any -> Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Any -> Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"typ" (Datum (Any -> Any) -> Datum (Any -> Any))
-> Datum (Any -> Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Maybe Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"el" (Datum (Maybe Any) -> Datum (Any -> Any))
-> Datum (Maybe Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$
(Definition ([Maybe Any] -> Maybe Any)
-> Datum ([Maybe Any] -> Maybe Any)
forall a. Definition a -> Datum a
ref Definition ([Maybe Any] -> Maybe Any)
forall a. Definition ([Maybe a] -> Maybe a)
checkAllDef Datum ([Maybe Any] -> Maybe Any)
-> Datum [Maybe Any] -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ [Datum (Maybe Any)] -> Datum [Maybe Any]
forall a. [Datum a] -> Datum [a]
list [String -> Datum (Maybe Any)
forall a. String -> Datum a
var String
"checkLabel", String -> Datum (Maybe Any)
forall a. String -> Datum a
var String
"checkId", String -> Datum (Maybe Any)
forall a. String -> Datum a
var String
"checkProperties", String -> Datum (Maybe Any)
forall a. String -> Datum a
var String
"checkOut", String -> Datum (Maybe Any)
forall a. String -> Datum a
var String
"checkIn"]
Datum (Maybe Any) -> [Field] -> Datum (Maybe Any)
forall a. Datum a -> [Field] -> Datum a
`with` [
String
"failWith"String -> Datum (String -> String) -> Field
forall a. String -> Datum a -> Field
>: Type -> Datum (String -> String) -> Datum (String -> String)
forall a. Type -> Datum a -> Datum a
typed (Type -> Type -> Type
funT Type
stringT Type
stringT) (Datum (String -> String) -> Datum (String -> String))
-> Datum (String -> String) -> Datum (String -> String)
forall a b. (a -> b) -> a -> b
$
Definition ((Any -> String) -> Edge Any -> String -> String)
-> Datum ((Any -> String) -> Edge Any -> String -> String)
forall a. Definition a -> Datum a
ref Definition ((Any -> String) -> Edge Any -> String -> String)
forall v. Definition ((v -> String) -> Edge v -> String -> String)
edgeErrorDef Datum ((Any -> String) -> Edge Any -> String -> String)
-> Datum (Any -> String) -> Datum (Edge Any -> String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> String)
forall a. String -> Datum a
var String
"showValue" Datum (Edge Any -> String -> String)
-> Datum (Edge Any) -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Edge Any)
forall a. String -> Datum a
var String
"el",
String
"checkLabel"String -> Datum (Maybe String) -> Field
forall a. String -> Datum a -> Field
>: (Definition (Bool -> String -> Maybe String)
-> Datum (Bool -> String -> Maybe String)
forall a. Definition a -> Datum a
ref Definition (Bool -> String -> Maybe String)
verifyDef
Datum (Bool -> String -> Maybe String)
-> Datum Bool -> Datum (String -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Datum (String -> String -> Bool)
Equality.equalString
Datum (String -> String -> Bool)
-> Datum String -> Datum (String -> Bool)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_EdgeLabel Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"actual")
Datum (String -> Bool) -> Datum String -> Datum Bool
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_EdgeLabel Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"expected"))
Datum (String -> Maybe String)
-> Datum String -> Datum (Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (String -> String)
forall a. String -> Datum a
var String
"failWith" Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Wrong label" Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Definition (EdgeLabel -> EdgeLabel -> String)
-> Datum (EdgeLabel -> EdgeLabel -> String)
forall a. Definition a -> Datum a
ref Definition (EdgeLabel -> EdgeLabel -> String)
edgeLabelMismatchDef Datum (EdgeLabel -> EdgeLabel -> String)
-> Datum EdgeLabel -> Datum (EdgeLabel -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum EdgeLabel
forall a. String -> Datum a
var String
"expected" Datum (EdgeLabel -> String) -> Datum EdgeLabel -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum EdgeLabel
forall a. String -> Datum a
var String
"actual"))))
Datum (Maybe String) -> [Field] -> Datum (Maybe String)
forall a. Datum a -> [Field] -> Datum a
`with` [
String
"expected"String -> Datum Any -> Field
forall a. String -> Datum a -> Field
>: Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_EdgeType Name
_EdgeType_label Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"typ",
String
"actual"String -> Datum Any -> Field
forall a. String -> Datum a -> Field
>: Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Edge Name
_Edge_label Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el"],
String
"checkId"String -> Datum (Maybe Any) -> Field
forall a. String -> Datum a -> Field
>: Datum ((String -> Any) -> Maybe String -> Maybe Any)
forall a b. Datum ((a -> b) -> Maybe a -> Maybe b)
Optionals.map
Datum ((String -> Any) -> Maybe String -> Maybe Any)
-> Datum (String -> Any) -> Datum (Maybe String -> Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (String -> Any)
forall a. String -> Datum a
var String
"failWith" Datum (String -> Any)
-> Datum (String -> String) -> Datum (String -> Any)
forall b c a. Datum (b -> c) -> Datum (a -> b) -> Datum (a -> c)
<.> (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Invalid id"))
Datum (Maybe String -> Maybe Any)
-> Datum (Maybe String) -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (Any -> Any -> Maybe String)
forall a. String -> Datum a
var String
"checkValue" Datum (Any -> Any -> Maybe String)
-> Datum Any -> Datum (Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_EdgeType Name
_EdgeType_id Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"typ") Datum (Any -> Maybe String) -> Datum Any -> Datum (Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Edge Name
_Edge_id Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el")),
String
"checkProperties"String -> Datum (Maybe Any) -> Field
forall a. String -> Datum a -> Field
>: Datum ((String -> Any) -> Maybe String -> Maybe Any)
forall a b. Datum ((a -> b) -> Maybe a -> Maybe b)
Optionals.map
Datum ((String -> Any) -> Maybe String -> Maybe Any)
-> Datum (String -> Any) -> Datum (Maybe String -> Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (String -> Any)
forall a. String -> Datum a
var String
"failWith" Datum (String -> Any)
-> Datum (String -> String) -> Datum (String -> Any)
forall b c a. Datum (b -> c) -> Datum (a -> b) -> Datum (a -> c)
<.> (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Invalid property"))
Datum (Maybe String -> Maybe Any)
-> Datum (Maybe String) -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Definition
((Any -> Any -> Maybe String)
-> [PropertyType Any] -> Map PropertyKey Any -> Maybe String)
-> Datum
((Any -> Any -> Maybe String)
-> [PropertyType Any] -> Map PropertyKey Any -> Maybe String)
forall a. Definition a -> Datum a
ref Definition
((Any -> Any -> Maybe String)
-> [PropertyType Any] -> Map PropertyKey Any -> Maybe String)
forall t v.
Definition
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
validatePropertiesDef
Datum
((Any -> Any -> Maybe String)
-> [PropertyType Any] -> Map PropertyKey Any -> Maybe String)
-> Datum (Any -> Any -> Maybe String)
-> Datum
([PropertyType Any] -> Map PropertyKey Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> Any -> Maybe String)
forall a. String -> Datum a
var String
"checkValue"
Datum ([PropertyType Any] -> Map PropertyKey Any -> Maybe String)
-> Datum [PropertyType Any]
-> Datum (Map PropertyKey Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> [PropertyType Any])
forall a b. Name -> Name -> Datum (a -> b)
project Name
_EdgeType Name
_EdgeType_properties Datum (Any -> [PropertyType Any])
-> Datum Any -> Datum [PropertyType Any]
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"typ")
Datum (Map PropertyKey Any -> Maybe String)
-> Datum (Map PropertyKey Any) -> Datum (Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Map PropertyKey Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Edge Name
_Edge_properties Datum (Any -> Map PropertyKey Any)
-> Datum Any -> Datum (Map PropertyKey Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el")),
String
"checkOut"String -> Datum Any -> Field
forall a. String -> Datum a -> Field
>: Datum (Maybe Any) -> Datum Any -> Datum (Any -> Any) -> Datum Any
forall a b. Datum (Maybe a) -> Datum b -> Datum (a -> b) -> Datum b
ifOpt (String -> Datum (Maybe Any)
forall a. String -> Datum a
var String
"labelForVertexId")
Datum Any
forall x. Datum x
nothing
(String -> Datum (Maybe Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"f" (Datum (Maybe Any) -> Datum (Any -> Any))
-> Datum (Maybe Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ Datum (Maybe Any)
-> Datum (Maybe Any)
-> Datum (Any -> Maybe Any)
-> Datum (Maybe Any)
forall a b. Datum (Maybe a) -> Datum b -> Datum (a -> b) -> Datum b
ifOpt (String -> Datum (Any -> Maybe Any)
forall a. String -> Datum a
var String
"f" Datum (Any -> Maybe Any) -> Datum Any -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Edge Name
_Edge_out Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el"))
(Datum Any -> Datum (Maybe Any)
forall x. Datum x -> Datum (Maybe x)
just (String -> Datum (String -> Any)
forall a. String -> Datum a
var String
"failWith" Datum (String -> Any) -> Datum String -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Out-vertex does not exist" Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (Any -> String)
forall a. String -> Datum a
var String
"showValue" Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Edge Name
_Edge_out Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el")))))
(String -> Datum (Maybe String) -> Datum (Any -> Maybe Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"label" (Datum (Maybe String) -> Datum (Any -> Maybe Any))
-> Datum (Maybe String) -> Datum (Any -> Maybe Any)
forall a b. (a -> b) -> a -> b
$ Definition (Bool -> String -> Maybe String)
-> Datum (Bool -> String -> Maybe String)
forall a. Definition a -> Datum a
ref Definition (Bool -> String -> Maybe String)
verifyDef
Datum (Bool -> String -> Maybe String)
-> Datum Bool -> Datum (String -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Datum (String -> String -> Bool)
Equality.equalString
Datum (String -> String -> Bool)
-> Datum String -> Datum (String -> Bool)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_VertexLabel Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"label")
Datum (String -> Bool) -> Datum String -> Datum Bool
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_VertexLabel Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_EdgeType Name
_EdgeType_out Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"typ")))
Datum (String -> Maybe String)
-> Datum String -> Datum (Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (String -> String)
forall a. String -> Datum a
var String
"failWith" Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Wrong out-vertex label" Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Definition (VertexLabel -> VertexLabel -> String)
-> Datum (VertexLabel -> VertexLabel -> String)
forall a. Definition a -> Datum a
ref Definition (VertexLabel -> VertexLabel -> String)
vertexLabelMismatchDef Datum (VertexLabel -> VertexLabel -> String)
-> Datum VertexLabel -> Datum (VertexLabel -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> VertexLabel)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_EdgeType Name
_EdgeType_out Datum (Any -> VertexLabel) -> Datum Any -> Datum VertexLabel
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"typ") Datum (VertexLabel -> String) -> Datum VertexLabel -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum VertexLabel
forall a. String -> Datum a
var String
"label"))))),
String
"checkIn"String -> Datum Any -> Field
forall a. String -> Datum a -> Field
>: Datum (Maybe Any) -> Datum Any -> Datum (Any -> Any) -> Datum Any
forall a b. Datum (Maybe a) -> Datum b -> Datum (a -> b) -> Datum b
ifOpt (String -> Datum (Maybe Any)
forall a. String -> Datum a
var String
"labelForVertexId")
Datum Any
forall x. Datum x
nothing
(String -> Datum (Maybe Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"f" (Datum (Maybe Any) -> Datum (Any -> Any))
-> Datum (Maybe Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ Datum (Maybe Any)
-> Datum (Maybe Any)
-> Datum (Any -> Maybe Any)
-> Datum (Maybe Any)
forall a b. Datum (Maybe a) -> Datum b -> Datum (a -> b) -> Datum b
ifOpt (String -> Datum (Any -> Maybe Any)
forall a. String -> Datum a
var String
"f" Datum (Any -> Maybe Any) -> Datum Any -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Edge Name
_Edge_in Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el"))
(Datum Any -> Datum (Maybe Any)
forall x. Datum x -> Datum (Maybe x)
just (String -> Datum (String -> Any)
forall a. String -> Datum a
var String
"failWith" Datum (String -> Any) -> Datum String -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"In-vertex does not exist" Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (Any -> String)
forall a. String -> Datum a
var String
"showValue" Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Edge Name
_Edge_in Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el")))))
(String -> Datum (Maybe String) -> Datum (Any -> Maybe Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"label" (Datum (Maybe String) -> Datum (Any -> Maybe Any))
-> Datum (Maybe String) -> Datum (Any -> Maybe Any)
forall a b. (a -> b) -> a -> b
$ Definition (Bool -> String -> Maybe String)
-> Datum (Bool -> String -> Maybe String)
forall a. Definition a -> Datum a
ref Definition (Bool -> String -> Maybe String)
verifyDef
Datum (Bool -> String -> Maybe String)
-> Datum Bool -> Datum (String -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Datum (String -> String -> Bool)
Equality.equalString
Datum (String -> String -> Bool)
-> Datum String -> Datum (String -> Bool)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_VertexLabel Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"label")
Datum (String -> Bool) -> Datum String -> Datum Bool
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_VertexLabel Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_EdgeType Name
_EdgeType_in Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"typ")))
Datum (String -> Maybe String)
-> Datum String -> Datum (Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (String -> String)
forall a. String -> Datum a
var String
"failWith" Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Wrong in-vertex label" Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Definition (VertexLabel -> VertexLabel -> String)
-> Datum (VertexLabel -> VertexLabel -> String)
forall a. Definition a -> Datum a
ref Definition (VertexLabel -> VertexLabel -> String)
vertexLabelMismatchDef Datum (VertexLabel -> VertexLabel -> String)
-> Datum VertexLabel -> Datum (VertexLabel -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> VertexLabel)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_EdgeType Name
_EdgeType_in Datum (Any -> VertexLabel) -> Datum Any -> Datum VertexLabel
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"typ") Datum (VertexLabel -> String) -> Datum VertexLabel -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum VertexLabel
forall a. String -> Datum a
var String
"label")))))])
validateElementDef :: Definition (
(t -> v -> Maybe String)
-> (v -> String)
-> Y.Maybe (v -> Y.Maybe PG.VertexLabel)
-> PG.ElementType t
-> PG.Element v
-> Y.Maybe String)
validateElementDef :: forall t v.
Definition
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String)
validateElementDef = String
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String)
-> Definition
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String)
forall a. String -> Datum a -> Definition a
validateDefinition String
"validateElement" (Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String)
-> Definition
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String))
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String)
-> Definition
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String)
forall a b. (a -> b) -> a -> b
$
[Type]
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String)
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String)
forall a. [Type] -> Datum a -> Datum a
functionN [
Type -> Type -> Type
funT Type
tT (Type -> Type -> Type
funT Type
vT (Type -> Type
optionalT Type
stringT)),
Type -> Type -> Type
funT Type
vT Type
stringT,
Type -> Type
optionalT (Type -> Type -> Type
funT Type
vT (Type -> Type
optionalT Type
vertexLabelT)),
Type
elementTypeTT,
Type
elementVT,
Type -> Type
optionalT Type
stringT] (Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String)
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String))
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String)
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String)
forall a b. (a -> b) -> a -> b
$
String
-> Datum (Any -> Any)
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"checkValue" (Datum (Any -> Any)
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String))
-> Datum (Any -> Any)
-> Datum
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> ElementType t
-> Element v
-> Maybe String)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Any -> Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"showValue" (Datum (Any -> Any) -> Datum (Any -> Any))
-> Datum (Any -> Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Any -> Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"labelForVertexId" (Datum (Any -> Any) -> Datum (Any -> Any))
-> Datum (Any -> Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Any -> Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"typ" (Datum (Any -> Any) -> Datum (Any -> Any))
-> Datum (Any -> Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ String -> Datum Any -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"el" (Datum Any -> Datum (Any -> Any))
-> Datum Any -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$
(Name -> Maybe (Datum Any) -> [Field] -> Datum (Any -> Any)
forall b u. Name -> Maybe (Datum b) -> [Field] -> Datum (u -> b)
match Name
_ElementType Maybe (Datum Any)
forall a. Maybe a
Nothing [
Name
_ElementType_vertexName -> Datum (Any -> Any) -> Field
forall a. Name -> Datum a -> Field
>>: String -> Datum Any -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"vt" (Datum Any -> Datum (Any -> Any))
-> Datum Any -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ (Name -> Maybe (Datum Any) -> [Field] -> Datum (Any -> Any)
forall b u. Name -> Maybe (Datum b) -> [Field] -> Datum (u -> b)
match Name
_Element Maybe (Datum Any)
forall a. Maybe a
Nothing [
Name
_Element_edgeName -> Datum (Any -> Any) -> Field
forall a. Name -> Datum a -> Field
>>: String -> Datum (Maybe String) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"e" (Datum (Maybe String) -> Datum (Any -> Any))
-> Datum (Maybe String) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ Datum String -> Datum (Maybe String)
forall x. Datum x -> Datum (Maybe x)
just (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Edge instead of vertex" Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (Any -> String)
forall a. String -> Datum a
var String
"showValue" Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Edge Name
_Edge_id Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"e"))),
Name
_Element_vertexName -> Datum (Any -> Any) -> Field
forall a. Name -> Datum a -> Field
>>: String -> Datum (Maybe String) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"vertex" (Datum (Maybe String) -> Datum (Any -> Any))
-> Datum (Maybe String) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ Definition
((Any -> Any -> Maybe String)
-> (Any -> String) -> VertexType Any -> Vertex Any -> Maybe String)
-> Datum
((Any -> Any -> Maybe String)
-> (Any -> String) -> VertexType Any -> Vertex Any -> Maybe String)
forall a. Definition a -> Datum a
ref Definition
((Any -> Any -> Maybe String)
-> (Any -> String) -> VertexType Any -> Vertex Any -> Maybe String)
forall t v.
Definition
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
validateVertexDef
Datum
((Any -> Any -> Maybe String)
-> (Any -> String) -> VertexType Any -> Vertex Any -> Maybe String)
-> Datum (Any -> Any -> Maybe String)
-> Datum
((Any -> String) -> VertexType Any -> Vertex Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> Any -> Maybe String)
forall a. String -> Datum a
var String
"checkValue"
Datum
((Any -> String) -> VertexType Any -> Vertex Any -> Maybe String)
-> Datum (Any -> String)
-> Datum (VertexType Any -> Vertex Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> String)
forall a. String -> Datum a
var String
"showValue"
Datum (VertexType Any -> Vertex Any -> Maybe String)
-> Datum (VertexType Any) -> Datum (Vertex Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (VertexType Any)
forall a. String -> Datum a
var String
"vt"
Datum (Vertex Any -> Maybe String)
-> Datum (Vertex Any) -> Datum (Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Vertex Any)
forall a. String -> Datum a
var String
"vertex"]) Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el",
Name
_ElementType_edgeName -> Datum (Any -> Any) -> Field
forall a. Name -> Datum a -> Field
>>: String -> Datum Any -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"et" (Datum Any -> Datum (Any -> Any))
-> Datum Any -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ (Name -> Maybe (Datum Any) -> [Field] -> Datum (Any -> Any)
forall b u. Name -> Maybe (Datum b) -> [Field] -> Datum (u -> b)
match Name
_Element Maybe (Datum Any)
forall a. Maybe a
Nothing [
Name
_Element_vertexName -> Datum (Any -> Any) -> Field
forall a. Name -> Datum a -> Field
>>: String -> Datum (Maybe String) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"v" (Datum (Maybe String) -> Datum (Any -> Any))
-> Datum (Maybe String) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ Datum String -> Datum (Maybe String)
forall x. Datum x -> Datum (Maybe x)
just (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Vertex instead of edge" Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (Any -> String)
forall a. String -> Datum a
var String
"showValue" Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Vertex Name
_Vertex_id Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"v"))),
Name
_Element_edgeName -> Datum (Any -> Any) -> Field
forall a. Name -> Datum a -> Field
>>: String -> Datum (Maybe String) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"edge" (Datum (Maybe String) -> Datum (Any -> Any))
-> Datum (Maybe String) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ Definition
((Any -> Any -> Maybe String)
-> (Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any
-> Edge Any
-> Maybe String)
-> Datum
((Any -> Any -> Maybe String)
-> (Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any
-> Edge Any
-> Maybe String)
forall a. Definition a -> Datum a
ref Definition
((Any -> Any -> Maybe String)
-> (Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any
-> Edge Any
-> Maybe String)
forall t v.
Definition
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
validateEdgeDef
Datum
((Any -> Any -> Maybe String)
-> (Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any
-> Edge Any
-> Maybe String)
-> Datum (Any -> Any -> Maybe String)
-> Datum
((Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any
-> Edge Any
-> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> Any -> Maybe String)
forall a. String -> Datum a
var String
"checkValue"
Datum
((Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any
-> Edge Any
-> Maybe String)
-> Datum (Any -> String)
-> Datum
(Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any -> Edge Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> String)
forall a. String -> Datum a
var String
"showValue"
Datum
(Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any -> Edge Any -> Maybe String)
-> Datum (Maybe (Any -> Maybe VertexLabel))
-> Datum (EdgeType Any -> Edge Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Maybe (Any -> Maybe VertexLabel))
forall a. String -> Datum a
var String
"labelForVertexId"
Datum (EdgeType Any -> Edge Any -> Maybe String)
-> Datum (EdgeType Any) -> Datum (Edge Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (EdgeType Any)
forall a. String -> Datum a
var String
"et"
Datum (Edge Any -> Maybe String)
-> Datum (Edge Any) -> Datum (Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Edge Any)
forall a. String -> Datum a
var String
"edge"]) Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el"]) Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"typ"
validateGraphDef :: Definition (
(t -> v -> Maybe String)
-> (v -> String)
-> PG.GraphSchema t
-> PG.Graph v
-> Y.Maybe String)
validateGraphDef :: forall t v.
Definition
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String)
validateGraphDef = String
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String)
-> Definition
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String)
forall a. String -> Datum a -> Definition a
validateDefinition String
"validateGraph" (Datum
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String)
-> Definition
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String))
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String)
-> Definition
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String)
forall a b. (a -> b) -> a -> b
$
[Type]
-> Map Name (Set TypeClass)
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String)
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String)
forall a. [Type] -> Map Name (Set TypeClass) -> Datum a -> Datum a
functionNWithClasses [
Type -> Type -> Type
funT Type
tT (Type -> Type -> Type
funT Type
vT (Type -> Type
optionalT Type
stringT)),
Type -> Type -> Type
funT Type
vT Type
stringT,
Type
graphSchemaTT,
Type
graphVT,
Type -> Type
optionalT Type
stringT] Map Name (Set TypeClass)
ordV (Datum
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String)
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String))
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String)
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String)
forall a b. (a -> b) -> a -> b
$
String
-> Datum (Any -> Any)
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"checkValue" (Datum (Any -> Any)
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String))
-> Datum (Any -> Any)
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> GraphSchema t -> Graph v -> Maybe String)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Any -> Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"showValue" (Datum (Any -> Any) -> Datum (Any -> Any))
-> Datum (Any -> Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Any -> Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"schema" (Datum (Any -> Any) -> Datum (Any -> Any))
-> Datum (Any -> Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Maybe Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"graph" (Datum (Maybe Any) -> Datum (Any -> Any))
-> Datum (Maybe Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$
(Definition ([Maybe Any] -> Maybe Any)
-> Datum ([Maybe Any] -> Maybe Any)
forall a. Definition a -> Datum a
ref Definition ([Maybe Any] -> Maybe Any)
forall a. Definition ([Maybe a] -> Maybe a)
checkAllDef Datum ([Maybe Any] -> Maybe Any)
-> Datum [Maybe Any] -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ [Datum (Maybe Any)] -> Datum [Maybe Any]
forall a. [Datum a] -> Datum [a]
list [String -> Datum (Maybe Any)
forall a. String -> Datum a
var String
"checkVertices", String -> Datum (Maybe Any)
forall a. String -> Datum a
var String
"checkEdges"])
Datum (Maybe Any) -> [Field] -> Datum (Maybe Any)
forall a. Datum a -> [Field] -> Datum a
`with` [
String
"checkVertices"String -> Datum (Maybe Any) -> Field
forall a. String -> Datum a -> Field
>: (Definition ([Maybe Any] -> Maybe Any)
-> Datum ([Maybe Any] -> Maybe Any)
forall a. Definition a -> Datum a
ref Definition ([Maybe Any] -> Maybe Any)
forall a. Definition ([Maybe a] -> Maybe a)
checkAllDef
Datum ([Maybe Any] -> Maybe Any)
-> Datum [Maybe Any] -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Datum ((Any -> Maybe Any) -> [Any] -> [Maybe Any])
forall a b. Datum ((a -> b) -> [a] -> [b])
Lists.map Datum ((Any -> Maybe Any) -> [Any] -> [Maybe Any])
-> Datum (Any -> Maybe Any) -> Datum ([Any] -> [Maybe Any])
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> Maybe Any)
forall a. String -> Datum a
var String
"checkVertex" Datum ([Any] -> [Maybe Any]) -> Datum [Any] -> Datum [Maybe Any]
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Datum (Map Any Any -> [Any])
forall k v. Datum (Map k v -> [v])
Maps.values Datum (Map Any Any -> [Any]) -> Datum (Map Any Any) -> Datum [Any]
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Map Any Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Graph Name
_Graph_vertices Datum (Any -> Map Any Any) -> Datum Any -> Datum (Map Any Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"graph"))))
Datum (Maybe Any) -> [Field] -> Datum (Maybe Any)
forall a. Datum a -> [Field] -> Datum a
`with` [
String
"checkVertex"String -> Datum (Any -> Any) -> Field
forall a. String -> Datum a -> Field
>: String -> Datum (Maybe String) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"el" (Datum (Maybe String) -> Datum (Any -> Any))
-> Datum (Maybe String) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ Datum (Maybe Any)
-> Datum (Maybe String)
-> Datum (Any -> Maybe String)
-> Datum (Maybe String)
forall a b. Datum (Maybe a) -> Datum b -> Datum (a -> b) -> Datum b
ifOpt (Datum (Any -> Map Any Any -> Maybe Any)
forall k v. Datum (k -> Map k v -> Maybe v)
Maps.lookup
Datum (Any -> Map Any Any -> Maybe Any)
-> Datum Any -> Datum (Map Any Any -> Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Vertex Name
_Vertex_label Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el")
Datum (Map Any Any -> Maybe Any)
-> Datum (Map Any Any) -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Map Any Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_GraphSchema Name
_GraphSchema_vertices Datum (Any -> Map Any Any) -> Datum Any -> Datum (Map Any Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"schema"))
(Datum String -> Datum (Maybe String)
forall x. Datum x -> Datum (Maybe x)
just (Definition ((Any -> String) -> Vertex Any -> String -> String)
-> Datum ((Any -> String) -> Vertex Any -> String -> String)
forall a. Definition a -> Datum a
ref Definition ((Any -> String) -> Vertex Any -> String -> String)
forall v.
Definition ((v -> String) -> Vertex v -> String -> String)
vertexErrorDef Datum ((Any -> String) -> Vertex Any -> String -> String)
-> Datum (Any -> String) -> Datum (Vertex Any -> String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> String)
forall a. String -> Datum a
var String
"showValue" Datum (Vertex Any -> String -> String)
-> Datum (Vertex Any) -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Vertex Any)
forall a. String -> Datum a
var String
"el"
Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Unexpected label" Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_VertexLabel Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Vertex Name
_Vertex_label Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el")))))
(String -> Datum (Maybe String) -> Datum (Any -> Maybe String)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"t" (Datum (Maybe String) -> Datum (Any -> Maybe String))
-> Datum (Maybe String) -> Datum (Any -> Maybe String)
forall a b. (a -> b) -> a -> b
$ Definition
((Any -> Any -> Maybe String)
-> (Any -> String) -> VertexType Any -> Vertex Any -> Maybe String)
-> Datum
((Any -> Any -> Maybe String)
-> (Any -> String) -> VertexType Any -> Vertex Any -> Maybe String)
forall a. Definition a -> Datum a
ref Definition
((Any -> Any -> Maybe String)
-> (Any -> String) -> VertexType Any -> Vertex Any -> Maybe String)
forall t v.
Definition
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
validateVertexDef
Datum
((Any -> Any -> Maybe String)
-> (Any -> String) -> VertexType Any -> Vertex Any -> Maybe String)
-> Datum (Any -> Any -> Maybe String)
-> Datum
((Any -> String) -> VertexType Any -> Vertex Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> Any -> Maybe String)
forall a. String -> Datum a
var String
"checkValue"
Datum
((Any -> String) -> VertexType Any -> Vertex Any -> Maybe String)
-> Datum (Any -> String)
-> Datum (VertexType Any -> Vertex Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> String)
forall a. String -> Datum a
var String
"showValue"
Datum (VertexType Any -> Vertex Any -> Maybe String)
-> Datum (VertexType Any) -> Datum (Vertex Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (VertexType Any)
forall a. String -> Datum a
var String
"t"
Datum (Vertex Any -> Maybe String)
-> Datum (Vertex Any) -> Datum (Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Vertex Any)
forall a. String -> Datum a
var String
"el")],
String
"checkEdges"String -> Datum (Maybe Any) -> Field
forall a. String -> Datum a -> Field
>: (Definition ([Maybe Any] -> Maybe Any)
-> Datum ([Maybe Any] -> Maybe Any)
forall a. Definition a -> Datum a
ref Definition ([Maybe Any] -> Maybe Any)
forall a. Definition ([Maybe a] -> Maybe a)
checkAllDef
Datum ([Maybe Any] -> Maybe Any)
-> Datum [Maybe Any] -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Datum ((Any -> Maybe Any) -> [Any] -> [Maybe Any])
forall a b. Datum ((a -> b) -> [a] -> [b])
Lists.map Datum ((Any -> Maybe Any) -> [Any] -> [Maybe Any])
-> Datum (Any -> Maybe Any) -> Datum ([Any] -> [Maybe Any])
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> Maybe Any)
forall a. String -> Datum a
var String
"checkEdge" Datum ([Any] -> [Maybe Any]) -> Datum [Any] -> Datum [Maybe Any]
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Datum (Map Any Any -> [Any])
forall k v. Datum (Map k v -> [v])
Maps.values Datum (Map Any Any -> [Any]) -> Datum (Map Any Any) -> Datum [Any]
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Map Any Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Graph Name
_Graph_edges Datum (Any -> Map Any Any) -> Datum Any -> Datum (Map Any Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"graph"))))
Datum (Maybe Any) -> [Field] -> Datum (Maybe Any)
forall a. Datum a -> [Field] -> Datum a
`with` [
String
"checkEdge"String -> Datum (Any -> Any) -> Field
forall a. String -> Datum a -> Field
>: String -> Datum (Maybe String) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"el" (Datum (Maybe String) -> Datum (Any -> Any))
-> Datum (Maybe String) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ Datum (Maybe Any)
-> Datum (Maybe String)
-> Datum (Any -> Maybe String)
-> Datum (Maybe String)
forall a b. Datum (Maybe a) -> Datum b -> Datum (a -> b) -> Datum b
ifOpt (Datum (Any -> Map Any Any -> Maybe Any)
forall k v. Datum (k -> Map k v -> Maybe v)
Maps.lookup
Datum (Any -> Map Any Any -> Maybe Any)
-> Datum Any -> Datum (Map Any Any -> Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Edge Name
_Edge_label Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el")
Datum (Map Any Any -> Maybe Any)
-> Datum (Map Any Any) -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Map Any Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_GraphSchema Name
_GraphSchema_edges Datum (Any -> Map Any Any) -> Datum Any -> Datum (Map Any Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"schema"))
(Datum String -> Datum (Maybe String)
forall x. Datum x -> Datum (Maybe x)
just (Definition ((Any -> String) -> Edge Any -> String -> String)
-> Datum ((Any -> String) -> Edge Any -> String -> String)
forall a. Definition a -> Datum a
ref Definition ((Any -> String) -> Edge Any -> String -> String)
forall v. Definition ((v -> String) -> Edge v -> String -> String)
edgeErrorDef Datum ((Any -> String) -> Edge Any -> String -> String)
-> Datum (Any -> String) -> Datum (Edge Any -> String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> String)
forall a. String -> Datum a
var String
"showValue" Datum (Edge Any -> String -> String)
-> Datum (Edge Any) -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Edge Any)
forall a. String -> Datum a
var String
"el"
Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Unexpected label" Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_EdgeLabel Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Edge Name
_Edge_label Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el")))))
(String -> Datum (Maybe String) -> Datum (Any -> Maybe String)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"t" (Datum (Maybe String) -> Datum (Any -> Maybe String))
-> Datum (Maybe String) -> Datum (Any -> Maybe String)
forall a b. (a -> b) -> a -> b
$ Definition
((Any -> Any -> Maybe String)
-> (Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any
-> Edge Any
-> Maybe String)
-> Datum
((Any -> Any -> Maybe String)
-> (Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any
-> Edge Any
-> Maybe String)
forall a. Definition a -> Datum a
ref Definition
((Any -> Any -> Maybe String)
-> (Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any
-> Edge Any
-> Maybe String)
forall t v.
Definition
((t -> v -> Maybe String)
-> (v -> String)
-> Maybe (v -> Maybe VertexLabel)
-> EdgeType t
-> Edge v
-> Maybe String)
validateEdgeDef
Datum
((Any -> Any -> Maybe String)
-> (Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any
-> Edge Any
-> Maybe String)
-> Datum (Any -> Any -> Maybe String)
-> Datum
((Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any
-> Edge Any
-> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> Any -> Maybe String)
forall a. String -> Datum a
var String
"checkValue"
Datum
((Any -> String)
-> Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any
-> Edge Any
-> Maybe String)
-> Datum (Any -> String)
-> Datum
(Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any -> Edge Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> String)
forall a. String -> Datum a
var String
"showValue"
Datum
(Maybe (Any -> Maybe VertexLabel)
-> EdgeType Any -> Edge Any -> Maybe String)
-> Datum (Maybe (Any -> Maybe VertexLabel))
-> Datum (EdgeType Any -> Edge Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Maybe (Any -> Maybe VertexLabel))
forall a. String -> Datum a
var String
"labelForVertexId"
Datum (EdgeType Any -> Edge Any -> Maybe String)
-> Datum (EdgeType Any) -> Datum (Edge Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (EdgeType Any)
forall a. String -> Datum a
var String
"t"
Datum (Edge Any -> Maybe String)
-> Datum (Edge Any) -> Datum (Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Edge Any)
forall a. String -> Datum a
var String
"el"),
String
"labelForVertexId"String -> Datum (Maybe (Any -> Any)) -> Field
forall a. String -> Datum a -> Field
>: Type -> Datum (Maybe (Any -> Any)) -> Datum (Maybe (Any -> Any))
forall a. Type -> Datum a -> Datum a
typed (Type -> Type
optionalT (Type -> Type -> Type
funT Type
vT (Type -> Type
optionalT Type
vertexLabelT))) (Datum (Maybe (Any -> Any)) -> Datum (Maybe (Any -> Any)))
-> Datum (Maybe (Any -> Any)) -> Datum (Maybe (Any -> Any))
forall a b. (a -> b) -> a -> b
$
Datum (Any -> Any) -> Datum (Maybe (Any -> Any))
forall x. Datum x -> Datum (Maybe x)
just (Datum (Any -> Any) -> Datum (Maybe (Any -> Any)))
-> Datum (Any -> Any) -> Datum (Maybe (Any -> Any))
forall a b. (a -> b) -> a -> b
$ String -> Datum (Maybe Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"i" (Datum (Maybe Any) -> Datum (Any -> Any))
-> Datum (Maybe Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ Datum ((Any -> Any) -> Maybe Any -> Maybe Any)
forall a b. Datum ((a -> b) -> Maybe a -> Maybe b)
Optionals.map Datum ((Any -> Any) -> Maybe Any -> Maybe Any)
-> Datum (Any -> Any) -> Datum (Maybe Any -> Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Vertex Name
_Vertex_label) Datum (Maybe Any -> Maybe Any)
-> Datum (Maybe Any) -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Datum (Any -> Map Any Any -> Maybe Any)
forall k v. Datum (k -> Map k v -> Maybe v)
Maps.lookup Datum (Any -> Map Any Any -> Maybe Any)
-> Datum Any -> Datum (Map Any Any -> Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"i" Datum (Map Any Any -> Maybe Any)
-> Datum (Map Any Any) -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Map Any Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Graph Name
_Graph_vertices Datum (Any -> Map Any Any) -> Datum Any -> Datum (Map Any Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"graph"))]]
validatePropertiesDef :: Definition (
(t -> v -> Maybe String)
-> [PG.PropertyType t]
-> M.Map PG.PropertyKey v
-> Y.Maybe String)
validatePropertiesDef :: forall t v.
Definition
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
validatePropertiesDef = String
-> Datum
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
-> Definition
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
forall a. String -> Datum a -> Definition a
validateDefinition String
"validateProperties" (Datum
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
-> Definition
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String))
-> Datum
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
-> Definition
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
forall a b. (a -> b) -> a -> b
$
[Type]
-> Datum
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
-> Datum
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
forall a. [Type] -> Datum a -> Datum a
functionN [
Type -> Type -> Type
funT Type
tT (Type -> Type -> Type
funT Type
vT (Type -> Type
optionalT Type
stringT)),
Type -> Type
listT Type
propertyTypeTT,
Type -> Type -> Type
mapT Type
propertyKeyT Type
vT,
Type -> Type
optionalT Type
stringT] (Datum
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
-> Datum
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String))
-> Datum
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
-> Datum
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
forall a b. (a -> b) -> a -> b
$
String
-> Datum (Any -> Any)
-> Datum
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"checkValue" (Datum (Any -> Any)
-> Datum
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String))
-> Datum (Any -> Any)
-> Datum
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Any -> Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"types" (Datum (Any -> Any) -> Datum (Any -> Any))
-> Datum (Any -> Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Maybe Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"props" (Datum (Maybe Any) -> Datum (Any -> Any))
-> Datum (Maybe Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$
((Definition ([Maybe Any] -> Maybe Any)
-> Datum ([Maybe Any] -> Maybe Any)
forall a. Definition a -> Datum a
ref Definition ([Maybe Any] -> Maybe Any)
forall a. Definition ([Maybe a] -> Maybe a)
checkAllDef Datum ([Maybe Any] -> Maybe Any)
-> Datum [Maybe Any] -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ [Datum (Maybe Any)] -> Datum [Maybe Any]
forall a. [Datum a] -> Datum [a]
list [String -> Datum (Maybe Any)
forall a. String -> Datum a
var String
"checkTypes", String -> Datum (Maybe Any)
forall a. String -> Datum a
var String
"checkValues"])
Datum (Maybe Any) -> [Field] -> Datum (Maybe Any)
forall a. Datum a -> [Field] -> Datum a
`with` [
String
"checkTypes"String -> Datum (Maybe Any) -> Field
forall a. String -> Datum a -> Field
>: Definition ([Maybe Any] -> Maybe Any)
-> Datum ([Maybe Any] -> Maybe Any)
forall a. Definition a -> Datum a
ref Definition ([Maybe Any] -> Maybe Any)
forall a. Definition ([Maybe a] -> Maybe a)
checkAllDef Datum ([Maybe Any] -> Maybe Any)
-> Datum [Maybe Any] -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Datum ((Any -> Maybe Any) -> [Any] -> [Maybe Any])
forall a b. Datum ((a -> b) -> [a] -> [b])
Lists.map Datum ((Any -> Maybe Any) -> [Any] -> [Maybe Any])
-> Datum (Any -> Maybe Any) -> Datum ([Any] -> [Maybe Any])
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> Maybe Any)
forall a. String -> Datum a
var String
"checkType" Datum ([Any] -> [Maybe Any]) -> Datum [Any] -> Datum [Maybe Any]
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum [Any]
forall a. String -> Datum a
var String
"types"),
String
"checkType"String -> Datum (Any -> Any) -> Field
forall a. String -> Datum a -> Field
>:
Type -> Datum (Any -> Any) -> Datum (Any -> Any)
forall a. Type -> Datum a -> Datum a
typed (Type -> Type -> Type
funT Type
propertyTypeTT (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ Type -> Type
optionalT Type
stringT) (Datum (Any -> Any) -> Datum (Any -> Any))
-> Datum (Any -> Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$
String -> Datum (Maybe String) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"t" (Datum (Maybe String) -> Datum (Any -> Any))
-> Datum (Maybe String) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ Datum Bool
-> Datum (Maybe String)
-> Datum (Maybe String)
-> Datum (Maybe String)
forall a. Datum Bool -> Datum a -> Datum a -> Datum a
ifElse (Name -> Name -> Datum (Any -> Bool)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_PropertyType Name
_PropertyType_required Datum (Any -> Bool) -> Datum Any -> Datum Bool
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"t")
(Datum (Maybe Any)
-> Datum (Maybe String)
-> Datum (Any -> Maybe String)
-> Datum (Maybe String)
forall a b. Datum (Maybe a) -> Datum b -> Datum (a -> b) -> Datum b
ifOpt (Datum (Any -> Map Any Any -> Maybe Any)
forall k v. Datum (k -> Map k v -> Maybe v)
Maps.lookup Datum (Any -> Map Any Any -> Maybe Any)
-> Datum Any -> Datum (Map Any Any -> Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_PropertyType Name
_PropertyType_key Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"t") Datum (Map Any Any -> Maybe Any)
-> Datum (Map Any Any) -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Map Any Any)
forall a. String -> Datum a
var String
"props")
(Datum String -> Datum (Maybe String)
forall x. Datum x -> Datum (Maybe x)
just (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Missing value for " Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_PropertyKey Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_PropertyType Name
_PropertyType_key Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"t"))))
(Datum (Maybe String) -> Datum (Any -> Maybe String)
forall a b. Datum a -> Datum (b -> a)
constant Datum (Maybe String)
forall x. Datum x
nothing))
Datum (Maybe String)
forall x. Datum x
nothing,
String
"checkValues"String -> Datum (Maybe Any) -> Field
forall a. String -> Datum a -> Field
>: ((Definition ([Maybe Any] -> Maybe Any)
-> Datum ([Maybe Any] -> Maybe Any)
forall a. Definition a -> Datum a
ref Definition ([Maybe Any] -> Maybe Any)
forall a. Definition ([Maybe a] -> Maybe a)
checkAllDef Datum ([Maybe Any] -> Maybe Any)
-> Datum [Maybe Any] -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Datum (((Any, Any) -> Maybe Any) -> [(Any, Any)] -> [Maybe Any])
forall a b. Datum ((a -> b) -> [a] -> [b])
Lists.map Datum (((Any, Any) -> Maybe Any) -> [(Any, Any)] -> [Maybe Any])
-> Datum ((Any, Any) -> Maybe Any)
-> Datum ([(Any, Any)] -> [Maybe Any])
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum ((Any, Any) -> Maybe Any)
forall a. String -> Datum a
var String
"checkPair" Datum ([(Any, Any)] -> [Maybe Any])
-> Datum [(Any, Any)] -> Datum [Maybe Any]
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Datum (Map Any Any -> [(Any, Any)])
forall k v. Datum (Map k v -> [(k, v)])
Maps.toList Datum (Map Any Any -> [(Any, Any)])
-> Datum (Map Any Any) -> Datum [(Any, Any)]
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Map Any Any)
forall a. String -> Datum a
var String
"props")))
Datum (Maybe Any) -> [Field] -> Datum (Maybe Any)
forall a. Datum a -> [Field] -> Datum a
`with` [
String
"m"String -> Datum (Map Any Any) -> Field
forall a. String -> Datum a -> Field
>: Type -> Datum (Map Any Any) -> Datum (Map Any Any)
forall a. Type -> Datum a -> Datum a
typed (Type -> Type -> Type
mapT Type
propertyKeyT Type
tT) (Datum (Map Any Any) -> Datum (Map Any Any))
-> Datum (Map Any Any) -> Datum (Map Any Any)
forall a b. (a -> b) -> a -> b
$
Datum ([(Any, Any)] -> Map Any Any)
forall k v. Datum ([(k, v)] -> Map k v)
Maps.fromList Datum ([(Any, Any)] -> Map Any Any)
-> Datum [(Any, Any)] -> Datum (Map Any Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Datum ((Any -> (Any, Any)) -> [Any] -> [(Any, Any)])
forall a b. Datum ((a -> b) -> [a] -> [b])
Lists.map
Datum ((Any -> (Any, Any)) -> [Any] -> [(Any, Any)])
-> Datum (Any -> (Any, Any)) -> Datum ([Any] -> [(Any, Any)])
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (Any, Any) -> Datum (Any -> (Any, Any))
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"p" (Datum (Any, Any) -> Datum (Any -> (Any, Any)))
-> Datum (Any, Any) -> Datum (Any -> (Any, Any))
forall a b. (a -> b) -> a -> b
$ (Datum Any, Datum Any) -> Datum (Any, Any)
forall a b. (Datum a, Datum b) -> Datum (a, b)
pair (
Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_PropertyType Name
_PropertyType_key Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"p",
Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_PropertyType Name
_PropertyType_value Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"p"))
Datum ([Any] -> [(Any, Any)]) -> Datum [Any] -> Datum [(Any, Any)]
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum [Any]
forall a. String -> Datum a
var String
"types"),
String
"checkPair"String -> Datum (Any -> Any) -> Field
forall a. String -> Datum a -> Field
>: String -> Datum (Maybe String) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"pair" (Datum (Maybe String) -> Datum (Any -> Any))
-> Datum (Maybe String) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ ((Datum (Maybe Any)
-> Datum (Maybe String)
-> Datum (Any -> Maybe String)
-> Datum (Maybe String)
forall a b. Datum (Maybe a) -> Datum b -> Datum (a -> b) -> Datum b
ifOpt (Datum (Any -> Map Any Any -> Maybe Any)
forall k v. Datum (k -> Map k v -> Maybe v)
Maps.lookup Datum (Any -> Map Any Any -> Maybe Any)
-> Datum Any -> Datum (Map Any Any -> Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"key" Datum (Map Any Any -> Maybe Any)
-> Datum (Map Any Any) -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Map Any Any)
forall a. String -> Datum a
var String
"m")
(Datum String -> Datum (Maybe String)
forall x. Datum x -> Datum (Maybe x)
just (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Unexpected key" Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_PropertyKey Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"key")))
(String -> Datum (Maybe String) -> Datum (Any -> Maybe String)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"typ" (Datum (Maybe String) -> Datum (Any -> Maybe String))
-> Datum (Maybe String) -> Datum (Any -> Maybe String)
forall a b. (a -> b) -> a -> b
$ Datum ((String -> String) -> Maybe String -> Maybe String)
forall a b. Datum ((a -> b) -> Maybe a -> Maybe b)
Optionals.map
Datum ((String -> String) -> Maybe String -> Maybe String)
-> Datum (String -> String) -> Datum (Maybe String -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Invalid value")
Datum (Maybe String -> Maybe String)
-> Datum (Maybe String) -> Datum (Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (Any -> Any -> Maybe String)
forall a. String -> Datum a
var String
"checkValue" Datum (Any -> Any -> Maybe String)
-> Datum Any -> Datum (Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"typ" Datum (Any -> Maybe String) -> Datum Any -> Datum (Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"val")))
Datum (Maybe String) -> [Field] -> Datum (Maybe String)
forall a. Datum a -> [Field] -> Datum a
`with` [
String
"key"String -> Datum Any -> Field
forall a. String -> Datum a -> Field
>: Datum ((Any, Any) -> Any)
forall a b. Datum ((a, b) -> a)
first Datum ((Any, Any) -> Any) -> Datum (Any, Any) -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any, Any)
forall a. String -> Datum a
var String
"pair",
String
"val"String -> Datum Any -> Field
forall a. String -> Datum a -> Field
>: Datum ((Any, Any) -> Any)
forall a b. Datum ((a, b) -> b)
second Datum ((Any, Any) -> Any) -> Datum (Any, Any) -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any, Any)
forall a. String -> Datum a
var String
"pair"])])])
validateVertexDef :: Definition (
(t -> v -> Maybe String)
-> (v -> String)
-> PG.VertexType t
-> PG.Vertex v
-> Y.Maybe String)
validateVertexDef :: forall t v.
Definition
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
validateVertexDef = String
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
-> Definition
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
forall a. String -> Datum a -> Definition a
validateDefinition String
"validateVertex" (Datum
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
-> Definition
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String))
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
-> Definition
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
forall a b. (a -> b) -> a -> b
$
[Type]
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
forall a. [Type] -> Datum a -> Datum a
functionN [
Type -> Type -> Type
funT Type
tT (Type -> Type -> Type
funT Type
vT (Type -> Type
optionalT Type
stringT)),
Type -> Type -> Type
funT Type
vT Type
stringT,
Type
vertexTypeTT,
Type
vertexVT,
Type -> Type
optionalT Type
stringT] (Datum
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String))
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
forall a b. (a -> b) -> a -> b
$
String
-> Datum (Any -> Any)
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"checkValue" (Datum (Any -> Any)
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String))
-> Datum (Any -> Any)
-> Datum
((t -> v -> Maybe String)
-> (v -> String) -> VertexType t -> Vertex v -> Maybe String)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Any -> Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"showValue" (Datum (Any -> Any) -> Datum (Any -> Any))
-> Datum (Any -> Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Any -> Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"typ" (Datum (Any -> Any) -> Datum (Any -> Any))
-> Datum (Any -> Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Maybe Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"el" (Datum (Maybe Any) -> Datum (Any -> Any))
-> Datum (Maybe Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$
((Definition ([Maybe Any] -> Maybe Any)
-> Datum ([Maybe Any] -> Maybe Any)
forall a. Definition a -> Datum a
ref Definition ([Maybe Any] -> Maybe Any)
forall a. Definition ([Maybe a] -> Maybe a)
checkAllDef Datum ([Maybe Any] -> Maybe Any)
-> Datum [Maybe Any] -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ [Datum (Maybe Any)] -> Datum [Maybe Any]
forall a. [Datum a] -> Datum [a]
list [String -> Datum (Maybe Any)
forall a. String -> Datum a
var String
"checkLabel", String -> Datum (Maybe Any)
forall a. String -> Datum a
var String
"checkId", String -> Datum (Maybe Any)
forall a. String -> Datum a
var String
"checkProperties"])
Datum (Maybe Any) -> [Field] -> Datum (Maybe Any)
forall a. Datum a -> [Field] -> Datum a
`with` [
String
"failWith"String -> Datum (String -> String) -> Field
forall a. String -> Datum a -> Field
>: Type -> Datum (String -> String) -> Datum (String -> String)
forall a. Type -> Datum a -> Datum a
typed (Type -> Type -> Type
funT Type
stringT Type
stringT) (Datum (String -> String) -> Datum (String -> String))
-> Datum (String -> String) -> Datum (String -> String)
forall a b. (a -> b) -> a -> b
$
Definition ((Any -> String) -> Vertex Any -> String -> String)
-> Datum ((Any -> String) -> Vertex Any -> String -> String)
forall a. Definition a -> Datum a
ref Definition ((Any -> String) -> Vertex Any -> String -> String)
forall v.
Definition ((v -> String) -> Vertex v -> String -> String)
vertexErrorDef Datum ((Any -> String) -> Vertex Any -> String -> String)
-> Datum (Any -> String) -> Datum (Vertex Any -> String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> String)
forall a. String -> Datum a
var String
"showValue" Datum (Vertex Any -> String -> String)
-> Datum (Vertex Any) -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Vertex Any)
forall a. String -> Datum a
var String
"el",
String
"checkLabel"String -> Datum (Maybe String) -> Field
forall a. String -> Datum a -> Field
>: (Definition (Bool -> String -> Maybe String)
-> Datum (Bool -> String -> Maybe String)
forall a. Definition a -> Datum a
ref Definition (Bool -> String -> Maybe String)
verifyDef
Datum (Bool -> String -> Maybe String)
-> Datum Bool -> Datum (String -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Datum (String -> String -> Bool)
Equality.equalString
Datum (String -> String -> Bool)
-> Datum String -> Datum (String -> Bool)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_VertexLabel Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"actual")
Datum (String -> Bool) -> Datum String -> Datum Bool
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_VertexLabel Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"expected"))
Datum (String -> Maybe String)
-> Datum String -> Datum (Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (String -> String)
forall a. String -> Datum a
var String
"failWith" Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Wrong label" Datum (String -> String) -> Datum String -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Definition (VertexLabel -> VertexLabel -> String)
-> Datum (VertexLabel -> VertexLabel -> String)
forall a. Definition a -> Datum a
ref Definition (VertexLabel -> VertexLabel -> String)
vertexLabelMismatchDef Datum (VertexLabel -> VertexLabel -> String)
-> Datum VertexLabel -> Datum (VertexLabel -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum VertexLabel
forall a. String -> Datum a
var String
"expected" Datum (VertexLabel -> String) -> Datum VertexLabel -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum VertexLabel
forall a. String -> Datum a
var String
"actual"))))
Datum (Maybe String) -> [Field] -> Datum (Maybe String)
forall a. Datum a -> [Field] -> Datum a
`with` [
String
"expected"String -> Datum Any -> Field
forall a. String -> Datum a -> Field
>: Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_VertexType Name
_VertexType_label Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"typ",
String
"actual"String -> Datum Any -> Field
forall a. String -> Datum a -> Field
>: Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Vertex Name
_Vertex_label Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el"],
String
"checkId"String -> Datum (Maybe Any) -> Field
forall a. String -> Datum a -> Field
>: Datum ((String -> Any) -> Maybe String -> Maybe Any)
forall a b. Datum ((a -> b) -> Maybe a -> Maybe b)
Optionals.map
Datum ((String -> Any) -> Maybe String -> Maybe Any)
-> Datum (String -> Any) -> Datum (Maybe String -> Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (String -> Any)
forall a. String -> Datum a
var String
"failWith" Datum (String -> Any)
-> Datum (String -> String) -> Datum (String -> Any)
forall b c a. Datum (b -> c) -> Datum (a -> b) -> Datum (a -> c)
<.> (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Invalid id"))
Datum (Maybe String -> Maybe Any)
-> Datum (Maybe String) -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (Any -> Any -> Maybe String)
forall a. String -> Datum a
var String
"checkValue" Datum (Any -> Any -> Maybe String)
-> Datum Any -> Datum (Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_VertexType Name
_VertexType_id Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"typ") Datum (Any -> Maybe String) -> Datum Any -> Datum (Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Vertex Name
_Vertex_id Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el")),
String
"checkProperties"String -> Datum (Maybe Any) -> Field
forall a. String -> Datum a -> Field
>: Datum ((String -> Any) -> Maybe String -> Maybe Any)
forall a b. Datum ((a -> b) -> Maybe a -> Maybe b)
Optionals.map
Datum ((String -> Any) -> Maybe String -> Maybe Any)
-> Datum (String -> Any) -> Datum (Maybe String -> Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (String -> Datum (String -> Any)
forall a. String -> Datum a
var String
"failWith" Datum (String -> Any)
-> Datum (String -> String) -> Datum (String -> Any)
forall b c a. Datum (b -> c) -> Datum (a -> b) -> Datum (a -> c)
<.> (Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ Datum String
"Invalid property"))
Datum (Maybe String -> Maybe Any)
-> Datum (Maybe String) -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Definition
((Any -> Any -> Maybe String)
-> [PropertyType Any] -> Map PropertyKey Any -> Maybe String)
-> Datum
((Any -> Any -> Maybe String)
-> [PropertyType Any] -> Map PropertyKey Any -> Maybe String)
forall a. Definition a -> Datum a
ref Definition
((Any -> Any -> Maybe String)
-> [PropertyType Any] -> Map PropertyKey Any -> Maybe String)
forall t v.
Definition
((t -> v -> Maybe String)
-> [PropertyType t] -> Map PropertyKey v -> Maybe String)
validatePropertiesDef
Datum
((Any -> Any -> Maybe String)
-> [PropertyType Any] -> Map PropertyKey Any -> Maybe String)
-> Datum (Any -> Any -> Maybe String)
-> Datum
([PropertyType Any] -> Map PropertyKey Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum (Any -> Any -> Maybe String)
forall a. String -> Datum a
var String
"checkValue"
Datum ([PropertyType Any] -> Map PropertyKey Any -> Maybe String)
-> Datum [PropertyType Any]
-> Datum (Map PropertyKey Any -> Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> [PropertyType Any])
forall a b. Name -> Name -> Datum (a -> b)
project Name
_VertexType Name
_VertexType_properties Datum (Any -> [PropertyType Any])
-> Datum Any -> Datum [PropertyType Any]
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"typ")
Datum (Map PropertyKey Any -> Maybe String)
-> Datum (Map PropertyKey Any) -> Datum (Maybe String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Map PropertyKey Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Vertex Name
_Vertex_properties Datum (Any -> Map PropertyKey Any)
-> Datum Any -> Datum (Map PropertyKey Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"el"))])
checkAllDef :: Definition ([Y.Maybe a] -> Y.Maybe a)
checkAllDef :: forall a. Definition ([Maybe a] -> Maybe a)
checkAllDef = String
-> Datum ([Maybe a] -> Maybe a)
-> Definition ([Maybe a] -> Maybe a)
forall a. String -> Datum a -> Definition a
validateDefinition String
"checkAll" (Datum ([Maybe a] -> Maybe a) -> Definition ([Maybe a] -> Maybe a))
-> Datum ([Maybe a] -> Maybe a)
-> Definition ([Maybe a] -> Maybe a)
forall a b. (a -> b) -> a -> b
$
Type
-> Type
-> Datum ([Maybe a] -> Maybe a)
-> Datum ([Maybe a] -> Maybe a)
forall a. Type -> Type -> Datum a -> Datum a
function (Type -> Type
listT (Type -> Type) -> Type -> Type
forall a b. (a -> b) -> a -> b
$ Type -> Type
optionalT Type
aT) (Type -> Type
optionalT Type
aT) (Datum ([Maybe a] -> Maybe a) -> Datum ([Maybe a] -> Maybe a))
-> Datum ([Maybe a] -> Maybe a) -> Datum ([Maybe a] -> Maybe a)
forall a b. (a -> b) -> a -> b
$
String -> Datum (Maybe Any) -> Datum ([Maybe a] -> Maybe a)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"checks" (
(Datum ([Any] -> Maybe Any)
forall a. Datum ([a] -> Maybe a)
Lists.safeHead Datum ([Any] -> Maybe Any) -> Datum [Any] -> Datum (Maybe Any)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum [Any]
forall a. String -> Datum a
var String
"errors")
Datum (Maybe Any) -> [Field] -> Datum (Maybe Any)
forall a. Datum a -> [Field] -> Datum a
`with` [
String
"errors"String -> Datum [Any] -> Field
forall a. String -> Datum a -> Field
>: Datum ([Maybe Any] -> [Any])
forall a. Datum ([Maybe a] -> [a])
Optionals.cat Datum ([Maybe Any] -> [Any]) -> Datum [Maybe Any] -> Datum [Any]
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum [Maybe Any]
forall a. String -> Datum a
var String
"checks"])
edgeErrorDef :: Definition ((v -> String) -> PG.Edge v -> String -> String)
edgeErrorDef :: forall v. Definition ((v -> String) -> Edge v -> String -> String)
edgeErrorDef = String
-> Datum ((v -> String) -> Edge v -> String -> String)
-> Definition ((v -> String) -> Edge v -> String -> String)
forall a. String -> Datum a -> Definition a
validateDefinition String
"edgeError" (Datum ((v -> String) -> Edge v -> String -> String)
-> Definition ((v -> String) -> Edge v -> String -> String))
-> Datum ((v -> String) -> Edge v -> String -> String)
-> Definition ((v -> String) -> Edge v -> String -> String)
forall a b. (a -> b) -> a -> b
$
[Type]
-> Datum ((v -> String) -> Edge v -> String -> String)
-> Datum ((v -> String) -> Edge v -> String -> String)
forall a. [Type] -> Datum a -> Datum a
functionN [Type -> Type -> Type
funT Type
vT Type
stringT, Type
edgeVT, Type
stringT, Type
stringT] (Datum ((v -> String) -> Edge v -> String -> String)
-> Datum ((v -> String) -> Edge v -> String -> String))
-> Datum ((v -> String) -> Edge v -> String -> String)
-> Datum ((v -> String) -> Edge v -> String -> String)
forall a b. (a -> b) -> a -> b
$
String
-> Datum (Any -> Any)
-> Datum ((v -> String) -> Edge v -> String -> String)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"showValue" (Datum (Any -> Any)
-> Datum ((v -> String) -> Edge v -> String -> String))
-> Datum (Any -> Any)
-> Datum ((v -> String) -> Edge v -> String -> String)
forall a b. (a -> b) -> a -> b
$ String -> Datum (String -> String) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"e" (Datum (String -> String) -> Datum (Any -> Any))
-> Datum (String -> String) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$
Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Datum String
"Invalid edge with id " Datum String -> Datum String -> Datum String
++ (String -> Datum (Any -> String)
forall a. String -> Datum a
var String
"showValue" Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Edge Name
_Edge_id Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"e")))
edgeLabelMismatchDef :: Definition (PG.EdgeLabel -> PG.EdgeLabel -> String)
edgeLabelMismatchDef :: Definition (EdgeLabel -> EdgeLabel -> String)
edgeLabelMismatchDef = String
-> Datum (EdgeLabel -> EdgeLabel -> String)
-> Definition (EdgeLabel -> EdgeLabel -> String)
forall a. String -> Datum a -> Definition a
validateDefinition String
"edgeLabelMismatch" (Datum (EdgeLabel -> EdgeLabel -> String)
-> Definition (EdgeLabel -> EdgeLabel -> String))
-> Datum (EdgeLabel -> EdgeLabel -> String)
-> Definition (EdgeLabel -> EdgeLabel -> String)
forall a b. (a -> b) -> a -> b
$
[Type]
-> Datum (EdgeLabel -> EdgeLabel -> String)
-> Datum (EdgeLabel -> EdgeLabel -> String)
forall a. [Type] -> Datum a -> Datum a
functionN [Type
edgeLabelT, Type
edgeLabelT, Type
stringT] (Datum (EdgeLabel -> EdgeLabel -> String)
-> Datum (EdgeLabel -> EdgeLabel -> String))
-> Datum (EdgeLabel -> EdgeLabel -> String)
-> Datum (EdgeLabel -> EdgeLabel -> String)
forall a b. (a -> b) -> a -> b
$
String
-> Datum (Any -> Any) -> Datum (EdgeLabel -> EdgeLabel -> String)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"expected" (Datum (Any -> Any) -> Datum (EdgeLabel -> EdgeLabel -> String))
-> Datum (Any -> Any) -> Datum (EdgeLabel -> EdgeLabel -> String)
forall a b. (a -> b) -> a -> b
$ String -> Datum String -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"actual" (Datum String -> Datum (Any -> Any))
-> Datum String -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$
Datum String
"expected " Datum String -> Datum String -> Datum String
++ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_EdgeLabel Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"expected") Datum String -> Datum String -> Datum String
++ Datum String
", found " Datum String -> Datum String -> Datum String
++ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_EdgeLabel Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"actual")
prependDef :: Definition (String -> String -> String)
prependDef :: Definition (String -> String -> String)
prependDef = String
-> Datum (String -> String -> String)
-> Definition (String -> String -> String)
forall a. String -> Datum a -> Definition a
validateDefinition String
"prepend" (Datum (String -> String -> String)
-> Definition (String -> String -> String))
-> Datum (String -> String -> String)
-> Definition (String -> String -> String)
forall a b. (a -> b) -> a -> b
$
[Type]
-> Datum (String -> String -> String)
-> Datum (String -> String -> String)
forall a. [Type] -> Datum a -> Datum a
functionN [Type
stringT, Type
stringT, Type
stringT] (Datum (String -> String -> String)
-> Datum (String -> String -> String))
-> Datum (String -> String -> String)
-> Datum (String -> String -> String)
forall a b. (a -> b) -> a -> b
$
String -> Datum (Any -> Any) -> Datum (String -> String -> String)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"prefix" (Datum (Any -> Any) -> Datum (String -> String -> String))
-> Datum (Any -> Any) -> Datum (String -> String -> String)
forall a b. (a -> b) -> a -> b
$ String -> Datum String -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"msg" (Datum String -> Datum (Any -> Any))
-> Datum String -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$
(String -> Datum String
forall a. String -> Datum a
var String
"prefix") Datum String -> Datum String -> Datum String
++ Datum String
": " Datum String -> Datum String -> Datum String
++ (String -> Datum String
forall a. String -> Datum a
var String
"msg")
verifyDef :: Definition (Bool -> String -> Maybe String)
verifyDef :: Definition (Bool -> String -> Maybe String)
verifyDef = String
-> Datum (Bool -> String -> Maybe String)
-> Definition (Bool -> String -> Maybe String)
forall a. String -> Datum a -> Definition a
validateDefinition String
"verify" (Datum (Bool -> String -> Maybe String)
-> Definition (Bool -> String -> Maybe String))
-> Datum (Bool -> String -> Maybe String)
-> Definition (Bool -> String -> Maybe String)
forall a b. (a -> b) -> a -> b
$
[Type]
-> Datum (Bool -> String -> Maybe String)
-> Datum (Bool -> String -> Maybe String)
forall a. [Type] -> Datum a -> Datum a
functionN [Type
booleanT, Type
stringT, Type -> Type
optionalT Type
stringT] (Datum (Bool -> String -> Maybe String)
-> Datum (Bool -> String -> Maybe String))
-> Datum (Bool -> String -> Maybe String)
-> Datum (Bool -> String -> Maybe String)
forall a b. (a -> b) -> a -> b
$
String
-> Datum (Any -> Any) -> Datum (Bool -> String -> Maybe String)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"b" (Datum (Any -> Any) -> Datum (Bool -> String -> Maybe String))
-> Datum (Any -> Any) -> Datum (Bool -> String -> Maybe String)
forall a b. (a -> b) -> a -> b
$ String -> Datum (Maybe Any) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"err" (Datum (Maybe Any) -> Datum (Any -> Any))
-> Datum (Maybe Any) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$
Datum Bool
-> Datum (Maybe Any) -> Datum (Maybe Any) -> Datum (Maybe Any)
forall a. Datum Bool -> Datum a -> Datum a -> Datum a
ifElse (String -> Datum Bool
forall a. String -> Datum a
var String
"b")
Datum (Maybe Any)
forall x. Datum x
nothing
(Datum Any -> Datum (Maybe Any)
forall x. Datum x -> Datum (Maybe x)
just (Datum Any -> Datum (Maybe Any)) -> Datum Any -> Datum (Maybe Any)
forall a b. (a -> b) -> a -> b
$ String -> Datum Any
forall a. String -> Datum a
var String
"err")
vertexErrorDef :: Definition ((v -> String) -> PG.Vertex v -> String -> String)
vertexErrorDef :: forall v.
Definition ((v -> String) -> Vertex v -> String -> String)
vertexErrorDef = String
-> Datum ((v -> String) -> Vertex v -> String -> String)
-> Definition ((v -> String) -> Vertex v -> String -> String)
forall a. String -> Datum a -> Definition a
validateDefinition String
"vertexError" (Datum ((v -> String) -> Vertex v -> String -> String)
-> Definition ((v -> String) -> Vertex v -> String -> String))
-> Datum ((v -> String) -> Vertex v -> String -> String)
-> Definition ((v -> String) -> Vertex v -> String -> String)
forall a b. (a -> b) -> a -> b
$
[Type]
-> Datum ((v -> String) -> Vertex v -> String -> String)
-> Datum ((v -> String) -> Vertex v -> String -> String)
forall a. [Type] -> Datum a -> Datum a
functionN [Type -> Type -> Type
funT Type
vT Type
stringT, Type
vertexVT, Type
stringT, Type
stringT] (Datum ((v -> String) -> Vertex v -> String -> String)
-> Datum ((v -> String) -> Vertex v -> String -> String))
-> Datum ((v -> String) -> Vertex v -> String -> String)
-> Datum ((v -> String) -> Vertex v -> String -> String)
forall a b. (a -> b) -> a -> b
$
String
-> Datum (Any -> Any)
-> Datum ((v -> String) -> Vertex v -> String -> String)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"showValue" (Datum (Any -> Any)
-> Datum ((v -> String) -> Vertex v -> String -> String))
-> Datum (Any -> Any)
-> Datum ((v -> String) -> Vertex v -> String -> String)
forall a b. (a -> b) -> a -> b
$ String -> Datum (String -> String) -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"v" (Datum (String -> String) -> Datum (Any -> Any))
-> Datum (String -> String) -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$
Definition (String -> String -> String)
-> Datum (String -> String -> String)
forall a. Definition a -> Datum a
ref Definition (String -> String -> String)
prependDef Datum (String -> String -> String)
-> Datum String -> Datum (String -> String)
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Datum String
"Invalid vertex with id " Datum String -> Datum String -> Datum String
++ (String -> Datum (Any -> String)
forall a. String -> Datum a
var String
"showValue" Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ (Name -> Name -> Datum (Any -> Any)
forall a b. Name -> Name -> Datum (a -> b)
project Name
_Vertex Name
_Vertex_id Datum (Any -> Any) -> Datum Any -> Datum Any
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"v")))
vertexLabelMismatchDef :: Definition (PG.VertexLabel -> PG.VertexLabel -> String)
vertexLabelMismatchDef :: Definition (VertexLabel -> VertexLabel -> String)
vertexLabelMismatchDef = String
-> Datum (VertexLabel -> VertexLabel -> String)
-> Definition (VertexLabel -> VertexLabel -> String)
forall a. String -> Datum a -> Definition a
validateDefinition String
"vertexLabelMismatch" (Datum (VertexLabel -> VertexLabel -> String)
-> Definition (VertexLabel -> VertexLabel -> String))
-> Datum (VertexLabel -> VertexLabel -> String)
-> Definition (VertexLabel -> VertexLabel -> String)
forall a b. (a -> b) -> a -> b
$
[Type]
-> Datum (VertexLabel -> VertexLabel -> String)
-> Datum (VertexLabel -> VertexLabel -> String)
forall a. [Type] -> Datum a -> Datum a
functionN [Type
vertexLabelT, Type
vertexLabelT, Type
stringT] (Datum (VertexLabel -> VertexLabel -> String)
-> Datum (VertexLabel -> VertexLabel -> String))
-> Datum (VertexLabel -> VertexLabel -> String)
-> Datum (VertexLabel -> VertexLabel -> String)
forall a b. (a -> b) -> a -> b
$
String
-> Datum (Any -> Any)
-> Datum (VertexLabel -> VertexLabel -> String)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"expected" (Datum (Any -> Any)
-> Datum (VertexLabel -> VertexLabel -> String))
-> Datum (Any -> Any)
-> Datum (VertexLabel -> VertexLabel -> String)
forall a b. (a -> b) -> a -> b
$ String -> Datum String -> Datum (Any -> Any)
forall x a b. String -> Datum x -> Datum (a -> b)
lambda String
"actual" (Datum String -> Datum (Any -> Any))
-> Datum String -> Datum (Any -> Any)
forall a b. (a -> b) -> a -> b
$
Datum String
"expected " Datum String -> Datum String -> Datum String
++ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_VertexLabel Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"expected") Datum String -> Datum String -> Datum String
++ Datum String
", found " Datum String -> Datum String -> Datum String
++ (Name -> Datum (Any -> String)
forall a b. Name -> Datum (a -> b)
unwrap Name
_VertexLabel Datum (Any -> String) -> Datum Any -> Datum String
forall a b. Datum (a -> b) -> Datum a -> Datum b
@@ String -> Datum Any
forall a. String -> Datum a
var String
"actual")
ordV :: Map Name (Set TypeClass)
ordV = ([(Name, Set TypeClass)] -> Map Name (Set TypeClass)
forall k a. Ord k => [(k, a)] -> Map k a
M.fromList [(String -> Name
Name String
"v", [TypeClass] -> Set TypeClass
forall a. Ord a => [a] -> Set a
S.fromList [TypeClass
TypeClassOrdering])])
edgeLabelT :: Type
edgeLabelT = Name -> Type
TypeVariable Name
_EdgeLabel
edgeTypeTT :: Type
edgeTypeTT = Type -> Type -> Type
Types.apply (Name -> Type
TypeVariable Name
_EdgeType) Type
tT
edgeVT :: Type
edgeVT = Type -> Type -> Type
Types.apply (Name -> Type
TypeVariable Name
_Edge) Type
vT
elementTypeTT :: Type
elementTypeTT = Type -> Type -> Type
Types.apply (Name -> Type
TypeVariable Name
_ElementType) Type
tT
elementVT :: Type
elementVT = Type -> Type -> Type
Types.apply (Name -> Type
TypeVariable Name
_Element) Type
vT
graphSchemaTT :: Type
graphSchemaTT = Type -> Type -> Type
Types.apply (Name -> Type
TypeVariable Name
_GraphSchema) Type
tT
graphVT :: Type
graphVT = Type -> Type -> Type
Types.apply (Name -> Type
TypeVariable Name
_Graph) Type
vT
propertyKeyT :: Type
propertyKeyT = Name -> Type
TypeVariable Name
_PropertyKey
propertyTypeTT :: Type
propertyTypeTT = Type -> Type -> Type
Types.apply (Name -> Type
TypeVariable Name
_PropertyType) Type
tT
vertexLabelT :: Type
vertexLabelT = Name -> Type
TypeVariable Name
_VertexLabel
vertexTypeTT :: Type
vertexTypeTT = Type -> Type -> Type
Types.apply (Name -> Type
TypeVariable Name
_VertexType) Type
tT
vertexVT :: Type
vertexVT = Type -> Type -> Type
Types.apply (Name -> Type
TypeVariable Name
_Vertex) Type
vT
tT :: Type
tT = String -> Type
Types.var String
"t"
vT :: Type
vT = String -> Type
Types.var String
"v"