I'm guessing the capabilities correspond to polarized substructural types plus additional structure for who can read/write to a given area of memory (http://www.cs.cmu.edu/~fp/papers/fossacs15.pdf).
i.e.: iso = linear, val = affine, ref = unrestricted, box = readable, trn = readable/writeable, tag = uniqueness?
Capability defaulting seems a little dangerous (not that it's not type safe, but it having such information be implicit seems like a good way to encourage people to forget about it; on the other hand, if the compiler is good enough about warning people it shouldn't be a problem).
I'm not sure subtyping is worthwhile for this language (since it complicates the type system without much of a gain wrt constrained polymorphism).
Capability defaulting seems a little dangerous (not that it's not type safe, but it having such information be implicit seems like a good way to encourage people to forget about it; on the other hand, if the compiler is good enough about warning people it shouldn't be a problem).
I'm not sure subtyping is worthwhile for this language (since it complicates the type system without much of a gain wrt constrained polymorphism).