Gadt

- get_names and post_names are now invariant
- suffix in not part of the GATD anymore
```
type ('value,'name) params_type_ = GADT HERE
type ('a,+'suff,'an) params_type = ('a,'an) params_type_
``` 
you can replace by 
```ocaml
let construct_params_list_raw
    (type a) (type b) (type c) nlp (typ : (a,b,c) params_type) params =
```
Same for other non-recursive functions. It's slightly less unreadable. :p
(unfortunately, you can't do (type a b c) for now but it's fixed in 4.02)