\nonstopmode
\documentclass{article}
\usepackage{agda}
\begin{document}
\begin{code}
{-# OPTIONS --copatterns --sized-types #-}
{-# BUILTIN SIZE Size #-}
{-# BUILTIN SIZELT Size<_ #-}
{-# BUILTIN SIZESUC ↑_ #-}
{-# BUILTIN SIZEINF ∞ #-}
data List (A : Set) : Set where
[] : List A
_∷_ : (x : A) (xs : List A) -> List A
record _×_ (A B : Set) : Set where
constructor _,_
field
fst : A
snd : B
open _×_
record Stream {i : Size} (A : Set) : Set where
coinductive; constructor _∷_
field
head : A
tail : ∀ {j : Size< i} → Stream {j} A
open Stream public
_∷ˢ_ : ∀ {i A} → A → Stream {i} A → Stream {↑ i} A
head (a ∷ˢ as) = a
tail (a ∷ˢ as) = as
_++ˢ_ : ∀ {i A} → List A → Stream {i} A → Stream {i} A
[] ++ˢ s = s
(a ∷ as) ++ˢ s = a ∷ˢ (as ++ˢ s)
record List1 (A : Set) : Set where
constructor _∷_
field
head : A
tail : List A
open List1 using (head; tail)
record ⊤ : Set where constructor trivial
open List1 (trivial ∷ []) using (head; tail)
unfold⁺ : ∀ {S : Size → Set} {A : Set}
(step : ∀ {i} → S i → List1 A × (∀ {j : Size< i} → S j)) →
∀ {i} → (s : S i) → Stream {i} A
head (unfold⁺ step s) = head (fst (step s))
tail (unfold⁺ step s) = let ((_ ∷ l) , s′) = step s
in l ++ˢ unfold⁺ step s′
\end{code}
Problem: The ∷ in the last let statement is not colored with constructor color.
\end{document}