{-# OPTIONS --safe --without-K #-} module Canon.Bool where open import Data.Product open import Data.Bool open import Data.Vec open import Core open import Signature open import Canon open import Level as L module BoolCanon where data TBoolShape : Set where bool : TBoolShape TBoolΣ = TBoolShape ▹ λ where bool → 0 bool′ : ⦃ TBoolΣ ≼ σ ⦄ → μ σ bool′ = inject (bool , L.lift []) open Algebra BoolVal : Algebra TBoolΣ Set Set alg BoolVal (bool , L.lift []) = Bool boolCanon : Canon Canon.ty boolCanon = TBoolΣ Canon.val boolCanon = BoolVal open BoolCanon public