Ticket #1709: Dist.hs

File Dist.hs, 482 bytes (added by guest, 7 years ago)
Line 
1module Dist where
2
3class GUIValue a
4 
5class GUIObject w where
6  toGUIObject     :: w -> ()
7  cset            :: GUIValue a => a -> w
8
9instance GUIValue Int
10
11class GUIObject w => HasSize w where
12  width :: Int -> w
13
14class HasSize w => HasGeometry w where
15  geometry :: Int -> w
16
17class GUIObject w => Window w where
18
19instance Window w => HasSize w where
20  width w = geometry w
21
22instance Window w => HasGeometry w where
23  geometry g = cset g
24
25instance GUIObject ()
26
27instance Window ()