{-# LANGUAGE OverloadedStrings #-} module Hydra.Impl.Haskell.Sources.CoreLang where import Hydra.Kernel import Hydra.Compute import Hydra.Impl.Haskell.Dsl.Base as Base import qualified Hydra.Impl.Haskell.Dsl.Terms as Terms import qualified Hydra.Impl.Haskell.Dsl.Types as Types import qualified Hydra.Impl.Haskell.Dsl.Standard as Standard import Hydra.Impl.Haskell.Sources.Basics import qualified Data.Set as S coreLanguageNs = Namespace "hydra/coreLang" cl :: String -> Datum a -> Definition a cl = Definition . fromQname coreLanguageNs coreLangModule :: Module Meta coreLangModule = Module coreLanguageNs elements [hydraBasicsModule] Nothing where elements = [ -- el defHydraCoreLanguage ] ----defHydraCoreLanguage :: Definition [Language] --defHydraCoreLanguage :: Definition [LanguageConstraints m] --defHydraCoreLanguage = cl "hydraCoreLanguage" $ -- doc "The trivial language of hydra/core, which admits all types and terms" $ ---- nominal _Language $ ... [ ---- lambda "m" $ record _LanguageConstraints [ -- record _LanguageConstraints [ -- "eliminationVariants">: set S.empty] --ref eliminationVariantsSource --hydraCoreLanguage :: Language m --hydraCoreLanguage = Language (LanguageName "hydra/core") $ LanguageConstraints { -- languageConstraintsEliminationVariants = S.fromList eliminationVariants, -- languageConstraintsLiteralVariants = S.fromList literalVariants, -- languageConstraintsFloatTypes = S.fromList floatTypes, -- languageConstraintsFunctionVariants = S.fromList functionVariants, -- languageConstraintsIntegerTypes = S.fromList integerTypes, -- languageConstraintsTermVariants = S.fromList termVariants, -- languageConstraintsTypeVariants = S.fromList typeVariants, -- languageConstraintsTypes = const True }