packages feed

hydra-ext-0.17.0: src/main/haskell/Hydra/Graphql/Syntax.hs

-- Note: this is an automatically generated file. Do not edit.
-- | A GraphQL model. Based on the (extended) BNF at:
-- |   https://spec.graphql.org/draft/#sec-Appendix-Grammar-Summary

module Hydra.Graphql.Syntax where
import qualified Hydra.Core as Core
import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
import qualified Data.Scientific as Sci
newtype Name =
  Name {
    unName :: String}
  deriving (Eq, Ord, Read, Show)
_Name = Core.Name "hydra.graphql.syntax.Name"
newtype IntValue =
  IntValue {
    unIntValue :: String}
  deriving (Eq, Ord, Read, Show)
_IntValue = Core.Name "hydra.graphql.syntax.IntValue"
newtype FloatValue =
  FloatValue {
    unFloatValue :: String}
  deriving (Eq, Ord, Read, Show)
_FloatValue = Core.Name "hydra.graphql.syntax.FloatValue"
newtype StringValue =
  StringValue {
    unStringValue :: String}
  deriving (Eq, Ord, Read, Show)
_StringValue = Core.Name "hydra.graphql.syntax.StringValue"
newtype Document =
  Document {
    unDocument :: [Definition]}
  deriving (Eq, Ord, Read, Show)
_Document = Core.Name "hydra.graphql.syntax.Document"
data Definition =
  DefinitionExecutable ExecutableDefinition |
  DefinitionTypeSystem TypeSystemDefinitionOrExtension
  deriving (Eq, Ord, Read, Show)
_Definition = Core.Name "hydra.graphql.syntax.Definition"
_Definition_executable = Core.Name "executable"
_Definition_typeSystem = Core.Name "typeSystem"
newtype ExecutableDocument =
  ExecutableDocument {
    unExecutableDocument :: [ExecutableDefinition]}
  deriving (Eq, Ord, Read, Show)
_ExecutableDocument = Core.Name "hydra.graphql.syntax.ExecutableDocument"
data ExecutableDefinition =
  ExecutableDefinitionOperation OperationDefinition |
  ExecutableDefinitionFragment FragmentDefinition
  deriving (Eq, Ord, Read, Show)
_ExecutableDefinition = Core.Name "hydra.graphql.syntax.ExecutableDefinition"
_ExecutableDefinition_operation = Core.Name "operation"
_ExecutableDefinition_fragment = Core.Name "fragment"
data OperationDefinition =
  OperationDefinitionSequence OperationDefinition_Sequence |
  OperationDefinitionSelectionSet SelectionSet
  deriving (Eq, Ord, Read, Show)
_OperationDefinition = Core.Name "hydra.graphql.syntax.OperationDefinition"
_OperationDefinition_sequence = Core.Name "sequence"
_OperationDefinition_SelectionSet = Core.Name "SelectionSet"
data OperationDefinition_Sequence =
  OperationDefinition_Sequence {
    operationDefinition_SequenceOperationType :: OperationType,
    operationDefinition_SequenceName :: (Maybe Name),
    operationDefinition_SequenceVariablesDefinition :: (Maybe VariablesDefinition),
    operationDefinition_SequenceDirectives :: (Maybe Directives),
    operationDefinition_SequenceSelectionSet :: SelectionSet}
  deriving (Eq, Ord, Read, Show)
_OperationDefinition_Sequence = Core.Name "hydra.graphql.syntax.OperationDefinition_Sequence"
_OperationDefinition_Sequence_OperationType = Core.Name "OperationType"
_OperationDefinition_Sequence_Name = Core.Name "Name"
_OperationDefinition_Sequence_VariablesDefinition = Core.Name "VariablesDefinition"
_OperationDefinition_Sequence_Directives = Core.Name "Directives"
_OperationDefinition_Sequence_SelectionSet = Core.Name "SelectionSet"
data OperationType =
  OperationTypeQuery |
  OperationTypeMutation |
  OperationTypeSubscription
  deriving (Eq, Ord, Read, Show)
_OperationType = Core.Name "hydra.graphql.syntax.OperationType"
_OperationType_Query = Core.Name "Query"
_OperationType_Mutation = Core.Name "Mutation"
_OperationType_Subscription = Core.Name "Subscription"
newtype SelectionSet =
  SelectionSet {
    unSelectionSet :: [Selection]}
  deriving (Eq, Ord, Read, Show)
_SelectionSet = Core.Name "hydra.graphql.syntax.SelectionSet"
data Selection =
  SelectionField Field |
  SelectionFragmentSpread FragmentSpread |
  SelectionInlineFragment InlineFragment
  deriving (Eq, Ord, Read, Show)
_Selection = Core.Name "hydra.graphql.syntax.Selection"
_Selection_Field = Core.Name "Field"
_Selection_FragmentSpread = Core.Name "FragmentSpread"
_Selection_InlineFragment = Core.Name "InlineFragment"
data Field =
  Field {
    fieldAlias :: (Maybe Alias),
    fieldName :: Name,
    fieldArguments :: (Maybe Arguments),
    fieldDirectives :: (Maybe Directives),
    fieldSelectionSet :: (Maybe SelectionSet)}
  deriving (Eq, Ord, Read, Show)
_Field = Core.Name "hydra.graphql.syntax.Field"
_Field_Alias = Core.Name "Alias"
_Field_Name = Core.Name "Name"
_Field_Arguments = Core.Name "Arguments"
_Field_Directives = Core.Name "Directives"
_Field_SelectionSet = Core.Name "SelectionSet"
data Alias =
  AliasName Name |
  AliasColon
  deriving (Eq, Ord, Read, Show)
_Alias = Core.Name "hydra.graphql.syntax.Alias"
_Alias_Name = Core.Name "Name"
_Alias_Colon = Core.Name "Colon"
newtype Arguments =
  Arguments {
    unArguments :: [Argument]}
  deriving (Eq, Ord, Read, Show)
_Arguments = Core.Name "hydra.graphql.syntax.Arguments"
data Argument =
  Argument {
    argumentName :: Name,
    argumentValue :: Value}
  deriving (Eq, Ord, Read, Show)
_Argument = Core.Name "hydra.graphql.syntax.Argument"
_Argument_Name = Core.Name "Name"
_Argument_Value = Core.Name "Value"
data FragmentSpread =
  FragmentSpread {
    fragmentSpreadFragmentName :: FragmentName,
    fragmentSpreadDirectives :: (Maybe Directives)}
  deriving (Eq, Ord, Read, Show)
