enhanced type equality support