struct BadState { } interface TraitPowerable { turnOn @0 () -> Fallible(StatePowerable, Error(BadState)); turnOff @1 () -> Fallible(StatePowerable, Error(BadState)); } struct StatePowerable { union { Off @0 :Void; On @1 :Void; } }