Hello Tushar,

maybe this makes it look a bit clearer:

class Misty m where
  banana:: (f -> m b) -> m f -> m b
  furry':: (a -> b) -> m a -> m b


apple::Misty m =>
    m a -> m (a -> b) -> m b
apple ma mf = banana (\f -> furry' f ma) mf


in a word: 'a' in banana may be a function 
f = a -> b