{-# LANGUAGE NoImplicitPrelude #-}

module Data.Morpheus.Error.NameCollision
  ( NameCollision (..),
  )
where

import Data.Morpheus.Ext.Map (Indexed (..))
import Data.Morpheus.Types.Internal.AST.Base
  ( ValidationError,
  )
import Relude

class NameCollision a where
  nameCollision :: a -> ValidationError

instance NameCollision a => NameCollision (Indexed k a) where
  nameCollision :: Indexed k a -> ValidationError
nameCollision = a -> ValidationError
forall a. NameCollision a => a -> ValidationError
nameCollision (a -> ValidationError)
-> (Indexed k a -> a) -> Indexed k a -> ValidationError
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Indexed k a -> a
forall k a. Indexed k a -> a
indexedValue