sig   type ('a, 'b) t = { get : 'a -> 'b; set : 'b -> 'a -> 'a; }   val modify : ('a, 'b) GapiLens.t -> ('b -> 'b) -> 'a -> 'a   val compose :     ('a, 'b) GapiLens.t -> ('c, 'a) GapiLens.t -> ('c, 'b) GapiLens.t   val pair :     ('a, 'b) GapiLens.t ->     ('c, 'd) GapiLens.t -> ('a * 'c, 'b * 'd) GapiLens.t   val cond :     ('a -> bool) ->     ('a, 'b) GapiLens.t -> ('a, 'b) GapiLens.t -> ('a, 'b) GapiLens.t   val get_state : ('a, 'b) GapiLens.t -> 'a -> 'b * 'a   val put_state : ('a, 'b) GapiLens.t -> 'b -> 'a -> unit * 'a   val modify_state : ('a, 'b) GapiLens.t -> ('b -> 'b) -> 'a -> unit * 'a   val ignore : ('a, unit) GapiLens.t   val id : ('a, 'a) GapiLens.t   val first : ('a * 'b, 'a) GapiLens.t   val second : ('a * 'b, 'b) GapiLens.t   val head : ('a list, 'a) GapiLens.t   val tail : ('a list, 'a list) GapiLens.t   val for_hash : 'a -> (('a, 'b) Hashtbl.t, 'b option) GapiLens.t   val for_assoc : 'a -> (('a * 'b) list, 'b option) GapiLens.t   val for_array : int -> ('a array, 'a) GapiLens.t   val for_list : int -> ('a list, 'a) GapiLens.t   val option_get : ('a option, 'a) GapiLens.t   val list_map : ('a, 'b) GapiLens.t -> ('a list, 'b list) GapiLens.t   val xmap :     ('a -> 'b) -> ('b -> 'a) -> ('c, 'a) GapiLens.t -> ('c, 'b) GapiLens.t   module Infix :     sig       val ( |. ) : 'a -> ('a, 'b) GapiLens.t -> 'b       val ( ^= ) : ('a, 'b) GapiLens.t -> 'b -> 'a -> 'a       val ( ^%= ) : ('a, 'b) GapiLens.t -> ('b -> 'b) -> 'a -> 'a       val ( |-- ) :         ('a, 'b) GapiLens.t -> ('b, 'c) GapiLens.t -> ('a, 'c) GapiLens.t       val ( --| ) :         ('a, 'b) GapiLens.t -> ('c, 'a) GapiLens.t -> ('c, 'b) GapiLens.t       val ( *** ) :         ('a, 'b) GapiLens.t ->         ('c, 'd) GapiLens.t -> ('a * 'c, 'b * 'd) GapiLens.t       val ( += ) : ('a, int) GapiLens.t -> int -> 'a -> 'a       val ( -= ) : ('a, int) GapiLens.t -> int -> 'a -> 'a     end   module StateInfix :     sig       val ( ^=! ) : ('a, 'b) GapiLens.t -> 'b -> 'a -> unit * 'a       val ( +=! ) : ('a, int) GapiLens.t -> int -> 'a -> unit * 'a       val ( -=! ) : ('a, int) GapiLens.t -> int -> 'a -> unit * 'a       val ( @=! ) : ('a, 'b list) GapiLens.t -> 'b list -> 'a -> unit * 'a     end end