package deriving

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Parameters

module Generator : Pa_deriving_common.Defs.Generator

Signature

module Helpers = Generator.AstHelpers
type context = {
  1. argmap : Pa_deriving_common.Type.qname Pa_deriving_common.Type.NameMap.t;
  2. params : Pa_deriving_common.Type.param list;
}
val substitute : Pa_deriving_common.Type.name Pa_deriving_common.Type.NameMap.t -> Pa_deriving_common.Type.expr -> Pa_deriving_common.Type.expr
val setup_context : Pa_deriving_common.Type.decl -> context
val param_map : context -> string Pa_deriving_common.Type.NameMap.t
val tdec : context -> Pa_deriving_common.Type.name -> Camlp4.PreCast.Ast.ctyp
val sigdec : context -> Pa_deriving_common.Type.name -> Camlp4.PreCast.Ast.ctyp list
val wrapper : context -> Pa_deriving_common.Type.name -> Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.module_expr
val polycase : context -> Pa_deriving_common.Type.tagspec -> Camlp4.PreCast.Ast.match_case
val expr : context -> Pa_deriving_common.Type.expr -> Camlp4.PreCast.Ast.expr
val tup : context -> Pa_deriving_common.Type.expr list -> Camlp4.PreCast.Ast.expr
val case : context -> (string * Pa_deriving_common.Type.expr list) -> Camlp4.PreCast.Ast.match_case
val field : context -> (string * ('a * Pa_deriving_common.Type.expr) * 'b) -> Camlp4.PreCast.Ast.expr
val rhs : context -> Pa_deriving_common.Type.rhs -> Camlp4.PreCast.Ast.expr
val maptype : context -> Pa_deriving_common.Type.name -> Camlp4.PreCast.Ast.ctyp
val signature : context -> Pa_deriving_common.Type.name -> Camlp4.PreCast.Ast.sig_item list
val decl : (Pa_deriving_common.Type.name * Pa_deriving_common.Type.param list * Pa_deriving_common.Type.rhs * Pa_deriving_common.Type.constraint_ list * bool) -> Camlp4.PreCast.Ast.module_binding
val gen_sig : (Pa_deriving_common.Type.name * Pa_deriving_common.Type.param list * Pa_deriving_common.Type.rhs * Pa_deriving_common.Type.constraint_ list * bool) -> Camlp4.PreCast.Ast.sig_item
val generate : (Pa_deriving_common.Type.name * Pa_deriving_common.Type.param list * Pa_deriving_common.Type.rhs * Pa_deriving_common.Type.constraint_ list * bool) list -> Camlp4.PreCast.Ast.str_item
val generate_sigs : (Pa_deriving_common.Type.name * Pa_deriving_common.Type.param list * Pa_deriving_common.Type.rhs * Pa_deriving_common.Type.constraint_ list * bool) list -> Camlp4.PreCast.Ast.sig_item