_FragmentSpread = Core.Name "hydra.graphql.syntax.FragmentSpread"
_FragmentSpread_FragmentName = Core.Name "FragmentName"
_FragmentSpread_Directives = Core.Name "Directives"
data InlineFragment =
  InlineFragment {
    inlineFragmentTypeCondition :: (Maybe TypeCondition),
    inlineFragmentDirectives :: (Maybe Directives),
    inlineFragmentSelectionSet :: SelectionSet}
  deriving (Eq, Ord, Read, Show)
_InlineFragment = Core.Name "hydra.graphql.syntax.InlineFragment"
_InlineFragment_TypeCondition = Core.Name "TypeCondition"
_InlineFragment_Directives = Core.Name "Directives"
_InlineFragment_SelectionSet = Core.Name "SelectionSet"
data FragmentDefinition =
  FragmentDefinition {
    fragmentDefinitionFragmentName :: FragmentName,
    fragmentDefinitionTypeCondition :: TypeCondition,
    fragmentDefinitionDirectives :: (Maybe Directives),
    fragmentDefinitionSelectionSet :: SelectionSet}
  deriving (Eq, Ord, Read, Show)
_FragmentDefinition = Core.Name "hydra.graphql.syntax.FragmentDefinition"
_FragmentDefinition_FragmentName = Core.Name "FragmentName"
_FragmentDefinition_TypeCondition = Core.Name "TypeCondition"
_FragmentDefinition_Directives = Core.Name "Directives"
_FragmentDefinition_SelectionSet = Core.Name "SelectionSet"
newtype FragmentName =
  FragmentName {
    unFragmentName :: Name}
  deriving (Eq, Ord, Read, Show)
_FragmentName = Core.Name "hydra.graphql.syntax.FragmentName"
data TypeCondition =
  TypeConditionOn |
  TypeConditionNamedType NamedType
  deriving (Eq, Ord, Read, Show)
_TypeCondition = Core.Name "hydra.graphql.syntax.TypeCondition"
_TypeCondition_On = Core.Name "On"
_TypeCondition_NamedType = Core.Name "NamedType"
data Value =
  ValueVariable Variable |
  ValueInt IntValue |
  ValueFloat FloatValue |
  ValueString StringValue |
  ValueBoolean BooleanValue |
  ValueNull NullValue |
  ValueEnum EnumValue |
  ValueList ListValue |
  ValueObject ObjectValue
  deriving (Eq, Ord, Read, Show)
_Value = Core.Name "hydra.graphql.syntax.Value"
_Value_Variable = Core.Name "Variable"
_Value_int = Core.Name "int"
_Value_float = Core.Name "float"
_Value_string = Core.Name "string"
_Value_boolean = Core.Name "boolean"
_Value_null = Core.Name "null"
_Value_enum = Core.Name "enum"
_Value_list = Core.Name "list"
_Value_object = Core.Name "object"
data BooleanValue =
  BooleanValueTrue |
  BooleanValueFalse
  deriving (Eq, Ord, Read, Show)
_BooleanValue = Core.Name "hydra.graphql.syntax.BooleanValue"
_BooleanValue_True = Core.Name "True"
_BooleanValue_False = Core.Name "False"
newtype NullValue =
  NullValue {
    unNullValue :: ()}
  deriving (Eq, Ord, Read, Show)
_NullValue = Core.Name "hydra.graphql.syntax.NullValue"
newtype EnumValue =
  EnumValue {
    unEnumValue :: Name}
  deriving (Eq, Ord, Read, Show)
_EnumValue = Core.Name "hydra.graphql.syntax.EnumValue"
data ListValue =
  ListValueSequence ListValue_Sequence |
  ListValueSequence2 [Value]
  deriving (Eq, Ord, Read, Show)
_ListValue = Core.Name "hydra.graphql.syntax.ListValue"
_ListValue_sequence = Core.Name "sequence"
_ListValue_sequence2 = Core.Name "sequence2"
data ListValue_Sequence =
  ListValue_Sequence {}
  deriving (Eq, Ord, Read, Show)
_ListValue_Sequence = Core.Name "hydra.graphql.syntax.ListValue_Sequence"
data ObjectValue =
  ObjectValueSequence ObjectValue_Sequence |
  ObjectValueSequence2 [ObjectField]
  deriving (Eq, Ord, Read, Show)
_ObjectValue = Core.Name "hydra.graphql.syntax.ObjectValue"
_ObjectValue_sequence = Core.Name "sequence"
_ObjectValue_sequence2 = Core.Name "sequence2"
data ObjectValue_Sequence =
  ObjectValue_Sequence {}
  deriving (Eq, Ord, Read, Show)
_ObjectValue_Sequence = Core.Name "hydra.graphql.syntax.ObjectValue_Sequence"
data ObjectField =
  ObjectField {
    objectFieldName :: Name,
    objectFieldValue :: Value}
  deriving (Eq, Ord, Read, Show)
_ObjectField = Core.Name "hydra.graphql.syntax.ObjectField"
_ObjectField_Name = Core.Name "Name"
_ObjectField_Value = Core.Name "Value"
data VariablesDefinition =
  VariablesDefinition {
    variablesDefinitionVariable :: Variable,
    variablesDefinitionType :: Type,
    variablesDefinitionDefaultValue :: (Maybe DefaultValue),
    variablesDefinitionDirectives :: (Maybe Directives)}
  deriving (Eq, Ord, Read, Show)
_VariablesDefinition = Core.Name "hydra.graphql.syntax.VariablesDefinition"
_VariablesDefinition_Variable = Core.Name "Variable"
_VariablesDefinition_Type = Core.Name "Type"
_VariablesDefinition_DefaultValue = Core.Name "DefaultValue"
_VariablesDefinition_Directives = Core.Name "Directives"
newtype Variable =
  Variable {
    unVariable :: Name}
  deriving (Eq, Ord, Read, Show)
_Variable = Core.Name "hydra.graphql.syntax.Variable"
newtype DefaultValue =
  DefaultValue {
    unDefaultValue :: Value}
  deriving (Eq, Ord, Read, Show)
_DefaultValue = Core.Name "hydra.graphql.syntax.DefaultValue"
data Type =
  TypeNamed NamedType |
  TypeList ListType |
  TypeNonNull NonNullType
  deriving (Eq, Ord, Read, Show)
_Type = Core.Name "hydra.graphql.syntax.Type"
_Type_named = Core.Name "named"
_Type_list = Core.Name "list"
_Type_nonNull = Core.Name "nonNull"
newtype NamedType =
  NamedType {
    unNamedType :: Name}
  deriving (Eq, Ord, Read, Show)
_NamedType = Core.Name "hydra.graphql.syntax.NamedType"
newtype ListType =
  ListType {
    unListType :: Type}
  deriving (Eq, Ord, Read, Show)
_ListType = Core.Name "hydra.graphql.syntax.ListType"
data NonNullType =
  NonNullTypeNamed NamedType |
  NonNullTypeList ListType
  deriving (Eq, Ord, Read, Show)
