(defun hexdump (filename &key (start 0) end)
  (if (and (integerp start) (not (minusp start)))
      (error "not a non-negative integer" start))
  (or (null end)
      (and (integerp end) (not (minusp end)))
      (error "not a non-negative integer" end))
  (let ((file (open-binary filename)))