{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} module Data.Mergeable.Internal.NameCollision ( NameCollision (..), ) where import Data.Mergeable.Internal.Resolution (Indexed (..)) import Relude class NameCollision e a where nameCollision :: a -> e instance NameCollision e a => NameCollision e (Indexed k a) where nameCollision :: Indexed k a -> e nameCollision = a -> e forall e a. NameCollision e a => a -> e nameCollision (a -> e) -> (Indexed k a -> a) -> Indexed k a -> e forall b c a. (b -> c) -> (a -> b) -> a -> c . Indexed k a -> a forall k a. Indexed k a -> a indexedValue