_NonNullType = Core.Name "hydra.graphql.syntax.NonNullType"
_NonNullType_named = Core.Name "named"
_NonNullType_list = Core.Name "list"
newtype Directives =
  Directives {
    unDirectives :: [Directive]}
  deriving (Eq, Ord, Read, Show)
_Directives = Core.Name "hydra.graphql.syntax.Directives"
data Directive =
  Directive {
    directiveName :: Name,
    directiveArguments :: (Maybe Arguments)}
  deriving (Eq, Ord, Read, Show)
_Directive = Core.Name "hydra.graphql.syntax.Directive"
_Directive_Name = Core.Name "Name"
_Directive_Arguments = Core.Name "Arguments"
newtype TypeSystemDocment =
  TypeSystemDocment {
    unTypeSystemDocment :: [TypeSystemDefinition]}
  deriving (Eq, Ord, Read, Show)
_TypeSystemDocment = Core.Name "hydra.graphql.syntax.TypeSystemDocment"
data TypeSystemDefinition =
  TypeSystemDefinitionSchema SchemaDefinition |
  TypeSystemDefinitionType TypeDefinition |
  TypeSystemDefinitionDirective DirectiveDefinition
  deriving (Eq, Ord, Read, Show)
_TypeSystemDefinition = Core.Name "hydra.graphql.syntax.TypeSystemDefinition"
_TypeSystemDefinition_schema = Core.Name "schema"
_TypeSystemDefinition_type = Core.Name "type"
_TypeSystemDefinition_directive = Core.Name "directive"
newtype TypeSystemExtensionDocument =
  TypeSystemExtensionDocument {
    unTypeSystemExtensionDocument :: [TypeSystemDefinitionOrExtension]}
  deriving (Eq, Ord, Read, Show)
_TypeSystemExtensionDocument = Core.Name "hydra.graphql.syntax.TypeSystemExtensionDocument"
data TypeSystemDefinitionOrExtension =
  TypeSystemDefinitionOrExtensionDefinition TypeSystemDefinition |
  TypeSystemDefinitionOrExtensionExtension TypeSystemExtension
  deriving (Eq, Ord, Read, Show)
_TypeSystemDefinitionOrExtension = Core.Name "hydra.graphql.syntax.TypeSystemDefinitionOrExtension"
_TypeSystemDefinitionOrExtension_definition = Core.Name "definition"
_TypeSystemDefinitionOrExtension_extension = Core.Name "extension"
data TypeSystemExtension =
  TypeSystemExtensionSchema SchemaExtension |
  TypeSystemExtensionType TypeExtension
  deriving (Eq, Ord, Read, Show)
_TypeSystemExtension = Core.Name "hydra.graphql.syntax.TypeSystemExtension"
_TypeSystemExtension_schema = Core.Name "schema"
_TypeSystemExtension_type = Core.Name "type"
data SchemaDefinition =
  SchemaDefinition {
    schemaDefinitionDescription :: (Maybe Description),
    schemaDefinitionDirectives :: (Maybe Directives),
    schemaDefinitionRootOperationTypeDefinition :: RootOperationTypeDefinition}
  deriving (Eq, Ord, Read, Show)
_SchemaDefinition = Core.Name "hydra.graphql.syntax.SchemaDefinition"
_SchemaDefinition_Description = Core.Name "Description"
_SchemaDefinition_Directives = Core.Name "Directives"
_SchemaDefinition_RootOperationTypeDefinition = Core.Name "RootOperationTypeDefinition"
data SchemaExtension =
  SchemaExtensionSequence SchemaExtension_Sequence |
  SchemaExtensionSequence2 Directives
  deriving (Eq, Ord, Read, Show)
_SchemaExtension = Core.Name "hydra.graphql.syntax.SchemaExtension"
_SchemaExtension_sequence = Core.Name "sequence"
_SchemaExtension_sequence2 = Core.Name "sequence2"
data SchemaExtension_Sequence =
  SchemaExtension_Sequence {
    schemaExtension_SequenceDirectives :: (Maybe Directives),
    schemaExtension_SequenceRootOperationTypeDefinition :: RootOperationTypeDefinition}
  deriving (Eq, Ord, Read, Show)
_SchemaExtension_Sequence = Core.Name "hydra.graphql.syntax.SchemaExtension_Sequence"
_SchemaExtension_Sequence_Directives = Core.Name "Directives"
_SchemaExtension_Sequence_RootOperationTypeDefinition = Core.Name "RootOperationTypeDefinition"
data RootOperationTypeDefinition =
  RootOperationTypeDefinition {
    rootOperationTypeDefinitionOperationType :: OperationType,
    rootOperationTypeDefinitionNamedType :: NamedType}
  deriving (Eq, Ord, Read, Show)
_RootOperationTypeDefinition = Core.Name "hydra.graphql.syntax.RootOperationTypeDefinition"
_RootOperationTypeDefinition_OperationType = Core.Name "OperationType"
_RootOperationTypeDefinition_NamedType = Core.Name "NamedType"
newtype Description =
  Description {
    unDescription :: StringValue}
  deriving (Eq, Ord, Read, Show)
_Description = Core.Name "hydra.graphql.syntax.Description"
data TypeDefinition =
  TypeDefinitionScalar ScalarTypeDefinition |
  TypeDefinitionObject ObjectTypeDefinition |
  TypeDefinitionInterface InterfaceTypeDefinition |
  TypeDefinitionUnion UnionTypeDefinition |
  TypeDefinitionEnum EnumTypeDefinition |
  TypeDefinitionInputObject InputObjectTypeDefinition
  deriving (Eq, Ord, Read, Show)
_TypeDefinition = Core.Name "hydra.graphql.syntax.TypeDefinition"
_TypeDefinition_scalar = Core.Name "scalar"
_TypeDefinition_object = Core.Name "object"
_TypeDefinition_interface = Core.Name "interface"
_TypeDefinition_union = Core.Name "union"
_TypeDefinition_enum = Core.Name "enum"
_TypeDefinition_inputObject = Core.Name "inputObject"
data TypeExtension =
  TypeExtensionScalar ScalarTypeExtension |
  TypeExtensionObject ObjectTypeExtension |
  TypeExtensionInterface InterfaceTypeExtension |
  TypeExtensionUnion UnionTypeExtension |
  TypeExtensionEnum EnumTypeExtension |
  TypeExtensionInputObject InputObjectTypeExtension
  deriving (Eq, Ord, Read, Show)
