Syncom.Depend
Dependency annotations to parameters to dependent type functions.
In dependent function types Πx:A.B
, either:
B
depends on x
B
may or may not depend on x
B
does not depend on x
(which we usually denote as A → B
)This data type was first introduced in the Twelf system.
type t = private
| Yes
The dependent type depends on the parameter.
In the case of dependent function types, this means that it cannot be an arrow.
*)| Maybe
The dependent type may or may not depend on the parameter, we just don't know at this point.
In the case of dependent function types, this means that it can be either an arrow or a Pi-type.
*)| No
The dependent type does not depend on the parameter.
In the case of dependent function types, this means that it is actually an arrow.
*)The type of annotation for parameters to dependent kinds or types.
In dependent function types Πx:A.B
, the depend annotation refers to the relation between x
and B
.
val yes : t
yes
is Yes
.
val maybe : t
maybe
is Maybe
.
val no : t
no
is No
.
include Support.Eq.EQ with type t := t
equal a b
is true
if and only if a
and b
are equal. This should satisfy the following properties:
equal a a = true
equal a b
is equivalent to equal b a
equal a b = true
and equal b c = true
, then equal a c = true