
23 Feb
2012
23 Feb
'12
6:03 p.m.
On Thu, 2012-02-23 at 23:45 +0100, Maxime Henrion wrote:
On Thu, 2012-02-23 at 23:24 +0100, Bas van Dijk wrote:
* Why do you have the instance:
instance GDeepSeq V1 where grnf _ = ()
The only way to construct values of a void type is using ⊥. And I would expect that rnf ⊥ = ⊥, not (). I think the best thing is to just remove the V1 instance.
This would have the consequence that any type tagged with a phantom type (for whatever reason) couldn't be used with deepseq, it would return bottom.
Sorry, I had myself confused; it wouldn't return bottom, there would just be no way to get an instance for it (the rest of the argument still holds).