ppx_nanocaml

Framework for writing nanopass-style compilers
IN THIS PACKAGE
val fold_lid : Ast.Longident.t
val map_lid : Ast.Longident.t
val fold_exp : loc:Location.t -> Migrate_parsetree__Ast_405.Parsetree.expression -> Migrate_parsetree__Ast_405.Parsetree.expression -> Migrate_parsetree__Ast_405.Parsetree.pattern -> Migrate_parsetree__Ast_405.Parsetree.pattern -> Migrate_parsetree__Ast_405.Parsetree.expression -> Migrate_parsetree__Ast_405.Parsetree.expression

generates expression of the form fold l z0 (fun x z -> e). *

val map_exp : loc:Location.t -> Migrate_parsetree__Ast_405.Parsetree.expression -> Migrate_parsetree__Ast_405.Parsetree.pattern -> Migrate_parsetree__Ast_405.Parsetree.expression -> Migrate_parsetree__Ast_405.Parsetree.expression

generates expression of the form map l (fun p -> e). *

val zipper_exp : next_id:int Batteries.ref -> loc:Location.t -> string Pass.loc -> 'a list -> Migrate_parsetree__Ast_405.Parsetree.expression -> Migrate_parsetree__Ast_405.Parsetree.expression

generates a function to zip n lists