open import 1Lab.Path open import 1Lab.Type open import Data.String.Base open import Data.String.Show open import Data.List.Base open import Data.Dec.Base open import Data.Nat.Base open import Data.Id.Base open import Data.Bool module Data.Reflection.Meta where postulate Meta : Type {-# BUILTIN AGDAMETA Meta #-} private module P where primitive primMetaEquality : Meta → Meta → Bool primMetaLess : Meta → Meta → Bool primShowMeta : Meta → String primMetaToNat : Meta → Nat primMetaToNatInjective : ∀ x y → primMetaToNat x ≡ᵢ primMetaToNat y → x ≡ᵢ y instance Discrete-Meta : Discrete Meta Discrete-Meta = Discrete-inj' _ (P.primMetaToNatInjective _ _) Show-Meta : Show Meta Show-Meta = default-show P.primShowMeta data Blocker : Type where blocker-any : List Blocker → Blocker blocker-all : List Blocker → Blocker blocker-meta : Meta → Blocker {-# BUILTIN AGDABLOCKER Blocker #-} {-# BUILTIN AGDABLOCKERANY blocker-any #-} {-# BUILTIN AGDABLOCKERALL blocker-all #-} {-# BUILTIN AGDABLOCKERMETA blocker-meta #-}