packages feed

hydra-0.15.0: src/main/haskell/Hydra/Dsl/Cypher/Features.hs

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

-- | DSL functions for hydra.cypher.features

module Hydra.Dsl.Cypher.Features where

import qualified Hydra.Core as Core
import qualified Hydra.Cypher.Features as Features
import qualified Hydra.Phantoms as Phantoms
import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
import qualified Data.Scientific as Sci

aggregateFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AggregateFunctionFeatures
aggregateFunctionFeatures avg collect count max min percentileCont percentileDisc stdev stdevp sum =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "avg"),
          Core.fieldTerm = (Phantoms.unTTerm avg)},
        Core.Field {
          Core.fieldName = (Core.Name "collect"),
          Core.fieldTerm = (Phantoms.unTTerm collect)},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Phantoms.unTTerm count)},
        Core.Field {
          Core.fieldName = (Core.Name "max"),
          Core.fieldTerm = (Phantoms.unTTerm max)},
        Core.Field {
          Core.fieldName = (Core.Name "min"),
          Core.fieldTerm = (Phantoms.unTTerm min)},
        Core.Field {
          Core.fieldName = (Core.Name "percentileCont"),
          Core.fieldTerm = (Phantoms.unTTerm percentileCont)},
        Core.Field {
          Core.fieldName = (Core.Name "percentileDisc"),
          Core.fieldTerm = (Phantoms.unTTerm percentileDisc)},
        Core.Field {
          Core.fieldName = (Core.Name "stdev"),
          Core.fieldTerm = (Phantoms.unTTerm stdev)},
        Core.Field {
          Core.fieldName = (Core.Name "stdevp"),
          Core.fieldTerm = (Phantoms.unTTerm stdevp)},
        Core.Field {
          Core.fieldName = (Core.Name "sum"),
          Core.fieldTerm = (Phantoms.unTTerm sum)}]}))

aggregateFunctionFeaturesAvg :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool
aggregateFunctionFeaturesAvg x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
        Core.projectionField = (Core.Name "avg")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

aggregateFunctionFeaturesCollect :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool
aggregateFunctionFeaturesCollect x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
        Core.projectionField = (Core.Name "collect")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

aggregateFunctionFeaturesCount :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool
aggregateFunctionFeaturesCount x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
        Core.projectionField = (Core.Name "count")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

aggregateFunctionFeaturesMax :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool
aggregateFunctionFeaturesMax x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
        Core.projectionField = (Core.Name "max")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

aggregateFunctionFeaturesMin :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool
aggregateFunctionFeaturesMin x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
        Core.projectionField = (Core.Name "min")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

aggregateFunctionFeaturesPercentileCont :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool
aggregateFunctionFeaturesPercentileCont x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
        Core.projectionField = (Core.Name "percentileCont")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

aggregateFunctionFeaturesPercentileDisc :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool
aggregateFunctionFeaturesPercentileDisc x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
        Core.projectionField = (Core.Name "percentileDisc")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

aggregateFunctionFeaturesStdev :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool
aggregateFunctionFeaturesStdev x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
        Core.projectionField = (Core.Name "stdev")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

aggregateFunctionFeaturesStdevp :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool
aggregateFunctionFeaturesStdevp x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
        Core.projectionField = (Core.Name "stdevp")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

aggregateFunctionFeaturesSum :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool
aggregateFunctionFeaturesSum x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
        Core.projectionField = (Core.Name "sum")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

aggregateFunctionFeaturesWithAvg :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AggregateFunctionFeatures
aggregateFunctionFeaturesWithAvg original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "avg"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "collect"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "collect")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "max"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "max")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "min"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "min")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileCont"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileCont")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileDisc"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileDisc")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdev"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdev")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdevp"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdevp")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sum"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "sum")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

aggregateFunctionFeaturesWithCollect :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AggregateFunctionFeatures
aggregateFunctionFeaturesWithCollect original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "avg"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "avg")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "collect"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "max"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "max")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "min"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "min")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileCont"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileCont")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileDisc"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileDisc")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdev"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdev")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdevp"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdevp")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sum"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "sum")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

aggregateFunctionFeaturesWithCount :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AggregateFunctionFeatures
aggregateFunctionFeaturesWithCount original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "avg"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "avg")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "collect"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "collect")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "max"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "max")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "min"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "min")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileCont"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileCont")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileDisc"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileDisc")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdev"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdev")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdevp"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdevp")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sum"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "sum")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

aggregateFunctionFeaturesWithMax :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AggregateFunctionFeatures
aggregateFunctionFeaturesWithMax original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "avg"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "avg")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "collect"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "collect")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "max"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "min"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "min")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileCont"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileCont")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileDisc"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileDisc")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdev"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdev")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdevp"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdevp")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sum"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "sum")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

aggregateFunctionFeaturesWithMin :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AggregateFunctionFeatures
aggregateFunctionFeaturesWithMin original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "avg"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "avg")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "collect"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "collect")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "max"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "max")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "min"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "percentileCont"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileCont")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileDisc"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileDisc")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdev"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdev")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdevp"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdevp")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sum"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "sum")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

aggregateFunctionFeaturesWithPercentileCont :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AggregateFunctionFeatures
aggregateFunctionFeaturesWithPercentileCont original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "avg"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "avg")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "collect"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "collect")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "max"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "max")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "min"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "min")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileCont"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "percentileDisc"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileDisc")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdev"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdev")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdevp"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdevp")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sum"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "sum")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

aggregateFunctionFeaturesWithPercentileDisc :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AggregateFunctionFeatures
aggregateFunctionFeaturesWithPercentileDisc original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "avg"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "avg")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "collect"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "collect")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "max"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "max")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "min"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "min")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileCont"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileCont")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileDisc"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "stdev"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdev")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdevp"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdevp")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sum"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "sum")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

aggregateFunctionFeaturesWithStdev :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AggregateFunctionFeatures
aggregateFunctionFeaturesWithStdev original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "avg"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "avg")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "collect"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "collect")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "max"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "max")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "min"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "min")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileCont"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileCont")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileDisc"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileDisc")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdev"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "stdevp"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdevp")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sum"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "sum")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

aggregateFunctionFeaturesWithStdevp :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AggregateFunctionFeatures
aggregateFunctionFeaturesWithStdevp original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "avg"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "avg")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "collect"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "collect")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "max"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "max")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "min"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "min")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileCont"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileCont")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileDisc"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileDisc")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdev"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdev")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdevp"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "sum"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "sum")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

aggregateFunctionFeaturesWithSum :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AggregateFunctionFeatures
aggregateFunctionFeaturesWithSum original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "avg"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "avg")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "collect"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "collect")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "max"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "max")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "min"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "min")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileCont"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileCont")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "percentileDisc"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "percentileDisc")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdev"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdev")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stdevp"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AggregateFunctionFeatures"),
              Core.projectionField = (Core.Name "stdevp")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sum"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

arithmeticFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ArithmeticFeatures
arithmeticFeatures plus minus multiply divide modulus powerOf =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "plus"),
          Core.fieldTerm = (Phantoms.unTTerm plus)},
        Core.Field {
          Core.fieldName = (Core.Name "minus"),
          Core.fieldTerm = (Phantoms.unTTerm minus)},
        Core.Field {
          Core.fieldName = (Core.Name "multiply"),
          Core.fieldTerm = (Phantoms.unTTerm multiply)},
        Core.Field {
          Core.fieldName = (Core.Name "divide"),
          Core.fieldTerm = (Phantoms.unTTerm divide)},
        Core.Field {
          Core.fieldName = (Core.Name "modulus"),
          Core.fieldTerm = (Phantoms.unTTerm modulus)},
        Core.Field {
          Core.fieldName = (Core.Name "powerOf"),
          Core.fieldTerm = (Phantoms.unTTerm powerOf)}]}))

arithmeticFeaturesDivide :: Phantoms.TTerm Features.ArithmeticFeatures -> Phantoms.TTerm Bool
arithmeticFeaturesDivide x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
        Core.projectionField = (Core.Name "divide")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

arithmeticFeaturesMinus :: Phantoms.TTerm Features.ArithmeticFeatures -> Phantoms.TTerm Bool
arithmeticFeaturesMinus x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
        Core.projectionField = (Core.Name "minus")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

arithmeticFeaturesModulus :: Phantoms.TTerm Features.ArithmeticFeatures -> Phantoms.TTerm Bool
arithmeticFeaturesModulus x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
        Core.projectionField = (Core.Name "modulus")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

arithmeticFeaturesMultiply :: Phantoms.TTerm Features.ArithmeticFeatures -> Phantoms.TTerm Bool
arithmeticFeaturesMultiply x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
        Core.projectionField = (Core.Name "multiply")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

arithmeticFeaturesPlus :: Phantoms.TTerm Features.ArithmeticFeatures -> Phantoms.TTerm Bool
arithmeticFeaturesPlus x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
        Core.projectionField = (Core.Name "plus")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

arithmeticFeaturesPowerOf :: Phantoms.TTerm Features.ArithmeticFeatures -> Phantoms.TTerm Bool
arithmeticFeaturesPowerOf x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
        Core.projectionField = (Core.Name "powerOf")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

arithmeticFeaturesWithDivide :: Phantoms.TTerm Features.ArithmeticFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ArithmeticFeatures
arithmeticFeaturesWithDivide original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "plus"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "plus")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "minus"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "minus")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "multiply"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "multiply")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "divide"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "modulus"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "modulus")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "powerOf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "powerOf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

arithmeticFeaturesWithMinus :: Phantoms.TTerm Features.ArithmeticFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ArithmeticFeatures
arithmeticFeaturesWithMinus original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "plus"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "plus")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "minus"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "multiply"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "multiply")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "divide"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "divide")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "modulus"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "modulus")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "powerOf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "powerOf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

arithmeticFeaturesWithModulus :: Phantoms.TTerm Features.ArithmeticFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ArithmeticFeatures
arithmeticFeaturesWithModulus original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "plus"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "plus")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "minus"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "minus")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "multiply"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "multiply")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "divide"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "divide")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "modulus"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "powerOf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "powerOf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

arithmeticFeaturesWithMultiply :: Phantoms.TTerm Features.ArithmeticFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ArithmeticFeatures
arithmeticFeaturesWithMultiply original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "plus"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "plus")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "minus"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "minus")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "multiply"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "divide"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "divide")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "modulus"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "modulus")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "powerOf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "powerOf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

arithmeticFeaturesWithPlus :: Phantoms.TTerm Features.ArithmeticFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ArithmeticFeatures
arithmeticFeaturesWithPlus original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "plus"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "minus"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "minus")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "multiply"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "multiply")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "divide"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "divide")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "modulus"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "modulus")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "powerOf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "powerOf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

arithmeticFeaturesWithPowerOf :: Phantoms.TTerm Features.ArithmeticFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ArithmeticFeatures
arithmeticFeaturesWithPowerOf original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "plus"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "plus")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "minus"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "minus")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "multiply"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "multiply")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "divide"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "divide")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "modulus"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ArithmeticFeatures"),
              Core.projectionField = (Core.Name "modulus")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "powerOf"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

atomFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AtomFeatures
atomFeatures caseExpression count existentialSubquery functionInvocation parameter patternComprehension patternPredicate variable =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "caseExpression"),
          Core.fieldTerm = (Phantoms.unTTerm caseExpression)},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Phantoms.unTTerm count)},
        Core.Field {
          Core.fieldName = (Core.Name "existentialSubquery"),
          Core.fieldTerm = (Phantoms.unTTerm existentialSubquery)},
        Core.Field {
          Core.fieldName = (Core.Name "functionInvocation"),
          Core.fieldTerm = (Phantoms.unTTerm functionInvocation)},
        Core.Field {
          Core.fieldName = (Core.Name "parameter"),
          Core.fieldTerm = (Phantoms.unTTerm parameter)},
        Core.Field {
          Core.fieldName = (Core.Name "patternComprehension"),
          Core.fieldTerm = (Phantoms.unTTerm patternComprehension)},
        Core.Field {
          Core.fieldName = (Core.Name "patternPredicate"),
          Core.fieldTerm = (Phantoms.unTTerm patternPredicate)},
        Core.Field {
          Core.fieldName = (Core.Name "variable"),
          Core.fieldTerm = (Phantoms.unTTerm variable)}]}))

atomFeaturesCaseExpression :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool
atomFeaturesCaseExpression x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
        Core.projectionField = (Core.Name "caseExpression")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

atomFeaturesCount :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool
atomFeaturesCount x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
        Core.projectionField = (Core.Name "count")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

atomFeaturesExistentialSubquery :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool
atomFeaturesExistentialSubquery x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
        Core.projectionField = (Core.Name "existentialSubquery")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

atomFeaturesFunctionInvocation :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool
atomFeaturesFunctionInvocation x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
        Core.projectionField = (Core.Name "functionInvocation")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

atomFeaturesParameter :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool
atomFeaturesParameter x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
        Core.projectionField = (Core.Name "parameter")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

atomFeaturesPatternComprehension :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool
atomFeaturesPatternComprehension x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
        Core.projectionField = (Core.Name "patternComprehension")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

atomFeaturesPatternPredicate :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool
atomFeaturesPatternPredicate x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
        Core.projectionField = (Core.Name "patternPredicate")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

atomFeaturesVariable :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool
atomFeaturesVariable x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
        Core.projectionField = (Core.Name "variable")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

atomFeaturesWithCaseExpression :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AtomFeatures
atomFeaturesWithCaseExpression original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "caseExpression"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "existentialSubquery"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "existentialSubquery")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "functionInvocation"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "functionInvocation")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "parameter"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "parameter")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "patternComprehension"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "patternComprehension")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "patternPredicate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "patternPredicate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variable"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "variable")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

atomFeaturesWithCount :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AtomFeatures
atomFeaturesWithCount original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "caseExpression"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "caseExpression")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "existentialSubquery"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "existentialSubquery")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "functionInvocation"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "functionInvocation")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "parameter"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "parameter")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "patternComprehension"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "patternComprehension")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "patternPredicate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "patternPredicate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variable"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "variable")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

atomFeaturesWithExistentialSubquery :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AtomFeatures
atomFeaturesWithExistentialSubquery original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "caseExpression"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "caseExpression")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "existentialSubquery"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "functionInvocation"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "functionInvocation")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "parameter"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "parameter")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "patternComprehension"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "patternComprehension")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "patternPredicate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "patternPredicate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variable"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "variable")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

atomFeaturesWithFunctionInvocation :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AtomFeatures
atomFeaturesWithFunctionInvocation original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "caseExpression"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "caseExpression")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "existentialSubquery"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "existentialSubquery")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "functionInvocation"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "parameter"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "parameter")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "patternComprehension"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "patternComprehension")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "patternPredicate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "patternPredicate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variable"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "variable")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

atomFeaturesWithParameter :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AtomFeatures
atomFeaturesWithParameter original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "caseExpression"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "caseExpression")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "existentialSubquery"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "existentialSubquery")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "functionInvocation"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "functionInvocation")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "parameter"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "patternComprehension"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "patternComprehension")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "patternPredicate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "patternPredicate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variable"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "variable")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

atomFeaturesWithPatternComprehension :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AtomFeatures
atomFeaturesWithPatternComprehension original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "caseExpression"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "caseExpression")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "existentialSubquery"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "existentialSubquery")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "functionInvocation"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "functionInvocation")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "parameter"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "parameter")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "patternComprehension"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "patternPredicate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "patternPredicate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variable"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "variable")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

atomFeaturesWithPatternPredicate :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AtomFeatures
atomFeaturesWithPatternPredicate original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "caseExpression"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "caseExpression")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "existentialSubquery"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "existentialSubquery")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "functionInvocation"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "functionInvocation")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "parameter"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "parameter")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "patternComprehension"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "patternComprehension")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "patternPredicate"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "variable"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "variable")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

atomFeaturesWithVariable :: Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.AtomFeatures
atomFeaturesWithVariable original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "caseExpression"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "caseExpression")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "count"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "count")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "existentialSubquery"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "existentialSubquery")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "functionInvocation"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "functionInvocation")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "parameter"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "parameter")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "patternComprehension"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "patternComprehension")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "patternPredicate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.AtomFeatures"),
              Core.projectionField = (Core.Name "patternPredicate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variable"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

comparisonFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ComparisonFeatures
comparisonFeatures equal greaterThan greaterThanOrEqual lessThan lessThanOrEqual notEqual =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "equal"),
          Core.fieldTerm = (Phantoms.unTTerm equal)},
        Core.Field {
          Core.fieldName = (Core.Name "greaterThan"),
          Core.fieldTerm = (Phantoms.unTTerm greaterThan)},
        Core.Field {
          Core.fieldName = (Core.Name "greaterThanOrEqual"),
          Core.fieldTerm = (Phantoms.unTTerm greaterThanOrEqual)},
        Core.Field {
          Core.fieldName = (Core.Name "lessThan"),
          Core.fieldTerm = (Phantoms.unTTerm lessThan)},
        Core.Field {
          Core.fieldName = (Core.Name "lessThanOrEqual"),
          Core.fieldTerm = (Phantoms.unTTerm lessThanOrEqual)},
        Core.Field {
          Core.fieldName = (Core.Name "notEqual"),
          Core.fieldTerm = (Phantoms.unTTerm notEqual)}]}))

comparisonFeaturesEqual :: Phantoms.TTerm Features.ComparisonFeatures -> Phantoms.TTerm Bool
comparisonFeaturesEqual x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
        Core.projectionField = (Core.Name "equal")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

