+ post_bool exp;
+ None
+ | Ast0.For(a,b,first,exp,c,d,e,f,g) ->
+ (match Ast0.unwrap first with
+ Ast0.ForExp _ ->
+ (match exp with
+ Some exp ->
+ let _ = k s in
+ post_bool exp;
+ None
+ | None -> k s)
+ | Ast0.ForDecl (_,decl) ->
+ (* not super elegant..., reuses a ; (d) *)
+ let newenv = (process_decl env decl)@env in
+ let dummy = Ast0.rewrap first (Ast0.ForExp (None,c)) in
+ (propagate_types newenv).VT0.combiner_rec_statement
+ (Ast0.rewrap s (Ast0.For(a,b,dummy,exp,c,d,e,f,g))))