open import 1Lab.Path.IdentitySystem
open import 1Lab.Path
open import 1Lab.Type
open import Data.String.Base
open import Data.Dec.Base
open import Data.Id.Base
module Data.Reflection.Abs where
record Abs {a} (A : Type a) : Type a where
constructor abs
field
abs-name : String
abs-binder : A
{-# BUILTIN ABS Abs #-}
{-# BUILTIN ABSABS abs #-}
instance
Discrete-Abs : ∀ {ℓ} {A : Type ℓ} ⦃ _ : Discrete A ⦄ → Discrete (Abs A)
Discrete-Abs = Discrete-inj (λ (abs n b) → n , b) (λ p → ap₂ abs (ap fst p) (ap snd p)) auto