comparisonFeaturesGreaterThan :: Phantoms.TTerm Features.ComparisonFeatures -> Phantoms.TTerm Bool
comparisonFeaturesGreaterThan x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
        Core.projectionField = (Core.Name "greaterThan")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

comparisonFeaturesGreaterThanOrEqual :: Phantoms.TTerm Features.ComparisonFeatures -> Phantoms.TTerm Bool
comparisonFeaturesGreaterThanOrEqual x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
        Core.projectionField = (Core.Name "greaterThanOrEqual")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

comparisonFeaturesLessThan :: Phantoms.TTerm Features.ComparisonFeatures -> Phantoms.TTerm Bool
comparisonFeaturesLessThan x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
        Core.projectionField = (Core.Name "lessThan")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

comparisonFeaturesLessThanOrEqual :: Phantoms.TTerm Features.ComparisonFeatures -> Phantoms.TTerm Bool
comparisonFeaturesLessThanOrEqual x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
        Core.projectionField = (Core.Name "lessThanOrEqual")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

comparisonFeaturesNotEqual :: Phantoms.TTerm Features.ComparisonFeatures -> Phantoms.TTerm Bool
comparisonFeaturesNotEqual x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
        Core.projectionField = (Core.Name "notEqual")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

comparisonFeaturesWithEqual :: Phantoms.TTerm Features.ComparisonFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ComparisonFeatures
comparisonFeaturesWithEqual original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "equal"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "greaterThan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "greaterThan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "greaterThanOrEqual"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "greaterThanOrEqual")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lessThan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "lessThan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lessThanOrEqual"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "lessThanOrEqual")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "notEqual"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "notEqual")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

comparisonFeaturesWithGreaterThan :: Phantoms.TTerm Features.ComparisonFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ComparisonFeatures
comparisonFeaturesWithGreaterThan original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "equal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "equal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "greaterThan"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "greaterThanOrEqual"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "greaterThanOrEqual")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lessThan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "lessThan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lessThanOrEqual"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "lessThanOrEqual")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "notEqual"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "notEqual")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

comparisonFeaturesWithGreaterThanOrEqual :: Phantoms.TTerm Features.ComparisonFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ComparisonFeatures
comparisonFeaturesWithGreaterThanOrEqual original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "equal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "equal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "greaterThan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "greaterThan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "greaterThanOrEqual"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "lessThan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "lessThan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lessThanOrEqual"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "lessThanOrEqual")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "notEqual"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "notEqual")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

comparisonFeaturesWithLessThan :: Phantoms.TTerm Features.ComparisonFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ComparisonFeatures
comparisonFeaturesWithLessThan original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "equal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "equal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "greaterThan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "greaterThan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "greaterThanOrEqual"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "greaterThanOrEqual")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lessThan"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "lessThanOrEqual"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "lessThanOrEqual")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "notEqual"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "notEqual")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

comparisonFeaturesWithLessThanOrEqual :: Phantoms.TTerm Features.ComparisonFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ComparisonFeatures
comparisonFeaturesWithLessThanOrEqual original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "equal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "equal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "greaterThan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "greaterThan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "greaterThanOrEqual"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "greaterThanOrEqual")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lessThan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "lessThan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lessThanOrEqual"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "notEqual"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "notEqual")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

comparisonFeaturesWithNotEqual :: Phantoms.TTerm Features.ComparisonFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ComparisonFeatures
comparisonFeaturesWithNotEqual original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "equal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "equal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "greaterThan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "greaterThan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "greaterThanOrEqual"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "greaterThanOrEqual")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lessThan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "lessThan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lessThanOrEqual"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ComparisonFeatures"),
              Core.projectionField = (Core.Name "lessThanOrEqual")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "notEqual"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

cypherFeatures :: Phantoms.TTerm Features.ArithmeticFeatures -> Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Features.ComparisonFeatures -> Phantoms.TTerm Features.DeleteFeatures -> Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.ListFeatures -> Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Features.LogicalFeatures -> Phantoms.TTerm Features.MatchFeatures -> Phantoms.TTerm Features.MergeFeatures -> Phantoms.TTerm Features.NodePatternFeatures -> Phantoms.TTerm Features.NullFeatures -> Phantoms.TTerm Features.PathFeatures -> Phantoms.TTerm Features.ProcedureCallFeatures -> Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Features.QuantifierFeatures -> Phantoms.TTerm Features.RangeLiteralFeatures -> Phantoms.TTerm Features.ReadingFeatures -> Phantoms.TTerm Features.RelationshipDirectionFeatures -> Phantoms.TTerm Features.RelationshipPatternFeatures -> Phantoms.TTerm Features.RemoveFeatures -> Phantoms.TTerm Features.SetFeatures -> Phantoms.TTerm Features.StringFeatures -> Phantoms.TTerm Features.UpdatingFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeatures arithmetic atom comparison delete function list literal logical match merge nodePattern null path procedureCall projection quantifier rangeLiteral reading relationshipDirection relationshipPattern remove set string updating =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Phantoms.unTTerm arithmetic)},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Phantoms.unTTerm atom)},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Phantoms.unTTerm comparison)},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Phantoms.unTTerm delete)},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Phantoms.unTTerm function)},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Phantoms.unTTerm list)},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Phantoms.unTTerm literal)},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Phantoms.unTTerm logical)},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Phantoms.unTTerm match)},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Phantoms.unTTerm merge)},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Phantoms.unTTerm nodePattern)},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Phantoms.unTTerm null)},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Phantoms.unTTerm path)},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Phantoms.unTTerm procedureCall)},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Phantoms.unTTerm projection)},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Phantoms.unTTerm quantifier)},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Phantoms.unTTerm rangeLiteral)},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Phantoms.unTTerm reading)},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Phantoms.unTTerm relationshipDirection)},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Phantoms.unTTerm relationshipPattern)},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Phantoms.unTTerm remove)},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Phantoms.unTTerm set)},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Phantoms.unTTerm string)},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Phantoms.unTTerm updating)}]}))

cypherFeaturesArithmetic :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.ArithmeticFeatures
cypherFeaturesArithmetic x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "arithmetic")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesAtom :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.AtomFeatures
cypherFeaturesAtom x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "atom")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesComparison :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.ComparisonFeatures
cypherFeaturesComparison x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "comparison")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesDelete :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.DeleteFeatures
cypherFeaturesDelete x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "delete")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesFunction :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.FunctionFeatures
cypherFeaturesFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "function")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesList :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.ListFeatures
cypherFeaturesList x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "list")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesLiteral :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.LiteralFeatures
cypherFeaturesLiteral x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "literal")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesLogical :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.LogicalFeatures
cypherFeaturesLogical x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "logical")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesMatch :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.MatchFeatures
cypherFeaturesMatch x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "match")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesMerge :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.MergeFeatures
cypherFeaturesMerge x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "merge")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesNodePattern :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.NodePatternFeatures
cypherFeaturesNodePattern x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "nodePattern")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesNull :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.NullFeatures
cypherFeaturesNull x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "null")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesPath :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.PathFeatures
cypherFeaturesPath x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "path")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesProcedureCall :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.ProcedureCallFeatures
cypherFeaturesProcedureCall x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "procedureCall")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesProjection :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.ProjectionFeatures
cypherFeaturesProjection x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "projection")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesQuantifier :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.QuantifierFeatures
cypherFeaturesQuantifier x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "quantifier")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesRangeLiteral :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.RangeLiteralFeatures
cypherFeaturesRangeLiteral x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "rangeLiteral")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesReading :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.ReadingFeatures
cypherFeaturesReading x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "reading")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesRelationshipDirection :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.RelationshipDirectionFeatures
cypherFeaturesRelationshipDirection x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "relationshipDirection")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesRelationshipPattern :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.RelationshipPatternFeatures
cypherFeaturesRelationshipPattern x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "relationshipPattern")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesRemove :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.RemoveFeatures
cypherFeaturesRemove x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "remove")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesSet :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.SetFeatures
cypherFeaturesSet x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "set")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesString :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.StringFeatures
cypherFeaturesString x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "string")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesUpdating :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.UpdatingFeatures
cypherFeaturesUpdating x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
        Core.projectionField = (Core.Name "updating")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

cypherFeaturesWithArithmetic :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.ArithmeticFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithArithmetic original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithAtom :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.AtomFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithAtom original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithComparison :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.ComparisonFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithComparison original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithDelete :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.DeleteFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithDelete original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithFunction :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithList :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.ListFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithList original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithLiteral :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithLiteral original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithLogical :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.LogicalFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithLogical original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithMatch :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.MatchFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithMatch original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithMerge :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.MergeFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithMerge original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithNodePattern :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.NodePatternFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithNodePattern original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithNull :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.NullFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithNull original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithPath :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.PathFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithPath original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithProcedureCall :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.ProcedureCallFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithProcedureCall original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithProjection :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithProjection original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithQuantifier :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.QuantifierFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithQuantifier original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithRangeLiteral :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.RangeLiteralFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithRangeLiteral original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithReading :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.ReadingFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithReading original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithRelationshipDirection :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.RelationshipDirectionFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithRelationshipDirection original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithRelationshipPattern :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.RelationshipPatternFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithRelationshipPattern original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithRemove :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.RemoveFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithRemove original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithSet :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.SetFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithSet original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithString :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.StringFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithString original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "updating")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

cypherFeaturesWithUpdating :: Phantoms.TTerm Features.CypherFeatures -> Phantoms.TTerm Features.UpdatingFeatures -> Phantoms.TTerm Features.CypherFeatures
cypherFeaturesWithUpdating original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "arithmetic"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "arithmetic")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atom"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "atom")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "comparison"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "comparison")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "function"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "function")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "literal"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "literal")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logical"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "logical")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodePattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "nodePattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "path"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "path")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "procedureCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "procedureCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "projection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "quantifier"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "quantifier")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rangeLiteral"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "rangeLiteral")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reading"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "reading")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipDirection"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipDirection")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationshipPattern"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "relationshipPattern")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "remove"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "remove")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.CypherFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "updating"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

databaseFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Features.DatabaseFunctionFeatures
databaseFunctionFeatures dbNameFromElementId =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.DatabaseFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "dbNameFromElementId"),
          Core.fieldTerm = (Phantoms.unTTerm dbNameFromElementId)}]}))

databaseFunctionFeaturesDbNameFromElementId :: Phantoms.TTerm Features.DatabaseFunctionFeatures -> Phantoms.TTerm Bool
databaseFunctionFeaturesDbNameFromElementId x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.DatabaseFunctionFeatures"),
        Core.projectionField = (Core.Name "dbNameFromElementId")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

databaseFunctionFeaturesWithDbNameFromElementId :: Phantoms.TTerm Features.DatabaseFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.DatabaseFunctionFeatures
databaseFunctionFeaturesWithDbNameFromElementId original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.DatabaseFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "dbNameFromElementId"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

deleteFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.DeleteFeatures
deleteFeatures delete detachDelete =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.DeleteFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Phantoms.unTTerm delete)},
        Core.Field {
          Core.fieldName = (Core.Name "detachDelete"),
          Core.fieldTerm = (Phantoms.unTTerm detachDelete)}]}))

deleteFeaturesDelete :: Phantoms.TTerm Features.DeleteFeatures -> Phantoms.TTerm Bool
deleteFeaturesDelete x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.DeleteFeatures"),
        Core.projectionField = (Core.Name "delete")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

deleteFeaturesDetachDelete :: Phantoms.TTerm Features.DeleteFeatures -> Phantoms.TTerm Bool
deleteFeaturesDetachDelete x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.DeleteFeatures"),
        Core.projectionField = (Core.Name "detachDelete")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

deleteFeaturesWithDelete :: Phantoms.TTerm Features.DeleteFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.DeleteFeatures
deleteFeaturesWithDelete original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.DeleteFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "detachDelete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.DeleteFeatures"),
              Core.projectionField = (Core.Name "detachDelete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

deleteFeaturesWithDetachDelete :: Phantoms.TTerm Features.DeleteFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.DeleteFeatures
deleteFeaturesWithDetachDelete original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.DeleteFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "delete"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.DeleteFeatures"),
              Core.projectionField = (Core.Name "delete")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "detachDelete"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

functionFeatures :: Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Features.DatabaseFunctionFeatures -> Phantoms.TTerm Features.GenAIFunctionFeatures -> Phantoms.TTerm Features.GraphFunctionFeatures -> Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Features.LoadCSVFunctionFeatures -> Phantoms.TTerm Features.LogarithmicFunctionFeatures -> Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Features.PredicateFunctionFeatures -> Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Features.SpatialFunctionFeatures -> Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Features.TemporalDurationFunctionFeatures -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Features.VectorFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeatures aggregateFunction databaseFunction genAIFunction graphFunction listFunction loadCSVFunction logarithmicFunction numericFunction predicateFunction scalarFunction spatialFunction stringFunction temporalDurationFunction temporalInstantFunction trigonometricFunction vectorFunction =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Phantoms.unTTerm aggregateFunction)},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Phantoms.unTTerm databaseFunction)},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Phantoms.unTTerm genAIFunction)},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Phantoms.unTTerm graphFunction)},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Phantoms.unTTerm listFunction)},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Phantoms.unTTerm loadCSVFunction)},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Phantoms.unTTerm logarithmicFunction)},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Phantoms.unTTerm numericFunction)},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Phantoms.unTTerm predicateFunction)},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Phantoms.unTTerm scalarFunction)},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Phantoms.unTTerm spatialFunction)},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Phantoms.unTTerm stringFunction)},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Phantoms.unTTerm temporalDurationFunction)},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Phantoms.unTTerm temporalInstantFunction)},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Phantoms.unTTerm trigonometricFunction)},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Phantoms.unTTerm vectorFunction)}]}))

functionFeaturesAggregateFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.AggregateFunctionFeatures
functionFeaturesAggregateFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "aggregateFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesDatabaseFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.DatabaseFunctionFeatures
functionFeaturesDatabaseFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "databaseFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesGenAIFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.GenAIFunctionFeatures
functionFeaturesGenAIFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "genAIFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesGraphFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.GraphFunctionFeatures
functionFeaturesGraphFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "graphFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesListFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.ListFunctionFeatures
functionFeaturesListFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "listFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesLoadCSVFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.LoadCSVFunctionFeatures
functionFeaturesLoadCSVFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "loadCSVFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesLogarithmicFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.LogarithmicFunctionFeatures
functionFeaturesLogarithmicFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "logarithmicFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesNumericFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.NumericFunctionFeatures
functionFeaturesNumericFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "numericFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesPredicateFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.PredicateFunctionFeatures
functionFeaturesPredicateFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "predicateFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesScalarFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.ScalarFunctionFeatures
functionFeaturesScalarFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "scalarFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesSpatialFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.SpatialFunctionFeatures
functionFeaturesSpatialFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "spatialFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesStringFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.StringFunctionFeatures
functionFeaturesStringFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "stringFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesTemporalDurationFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.TemporalDurationFunctionFeatures
functionFeaturesTemporalDurationFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "temporalDurationFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesTemporalInstantFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
functionFeaturesTemporalInstantFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "temporalInstantFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesTrigonometricFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.TrigonometricFunctionFeatures
functionFeaturesTrigonometricFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "trigonometricFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesVectorFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.VectorFunctionFeatures
functionFeaturesVectorFunction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
        Core.projectionField = (Core.Name "vectorFunction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

functionFeaturesWithAggregateFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.AggregateFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithAggregateFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "databaseFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "genAIFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "graphFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "listFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "loadCSVFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "logarithmicFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "numericFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "predicateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "scalarFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "spatialFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "stringFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalDurationFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalInstantFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "trigonometricFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "vectorFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

functionFeaturesWithDatabaseFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.DatabaseFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithDatabaseFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "aggregateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "genAIFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "graphFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "listFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "loadCSVFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "logarithmicFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "numericFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "predicateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "scalarFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "spatialFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "stringFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalDurationFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalInstantFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "trigonometricFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "vectorFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

functionFeaturesWithGenAIFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.GenAIFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithGenAIFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "aggregateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "databaseFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "graphFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "listFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "loadCSVFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "logarithmicFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "numericFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "predicateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "scalarFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "spatialFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "stringFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalDurationFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalInstantFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "trigonometricFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "vectorFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

functionFeaturesWithGraphFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.GraphFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithGraphFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "aggregateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "databaseFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "genAIFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "listFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "loadCSVFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "logarithmicFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "numericFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "predicateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "scalarFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "spatialFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "stringFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalDurationFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalInstantFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "trigonometricFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "vectorFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

functionFeaturesWithListFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithListFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "aggregateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "databaseFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "genAIFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "graphFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "loadCSVFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "logarithmicFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "numericFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "predicateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "scalarFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "spatialFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "stringFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalDurationFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalInstantFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "trigonometricFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "vectorFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

functionFeaturesWithLoadCSVFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.LoadCSVFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithLoadCSVFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "aggregateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "databaseFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "genAIFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "graphFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "listFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "logarithmicFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "numericFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "predicateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "scalarFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "spatialFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "stringFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalDurationFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalInstantFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "trigonometricFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "vectorFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

functionFeaturesWithLogarithmicFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.LogarithmicFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithLogarithmicFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "aggregateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "databaseFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "genAIFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "graphFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "listFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "loadCSVFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "numericFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "predicateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "scalarFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "spatialFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "stringFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalDurationFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalInstantFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "trigonometricFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "vectorFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

functionFeaturesWithNumericFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithNumericFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "aggregateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "databaseFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "genAIFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "graphFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "listFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "loadCSVFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "logarithmicFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "predicateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "scalarFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "spatialFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "stringFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalDurationFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalInstantFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "trigonometricFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "vectorFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

functionFeaturesWithPredicateFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.PredicateFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithPredicateFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "aggregateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "databaseFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "genAIFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "graphFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "listFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "loadCSVFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "logarithmicFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "numericFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "scalarFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "spatialFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "stringFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalDurationFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalInstantFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "trigonometricFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "vectorFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

functionFeaturesWithScalarFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithScalarFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "aggregateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "databaseFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "genAIFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "graphFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "listFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "loadCSVFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "logarithmicFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "numericFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "predicateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "spatialFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "stringFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalDurationFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalInstantFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "trigonometricFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "vectorFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

functionFeaturesWithSpatialFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.SpatialFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithSpatialFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "aggregateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "databaseFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "genAIFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "graphFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "listFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "loadCSVFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "logarithmicFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "numericFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "predicateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "scalarFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "stringFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalDurationFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalInstantFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "trigonometricFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "vectorFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

functionFeaturesWithStringFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithStringFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "aggregateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "databaseFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "genAIFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "graphFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "listFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "loadCSVFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "logarithmicFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "numericFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "predicateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "scalarFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "spatialFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalDurationFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalInstantFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "trigonometricFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "vectorFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

functionFeaturesWithTemporalDurationFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.TemporalDurationFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithTemporalDurationFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "aggregateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "databaseFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "genAIFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "graphFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "listFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "loadCSVFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "logarithmicFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "numericFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "predicateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "scalarFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "spatialFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "stringFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalInstantFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "trigonometricFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "vectorFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

functionFeaturesWithTemporalInstantFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithTemporalInstantFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "aggregateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "databaseFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "genAIFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "graphFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "listFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "loadCSVFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "logarithmicFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "numericFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "predicateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "scalarFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "spatialFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "stringFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalDurationFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "trigonometricFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "vectorFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

functionFeaturesWithTrigonometricFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithTrigonometricFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "aggregateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "databaseFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "genAIFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "graphFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "listFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "loadCSVFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "logarithmicFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "numericFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "predicateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "scalarFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "spatialFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "stringFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalDurationFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalInstantFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "vectorFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

functionFeaturesWithVectorFunction :: Phantoms.TTerm Features.FunctionFeatures -> Phantoms.TTerm Features.VectorFunctionFeatures -> Phantoms.TTerm Features.FunctionFeatures
functionFeaturesWithVectorFunction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "aggregateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "aggregateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "databaseFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "databaseFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "genAIFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "genAIFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "graphFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "listFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "loadCSVFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "loadCSVFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "logarithmicFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "logarithmicFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "numericFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "numericFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "predicateFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "predicateFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "scalarFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "scalarFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "spatialFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "spatialFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "stringFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "stringFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalDurationFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalDurationFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "temporalInstantFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "temporalInstantFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trigonometricFunction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.FunctionFeatures"),
              Core.projectionField = (Core.Name "trigonometricFunction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorFunction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

genAIFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Features.GenAIFunctionFeatures
genAIFunctionFeatures genaiVectorEncode =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.GenAIFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "genaiVectorEncode"),
          Core.fieldTerm = (Phantoms.unTTerm genaiVectorEncode)}]}))

