------------------------------------------------------------------------
-- The Agda standard library
--
-- Argument visibility used in the reflection machinery
------------------------------------------------------------------------

{-# OPTIONS --without-K --safe #-}

module Reflection.AST.Argument.Visibility where

open import Relation.Nullary.Decidable.Core using (yes; no)
open import Relation.Binary.Definitions using (DecidableEquality)
open import Relation.Binary.PropositionalEquality.Core using (refl)

------------------------------------------------------------------------
-- Re-exporting the builtins publicly

open import Agda.Builtin.Reflection public using (Visibility)
open Visibility public

------------------------------------------------------------------------
-- Decidable equality

infix 4 _≡?_

_≡?_ : DecidableEquality Visibility
visible   ≡? visible   = yes refl
hidden    ≡? hidden    = yes refl
instance′ ≡? instance′ = yes refl
visible   ≡? hidden    = no λ()
visible   ≡? instance′ = no λ()
hidden    ≡? visible   = no λ()
hidden    ≡? instance′ = no λ()
instance′ ≡? visible   = no λ()
instance′ ≡? hidden    = no λ()


------------------------------------------------------------------------
-- DEPRECATED NAMES
------------------------------------------------------------------------
-- Please use the new names as continuing support for the old names is
-- not guaranteed.

-- Version 2.4

infix 4 _≟_
_≟_ = _≡?_
{-# WARNING_ON_USAGE _≟_
"Warning: _≟_ was deprecated in v2.4.
Please use _≡?_ instead."
#-}