- combineDots :: Value -> Value -> EvaluationMonad Value
- dataTypeInfo :: Name -> EvaluationMonad (Value, Int, Array Int ValueSet)
- extensions :: Value -> EvaluationMonad [Value]
- extensionsSet :: Value -> EvaluationMonad ValueSet
- oneFieldExtensions :: Value -> EvaluationMonad [Value]
- productions :: Value -> EvaluationMonad [Value]
- productionsSet :: Value -> EvaluationMonad ValueSet
- splitIntoFields :: Bool -> Name -> ValueSet -> EvaluationMonad [ValueSet]
- compressIntoEnumeratedSet :: ValueSet -> EvaluationMonad (Maybe [Value])
Takes two values and dots then together appropriately.
Takes a datatype or a channel value and then computes all x such that ev.x is a full datatype/event. Each of the returned values is guaranteed to be a VDot.
Returns an x such that ev.x has been extended by exactly one atomic field. This could be inside a subfield or elsewhere.
Takes a datatype or a channel value and computes v.x for all x that complete the value.
Takes a set of dotted values (i.e. a set of VDot _) and returns a list of sets such that the cartesian product is equal to the original set.
This throws an error if the set cannot be decomposed.