{-# 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