_TypeExtension = Core.Name "hydra.graphql.syntax.TypeExtension"
_TypeExtension_scalar = Core.Name "scalar"
_TypeExtension_object = Core.Name "object"
_TypeExtension_interface = Core.Name "interface"
_TypeExtension_union = Core.Name "union"
_TypeExtension_enum = Core.Name "enum"
_TypeExtension_inputObject = Core.Name "inputObject"
data ScalarTypeDefinition =
  ScalarTypeDefinition {
    scalarTypeDefinitionDescription :: (Maybe Description),
    scalarTypeDefinitionName :: Name,
    scalarTypeDefinitionDirectives :: (Maybe Directives)}
  deriving (Eq, Ord, Read, Show)
_ScalarTypeDefinition = Core.Name "hydra.graphql.syntax.ScalarTypeDefinition"
_ScalarTypeDefinition_Description = Core.Name "Description"
_ScalarTypeDefinition_Name = Core.Name "Name"
_ScalarTypeDefinition_Directives = Core.Name "Directives"
data ScalarTypeExtension =
  ScalarTypeExtension {
    scalarTypeExtensionName :: Name,
    scalarTypeExtensionDirectives :: Directives}
  deriving (Eq, Ord, Read, Show)
_ScalarTypeExtension = Core.Name "hydra.graphql.syntax.ScalarTypeExtension"
_ScalarTypeExtension_Name = Core.Name "Name"
_ScalarTypeExtension_Directives = Core.Name "Directives"
data ObjectTypeDefinition =
  ObjectTypeDefinition {
    objectTypeDefinitionDescription :: (Maybe Description),
    objectTypeDefinitionName :: Name,
    objectTypeDefinitionImplementsInterfaces :: (Maybe ImplementsInterfaces),
    objectTypeDefinitionDirectives :: (Maybe Directives),
    objectTypeDefinitionFieldsDefinition :: (Maybe FieldsDefinition)}
  deriving (Eq, Ord, Read, Show)
_ObjectTypeDefinition = Core.Name "hydra.graphql.syntax.ObjectTypeDefinition"
_ObjectTypeDefinition_Description = Core.Name "Description"
_ObjectTypeDefinition_Name = Core.Name "Name"
_ObjectTypeDefinition_ImplementsInterfaces = Core.Name "ImplementsInterfaces"
_ObjectTypeDefinition_Directives = Core.Name "Directives"
_ObjectTypeDefinition_FieldsDefinition = Core.Name "FieldsDefinition"
data ObjectTypeExtension =
  ObjectTypeExtensionSequence ObjectTypeExtension_Sequence |
  ObjectTypeExtensionSequence2 ObjectTypeExtension_Sequence2 |
  ObjectTypeExtensionSequence3 ObjectTypeExtension_Sequence3
  deriving (Eq, Ord, Read, Show)
_ObjectTypeExtension = Core.Name "hydra.graphql.syntax.ObjectTypeExtension"
_ObjectTypeExtension_sequence = Core.Name "sequence"
_ObjectTypeExtension_sequence2 = Core.Name "sequence2"
_ObjectTypeExtension_sequence3 = Core.Name "sequence3"
data ObjectTypeExtension_Sequence =
  ObjectTypeExtension_Sequence {
    objectTypeExtension_SequenceName :: Name,
    objectTypeExtension_SequenceImplementsInterfaces :: (Maybe ImplementsInterfaces),
    objectTypeExtension_SequenceDirectives :: (Maybe Directives),
    objectTypeExtension_SequenceFieldsDefinition :: FieldsDefinition}
  deriving (Eq, Ord, Read, Show)
_ObjectTypeExtension_Sequence = Core.Name "hydra.graphql.syntax.ObjectTypeExtension_Sequence"
_ObjectTypeExtension_Sequence_Name = Core.Name "Name"
_ObjectTypeExtension_Sequence_ImplementsInterfaces = Core.Name "ImplementsInterfaces"
_ObjectTypeExtension_Sequence_Directives = Core.Name "Directives"
_ObjectTypeExtension_Sequence_FieldsDefinition = Core.Name "FieldsDefinition"
data ObjectTypeExtension_Sequence2 =
  ObjectTypeExtension_Sequence2 {
    objectTypeExtension_Sequence2Name :: Name,
    objectTypeExtension_Sequence2ImplementsInterfaces :: (Maybe ImplementsInterfaces),
    objectTypeExtension_Sequence2Directives :: (Maybe Directives)}
  deriving (Eq, Ord, Read, Show)
_ObjectTypeExtension_Sequence2 = Core.Name "hydra.graphql.syntax.ObjectTypeExtension_Sequence2"
_ObjectTypeExtension_Sequence2_Name = Core.Name "Name"
_ObjectTypeExtension_Sequence2_ImplementsInterfaces = Core.Name "ImplementsInterfaces"
_ObjectTypeExtension_Sequence2_Directives = Core.Name "Directives"
data ObjectTypeExtension_Sequence3 =
  ObjectTypeExtension_Sequence3 {
    objectTypeExtension_Sequence3Name :: Name,
    objectTypeExtension_Sequence3ImplementsInterfaces :: ImplementsInterfaces}
  deriving (Eq, Ord, Read, Show)
_ObjectTypeExtension_Sequence3 = Core.Name "hydra.graphql.syntax.ObjectTypeExtension_Sequence3"
_ObjectTypeExtension_Sequence3_Name = Core.Name "Name"
_ObjectTypeExtension_Sequence3_ImplementsInterfaces = Core.Name "ImplementsInterfaces"
data ImplementsInterfaces =
  ImplementsInterfacesSequence ImplementsInterfaces_Sequence |
  ImplementsInterfacesSequence2 ImplementsInterfaces_Sequence2
  deriving (Eq, Ord, Read, Show)
_ImplementsInterfaces = Core.Name "hydra.graphql.syntax.ImplementsInterfaces"
_ImplementsInterfaces_sequence = Core.Name "sequence"
_ImplementsInterfaces_sequence2 = Core.Name "sequence2"
data ImplementsInterfaces_Sequence =
  ImplementsInterfaces_Sequence {
    implementsInterfaces_SequenceImplementsInterfaces :: ImplementsInterfaces,
    implementsInterfaces_SequenceNamedType :: NamedType}
  deriving (Eq, Ord, Read, Show)
_ImplementsInterfaces_Sequence = Core.Name "hydra.graphql.syntax.ImplementsInterfaces_Sequence"
_ImplementsInterfaces_Sequence_ImplementsInterfaces = Core.Name "ImplementsInterfaces"
_ImplementsInterfaces_Sequence_NamedType = Core.Name "NamedType"
data ImplementsInterfaces_Sequence2 =
  ImplementsInterfaces_Sequence2 {
    implementsInterfaces_Sequence2Amp :: (Maybe ()),
    implementsInterfaces_Sequence2NamedType :: NamedType}
  deriving (Eq, Ord, Read, Show)
