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