Проблема в том, что вы определяете сигнатуру лямбда-выражения, но это лямбда-выражение является выражением , а не объявлением. Если вы хотите указать подпись, вы указываете это как подпись valNum1
:
valNum1 <b>:: Num a => a -> a -> a</b>
valNum1 = \x y -> 2*x + y
Однако удобнее указывать переменные в заголовке valNum1
:
valNum1 :: Num a => a -> a -> a
valNum1 <b>x y</b> = 2*x + y
или можно написать это как вариант без баллов:
valNum1 :: Num a => a -> a -> a
valNum1 = <b>(+) . (2 *)</b>