typedef thing[T=(count refcount, U data), U=(int x, private)] = ( T^ a, U^ b, );