hydra-0.1.0: src/main/haskell/Hydra/Ext/Json/Language.hs
module Hydra.Ext.Json.Language where
import Hydra.All
import qualified Data.Set as S
jsonLanguage :: Language m
jsonLanguage = Language (LanguageName "hydra/ext/json") $ LanguageConstraints {
languageConstraintsEliminationVariants = S.empty,
languageConstraintsLiteralVariants = S.fromList [
LiteralVariantBoolean, LiteralVariantFloat, LiteralVariantInteger, LiteralVariantString],
languageConstraintsFloatTypes = S.fromList [FloatTypeBigfloat],
languageConstraintsFunctionVariants = S.empty,
languageConstraintsIntegerTypes = S.fromList [IntegerTypeBigint],
languageConstraintsTermVariants = S.fromList [
TermVariantList,
TermVariantLiteral,
TermVariantMap,
TermVariantOptional,
TermVariantRecord],
languageConstraintsTypeVariants = S.fromList [
TypeVariantList,
TypeVariantLiteral,
TypeVariantMap,
TypeVariantOptional,
TypeVariantRecord],
languageConstraintsTypes = \typ -> case stripType typ of
TypeOptional (TypeOptional _) -> False
_ -> True }