anchor.diff:      (format s "li $v0 , 5 ~%")
     (format s "syscall~%")
     (format s "move ~a , $v0~%" output))
  +
  +(defprocedure '>
  +    (format s "bge ~{~a~^,~}~%" params))
   
   (setf (gethash 'print-string *procedures*) (lambda (params)
   					     (with-output-to-string (s *text*)
  
positive.code: (defun free-temp-register (params)
    "Takes a list of registers and frees those which are temporary"
    (dolist (param params)
      (when (and param (register-temp? param))
        (setf (register-free? param) t))))
  
  
  
negative.code:   (dolist (frame *env*)
      (when (assoc var frame)
        (return (cdr (assoc var frame))))
      ))
  
  
  (defun letp (expr)
    (equal (car expr) 'let))
  
  
  (defun ifp (expr)
    (equal (car expr) 'if))
  
  (defun multi-exprp (exprs)
    (if (listp exprs)
        (every #'listp exprs)
        nil))
  (defun whilep (expr)
    (equal (car expr) 'while))
  
  (defmacro write-to-output (stream output &body body)
    "Stream is this arbitary name for stream used in format , output is *data* or *text*"
    `(with-output-to-string (,stream ,output)
  	,@body))
  
  
  ;;Returning string-name as a string. Be careful.
  