The Haskell code below works.
main = print $ x + y
x = 1
y = 2.3
This results 3.3. x
isn't Int
because x
is used with (+)
operator that also takes 2.3.
On the other hand, the code below causes a type error in compile time.
main = print $ x + y
x = 1
y = 2.3
z = x :: Int
error:
No instance for (Fractional Int)
arising from the literal `2.3'
Possible fix: add an instance declaration for (Fractional Int)
In the expression: 2.3
In an equation for `y': y = 2.3
You can make x
ambiguous with NoMonomorphismRestriction
option.
{-# LANGUAGE NoMonomorphismRestriction #-}
or -XNoMonomorphismRestriction
in command line option.
Thanks @ikegami__!
No comments:
Post a Comment