An ideal model for recursive polymorphic types