hydra-0.1.0: src/main/haskell/Hydra/Impl/Haskell/Sources/CoreLang.hs
{-# LANGUAGE OverloadedStrings #-}
module Hydra.Impl.Haskell.Sources.CoreLang where
import Hydra.All
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 }