Module Bonsai_private_base.Value

module Name_source : sig ... end
type _ without_position =
  1. | Constant : 'a Core.Lazy.t -> 'a without_position
  2. | Incr : 'a Ui_incr.t -> 'a without_position
  3. | Named : Name_source.t * 'a Core.Type_equal.Id.t -> 'a without_position
  4. | Both : 'a t * 'b t -> ('a * 'b) without_position
  5. | Cutoff : {
    1. t : 'a t;
    2. equal : 'a -> 'a -> bool;
    3. added_by_let_syntax : bool;
    } -> 'a without_position
  6. | Map : {
    1. t : 'a t;
    2. f : 'a -> 'b;
    } -> 'b without_position
  7. | Map2 : {
    1. t1 : 't1 t;
    2. t2 : 't2 t;
    3. f : 't1 -> 't2 -> 'r;
    } -> 'r without_position
  8. | Map3 : {
    1. t1 : 't1 t;
    2. t2 : 't2 t;
    3. t3 : 't3 t;
    4. f : 't1 -> 't2 -> 't3 -> 'r;
    } -> 'r without_position
  9. | Map4 : {
    1. t1 : 't1 t;
    2. t2 : 't2 t;
    3. t3 : 't3 t;
    4. t4 : 't4 t;
    5. f : 't1 -> 't2 -> 't3 -> 't4 -> 'r;
    } -> 'r without_position
  10. | Map5 : {
    1. t1 : 't1 t;
    2. t2 : 't2 t;
    3. t3 : 't3 t;
    4. t4 : 't4 t;
    5. t5 : 't5 t;
    6. f : 't1 -> 't2 -> 't3 -> 't4 -> 't5 -> 'r;
    } -> 'r without_position
  11. | Map6 : {
    1. t1 : 't1 t;
    2. t2 : 't2 t;
    3. t3 : 't3 t;
    4. t4 : 't4 t;
    5. t5 : 't5 t;
    6. t6 : 't6 t;
    7. f : 't1 -> 't2 -> 't3 -> 't4 -> 't5 -> 't6 -> 'r;
    } -> 'r without_position
  12. | Map7 : {
    1. t1 : 't1 t;
    2. t2 : 't2 t;
    3. t3 : 't3 t;
    4. t4 : 't4 t;
    5. t5 : 't5 t;
    6. t6 : 't6 t;
    7. t7 : 't7 t;
    8. f : 't1 -> 't2 -> 't3 -> 't4 -> 't5 -> 't6 -> 't7 -> 'r;
    } -> 'r without_position
  13. | Exception : exn -> 'r without_position
and 'a t = {
  1. value : 'a without_position;
  2. here : Core.Source_code_position.t;
}
include Applicative.S with type 'a t := 'a t
val return : here:lexing_position -> 'a -> 'a t
val map : here:lexing_position -> 'a t -> f:('a -> 'b) -> 'b t
val both : here:lexing_position -> 'a t -> 'b t -> ('a * 'b) t
val (<*>) : here:lexing_position -> ('a -> 'b) t -> 'a t -> 'b t
val (<*) : here:lexing_position -> 'a t -> Base.unit t -> 'a t
val (*>) : here:lexing_position -> Base.unit t -> 'a t -> 'a t
val (>>|) : here:lexing_position -> 'a t -> ('a -> 'b) -> 'b t
val apply : here:lexing_position -> ('a -> 'b) t -> 'a t -> 'b t
val map2 : here:lexing_position -> 'a t -> 'b t -> f:('a -> 'b -> 'c) -> 'c t
val all : here:lexing_position -> 'a t Base.list -> 'a Base.list t
val all_unit : here:lexing_position -> Base.unit t Base.list -> Base.unit t
module Applicative_infix : sig ... end
include Applicative.Let_syntax with type 'a t := 'a t
module Open_on_rhs_intf : sig ... end
module Let_syntax : sig ... end
include Import.Mapn with type 'a t := 'a t
val map3 : here:lexing_position -> 'a1 t -> 'a2 t -> 'a3 t -> f:('a1 -> 'a2 -> 'a3 -> 'b) -> 'b t
val map4 : here:lexing_position -> 'a1 t -> 'a2 t -> 'a3 t -> 'a4 t -> f:('a1 -> 'a2 -> 'a3 -> 'a4 -> 'b) -> 'b t
val map5 : here:lexing_position -> 'a1 t -> 'a2 t -> 'a3 t -> 'a4 t -> 'a5 t -> f:('a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'b) -> 'b t
val map6 : here:lexing_position -> 'a1 t -> 'a2 t -> 'a3 t -> 'a4 t -> 'a5 t -> 'a6 t -> f:('a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'b) -> 'b t
val map7 : here:lexing_position -> 'a1 t -> 'a2 t -> 'a3 t -> 'a4 t -> 'a5 t -> 'a6 t -> 'a7 t -> f:('a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'a7 -> 'b) -> 'b t
val named : here:lexing_position -> Name_source.t -> 'a Core.Type_equal.Id.t -> 'a t
val cutoff : here:lexing_position -> added_by_let_syntax:bool -> 'a t -> equal:('a -> 'a -> bool) -> 'a t
val eval : Environment.t -> 'a t -> 'a Ui_incr.t
val of_incr : here:lexing_position -> 'a Ui_incr.t -> 'a t
val return_lazy : here:lexing_position -> 'a Core.Lazy.t -> 'a t
val return_exn : here:lexing_position -> exn -> 'a t
val transpose_opt : 'a t option -> 'a option t