-- A discussion from -- https://twitter.com/YuumuKonpaku/status/1052959340468953088
-- Andreas, 2019-08-18, test also #1346 (infix declaration in renaming)
-- Andreas, 2019-02-17, test alse #3432 (pattern synonyms in import directive)

module MdJustHighlightAgdaAsHtml where

open import Agda.Builtin.Nat
open import Agda.Builtin.Equality
open import Agda.Primitive public using (lzero)
  renaming (Level to ULevel; lsuc to lsucc; _⊔_ to infixl 42 _⊔_)

Type : (i : ULevel) -> Set (lsucc i)
Type i = Set i

data  : Type lzero where

module PatternSyns where
  pattern O' = zero
  pattern S n = (suc n)
open PatternSyns using (S) renaming (O' to O)

variable i : ULevel

¬ : (A : Type i)  Type i
¬ A = A  
_≠_ : {A : Type i}  (A  A  Type i)
x  y = ¬ (x  y)

infix 10 _∨_
data _∨_ {a b} (A : Type a) (B : Type b) : Set (a  b) where
  a-intro : A -> A  B
  b-intro : B -> A  B

test : (x y : Nat) -> (x  y)  (x  y)
test O O = a-intro refl
test O (S y) = b-intro  ())
test (S x) O = b-intro  ())
test (S x) (S y) with test x y
... | a-intro refl = a-intro refl
... | b-intro k = b-intro (lemma k)
  where
    lemma : {a b : Nat} -> a  b -> S a  S b
    lemma p refl = p refl