Module Bindoj_runtime.Refl

This module provides types for interconversion between Expr.t and OCaml types.

type 't constructor =
  1. | InlineRecord of {
    1. get : 't -> Expr.t StringMap.t;
    2. mk : Expr.t StringMap.t -> 't option;
    }
  2. | TupleLike of {
    1. get : 't -> Expr.t list;
    2. mk : Expr.t list -> 't option;
    }
  3. | NoParam of {
    1. value : 't;
    }
  4. | ReusedInlineRecord of {
    1. get : 't -> Expr.t StringMap.t;
    2. mk : Expr.t StringMap.t -> 't option;
    }

Represents a variant constructor.

type 't result =
  1. | Record of {
    1. get : 't -> Expr.t StringMap.t;
    2. mk : Expr.t StringMap.t -> 't option;
    }
  2. | Variant of {
    1. constructors : 't constructor StringMap.t;
    2. classify : 't -> string * 't constructor;
    }
  3. | Alias of {
    1. get : 't -> Expr.t;
    2. mk : Expr.t -> 't option;
    }

Represents a data type.

and 'a t = 'a result Stdlib.Lazy.t