# Class virtual Defs.Generator.generator

    class virtual generator : object .. end

    method pack : Type.qname Type.NameMap.t ->
           Type.expr -> Camlp4.PreCast.Ast.module_expr -> Camlp4.PreCast.Ast.expr

    method unpack : Type.qname Type.NameMap.t ->
           Type.expr -> Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.module_expr

    method class_sig : Type.qname Type.NameMap.t -> Type.expr -> Camlp4.PreCast.Ast.module_type

    method rhs : context ->
           Type.subst -> Type.decl -> Camlp4.PreCast.Ast.module_expr

    method expr : context -> Type.expr -> Camlp4.PreCast.Ast.module_expr

    method constr : context ->
           Type.qname * Type.expr list -> Camlp4.PreCast.Ast.module_expr

    method param : context -> Type.param -> Camlp4.PreCast.Ast.module_expr

    method gparam : context ->
           Type.param * Type.expr -> Camlp4.PreCast.Ast.module_expr

    method wrap : context ->
           ?default:Type.name option ->
           Type.expr ->
           Camlp4.PreCast.Ast.str_item list -> Camlp4.PreCast.Ast.module_expr

    method call_expr : context -> Type.expr -> string -> Camlp4.PreCast.Ast.expr

    method call_poly_expr : context -> Type.poly_expr -> string -> Camlp4.PreCast.Ast.expr

    method virtual proxy : unit -> Type.name option * Camlp4.PreCast.Ast.ident list

    method virtual sum : ?eq:Type.expr ->
           context ->
           Type.name ->
           Type.expr list ->
           Type.constraint_ list ->
           Type.summand list -> Camlp4.PreCast.Ast.str_item list

    method gsum : ?eq:Type.expr ->
           context ->
           Type.name ->
           Type.expr list ->
           Type.constraint_ list ->
           Type.gsummand list -> Camlp4.PreCast.Ast.str_item list

    method virtual tuple : context -> Type.expr list -> Camlp4.PreCast.Ast.str_item list

    method virtual variant : context ->
           Type.name ->
           Type.expr list ->
           Type.constraint_ list -> Type.variant -> Camlp4.PreCast.Ast.str_item list

    method virtual record : ?eq:Type.expr ->
           context ->
           Type.name ->
           Type.expr list ->
           Type.constraint_ list -> Type.field list -> Camlp4.PreCast.Ast.str_item list

    method class_ : context -> [ `NYI ] -> Camlp4.PreCast.Ast.str_item list

    method function_ : context ->
           Type.expr * Type.expr -> Camlp4.PreCast.Ast.str_item list

    method label : context ->
           [ `NonOptional | `Optional ] * Type.name * Type.expr * Type.expr ->
           Camlp4.PreCast.Ast.str_item list

    method object_ : context -> [ `NYI ] -> Camlp4.PreCast.Ast.str_item list