-combineFuns = [ (show comb,comb)
- | comb <- [ADD .. ZERO]
- ]
+thePostFun :: PostFun -> Integer -> Integer
+thePostFun ID x = x
+thePostFun INV 0 = 1
+thePostFun INV n = 0
+thePostFun ZERO x = 0
+
+postFuns = [ (show pos,pos)
+ | pos <- [ID .. ZERO]
+ ]
+
+
+data MergeFun = INTERSECTION | UNION
+ deriving (Eq,Show, Read, Enum)
+
+theMergeFun :: (Ord a) => MergeFun -> Set.Set a -> Set.Set a -> Set.Set a
+theMergeFun INTERSECTION = Set.intersection
+theMergeFun UNION = Set.union
+
+mergeFuns = [ (show pos,pos)
+ | pos <- [INTERSECTION,UNION]
+ ]
+