Syntax
Summary:
This is the main syntax tree structure.
Some dilemmas here:
* proliferation of generics - repeating the generics and bounds everywhere gets tedious. Is there a better way?
* in Rust implementations, `Value` knows how to construct itself (by implementing `SyntaxValueType`). In OCaml, value builder is provided externally (by `WithValueBuilder` functor). Theoretically, the latter approach is more flexible (since you can have two different builders building same value type, while trait can be implemented only in one way). But replicating this in Rust seems to require adding third generic parameter to Syntax, which just just bothers me.
(Note: this ignores all push blocking failures!)
Reviewed By: losvald
Differential Revision:
D14195753
fbshipit-source-id:
dffa2024541f2185945f8692da40d6007e766ef7