{-# OPTIONS --safe --without-K #-} module Canon.Nat where open import Data.Product open import Data.Nat open import Data.Vec open import Core open import Signature open import Canon open import Level as L module NatCanon where data TNatShape : Set where nat : TNatShape TNatΣ = TNatShape ▹ λ where nat → 0 nat′ : ⦃ TNatΣ ≼ σ ⦄ → μ σ nat′ = inject (nat , L.lift []) open Algebra NatVal : Algebra TNatΣ Set Set alg NatVal (nat , L.lift []) = ℕ natCanon : Canon Canon.ty natCanon = TNatΣ Canon.val natCanon = NatVal open NatCanon public