# Module Ast_convenience_402

    module Ast_convenience_402: sig .. end

## Convenience functions to help build and deconstruct AST fragments.

### Compatibility modules

    module Label: sig .. end

    module Constant: sig .. end

Provides abstraction over Asttypes.constant type

### Misc

    val lid : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           string -> Migrate_parsetree.Ast_402.Ast_helper.lid

### Expressions

    val evar : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           string -> Migrate_parsetree.Ast_402.Parsetree.expression

    val let_in : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           ?recursive:bool ->
           Migrate_parsetree.Ast_402.Parsetree.value_binding list ->
           Migrate_parsetree.Ast_402.Parsetree.expression ->
           Migrate_parsetree.Ast_402.Parsetree.expression

    val constr : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           string ->
           Migrate_parsetree.Ast_402.Parsetree.expression list ->
           Migrate_parsetree.Ast_402.Parsetree.expression

    val record : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           ?over:Migrate_parsetree.Ast_402.Parsetree.expression ->
           (string * Migrate_parsetree.Ast_402.Parsetree.expression) list ->
           Migrate_parsetree.Ast_402.Parsetree.expression

    val tuple : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           Migrate_parsetree.Ast_402.Parsetree.expression list ->
           Migrate_parsetree.Ast_402.Parsetree.expression

    val nil : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           unit -> Migrate_parsetree.Ast_402.Parsetree.expression

    val cons : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           Migrate_parsetree.Ast_402.Parsetree.expression ->
           Migrate_parsetree.Ast_402.Parsetree.expression ->
           Migrate_parsetree.Ast_402.Parsetree.expression

    val list : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           Migrate_parsetree.Ast_402.Parsetree.expression list ->
           Migrate_parsetree.Ast_402.Parsetree.expression

    val unit : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           unit -> Migrate_parsetree.Ast_402.Parsetree.expression

    val func : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           (Migrate_parsetree.Ast_402.Parsetree.pattern *
            Migrate_parsetree.Ast_402.Parsetree.expression)
           list -> Migrate_parsetree.Ast_402.Parsetree.expression

    val lam : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           ?label:Label.t ->
           ?default:Migrate_parsetree.Ast_402.Parsetree.expression ->
           Migrate_parsetree.Ast_402.Parsetree.pattern ->
           Migrate_parsetree.Ast_402.Parsetree.expression ->
           Migrate_parsetree.Ast_402.Parsetree.expression

    val app : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           Migrate_parsetree.Ast_402.Parsetree.expression ->
           Migrate_parsetree.Ast_402.Parsetree.expression list ->
           Migrate_parsetree.Ast_402.Parsetree.expression

    val str : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           string -> Migrate_parsetree.Ast_402.Parsetree.expression

    val int : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           int -> Migrate_parsetree.Ast_402.Parsetree.expression

    val char : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           char -> Migrate_parsetree.Ast_402.Parsetree.expression

    val float : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           float -> Migrate_parsetree.Ast_402.Parsetree.expression

    val sequence : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           Migrate_parsetree.Ast_402.Parsetree.expression list ->
           Migrate_parsetree.Ast_402.Parsetree.expression

Return `()` if the list is empty. Tail rec.

### Patterns

    val pvar : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           string -> Migrate_parsetree.Ast_402.Parsetree.pattern

    val pconstr : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           string ->
           Migrate_parsetree.Ast_402.Parsetree.pattern list ->
           Migrate_parsetree.Ast_402.Parsetree.pattern

    val precord : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           ?closed:Migrate_parsetree.Ast_402.Asttypes.closed_flag ->
           (string * Migrate_parsetree.Ast_402.Parsetree.pattern) list ->
           Migrate_parsetree.Ast_402.Parsetree.pattern

    val ptuple : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           Migrate_parsetree.Ast_402.Parsetree.pattern list ->
           Migrate_parsetree.Ast_402.Parsetree.pattern

    val pnil : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           unit -> Migrate_parsetree.Ast_402.Parsetree.pattern

    val pcons : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           Migrate_parsetree.Ast_402.Parsetree.pattern ->
           Migrate_parsetree.Ast_402.Parsetree.pattern ->
           Migrate_parsetree.Ast_402.Parsetree.pattern

    val plist : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           Migrate_parsetree.Ast_402.Parsetree.pattern list ->
           Migrate_parsetree.Ast_402.Parsetree.pattern

    val pstr : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           string -> Migrate_parsetree.Ast_402.Parsetree.pattern

    val pint : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           int -> Migrate_parsetree.Ast_402.Parsetree.pattern

    val pchar : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           char -> Migrate_parsetree.Ast_402.Parsetree.pattern

    val pfloat : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           float -> Migrate_parsetree.Ast_402.Parsetree.pattern

    val punit : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           unit -> Migrate_parsetree.Ast_402.Parsetree.pattern

### Types

    val tconstr : ?loc:Migrate_parsetree.Ast_402.Ast_helper.loc ->
           ?attrs:Migrate_parsetree.Ast_402.Ast_helper.attrs ->
           string ->
           Migrate_parsetree.Ast_402.Parsetree.core_type list ->
           Migrate_parsetree.Ast_402.Parsetree.core_type

### AST deconstruction

    val get_str : Migrate_parsetree.Ast_402.Parsetree.expression -> string option

    val get_str_with_quotation_delimiter : Migrate_parsetree.Ast_402.Parsetree.expression ->
           (string * string option) option

    val get_lid : Migrate_parsetree.Ast_402.Parsetree.expression -> string option

    val has_attr : string -> Migrate_parsetree.Ast_402.Parsetree.attributes -> bool

    val find_attr : string ->
           Migrate_parsetree.Ast_402.Parsetree.attributes ->
           Migrate_parsetree.Ast_402.Parsetree.payload option

    val find_attr_expr : string ->
           Migrate_parsetree.Ast_402.Parsetree.attributes ->
           Migrate_parsetree.Ast_402.Parsetree.expression option