Removing the isDefinedAt because of Type erasure we can't check this works without some hideous hacks.