Strip the type params from the AST and differ them to the builder types

It turns out the types are not that generally useful in the ASTs themselves and actually only used in the builders. This can be seen in the use of existentials, many of which are now removed.