package n_ary

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Defines a tuple type containing 3 values. We refer to each value as a "part". Parts are numbered consecutively beginning at zero.

type ('a0, 'a1, 'a2) t = 'a0 * 'a1 * 'a2
include Ppx_compare_lib.Comparable.S3 with type ('a0, 'a1, 'a2) t := ('a0, 'a1, 'a2) t
val compare : ('a -> 'a -> int) -> ('b -> 'b -> int) -> ('c -> 'c -> int) -> ('a, 'b, 'c) t -> ('a, 'b, 'c) t -> int
include Ppx_compare_lib.Equal.S3 with type ('a0, 'a1, 'a2) t := ('a0, 'a1, 'a2) t
val equal : ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> ('c -> 'c -> bool) -> ('a, 'b, 'c) t -> ('a, 'b, 'c) t -> bool
include Ppx_hash_lib.Hashable.S3 with type ('a0, 'a1, 'a2) t := ('a0, 'a1, 'a2) t
val hash_fold_t : (Base.Hash.state -> 'a -> Base.Hash.state) -> (Base.Hash.state -> 'b -> Base.Hash.state) -> (Base.Hash.state -> 'c -> Base.Hash.state) -> Base.Hash.state -> ('a, 'b, 'c) t -> Base.Hash.state
val sexp_of_t : ('a0 -> Sexplib0.Sexp.t) -> ('a1 -> Sexplib0.Sexp.t) -> ('a2 -> Sexplib0.Sexp.t) -> ('a0, 'a1, 'a2) t -> Sexplib0.Sexp.t
val create : 'a0 -> 'a1 -> 'a2 -> ('a0, 'a1, 'a2) t

Constructor

Accessors

val part0 : ('a, _, _) t -> 'a
val part1 : (_, 'a, _) t -> 'a
val part2 : (_, _, 'a) t -> 'a

Functional update

val set_part0 : (_, 'a1, 'a2) t -> 'a0 -> ('a0, 'a1, 'a2) t
val set_part1 : ('a0, _, 'a2) t -> 'a1 -> ('a0, 'a1, 'a2) t
val set_part2 : ('a0, 'a1, _) t -> 'a2 -> ('a0, 'a1, 'a2) t
val map : ('a0, 'a1, 'a2) t -> f0:('a0 -> 'b0) -> f1:('a1 -> 'b1) -> f2:('a2 -> 'b2) -> ('b0, 'b1, 'b2) t

Map all parts

Map individual parts

val map_part0 : ('b, 'a1, 'a2) t -> f:('b -> 'c) -> ('c, 'a1, 'a2) t
val map_part1 : ('a0, 'b, 'a2) t -> f:('b -> 'c) -> ('a0, 'c, 'a2) t
val map_part2 : ('a0, 'a1, 'b) t -> f:('b -> 'c) -> ('a0, 'a1, 'c) t