
In instant-generics-0.2.1, the TH functions for deriving the Rep type instances insert the "Rec" type at every field. Is there a consequence to this? This behavior seems at odds with the paper; isn't Rec only meant as an indicator of recursive occurrences within the original data type? Thanks. --- snippet from http://j.mp/gK8MOk ; repField is invoked for every field of every constructor by all of the relevant TH entry-points. repField :: (Name, [Name]) -> Type -> Q Type --repField d t | t == dataDeclToType d = conT ''I repField d t = conT ''Rec `appT` return t repField' :: (Name, [Name]) -> Name -> (Name, Strict, Type) -> Q Type --repField' d ns (_, _, t) | t == dataDeclToType d = conT ''I repField' (dt, vs) ns (f, _, t) = conT ''Rec `appT` return t -- Note: we should generate Var too, at some point