deriving Typeable and Nat kinds