So, the function type "(Num a)=>Integer->a" means that return value of this function can be cast to any particular instance of class Num.
Ok. I have a my own class "class A a" and want to write function like this "f:: (A a)=>Integer->a". Can I do it?
"Alexander Seliverstov" <seliverstov.a@gmail.com> writes:
> How does caller choose which particular instance of Num they want?
They specify the type... or just pass the result to
something that specifies the type. Try it in ghci:
Prelude> let f:: Integral i => Integer -> i; f = fromIntegral
Prelude> let g :: Int -> Int; g = id
Prelude> :t g (f 5)
g (f 5) :: Int
Prelude> let h :: Integer -> Integer; h = id
Prelude> :t h (f 5)
h (f 5) :: Integer
Prelude>
> What the difference between haskell class and interface in object-oriented
> languge such Java or C#?
Really they are completely different animals that look a lot
alike because they serve similar purposes -- convergent
evolution!
--
J車n Fairbairn Jon.Fairbairn@cl.cam.ac.uk
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe