getEqPredTys :: PredType -> (Type, Type)
getEqPredTys ty
  = case splitTyConApp_maybe ty of
      Just (tc, (_ : ty1 : ty2 : tys)) ->
        ASSERT( null tys && (tc `hasKey` eqTyConKey
                             || tc `hasKey` coercibleTyConKey) )
        (ty1, ty2)
      _ -> pprPanic "getEqPredTys" (ppr ty)
getEqPredTys :: PredType -> (Type, Type)
getEqPredTys ty
  = case splitTyConApp_maybe ty of
      Just (tc, (_ : ty1 : ty2 : tys)) ->
        ASSERT( null tys && (tc `hasKey` eqTyConKey
                             || tc `hasKey` coercibleTyConKey) )
        (ty1, ty2)
      _ -> pprPanic "getEqPredTys" (ppr ty)
getEqPredTys ty
  = case splitTyConApp_maybe ty of
      Just (tc, (_ : ty1 : ty2 : tys)) ->
        ASSERT( null tys && (tc `hasKey` eqTyConKey
                             || tc `hasKey` coercibleTyConKey) )
        (ty1, ty2)
      _ -> pprPanic "getEqPredTys" (ppr ty)