[Haskell-cafe] Laziness question
felipe.lessa at gmail.com
Sun Aug 1 10:52:48 EDT 2010
On Sun, Aug 1, 2010 at 11:29 AM, Nicolas Pouillard
<nicolas.pouillard at gmail.com> wrote:
> Finally maybe we can simply forbidden the forcing of function (as we do with
> Eq). The few cases where it does matter will rescue to unsafeSeqFunction.
What's the problem with
class Eval a where
seq :: a -> t -> t
instance Eval b => Eval (a -> b) where
seq f = seq (f undefined)
It would reduce at least to WHNF as unsafeSeq would. Does it compute
more than WHNF?
Hmmm, I see, if we had
f :: Int -> Int
f _ = undefined
Then my seq above would diverge while unsafeSeq wouldn't. Perhaps
that instance would be a good compromise if we insist in not using
'unsafeSeq' to define it.
More information about the Haskell-Cafe