runObject :: Object -> EvalMonad2 ()
runObject obj =
    -- Bind (but not evaluated) named properties
    -- execute numbered properties
    forM_ (PropList.toList obj)
        (\item ->
            case item of
              (KeyValue key expr) -> bindExpr key expr
              (Value expr) -> eval expr)
  where
    bindExpr :: String -> Expr -> EvalMonad2 Expr
    bindExpr = declareVar 
runObject :: Object -> EvalMonad2 ()
runObject obj =
    -- Bind (but not evaluated) named properties
    -- execute numbered properties
    forM_ (PropList.toList obj)
        (\item ->
            case item of
              (KeyValue key expr) -> bindExpr key expr
              (Value expr) -> eval expr)
  where
    bindExpr :: String -> Expr -> EvalMonad2 Expr
    bindExpr = declareVar 
runObject obj =
    -- Bind (but not evaluated) named properties
    -- execute numbered properties
    forM_ (PropList.toList obj)
        (\item ->
            case item of
              (KeyValue key expr) -> bindExpr key expr
              (Value expr) -> eval expr)
  where
    bindExpr :: String -> Expr -> EvalMonad2 Expr
    bindExpr = declareVar 