3 ms·
> > All clients have to do is use the functions `pure`, `delay`, `force` and `fix`. > Oh great, this would only add hundreds of lexemes to your average Haskell
by tome 10y ago
> > All clients have to do is use the functions `pure`, `delay`, `force` and `fix`.
> Oh great, this would only add hundreds of lexemes to your average Haskell file!
What makes you think that? Thunking would be monadic (and comonadic) and so there's great hope that it could be syntactically very convenient. We don't complain that typed IO adds hundreds of lexemes to our average Haskell file.
> > the type checker still won't distinguish lazy from strict data.
> [...] I could do what you're doing in Haskell by compiling every module with STRICT and having manual
thunks.
You'd still have to read other people's Haskell code where the types don't distinguish between strict and lazy.
> > What strictness does is “cordon off” the misbehavior of computations
> That is a fair point. However, this is not really relevant except in debugging, at which point the runtime will tell us which lazy value is diverging anyway.
I've never heard of that. How do you get this functionality?
> > I've said that, twice:
> You didn't actually say that in either of those comments.
Yes, that's what CBPV provides.