Module Lang_values.V


module V: sig .. end
Values are normal forms of terms.


type value = {
   mutable t : Lang_values.T.t;
   value : in_value;
}
type full_env = (string * ((int * Lang_values.T.constraints) list * value))
list

type in_value =
| Unit
| Bool of bool
| Int of int
| String of string
| Float of float
| Source of Source.source
| Request of Request.t
| Encoder of Encoder.format
| List of value list
| Product of value * value
| Ref of value Pervasives.ref (*The first environment contains the parameters already passed to the function. Next parameters will be inserted between that and the second env which is part of the closure.*)
| Fun of (string * string * value option) list * full_env
* full_env * Lang_values.term
(*For a foreign function only the arguments are visible, the closure doesn't capture anything in the environment.*)
| FFI of (string * string * value option) list * full_env
* (full_env -> Lang_values.T.t -> value)
type env = (string * value) list 
val print_value : value -> string
val map_env : ('a -> 'b) -> ('c * ('d * 'a)) list -> ('c * ('d * 'b)) list
val tm_map_types : ((int * Lang_values.T.constraints) list -> Lang_values.T.t -> Lang_values.T.t) ->
(int * Lang_values.T.constraints) list ->
Lang_values.term -> Lang_values.term
val map_types : ((int * Lang_values.T.constraints) list -> Lang_values.T.t -> Lang_values.T.t) ->
(int * Lang_values.T.constraints) list ->
value -> value
Map a function on all types occurring in a value.