- struct accessor modifiers
- function call
- index
- function generics
- if generics are specified on call, set type and scan params
- otherwise infer type from non trivial type tree
- if generic is nested, defined wrapper types act as restrictions
- Parse types to ast nodes
- Struct ast nodes
- If statement ast nodes
- Parse struct declerations ahead of ast