Unlifted data types
roma at ro-che.info
Fri Sep 4 21:43:19 UTC 2015
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?
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 819 bytes
Desc: OpenPGP digital signature
More information about the ghc-devs