_ImplementsInterfaces_Sequence2 = Core.Name "hydra.graphql.syntax.ImplementsInterfaces_Sequence2"
_ImplementsInterfaces_Sequence2_Amp = Core.Name "Amp"
_ImplementsInterfaces_Sequence2_NamedType = Core.Name "NamedType"
newtype FieldsDefinition =
  FieldsDefinition {
    unFieldsDefinition :: [FieldDefinition]}
  deriving (Eq, Ord, Read, Show)
_FieldsDefinition = Core.Name "hydra.graphql.syntax.FieldsDefinition"
data FieldDefinition =
  FieldDefinition {
    fieldDefinitionDescription :: (Maybe Description),
    fieldDefinitionName :: Name,
    fieldDefinitionArgumentsDefinition :: (Maybe ArgumentsDefinition),
    fieldDefinitionType :: Type,
    fieldDefinitionDirectives :: (Maybe Directives)}
  deriving (Eq, Ord, Read, Show)
_FieldDefinition = Core.Name "hydra.graphql.syntax.FieldDefinition"
_FieldDefinition_Description = Core.Name "Description"
_FieldDefinition_Name = Core.Name "Name"
_FieldDefinition_ArgumentsDefinition = Core.Name "ArgumentsDefinition"
_FieldDefinition_Type = Core.Name "Type"
_FieldDefinition_Directives = Core.Name "Directives"
newtype ArgumentsDefinition =
  ArgumentsDefinition {
    unArgumentsDefinition :: [InputValueDefinition]}
  deriving (Eq, Ord, Read, Show)
_ArgumentsDefinition = Core.Name "hydra.graphql.syntax.ArgumentsDefinition"
data InputValueDefinition =
  InputValueDefinition {
    inputValueDefinitionDescription :: (Maybe Description),
    inputValueDefinitionName :: Name,
    inputValueDefinitionType :: Type,
    inputValueDefinitionDefaultValue :: (Maybe DefaultValue),
    inputValueDefinitionDirectives :: (Maybe Directives)}
  deriving (Eq, Ord, Read, Show)
_InputValueDefinition = Core.Name "hydra.graphql.syntax.InputValueDefinition"
_InputValueDefinition_Description = Core.Name "Description"
_InputValueDefinition_Name = Core.Name "Name"
_InputValueDefinition_Type = Core.Name "Type"
_InputValueDefinition_DefaultValue = Core.Name "DefaultValue"
_InputValueDefinition_Directives = Core.Name "Directives"
data InterfaceTypeDefinition =
  InterfaceTypeDefinitionSequence InterfaceTypeDefinition_Sequence |
  InterfaceTypeDefinitionSequence2 InterfaceTypeDefinition_Sequence2
  deriving (Eq, Ord, Read, Show)
_InterfaceTypeDefinition = Core.Name "hydra.graphql.syntax.InterfaceTypeDefinition"
_InterfaceTypeDefinition_sequence = Core.Name "sequence"
_InterfaceTypeDefinition_sequence2 = Core.Name "sequence2"
data InterfaceTypeDefinition_Sequence =
  InterfaceTypeDefinition_Sequence {
    interfaceTypeDefinition_SequenceDescription :: (Maybe Description),
    interfaceTypeDefinition_SequenceName :: Name,
    interfaceTypeDefinition_SequenceImplementsInterfaces :: (Maybe ImplementsInterfaces),
    interfaceTypeDefinition_SequenceDirectives :: (Maybe Directives),
    interfaceTypeDefinition_SequenceFieldsDefinition :: FieldsDefinition}
  deriving (Eq, Ord, Read, Show)
_InterfaceTypeDefinition_Sequence = Core.Name "hydra.graphql.syntax.InterfaceTypeDefinition_Sequence"
_InterfaceTypeDefinition_Sequence_Description = Core.Name "Description"
_InterfaceTypeDefinition_Sequence_Name = Core.Name "Name"
_InterfaceTypeDefinition_Sequence_ImplementsInterfaces = Core.Name "ImplementsInterfaces"
_InterfaceTypeDefinition_Sequence_Directives = Core.Name "Directives"
_InterfaceTypeDefinition_Sequence_FieldsDefinition = Core.Name "FieldsDefinition"
data InterfaceTypeDefinition_Sequence2 =
  InterfaceTypeDefinition_Sequence2 {
    interfaceTypeDefinition_Sequence2Description :: (Maybe Description),
    interfaceTypeDefinition_Sequence2Name :: Name,
    interfaceTypeDefinition_Sequence2ImplementsInterfaces :: ImplementsInterfaces,
    interfaceTypeDefinition_Sequence2Directives :: (Maybe Directives)}
  deriving (Eq, Ord, Read, Show)
_InterfaceTypeDefinition_Sequence2 = Core.Name "hydra.graphql.syntax.InterfaceTypeDefinition_Sequence2"
_InterfaceTypeDefinition_Sequence2_Description = Core.Name "Description"
_InterfaceTypeDefinition_Sequence2_Name = Core.Name "Name"
_InterfaceTypeDefinition_Sequence2_ImplementsInterfaces = Core.Name "ImplementsInterfaces"
_InterfaceTypeDefinition_Sequence2_Directives = Core.Name "Directives"
data InterfaceTypeExtension =
  InterfaceTypeExtensionSequence InterfaceTypeExtension_Sequence |
  InterfaceTypeExtensionSequence2 InterfaceTypeExtension_Sequence2 |
  InterfaceTypeExtensionSequence3 InterfaceTypeExtension_Sequence3
  deriving (Eq, Ord, Read, Show)
_InterfaceTypeExtension = Core.Name "hydra.graphql.syntax.InterfaceTypeExtension"
_InterfaceTypeExtension_sequence = Core.Name "sequence"
_InterfaceTypeExtension_sequence2 = Core.Name "sequence2"
_InterfaceTypeExtension_sequence3 = Core.Name "sequence3"
data InterfaceTypeExtension_Sequence =
  InterfaceTypeExtension_Sequence {
    interfaceTypeExtension_SequenceName :: Name,
    interfaceTypeExtension_SequenceImplementsInterfaces :: (Maybe ImplementsInterfaces),
    interfaceTypeExtension_SequenceDirectives :: (Maybe Directives),
    interfaceTypeExtension_SequenceFieldsDefinition :: FieldsDefinition}
  deriving (Eq, Ord, Read, Show)
_InterfaceTypeExtension_Sequence = Core.Name "hydra.graphql.syntax.InterfaceTypeExtension_Sequence"
_InterfaceTypeExtension_Sequence_Name = Core.Name "Name"
_InterfaceTypeExtension_Sequence_ImplementsInterfaces = Core.Name "ImplementsInterfaces"
_InterfaceTypeExtension_Sequence_Directives = Core.Name "Directives"
_InterfaceTypeExtension_Sequence_FieldsDefinition = Core.Name "FieldsDefinition"
data InterfaceTypeExtension_Sequence2 =
  InterfaceTypeExtension_Sequence2 {
    interfaceTypeExtension_Sequence2Name :: Name,
    interfaceTypeExtension_Sequence2ImplementsInterfaces :: (Maybe ImplementsInterfaces),
    interfaceTypeExtension_Sequence2Directives :: Directives}
  deriving (Eq, Ord, Read, Show)
