hydra-0.13.0: src/gen-main/haskell/Hydra/Encode/Variants.hs
-- Note: this is an automatically generated file. Do not edit.
-- | Term encoders for hydra.variants
module Hydra.Encode.Variants where
import qualified Hydra.Core as Core
import qualified Hydra.Variants as Variants
import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
import qualified Data.ByteString as B
import qualified Data.Int as I
import qualified Data.List as L
import qualified Data.Map as M
import qualified Data.Set as S
eliminationVariant :: (Variants.EliminationVariant -> Core.Term)
eliminationVariant x = case x of
Variants.EliminationVariantRecord -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.EliminationVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "record"),
Core.fieldTerm = Core.TermUnit}}))
Variants.EliminationVariantUnion -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.EliminationVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "union"),
Core.fieldTerm = Core.TermUnit}}))
Variants.EliminationVariantWrap -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.EliminationVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "wrap"),
Core.fieldTerm = Core.TermUnit}}))
functionVariant :: (Variants.FunctionVariant -> Core.Term)
functionVariant x = case x of
Variants.FunctionVariantElimination -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.FunctionVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "elimination"),
Core.fieldTerm = Core.TermUnit}}))
Variants.FunctionVariantLambda -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.FunctionVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "lambda"),
Core.fieldTerm = Core.TermUnit}}))
Variants.FunctionVariantPrimitive -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.FunctionVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "primitive"),
Core.fieldTerm = Core.TermUnit}}))
literalVariant :: (Variants.LiteralVariant -> Core.Term)
literalVariant x = case x of
Variants.LiteralVariantBinary -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.LiteralVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "binary"),
Core.fieldTerm = Core.TermUnit}}))
Variants.LiteralVariantBoolean -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.LiteralVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "boolean"),
Core.fieldTerm = Core.TermUnit}}))
Variants.LiteralVariantFloat -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.LiteralVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "float"),
Core.fieldTerm = Core.TermUnit}}))
Variants.LiteralVariantInteger -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.LiteralVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "integer"),
Core.fieldTerm = Core.TermUnit}}))
Variants.LiteralVariantString -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.LiteralVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "string"),
Core.fieldTerm = Core.TermUnit}}))
termVariant :: (Variants.TermVariant -> Core.Term)
termVariant x = case x of
Variants.TermVariantAnnotated -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "annotated"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantApplication -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "application"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantEither -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "either"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantFunction -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "function"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantLet -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "let"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantList -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "list"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantLiteral -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "literal"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantMap -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "map"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantMaybe -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "maybe"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantPair -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "pair"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantRecord -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "record"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantSet -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "set"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantTypeApplication -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "typeApplication"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantTypeLambda -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "typeLambda"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantUnion -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "union"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantUnit -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "unit"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantVariable -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "variable"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TermVariantWrap -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TermVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "wrap"),
Core.fieldTerm = Core.TermUnit}}))
typeVariant :: (Variants.TypeVariant -> Core.Term)
typeVariant x = case x of
Variants.TypeVariantAnnotated -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "annotated"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TypeVariantApplication -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "application"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TypeVariantEither -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "either"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TypeVariantForall -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "forall"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TypeVariantFunction -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "function"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TypeVariantList -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "list"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TypeVariantLiteral -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "literal"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TypeVariantMap -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "map"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TypeVariantMaybe -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "maybe"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TypeVariantPair -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "pair"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TypeVariantRecord -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "record"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TypeVariantSet -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "set"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TypeVariantUnion -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "union"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TypeVariantUnit -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "unit"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TypeVariantVariable -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "variable"),
Core.fieldTerm = Core.TermUnit}}))
Variants.TypeVariantWrap -> (Core.TermUnion (Core.Injection {
Core.injectionTypeName = (Core.Name "hydra.variants.TypeVariant"),
Core.injectionField = Core.Field {
Core.fieldName = (Core.Name "wrap"),
Core.fieldTerm = Core.TermUnit}}))