
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Check the type of (.) Prelude> :t (.) (.) :: (b -> c) -> (a -> b) -> a -> c Then the type of (.) not Prelude> :t (.) not (.) not :: (a -> Bool) -> a -> Bool Now try to apply (==) Prelude> :t (.) not (==) -- not going to happen Won't happen. What do you want to happen? Oscar Picasso wrote:
Hi,
I can write: *Main> let yes = not . not *Main> :t yes yes :: Bool -> Bool
But not: *Main> let isNotEqual = not . (==)
<interactive>:1:23: Couldn't match expected type `Bool' against inferred type `a -> Bool' Probable cause: `==' is applied to too few arguments In the second argument of `(.)', namely `(==)' In the expression: not . (==)
Why?
Oscar
----------------------------------------------------------------------
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
- -- Tony Morris http://tmorris.net/ S, K and I ought to be enough for anybody. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFJVamwmnpgrYe6r60RAnerAKDAs4KKsGHN7/WnqUYAJcVJixQiCgCgkQTV CgeAJDTFEeKdAl4Ep3ibG88= =GcLE -----END PGP SIGNATURE-----