{-# OPTIONS --safe --sized-types #-} module Generic.Syntax.LetBinders where open import Data.Bool open import Data.Product open import Agda.Builtin.List open import Agda.Builtin.Equality open import Function open import Relation.Unary open import Generic.Syntax module _ {I : Set} where Lets : Desc I Lets = `σ (List I × I) $ uncurry $ λ Δ σ → `Xs Δ (`X Δ σ (`∎ σ)) module _ {I : Set} {d : Desc I} where embed : ∀ {i σ} → ∀[ Tm d i σ ⇒ Tm (d `+ Lets) i σ ] embed = map^Tm (MkDescMorphism (true ,_))