genAIFunctionFeaturesGenaiVectorEncode :: Phantoms.TTerm Features.GenAIFunctionFeatures -> Phantoms.TTerm Bool
genAIFunctionFeaturesGenaiVectorEncode x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.GenAIFunctionFeatures"),
        Core.projectionField = (Core.Name "genaiVectorEncode")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

genAIFunctionFeaturesWithGenaiVectorEncode :: Phantoms.TTerm Features.GenAIFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.GenAIFunctionFeatures
genAIFunctionFeaturesWithGenaiVectorEncode original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.GenAIFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "genaiVectorEncode"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

graphFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.GraphFunctionFeatures
graphFunctionFeatures graphByElementId graphByName graphNames graphPropertiesByName =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "graphByElementId"),
          Core.fieldTerm = (Phantoms.unTTerm graphByElementId)},
        Core.Field {
          Core.fieldName = (Core.Name "graphByName"),
          Core.fieldTerm = (Phantoms.unTTerm graphByName)},
        Core.Field {
          Core.fieldName = (Core.Name "graphNames"),
          Core.fieldTerm = (Phantoms.unTTerm graphNames)},
        Core.Field {
          Core.fieldName = (Core.Name "graphPropertiesByName"),
          Core.fieldTerm = (Phantoms.unTTerm graphPropertiesByName)}]}))

graphFunctionFeaturesGraphByElementId :: Phantoms.TTerm Features.GraphFunctionFeatures -> Phantoms.TTerm Bool
graphFunctionFeaturesGraphByElementId x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
        Core.projectionField = (Core.Name "graphByElementId")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

graphFunctionFeaturesGraphByName :: Phantoms.TTerm Features.GraphFunctionFeatures -> Phantoms.TTerm Bool
graphFunctionFeaturesGraphByName x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
        Core.projectionField = (Core.Name "graphByName")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

graphFunctionFeaturesGraphNames :: Phantoms.TTerm Features.GraphFunctionFeatures -> Phantoms.TTerm Bool
graphFunctionFeaturesGraphNames x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
        Core.projectionField = (Core.Name "graphNames")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

graphFunctionFeaturesGraphPropertiesByName :: Phantoms.TTerm Features.GraphFunctionFeatures -> Phantoms.TTerm Bool
graphFunctionFeaturesGraphPropertiesByName x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
        Core.projectionField = (Core.Name "graphPropertiesByName")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

graphFunctionFeaturesWithGraphByElementId :: Phantoms.TTerm Features.GraphFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.GraphFunctionFeatures
graphFunctionFeaturesWithGraphByElementId original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "graphByElementId"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "graphByName"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
              Core.projectionField = (Core.Name "graphByName")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphNames"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
              Core.projectionField = (Core.Name "graphNames")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphPropertiesByName"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
              Core.projectionField = (Core.Name "graphPropertiesByName")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

graphFunctionFeaturesWithGraphByName :: Phantoms.TTerm Features.GraphFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.GraphFunctionFeatures
graphFunctionFeaturesWithGraphByName original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "graphByElementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
              Core.projectionField = (Core.Name "graphByElementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphByName"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "graphNames"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
              Core.projectionField = (Core.Name "graphNames")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphPropertiesByName"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
              Core.projectionField = (Core.Name "graphPropertiesByName")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

graphFunctionFeaturesWithGraphNames :: Phantoms.TTerm Features.GraphFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.GraphFunctionFeatures
graphFunctionFeaturesWithGraphNames original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "graphByElementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
              Core.projectionField = (Core.Name "graphByElementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphByName"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
              Core.projectionField = (Core.Name "graphByName")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphNames"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "graphPropertiesByName"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
              Core.projectionField = (Core.Name "graphPropertiesByName")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

graphFunctionFeaturesWithGraphPropertiesByName :: Phantoms.TTerm Features.GraphFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.GraphFunctionFeatures
graphFunctionFeaturesWithGraphPropertiesByName original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "graphByElementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
              Core.projectionField = (Core.Name "graphByElementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphByName"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
              Core.projectionField = (Core.Name "graphByName")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphNames"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.GraphFunctionFeatures"),
              Core.projectionField = (Core.Name "graphNames")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "graphPropertiesByName"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

listFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFeatures
listFeatures listComprehension listRange =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "listComprehension"),
          Core.fieldTerm = (Phantoms.unTTerm listComprehension)},
        Core.Field {
          Core.fieldName = (Core.Name "listRange"),
          Core.fieldTerm = (Phantoms.unTTerm listRange)}]}))

listFeaturesListComprehension :: Phantoms.TTerm Features.ListFeatures -> Phantoms.TTerm Bool
listFeaturesListComprehension x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFeatures"),
        Core.projectionField = (Core.Name "listComprehension")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

listFeaturesListRange :: Phantoms.TTerm Features.ListFeatures -> Phantoms.TTerm Bool
listFeaturesListRange x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFeatures"),
        Core.projectionField = (Core.Name "listRange")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

listFeaturesWithListComprehension :: Phantoms.TTerm Features.ListFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFeatures
listFeaturesWithListComprehension original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "listComprehension"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "listRange"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFeatures"),
              Core.projectionField = (Core.Name "listRange")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

listFeaturesWithListRange :: Phantoms.TTerm Features.ListFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFeatures
listFeaturesWithListRange original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "listComprehension"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFeatures"),
              Core.projectionField = (Core.Name "listComprehension")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "listRange"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

listFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFunctionFeatures
listFunctionFeatures keys labels nodes range reduce relationships reverse tail toBooleanList toFloatList toIntegerList toStringList =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "keys"),
          Core.fieldTerm = (Phantoms.unTTerm keys)},
        Core.Field {
          Core.fieldName = (Core.Name "labels"),
          Core.fieldTerm = (Phantoms.unTTerm labels)},
        Core.Field {
          Core.fieldName = (Core.Name "nodes"),
          Core.fieldTerm = (Phantoms.unTTerm nodes)},
        Core.Field {
          Core.fieldName = (Core.Name "range"),
          Core.fieldTerm = (Phantoms.unTTerm range)},
        Core.Field {
          Core.fieldName = (Core.Name "reduce"),
          Core.fieldTerm = (Phantoms.unTTerm reduce)},
        Core.Field {
          Core.fieldName = (Core.Name "relationships"),
          Core.fieldTerm = (Phantoms.unTTerm relationships)},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Phantoms.unTTerm reverse)},
        Core.Field {
          Core.fieldName = (Core.Name "tail"),
          Core.fieldTerm = (Phantoms.unTTerm tail)},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanList"),
          Core.fieldTerm = (Phantoms.unTTerm toBooleanList)},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatList"),
          Core.fieldTerm = (Phantoms.unTTerm toFloatList)},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerList"),
          Core.fieldTerm = (Phantoms.unTTerm toIntegerList)},
        Core.Field {
          Core.fieldName = (Core.Name "toStringList"),
          Core.fieldTerm = (Phantoms.unTTerm toStringList)}]}))

listFunctionFeaturesKeys :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool
listFunctionFeaturesKeys x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
        Core.projectionField = (Core.Name "keys")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

listFunctionFeaturesLabels :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool
listFunctionFeaturesLabels x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
        Core.projectionField = (Core.Name "labels")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

listFunctionFeaturesNodes :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool
listFunctionFeaturesNodes x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
        Core.projectionField = (Core.Name "nodes")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

listFunctionFeaturesRange :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool
listFunctionFeaturesRange x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
        Core.projectionField = (Core.Name "range")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

listFunctionFeaturesReduce :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool
listFunctionFeaturesReduce x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
        Core.projectionField = (Core.Name "reduce")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

listFunctionFeaturesRelationships :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool
listFunctionFeaturesRelationships x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
        Core.projectionField = (Core.Name "relationships")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

listFunctionFeaturesReverse :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool
listFunctionFeaturesReverse x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
        Core.projectionField = (Core.Name "reverse")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

listFunctionFeaturesTail :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool
listFunctionFeaturesTail x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
        Core.projectionField = (Core.Name "tail")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

listFunctionFeaturesToBooleanList :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool
listFunctionFeaturesToBooleanList x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
        Core.projectionField = (Core.Name "toBooleanList")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

listFunctionFeaturesToFloatList :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool
listFunctionFeaturesToFloatList x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
        Core.projectionField = (Core.Name "toFloatList")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

listFunctionFeaturesToIntegerList :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool
listFunctionFeaturesToIntegerList x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
        Core.projectionField = (Core.Name "toIntegerList")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

listFunctionFeaturesToStringList :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool
listFunctionFeaturesToStringList x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
        Core.projectionField = (Core.Name "toStringList")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

listFunctionFeaturesWithKeys :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFunctionFeatures
listFunctionFeaturesWithKeys original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "keys"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "labels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "labels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodes"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "nodes")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "range"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "range")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reduce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reduce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationships"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "relationships")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tail"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "tail")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

listFunctionFeaturesWithLabels :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFunctionFeatures
listFunctionFeaturesWithLabels original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "keys"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "keys")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "labels"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "nodes"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "nodes")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "range"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "range")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reduce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reduce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationships"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "relationships")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tail"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "tail")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

listFunctionFeaturesWithNodes :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFunctionFeatures
listFunctionFeaturesWithNodes original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "keys"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "keys")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "labels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "labels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodes"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "range"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "range")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reduce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reduce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationships"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "relationships")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tail"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "tail")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

listFunctionFeaturesWithRange :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFunctionFeatures
listFunctionFeaturesWithRange original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "keys"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "keys")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "labels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "labels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodes"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "nodes")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "range"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "reduce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reduce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationships"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "relationships")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tail"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "tail")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

listFunctionFeaturesWithReduce :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFunctionFeatures
listFunctionFeaturesWithReduce original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "keys"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "keys")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "labels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "labels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodes"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "nodes")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "range"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "range")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reduce"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "relationships"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "relationships")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tail"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "tail")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

listFunctionFeaturesWithRelationships :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFunctionFeatures
listFunctionFeaturesWithRelationships original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "keys"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "keys")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "labels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "labels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodes"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "nodes")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "range"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "range")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reduce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reduce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationships"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tail"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "tail")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

listFunctionFeaturesWithReverse :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFunctionFeatures
listFunctionFeaturesWithReverse original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "keys"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "keys")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "labels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "labels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodes"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "nodes")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "range"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "range")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reduce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reduce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationships"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "relationships")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "tail"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "tail")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

listFunctionFeaturesWithTail :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFunctionFeatures
listFunctionFeaturesWithTail original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "keys"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "keys")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "labels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "labels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodes"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "nodes")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "range"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "range")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reduce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reduce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationships"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "relationships")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tail"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

listFunctionFeaturesWithToBooleanList :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFunctionFeatures
listFunctionFeaturesWithToBooleanList original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "keys"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "keys")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "labels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "labels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodes"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "nodes")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "range"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "range")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reduce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reduce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationships"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "relationships")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tail"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "tail")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanList"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

listFunctionFeaturesWithToFloatList :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFunctionFeatures
listFunctionFeaturesWithToFloatList original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "keys"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "keys")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "labels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "labels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodes"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "nodes")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "range"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "range")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reduce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reduce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationships"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "relationships")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tail"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "tail")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatList"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

listFunctionFeaturesWithToIntegerList :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFunctionFeatures
listFunctionFeaturesWithToIntegerList original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "keys"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "keys")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "labels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "labels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodes"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "nodes")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "range"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "range")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reduce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reduce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationships"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "relationships")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tail"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "tail")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerList"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "toStringList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

listFunctionFeaturesWithToStringList :: Phantoms.TTerm Features.ListFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ListFunctionFeatures
listFunctionFeaturesWithToStringList original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "keys"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "keys")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "labels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "labels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nodes"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "nodes")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "range"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "range")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reduce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reduce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "relationships"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "relationships")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tail"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "tail")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerList"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ListFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerList")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringList"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

literalFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LiteralFeatures
literalFeatures boolean double integer list map null string =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "boolean"),
          Core.fieldTerm = (Phantoms.unTTerm boolean)},
        Core.Field {
          Core.fieldName = (Core.Name "double"),
          Core.fieldTerm = (Phantoms.unTTerm double)},
        Core.Field {
          Core.fieldName = (Core.Name "integer"),
          Core.fieldTerm = (Phantoms.unTTerm integer)},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Phantoms.unTTerm list)},
        Core.Field {
          Core.fieldName = (Core.Name "map"),
          Core.fieldTerm = (Phantoms.unTTerm map)},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Phantoms.unTTerm null)},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Phantoms.unTTerm string)}]}))

literalFeaturesBoolean :: Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Bool
literalFeaturesBoolean x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
        Core.projectionField = (Core.Name "boolean")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

literalFeaturesDouble :: Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Bool
literalFeaturesDouble x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
        Core.projectionField = (Core.Name "double")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

literalFeaturesInteger :: Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Bool
literalFeaturesInteger x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
        Core.projectionField = (Core.Name "integer")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

literalFeaturesList :: Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Bool
literalFeaturesList x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
        Core.projectionField = (Core.Name "list")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

literalFeaturesMap :: Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Bool
literalFeaturesMap x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
        Core.projectionField = (Core.Name "map")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

literalFeaturesNull :: Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Bool
literalFeaturesNull x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
        Core.projectionField = (Core.Name "null")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

literalFeaturesString :: Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Bool
literalFeaturesString x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
        Core.projectionField = (Core.Name "string")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

literalFeaturesWithBoolean :: Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LiteralFeatures
literalFeaturesWithBoolean original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "boolean"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "double"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "double")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "integer"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "integer")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "map"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "map")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

literalFeaturesWithDouble :: Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LiteralFeatures
literalFeaturesWithDouble original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "boolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "boolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "double"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "integer"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "integer")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "map"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "map")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

literalFeaturesWithInteger :: Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LiteralFeatures
literalFeaturesWithInteger original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "boolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "boolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "double"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "double")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "integer"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "map"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "map")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

literalFeaturesWithList :: Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LiteralFeatures
literalFeaturesWithList original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "boolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "boolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "double"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "double")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "integer"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "integer")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "map"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "map")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

literalFeaturesWithMap :: Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LiteralFeatures
literalFeaturesWithMap original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "boolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "boolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "double"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "double")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "integer"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "integer")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "map"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

literalFeaturesWithNull :: Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LiteralFeatures
literalFeaturesWithNull original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "boolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "boolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "double"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "double")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "integer"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "integer")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "map"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "map")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "string")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

