# Functor Type.Translate.WithParams

    module WithParams: functor (P : sig
    val params : Type.param listend) -> sig .. end

Parameters:

`P` | : | `sig val params : param list end`

    val params : Type.param list

    val apply_t : 'a -> [> `Constr of 'a list * [> `Param of Type.param ] list ]

    val expr : Camlp4.PreCast.Ast.ctyp -> Type.expr * Type.Translate.vmap

    val tagspec : Camlp4.PreCast.Ast.ctyp -> Type.tagspec * Type.Translate.vmap

    val application : Camlp4.PreCast.Ast.ctyp ->
           (Type.qname * Type.expr list) * Type.Translate.vmap

    val variant : Camlp4.PreCast.Ast.ctyp ->
           ?alias:Type.name -> [ `Eq | `Gt | `Lt ] -> Type.expr * Type.Translate.vmap

    val polyexpr : Camlp4.PreCast.Ast.ctyp -> Type.poly_expr * Type.Translate.vmap

    val field : Camlp4.PreCast.Ast.ctyp -> Type.field * Type.Translate.vmap

    val summand : Camlp4.PreCast.Ast.ctyp -> Type.summand * Type.Translate.vmap

    val repr : Camlp4.PreCast.Ast.ctyp ->
           Type.repr * (Type.name * Type.variant * Type.name option) list

    val toplevel : Camlp4.PreCast.Ast.ctyp -> Type.rhs * Type.Translate.vmap

    val constraints : (Camlp4.PreCast.Ast.ctyp * Camlp4.PreCast.Ast.ctyp) list ->
           Type.constraint_ list * Type.Translate.vmap

    val declify : (Type.name * Type.variant * Type.name option) list ->
           (Type.decl * (Type.name * Type.expr) option) list