a => a -> a -> a
func x y = x + y
и я хочу сделать data внутри которой хранится что-то + функция такого же типа, что и func выше. Пробую написать так:
data Func = Func
{ function :: Num a => a -> a -> a
} deriving (Show)
но оно не компилируется:
error: Not in scope: type variable ‘a’
Я так понимаю, я должен что-то про a написать в первой строке, но куда и как правильно это сделать?
такой констрейнт можно добавить если включить RankNTypes
Обсуждают сегодня