module Staged.Expression.Seq where
open import Data.Unit
open import Data.Bool
open import Data.Product
open import Level
open import Container
open import Staged.Denote
module _ where
SeqExpr : Con
Con.S SeqExpr = ⊤
Con.P SeqExpr tt = Bool
module _ {V : Set} where
⟦seq⟧ : SeqExpr ⟨ ζ ⟩⇒ V
denote ⟦seq⟧ (tt , p) = p false >> p true
module _ where
_>>'_ : ⦃ SeqExpr ≺ C ⦄ → μ C → μ C → μ C
f >>' g = inject (tt , λ { false → f ; true → g })