a top-level struct declaration produces a structure type entry with each field's type interned. the by-value dependencies are correctly added as dependencies and contribute to the ordering. <<< Point = type { x int, y int } >>> (unit (types (type 0 int primitive) (type 1 uint primitive) (type 2 bool primitive) (type 3 string primitive) (type 4 float primitive) (type 5 byte primitive) (type 6 ascii primitive) (type 7 void primitive) (type 8 Point structure (field x (ref int)) (field y (ref int)) (depends_on 0 0))) (emission_order 0 1 2 3 4 5 6 7 8))