anchor.diff:    (wstatus (:pointer :int))
     (options :int))
   
  +
   (defun waitpid (pid options)
  +  "This is a wrapper around the waitpid C function.
  +
  +The output parameters are returned as multiuple values."
     (with-foreign-object (status :int)
       (let ((pid-output (%waitpid pid status options)))
         (values pid-output (mem-ref status :int)))))
  
positive.code:          ,(wrapper)))))
  
  (defun environment-iterator ()
    (let ((environment-pointer environ)
          (index 0))
      (make-iterator ()
  
negative.code:            (assert (plusp count)))))))
  
  (defun posix-write-string (fd string)
    "Write a string to a file descriptor"
    (with-foreign-string (ptr string)
      (posix-write-foreign fd ptr (strlen ptr))))
  
  (defun posix-write-bytes (fd bytes)
    "Write bytes to a file descriptor"
    (with-foreign-object (ptr :unsigned-char (length bytes))
      (loop :for index :below (length bytes) :do
         (setf (mem-aref ptr :unsigned-char index) (aref bytes index)))
      (posix-write-foreign fd ptr (length bytes))))
  
  (defun posix-write (fd buffer)
    "Write to a file descriptor.
  
  Strings or unsigned-char arrays are supported."
    (etypecase buffer
      (string
       (posix-write-string fd buffer))
  