@@ -185,6 +185,7 @@ import GHC.TypeLits
185185
186186-- | Boolean type synonym for working with boolean matrices
187187type Boolean = Natural 0 1
188+type Powerset a = List (List a)
188189
189190-- | Relation data type.
190191newtype Relation a b = R (I.Matrix Boolean (I.Normalize a) (I.Normalize b))
@@ -354,23 +355,23 @@ pt ::
354355 FromListsN a One,
355356 FromListsN b One
356357 )
357− => Relation a b -> (a -> Powerset b)
358+ => Relation a b -> (a -> List b)
358359pt r a =
359− let (PS lb) = maxBound
360− in PS [ b | b <- lb, toBool (pointAp a b r) ]
360+ let (L lb) = maxBound
361+ in L [ b | b <- lb, toBool (pointAp a b r) ]
361362
362363-- | Belongs relation
363364belongs ::
364365 ( Bounded a,
365366 Enum a,
366367 Eq a,
367− CountableDimensionsN (Powerset a) a,
368− FromListsN a (Powerset a)
368+ CountableDimensionsN (List a) a,
369+ FromListsN a (List a)
369370 )
370− => Relation (Powerset a) a
371−belongs = toRel (flip elemR)
371+ => Relation (List a) a
372+belongs = toRel elemR
372373 where
373− elemR x (PS l) = x `elem` l
374+ elemR (L l) x = x `elem` l
374375
375376-- Zeros Matrix
376377