\documentclass{article}
\usepackage{agda}
\begin{document}
\AgdaHide{
\begin{code}
module LaTeX-succeed where
\end{code}
}
\begin{code}
data Bool : Set where
true : Bool
false : Bool
if_then_else_ : {A : Set} → Bool → A → A → A
if true then t else f = t
if false then t else f = f
data ℕ : Set where
zero : ℕ
suc : ℕ → ℕ
_+_ : ℕ → ℕ → ℕ
zero + n = n
suc m + n = suc (m + n)
{-# BUILTIN NATURAL ℕ #-}
alignment : (m n o p : ℕ) → ℕ
alignment 0 1 2 3 = 4
alignment 1 2 3 4 = 5
alignment 2 3 4 5 = 6
alignment _ _ _ _ = 0
\end{code}
\begin{code}
data ⊥ : Set where
record R : Set₁ where
field
f : Set
g : Set
record R′ (A B : Set) : Set₁ where
field
h : Set
j : Set
r : R
\end{code}
\begin{code}
module M where
r′ : ∀ {A B : Set} → R′ A B
r′ = record
{ h = ⊥
; j = ⊥
; r = record
{ f = ⊥
; g = ⊥
}
}
\end{code}
Andreas, 2018-04-03: The following two modules test the highlighting of projection patterns.
\begin{code}
module QualifiedProjectionPatterns where
r : R
r .R.f = Bool
r .R.g = ⊥
r′ : R′ Bool ⊥
R′.h r′ = ⊥
R′.j r′ = Bool → Bool
R′.r r′ = r
\end{code}
\begin{code}
module UnqualifiedProjectionPatterns where
open R; open R′
r₀ : R
r₀ .f = Bool
r₀ .g = ⊥
r′ : R′ Bool ⊥
h r′ = ⊥
j r′ = Bool → Bool
r r′ = r₀
\end{code}
\end{document}