literalFeaturesWithString :: Phantoms.TTerm Features.LiteralFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LiteralFeatures
literalFeaturesWithString original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "boolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "boolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "double"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "double")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "integer"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "integer")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "list"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "list")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "map"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "map")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "null"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LiteralFeatures"),
              Core.projectionField = (Core.Name "null")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "string"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

loadCSVFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LoadCSVFunctionFeatures
loadCSVFunctionFeatures file linenumber =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LoadCSVFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "file"),
          Core.fieldTerm = (Phantoms.unTTerm file)},
        Core.Field {
          Core.fieldName = (Core.Name "linenumber"),
          Core.fieldTerm = (Phantoms.unTTerm linenumber)}]}))

loadCSVFunctionFeaturesFile :: Phantoms.TTerm Features.LoadCSVFunctionFeatures -> Phantoms.TTerm Bool
loadCSVFunctionFeaturesFile x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LoadCSVFunctionFeatures"),
        Core.projectionField = (Core.Name "file")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

loadCSVFunctionFeaturesLinenumber :: Phantoms.TTerm Features.LoadCSVFunctionFeatures -> Phantoms.TTerm Bool
loadCSVFunctionFeaturesLinenumber x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LoadCSVFunctionFeatures"),
        Core.projectionField = (Core.Name "linenumber")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

loadCSVFunctionFeaturesWithFile :: Phantoms.TTerm Features.LoadCSVFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LoadCSVFunctionFeatures
loadCSVFunctionFeaturesWithFile original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LoadCSVFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "file"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "linenumber"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LoadCSVFunctionFeatures"),
              Core.projectionField = (Core.Name "linenumber")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

loadCSVFunctionFeaturesWithLinenumber :: Phantoms.TTerm Features.LoadCSVFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LoadCSVFunctionFeatures
loadCSVFunctionFeaturesWithLinenumber original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LoadCSVFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "file"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LoadCSVFunctionFeatures"),
              Core.projectionField = (Core.Name "file")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "linenumber"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

logarithmicFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LogarithmicFunctionFeatures
logarithmicFunctionFeatures e exp log log10 sqrt =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "e"),
          Core.fieldTerm = (Phantoms.unTTerm e)},
        Core.Field {
          Core.fieldName = (Core.Name "exp"),
          Core.fieldTerm = (Phantoms.unTTerm exp)},
        Core.Field {
          Core.fieldName = (Core.Name "log"),
          Core.fieldTerm = (Phantoms.unTTerm log)},
        Core.Field {
          Core.fieldName = (Core.Name "log10"),
          Core.fieldTerm = (Phantoms.unTTerm log10)},
        Core.Field {
          Core.fieldName = (Core.Name "sqrt"),
          Core.fieldTerm = (Phantoms.unTTerm sqrt)}]}))

logarithmicFunctionFeaturesE :: Phantoms.TTerm Features.LogarithmicFunctionFeatures -> Phantoms.TTerm Bool
logarithmicFunctionFeaturesE x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
        Core.projectionField = (Core.Name "e")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

logarithmicFunctionFeaturesExp :: Phantoms.TTerm Features.LogarithmicFunctionFeatures -> Phantoms.TTerm Bool
logarithmicFunctionFeaturesExp x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
        Core.projectionField = (Core.Name "exp")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

logarithmicFunctionFeaturesLog :: Phantoms.TTerm Features.LogarithmicFunctionFeatures -> Phantoms.TTerm Bool
logarithmicFunctionFeaturesLog x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
        Core.projectionField = (Core.Name "log")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

logarithmicFunctionFeaturesLog10 :: Phantoms.TTerm Features.LogarithmicFunctionFeatures -> Phantoms.TTerm Bool
logarithmicFunctionFeaturesLog10 x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
        Core.projectionField = (Core.Name "log10")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

logarithmicFunctionFeaturesSqrt :: Phantoms.TTerm Features.LogarithmicFunctionFeatures -> Phantoms.TTerm Bool
logarithmicFunctionFeaturesSqrt x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
        Core.projectionField = (Core.Name "sqrt")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

logarithmicFunctionFeaturesWithE :: Phantoms.TTerm Features.LogarithmicFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LogarithmicFunctionFeatures
logarithmicFunctionFeaturesWithE original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "e"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "exp"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "exp")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "log"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "log")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "log10"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "log10")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sqrt"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "sqrt")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

logarithmicFunctionFeaturesWithExp :: Phantoms.TTerm Features.LogarithmicFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LogarithmicFunctionFeatures
logarithmicFunctionFeaturesWithExp original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "e"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "e")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "exp"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "log"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "log")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "log10"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "log10")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sqrt"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "sqrt")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

logarithmicFunctionFeaturesWithLog :: Phantoms.TTerm Features.LogarithmicFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LogarithmicFunctionFeatures
logarithmicFunctionFeaturesWithLog original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "e"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "e")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "exp"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "exp")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "log"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "log10"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "log10")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sqrt"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "sqrt")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

logarithmicFunctionFeaturesWithLog10 :: Phantoms.TTerm Features.LogarithmicFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LogarithmicFunctionFeatures
logarithmicFunctionFeaturesWithLog10 original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "e"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "e")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "exp"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "exp")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "log"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "log")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "log10"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "sqrt"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "sqrt")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

logarithmicFunctionFeaturesWithSqrt :: Phantoms.TTerm Features.LogarithmicFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LogarithmicFunctionFeatures
logarithmicFunctionFeaturesWithSqrt original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "e"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "e")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "exp"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "exp")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "log"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "log")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "log10"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogarithmicFunctionFeatures"),
              Core.projectionField = (Core.Name "log10")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sqrt"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

logicalFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LogicalFeatures
logicalFeatures and not or xor =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "and"),
          Core.fieldTerm = (Phantoms.unTTerm and)},
        Core.Field {
          Core.fieldName = (Core.Name "not"),
          Core.fieldTerm = (Phantoms.unTTerm not)},
        Core.Field {
          Core.fieldName = (Core.Name "or"),
          Core.fieldTerm = (Phantoms.unTTerm or)},
        Core.Field {
          Core.fieldName = (Core.Name "xor"),
          Core.fieldTerm = (Phantoms.unTTerm xor)}]}))

logicalFeaturesAnd :: Phantoms.TTerm Features.LogicalFeatures -> Phantoms.TTerm Bool
logicalFeaturesAnd x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
        Core.projectionField = (Core.Name "and")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

logicalFeaturesNot :: Phantoms.TTerm Features.LogicalFeatures -> Phantoms.TTerm Bool
logicalFeaturesNot x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
        Core.projectionField = (Core.Name "not")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

logicalFeaturesOr :: Phantoms.TTerm Features.LogicalFeatures -> Phantoms.TTerm Bool
logicalFeaturesOr x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
        Core.projectionField = (Core.Name "or")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

logicalFeaturesWithAnd :: Phantoms.TTerm Features.LogicalFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LogicalFeatures
logicalFeaturesWithAnd original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "and"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "not"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
              Core.projectionField = (Core.Name "not")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "or"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
              Core.projectionField = (Core.Name "or")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "xor"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
              Core.projectionField = (Core.Name "xor")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

logicalFeaturesWithNot :: Phantoms.TTerm Features.LogicalFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LogicalFeatures
logicalFeaturesWithNot original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "and"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
              Core.projectionField = (Core.Name "and")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "not"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "or"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
              Core.projectionField = (Core.Name "or")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "xor"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
              Core.projectionField = (Core.Name "xor")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

logicalFeaturesWithOr :: Phantoms.TTerm Features.LogicalFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LogicalFeatures
logicalFeaturesWithOr original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "and"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
              Core.projectionField = (Core.Name "and")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "not"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
              Core.projectionField = (Core.Name "not")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "or"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "xor"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
              Core.projectionField = (Core.Name "xor")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

logicalFeaturesWithXor :: Phantoms.TTerm Features.LogicalFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.LogicalFeatures
logicalFeaturesWithXor original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "and"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
              Core.projectionField = (Core.Name "and")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "not"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
              Core.projectionField = (Core.Name "not")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "or"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
              Core.projectionField = (Core.Name "or")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "xor"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

logicalFeaturesXor :: Phantoms.TTerm Features.LogicalFeatures -> Phantoms.TTerm Bool
logicalFeaturesXor x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.LogicalFeatures"),
        Core.projectionField = (Core.Name "xor")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

matchFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.MatchFeatures
matchFeatures match optionalMatch =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.MatchFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Phantoms.unTTerm match)},
        Core.Field {
          Core.fieldName = (Core.Name "optionalMatch"),
          Core.fieldTerm = (Phantoms.unTTerm optionalMatch)}]}))

matchFeaturesMatch :: Phantoms.TTerm Features.MatchFeatures -> Phantoms.TTerm Bool
matchFeaturesMatch x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.MatchFeatures"),
        Core.projectionField = (Core.Name "match")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

matchFeaturesOptionalMatch :: Phantoms.TTerm Features.MatchFeatures -> Phantoms.TTerm Bool
matchFeaturesOptionalMatch x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.MatchFeatures"),
        Core.projectionField = (Core.Name "optionalMatch")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

matchFeaturesWithMatch :: Phantoms.TTerm Features.MatchFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.MatchFeatures
matchFeaturesWithMatch original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.MatchFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "optionalMatch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.MatchFeatures"),
              Core.projectionField = (Core.Name "optionalMatch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

matchFeaturesWithOptionalMatch :: Phantoms.TTerm Features.MatchFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.MatchFeatures
matchFeaturesWithOptionalMatch original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.MatchFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "match"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.MatchFeatures"),
              Core.projectionField = (Core.Name "match")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "optionalMatch"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

mergeFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.MergeFeatures
mergeFeatures merge mergeOnCreate mergeOnMatch =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.MergeFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Phantoms.unTTerm merge)},
        Core.Field {
          Core.fieldName = (Core.Name "mergeOnCreate"),
          Core.fieldTerm = (Phantoms.unTTerm mergeOnCreate)},
        Core.Field {
          Core.fieldName = (Core.Name "mergeOnMatch"),
          Core.fieldTerm = (Phantoms.unTTerm mergeOnMatch)}]}))

mergeFeaturesMerge :: Phantoms.TTerm Features.MergeFeatures -> Phantoms.TTerm Bool
mergeFeaturesMerge x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.MergeFeatures"),
        Core.projectionField = (Core.Name "merge")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

mergeFeaturesMergeOnCreate :: Phantoms.TTerm Features.MergeFeatures -> Phantoms.TTerm Bool
mergeFeaturesMergeOnCreate x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.MergeFeatures"),
        Core.projectionField = (Core.Name "mergeOnCreate")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

mergeFeaturesMergeOnMatch :: Phantoms.TTerm Features.MergeFeatures -> Phantoms.TTerm Bool
mergeFeaturesMergeOnMatch x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.MergeFeatures"),
        Core.projectionField = (Core.Name "mergeOnMatch")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

mergeFeaturesWithMerge :: Phantoms.TTerm Features.MergeFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.MergeFeatures
mergeFeaturesWithMerge original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.MergeFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "mergeOnCreate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.MergeFeatures"),
              Core.projectionField = (Core.Name "mergeOnCreate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "mergeOnMatch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.MergeFeatures"),
              Core.projectionField = (Core.Name "mergeOnMatch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

mergeFeaturesWithMergeOnCreate :: Phantoms.TTerm Features.MergeFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.MergeFeatures
mergeFeaturesWithMergeOnCreate original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.MergeFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.MergeFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "mergeOnCreate"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "mergeOnMatch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.MergeFeatures"),
              Core.projectionField = (Core.Name "mergeOnMatch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

mergeFeaturesWithMergeOnMatch :: Phantoms.TTerm Features.MergeFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.MergeFeatures
mergeFeaturesWithMergeOnMatch original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.MergeFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.MergeFeatures"),
              Core.projectionField = (Core.Name "merge")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "mergeOnCreate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.MergeFeatures"),
              Core.projectionField = (Core.Name "mergeOnCreate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "mergeOnMatch"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

nodePatternFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NodePatternFeatures
nodePatternFeatures multipleLabels parameter propertyMap variableNode wildcardLabel =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "multipleLabels"),
          Core.fieldTerm = (Phantoms.unTTerm multipleLabels)},
        Core.Field {
          Core.fieldName = (Core.Name "parameter"),
          Core.fieldTerm = (Phantoms.unTTerm parameter)},
        Core.Field {
          Core.fieldName = (Core.Name "propertyMap"),
          Core.fieldTerm = (Phantoms.unTTerm propertyMap)},
        Core.Field {
          Core.fieldName = (Core.Name "variableNode"),
          Core.fieldTerm = (Phantoms.unTTerm variableNode)},
        Core.Field {
          Core.fieldName = (Core.Name "wildcardLabel"),
          Core.fieldTerm = (Phantoms.unTTerm wildcardLabel)}]}))

nodePatternFeaturesMultipleLabels :: Phantoms.TTerm Features.NodePatternFeatures -> Phantoms.TTerm Bool
nodePatternFeaturesMultipleLabels x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
        Core.projectionField = (Core.Name "multipleLabels")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

nodePatternFeaturesParameter :: Phantoms.TTerm Features.NodePatternFeatures -> Phantoms.TTerm Bool
nodePatternFeaturesParameter x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
        Core.projectionField = (Core.Name "parameter")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

nodePatternFeaturesPropertyMap :: Phantoms.TTerm Features.NodePatternFeatures -> Phantoms.TTerm Bool
nodePatternFeaturesPropertyMap x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
        Core.projectionField = (Core.Name "propertyMap")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

nodePatternFeaturesVariableNode :: Phantoms.TTerm Features.NodePatternFeatures -> Phantoms.TTerm Bool
nodePatternFeaturesVariableNode x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
        Core.projectionField = (Core.Name "variableNode")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

nodePatternFeaturesWildcardLabel :: Phantoms.TTerm Features.NodePatternFeatures -> Phantoms.TTerm Bool
nodePatternFeaturesWildcardLabel x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
        Core.projectionField = (Core.Name "wildcardLabel")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

nodePatternFeaturesWithMultipleLabels :: Phantoms.TTerm Features.NodePatternFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NodePatternFeatures
nodePatternFeaturesWithMultipleLabels original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "multipleLabels"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "parameter"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "parameter")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "propertyMap"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "propertyMap")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variableNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "variableNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "wildcardLabel"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "wildcardLabel")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

nodePatternFeaturesWithParameter :: Phantoms.TTerm Features.NodePatternFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NodePatternFeatures
nodePatternFeaturesWithParameter original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "multipleLabels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "multipleLabels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "parameter"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "propertyMap"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "propertyMap")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variableNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "variableNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "wildcardLabel"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "wildcardLabel")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

nodePatternFeaturesWithPropertyMap :: Phantoms.TTerm Features.NodePatternFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NodePatternFeatures
nodePatternFeaturesWithPropertyMap original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "multipleLabels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "multipleLabels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "parameter"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "parameter")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "propertyMap"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "variableNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "variableNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "wildcardLabel"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "wildcardLabel")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

nodePatternFeaturesWithVariableNode :: Phantoms.TTerm Features.NodePatternFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NodePatternFeatures
nodePatternFeaturesWithVariableNode original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "multipleLabels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "multipleLabels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "parameter"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "parameter")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "propertyMap"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "propertyMap")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variableNode"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "wildcardLabel"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "wildcardLabel")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

nodePatternFeaturesWithWildcardLabel :: Phantoms.TTerm Features.NodePatternFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NodePatternFeatures
nodePatternFeaturesWithWildcardLabel original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "multipleLabels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "multipleLabels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "parameter"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "parameter")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "propertyMap"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "propertyMap")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variableNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NodePatternFeatures"),
              Core.projectionField = (Core.Name "variableNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "wildcardLabel"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

nullFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NullFeatures
nullFeatures isNull isNotNull =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NullFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "isNull"),
          Core.fieldTerm = (Phantoms.unTTerm isNull)},
        Core.Field {
          Core.fieldName = (Core.Name "isNotNull"),
          Core.fieldTerm = (Phantoms.unTTerm isNotNull)}]}))

nullFeaturesIsNotNull :: Phantoms.TTerm Features.NullFeatures -> Phantoms.TTerm Bool
nullFeaturesIsNotNull x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.NullFeatures"),
        Core.projectionField = (Core.Name "isNotNull")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

nullFeaturesIsNull :: Phantoms.TTerm Features.NullFeatures -> Phantoms.TTerm Bool
nullFeaturesIsNull x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.NullFeatures"),
        Core.projectionField = (Core.Name "isNull")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

nullFeaturesWithIsNotNull :: Phantoms.TTerm Features.NullFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NullFeatures
nullFeaturesWithIsNotNull original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NullFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "isNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NullFeatures"),
              Core.projectionField = (Core.Name "isNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "isNotNull"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

nullFeaturesWithIsNull :: Phantoms.TTerm Features.NullFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NullFeatures
nullFeaturesWithIsNull original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NullFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "isNull"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "isNotNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NullFeatures"),
              Core.projectionField = (Core.Name "isNotNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

numericFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NumericFunctionFeatures
numericFunctionFeatures abs ceil floor isNaN rand round sign =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "abs"),
          Core.fieldTerm = (Phantoms.unTTerm abs)},
        Core.Field {
          Core.fieldName = (Core.Name "ceil"),
          Core.fieldTerm = (Phantoms.unTTerm ceil)},
        Core.Field {
          Core.fieldName = (Core.Name "floor"),
          Core.fieldTerm = (Phantoms.unTTerm floor)},
        Core.Field {
          Core.fieldName = (Core.Name "isNaN"),
          Core.fieldTerm = (Phantoms.unTTerm isNaN)},
        Core.Field {
          Core.fieldName = (Core.Name "rand"),
          Core.fieldTerm = (Phantoms.unTTerm rand)},
        Core.Field {
          Core.fieldName = (Core.Name "round"),
          Core.fieldTerm = (Phantoms.unTTerm round)},
        Core.Field {
          Core.fieldName = (Core.Name "sign"),
          Core.fieldTerm = (Phantoms.unTTerm sign)}]}))

