Defines the level 1 language for data modelling.
The basic data types.
Containers for 0..n instances of some type.
( String
, Type pos ref
, Properties
)
Re-usable field definition.
The possible type constructs.
Restricted forms that are subsets of the basic data types.
Things that can be declared as named constructs.
List ( String
, Declarable pos Unchecked
}
L1 is a list of unchecked declarables.
Defines the kinds of additional property that can be placed in the model.
Allows additional properties from a variety of possible kinds to be placed in the model.
Dict String Property
A set of additional properties on the model.
Dict String PropSpec
A set of additional property kinds that can or must be defined against the model.
defineProperties : List ( String, PropSpec ) -> List ( String, Property ) -> ( PropSpecs, Properties )
Defines a set of property specifications with possible defaults. The first argument is a list of property specs, and the second is a list of default values.
Values may appear in the second argument that are not in the first, in which case a specification for them will be infered.
Values in the second argument that are also in the first should be of the same kind, but will be overriden by the second argument if not.
emptyProperties : Properties
Creates an empty set of properties.
Indicates that the model has not been checked.
positionOfDeclarable : Declarable pos ref -> pos
Gets the position context from a Declarable.
positionOfType : Type pos ref -> pos
Gets the position context from a Type.
propertiesOfDeclarable : Declarable pos ref -> Properties
Gets the properties from a Declarable.
updatePropertiesOfDeclarable : (Properties -> Properties) -> Declarable pos ref -> Declarable pos ref
Updates the properties from a Declarable.
declarableConsName : Declarable pos ref -> String
Yields the constructor name for a Declarable
.
typeConsName : Type pos ref -> String
Yields the constructor name for a Type
.