Hello, everyone.
I can't use any instance of type "Int". Every other type is working, but not Int and Float.
In the following source, "isTrue 'T'" is working, but "isTrue 0" is not working, printing "Unresolved overloading - Type : (Num a, Boolable a) => Bool". Can you tell me how to solve this problem? Source codes are ONLY eight lines, so please help me! Thanks in advance.
class Boolable t where isTrue :: t -> Bool
instance Boolable Char where isTrue 'T' = True isTrue _ = False
instance Boolable Int where isTrue 0 = False isTrue _ = True
The problem isn't in your code-- it's the lack of context to resolve overloaded numerals. Here are a few illustrative examples:
Hugs session for: /usr/local/lib/hugs/lib/Prelude.hs /Users/ham/Desktop/test.lhs Main> isTrue 3 ERROR - Unresolved overloading *** Type : (Num a, Boolable a) => Bool *** Expression : isTrue 3
Main> isTrue (3::Int) True Main> Main> isTrue (length []) False Main> isTrue (length "abcde") True Main>
Regards,
--Ham -- ------------------------------------------------------------------ Hamilton Richards, PhD Department of Computer Sciences Senior Lecturer The University of Texas at Austin 512-471-9525 1 University Station C0500 Taylor Hall 5.138 Austin, Texas 78712-1188 [EMAIL PROTECTED] [EMAIL PROTECTED] ------------------------------------------------------------------ _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
