tower: add signalable typeclass
tower: add platform phantom type throughout syntax