module TypeLevel.Rewrite.Internal.TypeEq where

import Data.Function

import GhcPlugins (Type, eqType)


-- | A newtype around 'Type' which has an 'Eq' instance.
newtype TypeEq = TypeEq
  { TypeEq -> Type
unTypeEq :: Type
  }

instance Eq TypeEq where
  == :: TypeEq -> TypeEq -> Bool
(==) = Type -> Type -> Bool
eqType (Type -> Type -> Bool)
-> (TypeEq -> Type) -> TypeEq -> TypeEq -> Bool
forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c
`on` TypeEq -> Type
unTypeEq