Added type declarations to the grammar
Fixed bug in the auto-generated canonicalizer where nested flattening sometimes got skipped
Added test cases for assigned properties