module Hydra.Sources.Tier1.Constants where
import Prelude hiding ((++))
import qualified Data.List as L
import qualified Data.Map as M
import qualified Data.Set as S
import qualified Data.Maybe as Y
import Hydra.Dsl.Base as Base
import qualified Hydra.Dsl.Core as Core
import qualified Hydra.Dsl.Graph as Graph
import qualified Hydra.Dsl.Lib.Equality as Equality
import qualified Hydra.Dsl.Lib.Flows as Flows
import qualified Hydra.Dsl.Lib.Io as Io
import qualified Hydra.Dsl.Lib.Lists as Lists
import qualified Hydra.Dsl.Lib.Literals as Literals
import qualified Hydra.Dsl.Lib.Logic as Logic
import qualified Hydra.Dsl.Lib.Maps as Maps
import qualified Hydra.Dsl.Lib.Math as Math
import qualified Hydra.Dsl.Lib.Optionals as Optionals
import qualified Hydra.Dsl.Lib.Sets as Sets
import Hydra.Dsl.Lib.Strings as Strings
import qualified Hydra.Dsl.Module as Module
import qualified Hydra.Dsl.Terms as Terms
import qualified Hydra.Dsl.Types as Types
import Hydra.Sources.Tier0.All
constantsDefinition :: String -> TTerm a -> TElement a
constantsDefinition :: forall a. String -> TTerm a -> TElement a
constantsDefinition = Module -> String -> TTerm a -> TElement a
forall a. Module -> String -> TTerm a -> TElement a
definitionInModule Module
hydraConstantsModule
hydraConstantsModule :: Module
hydraConstantsModule :: Module
hydraConstantsModule = Namespace
-> [Element] -> [Module] -> [Module] -> Maybe String -> Module
Module (String -> Namespace
Namespace String
"hydra/constants") [Element]
elements [] [Module]
tier0Modules (Maybe String -> Module) -> Maybe String -> Module
forall a b. (a -> b) -> a -> b
$
String -> Maybe String
forall a. a -> Maybe a
Just (String
"A module for tier-0 constants.")
where
elements :: [Element]
elements = [
TElement String -> Element
forall a. TElement a -> Element
el TElement String
ignoredVariableDef,
TElement Name -> Element
forall a. TElement a -> Element
el TElement Name
placeholderNameDef,
TElement Int -> Element
forall a. TElement a -> Element
el TElement Int
maxTraceDepthDef]
ignoredVariableDef :: TElement String
ignoredVariableDef :: TElement String
ignoredVariableDef = String -> TTerm String -> TElement String
forall a. String -> TTerm a -> TElement a
constantsDefinition String
"ignoredVariable" (TTerm String -> TElement String)
-> TTerm String -> TElement String
forall a b. (a -> b) -> a -> b
$
String -> TTerm String
string String
"_"
placeholderNameDef :: TElement Name
placeholderNameDef :: TElement Name
placeholderNameDef = String -> TTerm Name -> TElement Name
forall a. String -> TTerm a -> TElement a
constantsDefinition String
"placeholderName" (TTerm Name -> TElement Name) -> TTerm Name -> TElement Name
forall a b. (a -> b) -> a -> b
$
String -> TTerm Name -> TTerm Name
forall a. String -> TTerm a -> TTerm a
doc String
"A placeholder name for row types as they are being constructed" (TTerm Name -> TTerm Name) -> TTerm Name -> TTerm Name
forall a b. (a -> b) -> a -> b
$
Name -> TTerm String -> TTerm Name
forall a b. Name -> TTerm a -> TTerm b
wrap Name
_Name (TTerm String -> TTerm Name) -> TTerm String -> TTerm Name
forall a b. (a -> b) -> a -> b
$ String -> TTerm String
string String
"Placeholder"
maxTraceDepthDef :: TElement Int
maxTraceDepthDef :: TElement Int
maxTraceDepthDef = String -> TTerm Int -> TElement Int
forall a. String -> TTerm a -> TElement a
constantsDefinition String
"maxTraceDepth" (TTerm Int -> TElement Int) -> TTerm Int -> TElement Int
forall a b. (a -> b) -> a -> b
$ Int -> TTerm Int
int32 Int
50