anchor.diff:      (%error ":direction not specified")))
   
   (defun open (path &key direction)
  -  (awhen (%fopen path (%fopen-direction direction))
  -    (make-stream
  -        :handle !
  -		:fun-in #'((str) (%read-char (stream-handle str)))
  -		:fun-out #'((c str) (%princ c (stream-handle str)))
  -		:fun-eof #'((str) (%feof (stream-handle str))))))
  +  (!? (%fopen path (%fopen-direction direction))
  +      (make-stream :handle !
  +                   :fun-in #'((str) (%read-char (stream-handle str)))
  +                   :fun-out #'((c str) (%princ c (stream-handle str)))
  +                   :fun-eof #'((str) (%feof (stream-handle str))))
  +      (error "couldn't open file '~A'" ,path)))
   
   (defun close (str)
     (%fclose (stream-handle str)))
  
positive.code: ;;;; tré - Copyright (c) 2005-2006,2008,2011-2012 Sven Michael Klose <pixel@copei.de>
  
  (defun %fopen-direction (direction)
    (case direction
  
negative.code: (defmacro with-open-file (var file &rest body)
    (with-gensym g
      `(let ,var ,file
         (with (,g (progn ,@body))
  		 (close ,var)
  		 ,g))))
  