package containers

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type !'a2 ty =
  1. | Int : int ty
  2. | String : string ty
  3. | List : 'a ty -> 'a list ty
  4. | Pair : ('a0 ty * 'b ty) -> ('a0 * 'b) ty
  5. | Record : ('builder, 'r) record * 'builder -> 'r ty
  6. | Sum : 's sum_cps -> 's ty
  7. | Fix : ('a1 ty -> 'a1 ty) -> 'a1 ty
and (!_, !_) record =
  1. | RecField : string * 'a ty * ('r -> 'a) * ('builder, 'r) record -> ('a -> 'builder, 'r) record
  2. | RecYield : ('r0, 'r0) record
and !'s sum_cps = {
  1. cases : 't. ('s, 't) sum_ex;
}
and (!'s0, !'t0) sum_ex =
  1. | Match : ('matcher, 't, 's) sum * 'matcher -> ('s, 't) sum_ex
and (!_, !_, !_) sum =
  1. | SumCase : string * 'a ty * ('a -> 's) * ('matcher, 't, 's) sum -> (('a -> 't) -> 'matcher, 't, 's) sum
  2. | SumYield : ('s0 -> 't0, 't0, 's0) sum
val record_fix : ('a ty -> ('b, 'a) record * 'b) -> 'a ty
val sum_fix : ('a ty -> 'a sum_cps) -> 'a ty
val identity : 'a ty -> 'a -> 'a
val pp : Format.formatter -> 'a ty -> unit
type my_record = {
  1. a : int;
  2. b : string list;
}
val my_record : my_record ty
type my_sum =
  1. | A of int
  2. | B of string list
val my_sum : my_sum ty
type lambda =
  1. | Var of string
  2. | App of lambda * lambda
  3. | Lambda of string * lambda
val lambda : lambda ty
OCaml

Innovation. Community. Security.