set difference (generic)