sig
val is_var_wild_pat : Typed_ast.pat -> bool
val is_var_pat : Typed_ast.pat -> bool
val is_ext_var_pat : Typed_ast.pat -> bool
val is_var_tup_pat : Typed_ast.pat -> bool
val is_var_wild_tup_pat : Typed_ast.pat -> bool
val dest_var_pat : Typed_ast.pat -> Name.t option
val dest_ext_var_pat : Typed_ast.pat -> Name.t option
val pat_to_ext_name : Typed_ast.pat -> Typed_ast.name_lskips_annot option
val is_wild_pat : Typed_ast.pat -> bool
val dest_tup_pat : int option -> Typed_ast.pat -> Typed_ast.pat list option
val mk_tup_pat : Typed_ast.pat list -> Typed_ast.pat
val is_tup_pat : int option -> Typed_ast.pat -> bool
val dest_tf_pat : Typed_ast.pat -> bool option
val is_tf_pat : Typed_ast.pat -> bool
val is_t_pat : Typed_ast.pat -> bool
val is_f_pat : Typed_ast.pat -> bool
val mk_tf_pat : bool -> Typed_ast.pat
val mk_paren_pat : Typed_ast.pat -> Typed_ast.pat
val mk_opt_paren_pat : Typed_ast.pat -> Typed_ast.pat
val dest_num_pat : Typed_ast.pat -> int option
val is_num_pat : Typed_ast.pat -> bool
val mk_num_pat : Types.t -> int -> Typed_ast.pat
val dest_num_add_pat : Typed_ast.pat -> (Name.t * int) option
val mk_num_add_pat : Types.t -> Name.t -> int -> Typed_ast.pat
val is_num_add_pat : Typed_ast.pat -> bool
val num_ty_pat_cases :
(Name.t -> 'a) ->
(int -> 'a) ->
(Name.t -> int -> 'a) ->
'a -> (Typed_ast.pat -> 'a) -> Typed_ast.pat -> 'a
val dest_string_pat : Typed_ast.pat -> string option
val is_string_pat : Typed_ast.pat -> bool
val dest_cons_pat : Typed_ast.pat -> (Typed_ast.pat * Typed_ast.pat) option
val is_cons_pat : Typed_ast.pat -> bool
val dest_list_pat :
int option -> Typed_ast.pat -> Typed_ast.pat list option
val is_list_pat : int option -> Typed_ast.pat -> bool
val dest_const_pat :
Typed_ast.pat ->
(Typed_ast.const_descr_ref Types.id * Typed_ast.pat list) option
val is_const_pat : Typed_ast.pat -> bool
val dest_record_pat :
Typed_ast.pat ->
(Typed_ast.const_descr_ref Types.id * Typed_ast.pat) list option
val is_record_pat : Typed_ast.pat -> bool
val is_constructor :
Ast.l ->
Typed_ast.env -> Target.target -> Typed_ast.const_descr_ref -> bool
val is_buildin_constructor :
Ast.l ->
Typed_ast.env -> Target.target -> Typed_ast.const_descr_ref -> bool
val is_not_buildin_constructor :
Ast.l ->
Typed_ast.env -> Target.target -> Typed_ast.const_descr_ref -> bool
val direct_subpats : Typed_ast.pat -> Typed_ast.pat list
val subpats : Typed_ast.pat -> Typed_ast.pat list
val exists_subpat : (Typed_ast.pat -> bool) -> Typed_ast.pat -> bool
val for_all_subpat : (Typed_ast.pat -> bool) -> Typed_ast.pat -> bool
val single_pat_exhaustive : Typed_ast.pat -> bool
val pat_vars_src : Typed_ast.pat -> (Name.lskips_t, unit) Types.annot list
val pat_extract_lskips : Typed_ast.pat -> Ast.lex_skips
val split_var_annot_pat : Typed_ast.pat -> Typed_ast.pat
exception Pat_to_exp_unsupported of Ast.l * string
val pat_to_exp : Typed_ast.env -> Typed_ast.pat -> Typed_ast.exp
end