module Terminal where import Category class (Category c, Object c (T c)) => Terminal c where type T c term :: Object c a => c a (T c) instance Terminal (->) where type T (->) = () term _ = ()