module Hydra.Ext.Yaml.Language where

import Hydra.All

import qualified Data.Set as S


yamlLanguage :: Language m
yamlLanguage :: forall m. Language m
yamlLanguage = forall m. LanguageName -> LanguageConstraints m -> Language m
Language (String -> LanguageName
LanguageName String
"hydra/ext/yaml") forall a b. (a -> b) -> a -> b
$ LanguageConstraints {
  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
TermVariantLiteral,
    TermVariant
TermVariantList,
    TermVariant
TermVariantMap,
    TermVariant
TermVariantOptional,
    TermVariant
TermVariantRecord],
  languageConstraintsTypeVariants :: Set TypeVariant
languageConstraintsTypeVariants = forall a. Ord a => [a] -> Set a
S.fromList [
    TypeVariant
TypeVariantLiteral, TypeVariant
TypeVariantList, TypeVariant
TypeVariantMap, TypeVariant
TypeVariantOptional, TypeVariant
TypeVariantRecord],
  languageConstraintsTypes :: Type m -> Bool
languageConstraintsTypes = \Type m
typ -> case forall m. Type m -> Type m
stripType Type m
typ of
    TypeOptional (TypeOptional Type m
_) -> Bool
False
    Type m
_ -> Bool
True }