duck-type-checking for posets