abstract sig Block { stackedOn : lone Block }{ lone this.~@stackedOn this not in this.^@stackedOn } sig Pillar extends Block {} sig Cone extends Block {}{ no this.~@stackedOn } run {} for 5 but exactly 1 Cone