3cd5465ef4cf8a38dfece9d1342907110bce0e16
[clean-tests.git] / inf-default / test.icl
1 module test
2
3 import StdList, StdEnum
4 import StdGeneric
5
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]
15
16 derive bimap []
17 derive gFDomain T
18
19 :: T = S T | Z
20
21 Start = hd [() \\ _ <- dom]
22
23 dom :: [T]
24 dom = gFDomain{|*|}