The same function for printing arrow_flag appears at many place in the commit. Am I too picky to ask to factorize them? I think that even one extra allocation is better than code duplication:
```
let arrow_flag f l = pp_print_string f (Btype.label_raw l)
```