On 05/09/15 00:41, Roman Cheplyaka wrote: > On 05/09/15 00:23, Edward Z. Yang wrote: >> I would certainly agree that in terms of the data that is representable, >> there is not much difference; but there is a lot of difference for the >> client between Force and a strict field. If I write: >> >> let x = undefined >> y = Strict x >> in True >> >> No error occurs with: >> >> data Strict = Strict !a >> >> But an error occurs with: >> >> data Strict = Strict (Force a) > > At what point does the error occur here? When evaluating True? > > What about the following two expressions? > > const False > (let x = undefined > y = Strict x > in True) > > let x = undefined > y = const False (Strict x) > in True
On second though, the second one shouldn't even compile because of the kind error, right?
signature.asc
Description: OpenPGP digital signature
_______________________________________________ ghc-devs mailing list [email protected] http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
