{-# OPTIONS --cubical --guardedness #-} module Gadget.ComplexTransformExample where open import Cubical.Foundations.Prelude using (Type) open import Cubical.Data.Nat using (ℕ; zero; suc) open import Cubical.Data.Sigma using (_×_; _,_) open import Cubical.Data.Sum using (_⊎_; inr) open import Cubical.Data.Int using (ℤ; negsuc) open import Agda.Builtin.String using (String) mutual data Expr : Type where litNat : ℕ -> Expr litString : String -> Expr litInt : ℤ -> Expr block : Stmts -> Expr data Stmts : Type where done : Stmts step : Expr -> Stmts -> Stmts programs :T: Expr × (ℕ ⊎ (String × ℤ))