. 4.3.4 Haskell. Haskell , ( ), ( ) Num a => a. , , , Integer. , Fractional a => a, Double.
default , , :
default (Int, Float)
Num Int Fractional Float ( Int Fractional). , , .
( ):
, . , .
-XExtendedDefaultRules GHC , . .
Edit
, , GHC 4.3.4 :
, GHCi Haskell ( 4.3.4 Haskell 2010) . (C1 a, C2 a,..., Cn a) a if
. .+., MyFuns - Prelude , "" . , :
GHCi GHC, -XExtendedDefaultRules, :
2 : Ci .
3 : , Ci Show, Eq Ord.
() , .
, ExtendedDefaultRules (, , GHCi ), :
{-
import Debug.Trace
default (Int, Float, Double)
class MyFuns a where
(.+.) :: a -> a -> a
instance MyFuns Double where
x .+. y = trace "Double " $ x + y
instance MyFuns Integer where
x .+. y = trace "Integer " $ x + y
instance MyFuns Int where
x .+. y = trace "Int " $ x + y
main = do
print $ 1 .+. 2 -- Interpreted as Int
, 1.0 .+. 2.0 double, 1.0 + 2.0 float: , Float MyFuns, default .