accessor_base

Accessors for Base types, for use with the Accessor library
IN THIS PACKAGE
val fst : ( 'i -> 'a -> 'b, 'i -> ('a * 'c) -> 'b * 'c, [< Accessor_base__Import.field ] ) Accessor.General.t

Access the first component of a tuple.

val snd : ( 'i -> 'a -> 'b, 'i -> ('c * 'a) -> 'c * 'b, [< Accessor_base__Import.field ] ) Accessor.General.t

Access the second component of a tuple.

fsti and sndi are like fst and snd, but they also treat the untargetted component as an index. For example, if you use sndi on x, y, y is what you are accessing, and x will be given to you as an index.

val fsti : ( ('i * 'it) -> 'a -> 'b, 'it -> ('a * 'i) -> 'b * 'i, [< Accessor_base__Import.field ] ) Accessor.General.t
val sndi : ( ('i * 'it) -> 'a -> 'b, 'it -> ('i * 'a) -> 'i * 'b, [< Accessor_base__Import.field ] ) Accessor.General.t
val swap : ( 'i -> ('a * 'b) -> 'c * 'd, 'i -> ('b * 'a) -> 'd * 'c, [< Accessor_base__Import.isomorphism ] ) Accessor.General.t

Access a tuple where the components are swapped with each other.

assocl and assocr reassociate nested tuples.

val assocl : ( 'i -> (('a * 'b) * 'c) -> ('d * 'e) * 'f, 'i -> ('a * ('b * 'c)) -> 'd * ('e * 'f), [< Accessor_base__Import.isomorphism ] ) Accessor.General.t
val assocr : ( 'i -> ('a * ('b * 'c)) -> 'd * ('e * 'f), 'i -> (('a * 'b) * 'c) -> ('d * 'e) * 'f, [< Accessor_base__Import.isomorphism ] ) Accessor.General.t
val each : ( 'i -> 'a -> 'b, 'i -> ('a * 'a) -> 'b * 'b, [< Accessor_base__Import.nonempty ] ) Accessor.General.t

Access both components of a tuple.

module Fst : Accessor.Functor.S2 with type ('fst, 'snd) t := 'fst * 'snd
module Snd : Accessor.Functor.S2 with type ('snd, 'fst) t := 'fst * 'snd