Proposal: Don't require users to use undefined

Bas van Dijk v.dijk.bas at gmail.com
Tue Oct 26 14:50:00 EDT 2010


On Tue, Oct 26, 2010 at 8:12 PM, Bulat Ziganshin
<bulat.ziganshin at gmail.com> wrote:
>> I find the use of 'undefined' ugly
>
> yu aren't groked lazy evaluation :)

I know that 'sizeOf (undefined :: Word8)' will never evaluate the
'undefined' due to laziness and is completely safe.

However, my point is that using 'undefined':

* is dangerous because the type checker won't warn you when you
accidentally put 'undefined' in the wrong place,
* is dangerous when you accidentally evaluate the argument in an
instance of Storable,
* is harder to optimize because of the unused argument,
* is only used for type-checking and so why not help the type-checker
by only using a type (Tagged a Int).

Also note that the patches attached to the ticket simplify a lot of
code. See that in most files there are more '-'s than '+'s:

http://hackage.haskell.org/trac/ghc/attachment/ticket/4443/base_ticket_4443.dpatch

(To be fair, most of these functions could have been written without
using helper functions by using 'forall a. ... sizeOf (undefined ::
a)' directly.)

Regards,

Bas


More information about the Libraries mailing list