hydra-kernel-0.18.0: src/main/haskell/Hydra/Core/Encode/Variants.hs
-- Note: this is an automatically generated file. Do not edit.
-- | Term encoders for hydra.core.variants
module Hydra.Core.Encode.Variants where
import qualified Hydra.Core.Encode.Model as EncodeModel
import qualified Hydra.Core.Model as Model
import qualified Hydra.Core.Variants as Variants
import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)
import qualified Data.Scientific as Sci
import Data.Void
-- | Encoder for hydra.core.variants.LiteralVariant
literalVariant :: Variants.LiteralVariant -> Model.Term
literalVariant x =
case x of
Variants.LiteralVariantBinary -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.LiteralVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "binary"),
Model.fieldTerm = Model.TermUnit}})
Variants.LiteralVariantBoolean -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.LiteralVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "boolean"),
Model.fieldTerm = Model.TermUnit}})
Variants.LiteralVariantDecimal -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.LiteralVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "decimal"),
Model.fieldTerm = Model.TermUnit}})
Variants.LiteralVariantFloat -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.LiteralVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "float"),
Model.fieldTerm = Model.TermUnit}})
Variants.LiteralVariantInteger -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.LiteralVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "integer"),
Model.fieldTerm = Model.TermUnit}})
Variants.LiteralVariantString -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.LiteralVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "string"),
Model.fieldTerm = Model.TermUnit}})
-- | Encoder for hydra.core.variants.TermVariant
termVariant :: Variants.TermVariant -> Model.Term
termVariant x =
case x of
Variants.TermVariantAnnotated -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "annotated"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantApplication -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "application"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantCases -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "cases"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantEither -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "either"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantInject -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "inject"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantLambda -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "lambda"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantLet -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "let"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantList -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "list"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantLiteral -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "literal"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantMap -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "map"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantOptional -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "optional"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantPair -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "pair"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantProject -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "project"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantRecord -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "record"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantSet -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "set"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantTypeApplication -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "typeApplication"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantTypeLambda -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "typeLambda"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantUnit -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "unit"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantUnwrap -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "unwrap"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantVariable -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "variable"),
Model.fieldTerm = Model.TermUnit}})
Variants.TermVariantWrap -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TermVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "wrap"),
Model.fieldTerm = Model.TermUnit}})
-- | Encoder for hydra.core.variants.TypeVariant
typeVariant :: Variants.TypeVariant -> Model.Term
typeVariant x =
case x of
Variants.TypeVariantAnnotated -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "annotated"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantApplication -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "application"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantEffect -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "effect"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantEither -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "either"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantForall -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "forall"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantFunction -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "function"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantList -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "list"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantLiteral -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "literal"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantMap -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "map"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantOptional -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "optional"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantPair -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "pair"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantRecord -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "record"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantSet -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "set"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantUnion -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "union"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantUnit -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "unit"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantVariable -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "variable"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantVoid -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "void"),
Model.fieldTerm = Model.TermUnit}})
Variants.TypeVariantWrap -> Model.TermInject (Model.Injection {
Model.injectionTypeName = (Model.Name "hydra.core.variants.TypeVariant"),
Model.injectionField = Model.Field {
Model.fieldName = (Model.Name "wrap"),
Model.fieldTerm = Model.TermUnit}})