compileVarDecl :: (Var,Expr Var) -> Compile Statement
compileVarDecl (var,exp) = do
  v <- compileVar var
  e <- compileExp exp
  return (Declaration v Nothing (thunk e))
compileVarDecl :: (Var,Expr Var) -> Compile Statement
compileVarDecl (var,exp) = do
  v <- compileVar var
  e <- compileExp exp
  return (Declaration v Nothing (thunk e))
compileVarDecl (var,exp) = do
  v <- compileVar var
  e <- compileExp exp
  return (Declaration v Nothing (thunk e))