diff --git a/data/data.lisp b/data/data.lisp
index 1e031e503429a9141541628b535567de0e331ccd..ac65c8b2415e3bc7ba43807d6770cf196ef05cff 100644
--- a/data/data.lisp
+++ b/data/data.lisp
@@ -1,6 +1,6 @@
 ;; Data using ffa
 ;; Liam Healy 2008-04-06 21:23:41EDT data-ffa.lisp
-;; Time-stamp: <2008-08-16 20:00:37EDT data.lisp>
+;; Time-stamp: <2008-08-17 09:59:05EDT data.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -277,11 +277,11 @@
 	     (cffi:mem-aref pointer cffi-type pointer-index)
 	     (cffi:mem-aref pointer cffi-type (1+ pointer-index)))))))
 
-
-(defun maref (object &rest indices)
-  "An element of the data."
-  (copy-c-to-cl object)
-  (apply 'aref (cl-array object) indices))
+(defgeneric maref (object &rest indices)
+  (:documentation "An element of the data.")
+  (:method ((object gsl-data) &rest indices)
+    (copy-c-to-cl object)
+    (apply 'aref (cl-array object) indices)))
 
 ;;; Alternative to complete copy is to mark which elements have
 ;;; changed and just copy them.  Is it worth it?
diff --git a/gsll.asd b/gsll.asd
index 789acd594c4c86ec64135521dda8ff6667bd1ea1..893577edde43bdabf6faa76d87df2de567d67024 100644
--- a/gsll.asd
+++ b/gsll.asd
@@ -1,6 +1,6 @@
 ;; Definition of GSLL system 
 ;; Liam Healy
-;; Time-stamp: <2008-08-16 20:05:07EDT gsll.asd>
+;; Time-stamp: <2008-08-17 09:39:54EDT gsll.asd>
 ;; $Id$
 
 (asdf:defsystem "gsll"
@@ -145,7 +145,6 @@
 	     (:file "covariance")
 	     ;; minimum and maximum values provided in vector.lisp
 	     (:file "median-percentile")))
-   #+no
    (:module histogram
 	    :depends-on (init)
 	    :components
diff --git a/histogram/histogram.lisp b/histogram/histogram.lisp
index ed830745d8f9866973911b1a3a19deb78cc98fe0..68ea914817bebcf79e6461364eea50f0f9694291 100644
--- a/histogram/histogram.lisp
+++ b/histogram/histogram.lisp
@@ -1,6 +1,6 @@
 ;; The histogram structure
 ;; Liam Healy, Mon Jan  1 2007 - 11:32
-;; Time-stamp: <2008-02-19 22:33:01EST histogram.lisp>
+;; Time-stamp: <2008-08-17 09:02:00EDT histogram.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -20,7 +20,7 @@
 
 (defclass histogram ()
   ((pointer
-    :initarg :pointer :accessor pointer
+    :initarg :pointer :accessor mpointer
     :documentation "A C pointer to the GSL representation of the histogram.")
    (number-of-bins :initarg :number-of-bins :accessor number-of-bins))
   (:documentation
@@ -28,7 +28,7 @@
 
 (defmfun alloc-histo-1 (object)
   "gsl_histogram_alloc"
-  (((number-of-bins object) size))
+  (((number-of-bins object) sizet))
   :export nil
   :index (letm histogram)
   :c-return (cr :pointer)
@@ -36,8 +36,8 @@
 
 (defmfun alloc-histo-2 (object)
   "gsl_histogram2d_alloc"
-  (((first (number-of-bins object)) size)
-   ((second (number-of-bins object)) size))
+  (((first (number-of-bins object)) sizet)
+   ((second (number-of-bins object)) sizet))
   :export nil
   :index (letm histogram)
   :c-return (cr :pointer)
@@ -78,7 +78,7 @@
 (defmfun set-ranges-1 (histogram ranges)
   "gsl_histogram_set_ranges"
   (((pointer histogram) :pointer)
-   ((gsl-array ranges) :pointer) ((dim0 ranges) size))
+   ((c-pointer ranges) :pointer) ((dim0 ranges) sizet))
   :export nil
   :index (letm histogram)
   :documentation			; FDL
@@ -91,8 +91,8 @@
 (defmfun set-ranges-2 (histogram x-ranges y-ranges)
   "gsl_histogram2d_set_ranges"
   (((pointer histogram) :pointer)
-   ((gsl-array x-ranges) :pointer) ((dim0 x-ranges) size)
-   ((gsl-array y-ranges) :pointer) ((dim0 y-ranges) size))
+   ((c-pointer x-ranges) :pointer) ((dim0 x-ranges) sizet)
+   ((c-pointer y-ranges) :pointer) ((dim0 y-ranges) sizet))
   :export nil
   :index (letm histogram))
 
diff --git a/histogram/ntuple.lisp b/histogram/ntuple.lisp
index a61dd14b38b88b3f7ac5d5ec15e2b6931d666257..437eaf5466ef09fdede7a4f8a300f87eec2d3101 100644
--- a/histogram/ntuple.lisp
+++ b/histogram/ntuple.lisp
@@ -1,6 +1,6 @@
 ;; N-tuples
 ;; Liam Healy Sat Feb  3 2007 - 12:53
-;; Time-stamp: <2008-02-17 18:39:48EST ntuple.lisp>
+;; Time-stamp: <2008-08-17 09:39:34EDT ntuple.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -11,7 +11,7 @@
 ;;; Writing a file
 (defmfun create-ntuple (filename data size)
   "gsl_ntuple_create"
-  ((filename :string) (data :pointer) (size size))
+  ((filename :string) (data :pointer) (size sizet))
   :c-return :pointer
   :documentation			; FDL
   "Create a new write-only ntuple file filename for
@@ -24,7 +24,7 @@
 ;;; Reading a file
 (defmfun open-ntuple (filename data size)
   "gsl_ntuple_create"
-  ((filename :string) (data :pointer) (size size))
+  ((filename :string) (data :pointer) (size sizet))
   :c-return :pointer
   :documentation			; FDL
   "Open an existing ntuple file filename for reading
diff --git a/histogram/operations.lisp b/histogram/operations.lisp
index 986f14e991b63b9d8644391f76ac1ff3c3ffb62e..73173889e3b4145d7030d5f9c63cb5bdde786caf 100644
--- a/histogram/operations.lisp
+++ b/histogram/operations.lisp
@@ -1,13 +1,13 @@
 ;; Histogram operations
 ;; Liam Healy, Mon Jan  1 2007 - 16:47
-;; Time-stamp: <2008-02-23 18:57:17EST operations.lisp>
+;; Time-stamp: <2008-08-17 09:34:52EDT operations.lisp>
 ;; $Id$
 
 (in-package :gsl)
 
 (defmfun equal-bins-p-1 (histogram1 histogram2)
   "gsl_histogram_equal_bins_p"
-  (((pointer histogram1) :pointer) ((pointer histogram2) :pointer))
+  (((mpointer histogram1) :pointer) ((mpointer histogram2) :pointer))
   :c-return :true-false
   :export nil
   :index equal-bins-p
@@ -16,7 +16,7 @@
 
 (defmfun equal-bins-p-2 (histogram1 histogram2)
   "gsl_histogram2d_equal_bins_p"
-  (((pointer histogram1) :pointer) ((pointer histogram2) :pointer))
+  (((mpointer histogram1) :pointer) ((mpointer histogram2) :pointer))
   :c-return :true-false
   :export nil
   :index equal-bins-p
@@ -32,7 +32,7 @@
 ;;; C function means; assumed to be error code.
 (defmfun m+-1 (histogram1 histogram2)
   "gsl_histogram_add"
-  (((pointer histogram1) :pointer) ((pointer histogram2) :pointer))
+  (((mpointer histogram1) :pointer) ((mpointer histogram2) :pointer))
   :export nil
   :index m+
   :documentation			; FDL
@@ -45,7 +45,7 @@
 ;;; C function means; assumed to be error code.
 (defmfun m+-2 (histogram1 histogram2)
   "gsl_histogram2d_add"
-  (((pointer histogram1) :pointer) ((pointer histogram2) :pointer))
+  (((mpointer histogram1) :pointer) ((mpointer histogram2) :pointer))
   :export nil
   :index m+
   :documentation			; FDL
@@ -66,7 +66,7 @@
 ;;; C function means; assumed to be error code.
 (defmfun m--1 (histogram1 histogram2)
   "gsl_histogram_sub"
-  (((pointer histogram1) :pointer) ((pointer histogram2) :pointer))
+  (((mpointer histogram1) :pointer) ((mpointer histogram2) :pointer))
   :export nil
   :index m-
   :documentation			; FDL
@@ -78,7 +78,7 @@
 ;;; C function means; assumed to be error code.
 (defmfun m--2 (histogram1 histogram2)
   "gsl_histogram2d_sub"
-  (((pointer histogram1) :pointer) ((pointer histogram2) :pointer))
+  (((mpointer histogram1) :pointer) ((mpointer histogram2) :pointer))
   :export nil
   :index m-
   :documentation			; FDL
@@ -97,7 +97,7 @@
 ;;; C function means; assumed to be error code.
 (defmfun m*-1 (histogram1 histogram2)
   "gsl_histogram_mul"
-  (((pointer histogram1) :pointer) ((pointer histogram2) :pointer))
+  (((mpointer histogram1) :pointer) ((mpointer histogram2) :pointer))
   :export nil
   :index m*
   :documentation			; FDL
@@ -110,7 +110,7 @@
 ;;; C function means; assumed to be error code.
 (defmfun m*-2 (histogram1 histogram2)
   "gsl_histogram2d_mul"
-  (((pointer histogram1) :pointer) ((pointer histogram2) :pointer))
+  (((mpointer histogram1) :pointer) ((mpointer histogram2) :pointer))
   :export nil
   :index m*
   :documentation			; FDL
@@ -131,7 +131,7 @@
 ;;; C function means; assumed to be error code.
 (defmfun m/-1 (histogram1 histogram2)
   "gsl_histogram_div"
-  (((pointer histogram1) :pointer) ((pointer histogram2) :pointer))
+  (((mpointer histogram1) :pointer) ((mpointer histogram2) :pointer))
   :export nil
   :index m/
   :documentation			; FDL
@@ -144,7 +144,7 @@
 ;;; C function means; assumed to be error code.
 (defmfun m/-2 (histogram1 histogram2)
   "gsl_histogram2d_div"
-  (((pointer histogram1) :pointer) ((pointer histogram2) :pointer))
+  (((mpointer histogram1) :pointer) ((mpointer histogram2) :pointer))
   :export nil
   :index m/
   :documentation			; FDL
@@ -165,7 +165,7 @@
 ;;; C function means; assumed to be error code.
 (defmfun scale-1 (histogram scale)
   "gsl_histogram_scale"
-  (((pointer histogram) :pointer) (scale :double))
+  (((mpointer histogram) :pointer) (scale :double))
   :export nil
   :index scale
   :documentation			; FDL
@@ -176,7 +176,7 @@
 ;;; C function means; assumed to be error code.
 (defmfun scale-2 (histogram scale)
   "gsl_histogram2d_scale"
-  (((pointer histogram) :pointer) (scale :double))
+  (((mpointer histogram) :pointer) (scale :double))
   :export nil
   :index scale
   :documentation			; FDL
@@ -194,7 +194,7 @@
 ;;; C function means; assumed to be error code.
 (defmfun shift-1 (histogram offset)
   "gsl_histogram_shift"
-  (((pointer histogram) :pointer) (offset :double))
+  (((mpointer histogram) :pointer) (offset :double))
   :export nil
   :index shift
   :documentation			; FDL
@@ -205,7 +205,7 @@
 ;;; C function means; assumed to be error code.
 (defmfun shift-2 (histogram offset)
   "gsl_histogram2d_shift"
-  (((pointer histogram) :pointer) (offset :double))
+  (((mpointer histogram) :pointer) (offset :double))
   :export nil
   :index shift
   :documentation			; FDL
diff --git a/histogram/probability-distribution.lisp b/histogram/probability-distribution.lisp
index a1c24d045ae1e0156dffafc64469b60c7416a353..7a1104e5ef107182422db7928c326417329f45e0 100644
--- a/histogram/probability-distribution.lisp
+++ b/histogram/probability-distribution.lisp
@@ -1,13 +1,13 @@
 ;; Histogram probability distribution.
 ;; Liam Healy, Mon Jan  1 2007 - 17:51
-;; Time-stamp: <2008-02-17 18:39:49EST probability-distribution.lisp>
+;; Time-stamp: <2008-08-17 09:37:15EDT probability-distribution.lisp>
 ;; $Id$
 
 (in-package :gsl)
 
 (defclass histogram-pdf ()
   ((pointer
-    :initarg :pointer :accessor pointer
+    :initarg :pointer :accessor mpointer
     :documentation
     "A C pointer to the GSL representation of the histogram.")
    (number-of-bins :initarg :number-of-bins :accessor number-of-bins))
@@ -16,7 +16,7 @@
 
 (defmfun alloc-1 (object)
   "gsl_histogram_pdf_alloc"
-  (((number-of-bins object) size))
+  (((number-of-bins object) sizet))
   :export nil
   :index alloc
   :c-return (cr :pointer)
@@ -24,7 +24,7 @@
 
 (defmfun alloc-2 (object)
   "gsl_histogram2d_pdf_alloc"
-  (((number-of-bins object) size))
+  (((number-of-bins object) sizet))
   :export nil
   :index alloc
   :c-return (cr :pointer)
@@ -35,14 +35,14 @@
 
 (defmfun free-1 (object)
   "gsl_histogram_pdf_free"
-  (((pointer object) :pointer))
+  (((mpointer object) :pointer))
   :export nil
   :index free
   :c-return :void)
 
 (defmfun free-2 (object)
   "gsl_histogram2d_pdf_free"
-  (((pointer object) :pointer))
+  (((mpointer object) :pointer))
   :export nil
   :index free
   :c-return :void)
@@ -52,7 +52,7 @@
 
 (defmfun pdf-init-1 (pdf histogram)
   "gsl_histogram_pdf_init"
-  (((pointer pdf) :pointer) ((pointer histogram) :pointer))
+  (((mpointer pdf) :pointer) ((mpointer histogram) :pointer))
   :return ()
   :export nil
   :index pdf-init
@@ -64,7 +64,7 @@
 
 (defmfun pdf-init-2 (pdf histogram)
   "gsl_histogram2d_pdf_init"
-  (((pointer pdf) :pointer) ((pointer histogram) :pointer))
+  (((mpointer pdf) :pointer) ((mpointer histogram) :pointer))
   :return ()
   :export nil
   :index pdf-init
@@ -84,7 +84,7 @@
 
 (defmfun sample-1 (pdf value)
   "gsl_histogram_pdf_sample"
-  (((pointer pdf) :pointer) (value :double))
+  (((mpointer pdf) :pointer) (value :double))
   :c-return :double
   :export nil
   :index sample
@@ -99,7 +99,7 @@
 
 (defmfun sample-2 (pdf value)
   "gsl_histogram2d_pdf_sample"
-  (((pointer pdf) :pointer) (value :double))
+  (((mpointer pdf) :pointer) (value :double))
   :c-return :double
   :export nil
   :index sample
diff --git a/histogram/read-write.lisp b/histogram/read-write.lisp
index 34a7e8b75bc22dc1bcb38c91d4c2f960ac7a15cf..0156c710893298a01db30730953032092dbe2d77 100644
--- a/histogram/read-write.lisp
+++ b/histogram/read-write.lisp
@@ -1,19 +1,19 @@
 ;; Reading and writing histograms.
 ;; Liam Healy 2008-02-17 17:11:23EST read-write.lisp
-;; Time-stamp: <2008-02-17 17:13:15EST read-write.lisp>
+;; Time-stamp: <2008-08-17 09:36:25EDT read-write.lisp>
 ;; $Id$
 
 (in-package :gsl)
 
 (defmfun write-binary-1 (object stream)
   "gsl_histogram_fwrite"
-  ((stream :pointer) ((pointer object) :pointer))
+  ((stream :pointer) ((mpointer object) :pointer))
   :export nil
   :index write-binary)
 
 (defmfun write-binary-2 (object stream)
   "gsl_histogram2d_fwrite"
-  ((stream :pointer) ((pointer object) :pointer))
+  ((stream :pointer) ((mpointer object) :pointer))
   :export nil
   :index write-binary)
 
@@ -22,13 +22,13 @@
 
 (defmfun read-binary-1 (object stream)
   "gsl_histogram_fread"
-  ((stream :pointer) ((pointer object) :pointer))
+  ((stream :pointer) ((mpointer object) :pointer))
   :export nil
   :index read-binary)
 
 (defmfun read-binary-2 (object stream)
   "gsl_histogram2d_fread"
-  ((stream :pointer) ((pointer object) :pointer))
+  ((stream :pointer) ((mpointer object) :pointer))
   :export nil
   :index read-binary)
 
@@ -37,14 +37,14 @@
 
 (defmfun write-formatted-1 (object stream format)
   "gsl_histogram_fprintf"
-  ((stream :pointer) ((pointer object) :pointer)
+  ((stream :pointer) ((mpointer object) :pointer)
    ((first format) :string) ((second format) :string))
   :export nil
   :index write-formatted)
 
 (defmfun write-formatted-2 (object stream format)
   "gsl_histogram2d_fprintf"
-  ((stream :pointer) ((pointer object) :pointer)
+  ((stream :pointer) ((mpointer object) :pointer)
    ((first format) :string) ((second format) :string))
   :export nil
   :index write-formatted)
@@ -73,13 +73,13 @@
 
 (defmfun read-formatted-1 (object stream format)
   "gsl_histogram_fscanf"
-  ((stream :pointer) ((pointer object) :pointer))
+  ((stream :pointer) ((mpointer object) :pointer))
   :export nil
   :index read-formatted)
 
 (defmfun read-formatted-2 (object stream format)
   "gsl_histogram2d_fscanf"
-  ((stream :pointer) ((pointer object) :pointer))
+  ((stream :pointer) ((mpointer object) :pointer))
   :export nil
   :index read-formatted)
 
diff --git a/histogram/statistics.lisp b/histogram/statistics.lisp
index 626c0df008cadebebe79fefedb3395ae5419833c..ef7a0da7aa8006d7de5edf61012be7d4c4e0ea62 100644
--- a/histogram/statistics.lisp
+++ b/histogram/statistics.lisp
@@ -1,72 +1,72 @@
 ;; Statistics of histograms.
 ;; Liam Healy, Mon Jan  1 2007 - 16:13
-;; Time-stamp: <2008-02-17 17:07:06EST statistics.lisp>
+;; Time-stamp: <2008-08-17 09:41:27EDT statistics.lisp>
 ;; $Id$
 
 (in-package :gsl)
 
-(defmfun gsl-max-1 (histogram)
+(defmfun mmax-1 (histogram)
   "gsl_histogram_max_val"
   (((pointer histogram) :pointer))
   :c-return :double
   :export nil
-  :index gsl-max
+  :index mmax
   :documentation			; FDL
   "The maximum value contained in the histogram bins.")
 
-(defmfun gsl-max-2 (histogram)
+(defmfun mmax-2 (histogram)
   "gsl_histogram2d_max_val"
   (((pointer histogram) :pointer))
   :c-return :double
   :export nil
-  :index gsl-max
+  :index mmax
   :documentation			; FDL
   "The maximum value contained in the histogram bins.")
 
 (defmethod gsl-max ((histogram histogram))
   "The maximum value contained in the histogram bins."
-  (histo-1d2d histogram gsl-max))
+  (histo-1d2d histogram mmax))
 
-(defmfun gsl-min-1 (histogram)
+(defmfun mmin-1 (histogram)
   "gsl_histogram_min_val"
   (((pointer histogram) :pointer))
   :c-return :double
   :export nil
-  :index gsl-min
+  :index mmin
   :documentation			; FDL
   "The minimum value contained in the histogram bins.")
 
-(defmfun gsl-min-2 (histogram)
+(defmfun mmin-2 (histogram)
   "gsl_histogram2d_min_val"
   (((pointer histogram) :pointer))
   :c-return :double
   :export nil
-  :index gsl-min
+  :index mmin
   :documentation			; FDL
   "The minimum value contained in the histogram bins.")
 
 (defmethod gsl-min ((histogram histogram)) ; FDL
   "The minimum value contained in the histogram bins."
-  (histo-1d2d histogram gsl-min))
+  (histo-1d2d histogram mmin))
 
-(defmfun gsl-max-index-1 (histogram)
+(defmfun max-index-1 (histogram)
   "gsl_histogram_max_bin"
   (((pointer histogram) :pointer))
-  :c-return size
+  :c-return sizet
   :export nil
-  :index gsl-max-index
+  :index max-index
   :documentation			; FDL
   "The index of the bin containing the maximum value. In the case
    where several bins contain the same maximum value the smallest
    index is returned.")
 
-(defmfun gsl-max-index-2 (histogram)
+(defmfun max-index-2 (histogram)
   "gsl_histogram2d_max_bin"
   (((pointer histogram) :pointer)
-   (xindex size) (yindex size))
-  :c-return size
+   (xindex sizet) (yindex sizet))
+  :c-return sizet
   :export nil
-  :index gsl-max-index
+  :index max-index
   :documentation			; FDL
   "The indices of the bin containing the maximum value. In the case
    where several bins contain the same maximum value the first bin
@@ -75,31 +75,31 @@
 (defmethod gsl-max-index (histogram)
   (histo-1d2d histogram gsl-max-index))
 
-(defmfun gsl-min-index-1 (histogram)
+(defmfun min-index-1 (histogram)
   "gsl_histogram_min_bin"
   (((pointer histogram) :pointer))
-  :c-return size
+  :c-return sizet
   :export nil
-  :index gsl-min-index
+  :index min-index
   :documentation			; FDL
   "The index of the bin containing the minimum value. In the case
    where several bins contain the same minimum value the smallest
    index is returned.")
 
-(defmfun gsl-min-index-2 (histogram)
+(defmfun min-index-2 (histogram)
   "gsl_histogram2d_min_bin"
   (((pointer histogram) :pointer)
-   (xindex size) (yindex size))
-  :c-return size
+   (xindex sizet) (yindex sizet))
+  :c-return sizet
   :export nil
-  :index gsl-min-index
+  :index min-index
   :documentation			; FDL
   "The indices of the bin containing the minimum value. In the case
    where several bins contain the same minimum value the first bin
    found is returned.")
 
-(defmethod gsl-min-index (histogram)
-  (histo-1d2d histogram gsl-min-index))
+(defmethod min-index (histogram)
+  (histo-1d2d histogram min-index))
 
 (defmfun mean-1 (histogram)
   "gsl_histogram_mean"
diff --git a/histogram/updating-accessing.lisp b/histogram/updating-accessing.lisp
index b4befcebbdba20191e2c427500999626297ef729..f5a2b7c1a29f877121fa993d020625910c241888 100644
--- a/histogram/updating-accessing.lisp
+++ b/histogram/updating-accessing.lisp
@@ -1,26 +1,16 @@
 ;; Updating and accessing histogram elements.
 ;; Liam Healy, Mon Jan  1 2007 - 14:43
-;; Time-stamp: <2008-03-27 23:09:26EDT updating-accessing.lisp>
+;; Time-stamp: <2008-08-17 09:41:04EDT updating-accessing.lisp>
 ;; $Id$
 
 (in-package :gsl)
 
-(defmfun increment-fix (histogram value)
-  "gsl_histogram_increment"
-  (((pointer histogram) :pointer) (value :double))
-  :index increment
-  :export nil)
-
-(defmfun increment-weight (histogram value weight)
-  "gsl_histogram_accumulate"
-  (((pointer histogram) :pointer) (value :double) (weight :double))
-  :index increment
-  :export nil)
-
-(defun-optionals increment (histogram value &optional weight)
-  -fix -weight
-  ;; FDL
-   "Update the histogram by adding the weight
+(defmfun increment-fix (histogram value &optional weight)
+  ("gsl_histogram_increment" "gsl_histogram_accumulate")
+  ((((mpointer histogram) :pointer) (value :double))
+   (((mpointer histogram) :pointer) (value :double) (weight :double)))
+  :documentation
+  "Update the histogram by adding the weight
    (which defaults to 1.0) to the
    bin whose range contains the coordinate x. 
 
@@ -36,8 +26,8 @@
 
 (defmfun maref ((histogram histogram) &rest i)
   "gsl_histogram_get"
-  (((pointer histogram) :pointer) ((first i) size))
-  :type :method 
+  (((pointer histogram) :pointer) ((first i) sizet))
+  :definition :method 
   :c-return :double
   :documentation			; FDL
   "Return the contents of the i-th bin of the histogram.
@@ -46,7 +36,7 @@
 
 (defmfun range (histogram i)
   "gsl_histogram_get_range"
-  (((pointer histogram) :pointer) (i size)
+  (((pointer histogram) :pointer) (i sizet)
    (lower :double) (upper :double))
   :documentation			; FDL
   "Find the upper and lower range limits of the i-th
@@ -59,14 +49,14 @@
    If i lies outside the valid range of indices for
    the histogram, then the error :EDOM is signalled.")
 
-(defmfun gsl-max-range (histogram)
+(defmfun max-range (histogram)
   "gsl_histogram_max"
   (((pointer histogram) :pointer))
   :c-return :double
   :documentation			; FDL
   "The maximum upper range limit of the histogram.")
 
-(defmfun gsl-min-range (histogram)
+(defmfun min-range (histogram)
   "gsl_histogram_min"
   (((pointer histogram) :pointer))
   :c-return :double
@@ -87,11 +77,11 @@
   :documentation			; FDL
   "Reset all the bins in the histogram to zero.")
 
-(defmfun histogram-find-1 (histogram value)
-  "gsl_histogram_find"
-  (((pointer histogram) :pointer) (value :double) (bin size))
-  :export nil
-  :index histogram-find
+(defmfun histogram-find (histogram x-value &optional y-value)
+  ("gsl_histogram_find" "gsl_histogram2d_find")
+  ((((mpointer histogram) :pointer) (x-value :double) (bin sizet))
+   (((mpointer histogram) :pointer) (x-value :double) (y-value :double)
+   (xbin sizet) (ybin sizet)))
   :documentation			; FDL
   "Finds the bin number which covers the coordinate value in
    the histogram.  The bin is located using a binary search. The
@@ -102,23 +92,11 @@
    the valid range of the histogram then the error :EDOM is
    signalled.")
 
-(defmfun histogram-find-2 (histogram x-value y-value)
-  "gsl_histogram2d_find"
-  (((pointer histogram) :pointer)
-   (x-value :double) (y-value :double)
-   (xbin size) (ybin size))
-  :export nil
-  :index histogram-find)
-
-(export 'histogram-find)
-(defun histogram-find (histogram &rest values)
-  (histo-1d2d histogram histogram-find
-	      ((first values))
-	      ((first values) (second values))))
-
+#|
  (letm ((histo (histogram 10)))		; should be a gsl-warning here, how to check?
      (set-ranges-uniform histo 0.0d0 10.0d0)
      (increment histo -2.0d0))
+|#
 ;;; Examples and unit test
 
 #|