Files
IBAFLang/IBAF-cbs/Funcons-beta/Values/Composite/Variants/Variants.cbs
2023-11-01 09:29:33 +01:00

33 lines
500 B
Plaintext

### Variants
[
Datatype variants
Funcon variant
Funcon variant-id
Funcon variant-value
]
Meta-variables
T <: values
Datatype
variants(T) ::= variant(_:identifiers, _:T)
/*
A value of type `variants(T)` is a pair formed from an identifier and
a value of type `T`.
*/
Funcon
variant-id(_:variants(T)) : =>identifiers
Rule
variant-id(variant(I:identifiers, _:T)) ~> I
Funcon
variant-value(_:variants(T)) : =>T
Rule
variant-value(variant(_:identifiers, V:T)) ~> V