isNull{Fun,}Ptr

Manuel M T Chakravarty chak at cse.unsw.edu.au
Wed Sep 11 08:52:01 EDT 2002


Malcolm Wallace <Malcolm.Wallace at cs.york.ac.uk> wrote,

> 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.

Oh, you are right.  I overlooked this.  In this case, I 
actually tend to not include these extra functions (unless
somebody likes to argue in their favour).

Cheers,
Manuel



More information about the FFI mailing list