package GT

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
module Format : sig ... end
type ('a, 'b, 'c) t = {
  1. gcata : 'a;
  2. plugins : 'b;
  3. fix : 'c;
}
val transform_gc : ('a -> 'b -> 'c -> 'd) -> (('e -> 'f -> 'g) -> 'h) -> 'i -> 'j -> 'k
val transform : ('a -> 'b -> 'c -> 'd, 'e, 'f) t -> (('b -> 'c -> 'd) -> 'a) -> 'b -> 'c -> 'd
val lift : 'a -> 'b -> 'c
val id : 'a -> 'b
type comparison =
  1. | LT
  2. | EQ
  3. | GT
val chain_compare : comparison -> (unit -> comparison) -> comparison
val compare_primitive : 'a -> 'b -> comparison
val cmp_to_int : comparison -> int
val poly_tag : 'a -> int
val vari_tag : Obj.t -> int
val compare_poly : 'a -> 'b -> comparison
val compare_vari : 'a -> 'b -> comparison
val string_of_string : string -> string
val string_of_unit : 'a -> string
val string_of_char : char -> string
val string_of_int32 : int32 -> string
val string_of_int64 : int64 -> string
val string_of_nativeint : nativeint -> string
type protobool = bool
type bool = protobool
class virtual ['inh, 'self, 'syn] bool_t : object ... end
class 'extra html_bool_t : 'a -> object ... end
class 'extra show_bool_t : 'a -> object ... end
class 'extra enum_bool_t : 'a -> object ... end
class 'extra fmt_bool_t : 'a -> object ... end
class ['syn, 'extra] foldl_bool_t : 'a -> object ... end
class ['syn, 'extra] foldr_bool_t : 'a -> object ... end
class 'extra eq_bool_t : 'a -> object ... end
class 'extra compare_bool_t : 'a -> object ... end
class ['extra, +'a] gmap_bool_t : 'b -> object ... end
class ['extra, +'a, 'env] eval_bool_t : 'b -> object ... end
class ['extra, +'a, 'env] stateful_bool_t : 'b -> object ... end
val gcata_bool : < t_bool : 'a -> 'b -> 'c.. > -> 'd -> 'e -> 'f
val bool : (['inh, bool, 'syn] bool_t -> 'inh0 -> bool -> 'syn0, < compare : bool -> bool -> comparison ; enum : bool -> int ; eq : bool -> bool -> bool ; eval : 'env -> bool -> bool ; fmt : Format.formatter -> bool -> unit ; foldl : 'a -> bool -> 'a ; foldr : 'a -> bool -> 'a ; gmap : bool -> bool ; html : bool -> HTML.viewer ; show : bool -> string ; stateful : 'env -> bool -> 'env * bool >, (('inh1 -> bool -> 'syn1) -> < t_bool : 'inh2 -> bool -> 'syn2 >) -> 'inh0 -> bool -> 'syn0) t
type protoint = int
type int = protoint
class virtual ['inh, 'self, 'syn] int_t : object ... end
class 'extra html_int_t : 'a -> object ... end
class 'extra show_int_t : 'a -> object ... end
class 'extra enum_int_t : 'a -> object ... end
class 'extra fmt_int_t : 'a -> object ... end
class ['syn, 'extra] foldl_int_t : 'a -> object ... end
class ['syn, 'extra] foldr_int_t : 'a -> object ... end
class 'extra eq_int_t : 'a -> object ... end
class 'extra compare_int_t : 'a -> object ... end
class ['extra, +'a] gmap_int_t : 'b -> object ... end
class ['extra, +'a, 'env] eval_int_t : 'b -> object ... end
class ['extra, +'a, 'env] stateful_int_t : 'b -> object ... end
val gcata_int : < t_int : 'a -> 'b -> 'c.. > -> 'd -> 'e -> 'f
val int : (['inh, int, 'syn] int_t -> 'inh0 -> int -> 'syn0, < compare : int -> int -> comparison ; enum : int -> int ; eq : int -> int -> bool ; eval : 'env -> int -> int ; fmt : Format.formatter -> int -> unit ; foldl : 'a -> int -> 'a ; foldr : 'a -> int -> 'a ; gmap : int -> int ; html : int -> HTML.viewer ; show : int -> string ; stateful : 'env -> int -> 'env * int >, (('inh1 -> int -> 'syn1) -> < t_int : 'inh2 -> int -> 'syn2 >) -> 'inh0 -> int -> 'syn0) t
type protostring = string
type string = protostring
class virtual ['inh, 'self, 'syn] string_t : object ... end
class 'extra html_string_t : 'a -> object ... end
class 'extra show_string_t : 'a -> object ... end
class 'extra enum_string_t : 'a -> object ... end
class 'extra fmt_string_t : 'a -> object ... end
class ['syn, 'extra] foldl_string_t : 'a -> object ... end
class ['syn, 'extra] foldr_string_t : 'a -> object ... end
class 'extra eq_string_t : 'a -> object ... end
class 'extra compare_string_t : 'a -> object ... end
class ['extra, +'a] gmap_string_t : 'b -> object ... end
class ['extra, +'a, 'env] eval_string_t : 'b -> object ... end
class ['extra, +'a, 'env] stateful_string_t : 'b -> object ... end
val gcata_string : < t_string : 'a -> 'b -> 'c.. > -> 'd -> 'e -> 'f
val string : (['inh, string, 'syn] string_t -> 'inh0 -> string -> 'syn0, < compare : string -> string -> comparison ; enum : string -> int ; eq : string -> string -> bool ; eval : 'env -> string -> string ; fmt : Format.formatter -> string -> unit ; foldl : 'a -> string -> 'a ; foldr : 'a -> string -> 'a ; gmap : string -> string ; html : string -> HTML.viewer ; show : string -> string ; stateful : 'env -> string -> 'env * string >, (('inh1 -> string -> 'syn1) -> < t_string : 'inh2 -> string -> 'syn2 >) -> 'inh0 -> string -> 'syn0) t
type protofloat = float
type float = protofloat
class virtual ['inh, 'self, 'syn] float_t : object ... end
class 'extra html_float_t : 'a -> object ... end
class 'extra show_float_t : 'a -> object ... end
class 'extra enum_float_t : 'a -> object ... end
class 'extra fmt_float_t : 'a -> object ... end
class ['syn, 'extra] foldl_float_t : 'a -> object ... end
class ['syn, 'extra] foldr_float_t : 'a -> object ... end
class 'extra eq_float_t : 'a -> object ... end
class 'extra compare_float_t : 'a -> object ... end
class ['extra, +'a] gmap_float_t : 'b -> object ... end
class ['extra, +'a, 'env] eval_float_t : 'b -> object ... end
class ['extra, +'a, 'env] stateful_float_t : 'b -> object ... end
val gcata_float : < t_float : 'a -> 'b -> 'c.. > -> 'd -> 'e -> 'f
val float : (['inh, float, 'syn] float_t -> 'inh0 -> float -> 'syn0, < compare : float -> float -> comparison ; enum : float -> int ; eq : float -> float -> bool ; eval : 'env -> float -> float ; fmt : Format.formatter -> float -> unit ; foldl : 'a -> float -> 'a ; foldr : 'a -> float -> 'a ; gmap : float -> float ; html : float -> HTML.viewer ; show : float -> string ; stateful : 'env -> float -> 'env * float >, (('inh1 -> float -> 'syn1) -> < t_float : 'inh2 -> float -> 'syn2 >) -> 'inh0 -> float -> 'syn0) t
type protochar = char
type char = protochar
class virtual ['inh, 'self, 'syn] char_t : object ... end
class 'extra html_char_t : 'a -> object ... end
class 'extra show_char_t : 'a -> object ... end
class 'extra enum_char_t : 'a -> object ... end
class 'extra fmt_char_t : 'a -> object ... end
class ['syn, 'extra] foldl_char_t : 'a -> object ... end
class ['syn, 'extra] foldr_char_t : 'a -> object ... end
class 'extra eq_char_t : 'a -> object ... end
class 'extra compare_char_t : 'a -> object ... end
class ['extra, +'a] gmap_char_t : 'b -> object ... end
class ['extra, +'a, 'env] eval_char_t : 'b -> object ... end
class ['extra, +'a, 'env] stateful_char_t : 'b -> object ... end
val gcata_char : < t_char : 'a -> 'b -> 'c.. > -> 'd -> 'e -> 'f
val char : (['inh, char, 'syn] char_t -> 'inh0 -> char -> 'syn0, < compare : char -> char -> comparison ; enum : char -> int ; eq : char -> char -> bool ; eval : 'env -> char -> char ; fmt : Format.formatter -> char -> unit ; foldl : 'a -> char -> 'a ; foldr : 'a -> char -> 'a ; gmap : char -> char ; html : char -> HTML.viewer ; show : char -> string ; stateful : 'env -> char -> 'env * char >, (('inh1 -> char -> 'syn1) -> < t_char : 'inh2 -> char -> 'syn2 >) -> 'inh0 -> char -> 'syn0) t
type protounit = unit
type unit = protounit
class virtual ['inh, 'self, 'syn] unit_t : object ... end
class 'extra html_unit_t : 'a -> object ... end
class 'extra show_unit_t : 'a -> object ... end
class 'extra enum_unit_t : 'a -> object ... end
class 'extra fmt_unit_t : 'a -> object ... end
class ['syn, 'extra] foldl_unit_t : 'a -> object ... end
class ['syn, 'extra] foldr_unit_t : 'a -> object ... end
class 'extra eq_unit_t : 'a -> object ... end
class 'extra compare_unit_t : 'a -> object ... end
class ['extra, +'a] gmap_unit_t : 'b -> object ... end
class ['extra, +'a, 'env] eval_unit_t : 'b -> object ... end
class ['extra, +'a, 'env] stateful_unit_t : 'b -> object ... end
val gcata_unit : < t_unit : 'a -> 'b -> 'c.. > -> 'd -> 'e -> 'f
val unit : (['inh, unit, 'syn] unit_t -> 'inh0 -> unit -> 'syn0, < compare : unit -> unit -> comparison ; enum : unit -> int ; eq : unit -> unit -> bool ; eval : 'env -> unit -> unit ; fmt : Format.formatter -> unit -> unit ; foldl : 'a -> unit -> 'a ; foldr : 'a -> unit -> 'a ; gmap : unit -> unit ; html : unit -> HTML.viewer ; show : unit -> string ; stateful : 'env -> unit -> 'env * unit >, (('inh1 -> unit -> 'syn1) -> < t_unit : 'inh2 -> unit -> 'syn2 >) -> 'inh0 -> unit -> 'syn0) t
type protoint32 = int32
type int32 = protoint32
class virtual ['inh, 'self, 'syn] int32_t : object ... end
class 'extra html_int32_t : 'a -> object ... end
class 'extra show_int32_t : 'a -> object ... end
class 'extra enum_int32_t : 'a -> object ... end
class 'extra fmt_int32_t : 'a -> object ... end
class ['syn, 'extra] foldl_int32_t : 'a -> object ... end
class ['syn, 'extra] foldr_int32_t : 'a -> object ... end
class 'extra eq_int32_t : 'a -> object ... end
class 'extra compare_int32_t : 'a -> object ... end
class ['extra, +'a] gmap_int32_t : 'b -> object ... end
class ['extra, +'a, 'env] eval_int32_t : 'b -> object ... end
class ['extra, +'a, 'env] stateful_int32_t : 'b -> object ... end
val gcata_int32 : < t_int32 : 'a -> 'b -> 'c.. > -> 'd -> 'e -> 'f
val int32 : (['inh, int32, 'syn] int32_t -> 'inh0 -> int32 -> 'syn0, < compare : int32 -> int32 -> comparison ; enum : int32 -> int ; eq : int32 -> int32 -> bool ; eval : 'env -> int32 -> int32 ; fmt : Format.formatter -> int32 -> unit ; foldl : 'a -> int32 -> 'a ; foldr : 'a -> int32 -> 'a ; gmap : int32 -> int32 ; html : int32 -> HTML.viewer ; show : int32 -> string ; stateful : 'env -> int32 -> 'env * int32 >, (('inh1 -> int32 -> 'syn1) -> < t_int32 : 'inh2 -> int32 -> 'syn2 >) -> 'inh0 -> int32 -> 'syn0) t
type protoint64 = int64
type int64 = protoint64
class virtual ['inh, 'self, 'syn] int64_t : object ... end
class 'extra html_int64_t : 'a -> object ... end
class 'extra show_int64_t : 'a -> object ... end
class 'extra enum_int64_t : 'a -> object ... end
class 'extra fmt_int64_t : 'a -> object ... end
class ['syn, 'extra] foldl_int64_t : 'a -> object ... end
class ['syn, 'extra] foldr_int64_t : 'a -> object ... end
class 'extra eq_int64_t : 'a -> object ... end
class 'extra compare_int64_t : 'a -> object ... end
class ['extra, +'a] gmap_int64_t : 'b -> object ... end
class ['extra, +'a, 'env] eval_int64_t : 'b -> object ... end
class ['extra, +'a, 'env] stateful_int64_t : 'b -> object ... end
val gcata_int64 : < t_int64 : 'a -> 'b -> 'c.. > -> 'd -> 'e -> 'f
val int64 : (['inh, int64, 'syn] int64_t -> 'inh0 -> int64 -> 'syn0, < compare : int64 -> int64 -> comparison ; enum : int64 -> int ; eq : int64 -> int64 -> bool ; eval : 'env -> int64 -> int64 ; fmt : Format.formatter -> int64 -> unit ; foldl : 'a -> int64 -> 'a ; foldr : 'a -> int64 -> 'a ; gmap : int64 -> int64 ; html : int64 -> HTML.viewer ; show : int64 -> string ; stateful : 'env -> int64 -> 'env * int64 >, (('inh1 -> int64 -> 'syn1) -> < t_int64 : 'inh2 -> int64 -> 'syn2 >) -> 'inh0 -> int64 -> 'syn0) t
type protonativeint = nativeint
type nativeint = protonativeint
class virtual ['inh, 'self, 'syn] nativeint_t : object ... end
class 'extra html_nativeint_t : 'a -> object ... end
class 'extra show_nativeint_t : 'a -> object ... end
class 'extra enum_nativeint_t : 'a -> object ... end
class 'extra fmt_nativeint_t : 'a -> object ... end
class ['syn, 'extra] foldl_nativeint_t : 'a -> object ... end
class ['syn, 'extra] foldr_nativeint_t : 'a -> object ... end
class 'extra eq_nativeint_t : 'a -> object ... end
class 'extra compare_nativeint_t : 'a -> object ... end
class ['extra, +'a] gmap_nativeint_t : 'b -> object ... end
class ['extra, +'a, 'env] eval_nativeint_t : 'b -> object ... end
class ['extra, +'a, 'env] stateful_nativeint_t : 'b -> object ... end
val gcata_nativeint : < t_nativeint : 'a -> 'b -> 'c.. > -> 'd -> 'e -> 'f
val nativeint : (['inh, nativeint, 'syn] nativeint_t -> 'inh0 -> nativeint -> 'syn0, < compare : nativeint -> nativeint -> comparison ; enum : nativeint -> int ; eq : nativeint -> nativeint -> bool ; eval : 'env -> nativeint -> nativeint ; fmt : Format.formatter -> nativeint -> unit ; foldl : 'a -> nativeint -> 'a ; foldr : 'a -> nativeint -> 'a ; gmap : nativeint -> nativeint ; html : nativeint -> HTML.viewer ; show : nativeint -> string ; stateful : 'env -> nativeint -> 'env * nativeint >, (('inh1 -> nativeint -> 'syn1) -> < t_nativeint : 'inh2 -> nativeint -> 'syn2 >) -> 'inh0 -> nativeint -> 'syn0) t
val fix0 : (('a -> 'b) -> 'c -> 'd) -> 'e -> 'f
type 'a plist = 'a list
type 'a list = 'a plist
class virtual ['ia, 'a, 'sa, 'inh, 'self, 'syn] list_t : object ... end
val gcata_list : < c_Cons : 'a -> 'b list -> 'c -> 'd list -> 'e ; c_Nil : 'f -> 'b list -> 'g.. > -> 'h -> 'b list -> 'i
class ['a, 'self] html_list_t : (unit -> 'a0 -> HTML.viewer) -> 'b -> object ... end
class ['a, 'self] show_list_t : (unit -> 'a0 -> string) -> (unit -> 'a1 list -> string) -> object ... end
class ['a, 'self] enum_list_t : 'b -> 'c -> object ... end
class ['a, +'b] fmt_list_t : (Format.formatter -> 'c -> unit) -> 'd -> object ... end
class ['a, 'sa, 'self, +'b] gmap_list_t : (unit -> 'a0 -> 'sa0) -> (unit -> 'a1 list -> 'sa1 list) -> object ... end
class ['a, 'sa, 'self, 'syn, 'env] eval_list_t : ('env0 -> 'a0 -> 'sa0) -> ('env1 -> 'a1 list -> 'sa1 list) -> object ... end
class ['a, 'sa, 'self, 'syn, 'env] stateful_list_t : ('env0 -> 'a0 -> 'b * 'sa0) -> ('c -> 'a1 list -> 'env1 * 'sa1 list) -> object ... end
class ['a, 'syn, 'self] foldl_list_t : ('syn0 -> 'a0 -> 'b) -> ('c -> 'a1 list -> 'syn1) -> object ... end
class ['a, 'syn, 'self] foldr_list_t : ('syn0 -> 'a0 -> 'syn1) -> ('syn1 -> 'a0 list -> 'syn0) -> object ... end
class ['a, 'self] eq_list_t : ('a0 -> 'a1 -> bool) -> ('a2 list -> 'a3 list -> bool) -> object ... end
class ['a, 'self] compare_list_t : ('a0 -> 'a1 -> comparison) -> ('a2 list -> 'a3 list -> comparison) -> object ... end
val list : (['ia, 'a, 'sa, 'inh, 'a0 list, 'syn] list_t -> 'inh0 -> 'a0 list -> 'syn0, < compare : ('a0 -> 'a0 -> comparison) -> 'a0 list -> 'a0 list -> comparison ; enum : ('a0 -> int) -> 'a0 list -> int ; eq : ('a0 -> 'a0 -> bool) -> 'a0 list -> 'a0 list -> bool ; eval : ('env -> 'a0 -> 'b) -> 'env -> 'a0 list -> 'b list ; fmt : (Format.formatter -> 'a0 -> unit) -> Format.formatter -> 'a0 list -> unit ; foldl : ('c -> 'a0 -> 'c) -> 'c -> 'a0 list -> 'c ; foldr : ('c -> 'a0 -> 'c) -> 'c -> 'a0 list -> 'c ; gmap : ('a0 -> 'b) -> 'a0 list -> 'b list ; html : ('a0 -> HTML.viewer) -> 'a0 list -> HTML.viewer ; show : ('a0 -> string) -> 'a0 list -> string ; stateful : ('env -> 'a0 -> 'env * 'b) -> 'env -> 'a0 list -> 'env * 'b list >, (('inh1 -> 'a0 list -> 'syn1) -> ('ia0, 'a0, 'sa0, 'inh0, 'a0 list, 'syn0) list_t) -> 'inh0 -> 'a0 list -> 'syn0) t
module Lazy : sig ... end
type 'a poption = 'a option
type 'a option = 'a poption
class virtual ['ia, 'a, 'sa, 'inh, 'self, 'syn] option_t : object ... end
val gcata_option : < c_None : 'a -> 'b option -> 'c ; c_Some : 'd -> 'b option -> 'e -> 'f.. > -> 'g -> 'b option -> 'h
class ['a, 'self] show_option_t : (unit -> 'a0 -> string) -> 'b -> object ... end
class ['a, 'self] html_option_t : (unit -> 'a0 -> HTML.viewer) -> 'b -> object ... end
class ['a, 'self] fmt_option_t : (Format.formatter -> 'a0 -> unit) -> 'b -> object ... end
class ['a, 'sa, 'self, +'b] gmap_option_t : (unit -> 'a0 -> 'sa0) -> 'c -> object ... end
class ['a, 'sa, 'self, 'syn, 'env] eval_option_t : ('env0 -> 'a0 -> 'sa0) -> 'b -> object ... end
class ['a, 'sa, 'self, +'b, 'env] stateful_option_t : ('env0 -> 'a0 -> 'env1 * 'sa0) -> 'c -> object ... end
class ['a, 'syn, 'self] foldl_option_t : ('syn0 -> 'a0 -> 'syn1) -> 'b -> object ... end
class ['a, 'syn, 'self] foldr_option_t : ('syn0 -> 'a0 -> 'syn0) -> 'b -> object ... end
class ['a, 'self] eq_option_t : ('a0 -> 'a1 -> bool) -> 'b -> object ... end
class ['a, 'self] compare_option_t : ('a0 -> 'a1 -> comparison) -> 'b -> object ... end
val option : (['ia, 'a, 'sa, 'inh, 'd, 'syn] option_t -> 'inh0 -> 'a0 option -> 'syn0, < compare : ('a0 -> 'a0 -> comparison) -> 'a0 option -> 'a0 option -> comparison ; eq : ('a0 -> 'a0 -> bool) -> 'a0 option -> 'a0 option -> bool ; eval : ('env -> 'a0 -> 'b) -> 'env -> 'a0 option -> 'b option ; fmt : (Format.formatter -> 'a0 -> unit) -> Format.formatter -> 'a0 option -> unit ; foldl : ('c -> 'a0 -> 'c) -> 'c -> 'a0 option -> 'c ; foldr : ('c -> 'a0 -> 'c) -> 'c -> 'a0 option -> 'c ; gmap : ('a0 -> 'b) -> 'a0 option -> 'b option ; html : ('a0 -> HTML.viewer) -> 'a0 option -> HTML.viewer ; show : ('a0 -> string) -> 'a0 option -> string ; stateful : ('env -> 'a0 -> 'env * 'b) -> 'env -> 'a0 option -> 'env * 'b option >, (('e -> 'f option -> 'g) -> < c_None : 'h -> 'f option -> 'i ; c_Some : 'h -> 'f option -> 'f -> 'i.. >) -> 'e -> 'f option -> 'g) t
type ('a, 'b) arrow = 'a -> 'b
val gcata_arrow : < c_Arrow : 'a -> 'b -> 'c.. > -> 'd -> 'e -> 'f
class virtual ['ia, 'a, 'sa, 'ib, 'b, 'sb, 'inh, 'self, 'syn] arrow_t : object ... end
class ['a, 'b, 'self] show_arrow_t : 'c -> 'd -> 'e -> object ... end
class ['a, 'b, 'self] enum_arrow_t : 'c -> 'd -> 'e -> object ... end
class ['a, 'b, 'self] fmt_arrow_t : 'c -> 'd -> 'e -> object ... end
class ['a, 'b, 'self] html_arrow_t : 'c -> 'd -> 'e -> object ... end
class ['a, 'sa, 'b, 'sb, 'self] gmap_arrow_t : (unit -> 'a0 -> 'sa0) -> 'c -> 'd -> object ... end
class ['a, 'sa, 'b, 'sb, 'env, 'self] eval_arrow_t : 'c -> 'd -> 'e -> object ... end
class ['a, 'sa, 'b, 'sb, 'self, 'syn, 'env] stateful_arrow_t : 'c -> 'd -> 'e -> object ... end
class ['a, 'b, 'syn, 'self] foldl_arrow_t : 'c -> 'd -> 'e -> object ... end
class ['a, 'b, 'syn, 'self] foldr_arrow_t : 'c -> 'd -> 'e -> object ... end
class ['a, 'b, 'self] eq_arrow_t : 'c -> 'd -> 'e -> object ... end
class ['a, 'b, 'self] compare_arrow_t : 'c -> 'd -> 'e -> object ... end
val arrow : (['ia, 'a, 'sa, 'ib, 'b, 'sb, 'inh, 'e, 'syn] arrow_t -> 'inh0 -> ('a0, 'b0) arrow -> 'syn0, < compare : ('a0 -> 'a0 -> comparison) -> ('b0 -> 'b0 -> comparison) -> ('a0, 'b0) arrow -> ('a0, 'b0) arrow -> comparison ; enum : ('a0 -> int) -> ('b0 -> int) -> ('a0, 'b0) arrow -> int ; eq : ('a0 -> 'a0 -> bool) -> ('b0 -> 'b0 -> bool) -> ('a0, 'b0) arrow -> ('a0, 'b0) arrow -> bool ; eval : ('env -> 'a0 -> 'c) -> ('env -> 'b0 -> 'd) -> 'env -> ('a0, 'b0) arrow -> ('c, 'd) arrow ; fmt : (Format.formatter -> 'a0 -> unit) -> (Format.formatter -> 'b0 -> unit) -> Format.formatter -> ('a0, 'b0) arrow -> unit ; foldl : ('c -> 'a0 -> 'c) -> ('c -> 'b0 -> 'c) -> 'c -> ('a0, 'b0) arrow -> 'c ; foldr : ('c -> 'a0 -> 'c) -> ('c -> 'b0 -> 'c) -> 'c -> ('a0, 'b0) arrow -> 'c ; gmap : ('a0 -> 'c) -> ('b0 -> 'd) -> ('a0, 'b0) arrow -> ('c, 'd) arrow ; html : ('a0 -> HTML.viewer) -> ('b0 -> HTML.viewer) -> ('a0, 'b0) arrow -> HTML.viewer ; show : ('a0 -> string) -> ('b0 -> string) -> ('a0, 'b0) arrow -> string ; stateful : ('env -> 'a0 -> 'env * 'c) -> ('env -> 'b0 -> 'env * 'd) -> 'env -> ('a0, 'b0) arrow -> 'env * ('c, 'd) arrow >, (('f -> 'g -> 'h) -> < c_Arrow : 'i -> 'j -> 'k.. >) -> 'f -> 'g -> 'h) t
type 'a ref2 = 'a ref
type 'a ref = 'a ref2
class virtual ['ia, 'a, 'sa, 'inh, 'e, 'syn] ref_t : object ... end
val gcata_ref : < c_ref : 'a -> 'b -> 'c.. > -> 'd -> 'e ref -> 'f
class ['a, 'self] fmt_ref_t : (Format.formatter -> 'a0 -> unit) -> 'b -> object ... end
class ['a, 'self] html_ref_t : (unit -> 'a0 -> HTML.viewer) -> 'b -> object ... end
class ['a, 'self] show_ref_t : (unit -> 'a0 -> string) -> 'b -> object ... end
val ref : (['ia, 'a, 'sa, 'inh, 'b, 'syn] ref_t -> 'inh0 -> 'a0 ref -> 'syn0, < fmt : (Format.formatter -> 'a0 -> unit) -> Format.formatter -> 'a0 ref -> unit ; html : ('a0 -> HTML.er) -> 'a0 ref -> HTML.er ; show : ('a0 -> string) -> 'a0 ref -> string >, (('c -> 'd ref -> 'e) -> < c_ref : 'f -> 'd -> 'g.. >) -> 'c -> 'd ref -> 'e) t
type 'a parray = 'a array
type 'a array = 'a parray
class virtual ['ia, 'a, 'sa, 'inh, 'self, 'syn] array_t : object ... end
val gcata_array : < do_array : 'a -> 'b -> 'c.. > -> 'd -> 'e -> 'f
class ['a, 'self] show_array_t : (unit -> 'a0 -> string) -> 'b -> object ... end
class ['a, 'self] enum_array_t : 'b -> 'c -> object ... end
class ['a, 'sa, 'self, +'b] gmap_array_t : (unit -> 'a0 -> 'sa0) -> 'c -> object ... end
class ['a, 'self] html_array_t : (unit -> 'a0 -> HTML.viewer) -> 'b -> object ... end
class ['a, 'self] fmt_array_t : (Format.formatter -> 'a0 -> unit) -> 'b -> object ... end
class ['a, 'sa, 'self, +'b, 'env] eval_array_t : ('env0 -> 'a0 -> 'sa0) -> 'c -> object ... end
class ['a, 'sa, 'self, 'syn, +'b] stateful_array_t : ('sa0 array -> 'a0 -> 'sa1 * 'sa0 array) -> 'c -> object ... end
class ['a, 'syn, 'self] foldl_array_t : ('syn0 -> 'a0 -> 'syn0) -> 'b -> object ... end
class ['a, 'syn, 'self] foldr_array_t : ('syn0 -> 'a0 -> 'syn1) -> 'b -> object ... end
class ['a, 'self] eq_array_t : ('a0 -> 'a1 -> bool) -> 'b -> object ... end
class ['a, 'self] compare_array_t : ('a0 -> 'a1 -> comparison) -> 'b -> object ... end
val array : (< do_array : 'a -> 'b -> 'c.. > -> 'a -> 'b -> 'c, < compare : ('d -> 'd -> comparison) -> 'e array -> 'e array -> comparison ; enum : 'f -> unit -> 'g array -> int ; eq : ('h -> 'h -> bool) -> 'i array -> 'i array -> bool ; eval : ('j -> 'k -> 'l) -> 'm -> 'n array -> 'o array ; fmt : (Format.formatter -> 'p -> unit) -> Format.formatter -> 'q array -> unit ; foldl : ('r -> 's -> 'r) -> 't -> 'u array -> 'v ; foldr : ('w -> 'x -> 'w) -> 'y -> 'z array -> 'a1 ; gmap : ('b1 -> 'c1) -> 'd1 array -> 'e1 array ; html : ('f1 -> HTML.viewer) -> 'g1 array -> HTML.viewer ; show : ('h1 -> string) -> 'i1 array -> string ; stateful : ('j1 array -> 'k1 -> 'j1 * 'j1 array) -> 'l1 array -> 'm1 array -> 'l1 array * 'l1 array >, (('n1 -> 'o1 -> 'p1) -> < do_array : 'q1 -> 'r1 -> 's1.. >) -> 'n1 -> 'o1 -> 'p1) t
type bytes = Bytes.t
class virtual ['inh, 'self, 'syn] bytes_t : object ... end
val gcata_bytes : < do_bytes : 'a -> 'b -> 'c.. > -> 'd -> 'e -> 'f
class 'self html_bytes_t : 'a -> object ... end
class 'self show_bytes_t : 'a -> object ... end
class ['self, +'a] gmap_bytes_t : 'b -> object ... end
class 'self fmt_bytes_t : 'a -> object ... end
class ['self, +'a, 'env] eval_bytes_t : 'b -> object ... end
class ['self, +'a, 'env] stateful_bytes_t : 'b -> object ... end
class ['syn, 'self] foldl_bytes_t : 'a -> object ... end
class ['syn, 'self] foldr_bytes_t : 'a -> object ... end
class 'self eq_bytes_t : 'a -> object ... end
class 'self compare_bytes_t : 'a -> object ... end
val bytes : (< do_bytes : 'a -> 'b -> 'c.. > -> 'a -> 'b -> 'c, < compare : bytes -> bytes -> comparison ; eq : bytes -> bytes -> bool ; eval : 'd -> bytes -> bytes ; fmt : Format.formatter -> bytes -> unit ; foldl : 'e -> bytes -> 'f ; foldr : 'g -> bytes -> 'h ; gmap : bytes -> bytes ; html : bytes -> HTML.viewer ; show : bytes -> string ; stateful : 'i -> bytes -> 'j * bytes >, (('k -> 'l -> 'm) -> < do_bytes : 'n -> 'o -> 'p.. >) -> 'k -> 'l -> 'm) t
val show : ('a, < show : 'b.. >, 'c) t -> 'd
val html : ('a, < html : 'b.. >, 'c) t -> 'd
val gmap : ('a, < gmap : 'b.. >, 'c) t -> 'd
val fmt : ('a, < fmt : 'b.. >, 'c) t -> 'd
val foldl : ('a, < foldl : 'b.. >, 'c) t -> 'd
val foldr : ('a, < foldr : 'b.. >, 'c) t -> 'd
val eq : ('a, < eq : 'b.. >, 'c) t -> 'd
val compare : ('a, < compare : 'b.. >, 'c) t -> 'd
val stateful : ('a, < stateful : 'b.. >, 'c) t -> 'd
val eval : ('a, < eval : 'b.. >, 'c) t -> 'd
val enum : ('a, < enum : 'b.. >, 'c) t -> 'd