module Hydra.Ext.Graphql.Language where

import Hydra.Kernel

import qualified Data.Set as S


graphqlLanguage :: Language m
graphqlLanguage :: forall m. Language m
graphqlLanguage = forall m. LanguageName -> LanguageConstraints m -> Language m
Language (String -> LanguageName
LanguageName String
"hydra/ext/graphql") forall a b. (a -> b) -> a -> b
$ LanguageConstraints {
  -- Note: this language is for schemas and data only; support for queries may be added later
  languageConstraintsEliminationVariants :: Set EliminationVariant
languageConstraintsEliminationVariants = forall a. Set a
S.empty,
  languageConstraintsLiteralVariants :: Set LiteralVariant
languageConstraintsLiteralVariants = forall a. Ord a => [a] -> Set a
S.fromList [
    LiteralVariant
LiteralVariantBoolean,
    LiteralVariant
LiteralVariantFloat,
    LiteralVariant
LiteralVariantInteger,
    LiteralVariant
LiteralVariantString],
  languageConstraintsFloatTypes :: Set FloatType
languageConstraintsFloatTypes = forall a. Ord a => [a] -> Set a
S.fromList [
    FloatType
FloatTypeBigfloat],
  languageConstraintsFunctionVariants :: Set FunctionVariant
languageConstraintsFunctionVariants = forall a. Set a
S.empty,
  languageConstraintsIntegerTypes :: Set IntegerType
languageConstraintsIntegerTypes = forall a. Ord a => [a] -> Set a
S.fromList [
    IntegerType
IntegerTypeBigint],
  languageConstraintsTermVariants :: Set TermVariant
languageConstraintsTermVariants = forall a. Ord a => [a] -> Set a
S.fromList [
    TermVariant
TermVariantList,
    TermVariant
TermVariantLiteral,
    TermVariant
TermVariantOptional,
    TermVariant
TermVariantRecord,
    TermVariant
TermVariantUnion],
  languageConstraintsTypeVariants :: Set TypeVariant
languageConstraintsTypeVariants = forall a. Ord a => [a] -> Set a
S.fromList [
    TypeVariant
TypeVariantApplication,
    TypeVariant
TypeVariantLambda,
    TypeVariant
TypeVariantList,
    TypeVariant
TypeVariantLiteral,
    TypeVariant
TypeVariantNominal,
    TypeVariant
TypeVariantOptional,
    TypeVariant
TypeVariantRecord,
    TypeVariant
TypeVariantUnion,
    TypeVariant
TypeVariantVariable],
  languageConstraintsTypes :: Type m -> Bool
languageConstraintsTypes = forall a b. a -> b -> a
const Bool
True }