infer the types of variables, it is also usually able to correctly infer the kinds of type variables.
И пример:
-- The inferred kind of `a` is `*`
data List a = Cons a (List a) | Nil
-- The inferred kind of `f` is `* -> *`
-- The inferred kind of `a` and `b` is `*`
class Functor f where
fmap :: (a -> b) -> (f a -> f b)
А как это проверить?.. Ввожу я в ghci
data List a = Cons a (List a) | Nil
а дальше что?.. Оно схавает только :k List, скажет, что * -> *.
это и будет проверкой
Обсуждают сегодня