packages feed

hydra-0.13.0: src/gen-test/haskell/Hydra/Test/Annotations.hs

-- Note: this is an automatically generated file. Do not edit.

-- | Test cases for hydra.annotations functions

module Hydra.Test.Annotations where

import qualified Hydra.Core as Core
import qualified Hydra.Lib.Maps as Maps
import qualified Hydra.Testing as Testing
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

-- | Test cases for hydra.annotations functions
allTests :: Testing.TestGroup
allTests = Testing.TestGroup {
  Testing.testGroupName = "annotations",
  Testing.testGroupDescription = Nothing,
  Testing.testGroupSubgroups = [
    Testing.TestGroup {
      Testing.testGroupName = "arbitrary annotations",
      Testing.testGroupDescription = Nothing,
      Testing.testGroupSubgroups = [],
      Testing.testGroupCases = [
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "set single annotation #1",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                  Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k1"))}))})),
                Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "integer"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "int32"),
                            Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))))})),
              Core.applicationArgument = (Core.TermUnion (Core.Injection {
                Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                Core.injectionField = Core.Field {
                  Core.fieldName = (Core.Name "literal"),
                  Core.fieldTerm = (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "string"),
                      Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "foo"))}}))}}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "annotated"),
                Core.fieldTerm = (Core.TermRecord (Core.Record {
                  Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                  Core.recordFields = [
                    Core.Field {
                      Core.fieldName = (Core.Name "body"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "foo"))}}))}}))},
                    Core.Field {
                      Core.fieldName = (Core.Name "annotation"),
                      Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                        Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                        Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k1"))})) (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "integer"),
                              Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                Core.injectionField = Core.Field {
                                  Core.fieldName = (Core.Name "int32"),
                                  Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))))}]}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "set single annotation #2",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                  Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "myKey"))}))})),
                Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "integer"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "int32"),
                            Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 (-17))))}}))}}))}}))))})),
              Core.applicationArgument = (Core.TermUnion (Core.Injection {
                Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                Core.injectionField = Core.Field {
                  Core.fieldName = (Core.Name "literal"),
                  Core.fieldTerm = (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "string"),
                      Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "bar"))}}))}}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "annotated"),
                Core.fieldTerm = (Core.TermRecord (Core.Record {
                  Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                  Core.recordFields = [
                    Core.Field {
                      Core.fieldName = (Core.Name "body"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "bar"))}}))}}))},
                    Core.Field {
                      Core.fieldName = (Core.Name "annotation"),
                      Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                        Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                        Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "myKey"))})) (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "integer"),
                              Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                Core.injectionField = Core.Field {
                                  Core.fieldName = (Core.Name "int32"),
                                  Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 (-17))))}}))}}))}}))))}]}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "set single annotation #3",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                  Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "x"))}))})),
                Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "string"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "hello"))}}))}}))))})),
              Core.applicationArgument = (Core.TermUnion (Core.Injection {
                Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                Core.injectionField = Core.Field {
                  Core.fieldName = (Core.Name "literal"),
                  Core.fieldTerm = (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "integer"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "int32"),
                          Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 0)))}}))}}))}}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "annotated"),
                Core.fieldTerm = (Core.TermRecord (Core.Record {
                  Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                  Core.recordFields = [
                    Core.Field {
                      Core.fieldName = (Core.Name "body"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "integer"),
                              Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                Core.injectionField = Core.Field {
                                  Core.fieldName = (Core.Name "int32"),
                                  Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 0)))}}))}}))}}))},
                    Core.Field {
                      Core.fieldName = (Core.Name "annotation"),
                      Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                        Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                        Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "x"))})) (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "hello"))}}))}}))))}]}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get existing annotation #1",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermAnnotation")),
                Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                  Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                  Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k1"))}))})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                    Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                      Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                      Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k1"))}))})),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "literal"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "string"),
                          Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "value"))}}))}}))))})),
                Core.applicationArgument = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "integer"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "int32"),
                            Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "literal"),
                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "string"),
                    Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "value"))}}))}}))))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get existing annotation #2",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermAnnotation")),
                Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                  Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                  Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "foo"))}))})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                    Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                      Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                      Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "foo"))}))})),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "literal"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "string"),
                          Core.fieldTerm = (Core.TermLiteral (Core.LiteralString ""))}}))}}))))})),
                Core.applicationArgument = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "integer"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "int32"),
                            Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 99)))}}))}}))}}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "literal"),
                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "string"),
                    Core.fieldTerm = (Core.TermLiteral (Core.LiteralString ""))}}))}}))))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get existing annotation #3",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermAnnotation")),
                Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                  Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                  Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "key"))}))})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                    Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                      Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                      Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "key"))}))})),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "literal"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "integer"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "int32"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 123)))}}))}}))}}))))})),
                Core.applicationArgument = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "string"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "test"))}}))}}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "literal"),
                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "integer"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "int32"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 123)))}}))}}))}}))))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get missing annotation #1",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermAnnotation")),
                Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                  Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                  Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k1"))}))})),
              Core.applicationArgument = (Core.TermUnion (Core.Injection {
                Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                Core.injectionField = Core.Field {
                  Core.fieldName = (Core.Name "literal"),
                  Core.fieldTerm = (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "integer"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "int16"),
                          Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt16 42)))}}))}}))}}))})),
            Testing.evaluationTestCaseOutput = (Core.TermMaybe Nothing)})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get missing annotation #2",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermAnnotation")),
                Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                  Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                  Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "nonexistent"))}))})),
              Core.applicationArgument = (Core.TermUnion (Core.Injection {
                Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                Core.injectionField = Core.Field {
                  Core.fieldName = (Core.Name "literal"),
                  Core.fieldTerm = (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "string"),
                      Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "hello"))}}))}}))})),
            Testing.evaluationTestCaseOutput = (Core.TermMaybe Nothing)})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get missing annotation #3",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermAnnotation")),
                Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                  Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                  Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k1"))}))})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                    Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                      Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                      Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k2"))}))})),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "literal"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "integer"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "int32"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 1)))}}))}}))}}))))})),
                Core.applicationArgument = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "integer"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "int32"),
                            Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermMaybe Nothing)})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "set multiple annotations #1",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                  Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k2"))}))})),
                Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "integer"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "int32"),
                            Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 200)))}}))}}))}}))))})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                    Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                      Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                      Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k1"))}))})),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "literal"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "string"),
                          Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "first"))}}))}}))))})),
                Core.applicationArgument = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "boolean"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralBoolean True))}}))}}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "annotated"),
                Core.fieldTerm = (Core.TermRecord (Core.Record {
                  Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                  Core.recordFields = [
                    Core.Field {
                      Core.fieldName = (Core.Name "body"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "boolean"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralBoolean True))}}))}}))},
                    Core.Field {
                      Core.fieldName = (Core.Name "annotation"),
                      Core.fieldTerm = (Core.TermMap (Maps.fromList [
                        (Core.TermWrap (Core.WrappedTerm {
                          Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                          Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k1"))}), (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "literal"),
                            Core.fieldTerm = (Core.TermUnion (Core.Injection {
                              Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                              Core.injectionField = Core.Field {
                                Core.fieldName = (Core.Name "string"),
                                Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "first"))}}))}}))),
                        (Core.TermWrap (Core.WrappedTerm {
                          Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                          Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k2"))}), (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "literal"),
                            Core.fieldTerm = (Core.TermUnion (Core.Injection {
                              Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                              Core.injectionField = Core.Field {
                                Core.fieldName = (Core.Name "integer"),
                                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                  Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                  Core.injectionField = Core.Field {
                                    Core.fieldName = (Core.Name "int32"),
                                    Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 200)))}}))}}))}})))]))}]}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "set multiple annotations #2",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                  Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "b"))}))})),
                Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "integer"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "int32"),
                            Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 0)))}}))}}))}}))))})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                    Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                      Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                      Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "a"))}))})),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "literal"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "integer"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "int32"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 (-5))))}}))}}))}}))))})),
                Core.applicationArgument = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "string"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "test"))}}))}}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "annotated"),
                Core.fieldTerm = (Core.TermRecord (Core.Record {
                  Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                  Core.recordFields = [
                    Core.Field {
                      Core.fieldName = (Core.Name "body"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "test"))}}))}}))},
                    Core.Field {
                      Core.fieldName = (Core.Name "annotation"),
                      Core.fieldTerm = (Core.TermMap (Maps.fromList [
                        (Core.TermWrap (Core.WrappedTerm {
                          Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                          Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "a"))}), (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "literal"),
                            Core.fieldTerm = (Core.TermUnion (Core.Injection {
                              Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                              Core.injectionField = Core.Field {
                                Core.fieldName = (Core.Name "integer"),
                                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                  Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                  Core.injectionField = Core.Field {
                                    Core.fieldName = (Core.Name "int32"),
                                    Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 (-5))))}}))}}))}}))),
                        (Core.TermWrap (Core.WrappedTerm {
                          Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                          Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "b"))}), (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "literal"),
                            Core.fieldTerm = (Core.TermUnion (Core.Injection {
                              Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                              Core.injectionField = Core.Field {
                                Core.fieldName = (Core.Name "integer"),
                                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                  Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                  Core.injectionField = Core.Field {
                                    Core.fieldName = (Core.Name "int32"),
                                    Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 0)))}}))}}))}})))]))}]}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "outer annotation overrides inner #1",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                  Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k1"))}))})),
                Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "string"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "outer"))}}))}}))))})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                    Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                      Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                      Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k1"))}))})),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "literal"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "string"),
                          Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "inner"))}}))}}))))})),
                Core.applicationArgument = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "string"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "bar"))}}))}}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "annotated"),
                Core.fieldTerm = (Core.TermRecord (Core.Record {
                  Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                  Core.recordFields = [
                    Core.Field {
                      Core.fieldName = (Core.Name "body"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "bar"))}}))}}))},
                    Core.Field {
                      Core.fieldName = (Core.Name "annotation"),
                      Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                        Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                        Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k1"))})) (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "outer"))}}))}}))))}]}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "outer annotation overrides inner #2",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                  Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "x"))}))})),
                Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "string"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "new"))}}))}}))))})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                    Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                      Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                      Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "x"))}))})),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "literal"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "string"),
                          Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "old"))}}))}}))))})),
                Core.applicationArgument = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "integer"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "int32"),
                            Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "annotated"),
                Core.fieldTerm = (Core.TermRecord (Core.Record {
                  Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                  Core.recordFields = [
                    Core.Field {
                      Core.fieldName = (Core.Name "body"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "integer"),
                              Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                Core.injectionField = Core.Field {
                                  Core.fieldName = (Core.Name "int32"),
                                  Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))},
                    Core.Field {
                      Core.fieldName = (Core.Name "annotation"),
                      Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                        Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                        Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "x"))})) (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "new"))}}))}}))))}]}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "outer annotation overrides inner #3",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                  Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "key"))}))})),
                Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "integer"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "int32"),
                            Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 999)))}}))}}))}}))))})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                    Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                      Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                      Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "key"))}))})),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "literal"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "integer"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "int32"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 1)))}}))}}))}}))))})),
                Core.applicationArgument = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "boolean"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralBoolean False))}}))}}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "annotated"),
                Core.fieldTerm = (Core.TermRecord (Core.Record {
                  Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                  Core.recordFields = [
                    Core.Field {
                      Core.fieldName = (Core.Name "body"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "boolean"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralBoolean False))}}))}}))},
                    Core.Field {
                      Core.fieldName = (Core.Name "annotation"),
                      Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                        Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                        Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "key"))})) (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "integer"),
                              Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                Core.injectionField = Core.Field {
                                  Core.fieldName = (Core.Name "int32"),
                                  Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 999)))}}))}}))}}))))}]}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "unset single annotation #1",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                  Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k1"))}))})),
                Core.applicationArgument = (Core.TermMaybe Nothing)})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                    Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                      Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                      Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k1"))}))})),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "literal"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "string"),
                          Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "foo"))}}))}}))))})),
                Core.applicationArgument = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "integer"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "int64"),
                            Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt64 137)))}}))}}))}}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "literal"),
                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "integer"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "int64"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt64 137)))}}))}}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "unset single annotation #2",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                  Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "x"))}))})),
                Core.applicationArgument = (Core.TermMaybe Nothing)})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                    Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                      Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                      Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "x"))}))})),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "literal"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "integer"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "int32"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))))})),
                Core.applicationArgument = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "string"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "test"))}}))}}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "literal"),
                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "string"),
                    Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "test"))}}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "unset one of multiple annotations #1",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                  Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k1"))}))})),
                Core.applicationArgument = (Core.TermMaybe Nothing)})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                    Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                      Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                      Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k2"))}))})),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "literal"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "integer"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "int32"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 200)))}}))}}))}}))))})),
                Core.applicationArgument = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermApplication (Core.Application {
                      Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                      Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                        Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                        Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k1"))}))})),
                    Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "literal"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "string"),
                            Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "first"))}}))}}))))})),
                  Core.applicationArgument = (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "literal"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "integer"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "int64"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt64 137)))}}))}}))}}))}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "annotated"),
                Core.fieldTerm = (Core.TermRecord (Core.Record {
                  Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                  Core.recordFields = [
                    Core.Field {
                      Core.fieldName = (Core.Name "body"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "integer"),
                              Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                Core.injectionField = Core.Field {
                                  Core.fieldName = (Core.Name "int64"),
                                  Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt64 137)))}}))}}))}}))},
                    Core.Field {
                      Core.fieldName = (Core.Name "annotation"),
                      Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                        Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                        Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "k2"))})) (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "integer"),
                              Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                Core.injectionField = Core.Field {
                                  Core.fieldName = (Core.Name "int32"),
                                  Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 200)))}}))}}))}}))))}]}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "unset one of multiple annotations #2",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                  Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "b"))}))})),
                Core.applicationArgument = (Core.TermMaybe Nothing)})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                    Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                      Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                      Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "b"))}))})),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "literal"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "integer"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "int32"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 2)))}}))}}))}}))))})),
                Core.applicationArgument = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermApplication (Core.Application {
                      Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermAnnotation")),
                      Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                        Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                        Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "a"))}))})),
                    Core.applicationArgument = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "literal"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "integer"),
                            Core.fieldTerm = (Core.TermUnion (Core.Injection {
                              Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                              Core.injectionField = Core.Field {
                                Core.fieldName = (Core.Name "int32"),
                                Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 1)))}}))}}))}}))))})),
                  Core.applicationArgument = (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "literal"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "string"),
                          Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "x"))}}))}}))}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "annotated"),
                Core.fieldTerm = (Core.TermRecord (Core.Record {
                  Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                  Core.recordFields = [
                    Core.Field {
                      Core.fieldName = (Core.Name "body"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "x"))}}))}}))},
                    Core.Field {
                      Core.fieldName = (Core.Name "annotation"),
                      Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                        Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                        Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "a"))})) (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "integer"),
                              Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                Core.injectionField = Core.Field {
                                  Core.fieldName = (Core.Name "int32"),
                                  Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 1)))}}))}}))}}))))}]}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []}]},
    Testing.TestGroup {
      Testing.testGroupName = "descriptions",
      Testing.testGroupDescription = Nothing,
      Testing.testGroupSubgroups = [],
      Testing.testGroupCases = [
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "set description #1",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermDescription")),
                Core.applicationArgument = (Core.TermMaybe (Just (Core.TermLiteral (Core.LiteralString "my description"))))})),
              Core.applicationArgument = (Core.TermUnion (Core.Injection {
                Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                Core.injectionField = Core.Field {
                  Core.fieldName = (Core.Name "literal"),
                  Core.fieldTerm = (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "string"),
                      Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "foo"))}}))}}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "annotated"),
                Core.fieldTerm = (Core.TermRecord (Core.Record {
                  Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                  Core.recordFields = [
                    Core.Field {
                      Core.fieldName = (Core.Name "body"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "foo"))}}))}}))},
                    Core.Field {
                      Core.fieldName = (Core.Name "annotation"),
                      Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                        Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                        Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "description"))})) (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "my description"))}}))}}))))}]}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "set description #2",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermDescription")),
                Core.applicationArgument = (Core.TermMaybe (Just (Core.TermLiteral (Core.LiteralString ""))))})),
              Core.applicationArgument = (Core.TermUnion (Core.Injection {
                Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                Core.injectionField = Core.Field {
                  Core.fieldName = (Core.Name "literal"),
                  Core.fieldTerm = (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "integer"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "int32"),
                          Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "annotated"),
                Core.fieldTerm = (Core.TermRecord (Core.Record {
                  Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                  Core.recordFields = [
                    Core.Field {
                      Core.fieldName = (Core.Name "body"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "integer"),
                              Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                Core.injectionField = Core.Field {
                                  Core.fieldName = (Core.Name "int32"),
                                  Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))},
                    Core.Field {
                      Core.fieldName = (Core.Name "annotation"),
                      Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                        Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                        Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "description"))})) (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString ""))}}))}}))))}]}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "set description #3",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermDescription")),
                Core.applicationArgument = (Core.TermMaybe (Just (Core.TermLiteral (Core.LiteralString "A longer description with spaces"))))})),
              Core.applicationArgument = (Core.TermUnion (Core.Injection {
                Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                Core.injectionField = Core.Field {
                  Core.fieldName = (Core.Name "literal"),
                  Core.fieldTerm = (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "boolean"),
                      Core.fieldTerm = (Core.TermLiteral (Core.LiteralBoolean True))}}))}}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "annotated"),
                Core.fieldTerm = (Core.TermRecord (Core.Record {
                  Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                  Core.recordFields = [
                    Core.Field {
                      Core.fieldName = (Core.Name "body"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "boolean"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralBoolean True))}}))}}))},
                    Core.Field {
                      Core.fieldName = (Core.Name "annotation"),
                      Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                        Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                        Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "description"))})) (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "A longer description with spaces"))}}))}}))))}]}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get existing description #1",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermFunction (Core.FunctionElimination (Core.EliminationWrap (Core.Name "hydra.compute.Flow")))),
                  Core.applicationArgument = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermDescription")),
                    Core.applicationArgument = (Core.TermApplication (Core.Application {
                      Core.applicationFunction = (Core.TermApplication (Core.Application {
                        Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermDescription")),
                        Core.applicationArgument = (Core.TermMaybe (Just (Core.TermLiteral (Core.LiteralString "hello"))))})),
                      Core.applicationArgument = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "integer"),
                              Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                Core.injectionField = Core.Field {
                                  Core.fieldName = (Core.Name "int32"),
                                  Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))}))}))})),
                Core.applicationArgument = (Core.TermVariable (Core.Name "hydra.lexical.emptyGraph"))})),
              Core.applicationArgument = (Core.TermVariable (Core.Name "hydra.monads.emptyTrace"))})),
            Testing.evaluationTestCaseOutput = (Core.TermRecord (Core.Record {
              Core.recordTypeName = (Core.Name "hydra.compute.FlowState"),
              Core.recordFields = [
                Core.Field {
                  Core.fieldName = (Core.Name "value"),
                  Core.fieldTerm = (Core.TermMaybe (Just (Core.TermMaybe (Just (Core.TermLiteral (Core.LiteralString "hello"))))))},
                Core.Field {
                  Core.fieldName = (Core.Name "state"),
                  Core.fieldTerm = (Core.TermVariable (Core.Name "hydra.lexical.emptyGraph"))},
                Core.Field {
                  Core.fieldName = (Core.Name "trace"),
                  Core.fieldTerm = (Core.TermVariable (Core.Name "hydra.monads.emptyTrace"))}]}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get existing description #2",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermFunction (Core.FunctionElimination (Core.EliminationWrap (Core.Name "hydra.compute.Flow")))),
                  Core.applicationArgument = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermDescription")),
                    Core.applicationArgument = (Core.TermApplication (Core.Application {
                      Core.applicationFunction = (Core.TermApplication (Core.Application {
                        Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermDescription")),
                        Core.applicationArgument = (Core.TermMaybe (Just (Core.TermLiteral (Core.LiteralString ""))))})),
                      Core.applicationArgument = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "test"))}}))}}))}))}))})),
                Core.applicationArgument = (Core.TermVariable (Core.Name "hydra.lexical.emptyGraph"))})),
              Core.applicationArgument = (Core.TermVariable (Core.Name "hydra.monads.emptyTrace"))})),
            Testing.evaluationTestCaseOutput = (Core.TermRecord (Core.Record {
              Core.recordTypeName = (Core.Name "hydra.compute.FlowState"),
              Core.recordFields = [
                Core.Field {
                  Core.fieldName = (Core.Name "value"),
                  Core.fieldTerm = (Core.TermMaybe (Just (Core.TermMaybe (Just (Core.TermLiteral (Core.LiteralString ""))))))},
                Core.Field {
                  Core.fieldName = (Core.Name "state"),
                  Core.fieldTerm = (Core.TermVariable (Core.Name "hydra.lexical.emptyGraph"))},
                Core.Field {
                  Core.fieldName = (Core.Name "trace"),
                  Core.fieldTerm = (Core.TermVariable (Core.Name "hydra.monads.emptyTrace"))}]}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get existing description #3",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermFunction (Core.FunctionElimination (Core.EliminationWrap (Core.Name "hydra.compute.Flow")))),
                  Core.applicationArgument = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermDescription")),
                    Core.applicationArgument = (Core.TermApplication (Core.Application {
                      Core.applicationFunction = (Core.TermApplication (Core.Application {
                        Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermDescription")),
                        Core.applicationArgument = (Core.TermMaybe (Just (Core.TermLiteral (Core.LiteralString "desc"))))})),
                      Core.applicationArgument = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "boolean"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralBoolean False))}}))}}))}))}))})),
                Core.applicationArgument = (Core.TermVariable (Core.Name "hydra.lexical.emptyGraph"))})),
              Core.applicationArgument = (Core.TermVariable (Core.Name "hydra.monads.emptyTrace"))})),
            Testing.evaluationTestCaseOutput = (Core.TermRecord (Core.Record {
              Core.recordTypeName = (Core.Name "hydra.compute.FlowState"),
              Core.recordFields = [
                Core.Field {
                  Core.fieldName = (Core.Name "value"),
                  Core.fieldTerm = (Core.TermMaybe (Just (Core.TermMaybe (Just (Core.TermLiteral (Core.LiteralString "desc"))))))},
                Core.Field {
                  Core.fieldName = (Core.Name "state"),
                  Core.fieldTerm = (Core.TermVariable (Core.Name "hydra.lexical.emptyGraph"))},
                Core.Field {
                  Core.fieldName = (Core.Name "trace"),
                  Core.fieldTerm = (Core.TermVariable (Core.Name "hydra.monads.emptyTrace"))}]}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get missing description #1",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermFunction (Core.FunctionElimination (Core.EliminationWrap (Core.Name "hydra.compute.Flow")))),
                  Core.applicationArgument = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermDescription")),
                    Core.applicationArgument = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "literal"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "integer"),
                            Core.fieldTerm = (Core.TermUnion (Core.Injection {
                              Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                              Core.injectionField = Core.Field {
                                Core.fieldName = (Core.Name "int16"),
                                Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt16 42)))}}))}}))}}))}))})),
                Core.applicationArgument = (Core.TermVariable (Core.Name "hydra.lexical.emptyGraph"))})),
              Core.applicationArgument = (Core.TermVariable (Core.Name "hydra.monads.emptyTrace"))})),
            Testing.evaluationTestCaseOutput = (Core.TermRecord (Core.Record {
              Core.recordTypeName = (Core.Name "hydra.compute.FlowState"),
              Core.recordFields = [
                Core.Field {
                  Core.fieldName = (Core.Name "value"),
                  Core.fieldTerm = (Core.TermMaybe (Just (Core.TermMaybe Nothing)))},
                Core.Field {
                  Core.fieldName = (Core.Name "state"),
                  Core.fieldTerm = (Core.TermVariable (Core.Name "hydra.lexical.emptyGraph"))},
                Core.Field {
                  Core.fieldName = (Core.Name "trace"),
                  Core.fieldTerm = (Core.TermVariable (Core.Name "hydra.monads.emptyTrace"))}]}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get missing description #2",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermFunction (Core.FunctionElimination (Core.EliminationWrap (Core.Name "hydra.compute.Flow")))),
                  Core.applicationArgument = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermDescription")),
                    Core.applicationArgument = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "literal"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "string"),
                            Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "no description here"))}}))}}))}))})),
                Core.applicationArgument = (Core.TermVariable (Core.Name "hydra.lexical.emptyGraph"))})),
              Core.applicationArgument = (Core.TermVariable (Core.Name "hydra.monads.emptyTrace"))})),
            Testing.evaluationTestCaseOutput = (Core.TermRecord (Core.Record {
              Core.recordTypeName = (Core.Name "hydra.compute.FlowState"),
              Core.recordFields = [
                Core.Field {
                  Core.fieldName = (Core.Name "value"),
                  Core.fieldTerm = (Core.TermMaybe (Just (Core.TermMaybe Nothing)))},
                Core.Field {
                  Core.fieldName = (Core.Name "state"),
                  Core.fieldTerm = (Core.TermVariable (Core.Name "hydra.lexical.emptyGraph"))},
                Core.Field {
                  Core.fieldName = (Core.Name "trace"),
                  Core.fieldTerm = (Core.TermVariable (Core.Name "hydra.monads.emptyTrace"))}]}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get missing description #3",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermFunction (Core.FunctionElimination (Core.EliminationWrap (Core.Name "hydra.compute.Flow")))),
                  Core.applicationArgument = (Core.TermApplication (Core.Application {
                    Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermDescription")),
                    Core.applicationArgument = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "literal"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "integer"),
                            Core.fieldTerm = (Core.TermUnion (Core.Injection {
                              Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                              Core.injectionField = Core.Field {
                                Core.fieldName = (Core.Name "int32"),
                                Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 0)))}}))}}))}}))}))})),
                Core.applicationArgument = (Core.TermVariable (Core.Name "hydra.lexical.emptyGraph"))})),
              Core.applicationArgument = (Core.TermVariable (Core.Name "hydra.monads.emptyTrace"))})),
            Testing.evaluationTestCaseOutput = (Core.TermRecord (Core.Record {
              Core.recordTypeName = (Core.Name "hydra.compute.FlowState"),
              Core.recordFields = [
                Core.Field {
                  Core.fieldName = (Core.Name "value"),
                  Core.fieldTerm = (Core.TermMaybe (Just (Core.TermMaybe Nothing)))},
                Core.Field {
                  Core.fieldName = (Core.Name "state"),
                  Core.fieldTerm = (Core.TermVariable (Core.Name "hydra.lexical.emptyGraph"))},
                Core.Field {
                  Core.fieldName = (Core.Name "trace"),
                  Core.fieldTerm = (Core.TermVariable (Core.Name "hydra.monads.emptyTrace"))}]}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "outer description overrides inner #1",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermDescription")),
                Core.applicationArgument = (Core.TermMaybe (Just (Core.TermLiteral (Core.LiteralString "outer"))))})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermDescription")),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermLiteral (Core.LiteralString "inner"))))})),
                Core.applicationArgument = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "string"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "bar"))}}))}}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "annotated"),
                Core.fieldTerm = (Core.TermRecord (Core.Record {
                  Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                  Core.recordFields = [
                    Core.Field {
                      Core.fieldName = (Core.Name "body"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "bar"))}}))}}))},
                    Core.Field {
                      Core.fieldName = (Core.Name "annotation"),
                      Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                        Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                        Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "description"))})) (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "outer"))}}))}}))))}]}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "outer description overrides inner #2",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermDescription")),
                Core.applicationArgument = (Core.TermMaybe (Just (Core.TermLiteral (Core.LiteralString "new"))))})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermDescription")),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermLiteral (Core.LiteralString "old"))))})),
                Core.applicationArgument = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "integer"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "int32"),
                            Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 99)))}}))}}))}}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "annotated"),
                Core.fieldTerm = (Core.TermRecord (Core.Record {
                  Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                  Core.recordFields = [
                    Core.Field {
                      Core.fieldName = (Core.Name "body"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "integer"),
                              Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                Core.injectionField = Core.Field {
                                  Core.fieldName = (Core.Name "int32"),
                                  Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 99)))}}))}}))}}))},
                    Core.Field {
                      Core.fieldName = (Core.Name "annotation"),
                      Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                        Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                        Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "description"))})) (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "literal"),
                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                            Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                            Core.injectionField = Core.Field {
                              Core.fieldName = (Core.Name "string"),
                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "new"))}}))}}))))}]}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "unset description #1",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermDescription")),
                Core.applicationArgument = (Core.TermMaybe Nothing)})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermDescription")),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermLiteral (Core.LiteralString "desc"))))})),
                Core.applicationArgument = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "integer"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "int64"),
                            Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt64 137)))}}))}}))}}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "literal"),
                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "integer"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "int64"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt64 137)))}}))}}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "unset description #2",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermDescription")),
                Core.applicationArgument = (Core.TermMaybe Nothing)})),
              Core.applicationArgument = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermApplication (Core.Application {
                  Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.setTermDescription")),
                  Core.applicationArgument = (Core.TermMaybe (Just (Core.TermLiteral (Core.LiteralString "to be removed"))))})),
                Core.applicationArgument = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "literal"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "string"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "test"))}}))}}))}))})),
            Testing.evaluationTestCaseOutput = (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "literal"),
                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "string"),
                    Core.fieldTerm = (Core.TermLiteral (Core.LiteralString "test"))}}))}}))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = []}]},
    Testing.TestGroup {
      Testing.testGroupName = "layered annotations",
      Testing.testGroupDescription = Nothing,
      Testing.testGroupSubgroups = [],
      Testing.testGroupCases = [
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get annotation from unannotated term",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermAnnotation")),
                Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                  Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                  Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "one"))}))})),
              Core.applicationArgument = (Core.TermUnion (Core.Injection {
                Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                Core.injectionField = Core.Field {
                  Core.fieldName = (Core.Name "literal"),
                  Core.fieldTerm = (Core.TermUnion (Core.Injection {
                    Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                    Core.injectionField = Core.Field {
                      Core.fieldName = (Core.Name "integer"),
                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                        Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                        Core.injectionField = Core.Field {
                          Core.fieldName = (Core.Name "int32"),
                          Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))})),
            Testing.evaluationTestCaseOutput = (Core.TermMaybe Nothing)})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get annotation from singly annotated term",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermAnnotation")),
                Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                  Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                  Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "one"))}))})),
              Core.applicationArgument = (Core.TermUnion (Core.Injection {
                Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                Core.injectionField = Core.Field {
                  Core.fieldName = (Core.Name "annotated"),
                  Core.fieldTerm = (Core.TermRecord (Core.Record {
                    Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                    Core.recordFields = [
                      Core.Field {
                        Core.fieldName = (Core.Name "body"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "literal"),
                            Core.fieldTerm = (Core.TermUnion (Core.Injection {
                              Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                              Core.injectionField = Core.Field {
                                Core.fieldName = (Core.Name "integer"),
                                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                  Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                  Core.injectionField = Core.Field {
                                    Core.fieldName = (Core.Name "int32"),
                                    Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))},
                      Core.Field {
                        Core.fieldName = (Core.Name "annotation"),
                        Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                          Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                          Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "one"))})) (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "literal"),
                            Core.fieldTerm = (Core.TermUnion (Core.Injection {
                              Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                              Core.injectionField = Core.Field {
                                Core.fieldName = (Core.Name "integer"),
                                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                  Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                  Core.injectionField = Core.Field {
                                    Core.fieldName = (Core.Name "int32"),
                                    Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 1)))}}))}}))}}))))}]}))}}))})),
            Testing.evaluationTestCaseOutput = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "literal"),
                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "integer"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "int32"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 1)))}}))}}))}}))))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get inner annotation from doubly annotated term",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermAnnotation")),
                Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                  Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                  Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "one"))}))})),
              Core.applicationArgument = (Core.TermUnion (Core.Injection {
                Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                Core.injectionField = Core.Field {
                  Core.fieldName = (Core.Name "annotated"),
                  Core.fieldTerm = (Core.TermRecord (Core.Record {
                    Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                    Core.recordFields = [
                      Core.Field {
                        Core.fieldName = (Core.Name "body"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "annotated"),
                            Core.fieldTerm = (Core.TermRecord (Core.Record {
                              Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                              Core.recordFields = [
                                Core.Field {
                                  Core.fieldName = (Core.Name "body"),
                                  Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                                    Core.injectionField = Core.Field {
                                      Core.fieldName = (Core.Name "literal"),
                                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                                        Core.injectionField = Core.Field {
                                          Core.fieldName = (Core.Name "integer"),
                                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                            Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                            Core.injectionField = Core.Field {
                                              Core.fieldName = (Core.Name "int32"),
                                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))},
                                Core.Field {
                                  Core.fieldName = (Core.Name "annotation"),
                                  Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "one"))})) (Core.TermUnion (Core.Injection {
                                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                                    Core.injectionField = Core.Field {
                                      Core.fieldName = (Core.Name "literal"),
                                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                                        Core.injectionField = Core.Field {
                                          Core.fieldName = (Core.Name "integer"),
                                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                            Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                            Core.injectionField = Core.Field {
                                              Core.fieldName = (Core.Name "int32"),
                                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 1)))}}))}}))}}))))}]}))}}))},
                      Core.Field {
                        Core.fieldName = (Core.Name "annotation"),
                        Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                          Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                          Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "two"))})) (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "literal"),
                            Core.fieldTerm = (Core.TermUnion (Core.Injection {
                              Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                              Core.injectionField = Core.Field {
                                Core.fieldName = (Core.Name "integer"),
                                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                  Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                  Core.injectionField = Core.Field {
                                    Core.fieldName = (Core.Name "int32"),
                                    Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 2)))}}))}}))}}))))}]}))}}))})),
            Testing.evaluationTestCaseOutput = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "literal"),
                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "integer"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "int32"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 1)))}}))}}))}}))))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get outer annotation from doubly annotated term",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermAnnotation")),
                Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                  Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                  Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "two"))}))})),
              Core.applicationArgument = (Core.TermUnion (Core.Injection {
                Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                Core.injectionField = Core.Field {
                  Core.fieldName = (Core.Name "annotated"),
                  Core.fieldTerm = (Core.TermRecord (Core.Record {
                    Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                    Core.recordFields = [
                      Core.Field {
                        Core.fieldName = (Core.Name "body"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "annotated"),
                            Core.fieldTerm = (Core.TermRecord (Core.Record {
                              Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                              Core.recordFields = [
                                Core.Field {
                                  Core.fieldName = (Core.Name "body"),
                                  Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                                    Core.injectionField = Core.Field {
                                      Core.fieldName = (Core.Name "literal"),
                                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                                        Core.injectionField = Core.Field {
                                          Core.fieldName = (Core.Name "integer"),
                                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                            Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                            Core.injectionField = Core.Field {
                                              Core.fieldName = (Core.Name "int32"),
                                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))},
                                Core.Field {
                                  Core.fieldName = (Core.Name "annotation"),
                                  Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "one"))})) (Core.TermUnion (Core.Injection {
                                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                                    Core.injectionField = Core.Field {
                                      Core.fieldName = (Core.Name "literal"),
                                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                                        Core.injectionField = Core.Field {
                                          Core.fieldName = (Core.Name "integer"),
                                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                            Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                            Core.injectionField = Core.Field {
                                              Core.fieldName = (Core.Name "int32"),
                                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 1)))}}))}}))}}))))}]}))}}))},
                      Core.Field {
                        Core.fieldName = (Core.Name "annotation"),
                        Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                          Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                          Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "two"))})) (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "literal"),
                            Core.fieldTerm = (Core.TermUnion (Core.Injection {
                              Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                              Core.injectionField = Core.Field {
                                Core.fieldName = (Core.Name "integer"),
                                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                  Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                  Core.injectionField = Core.Field {
                                    Core.fieldName = (Core.Name "int32"),
                                    Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 2)))}}))}}))}}))))}]}))}}))})),
            Testing.evaluationTestCaseOutput = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "literal"),
                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "integer"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "int32"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 2)))}}))}}))}}))))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "get non-overridden annotation from triply annotated term",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermAnnotation")),
                Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                  Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                  Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "two"))}))})),
              Core.applicationArgument = (Core.TermUnion (Core.Injection {
                Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                Core.injectionField = Core.Field {
                  Core.fieldName = (Core.Name "annotated"),
                  Core.fieldTerm = (Core.TermRecord (Core.Record {
                    Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                    Core.recordFields = [
                      Core.Field {
                        Core.fieldName = (Core.Name "body"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "annotated"),
                            Core.fieldTerm = (Core.TermRecord (Core.Record {
                              Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                              Core.recordFields = [
                                Core.Field {
                                  Core.fieldName = (Core.Name "body"),
                                  Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                                    Core.injectionField = Core.Field {
                                      Core.fieldName = (Core.Name "annotated"),
                                      Core.fieldTerm = (Core.TermRecord (Core.Record {
                                        Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                                        Core.recordFields = [
                                          Core.Field {
                                            Core.fieldName = (Core.Name "body"),
                                            Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                                              Core.injectionField = Core.Field {
                                                Core.fieldName = (Core.Name "literal"),
                                                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                                                  Core.injectionField = Core.Field {
                                                    Core.fieldName = (Core.Name "integer"),
                                                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                                      Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                                      Core.injectionField = Core.Field {
                                                        Core.fieldName = (Core.Name "int32"),
                                                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))},
                                          Core.Field {
                                            Core.fieldName = (Core.Name "annotation"),
                                            Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                                              Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                                              Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "one"))})) (Core.TermUnion (Core.Injection {
                                              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                                              Core.injectionField = Core.Field {
                                                Core.fieldName = (Core.Name "literal"),
                                                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                                                  Core.injectionField = Core.Field {
                                                    Core.fieldName = (Core.Name "integer"),
                                                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                                      Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                                      Core.injectionField = Core.Field {
                                                        Core.fieldName = (Core.Name "int32"),
                                                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 1)))}}))}}))}}))))}]}))}}))},
                                Core.Field {
                                  Core.fieldName = (Core.Name "annotation"),
                                  Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "two"))})) (Core.TermUnion (Core.Injection {
                                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                                    Core.injectionField = Core.Field {
                                      Core.fieldName = (Core.Name "literal"),
                                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                                        Core.injectionField = Core.Field {
                                          Core.fieldName = (Core.Name "integer"),
                                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                            Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                            Core.injectionField = Core.Field {
                                              Core.fieldName = (Core.Name "int32"),
                                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 2)))}}))}}))}}))))}]}))}}))},
                      Core.Field {
                        Core.fieldName = (Core.Name "annotation"),
                        Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                          Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                          Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "one"))})) (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "literal"),
                            Core.fieldTerm = (Core.TermUnion (Core.Injection {
                              Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                              Core.injectionField = Core.Field {
                                Core.fieldName = (Core.Name "integer"),
                                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                  Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                  Core.injectionField = Core.Field {
                                    Core.fieldName = (Core.Name "int32"),
                                    Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 99)))}}))}}))}}))))}]}))}}))})),
            Testing.evaluationTestCaseOutput = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "literal"),
                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "integer"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "int32"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 2)))}}))}}))}}))))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]},
        Testing.TestCaseWithMetadata {
          Testing.testCaseWithMetadataName = "outer annotation overrides inner in layered term",
          Testing.testCaseWithMetadataCase = (Testing.TestCaseEvaluation (Testing.EvaluationTestCase {
            Testing.evaluationTestCaseEvaluationStyle = Testing.EvaluationStyleEager,
            Testing.evaluationTestCaseInput = (Core.TermApplication (Core.Application {
              Core.applicationFunction = (Core.TermApplication (Core.Application {
                Core.applicationFunction = (Core.TermVariable (Core.Name "hydra.annotations.getTermAnnotation")),
                Core.applicationArgument = (Core.TermWrap (Core.WrappedTerm {
                  Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                  Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "one"))}))})),
              Core.applicationArgument = (Core.TermUnion (Core.Injection {
                Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                Core.injectionField = Core.Field {
                  Core.fieldName = (Core.Name "annotated"),
                  Core.fieldTerm = (Core.TermRecord (Core.Record {
                    Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                    Core.recordFields = [
                      Core.Field {
                        Core.fieldName = (Core.Name "body"),
                        Core.fieldTerm = (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "annotated"),
                            Core.fieldTerm = (Core.TermRecord (Core.Record {
                              Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                              Core.recordFields = [
                                Core.Field {
                                  Core.fieldName = (Core.Name "body"),
                                  Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                                    Core.injectionField = Core.Field {
                                      Core.fieldName = (Core.Name "annotated"),
                                      Core.fieldTerm = (Core.TermRecord (Core.Record {
                                        Core.recordTypeName = (Core.Name "hydra.core.AnnotatedTerm"),
                                        Core.recordFields = [
                                          Core.Field {
                                            Core.fieldName = (Core.Name "body"),
                                            Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                                              Core.injectionField = Core.Field {
                                                Core.fieldName = (Core.Name "literal"),
                                                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                                                  Core.injectionField = Core.Field {
                                                    Core.fieldName = (Core.Name "integer"),
                                                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                                      Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                                      Core.injectionField = Core.Field {
                                                        Core.fieldName = (Core.Name "int32"),
                                                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 42)))}}))}}))}}))},
                                          Core.Field {
                                            Core.fieldName = (Core.Name "annotation"),
                                            Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                                              Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                                              Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "one"))})) (Core.TermUnion (Core.Injection {
                                              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                                              Core.injectionField = Core.Field {
                                                Core.fieldName = (Core.Name "literal"),
                                                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                                                  Core.injectionField = Core.Field {
                                                    Core.fieldName = (Core.Name "integer"),
                                                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                                      Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                                      Core.injectionField = Core.Field {
                                                        Core.fieldName = (Core.Name "int32"),
                                                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 1)))}}))}}))}}))))}]}))}}))},
                                Core.Field {
                                  Core.fieldName = (Core.Name "annotation"),
                                  Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                                    Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                                    Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "two"))})) (Core.TermUnion (Core.Injection {
                                    Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                                    Core.injectionField = Core.Field {
                                      Core.fieldName = (Core.Name "literal"),
                                      Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                        Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                                        Core.injectionField = Core.Field {
                                          Core.fieldName = (Core.Name "integer"),
                                          Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                            Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                            Core.injectionField = Core.Field {
                                              Core.fieldName = (Core.Name "int32"),
                                              Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 2)))}}))}}))}}))))}]}))}}))},
                      Core.Field {
                        Core.fieldName = (Core.Name "annotation"),
                        Core.fieldTerm = (Core.TermMap (Maps.singleton (Core.TermWrap (Core.WrappedTerm {
                          Core.wrappedTermTypeName = (Core.Name "hydra.core.Name"),
                          Core.wrappedTermBody = (Core.TermLiteral (Core.LiteralString "one"))})) (Core.TermUnion (Core.Injection {
                          Core.injectionTypeName = (Core.Name "hydra.core.Term"),
                          Core.injectionField = Core.Field {
                            Core.fieldName = (Core.Name "literal"),
                            Core.fieldTerm = (Core.TermUnion (Core.Injection {
                              Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                              Core.injectionField = Core.Field {
                                Core.fieldName = (Core.Name "integer"),
                                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                                  Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                                  Core.injectionField = Core.Field {
                                    Core.fieldName = (Core.Name "int32"),
                                    Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 99)))}}))}}))}}))))}]}))}}))})),
            Testing.evaluationTestCaseOutput = (Core.TermMaybe (Just (Core.TermUnion (Core.Injection {
              Core.injectionTypeName = (Core.Name "hydra.core.Term"),
              Core.injectionField = Core.Field {
                Core.fieldName = (Core.Name "literal"),
                Core.fieldTerm = (Core.TermUnion (Core.Injection {
                  Core.injectionTypeName = (Core.Name "hydra.core.Literal"),
                  Core.injectionField = Core.Field {
                    Core.fieldName = (Core.Name "integer"),
                    Core.fieldTerm = (Core.TermUnion (Core.Injection {
                      Core.injectionTypeName = (Core.Name "hydra.core.IntegerValue"),
                      Core.injectionField = Core.Field {
                        Core.fieldName = (Core.Name "int32"),
                        Core.fieldTerm = (Core.TermLiteral (Core.LiteralInteger (Core.IntegerValueInt32 99)))}}))}}))}}))))})),
          Testing.testCaseWithMetadataDescription = Nothing,
          Testing.testCaseWithMetadataTags = [
            Testing.Tag "requiresFlowDecoding"]}]}],
  Testing.testGroupCases = []}