Я хочу иметь пустое ограничение для более высокого вида.
Предположим, у меня есть следующий класс:
class Category k where
type Obj k :: * -> Constraint
id :: Obj k a => a `k` a
(.) :: (Obj k a, Obj k b, Obj k c) => b `k` c -> a `k` b -> a `k` c
Теперь я хочу сделать экземпляр для функций таким, чтобы он никоим образом не ограничивал элементы. Что я даю в качестве примера для Obj
?
instance Category (->) where
type Obj (->) = ?
id = \a -> a
f . g = \a -> f (g a)