Module Prime_knowable
Optional Values with Type-Level Information about Presence
type (+_, _) t
=
|
Unknown : ('a, [> `Unknown ]) t
|
Known : 'a -> ('a, [> `Known ]) t
('a, 'k) t
is a type-enriched analogue of'a option
, where'k
determines whether the value is present or not.
val get : ('a, [ `Known ]) t -> 'a
know k
is the value held by the type-assured knowledge of it.
val get_opt : ('a, [< `Known | `Unknown ]) t -> 'a option
get_opt k
isOption.map know (inquire k)
.
val of_option : 'a option -> ('a, [> `Known | `Unknown ]) t
of_option None
isUnknown
andknowable_of_option (Some x)
isKnown x
.