-- | Language constraints for Hydra Core

module Hydra.CoreLanguage where

import qualified Hydra.Basics as Basics
import qualified Hydra.Coders as Coders
import qualified Hydra.Lib.Sets as Sets
import Data.Int
import Data.List as L
import Data.Map as M
import Data.Set as S

-- | Language constraints for Java
hydraCoreLanguage :: Coders.Language
hydraCoreLanguage :: Language
hydraCoreLanguage = Coders.Language {
  languageName :: LanguageName
Coders.languageName = (String -> LanguageName
Coders.LanguageName String
"hydra/core"),
  languageConstraints :: LanguageConstraints
Coders.languageConstraints = Coders.LanguageConstraints {
    languageConstraintsEliminationVariants :: Set EliminationVariant
Coders.languageConstraintsEliminationVariants = ([EliminationVariant] -> Set EliminationVariant
forall x. Ord x => [x] -> Set x
Sets.fromList [EliminationVariant]
Basics.eliminationVariants),
    languageConstraintsLiteralVariants :: Set LiteralVariant
Coders.languageConstraintsLiteralVariants = ([LiteralVariant] -> Set LiteralVariant
forall x. Ord x => [x] -> Set x
Sets.fromList [LiteralVariant]
Basics.literalVariants),
    languageConstraintsFloatTypes :: Set FloatType
Coders.languageConstraintsFloatTypes = ([FloatType] -> Set FloatType
forall x. Ord x => [x] -> Set x
Sets.fromList [FloatType]
Basics.floatTypes),
    languageConstraintsFunctionVariants :: Set FunctionVariant
Coders.languageConstraintsFunctionVariants = ([FunctionVariant] -> Set FunctionVariant
forall x. Ord x => [x] -> Set x
Sets.fromList [FunctionVariant]
Basics.functionVariants),
    languageConstraintsIntegerTypes :: Set IntegerType
Coders.languageConstraintsIntegerTypes = ([IntegerType] -> Set IntegerType
forall x. Ord x => [x] -> Set x
Sets.fromList [IntegerType]
Basics.integerTypes),
    languageConstraintsTermVariants :: Set TermVariant
Coders.languageConstraintsTermVariants = ([TermVariant] -> Set TermVariant
forall x. Ord x => [x] -> Set x
Sets.fromList [TermVariant]
Basics.termVariants),
    languageConstraintsTypeVariants :: Set TypeVariant
Coders.languageConstraintsTypeVariants = ([TypeVariant] -> Set TypeVariant
forall x. Ord x => [x] -> Set x
Sets.fromList [TypeVariant]
Basics.typeVariants),
    languageConstraintsTypes :: Type -> Bool
Coders.languageConstraintsTypes = (\Type
_ -> Bool
True)}}