anchor.diff:    (keyarr sys:system-area-pointer)
     (klength c-call:int))
   
  +(defstruct icu-sort-key
  +  (vector (ext:required-argument) :type (simple-array (unsigned-byte 8) (*))
  +	  :read-only t))
  +
   (defun ucol-open (locale)
     (multiple-value-bind (collator status) (%ucol-open locale)
       ;; status < 0 : warning     (see /usr/include/unicode/utypes.h)
  
positive.code: 				   -1
  				   (lisp:buffer-sap buffer)
  				   (length buffer))))
      (lisp::shrink-vector buffer size)))
  
  (defmacro with-open-collator ((var locale) &body body)
    (let ((xvar (gensym)))
      `(let ((,xvar (ucol-open ,locale)))
        (unwind-protect (let ((,var ,xvar)) ,@body)
  	(ucol-close ,xvar)))))
  
negative.code: (defpackage "ICU")
  (in-package "ICU")
  
  (export '(ucol-open ucol-close ucol-get-sort-key with-open-collator))
  
  (eval-when (:compile-toplevel :execute)
    (alien:load-foreign "/usr/lib/libicui18n.so.38"
  