Malcolm Wallace Malcolm.Wallace at
Wed Sep 11 05:36:21 EDT 2002

Manuel M T Chakravarty <chak at> 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

    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


More information about the FFI mailing list