
On 12/03/2013, at 10:00 AM, MigMit wrote:
On Mar 12, 2013, at 12:44 AM, "Richard A. O'Keefe"
wrote: Prelude> :type (+) (+) :: Num a => a -> a -> a
The predefined (+) in Haskell requires its arguments and its result to be precisely the same type.
I think you had better justify the claim that Date+Period -> Date and Date+Period -> Period are possible at the same time by showing us actual code.
Ehm...
import Prelude hiding (Num) class SumDP a where (+) :: Date -> Period -> a instance SumDP Date where date + period =
instance SumDP Period where date + period =
Notice the difference? I said that THE PREDEFINED (+) in Haskell requires its arguments and its result to be precisely the same type. This example is not the predefined (+); it's another variable entirely that happens to have the same short name and cannot also add integers.