Look at mapper2
's type.
mapper2 :: (a -> b -> c) -> [a] -> [b] -> [c]
Now look at the type of the function you're passing in.
(\x -> x * 2) :: Num a => a -> a
The mapper2
function expects a function of two arguments to be passed in, but your lambda only takes one argument.