hydra-0.1.0: src/gen-main/haskell/Hydra/Mantle.hs
-- | A set of types which supplement hydra/core with type variants, graphs, and elements
module Hydra.Mantle where
import qualified Hydra.Core as Core
import Data.List
import Data.Map
import Data.Set
-- | An equality judgement: less than, equal to, or greater than
data Comparison =
ComparisonLessThan |
ComparisonEqualTo |
ComparisonGreaterThan
deriving (Eq, Ord, Read, Show)
_Comparison = (Core.Name "hydra/mantle.Comparison")
_Comparison_lessThan = (Core.FieldName "lessThan")
_Comparison_equalTo = (Core.FieldName "equalTo")
_Comparison_greaterThan = (Core.FieldName "greaterThan")
-- | A graph element, having a name, data term (value), and schema term (type)
data Element m =
Element {
elementName :: Core.Name,
elementSchema :: (Core.Term m),
elementData :: (Core.Term m)}
deriving (Eq, Ord, Read, Show)
_Element = (Core.Name "hydra/mantle.Element")
_Element_name = (Core.FieldName "name")
_Element_schema = (Core.FieldName "schema")
_Element_data = (Core.FieldName "data")
-- | The identifier of an elimination constructor
data EliminationVariant =
EliminationVariantElement |
EliminationVariantList |
EliminationVariantNominal |
EliminationVariantOptional |
EliminationVariantRecord |
EliminationVariantUnion
deriving (Eq, Ord, Read, Show)
_EliminationVariant = (Core.Name "hydra/mantle.EliminationVariant")
_EliminationVariant_element = (Core.FieldName "element")
_EliminationVariant_list = (Core.FieldName "list")
_EliminationVariant_nominal = (Core.FieldName "nominal")
_EliminationVariant_optional = (Core.FieldName "optional")
_EliminationVariant_record = (Core.FieldName "record")
_EliminationVariant_union = (Core.FieldName "union")
-- | The identifier of a function constructor
data FunctionVariant =
FunctionVariantCompareTo |
FunctionVariantElimination |
FunctionVariantLambda |
FunctionVariantPrimitive
deriving (Eq, Ord, Read, Show)
_FunctionVariant = (Core.Name "hydra/mantle.FunctionVariant")
_FunctionVariant_compareTo = (Core.FieldName "compareTo")
_FunctionVariant_elimination = (Core.FieldName "elimination")
_FunctionVariant_lambda = (Core.FieldName "lambda")
_FunctionVariant_primitive = (Core.FieldName "primitive")
-- | A graph, or set of named terms, together with its schema graph
data Graph m =
Graph {
-- | All of the elements in the graph
graphElements :: (Map Core.Name (Element m)),
-- | The schema graph to this graph. If omitted, the graph is its own schema graph.
graphSchema :: (Maybe (Graph m))}
deriving (Eq, Ord, Read, Show)
_Graph = (Core.Name "hydra/mantle.Graph")
_Graph_elements = (Core.FieldName "elements")
_Graph_schema = (Core.FieldName "schema")
-- | The identifier of a literal constructor
data LiteralVariant =
LiteralVariantBinary |
LiteralVariantBoolean |
LiteralVariantFloat |
LiteralVariantInteger |
LiteralVariantString
deriving (Eq, Ord, Read, Show)
_LiteralVariant = (Core.Name "hydra/mantle.LiteralVariant")
_LiteralVariant_binary = (Core.FieldName "binary")
_LiteralVariant_boolean = (Core.FieldName "boolean")
_LiteralVariant_float = (Core.FieldName "float")
_LiteralVariant_integer = (Core.FieldName "integer")
_LiteralVariant_string = (Core.FieldName "string")
-- | Numeric precision: arbitrary precision, or precision to a specified number of bits
data Precision =
PrecisionArbitrary |
PrecisionBits Int
deriving (Eq, Ord, Read, Show)
_Precision = (Core.Name "hydra/mantle.Precision")
_Precision_arbitrary = (Core.FieldName "arbitrary")
_Precision_bits = (Core.FieldName "bits")
-- | The identifier of a term expression constructor
data TermVariant =
TermVariantAnnotated |
TermVariantApplication |
TermVariantElement |
TermVariantFunction |
TermVariantLet |
TermVariantList |
TermVariantLiteral |
TermVariantMap |
TermVariantNominal |
TermVariantOptional |
TermVariantProduct |
TermVariantRecord |
TermVariantSet |
TermVariantStream |
TermVariantSum |
TermVariantUnion |
TermVariantVariable
deriving (Eq, Ord, Read, Show)
_TermVariant = (Core.Name "hydra/mantle.TermVariant")
_TermVariant_annotated = (Core.FieldName "annotated")
_TermVariant_application = (Core.FieldName "application")
_TermVariant_element = (Core.FieldName "element")
_TermVariant_function = (Core.FieldName "function")
_TermVariant_let = (Core.FieldName "let")
_TermVariant_list = (Core.FieldName "list")
_TermVariant_literal = (Core.FieldName "literal")
_TermVariant_map = (Core.FieldName "map")
_TermVariant_nominal = (Core.FieldName "nominal")
_TermVariant_optional = (Core.FieldName "optional")
_TermVariant_product = (Core.FieldName "product")
_TermVariant_record = (Core.FieldName "record")
_TermVariant_set = (Core.FieldName "set")
_TermVariant_stream = (Core.FieldName "stream")
_TermVariant_sum = (Core.FieldName "sum")
_TermVariant_union = (Core.FieldName "union")
_TermVariant_variable = (Core.FieldName "variable")
-- | A type expression together with free type variables occurring in the expression
data TypeScheme m =
TypeScheme {
typeSchemeVariables :: [Core.VariableType],
typeSchemeType :: (Core.Type m)}
deriving (Eq, Ord, Read, Show)
_TypeScheme = (Core.Name "hydra/mantle.TypeScheme")
_TypeScheme_variables = (Core.FieldName "variables")
_TypeScheme_type = (Core.FieldName "type")
-- | The identifier of a type constructor
data TypeVariant =
TypeVariantAnnotated |
TypeVariantApplication |
TypeVariantElement |
TypeVariantFunction |
TypeVariantLambda |
TypeVariantList |
TypeVariantLiteral |
TypeVariantMap |
TypeVariantNominal |
TypeVariantOptional |
TypeVariantProduct |
TypeVariantRecord |
TypeVariantSet |
TypeVariantStream |
TypeVariantSum |
TypeVariantUnion |
TypeVariantVariable
deriving (Eq, Ord, Read, Show)
_TypeVariant = (Core.Name "hydra/mantle.TypeVariant")
_TypeVariant_annotated = (Core.FieldName "annotated")
_TypeVariant_application = (Core.FieldName "application")
_TypeVariant_element = (Core.FieldName "element")
_TypeVariant_function = (Core.FieldName "function")
_TypeVariant_lambda = (Core.FieldName "lambda")
_TypeVariant_list = (Core.FieldName "list")
_TypeVariant_literal = (Core.FieldName "literal")
_TypeVariant_map = (Core.FieldName "map")
_TypeVariant_nominal = (Core.FieldName "nominal")
_TypeVariant_optional = (Core.FieldName "optional")
_TypeVariant_product = (Core.FieldName "product")
_TypeVariant_record = (Core.FieldName "record")
_TypeVariant_set = (Core.FieldName "set")
_TypeVariant_stream = (Core.FieldName "stream")
_TypeVariant_sum = (Core.FieldName "sum")
_TypeVariant_union = (Core.FieldName "union")
_TypeVariant_variable = (Core.FieldName "variable")
-- | A type together with an instance of the type
data TypedTerm m =
TypedTerm {
typedTermType :: (Core.Type m),
typedTermTerm :: (Core.Term m)}
deriving (Eq, Ord, Read, Show)
_TypedTerm = (Core.Name "hydra/mantle.TypedTerm")
_TypedTerm_type = (Core.FieldName "type")
_TypedTerm_term = (Core.FieldName "term")