First try, blocked by DMD bug.
Second try, but DMD bug still blocking.
Use an associative array to store dimensions.
Merge branch 'feature/aas'