
I've been playing around with some types, and such, and I can get some basic IO. But the thing that confused me is this: How is it that IO [Char] == [Char] can be True, but IO a == a is a type error? How can you implement eq for a type so that IO (type) == type?

On Tue, Dec 30, 2008 at 7:41 PM, Nathan Holden
I've been playing around with some types, and such, and I can get some basic IO. But the thing that confused me is this: How is it that IO [Char] == [Char] can be True, but IO a == a is a type error? How can you implement eq for a type so that IO (type) == type?
The Eq type class is essentially defined as such: class Eq a where (==) :: a -> a -> Bool I don't know how you are even calling (==) on objects of type IO [Char] and [Char], since the type signature of (==) says that both of its arguments have to have the same type. Could you give more details of what is going on? Alex
participants (2)
-
Alexander Dunlap
-
Nathan Holden