numericFunctionFeaturesAbs :: Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Bool
numericFunctionFeaturesAbs x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
        Core.projectionField = (Core.Name "abs")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

numericFunctionFeaturesCeil :: Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Bool
numericFunctionFeaturesCeil x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
        Core.projectionField = (Core.Name "ceil")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

numericFunctionFeaturesFloor :: Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Bool
numericFunctionFeaturesFloor x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
        Core.projectionField = (Core.Name "floor")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

numericFunctionFeaturesIsNaN :: Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Bool
numericFunctionFeaturesIsNaN x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
        Core.projectionField = (Core.Name "isNaN")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

numericFunctionFeaturesRand :: Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Bool
numericFunctionFeaturesRand x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
        Core.projectionField = (Core.Name "rand")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

numericFunctionFeaturesRound :: Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Bool
numericFunctionFeaturesRound x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
        Core.projectionField = (Core.Name "round")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

numericFunctionFeaturesSign :: Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Bool
numericFunctionFeaturesSign x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
        Core.projectionField = (Core.Name "sign")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

numericFunctionFeaturesWithAbs :: Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NumericFunctionFeatures
numericFunctionFeaturesWithAbs original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "abs"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "ceil"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "ceil")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "floor"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "floor")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "isNaN"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "isNaN")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rand"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "rand")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "round"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "round")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sign"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "sign")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

numericFunctionFeaturesWithCeil :: Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NumericFunctionFeatures
numericFunctionFeaturesWithCeil original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "abs"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "abs")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ceil"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "floor"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "floor")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "isNaN"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "isNaN")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rand"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "rand")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "round"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "round")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sign"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "sign")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

numericFunctionFeaturesWithFloor :: Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NumericFunctionFeatures
numericFunctionFeaturesWithFloor original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "abs"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "abs")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ceil"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "ceil")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "floor"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "isNaN"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "isNaN")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rand"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "rand")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "round"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "round")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sign"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "sign")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

numericFunctionFeaturesWithIsNaN :: Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NumericFunctionFeatures
numericFunctionFeaturesWithIsNaN original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "abs"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "abs")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ceil"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "ceil")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "floor"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "floor")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "isNaN"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "rand"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "rand")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "round"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "round")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sign"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "sign")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

numericFunctionFeaturesWithRand :: Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NumericFunctionFeatures
numericFunctionFeaturesWithRand original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "abs"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "abs")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ceil"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "ceil")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "floor"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "floor")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "isNaN"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "isNaN")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rand"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "round"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "round")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sign"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "sign")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

numericFunctionFeaturesWithRound :: Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NumericFunctionFeatures
numericFunctionFeaturesWithRound original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "abs"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "abs")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ceil"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "ceil")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "floor"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "floor")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "isNaN"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "isNaN")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rand"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "rand")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "round"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "sign"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "sign")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

numericFunctionFeaturesWithSign :: Phantoms.TTerm Features.NumericFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.NumericFunctionFeatures
numericFunctionFeaturesWithSign original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "abs"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "abs")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ceil"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "ceil")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "floor"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "floor")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "isNaN"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "isNaN")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rand"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "rand")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "round"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.NumericFunctionFeatures"),
              Core.projectionField = (Core.Name "round")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sign"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

pathFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Features.PathFeatures
pathFeatures shortestPath =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.PathFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "shortestPath"),
          Core.fieldTerm = (Phantoms.unTTerm shortestPath)}]}))

pathFeaturesShortestPath :: Phantoms.TTerm Features.PathFeatures -> Phantoms.TTerm Bool
pathFeaturesShortestPath x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.PathFeatures"),
        Core.projectionField = (Core.Name "shortestPath")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

pathFeaturesWithShortestPath :: Phantoms.TTerm Features.PathFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.PathFeatures
pathFeaturesWithShortestPath original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.PathFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "shortestPath"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

predicateFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.PredicateFunctionFeatures
predicateFunctionFeatures all any exists isEmpty none single =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "all"),
          Core.fieldTerm = (Phantoms.unTTerm all)},
        Core.Field {
          Core.fieldName = (Core.Name "any"),
          Core.fieldTerm = (Phantoms.unTTerm any)},
        Core.Field {
          Core.fieldName = (Core.Name "exists"),
          Core.fieldTerm = (Phantoms.unTTerm exists)},
        Core.Field {
          Core.fieldName = (Core.Name "isEmpty"),
          Core.fieldTerm = (Phantoms.unTTerm isEmpty)},
        Core.Field {
          Core.fieldName = (Core.Name "none"),
          Core.fieldTerm = (Phantoms.unTTerm none)},
        Core.Field {
          Core.fieldName = (Core.Name "single"),
          Core.fieldTerm = (Phantoms.unTTerm single)}]}))

predicateFunctionFeaturesAll :: Phantoms.TTerm Features.PredicateFunctionFeatures -> Phantoms.TTerm Bool
predicateFunctionFeaturesAll x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
        Core.projectionField = (Core.Name "all")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

predicateFunctionFeaturesAny :: Phantoms.TTerm Features.PredicateFunctionFeatures -> Phantoms.TTerm Bool
predicateFunctionFeaturesAny x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
        Core.projectionField = (Core.Name "any")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

predicateFunctionFeaturesExists :: Phantoms.TTerm Features.PredicateFunctionFeatures -> Phantoms.TTerm Bool
predicateFunctionFeaturesExists x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
        Core.projectionField = (Core.Name "exists")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

predicateFunctionFeaturesIsEmpty :: Phantoms.TTerm Features.PredicateFunctionFeatures -> Phantoms.TTerm Bool
predicateFunctionFeaturesIsEmpty x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
        Core.projectionField = (Core.Name "isEmpty")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

predicateFunctionFeaturesNone :: Phantoms.TTerm Features.PredicateFunctionFeatures -> Phantoms.TTerm Bool
predicateFunctionFeaturesNone x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
        Core.projectionField = (Core.Name "none")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

predicateFunctionFeaturesSingle :: Phantoms.TTerm Features.PredicateFunctionFeatures -> Phantoms.TTerm Bool
predicateFunctionFeaturesSingle x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
        Core.projectionField = (Core.Name "single")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

predicateFunctionFeaturesWithAll :: Phantoms.TTerm Features.PredicateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.PredicateFunctionFeatures
predicateFunctionFeaturesWithAll original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "all"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "any"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "any")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "exists"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "exists")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "isEmpty"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "isEmpty")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "none"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "none")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "single"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "single")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

predicateFunctionFeaturesWithAny :: Phantoms.TTerm Features.PredicateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.PredicateFunctionFeatures
predicateFunctionFeaturesWithAny original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "all"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "all")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "any"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "exists"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "exists")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "isEmpty"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "isEmpty")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "none"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "none")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "single"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "single")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

predicateFunctionFeaturesWithExists :: Phantoms.TTerm Features.PredicateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.PredicateFunctionFeatures
predicateFunctionFeaturesWithExists original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "all"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "all")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "any"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "any")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "exists"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "isEmpty"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "isEmpty")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "none"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "none")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "single"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "single")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

predicateFunctionFeaturesWithIsEmpty :: Phantoms.TTerm Features.PredicateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.PredicateFunctionFeatures
predicateFunctionFeaturesWithIsEmpty original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "all"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "all")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "any"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "any")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "exists"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "exists")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "isEmpty"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "none"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "none")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "single"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "single")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

predicateFunctionFeaturesWithNone :: Phantoms.TTerm Features.PredicateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.PredicateFunctionFeatures
predicateFunctionFeaturesWithNone original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "all"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "all")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "any"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "any")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "exists"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "exists")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "isEmpty"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "isEmpty")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "none"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "single"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "single")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

predicateFunctionFeaturesWithSingle :: Phantoms.TTerm Features.PredicateFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.PredicateFunctionFeatures
predicateFunctionFeaturesWithSingle original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "all"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "all")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "any"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "any")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "exists"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "exists")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "isEmpty"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "isEmpty")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "none"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.PredicateFunctionFeatures"),
              Core.projectionField = (Core.Name "none")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "single"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

procedureCallFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ProcedureCallFeatures
procedureCallFeatures inQueryCall standaloneCall yield =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ProcedureCallFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "inQueryCall"),
          Core.fieldTerm = (Phantoms.unTTerm inQueryCall)},
        Core.Field {
          Core.fieldName = (Core.Name "standaloneCall"),
          Core.fieldTerm = (Phantoms.unTTerm standaloneCall)},
        Core.Field {
          Core.fieldName = (Core.Name "yield"),
          Core.fieldTerm = (Phantoms.unTTerm yield)}]}))

procedureCallFeaturesInQueryCall :: Phantoms.TTerm Features.ProcedureCallFeatures -> Phantoms.TTerm Bool
procedureCallFeaturesInQueryCall x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProcedureCallFeatures"),
        Core.projectionField = (Core.Name "inQueryCall")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

procedureCallFeaturesStandaloneCall :: Phantoms.TTerm Features.ProcedureCallFeatures -> Phantoms.TTerm Bool
procedureCallFeaturesStandaloneCall x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProcedureCallFeatures"),
        Core.projectionField = (Core.Name "standaloneCall")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

procedureCallFeaturesWithInQueryCall :: Phantoms.TTerm Features.ProcedureCallFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ProcedureCallFeatures
procedureCallFeaturesWithInQueryCall original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ProcedureCallFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "inQueryCall"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "standaloneCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProcedureCallFeatures"),
              Core.projectionField = (Core.Name "standaloneCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "yield"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProcedureCallFeatures"),
              Core.projectionField = (Core.Name "yield")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

procedureCallFeaturesWithStandaloneCall :: Phantoms.TTerm Features.ProcedureCallFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ProcedureCallFeatures
procedureCallFeaturesWithStandaloneCall original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ProcedureCallFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "inQueryCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProcedureCallFeatures"),
              Core.projectionField = (Core.Name "inQueryCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "standaloneCall"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "yield"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProcedureCallFeatures"),
              Core.projectionField = (Core.Name "yield")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

procedureCallFeaturesWithYield :: Phantoms.TTerm Features.ProcedureCallFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ProcedureCallFeatures
procedureCallFeaturesWithYield original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ProcedureCallFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "inQueryCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProcedureCallFeatures"),
              Core.projectionField = (Core.Name "inQueryCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "standaloneCall"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProcedureCallFeatures"),
              Core.projectionField = (Core.Name "standaloneCall")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "yield"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

procedureCallFeaturesYield :: Phantoms.TTerm Features.ProcedureCallFeatures -> Phantoms.TTerm Bool
procedureCallFeaturesYield x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProcedureCallFeatures"),
        Core.projectionField = (Core.Name "yield")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

projectionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ProjectionFeatures
projectionFeatures limit orderBy projectDistinct projectAll projectAs skip sortOrder =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "limit"),
          Core.fieldTerm = (Phantoms.unTTerm limit)},
        Core.Field {
          Core.fieldName = (Core.Name "orderBy"),
          Core.fieldTerm = (Phantoms.unTTerm orderBy)},
        Core.Field {
          Core.fieldName = (Core.Name "projectDistinct"),
          Core.fieldTerm = (Phantoms.unTTerm projectDistinct)},
        Core.Field {
          Core.fieldName = (Core.Name "projectAll"),
          Core.fieldTerm = (Phantoms.unTTerm projectAll)},
        Core.Field {
          Core.fieldName = (Core.Name "projectAs"),
          Core.fieldTerm = (Phantoms.unTTerm projectAs)},
        Core.Field {
          Core.fieldName = (Core.Name "skip"),
          Core.fieldTerm = (Phantoms.unTTerm skip)},
        Core.Field {
          Core.fieldName = (Core.Name "sortOrder"),
          Core.fieldTerm = (Phantoms.unTTerm sortOrder)}]}))

projectionFeaturesLimit :: Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Bool
projectionFeaturesLimit x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
        Core.projectionField = (Core.Name "limit")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

projectionFeaturesOrderBy :: Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Bool
projectionFeaturesOrderBy x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
        Core.projectionField = (Core.Name "orderBy")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

projectionFeaturesProjectAll :: Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Bool
projectionFeaturesProjectAll x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
        Core.projectionField = (Core.Name "projectAll")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

projectionFeaturesProjectAs :: Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Bool
projectionFeaturesProjectAs x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
        Core.projectionField = (Core.Name "projectAs")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

projectionFeaturesProjectDistinct :: Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Bool
projectionFeaturesProjectDistinct x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
        Core.projectionField = (Core.Name "projectDistinct")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

projectionFeaturesSkip :: Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Bool
projectionFeaturesSkip x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
        Core.projectionField = (Core.Name "skip")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

projectionFeaturesSortOrder :: Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Bool
projectionFeaturesSortOrder x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
        Core.projectionField = (Core.Name "sortOrder")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

projectionFeaturesWithLimit :: Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ProjectionFeatures
projectionFeaturesWithLimit original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "limit"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "orderBy"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "orderBy")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectDistinct"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectDistinct")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectAll"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectAll")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectAs"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectAs")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "skip"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "skip")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sortOrder"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "sortOrder")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

projectionFeaturesWithOrderBy :: Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ProjectionFeatures
projectionFeaturesWithOrderBy original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "limit"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "limit")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "orderBy"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "projectDistinct"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectDistinct")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectAll"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectAll")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectAs"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectAs")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "skip"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "skip")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sortOrder"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "sortOrder")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

projectionFeaturesWithProjectAll :: Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ProjectionFeatures
projectionFeaturesWithProjectAll original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "limit"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "limit")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "orderBy"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "orderBy")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectDistinct"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectDistinct")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectAll"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "projectAs"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectAs")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "skip"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "skip")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sortOrder"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "sortOrder")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

projectionFeaturesWithProjectAs :: Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ProjectionFeatures
projectionFeaturesWithProjectAs original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "limit"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "limit")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "orderBy"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "orderBy")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectDistinct"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectDistinct")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectAll"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectAll")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectAs"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "skip"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "skip")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sortOrder"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "sortOrder")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

projectionFeaturesWithProjectDistinct :: Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ProjectionFeatures
projectionFeaturesWithProjectDistinct original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "limit"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "limit")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "orderBy"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "orderBy")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectDistinct"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "projectAll"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectAll")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectAs"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectAs")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "skip"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "skip")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sortOrder"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "sortOrder")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

projectionFeaturesWithSkip :: Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ProjectionFeatures
projectionFeaturesWithSkip original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "limit"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "limit")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "orderBy"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "orderBy")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectDistinct"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectDistinct")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectAll"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectAll")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectAs"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectAs")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "skip"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "sortOrder"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "sortOrder")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

projectionFeaturesWithSortOrder :: Phantoms.TTerm Features.ProjectionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ProjectionFeatures
projectionFeaturesWithSortOrder original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "limit"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "limit")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "orderBy"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "orderBy")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectDistinct"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectDistinct")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectAll"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectAll")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "projectAs"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "projectAs")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "skip"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ProjectionFeatures"),
              Core.projectionField = (Core.Name "skip")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sortOrder"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

quantifierFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.QuantifierFeatures
quantifierFeatures all any none single =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "all"),
          Core.fieldTerm = (Phantoms.unTTerm all)},
        Core.Field {
          Core.fieldName = (Core.Name "any"),
          Core.fieldTerm = (Phantoms.unTTerm any)},
        Core.Field {
          Core.fieldName = (Core.Name "none"),
          Core.fieldTerm = (Phantoms.unTTerm none)},
        Core.Field {
          Core.fieldName = (Core.Name "single"),
          Core.fieldTerm = (Phantoms.unTTerm single)}]}))

quantifierFeaturesAll :: Phantoms.TTerm Features.QuantifierFeatures -> Phantoms.TTerm Bool
quantifierFeaturesAll x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
        Core.projectionField = (Core.Name "all")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

quantifierFeaturesAny :: Phantoms.TTerm Features.QuantifierFeatures -> Phantoms.TTerm Bool
quantifierFeaturesAny x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
        Core.projectionField = (Core.Name "any")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

quantifierFeaturesNone :: Phantoms.TTerm Features.QuantifierFeatures -> Phantoms.TTerm Bool
quantifierFeaturesNone x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
        Core.projectionField = (Core.Name "none")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

quantifierFeaturesSingle :: Phantoms.TTerm Features.QuantifierFeatures -> Phantoms.TTerm Bool
quantifierFeaturesSingle x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
        Core.projectionField = (Core.Name "single")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

quantifierFeaturesWithAll :: Phantoms.TTerm Features.QuantifierFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.QuantifierFeatures
quantifierFeaturesWithAll original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "all"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "any"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
              Core.projectionField = (Core.Name "any")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "none"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
              Core.projectionField = (Core.Name "none")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "single"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
              Core.projectionField = (Core.Name "single")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

quantifierFeaturesWithAny :: Phantoms.TTerm Features.QuantifierFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.QuantifierFeatures
quantifierFeaturesWithAny original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "all"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
              Core.projectionField = (Core.Name "all")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "any"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "none"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
              Core.projectionField = (Core.Name "none")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "single"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
              Core.projectionField = (Core.Name "single")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

