hydra-kernel-0.17.0: src/main/haskell/Hydra/Encode/Paths.hs
-- Note: this is an automatically generated file. Do not edit.
-- | Term encoders for hydra.paths
module Hydra.Encode.Paths where
import qualified Hydra.Core as Core
import qualified Hydra.Encode.Core as EncodeCore
import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists
import qualified Hydra.Paths as Paths
import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
import qualified Data.Scientific as Sci
-- | Encoder for hydra.paths.SubtermEdge
subtermEdge :: Paths.SubtermEdge -> Core.Term
subtermEdge x =
Core.TermRecord (Core.Record {
Core.recordTypeName = (Core.Name "hydra.paths.SubtermEdge"),
Core.recordFields = [
Core.Field {
Core.fieldName = (Core.Name "source"),
Core.fieldTerm = (subtermNode (Paths.subtermEdgeSource x))},
Core.Field {
Core.fieldName = (Core.Name "path"),
Core.fieldTerm = (subtermPath (Paths.subtermEdgePath x))},
Core.Field {
Core.fieldName = (Core.Name "target"),
Core.fieldTerm = (subtermNode (Paths.subtermEdgeTarget x))}]})
-- | Encoder for hydra.paths.SubtermGraph
subtermGraph :: Paths.SubtermGraph -> Core.Term
subtermGraph x =
Core.TermRecord (Core.Record {
Core.recordTypeName = (Core.Name "hydra.paths.SubtermGraph"),
Core.recordFields = [
Core.Field {
Core.fieldName = (Core.Name "nodes"),
Core.fieldTerm = ((\xs -> Core.TermList (Lists.map subtermNode xs)) (Paths.subtermGraphNodes x))},
Core.Field {
Core.fieldName = (Core.Name "edges"),
Core.fieldTerm = ((\xs -> Core.TermList (Lists.map subtermEdge xs)) (Paths.subtermGraphEdges x))}]})
-- | Encoder for hydra.paths.SubtermNode
subtermNode :: Paths.SubtermNode -> Core.Term
subtermNode x =
Core.TermRecord (Core.Record {
Core.recordTypeName = (Core.Name "hydra.paths.SubtermNode"),
Core.recordFields = [
Core.Field {
Core.fieldName = (Core.Name "name"),
Core.fieldTerm = (EncodeCore.name (Paths.subtermNodeName x))},
Core.Field {
Core.fieldName = (Core.Name "label"),
Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Paths.subtermNodeLabel x))},
Core.Field {
Core.fieldName = (Core.Name "id"),
Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Paths.subtermNodeId x))}]})
-- | Encoder for hydra.paths.SubtermPath
subtermPath :: Paths.SubtermPath -> Core.Term
subtermPath x =
Core.TermWrap (Core.WrappedTerm {
Core.wrappedTermTypeName = (Core.Name "hydra.paths.SubtermPath"),
Core.wrappedTermBody = ((\xs -> Core.TermList (Lists.map subtermStep xs)) (Paths.unSubtermPath x))})
-- | Encoder for hydra.paths.SubtermStep
subtermStep :: Paths.SubtermStep -> Core.Term
subtermStep x =
case x of
Paths.SubtermStepAnnotatedBody -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "annotatedBody"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtermStepApplicationFunction -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "applicationFunction"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtermStepApplicationArgument -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "applicationArgument"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtermStepLambdaBody -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "lambdaBody"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtermStepUnionCasesDefault -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "unionCasesDefault"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtermStepUnionCasesBranch v0 -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "unionCasesBranch"),
Core.fieldTerm = (EncodeCore.name v0)}})
Paths.SubtermStepLetBody -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "letBody"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtermStepLetBinding v0 -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "letBinding"),
Core.fieldTerm = (EncodeCore.name v0)}})
Paths.SubtermStepListElement v0 -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "listElement"),
Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 v0)))}})
Paths.SubtermStepMapKey v0 -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "mapKey"),
Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 v0)))}})
Paths.SubtermStepMapValue v0 -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "mapValue"),
Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 v0)))}})
Paths.SubtermStepOptionalTerm -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "optionalTerm"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtermStepProductTerm v0 -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "productTerm"),
Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 v0)))}})
Paths.SubtermStepRecordField v0 -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "recordField"),
Core.fieldTerm = (EncodeCore.name v0)}})
Paths.SubtermStepSetElement v0 -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "setElement"),
Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 v0)))}})
Paths.SubtermStepSumTerm -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "sumTerm"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtermStepTypeLambdaBody -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "typeLambdaBody"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtermStepTypeApplicationTerm -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "typeApplicationTerm"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtermStepInjectionTerm -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "injectionTerm"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtermStepWrappedTerm -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtermStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "wrappedTerm"),
Core.fieldTerm = Core.TermUnit}})
-- | Encoder for hydra.paths.SubtypeEdge
subtypeEdge :: Paths.SubtypeEdge -> Core.Term
subtypeEdge x =
Core.TermRecord (Core.Record {
Core.recordTypeName = (Core.Name "hydra.paths.SubtypeEdge"),
Core.recordFields = [
Core.Field {
Core.fieldName = (Core.Name "source"),
Core.fieldTerm = (subtypeNode (Paths.subtypeEdgeSource x))},
Core.Field {
Core.fieldName = (Core.Name "path"),
Core.fieldTerm = (subtypePath (Paths.subtypeEdgePath x))},
Core.Field {
Core.fieldName = (Core.Name "target"),
Core.fieldTerm = (subtypeNode (Paths.subtypeEdgeTarget x))}]})
-- | Encoder for hydra.paths.SubtypeGraph
subtypeGraph :: Paths.SubtypeGraph -> Core.Term
subtypeGraph x =
Core.TermRecord (Core.Record {
Core.recordTypeName = (Core.Name "hydra.paths.SubtypeGraph"),
Core.recordFields = [
Core.Field {
Core.fieldName = (Core.Name "nodes"),
Core.fieldTerm = ((\xs -> Core.TermList (Lists.map subtypeNode xs)) (Paths.subtypeGraphNodes x))},
Core.Field {
Core.fieldName = (Core.Name "edges"),
Core.fieldTerm = ((\xs -> Core.TermList (Lists.map subtypeEdge xs)) (Paths.subtypeGraphEdges x))}]})
-- | Encoder for hydra.paths.SubtypeNode
subtypeNode :: Paths.SubtypeNode -> Core.Term
subtypeNode x =
Core.TermRecord (Core.Record {
Core.recordTypeName = (Core.Name "hydra.paths.SubtypeNode"),
Core.recordFields = [
Core.Field {
Core.fieldName = (Core.Name "name"),
Core.fieldTerm = (EncodeCore.name (Paths.subtypeNodeName x))},
Core.Field {
Core.fieldName = (Core.Name "label"),
Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Paths.subtypeNodeLabel x))},
Core.Field {
Core.fieldName = (Core.Name "id"),
Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Paths.subtypeNodeId x))}]})
-- | Encoder for hydra.paths.SubtypePath
subtypePath :: Paths.SubtypePath -> Core.Term
subtypePath x =
Core.TermWrap (Core.WrappedTerm {
Core.wrappedTermTypeName = (Core.Name "hydra.paths.SubtypePath"),
Core.wrappedTermBody = ((\xs -> Core.TermList (Lists.map subtypeStep xs)) (Paths.unSubtypePath x))})
-- | Encoder for hydra.paths.SubtypeStep
subtypeStep :: Paths.SubtypeStep -> Core.Term
subtypeStep x =
case x of
Paths.SubtypeStepAnnotatedBody -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "annotatedBody"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtypeStepApplicationFunction -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "applicationFunction"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtypeStepApplicationArgument -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "applicationArgument"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtypeStepEitherLeft -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "eitherLeft"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtypeStepEitherRight -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "eitherRight"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtypeStepForallBody -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "forallBody"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtypeStepFunctionDomain -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "functionDomain"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtypeStepFunctionCodomain -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "functionCodomain"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtypeStepListElement -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "listElement"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtypeStepMapKeys -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "mapKeys"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtypeStepMapValues -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "mapValues"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtypeStepOptionalElement -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "optionalElement"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtypeStepPairFirst -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "pairFirst"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtypeStepPairSecond -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "pairSecond"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtypeStepRecordField v0 -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "recordField"),
Core.fieldTerm = (EncodeCore.name v0)}})
Paths.SubtypeStepSetElement -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "setElement"),
Core.fieldTerm = Core.TermUnit}})
Paths.SubtypeStepUnionField v0 -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "unionField"),
Core.fieldTerm = (EncodeCore.name v0)}})
Paths.SubtypeStepWrappedType -> Core.TermInject (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.paths.SubtypeStep"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "wrappedType"),
Core.fieldTerm = Core.TermUnit}})