compileGeneralBind :: Var -> Expr Var -> Compile Statement
compileGeneralBind var exp = do
  v <- compileVar var
  e <- local (const orig)
             (compileExp exp)
  return (Declaration v orig (thunk e))

  where orig = original (varName var)
compileGeneralBind :: Var -> Expr Var -> Compile Statement
compileGeneralBind var exp = do
  v <- compileVar var
  e <- local (const orig)
             (compileExp exp)
  return (Declaration v orig (thunk e))

  where orig = original (varName var)
compileGeneralBind var exp = do
  v <- compileVar var
  e <- local (const orig)
             (compileExp exp)
  return (Declaration v orig (thunk e))

  where orig = original (varName var)