_InterfaceTypeExtension_Sequence2 = Core.Name "hydra.graphql.syntax.InterfaceTypeExtension_Sequence2"
_InterfaceTypeExtension_Sequence2_Name = Core.Name "Name"
_InterfaceTypeExtension_Sequence2_ImplementsInterfaces = Core.Name "ImplementsInterfaces"
_InterfaceTypeExtension_Sequence2_Directives = Core.Name "Directives"
data InterfaceTypeExtension_Sequence3 =
  InterfaceTypeExtension_Sequence3 {
    interfaceTypeExtension_Sequence3Name :: Name,
    interfaceTypeExtension_Sequence3ImplementsInterfaces :: ImplementsInterfaces}
  deriving (Eq, Ord, Read, Show)
_InterfaceTypeExtension_Sequence3 = Core.Name "hydra.graphql.syntax.InterfaceTypeExtension_Sequence3"
_InterfaceTypeExtension_Sequence3_Name = Core.Name "Name"
_InterfaceTypeExtension_Sequence3_ImplementsInterfaces = Core.Name "ImplementsInterfaces"
data UnionTypeDefinition =
  UnionTypeDefinition {
    unionTypeDefinitionDescription :: (Maybe Description),
    unionTypeDefinitionName :: Name,
    unionTypeDefinitionDirectives :: (Maybe Directives),
    unionTypeDefinitionUnionMemberTypes :: (Maybe UnionMemberTypes)}
  deriving (Eq, Ord, Read, Show)
_UnionTypeDefinition = Core.Name "hydra.graphql.syntax.UnionTypeDefinition"
_UnionTypeDefinition_Description = Core.Name "Description"
_UnionTypeDefinition_Name = Core.Name "Name"
_UnionTypeDefinition_Directives = Core.Name "Directives"
_UnionTypeDefinition_UnionMemberTypes = Core.Name "UnionMemberTypes"
data UnionMemberTypes =
  UnionMemberTypesSequence UnionMemberTypes_Sequence |
  UnionMemberTypesSequence2 UnionMemberTypes_Sequence2
  deriving (Eq, Ord, Read, Show)
_UnionMemberTypes = Core.Name "hydra.graphql.syntax.UnionMemberTypes"
_UnionMemberTypes_sequence = Core.Name "sequence"
_UnionMemberTypes_sequence2 = Core.Name "sequence2"
data UnionMemberTypes_Sequence =
  UnionMemberTypes_Sequence {
    unionMemberTypes_SequenceUnionMemberTypes :: UnionMemberTypes,
    unionMemberTypes_SequenceNamedType :: NamedType}
  deriving (Eq, Ord, Read, Show)
_UnionMemberTypes_Sequence = Core.Name "hydra.graphql.syntax.UnionMemberTypes_Sequence"
_UnionMemberTypes_Sequence_UnionMemberTypes = Core.Name "UnionMemberTypes"
_UnionMemberTypes_Sequence_NamedType = Core.Name "NamedType"
data UnionMemberTypes_Sequence2 =
  UnionMemberTypes_Sequence2 {
    unionMemberTypes_Sequence2Or :: (Maybe ()),
    unionMemberTypes_Sequence2NamedType :: NamedType}
  deriving (Eq, Ord, Read, Show)
_UnionMemberTypes_Sequence2 = Core.Name "hydra.graphql.syntax.UnionMemberTypes_Sequence2"
_UnionMemberTypes_Sequence2_Or = Core.Name "Or"
_UnionMemberTypes_Sequence2_NamedType = Core.Name "NamedType"
data UnionTypeExtension =
  UnionTypeExtensionSequence UnionTypeExtension_Sequence |
  UnionTypeExtensionSequence2 UnionTypeExtension_Sequence2
  deriving (Eq, Ord, Read, Show)
_UnionTypeExtension = Core.Name "hydra.graphql.syntax.UnionTypeExtension"
_UnionTypeExtension_sequence = Core.Name "sequence"
_UnionTypeExtension_sequence2 = Core.Name "sequence2"
data UnionTypeExtension_Sequence =
  UnionTypeExtension_Sequence {
    unionTypeExtension_SequenceName :: Name,
    unionTypeExtension_SequenceDirectives :: (Maybe Directives),
    unionTypeExtension_SequenceUnionMemberTypes :: UnionMemberTypes}
  deriving (Eq, Ord, Read, Show)
_UnionTypeExtension_Sequence = Core.Name "hydra.graphql.syntax.UnionTypeExtension_Sequence"
_UnionTypeExtension_Sequence_Name = Core.Name "Name"
_UnionTypeExtension_Sequence_Directives = Core.Name "Directives"
_UnionTypeExtension_Sequence_UnionMemberTypes = Core.Name "UnionMemberTypes"
data UnionTypeExtension_Sequence2 =
  UnionTypeExtension_Sequence2 {
    unionTypeExtension_Sequence2Name :: Name,
    unionTypeExtension_Sequence2Directives :: Directives}
  deriving (Eq, Ord, Read, Show)
_UnionTypeExtension_Sequence2 = Core.Name "hydra.graphql.syntax.UnionTypeExtension_Sequence2"
_UnionTypeExtension_Sequence2_Name = Core.Name "Name"
_UnionTypeExtension_Sequence2_Directives = Core.Name "Directives"
data EnumTypeDefinition =
  EnumTypeDefinition {
    enumTypeDefinitionDescription :: (Maybe Description),
    enumTypeDefinitionName :: Name,
    enumTypeDefinitionDirectives :: (Maybe Directives),
    enumTypeDefinitionEnumValuesDefinition :: (Maybe EnumValuesDefinition)}
  deriving (Eq, Ord, Read, Show)
_EnumTypeDefinition = Core.Name "hydra.graphql.syntax.EnumTypeDefinition"
_EnumTypeDefinition_Description = Core.Name "Description"
_EnumTypeDefinition_Name = Core.Name "Name"
_EnumTypeDefinition_Directives = Core.Name "Directives"
_EnumTypeDefinition_EnumValuesDefinition = Core.Name "EnumValuesDefinition"
newtype EnumValuesDefinition =
  EnumValuesDefinition {
    unEnumValuesDefinition :: [EnumValueDefinition]}
  deriving (Eq, Ord, Read, Show)
