- newtype T a = Cons (a -> a)
- concrete :: a -> T a -> a
- fromRepresentative :: C a => a -> T a
- lift0 :: (a -> a) -> T a
- lift1 :: (a -> a -> a) -> T a -> T a
- lift2 :: (a -> a -> a -> a) -> T a -> T a -> T a
- zero :: C a => T a
- one :: C a => T a
- fromInteger :: C a => Integer -> T a
- equal :: Eq a => a -> T a -> T a -> Bool
- legacyInstance :: a
Here a residue class is a representative
and the modulus is an argument.
You cannot show a value of type
you can only show it with respect to a concrete modulus.
Values cannot be compared,
because the comparison result depends on the modulus.
|Cons (a -> a)|