accessor

A library that makes it nicer to work with nested functional data structures
IN THIS PACKAGE
Module Accessor . Nonempty
type ('a, +'x, 'y) t

An (a, x, y) t is an applicative for defining nonempty accessors. See the documentation of Accessor.nonempty for more information.

include Applicative_without_return.S3_without_let_syntax with type ('a, 'x, 'y) t := ( 'a, 'x, 'y ) t
val apply : ( 'a -> 'b, 'd, 'e ) t -> ( 'a, 'd, 'e ) t -> ( 'b, 'd, 'e ) t
val map : ( 'a, 'd, 'e ) t -> f:( 'a -> 'b ) -> ( 'b, 'd, 'e ) t
val map2 : ( 'a, 'd, 'e ) t -> ( 'b, 'd, 'e ) t -> f:( 'a -> 'b -> 'c ) -> ( 'c, 'd, 'e ) t
val map3 : ( 'a, 'd, 'e ) t -> ( 'b, 'd, 'e ) t -> ( 'c, 'd, 'e ) t -> f:( 'a -> 'b -> 'c -> 'f ) -> ( 'f, 'd, 'e ) t
val both : ( 'a, 'd, 'e ) t -> ( 'b, 'd, 'e ) t -> ( 'a * 'b, 'd, 'e ) t
module Applicative_infix : sig ... end
include module type of Applicative_infix
val (<*>) : ( 'a -> 'b, 'd, 'e ) t -> ( 'a, 'd, 'e ) t -> ( 'b, 'd, 'e ) t
val (>>|) : ( 'a, 'd, 'e ) t -> ( 'a -> 'b ) -> ( 'b, 'd, 'e ) t
module Accessed : Base.Monad.S_indexed with type ('a, 'bt, 'b) t := ( 'bt, 'a, 'b ) t

The same as S except the monad type has three arguments. The second and third are composed across all computation.

val access : 'a -> ( 'b, 'a, 'b ) t

access a "accesses" a and returns the value you are expected replace it with.

module Of_applicative_without_return (A : sig ... end) : sig ... end
module Of_applicative_without_return2 (A : sig ... end) : sig ... end
module Of_applicative_without_return3 (A : sig ... end) : sig ... end
val access_nonempty : ( Base.unit -> 'a -> 'b, Base.unit -> 'at -> 'bt, [> Subtyping.nonempty ] ) General.t -> 'at -> ( 'bt, 'a, 'b ) t

Access everything that the given accessor accesses.

module Let_syntax : sig ... end
module Accessor : sig ... end
module Make_access (T : sig ... end) : sig ... end
module Make_access3 (T : sig ... end) : sig ... end
module Make_access4 (T : sig ... end) : sig ... end