_EnumValuesDefinition = Core.Name "hydra.graphql.syntax.EnumValuesDefinition"
data EnumValueDefinition =
  EnumValueDefinition {
    enumValueDefinitionDescription :: (Maybe Description),
    enumValueDefinitionEnumValue :: EnumValue,
    enumValueDefinitionDirectives :: (Maybe Directives)}
  deriving (Eq, Ord, Read, Show)
_EnumValueDefinition = Core.Name "hydra.graphql.syntax.EnumValueDefinition"
_EnumValueDefinition_Description = Core.Name "Description"
_EnumValueDefinition_EnumValue = Core.Name "EnumValue"
_EnumValueDefinition_Directives = Core.Name "Directives"
data EnumTypeExtension =
  EnumTypeExtensionSequence EnumTypeExtension_Sequence |
  EnumTypeExtensionSequence2 EnumTypeExtension_Sequence2
  deriving (Eq, Ord, Read, Show)
_EnumTypeExtension = Core.Name "hydra.graphql.syntax.EnumTypeExtension"
_EnumTypeExtension_sequence = Core.Name "sequence"
_EnumTypeExtension_sequence2 = Core.Name "sequence2"
data EnumTypeExtension_Sequence =
  EnumTypeExtension_Sequence {
    enumTypeExtension_SequenceName :: Name,
    enumTypeExtension_SequenceDirectives :: (Maybe Directives),
    enumTypeExtension_SequenceEnumValuesDefinition :: EnumValuesDefinition}
  deriving (Eq, Ord, Read, Show)
_EnumTypeExtension_Sequence = Core.Name "hydra.graphql.syntax.EnumTypeExtension_Sequence"
_EnumTypeExtension_Sequence_Name = Core.Name "Name"
_EnumTypeExtension_Sequence_Directives = Core.Name "Directives"
_EnumTypeExtension_Sequence_EnumValuesDefinition = Core.Name "EnumValuesDefinition"
data EnumTypeExtension_Sequence2 =
  EnumTypeExtension_Sequence2 {
    enumTypeExtension_Sequence2Name :: Name,
    enumTypeExtension_Sequence2Directives :: Directives}
  deriving (Eq, Ord, Read, Show)
_EnumTypeExtension_Sequence2 = Core.Name "hydra.graphql.syntax.EnumTypeExtension_Sequence2"
_EnumTypeExtension_Sequence2_Name = Core.Name "Name"
_EnumTypeExtension_Sequence2_Directives = Core.Name "Directives"
data InputObjectTypeDefinition =
  InputObjectTypeDefinitionSequence InputObjectTypeDefinition_Sequence |
  InputObjectTypeDefinitionSequence2 InputObjectTypeDefinition_Sequence2
  deriving (Eq, Ord, Read, Show)
_InputObjectTypeDefinition = Core.Name "hydra.graphql.syntax.InputObjectTypeDefinition"
_InputObjectTypeDefinition_sequence = Core.Name "sequence"
_InputObjectTypeDefinition_sequence2 = Core.Name "sequence2"
data InputObjectTypeDefinition_Sequence =
  InputObjectTypeDefinition_Sequence {
    inputObjectTypeDefinition_SequenceDescription :: (Maybe Description),
    inputObjectTypeDefinition_SequenceName :: Name,
    inputObjectTypeDefinition_SequenceDirectives :: (Maybe Directives),
    inputObjectTypeDefinition_SequenceInputFieldsDefinition :: InputFieldsDefinition}
  deriving (Eq, Ord, Read, Show)
_InputObjectTypeDefinition_Sequence = Core.Name "hydra.graphql.syntax.InputObjectTypeDefinition_Sequence"
_InputObjectTypeDefinition_Sequence_Description = Core.Name "Description"
_InputObjectTypeDefinition_Sequence_Name = Core.Name "Name"
_InputObjectTypeDefinition_Sequence_Directives = Core.Name "Directives"
_InputObjectTypeDefinition_Sequence_InputFieldsDefinition = Core.Name "InputFieldsDefinition"
data InputObjectTypeDefinition_Sequence2 =
  InputObjectTypeDefinition_Sequence2 {
    inputObjectTypeDefinition_Sequence2Description :: (Maybe Description),
    inputObjectTypeDefinition_Sequence2Name :: Name,
    inputObjectTypeDefinition_Sequence2Directives :: (Maybe Directives)}
  deriving (Eq, Ord, Read, Show)
_InputObjectTypeDefinition_Sequence2 = Core.Name "hydra.graphql.syntax.InputObjectTypeDefinition_Sequence2"
_InputObjectTypeDefinition_Sequence2_Description = Core.Name "Description"
_InputObjectTypeDefinition_Sequence2_Name = Core.Name "Name"
_InputObjectTypeDefinition_Sequence2_Directives = Core.Name "Directives"
newtype InputFieldsDefinition =
  InputFieldsDefinition {
    unInputFieldsDefinition :: [InputValueDefinition]}
  deriving (Eq, Ord, Read, Show)
_InputFieldsDefinition = Core.Name "hydra.graphql.syntax.InputFieldsDefinition"
data InputObjectTypeExtension =
  InputObjectTypeExtensionSequence InputObjectTypeExtension_Sequence |
  InputObjectTypeExtensionSequence2 InputObjectTypeExtension_Sequence2
  deriving (Eq, Ord, Read, Show)
_InputObjectTypeExtension = Core.Name "hydra.graphql.syntax.InputObjectTypeExtension"
_InputObjectTypeExtension_sequence = Core.Name "sequence"
_InputObjectTypeExtension_sequence2 = Core.Name "sequence2"
data InputObjectTypeExtension_Sequence =
  InputObjectTypeExtension_Sequence {
    inputObjectTypeExtension_SequenceName :: Name,
    inputObjectTypeExtension_SequenceDirectives :: (Maybe Directives),
    inputObjectTypeExtension_SequenceInputFieldsDefinition :: InputFieldsDefinition}
  deriving (Eq, Ord, Read, Show)
_InputObjectTypeExtension_Sequence = Core.Name "hydra.graphql.syntax.InputObjectTypeExtension_Sequence"
_InputObjectTypeExtension_Sequence_Name = Core.Name "Name"
_InputObjectTypeExtension_Sequence_Directives = Core.Name "Directives"
_InputObjectTypeExtension_Sequence_InputFieldsDefinition = Core.Name "InputFieldsDefinition"
data InputObjectTypeExtension_Sequence2 =
  InputObjectTypeExtension_Sequence2 {
    inputObjectTypeExtension_Sequence2Name :: Name,
    inputObjectTypeExtension_Sequence2Directives :: Directives}
  deriving (Eq, Ord, Read, Show)
