3 import StdList, StdEnum
6 generic gFDomain a :: [a]
7 gFDomain{|Bool|} = [False,True]
8 gFDomain{|Char|} = map toChar [0..255]
9 gFDomain{|UNIT|} = [UNIT]
10 gFDomain{|PAIR|} dx dy = [PAIR x y \\ x <- dx, y <- dy]
11 gFDomain{|EITHER|} dx dy = map LEFT dx ++ map RIGHT dy
12 gFDomain{|CONS|} dx = [CONS x\\x<-dx]
13 gFDomain{|FIELD|} dx = [FIELD x\\x<-dx]
14 gFDomain{|OBJECT|} dx = [OBJECT x\\x<-dx]
21 Start = hd [() \\ _ <- dom]