twiddle
we can do it all in subtyping, no need for varx or selx