diff --git a/examples/call3.rs b/examples/call3.rs
index d8d8f6c6c5a9d91f275f7dce001ce3c9984b12b0..daa691dae21c4e869b563237874bf1dc938efd51 100644
--- a/examples/call3.rs
+++ b/examples/call3.rs
@@ -1,5 +1,5 @@
 fn f(mut x: i32, mut y: i32) -> i32 {
-    x = x + 1; // mutable paramer
+    x = x + 1; // mutable parameter
     x + y
 }
 
diff --git a/src/ast.rs b/src/ast.rs
index 444e6323b0a7eee47afc2d2fb3bca3e5859f3c7d..e2ccc47f7241d415a3bbc8640f6123a447cf61c4 100644
--- a/src/ast.rs
+++ b/src/ast.rs
@@ -36,6 +36,7 @@ pub enum Stmt {
     Expr(Box<Expr>),
     // perhaps block should be expression, hmm everything is expressions?
     Block(Stmts),
+    Semi,
 }
 
 #[derive(Debug, PartialEq, Clone)]
@@ -213,13 +214,13 @@ impl Stmts {
     fn ifmt(&self, fmt: &mut Formatter, indent: usize) -> Result<(), Error> {
         write!(fmt, "{{")?;
         let len = self.stmts.len();
-        for (i, s) in (&self.stmts).into_iter().enumerate() {
+        for (_i, s) in (&self.stmts).into_iter().enumerate() {
             // set tab
             write!(fmt, "\n{}", " ".repeat(indent + 4))?;
             s.ifmt(fmt, indent + 4)?;
-            if i < len - 1 || self.ret {
-                write!(fmt, ";")?;
-            }
+            // if i < len - 1 || self.ret {
+            //     write!(fmt, ";")?;
+            // }
         }
         write!(fmt, "\n{}}}", " ".repeat(indent))
     }
@@ -260,6 +261,7 @@ impl Stmt {
                 Ok(())
             }
             Stmt::Expr(e) => write!(fmt, "{}", e),
+            Stmt::Semi => write!(fmt, ";"),
         }
     }
 }
diff --git a/src/check.rs b/src/check.rs
index 18d567543835c534b225eeaad6d535c8e5f4a9bb..b8fb4a5b3819bbd6264a666cf9b0e8ee50206fd4 100644
--- a/src/check.rs
+++ b/src/check.rs
@@ -361,6 +361,7 @@ pub fn check_stmts(
                 }
                 _ => Err("Condition not Boolean".to_string()),
             },
+            Semi => panic!("ICE"),
         }
     })?;
 
diff --git a/src/vm.rs b/src/vm.rs
index a1d29ba9db7aae6d11f3844165cf8f57ce52ae64..6c53c48f03b1e9cfd190ae73b0236097729f58d5 100644
--- a/src/vm.rs
+++ b/src/vm.rs
@@ -286,6 +286,7 @@ fn eval_stmts(stmts: &Stmts, m: &mut Mem, fn_env: &FnEnv) -> Val {
                 println!("block");
                 eval_stmts(block, m, fn_env)
             }
+            Stmt::Semi => panic!("ICE"),
         }
     }
     m.pop_scope();