_InputObjectTypeExtension_Sequence2 = Core.Name "hydra.graphql.syntax.InputObjectTypeExtension_Sequence2"
_InputObjectTypeExtension_Sequence2_Name = Core.Name "Name"
_InputObjectTypeExtension_Sequence2_Directives = Core.Name "Directives"
data DirectiveDefinition =
  DirectiveDefinition {
    directiveDefinitionDescription :: (Maybe Description),
    directiveDefinitionName :: Name,
    directiveDefinitionArgumentsDefinition :: (Maybe ArgumentsDefinition),
    directiveDefinitionRepeatable :: (Maybe ()),
    directiveDefinitionDirectiveLocations :: DirectiveLocations}
  deriving (Eq, Ord, Read, Show)
_DirectiveDefinition = Core.Name "hydra.graphql.syntax.DirectiveDefinition"
_DirectiveDefinition_Description = Core.Name "Description"
_DirectiveDefinition_Name = Core.Name "Name"
_DirectiveDefinition_ArgumentsDefinition = Core.Name "ArgumentsDefinition"
_DirectiveDefinition_Repeatable = Core.Name "Repeatable"
_DirectiveDefinition_DirectiveLocations = Core.Name "DirectiveLocations"
data DirectiveLocations =
  DirectiveLocationsSequence DirectiveLocations_Sequence |
  DirectiveLocationsSequence2 DirectiveLocations_Sequence2
  deriving (Eq, Ord, Read, Show)
_DirectiveLocations = Core.Name "hydra.graphql.syntax.DirectiveLocations"
_DirectiveLocations_sequence = Core.Name "sequence"
_DirectiveLocations_sequence2 = Core.Name "sequence2"
data DirectiveLocations_Sequence =
  DirectiveLocations_Sequence {
    directiveLocations_SequenceDirectiveLocations :: DirectiveLocations,
    directiveLocations_SequenceDirectiveLocation :: DirectiveLocation}
  deriving (Eq, Ord, Read, Show)
_DirectiveLocations_Sequence = Core.Name "hydra.graphql.syntax.DirectiveLocations_Sequence"
_DirectiveLocations_Sequence_DirectiveLocations = Core.Name "DirectiveLocations"
_DirectiveLocations_Sequence_DirectiveLocation = Core.Name "DirectiveLocation"
data DirectiveLocations_Sequence2 =
  DirectiveLocations_Sequence2 {
    directiveLocations_Sequence2Or :: (Maybe ()),
    directiveLocations_Sequence2DirectiveLocation :: DirectiveLocation}
  deriving (Eq, Ord, Read, Show)
_DirectiveLocations_Sequence2 = Core.Name "hydra.graphql.syntax.DirectiveLocations_Sequence2"
_DirectiveLocations_Sequence2_Or = Core.Name "Or"
_DirectiveLocations_Sequence2_DirectiveLocation = Core.Name "DirectiveLocation"
data DirectiveLocation =
  DirectiveLocationExecutable ExecutableDirectiveLocation |
  DirectiveLocationTypeSystem TypeSystemDirectiveLocation
  deriving (Eq, Ord, Read, Show)
_DirectiveLocation = Core.Name "hydra.graphql.syntax.DirectiveLocation"
_DirectiveLocation_executable = Core.Name "executable"
_DirectiveLocation_typeSystem = Core.Name "typeSystem"
data ExecutableDirectiveLocation =
  ExecutableDirectiveLocationQUERY |
  ExecutableDirectiveLocationMUTATION |
  ExecutableDirectiveLocationSUBSCRIPTION |
  ExecutableDirectiveLocationFIELD |
  ExecutableDirectiveLocationFRAGMENT_DEFINITION |
  ExecutableDirectiveLocationFRAGMENT_SPREAD |
  ExecutableDirectiveLocationINLINE_FRAGMENT |
  ExecutableDirectiveLocationVARIABLE_DEFINITION
  deriving (Eq, Ord, Read, Show)
_ExecutableDirectiveLocation = Core.Name "hydra.graphql.syntax.ExecutableDirectiveLocation"
_ExecutableDirectiveLocation_QUERY = Core.Name "QUERY"
_ExecutableDirectiveLocation_MUTATION = Core.Name "MUTATION"
_ExecutableDirectiveLocation_SUBSCRIPTION = Core.Name "SUBSCRIPTION"
_ExecutableDirectiveLocation_FIELD = Core.Name "FIELD"
_ExecutableDirectiveLocation_FRAGMENT_DEFINITION = Core.Name "FRAGMENT_DEFINITION"
_ExecutableDirectiveLocation_FRAGMENT_SPREAD = Core.Name "FRAGMENT_SPREAD"
_ExecutableDirectiveLocation_INLINE_FRAGMENT = Core.Name "INLINE_FRAGMENT"
_ExecutableDirectiveLocation_VARIABLE_DEFINITION = Core.Name "VARIABLE_DEFINITION"
data TypeSystemDirectiveLocation =
  TypeSystemDirectiveLocationSCHEMA |
  TypeSystemDirectiveLocationSCALAR |
  TypeSystemDirectiveLocationOBJECT |
  TypeSystemDirectiveLocationFIELD_DEFINITION |
  TypeSystemDirectiveLocationARGUMENT_DEFINITION |
  TypeSystemDirectiveLocationINTERFACE |
  TypeSystemDirectiveLocationUNION |
  TypeSystemDirectiveLocationENUM |
  TypeSystemDirectiveLocationENUM_VALUE |
  TypeSystemDirectiveLocationINPUT_OBJECT |
  TypeSystemDirectiveLocationINPUT_FIELD_DEFINITION
  deriving (Eq, Ord, Read, Show)
_TypeSystemDirectiveLocation = Core.Name "hydra.graphql.syntax.TypeSystemDirectiveLocation"
_TypeSystemDirectiveLocation_SCHEMA = Core.Name "SCHEMA"
_TypeSystemDirectiveLocation_SCALAR = Core.Name "SCALAR"
_TypeSystemDirectiveLocation_OBJECT = Core.Name "OBJECT"
_TypeSystemDirectiveLocation_FIELD_DEFINITION = Core.Name "FIELD_DEFINITION"
_TypeSystemDirectiveLocation_ARGUMENT_DEFINITION = Core.Name "ARGUMENT_DEFINITION"
_TypeSystemDirectiveLocation_INTERFACE = Core.Name "INTERFACE"
_TypeSystemDirectiveLocation_UNION = Core.Name "UNION"
_TypeSystemDirectiveLocation_ENUM = Core.Name "ENUM"
_TypeSystemDirectiveLocation_ENUM_VALUE = Core.Name "ENUM_VALUE"
_TypeSystemDirectiveLocation_INPUT_OBJECT = Core.Name "INPUT_OBJECT"
_TypeSystemDirectiveLocation_INPUT_FIELD_DEFINITION = Core.Name "INPUT_FIELD_DEFINITION"