summaryrefslogtreecommitdiff
path: root/examples/tutorial/smart/House.gf
blob: e156792f1c443409046393ddd20b64e73b94cb28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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 ;
  

}