isNull{Fun,}Ptr

Malcolm Wallace Malcolm.Wallace at cs.york.ac.uk
Wed Sep 11 05:36:21 EDT 2002


Manuel M T Chakravarty <chak at cse.unsw.edu.au> writes:

> Sure, but there is also 
>   null = (== [])
> in the Prelude and `Maybe.isNothing'.

No, the definition of null is
    null [] = True
which is quite different from (==[]) because it has a less-constrained type.
    null   :: [a] -> Bool
    (==[]) :: Eq a => [a] -> Bool

Likewise,
    isNothing   :: Maybe a -> Bool
    (==Nothing) :: Eq a => Maybe a -> Bool

So there are good reasons for having separate predicates testing
the null/empty case at those polymorphic types, but no reason (except
consistency of naming) for a pseudo-polymorphic type like Ptr a.

However, consistency of naming is perhaps sufficient reason to add them
anyway.

Regards,
    Malcolm



More information about the FFI mailing list