class Keys<in Key, out Item>(Correspondence<Key,Item> correspondence) satisfies Category given Key satisfies Object { shared actual Boolean contains(Object key) { if (is Key key) { return correspondence.defines(key); } else { return false; } } }