summaryrefslogtreecommitdiff
path: root/gf-book/examples/chapter6/Classes.gf
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2011-01-11 15:46:43 +0000
committeraarne <aarne@chalmers.se>2011-01-11 15:46:43 +0000
commite7439d65b0e153434d3acc07df6e2a0972ee79ca (patch)
tree36716eec18256eeb600b4a552d9cc80f8ad7f16f /gf-book/examples/chapter6/Classes.gf
parent276327f7f264e770478a6d8c6e683266505b0a55 (diff)
gf-book web page index and toc
Diffstat (limited to 'gf-book/examples/chapter6/Classes.gf')
-rw-r--r--gf-book/examples/chapter6/Classes.gf28
1 files changed, 28 insertions, 0 deletions
diff --git a/gf-book/examples/chapter6/Classes.gf b/gf-book/examples/chapter6/Classes.gf
new file mode 100644
index 000000000..ac7430d25
--- /dev/null
+++ b/gf-book/examples/chapter6/Classes.gf
@@ -0,0 +1,28 @@
+abstract Classes = {
+
+flags
+ startcat = Command ;
+
+cat
+ Command ;
+ Kind ;
+ Class ;
+ Instance Class Kind ;
+ Action Class ;
+ Device Kind ;
+
+fun
+ Act : (c : Class) -> (k : Kind) -> Instance c k -> Action c -> Device k -> Command ;
+ The : (k : Kind) -> Device k ;
+
+ Light, Fan : Kind ;
+ Switchable, Dimmable : Class ;
+
+ SwitchOn, SwitchOff : Action Switchable ;
+ Dim : Action Dimmable ;
+
+ switchable_Light : Instance Switchable Light ;
+ switchable_Fan : Instance Switchable Fan ;
+ dimmable_Light : Instance Dimmable Light ;
+
+}