quantifierFeaturesWithNone :: Phantoms.TTerm Features.QuantifierFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.QuantifierFeatures
quantifierFeaturesWithNone original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "all"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
              Core.projectionField = (Core.Name "all")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "any"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
              Core.projectionField = (Core.Name "any")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "none"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "single"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
              Core.projectionField = (Core.Name "single")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

quantifierFeaturesWithSingle :: Phantoms.TTerm Features.QuantifierFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.QuantifierFeatures
quantifierFeaturesWithSingle original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "all"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
              Core.projectionField = (Core.Name "all")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "any"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
              Core.projectionField = (Core.Name "any")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "none"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.QuantifierFeatures"),
              Core.projectionField = (Core.Name "none")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "single"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

rangeLiteralFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RangeLiteralFeatures
rangeLiteralFeatures bounds exactRange lowerBound starRange upperBound =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "bounds"),
          Core.fieldTerm = (Phantoms.unTTerm bounds)},
        Core.Field {
          Core.fieldName = (Core.Name "exactRange"),
          Core.fieldTerm = (Phantoms.unTTerm exactRange)},
        Core.Field {
          Core.fieldName = (Core.Name "lowerBound"),
          Core.fieldTerm = (Phantoms.unTTerm lowerBound)},
        Core.Field {
          Core.fieldName = (Core.Name "starRange"),
          Core.fieldTerm = (Phantoms.unTTerm starRange)},
        Core.Field {
          Core.fieldName = (Core.Name "upperBound"),
          Core.fieldTerm = (Phantoms.unTTerm upperBound)}]}))

rangeLiteralFeaturesBounds :: Phantoms.TTerm Features.RangeLiteralFeatures -> Phantoms.TTerm Bool
rangeLiteralFeaturesBounds x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
        Core.projectionField = (Core.Name "bounds")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

rangeLiteralFeaturesExactRange :: Phantoms.TTerm Features.RangeLiteralFeatures -> Phantoms.TTerm Bool
rangeLiteralFeaturesExactRange x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
        Core.projectionField = (Core.Name "exactRange")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

rangeLiteralFeaturesLowerBound :: Phantoms.TTerm Features.RangeLiteralFeatures -> Phantoms.TTerm Bool
rangeLiteralFeaturesLowerBound x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
        Core.projectionField = (Core.Name "lowerBound")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

rangeLiteralFeaturesStarRange :: Phantoms.TTerm Features.RangeLiteralFeatures -> Phantoms.TTerm Bool
rangeLiteralFeaturesStarRange x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
        Core.projectionField = (Core.Name "starRange")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

rangeLiteralFeaturesUpperBound :: Phantoms.TTerm Features.RangeLiteralFeatures -> Phantoms.TTerm Bool
rangeLiteralFeaturesUpperBound x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
        Core.projectionField = (Core.Name "upperBound")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

rangeLiteralFeaturesWithBounds :: Phantoms.TTerm Features.RangeLiteralFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RangeLiteralFeatures
rangeLiteralFeaturesWithBounds original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "bounds"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "exactRange"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "exactRange")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lowerBound"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "lowerBound")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "starRange"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "starRange")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upperBound"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "upperBound")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

rangeLiteralFeaturesWithExactRange :: Phantoms.TTerm Features.RangeLiteralFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RangeLiteralFeatures
rangeLiteralFeaturesWithExactRange original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "bounds"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "bounds")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "exactRange"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "lowerBound"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "lowerBound")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "starRange"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "starRange")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upperBound"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "upperBound")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

rangeLiteralFeaturesWithLowerBound :: Phantoms.TTerm Features.RangeLiteralFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RangeLiteralFeatures
rangeLiteralFeaturesWithLowerBound original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "bounds"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "bounds")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "exactRange"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "exactRange")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lowerBound"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "starRange"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "starRange")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upperBound"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "upperBound")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

rangeLiteralFeaturesWithStarRange :: Phantoms.TTerm Features.RangeLiteralFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RangeLiteralFeatures
rangeLiteralFeaturesWithStarRange original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "bounds"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "bounds")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "exactRange"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "exactRange")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lowerBound"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "lowerBound")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "starRange"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "upperBound"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "upperBound")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

rangeLiteralFeaturesWithUpperBound :: Phantoms.TTerm Features.RangeLiteralFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RangeLiteralFeatures
rangeLiteralFeaturesWithUpperBound original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "bounds"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "bounds")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "exactRange"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "exactRange")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lowerBound"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "lowerBound")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "starRange"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RangeLiteralFeatures"),
              Core.projectionField = (Core.Name "starRange")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upperBound"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

readingFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ReadingFeatures
readingFeatures union unionAll unwind =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ReadingFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "union"),
          Core.fieldTerm = (Phantoms.unTTerm union)},
        Core.Field {
          Core.fieldName = (Core.Name "unionAll"),
          Core.fieldTerm = (Phantoms.unTTerm unionAll)},
        Core.Field {
          Core.fieldName = (Core.Name "unwind"),
          Core.fieldTerm = (Phantoms.unTTerm unwind)}]}))

readingFeaturesUnion :: Phantoms.TTerm Features.ReadingFeatures -> Phantoms.TTerm Bool
readingFeaturesUnion x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ReadingFeatures"),
        Core.projectionField = (Core.Name "union")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

readingFeaturesUnionAll :: Phantoms.TTerm Features.ReadingFeatures -> Phantoms.TTerm Bool
readingFeaturesUnionAll x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ReadingFeatures"),
        Core.projectionField = (Core.Name "unionAll")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

readingFeaturesUnwind :: Phantoms.TTerm Features.ReadingFeatures -> Phantoms.TTerm Bool
readingFeaturesUnwind x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ReadingFeatures"),
        Core.projectionField = (Core.Name "unwind")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

readingFeaturesWithUnion :: Phantoms.TTerm Features.ReadingFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ReadingFeatures
readingFeaturesWithUnion original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ReadingFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "union"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "unionAll"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ReadingFeatures"),
              Core.projectionField = (Core.Name "unionAll")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "unwind"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ReadingFeatures"),
              Core.projectionField = (Core.Name "unwind")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

readingFeaturesWithUnionAll :: Phantoms.TTerm Features.ReadingFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ReadingFeatures
readingFeaturesWithUnionAll original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ReadingFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "union"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ReadingFeatures"),
              Core.projectionField = (Core.Name "union")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "unionAll"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "unwind"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ReadingFeatures"),
              Core.projectionField = (Core.Name "unwind")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

readingFeaturesWithUnwind :: Phantoms.TTerm Features.ReadingFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ReadingFeatures
readingFeaturesWithUnwind original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ReadingFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "union"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ReadingFeatures"),
              Core.projectionField = (Core.Name "union")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "unionAll"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ReadingFeatures"),
              Core.projectionField = (Core.Name "unionAll")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "unwind"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

relationshipDirectionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RelationshipDirectionFeatures
relationshipDirectionFeatures both left neither right =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "both"),
          Core.fieldTerm = (Phantoms.unTTerm both)},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Phantoms.unTTerm left)},
        Core.Field {
          Core.fieldName = (Core.Name "neither"),
          Core.fieldTerm = (Phantoms.unTTerm neither)},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Phantoms.unTTerm right)}]}))

relationshipDirectionFeaturesBoth :: Phantoms.TTerm Features.RelationshipDirectionFeatures -> Phantoms.TTerm Bool
relationshipDirectionFeaturesBoth x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
        Core.projectionField = (Core.Name "both")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

relationshipDirectionFeaturesLeft :: Phantoms.TTerm Features.RelationshipDirectionFeatures -> Phantoms.TTerm Bool
relationshipDirectionFeaturesLeft x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
        Core.projectionField = (Core.Name "left")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

relationshipDirectionFeaturesNeither :: Phantoms.TTerm Features.RelationshipDirectionFeatures -> Phantoms.TTerm Bool
relationshipDirectionFeaturesNeither x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
        Core.projectionField = (Core.Name "neither")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

relationshipDirectionFeaturesRight :: Phantoms.TTerm Features.RelationshipDirectionFeatures -> Phantoms.TTerm Bool
relationshipDirectionFeaturesRight x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
        Core.projectionField = (Core.Name "right")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

relationshipDirectionFeaturesWithBoth :: Phantoms.TTerm Features.RelationshipDirectionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RelationshipDirectionFeatures
relationshipDirectionFeaturesWithBoth original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "both"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "neither"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
              Core.projectionField = (Core.Name "neither")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

relationshipDirectionFeaturesWithLeft :: Phantoms.TTerm Features.RelationshipDirectionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RelationshipDirectionFeatures
relationshipDirectionFeaturesWithLeft original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "both"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
              Core.projectionField = (Core.Name "both")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "neither"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
              Core.projectionField = (Core.Name "neither")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

relationshipDirectionFeaturesWithNeither :: Phantoms.TTerm Features.RelationshipDirectionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RelationshipDirectionFeatures
relationshipDirectionFeaturesWithNeither original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "both"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
              Core.projectionField = (Core.Name "both")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "neither"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

relationshipDirectionFeaturesWithRight :: Phantoms.TTerm Features.RelationshipDirectionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RelationshipDirectionFeatures
relationshipDirectionFeaturesWithRight original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "both"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
              Core.projectionField = (Core.Name "both")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "neither"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipDirectionFeatures"),
              Core.projectionField = (Core.Name "neither")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

relationshipPatternFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RelationshipPatternFeatures
relationshipPatternFeatures multipleTypes variableRelationship wildcardType =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RelationshipPatternFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "multipleTypes"),
          Core.fieldTerm = (Phantoms.unTTerm multipleTypes)},
        Core.Field {
          Core.fieldName = (Core.Name "variableRelationship"),
          Core.fieldTerm = (Phantoms.unTTerm variableRelationship)},
        Core.Field {
          Core.fieldName = (Core.Name "wildcardType"),
          Core.fieldTerm = (Phantoms.unTTerm wildcardType)}]}))

relationshipPatternFeaturesMultipleTypes :: Phantoms.TTerm Features.RelationshipPatternFeatures -> Phantoms.TTerm Bool
relationshipPatternFeaturesMultipleTypes x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipPatternFeatures"),
        Core.projectionField = (Core.Name "multipleTypes")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

relationshipPatternFeaturesVariableRelationship :: Phantoms.TTerm Features.RelationshipPatternFeatures -> Phantoms.TTerm Bool
relationshipPatternFeaturesVariableRelationship x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipPatternFeatures"),
        Core.projectionField = (Core.Name "variableRelationship")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

relationshipPatternFeaturesWildcardType :: Phantoms.TTerm Features.RelationshipPatternFeatures -> Phantoms.TTerm Bool
relationshipPatternFeaturesWildcardType x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipPatternFeatures"),
        Core.projectionField = (Core.Name "wildcardType")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

relationshipPatternFeaturesWithMultipleTypes :: Phantoms.TTerm Features.RelationshipPatternFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RelationshipPatternFeatures
relationshipPatternFeaturesWithMultipleTypes original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RelationshipPatternFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "multipleTypes"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "variableRelationship"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipPatternFeatures"),
              Core.projectionField = (Core.Name "variableRelationship")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "wildcardType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipPatternFeatures"),
              Core.projectionField = (Core.Name "wildcardType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

relationshipPatternFeaturesWithVariableRelationship :: Phantoms.TTerm Features.RelationshipPatternFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RelationshipPatternFeatures
relationshipPatternFeaturesWithVariableRelationship original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RelationshipPatternFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "multipleTypes"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipPatternFeatures"),
              Core.projectionField = (Core.Name "multipleTypes")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variableRelationship"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "wildcardType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipPatternFeatures"),
              Core.projectionField = (Core.Name "wildcardType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

relationshipPatternFeaturesWithWildcardType :: Phantoms.TTerm Features.RelationshipPatternFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RelationshipPatternFeatures
relationshipPatternFeaturesWithWildcardType original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RelationshipPatternFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "multipleTypes"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipPatternFeatures"),
              Core.projectionField = (Core.Name "multipleTypes")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variableRelationship"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RelationshipPatternFeatures"),
              Core.projectionField = (Core.Name "variableRelationship")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "wildcardType"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

removeFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RemoveFeatures
removeFeatures byLabel byProperty =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RemoveFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "byLabel"),
          Core.fieldTerm = (Phantoms.unTTerm byLabel)},
        Core.Field {
          Core.fieldName = (Core.Name "byProperty"),
          Core.fieldTerm = (Phantoms.unTTerm byProperty)}]}))

removeFeaturesByLabel :: Phantoms.TTerm Features.RemoveFeatures -> Phantoms.TTerm Bool
removeFeaturesByLabel x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.RemoveFeatures"),
        Core.projectionField = (Core.Name "byLabel")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

removeFeaturesByProperty :: Phantoms.TTerm Features.RemoveFeatures -> Phantoms.TTerm Bool
removeFeaturesByProperty x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.RemoveFeatures"),
        Core.projectionField = (Core.Name "byProperty")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

removeFeaturesWithByLabel :: Phantoms.TTerm Features.RemoveFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RemoveFeatures
removeFeaturesWithByLabel original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RemoveFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "byLabel"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "byProperty"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RemoveFeatures"),
              Core.projectionField = (Core.Name "byProperty")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

removeFeaturesWithByProperty :: Phantoms.TTerm Features.RemoveFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.RemoveFeatures
removeFeaturesWithByProperty original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.RemoveFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "byLabel"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.RemoveFeatures"),
              Core.projectionField = (Core.Name "byLabel")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "byProperty"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

scalarFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeatures char_length character_length coalesce elementId endNode head id last length nullIf properties randomUUID size startNode toBoolean toBooleanOrNull toFloat toFloatOrNull toInteger toIntegerOrNull type_ valueType =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Phantoms.unTTerm char_length)},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Phantoms.unTTerm character_length)},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Phantoms.unTTerm coalesce)},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Phantoms.unTTerm elementId)},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Phantoms.unTTerm endNode)},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Phantoms.unTTerm head)},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Phantoms.unTTerm id)},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Phantoms.unTTerm last)},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Phantoms.unTTerm length)},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Phantoms.unTTerm nullIf)},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Phantoms.unTTerm properties)},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Phantoms.unTTerm randomUUID)},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Phantoms.unTTerm size)},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Phantoms.unTTerm startNode)},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Phantoms.unTTerm toBoolean)},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Phantoms.unTTerm toBooleanOrNull)},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Phantoms.unTTerm toFloat)},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Phantoms.unTTerm toFloatOrNull)},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Phantoms.unTTerm toInteger)},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Phantoms.unTTerm toIntegerOrNull)},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Phantoms.unTTerm type_)},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Phantoms.unTTerm valueType)}]}))

scalarFunctionFeaturesChar_length :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesChar_length x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "char_length")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesCharacter_length :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesCharacter_length x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "character_length")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesCoalesce :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesCoalesce x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "coalesce")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesElementId :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesElementId x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "elementId")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesEndNode :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesEndNode x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "endNode")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesHead :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesHead x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "head")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesId :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesId x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "id")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesLast :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesLast x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "last")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesLength :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesLength x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "length")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesNullIf :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesNullIf x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "nullIf")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesProperties :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesProperties x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "properties")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesRandomUUID :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesRandomUUID x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "randomUUID")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesSize :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesSize x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "size")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesStartNode :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesStartNode x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "startNode")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesToBoolean :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesToBoolean x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "toBoolean")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesToBooleanOrNull :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesToBooleanOrNull x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "toBooleanOrNull")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesToFloat :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesToFloat x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "toFloat")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesToFloatOrNull :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesToFloatOrNull x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "toFloatOrNull")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesToInteger :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesToInteger x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "toInteger")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesToIntegerOrNull :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesToIntegerOrNull x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "toIntegerOrNull")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesType :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesType x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "type")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesValueType :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool
scalarFunctionFeaturesValueType x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
        Core.projectionField = (Core.Name "valueType")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

scalarFunctionFeaturesWithChar_length :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithChar_length original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithCharacter_length :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithCharacter_length original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithCoalesce :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithCoalesce original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithElementId :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithElementId original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithEndNode :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithEndNode original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithHead :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithHead original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithId :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithId original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithLast :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithLast original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithLength :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithLength original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithNullIf :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithNullIf original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithProperties :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithProperties original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithRandomUUID :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithRandomUUID original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithSize :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithSize original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithStartNode :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithStartNode original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithToBoolean :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithToBoolean original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithToBooleanOrNull :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithToBooleanOrNull original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithToFloat :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithToFloat original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithToFloatOrNull :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithToFloatOrNull original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithToInteger :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithToInteger original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithToIntegerOrNull :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithToIntegerOrNull original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithType :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithType original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "valueType")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

scalarFunctionFeaturesWithValueType :: Phantoms.TTerm Features.ScalarFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.ScalarFunctionFeatures
scalarFunctionFeaturesWithValueType original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "char_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "char_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "character_length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "character_length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "coalesce"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "coalesce")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "elementId"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "elementId")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "endNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "head"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "head")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "id"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "id")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "last"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "last")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "length"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "length")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "nullIf"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "nullIf")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "properties"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "properties")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "randomUUID"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "randomUUID")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "size"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "size")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startNode"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "startNode")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBoolean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBoolean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toBooleanOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toBooleanOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloat"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloat")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toFloatOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toFloatOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toInteger"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toInteger")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toIntegerOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "toIntegerOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "type"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.ScalarFunctionFeatures"),
              Core.projectionField = (Core.Name "type")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "valueType"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

setFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.SetFeatures
setFeatures propertyEquals variableEquals variablePlusEquals variableWithNodeLabels =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "propertyEquals"),
          Core.fieldTerm = (Phantoms.unTTerm propertyEquals)},
        Core.Field {
          Core.fieldName = (Core.Name "variableEquals"),
          Core.fieldTerm = (Phantoms.unTTerm variableEquals)},
        Core.Field {
          Core.fieldName = (Core.Name "variablePlusEquals"),
          Core.fieldTerm = (Phantoms.unTTerm variablePlusEquals)},
        Core.Field {
          Core.fieldName = (Core.Name "variableWithNodeLabels"),
          Core.fieldTerm = (Phantoms.unTTerm variableWithNodeLabels)}]}))

setFeaturesPropertyEquals :: Phantoms.TTerm Features.SetFeatures -> Phantoms.TTerm Bool
setFeaturesPropertyEquals x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
        Core.projectionField = (Core.Name "propertyEquals")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

setFeaturesVariableEquals :: Phantoms.TTerm Features.SetFeatures -> Phantoms.TTerm Bool
setFeaturesVariableEquals x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
        Core.projectionField = (Core.Name "variableEquals")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

setFeaturesVariablePlusEquals :: Phantoms.TTerm Features.SetFeatures -> Phantoms.TTerm Bool
setFeaturesVariablePlusEquals x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
        Core.projectionField = (Core.Name "variablePlusEquals")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

setFeaturesVariableWithNodeLabels :: Phantoms.TTerm Features.SetFeatures -> Phantoms.TTerm Bool
setFeaturesVariableWithNodeLabels x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
        Core.projectionField = (Core.Name "variableWithNodeLabels")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

setFeaturesWithPropertyEquals :: Phantoms.TTerm Features.SetFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.SetFeatures
setFeaturesWithPropertyEquals original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "propertyEquals"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "variableEquals"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
              Core.projectionField = (Core.Name "variableEquals")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variablePlusEquals"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
              Core.projectionField = (Core.Name "variablePlusEquals")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variableWithNodeLabels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
              Core.projectionField = (Core.Name "variableWithNodeLabels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

setFeaturesWithVariableEquals :: Phantoms.TTerm Features.SetFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.SetFeatures
setFeaturesWithVariableEquals original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "propertyEquals"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
              Core.projectionField = (Core.Name "propertyEquals")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variableEquals"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "variablePlusEquals"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
              Core.projectionField = (Core.Name "variablePlusEquals")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variableWithNodeLabels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
              Core.projectionField = (Core.Name "variableWithNodeLabels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

setFeaturesWithVariablePlusEquals :: Phantoms.TTerm Features.SetFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.SetFeatures
setFeaturesWithVariablePlusEquals original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "propertyEquals"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
              Core.projectionField = (Core.Name "propertyEquals")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variableEquals"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
              Core.projectionField = (Core.Name "variableEquals")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variablePlusEquals"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "variableWithNodeLabels"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
              Core.projectionField = (Core.Name "variableWithNodeLabels")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

setFeaturesWithVariableWithNodeLabels :: Phantoms.TTerm Features.SetFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.SetFeatures
setFeaturesWithVariableWithNodeLabels original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "propertyEquals"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
              Core.projectionField = (Core.Name "propertyEquals")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variableEquals"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
              Core.projectionField = (Core.Name "variableEquals")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variablePlusEquals"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SetFeatures"),
              Core.projectionField = (Core.Name "variablePlusEquals")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "variableWithNodeLabels"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

spatialFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.SpatialFunctionFeatures
spatialFunctionFeatures pointDistance point pointWithinBBox =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.SpatialFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "pointDistance"),
          Core.fieldTerm = (Phantoms.unTTerm pointDistance)},
        Core.Field {
          Core.fieldName = (Core.Name "point"),
          Core.fieldTerm = (Phantoms.unTTerm point)},
        Core.Field {
          Core.fieldName = (Core.Name "pointWithinBBox"),
          Core.fieldTerm = (Phantoms.unTTerm pointWithinBBox)}]}))

spatialFunctionFeaturesPoint :: Phantoms.TTerm Features.SpatialFunctionFeatures -> Phantoms.TTerm Bool
spatialFunctionFeaturesPoint x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.SpatialFunctionFeatures"),
        Core.projectionField = (Core.Name "point")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

spatialFunctionFeaturesPointDistance :: Phantoms.TTerm Features.SpatialFunctionFeatures -> Phantoms.TTerm Bool
spatialFunctionFeaturesPointDistance x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.SpatialFunctionFeatures"),
        Core.projectionField = (Core.Name "pointDistance")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

spatialFunctionFeaturesPointWithinBBox :: Phantoms.TTerm Features.SpatialFunctionFeatures -> Phantoms.TTerm Bool
spatialFunctionFeaturesPointWithinBBox x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.SpatialFunctionFeatures"),
        Core.projectionField = (Core.Name "pointWithinBBox")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

spatialFunctionFeaturesWithPoint :: Phantoms.TTerm Features.SpatialFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.SpatialFunctionFeatures
spatialFunctionFeaturesWithPoint original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.SpatialFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "pointDistance"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SpatialFunctionFeatures"),
              Core.projectionField = (Core.Name "pointDistance")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "point"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "pointWithinBBox"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SpatialFunctionFeatures"),
              Core.projectionField = (Core.Name "pointWithinBBox")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

spatialFunctionFeaturesWithPointDistance :: Phantoms.TTerm Features.SpatialFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.SpatialFunctionFeatures
spatialFunctionFeaturesWithPointDistance original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.SpatialFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "pointDistance"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "point"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SpatialFunctionFeatures"),
              Core.projectionField = (Core.Name "point")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "pointWithinBBox"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SpatialFunctionFeatures"),
              Core.projectionField = (Core.Name "pointWithinBBox")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

spatialFunctionFeaturesWithPointWithinBBox :: Phantoms.TTerm Features.SpatialFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.SpatialFunctionFeatures
spatialFunctionFeaturesWithPointWithinBBox original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.SpatialFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "pointDistance"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SpatialFunctionFeatures"),
              Core.projectionField = (Core.Name "pointDistance")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "point"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.SpatialFunctionFeatures"),
              Core.projectionField = (Core.Name "point")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "pointWithinBBox"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

stringFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFeatures
stringFeatures contains endsWith in_ startsWith =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "contains"),
          Core.fieldTerm = (Phantoms.unTTerm contains)},
        Core.Field {
          Core.fieldName = (Core.Name "endsWith"),
          Core.fieldTerm = (Phantoms.unTTerm endsWith)},
        Core.Field {
          Core.fieldName = (Core.Name "in"),
          Core.fieldTerm = (Phantoms.unTTerm in_)},
        Core.Field {
          Core.fieldName = (Core.Name "startsWith"),
          Core.fieldTerm = (Phantoms.unTTerm startsWith)}]}))

stringFeaturesContains :: Phantoms.TTerm Features.StringFeatures -> Phantoms.TTerm Bool
stringFeaturesContains x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
        Core.projectionField = (Core.Name "contains")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFeaturesEndsWith :: Phantoms.TTerm Features.StringFeatures -> Phantoms.TTerm Bool
stringFeaturesEndsWith x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
        Core.projectionField = (Core.Name "endsWith")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFeaturesIn :: Phantoms.TTerm Features.StringFeatures -> Phantoms.TTerm Bool
stringFeaturesIn x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
        Core.projectionField = (Core.Name "in")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFeaturesStartsWith :: Phantoms.TTerm Features.StringFeatures -> Phantoms.TTerm Bool
stringFeaturesStartsWith x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
        Core.projectionField = (Core.Name "startsWith")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFeaturesWithContains :: Phantoms.TTerm Features.StringFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFeatures
stringFeaturesWithContains original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "contains"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "endsWith"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
              Core.projectionField = (Core.Name "endsWith")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "in"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
              Core.projectionField = (Core.Name "in")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startsWith"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
              Core.projectionField = (Core.Name "startsWith")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFeaturesWithEndsWith :: Phantoms.TTerm Features.StringFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFeatures
stringFeaturesWithEndsWith original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "contains"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
              Core.projectionField = (Core.Name "contains")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endsWith"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "in"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
              Core.projectionField = (Core.Name "in")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startsWith"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
              Core.projectionField = (Core.Name "startsWith")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFeaturesWithIn :: Phantoms.TTerm Features.StringFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFeatures
stringFeaturesWithIn original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "contains"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
              Core.projectionField = (Core.Name "contains")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endsWith"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
              Core.projectionField = (Core.Name "endsWith")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "in"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "startsWith"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
              Core.projectionField = (Core.Name "startsWith")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFeaturesWithStartsWith :: Phantoms.TTerm Features.StringFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFeatures
stringFeaturesWithStartsWith original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "contains"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
              Core.projectionField = (Core.Name "contains")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "endsWith"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
              Core.projectionField = (Core.Name "endsWith")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "in"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFeatures"),
              Core.projectionField = (Core.Name "in")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "startsWith"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

stringFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeatures btrim left lower ltrim normalize replace reverse right rtrim split substring toLower toString toStringOrNull toUpper trim upper =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Phantoms.unTTerm btrim)},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Phantoms.unTTerm left)},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Phantoms.unTTerm lower)},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Phantoms.unTTerm ltrim)},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Phantoms.unTTerm normalize)},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Phantoms.unTTerm replace)},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Phantoms.unTTerm reverse)},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Phantoms.unTTerm right)},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Phantoms.unTTerm rtrim)},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Phantoms.unTTerm split)},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Phantoms.unTTerm substring)},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Phantoms.unTTerm toLower)},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Phantoms.unTTerm toString)},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Phantoms.unTTerm toStringOrNull)},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Phantoms.unTTerm toUpper)},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Phantoms.unTTerm trim)},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Phantoms.unTTerm upper)}]}))

stringFunctionFeaturesBtrim :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesBtrim x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "btrim")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesLeft :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesLeft x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "left")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesLower :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesLower x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "lower")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesLtrim :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesLtrim x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "ltrim")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesNormalize :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesNormalize x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "normalize")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesReplace :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesReplace x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "replace")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesReverse :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesReverse x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "reverse")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesRight :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesRight x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "right")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesRtrim :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesRtrim x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "rtrim")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesSplit :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesSplit x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "split")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesSubstring :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesSubstring x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "substring")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesToLower :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesToLower x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "toLower")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesToString :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesToString x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "toString")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesToStringOrNull :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesToStringOrNull x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "toStringOrNull")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesToUpper :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesToUpper x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "toUpper")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesTrim :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesTrim x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "trim")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesUpper :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool
stringFunctionFeaturesUpper x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
        Core.projectionField = (Core.Name "upper")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

stringFunctionFeaturesWithBtrim :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithBtrim original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithLeft :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithLeft original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithLower :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithLower original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithLtrim :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithLtrim original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithNormalize :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithNormalize original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithReplace :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithReplace original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithReverse :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithReverse original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithRight :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithRight original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithRtrim :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithRtrim original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithSplit :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithSplit original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithSubstring :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithSubstring original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithToLower :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithToLower original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithToString :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithToString original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithToStringOrNull :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithToStringOrNull original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithToUpper :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithToUpper original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithTrim :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithTrim original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "upper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

stringFunctionFeaturesWithUpper :: Phantoms.TTerm Features.StringFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.StringFunctionFeatures
stringFunctionFeaturesWithUpper original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "btrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "btrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "left"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "left")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "lower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "lower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "ltrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "ltrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "normalize"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "normalize")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "replace"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "replace")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "reverse"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "reverse")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "right"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "right")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "rtrim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "rtrim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "split"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "split")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "substring"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "substring")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toLower"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toLower")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toString"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toString")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toStringOrNull"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toStringOrNull")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "toUpper"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "toUpper")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "trim"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.StringFunctionFeatures"),
              Core.projectionField = (Core.Name "trim")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "upper"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

temporalDurationFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalDurationFunctionFeatures
temporalDurationFunctionFeatures duration durationBetween durationInDays durationInMonths durationInSeconds =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "duration"),
          Core.fieldTerm = (Phantoms.unTTerm duration)},
        Core.Field {
          Core.fieldName = (Core.Name "durationBetween"),
          Core.fieldTerm = (Phantoms.unTTerm durationBetween)},
        Core.Field {
          Core.fieldName = (Core.Name "durationInDays"),
          Core.fieldTerm = (Phantoms.unTTerm durationInDays)},
        Core.Field {
          Core.fieldName = (Core.Name "durationInMonths"),
          Core.fieldTerm = (Phantoms.unTTerm durationInMonths)},
        Core.Field {
          Core.fieldName = (Core.Name "durationInSeconds"),
          Core.fieldTerm = (Phantoms.unTTerm durationInSeconds)}]}))

temporalDurationFunctionFeaturesDuration :: Phantoms.TTerm Features.TemporalDurationFunctionFeatures -> Phantoms.TTerm Bool
temporalDurationFunctionFeaturesDuration x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
        Core.projectionField = (Core.Name "duration")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalDurationFunctionFeaturesDurationBetween :: Phantoms.TTerm Features.TemporalDurationFunctionFeatures -> Phantoms.TTerm Bool
temporalDurationFunctionFeaturesDurationBetween x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
        Core.projectionField = (Core.Name "durationBetween")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalDurationFunctionFeaturesDurationInDays :: Phantoms.TTerm Features.TemporalDurationFunctionFeatures -> Phantoms.TTerm Bool
temporalDurationFunctionFeaturesDurationInDays x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
        Core.projectionField = (Core.Name "durationInDays")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalDurationFunctionFeaturesDurationInMonths :: Phantoms.TTerm Features.TemporalDurationFunctionFeatures -> Phantoms.TTerm Bool
temporalDurationFunctionFeaturesDurationInMonths x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
        Core.projectionField = (Core.Name "durationInMonths")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalDurationFunctionFeaturesDurationInSeconds :: Phantoms.TTerm Features.TemporalDurationFunctionFeatures -> Phantoms.TTerm Bool
temporalDurationFunctionFeaturesDurationInSeconds x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
        Core.projectionField = (Core.Name "durationInSeconds")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalDurationFunctionFeaturesWithDuration :: Phantoms.TTerm Features.TemporalDurationFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalDurationFunctionFeatures
temporalDurationFunctionFeaturesWithDuration original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "duration"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "durationBetween"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationBetween")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationInDays"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationInDays")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationInMonths"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationInMonths")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationInSeconds"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationInSeconds")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalDurationFunctionFeaturesWithDurationBetween :: Phantoms.TTerm Features.TemporalDurationFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalDurationFunctionFeatures
temporalDurationFunctionFeaturesWithDurationBetween original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "duration"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "duration")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationBetween"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "durationInDays"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationInDays")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationInMonths"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationInMonths")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationInSeconds"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationInSeconds")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalDurationFunctionFeaturesWithDurationInDays :: Phantoms.TTerm Features.TemporalDurationFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalDurationFunctionFeatures
temporalDurationFunctionFeaturesWithDurationInDays original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "duration"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "duration")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationBetween"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationBetween")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationInDays"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "durationInMonths"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationInMonths")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationInSeconds"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationInSeconds")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalDurationFunctionFeaturesWithDurationInMonths :: Phantoms.TTerm Features.TemporalDurationFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalDurationFunctionFeatures
temporalDurationFunctionFeaturesWithDurationInMonths original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "duration"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "duration")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationBetween"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationBetween")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationInDays"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationInDays")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationInMonths"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "durationInSeconds"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationInSeconds")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalDurationFunctionFeaturesWithDurationInSeconds :: Phantoms.TTerm Features.TemporalDurationFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalDurationFunctionFeatures
temporalDurationFunctionFeaturesWithDurationInSeconds original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "duration"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "duration")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationBetween"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationBetween")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationInDays"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationInDays")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationInMonths"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalDurationFunctionFeatures"),
              Core.projectionField = (Core.Name "durationInMonths")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "durationInSeconds"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

temporalInstantFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeatures date dateRealtime dateStatement dateTransaction dateTruncate datetime datetimeFromepoch datetimeFromepochmillis datetimeRealtime datetimeStatement datetimeTransaction datetimeTruncate localdatetime localdatetimeRealtime localdatetimeStatement localdatetimeTransaction localdatetimeTruncate localtime localtimeRealtime localtimeStatement localtimeTransaction localtimeTruncate time timeRealtime timeStatement timeTransaction timeTruncate =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Phantoms.unTTerm date)},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Phantoms.unTTerm dateRealtime)},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Phantoms.unTTerm dateStatement)},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Phantoms.unTTerm dateTransaction)},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Phantoms.unTTerm dateTruncate)},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Phantoms.unTTerm datetime)},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Phantoms.unTTerm datetimeFromepoch)},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Phantoms.unTTerm datetimeFromepochmillis)},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Phantoms.unTTerm datetimeRealtime)},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Phantoms.unTTerm datetimeStatement)},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Phantoms.unTTerm datetimeTransaction)},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Phantoms.unTTerm datetimeTruncate)},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Phantoms.unTTerm localdatetime)},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Phantoms.unTTerm localdatetimeRealtime)},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Phantoms.unTTerm localdatetimeStatement)},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Phantoms.unTTerm localdatetimeTransaction)},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Phantoms.unTTerm localdatetimeTruncate)},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Phantoms.unTTerm localtime)},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Phantoms.unTTerm localtimeRealtime)},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Phantoms.unTTerm localtimeStatement)},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Phantoms.unTTerm localtimeTransaction)},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Phantoms.unTTerm localtimeTruncate)},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Phantoms.unTTerm time)},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Phantoms.unTTerm timeRealtime)},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Phantoms.unTTerm timeStatement)},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Phantoms.unTTerm timeTransaction)},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Phantoms.unTTerm timeTruncate)}]}))

