Instead of making struct members exprs for structs and lvalues for classes, always make them lvalues and demote the lvalue to exprform if accessed as a value. This allows defining aliases that treat the struct as an lvalue, with the implication that the compiler will fail when attempting to access them on a non-lvalue struct.
Don't bounds-check when evaluating iterators; trust iterators to report their length correctly.
Vector constructors with tuples now bind the tuple to the vector type. This enables "vec3f(1,1,1).xz".
Don't omit framepointers in -O -g.