anchor.diff:    (mem-aref (buffer pcm) (alsa-element-type (element-type pcm)) position))
   
   (defmethod (setf ref) (value (pcm pcm-stream) position)
  -  (assert (eql (element-type pcm) (type-of value)))
  +  #+(or)(assert (eql (element-type pcm) (type-of value)))
     (setf (mem-aref (buffer pcm) (alsa-element-type (element-type pcm)) position) value))
   
   (defmethod alsa-close ((pcm pcm-stream))
  
positive.code: 
  (defmethod alsa-write ((pcm pcm-stream))
    (assert (eql (direction pcm) :snd-pcm-stream-playback))
    (let ((result (snd-pcm-writei (deref (handle pcm)) (buffer pcm) (buffer-size pcm))))                                                              
      (unless (= result (buffer-size pcm))                                                                                                            
        (error "ALSA error: ~A" result))))
  
  (defmethod alsa-read ((pcm pcm-stream))
  
negative.code: 			    :buffer-size buffer-size
  			    :channels-count channels-count
  			    :sample-rate sample-rate
  			    :pcm-format (cond ((eql element-type 'single-float) :snd-pcm-format-float-le)
  					      ((eql element-type 'double-float) :snd-pcm-format-float64-le)
  					      ((equalp element-type '(unsigned-byte 8)) :snd-pcm-format-u8-le)
  					      ((equalp element-type '(signed-byte 8)) :snd-pcm-format-s8-le)
  					      ((equalp element-type '(unsigned-byte 16)) :snd-pcm-format-u16-le)
  					      ((equalp element-type '(signed-byte 16)) :snd-pcm-format-s16-le)
  					      (t (error "Invalid base type ~A" element-type))))))
      
      (ensure-success (snd-pcm-open (handle pcs) device (direction pcs) 0))
      (ensure-success (snd-pcm-hw-params-malloc (params pcs)))
  