-----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----- _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe