using Eq t context instead of IsEqual t functional type