I&#39;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?<br>