
On Sat, Feb 15, 2014 at 9:08 AM, Roman Cheplyaka
partitionS0 :: [S0] -> ()
I suppose that makes sense if you look at partition as returning the same number of lists as there are type variables. No type variables, no lists. Or should it be
partitionS0 :: [S0] -> Void
which also makes me wonder if this is a special case better left to Data.Void.
The result should be a 0-tuple, i.e. (), of course.
Otherwise, what would paritionS0 [] return?
OK, so with EmptyDataDecls this yields: data S0 deriving (Generic, Typeable) instance Eq S0 where _ == _ = undefined instance Ord S0 where compare _ _ = undefined instance Read S0 where readsPrec _ = undefined instance Show S0 where show _ = undefined partitionS0 :: [S0] -> () partitionS0 _ = () caseS0 :: S0 -> z caseS0 = undefined mapS0 :: S0 -> S0 mapS0 = id mapS0f :: Functor ftr => S0 -> ftr S0 mapS0f = undefined