{-# OPTIONS --without-K --safe #-}
module Prelude.Eq where
open import Agda.Builtin.Bool
open import Agda.Builtin.Nat as Nat
renaming (_==_ to primNatEquality)
open import Agda.Builtin.Float
open import Agda.Builtin.Word
open import Agda.Builtin.Char
open import Agda.Builtin.String
open import Agda.Builtin.List
record Eq {a} (A : Set a) : Set a where
infix 4 _==_ _/=_
field
_==_ : (x y : A) → Bool
_/=_ : A → A → Bool
x /= y with x == y
... | false = true
... | true = false
open Eq ⦃...⦄ public
{-# DISPLAY Eq._==_ _ = _==_ #-}
instance
EqNat : Eq Nat
_==_ ⦃ EqNat ⦄ = primNatEquality
EqFloat : Eq Float
_==_ ⦃ EqFloat ⦄ = primFloatEquality
EqWord64 : Eq Word64
_==_ ⦃ EqWord64 ⦄ x y = primWord64ToNat x == primWord64ToNat y
EqChar : Eq Char
_==_ ⦃ EqChar ⦄ = primCharEquality
EqString : Eq String
_==_ ⦃ EqString ⦄ = primStringEquality