Module LangUtils.Lens

type ('a, 'b) lens = {
get : 'a -> 'b;
set : 'b -> 'a -> 'a;
}
type ('a, 'b) prism = {
preview : 'a -> 'b option;
review : 'b -> 'a;
}
val option : ('a option'a) prism
val compose : ('a'b) lens -> ('b'c) lens -> ('a'c) lens
val compose_prism : ('a'b) lens -> ('b'c) prism -> ('a'c) lens
val fst : ('a * 'b'a) lens
val snd : ('a * 'b'b) lens
val hd : ('a list'a) prism
val nth : int -> ('a list'a) prism
val (|--) : ('a'b) lens -> ('b'c) lens -> ('a'c) lens
val (|-~) : ('a'b) lens -> ('b'c) prism -> ('a'c) lens
val get : ('a'b) lens -> 'a -> 'b
val set : ('a'b) lens -> 'b -> 'a -> 'a
val name_of_id : [< Odoc_model.Paths.Identifier.t ] -> string
module Signature : sig ... end
module Module : sig ... end
module Include : sig ... end
module ModuleType : sig ... end
module FunctorParameter : sig ... end
module TypeDecl : sig ... end
module TypeExpr : sig ... end