1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
abstract Smart = { flags startcat = Command ; cat Command ; Kind ; Action Kind ; Device Kind ; fun CAction : (k : Kind) -> Action k -> Device k -> Command ; DKindOne : (k : Kind) -> Device k ; light, fan : Kind ; switchOn, switchOff : (k : Kind) -> Action k ; dim : Action light ; }