Splitting off the type definition of parse trees
Summary: By having the type definition in its own module, we can include it seperately in different `.ml` and `.mli` files. When we want to be sure that all cases are covered in a match, for example (think about the formatter or the lowerer), it helps to not use predicates, but to pattern match directly on structure. To this end, we need access to the internals of the type. Since "PositionedSyntax" et al already export their structure, it seems we were already there, but in developing the validation (few diffs up this stack), it turned out to be cumbersome to not have the parametric case.
Reviewed By: kmeht
Differential Revision:
D5121343
fbshipit-source-id:
b06d19638a66b8b1cbd8a2e1817ad6a118e3a84a