temporalInstantFunctionFeaturesDate :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesDate x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "date")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesDateRealtime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesDateRealtime x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "dateRealtime")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesDateStatement :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesDateStatement x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "dateStatement")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesDateTransaction :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesDateTransaction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "dateTransaction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesDateTruncate :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesDateTruncate x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "dateTruncate")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesDatetime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesDatetime x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "datetime")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesDatetimeFromepoch :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesDatetimeFromepoch x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "datetimeFromepoch")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesDatetimeFromepochmillis :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesDatetimeFromepochmillis x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesDatetimeRealtime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesDatetimeRealtime x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "datetimeRealtime")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesDatetimeStatement :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesDatetimeStatement x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "datetimeStatement")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesDatetimeTransaction :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesDatetimeTransaction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "datetimeTransaction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesDatetimeTruncate :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesDatetimeTruncate x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "datetimeTruncate")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesLocaldatetime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesLocaldatetime x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "localdatetime")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesLocaldatetimeRealtime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesLocaldatetimeRealtime x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "localdatetimeRealtime")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesLocaldatetimeStatement :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesLocaldatetimeStatement x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "localdatetimeStatement")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesLocaldatetimeTransaction :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesLocaldatetimeTransaction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "localdatetimeTransaction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesLocaldatetimeTruncate :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesLocaldatetimeTruncate x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "localdatetimeTruncate")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesLocaltime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesLocaltime x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "localtime")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesLocaltimeRealtime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesLocaltimeRealtime x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "localtimeRealtime")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesLocaltimeStatement :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesLocaltimeStatement x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "localtimeStatement")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesLocaltimeTransaction :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesLocaltimeTransaction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "localtimeTransaction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesLocaltimeTruncate :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesLocaltimeTruncate x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "localtimeTruncate")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesTime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesTime x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "time")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesTimeRealtime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesTimeRealtime x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "timeRealtime")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesTimeStatement :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesTimeStatement x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "timeStatement")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesTimeTransaction :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesTimeTransaction x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "timeTransaction")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesTimeTruncate :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool
temporalInstantFunctionFeaturesTimeTruncate x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
        Core.projectionField = (Core.Name "timeTruncate")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

temporalInstantFunctionFeaturesWithDate :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithDate original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithDateRealtime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithDateRealtime original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithDateStatement :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithDateStatement original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithDateTransaction :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithDateTransaction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithDateTruncate :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithDateTruncate original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithDatetime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithDatetime original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithDatetimeFromepoch :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithDatetimeFromepoch original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithDatetimeFromepochmillis :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithDatetimeFromepochmillis original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithDatetimeRealtime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithDatetimeRealtime original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithDatetimeStatement :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithDatetimeStatement original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithDatetimeTransaction :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithDatetimeTransaction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithDatetimeTruncate :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithDatetimeTruncate original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithLocaldatetime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithLocaldatetime original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithLocaldatetimeRealtime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithLocaldatetimeRealtime original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithLocaldatetimeStatement :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithLocaldatetimeStatement original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithLocaldatetimeTransaction :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithLocaldatetimeTransaction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithLocaldatetimeTruncate :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithLocaldatetimeTruncate original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithLocaltime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithLocaltime original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithLocaltimeRealtime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithLocaltimeRealtime original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithLocaltimeStatement :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithLocaltimeStatement original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithLocaltimeTransaction :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithLocaltimeTransaction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithLocaltimeTruncate :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithLocaltimeTruncate original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithTime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithTime original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithTimeRealtime :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithTimeRealtime original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithTimeStatement :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithTimeStatement original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithTimeTransaction :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithTimeTransaction original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

temporalInstantFunctionFeaturesWithTimeTruncate :: Phantoms.TTerm Features.TemporalInstantFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TemporalInstantFunctionFeatures
temporalInstantFunctionFeaturesWithTimeTruncate original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "date"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "date")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "dateTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "dateTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepoch"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepoch")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeFromepochmillis"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeFromepochmillis")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "datetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "datetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localdatetimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localdatetimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "localtimeTruncate"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "localtimeTruncate")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "time"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "time")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeRealtime"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeRealtime")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeStatement"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeStatement")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTransaction"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TemporalInstantFunctionFeatures"),
              Core.projectionField = (Core.Name "timeTransaction")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "timeTruncate"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

trigonometricFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TrigonometricFunctionFeatures
trigonometricFunctionFeatures acos asin atan atan2 cos cot degrees haversin pi radians sin tan =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "acos"),
          Core.fieldTerm = (Phantoms.unTTerm acos)},
        Core.Field {
          Core.fieldName = (Core.Name "asin"),
          Core.fieldTerm = (Phantoms.unTTerm asin)},
        Core.Field {
          Core.fieldName = (Core.Name "atan"),
          Core.fieldTerm = (Phantoms.unTTerm atan)},
        Core.Field {
          Core.fieldName = (Core.Name "atan2"),
          Core.fieldTerm = (Phantoms.unTTerm atan2)},
        Core.Field {
          Core.fieldName = (Core.Name "cos"),
          Core.fieldTerm = (Phantoms.unTTerm cos)},
        Core.Field {
          Core.fieldName = (Core.Name "cot"),
          Core.fieldTerm = (Phantoms.unTTerm cot)},
        Core.Field {
          Core.fieldName = (Core.Name "degrees"),
          Core.fieldTerm = (Phantoms.unTTerm degrees)},
        Core.Field {
          Core.fieldName = (Core.Name "haversin"),
          Core.fieldTerm = (Phantoms.unTTerm haversin)},
        Core.Field {
          Core.fieldName = (Core.Name "pi"),
          Core.fieldTerm = (Phantoms.unTTerm pi)},
        Core.Field {
          Core.fieldName = (Core.Name "radians"),
          Core.fieldTerm = (Phantoms.unTTerm radians)},
        Core.Field {
          Core.fieldName = (Core.Name "sin"),
          Core.fieldTerm = (Phantoms.unTTerm sin)},
        Core.Field {
          Core.fieldName = (Core.Name "tan"),
          Core.fieldTerm = (Phantoms.unTTerm tan)}]}))

trigonometricFunctionFeaturesAcos :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool
trigonometricFunctionFeaturesAcos x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
        Core.projectionField = (Core.Name "acos")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

trigonometricFunctionFeaturesAsin :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool
trigonometricFunctionFeaturesAsin x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
        Core.projectionField = (Core.Name "asin")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

trigonometricFunctionFeaturesAtan :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool
trigonometricFunctionFeaturesAtan x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
        Core.projectionField = (Core.Name "atan")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

trigonometricFunctionFeaturesAtan2 :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool
trigonometricFunctionFeaturesAtan2 x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
        Core.projectionField = (Core.Name "atan2")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

trigonometricFunctionFeaturesCos :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool
trigonometricFunctionFeaturesCos x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
        Core.projectionField = (Core.Name "cos")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

trigonometricFunctionFeaturesCot :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool
trigonometricFunctionFeaturesCot x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
        Core.projectionField = (Core.Name "cot")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

trigonometricFunctionFeaturesDegrees :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool
trigonometricFunctionFeaturesDegrees x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
        Core.projectionField = (Core.Name "degrees")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

trigonometricFunctionFeaturesHaversin :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool
trigonometricFunctionFeaturesHaversin x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
        Core.projectionField = (Core.Name "haversin")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

trigonometricFunctionFeaturesPi :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool
trigonometricFunctionFeaturesPi x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
        Core.projectionField = (Core.Name "pi")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

trigonometricFunctionFeaturesRadians :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool
trigonometricFunctionFeaturesRadians x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
        Core.projectionField = (Core.Name "radians")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

trigonometricFunctionFeaturesSin :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool
trigonometricFunctionFeaturesSin x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
        Core.projectionField = (Core.Name "sin")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

trigonometricFunctionFeaturesTan :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool
trigonometricFunctionFeaturesTan x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
        Core.projectionField = (Core.Name "tan")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

trigonometricFunctionFeaturesWithAcos :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TrigonometricFunctionFeatures
trigonometricFunctionFeaturesWithAcos original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "acos"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "asin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "asin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan2"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan2")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cot"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cot")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "degrees"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "degrees")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "haversin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "haversin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "pi"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "pi")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "radians"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "radians")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "sin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "tan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

trigonometricFunctionFeaturesWithAsin :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TrigonometricFunctionFeatures
trigonometricFunctionFeaturesWithAsin original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "acos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "acos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "asin"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "atan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan2"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan2")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cot"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cot")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "degrees"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "degrees")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "haversin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "haversin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "pi"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "pi")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "radians"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "radians")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "sin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "tan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

trigonometricFunctionFeaturesWithAtan :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TrigonometricFunctionFeatures
trigonometricFunctionFeaturesWithAtan original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "acos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "acos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "asin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "asin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "atan2"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan2")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cot"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cot")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "degrees"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "degrees")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "haversin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "haversin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "pi"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "pi")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "radians"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "radians")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "sin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "tan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

trigonometricFunctionFeaturesWithAtan2 :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TrigonometricFunctionFeatures
trigonometricFunctionFeaturesWithAtan2 original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "acos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "acos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "asin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "asin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan2"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "cos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cot"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cot")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "degrees"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "degrees")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "haversin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "haversin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "pi"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "pi")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "radians"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "radians")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "sin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "tan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

trigonometricFunctionFeaturesWithCos :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TrigonometricFunctionFeatures
trigonometricFunctionFeaturesWithCos original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "acos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "acos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "asin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "asin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan2"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan2")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cos"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "cot"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cot")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "degrees"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "degrees")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "haversin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "haversin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "pi"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "pi")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "radians"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "radians")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "sin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "tan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

trigonometricFunctionFeaturesWithCot :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TrigonometricFunctionFeatures
trigonometricFunctionFeaturesWithCot original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "acos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "acos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "asin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "asin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan2"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan2")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cot"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "degrees"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "degrees")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "haversin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "haversin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "pi"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "pi")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "radians"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "radians")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "sin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "tan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

trigonometricFunctionFeaturesWithDegrees :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TrigonometricFunctionFeatures
trigonometricFunctionFeaturesWithDegrees original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "acos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "acos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "asin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "asin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan2"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan2")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cot"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cot")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "degrees"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "haversin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "haversin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "pi"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "pi")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "radians"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "radians")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "sin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "tan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

trigonometricFunctionFeaturesWithHaversin :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TrigonometricFunctionFeatures
trigonometricFunctionFeaturesWithHaversin original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "acos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "acos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "asin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "asin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan2"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan2")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cot"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cot")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "degrees"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "degrees")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "haversin"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "pi"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "pi")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "radians"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "radians")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "sin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "tan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

trigonometricFunctionFeaturesWithPi :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TrigonometricFunctionFeatures
trigonometricFunctionFeaturesWithPi original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "acos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "acos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "asin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "asin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan2"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan2")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cot"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cot")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "degrees"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "degrees")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "haversin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "haversin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "pi"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "radians"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "radians")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "sin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "tan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

trigonometricFunctionFeaturesWithRadians :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TrigonometricFunctionFeatures
trigonometricFunctionFeaturesWithRadians original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "acos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "acos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "asin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "asin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan2"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan2")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cot"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cot")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "degrees"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "degrees")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "haversin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "haversin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "pi"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "pi")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "radians"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "sin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "sin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "tan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

trigonometricFunctionFeaturesWithSin :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TrigonometricFunctionFeatures
trigonometricFunctionFeaturesWithSin original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "acos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "acos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "asin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "asin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan2"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan2")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cot"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cot")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "degrees"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "degrees")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "haversin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "haversin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "pi"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "pi")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "radians"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "radians")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sin"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "tan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "tan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

trigonometricFunctionFeaturesWithTan :: Phantoms.TTerm Features.TrigonometricFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.TrigonometricFunctionFeatures
trigonometricFunctionFeaturesWithTan original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "acos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "acos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "asin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "asin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "atan2"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "atan2")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cos"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cos")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "cot"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "cot")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "degrees"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "degrees")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "haversin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "haversin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "pi"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "pi")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "radians"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "radians")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "sin"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.TrigonometricFunctionFeatures"),
              Core.projectionField = (Core.Name "sin")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "tan"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

updatingFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.UpdatingFeatures
updatingFeatures create set with =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.UpdatingFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "create"),
          Core.fieldTerm = (Phantoms.unTTerm create)},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Phantoms.unTTerm set)},
        Core.Field {
          Core.fieldName = (Core.Name "with"),
          Core.fieldTerm = (Phantoms.unTTerm with)}]}))

updatingFeaturesCreate :: Phantoms.TTerm Features.UpdatingFeatures -> Phantoms.TTerm Bool
updatingFeaturesCreate x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.UpdatingFeatures"),
        Core.projectionField = (Core.Name "create")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

updatingFeaturesSet :: Phantoms.TTerm Features.UpdatingFeatures -> Phantoms.TTerm Bool
updatingFeaturesSet x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.UpdatingFeatures"),
        Core.projectionField = (Core.Name "set")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

updatingFeaturesWith :: Phantoms.TTerm Features.UpdatingFeatures -> Phantoms.TTerm Bool
updatingFeaturesWith x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.UpdatingFeatures"),
        Core.projectionField = (Core.Name "with")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

updatingFeaturesWithCreate :: Phantoms.TTerm Features.UpdatingFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.UpdatingFeatures
updatingFeaturesWithCreate original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.UpdatingFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "create"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.UpdatingFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "with"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.UpdatingFeatures"),
              Core.projectionField = (Core.Name "with")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

updatingFeaturesWithSet :: Phantoms.TTerm Features.UpdatingFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.UpdatingFeatures
updatingFeaturesWithSet original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.UpdatingFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "create"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.UpdatingFeatures"),
              Core.projectionField = (Core.Name "create")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "with"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.UpdatingFeatures"),
              Core.projectionField = (Core.Name "with")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

updatingFeaturesWithWith :: Phantoms.TTerm Features.UpdatingFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.UpdatingFeatures
updatingFeaturesWithWith original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.UpdatingFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "create"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.UpdatingFeatures"),
              Core.projectionField = (Core.Name "create")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "set"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.UpdatingFeatures"),
              Core.projectionField = (Core.Name "set")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "with"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))

vectorFunctionFeatures :: Phantoms.TTerm Bool -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.VectorFunctionFeatures
vectorFunctionFeatures vectorSimilarityCosine vectorSimilarityEuclidean =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.VectorFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "vectorSimilarityCosine"),
          Core.fieldTerm = (Phantoms.unTTerm vectorSimilarityCosine)},
        Core.Field {
          Core.fieldName = (Core.Name "vectorSimilarityEuclidean"),
          Core.fieldTerm = (Phantoms.unTTerm vectorSimilarityEuclidean)}]}))

vectorFunctionFeaturesVectorSimilarityCosine :: Phantoms.TTerm Features.VectorFunctionFeatures -> Phantoms.TTerm Bool
vectorFunctionFeaturesVectorSimilarityCosine x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.VectorFunctionFeatures"),
        Core.projectionField = (Core.Name "vectorSimilarityCosine")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

vectorFunctionFeaturesVectorSimilarityEuclidean :: Phantoms.TTerm Features.VectorFunctionFeatures -> Phantoms.TTerm Bool
vectorFunctionFeaturesVectorSimilarityEuclidean x =
    Phantoms.TTerm (Core.TermApplication (Core.Application {
      Core.applicationFunction = (Core.TermProject (Core.Projection {
        Core.projectionTypeName = (Core.Name "hydra.cypher.features.VectorFunctionFeatures"),
        Core.projectionField = (Core.Name "vectorSimilarityEuclidean")})),
      Core.applicationArgument = (Phantoms.unTTerm x)}))

vectorFunctionFeaturesWithVectorSimilarityCosine :: Phantoms.TTerm Features.VectorFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.VectorFunctionFeatures
vectorFunctionFeaturesWithVectorSimilarityCosine original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.VectorFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "vectorSimilarityCosine"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)},
        Core.Field {
          Core.fieldName = (Core.Name "vectorSimilarityEuclidean"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.VectorFunctionFeatures"),
              Core.projectionField = (Core.Name "vectorSimilarityEuclidean")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))}]}))

vectorFunctionFeaturesWithVectorSimilarityEuclidean :: Phantoms.TTerm Features.VectorFunctionFeatures -> Phantoms.TTerm Bool -> Phantoms.TTerm Features.VectorFunctionFeatures
vectorFunctionFeaturesWithVectorSimilarityEuclidean original newVal =
    Phantoms.TTerm (Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.cypher.features.VectorFunctionFeatures"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "vectorSimilarityCosine"),
          Core.fieldTerm = (Core.TermApplication (Core.Application {
            Core.applicationFunction = (Core.TermProject (Core.Projection {
              Core.projectionTypeName = (Core.Name "hydra.cypher.features.VectorFunctionFeatures"),
              Core.projectionField = (Core.Name "vectorSimilarityCosine")})),
            Core.applicationArgument = (Phantoms.unTTerm original)}))},
        Core.Field {
          Core.fieldName = (Core.Name "vectorSimilarityEuclidean"),
          Core.fieldTerm = (Phantoms.unTTerm newVal)}]}))