Transitive const ================ Problem: type TreeMap = struct { # Should always be const ref const TreeNode defaults # Should be transitive-const ref TreeNode root } Solution 1: - Allow explicitly marking fields as const, to avoid "var" qualifiers from being transitive. type TreeMap = struct { ref const TreeNodes defaults ref TreeNode root } XXX is this even needed? Can't we just use the "var" keyword, like this: type TreeMap = struct { ref TreeNodes defaults var ref var TreeNode root var int num_nodes } (The same could also be applied for threaded, shared, etc...) ... and how about re-considering "ref>" syntax: type TreeMap = struct { ref> TreeNodes defaults var ref> var TreeNode root var int num_nodes } ... or: type TreeMap = struct { >TreeNodes defaults var > var TreeNode root var int num_nodes }