I need to correct one thing.  The function:

isNewIntEq :: NewInt -> NewInt -> Bool
isNewIntEq x y = if (x - y) then False
                               else True

is incorrect.  It should be:

isNewIntEq :: NewInt -> NewInt -> Bool
isNewIntEq (N x) (N y) = if (x - y) then False
                                            else True

On Sep 7, 2006, at 12:20 PM, skaller wrote:

> ML modules do not do this: a module has a set of types
> (objects) and functions (arrows). The module
>
>       Map
>
> in Ocaml is NOT a type. Map.t is a type .. and so is
>
>       Map.elt
>
> There are two types here .. and it is the relations between
> then expressed by the (unstated!) relations between
> the functions of the module which actually characterise
> the typing. Note: *typing* is the word, not type:
> a Map is not a type, its a category.

On this point, I forgot to mention one thing.  Haskell type classes  
are more powerful than ML modules or OCaml functors because type  
classes may be defined over all first-class types, including  
functions.  For example, the

class Functor f where
        fun :: (a -> b) -> (f a -> f b)

instance Functor (r->) where
        fun f g = f . g

--here r has type ( * -> * )

-Pete


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to