abstract House = { flags startcat = Utterance ; cat Utterance ; Command ; Question ; Kind ; Action Kind ; Device Kind ; Location ; fun UCommand : Command -> Utterance ; UQuestion : Question -> Utterance ; CAction : (k : Kind) -> Action k -> Device k -> Command ; QAction : (k : Kind) -> Action k -> Device k -> Question ; DKindOne : (k : Kind) -> Device k ; DKindMany : (k : Kind) -> Device k ; DLoc : (k : Kind) -> Device k -> Location -> Device k ; light, fan : Kind ; switchOn, switchOff : (k : Kind) -> Action k ; dim : Action light ; kitchen, livingRoom : Location ; }