Evidence.ObsObservations.
This module provides a type to describe observations. Essentially an observation is an arbitrary OCaml type and its decomposition into variables which we represent by a variable product.
Using a variable product rather than a list of exisentials allows to construct observations from its variables. If for some reason you can't do that use Var.Prod.absurd, note that by doing so functions that need to construct observations like Dataset.Var.update will raise Invalid_argument.
val v : ?doc:string -> ('o, 'o) Var.Prod.t -> 'o tv ?doc vars are observations described by the variables product vars. doc is a documentation string.
val empty : unit -> 'o tempty () observes the void.
val doc : 'o t -> stringdoc obs is the documentation string of obs.
val prod : 'o t -> ('o, 'o) Var.Prod.tprod obs is the product of variables describing obs.
val compare : 'o t -> 'o -> 'o -> intcompare obs is Var.order (vars obs), orders observations in the lexicographic order of their variables.
set obs var v o sets variable var to v in o. Raises Invalid_argument if the product is absurd and has no effect if var is not part of prod obs.