functor (F : Cstubs.FOREIGN->   sig     module Dense_real :       sig         val mat_struct :           Owl_types.Dense_real.mat_struct Ctypes.structure Ctypes.typ         val vec_struct :           Owl_types.Dense_real.vec_struct Ctypes.structure Ctypes.typ         val gsl_vector_alloc :           (Unsigned.size_t ->            Owl_types.Dense_real.vec_struct Ctypes.structure Ctypes_static.ptr            F.return)           F.result         val gsl_matrix_alloc :           (Unsigned.size_t ->            Unsigned.size_t ->            Owl_types.Dense_real.mat_struct Ctypes.structure Ctypes_static.ptr            F.return)           F.result         val gsl_matrix_get_col :           (Owl_types.Dense_real.vec_struct Ctypes.structure Ctypes_static.ptr ->            Owl_types.Dense_real.mat_struct Ctypes.structure Ctypes_static.ptr ->            int -> int F.return)           F.result         val gsl_matrix_equal :           (Owl_types.Dense_real.mat_struct Ctypes.structure Ctypes_static.ptr ->            Owl_types.Dense_real.mat_struct Ctypes.structure Ctypes_static.ptr ->            int F.return)           F.result         val gsl_matrix_isnull :           (Owl_types.Dense_real.mat_struct Ctypes.structure Ctypes_static.ptr ->            int F.return)           F.result         val gsl_matrix_ispos :           (Owl_types.Dense_real.mat_struct Ctypes.structure Ctypes_static.ptr ->            int F.return)           F.result         val gsl_matrix_isneg :           (Owl_types.Dense_real.mat_struct Ctypes.structure Ctypes_static.ptr ->            int F.return)           F.result         val gsl_matrix_isnonneg :           (Owl_types.Dense_real.mat_struct Ctypes.structure Ctypes_static.ptr ->            int F.return)           F.result         val gsl_matrix_min :           (Owl_types.Dense_real.mat_struct Ctypes.structure Ctypes_static.ptr ->            float F.return)           F.result         val gsl_matrix_min_index :           (Owl_types.Dense_real.mat_struct Ctypes.structure Ctypes_static.ptr ->            Unsigned.size_t Ctypes_static.ptr ->            Unsigned.size_t Ctypes_static.ptr -> unit F.return)           F.result         val gsl_matrix_max :           (Owl_types.Dense_real.mat_struct Ctypes.structure Ctypes_static.ptr ->            float F.return)           F.result         val gsl_matrix_max_index :           (Owl_types.Dense_real.mat_struct Ctypes.structure Ctypes_static.ptr ->            Unsigned.size_t Ctypes_static.ptr ->            Unsigned.size_t Ctypes_static.ptr -> unit F.return)           F.result       end     module Dense_complex :       sig         val mat_struct :           Owl_types.Dense_complex.mat_struct Ctypes.structure Ctypes.typ         val vec_struct :           Owl_types.Dense_complex.vec_struct Ctypes.structure Ctypes.typ         val gsl_matrix_complex_equal :           (Owl_types.Dense_complex.mat_struct Ctypes.structure            Ctypes_static.ptr ->            Owl_types.Dense_complex.mat_struct Ctypes.structure            Ctypes_static.ptr -> int F.return)           F.result         val gsl_matrix_complex_isnull :           (Owl_types.Dense_complex.mat_struct Ctypes.structure            Ctypes_static.ptr -> int F.return)           F.result         val gsl_matrix_complex_ispos :           (Owl_types.Dense_complex.mat_struct Ctypes.structure            Ctypes_static.ptr -> int F.return)           F.result         val gsl_matrix_complex_isneg :           (Owl_types.Dense_complex.mat_struct Ctypes.structure            Ctypes_static.ptr -> int F.return)           F.result         val gsl_matrix_complex_isnonneg :           (Owl_types.Dense_complex.mat_struct Ctypes.structure            Ctypes_static.ptr -> int F.return)           F.result       end     module Sparse_real :       sig         val spmat_struct :           Owl_types.Sparse_real.spmat_struct Ctypes.structure Ctypes.typ         val gsl_spmatrix_alloc :           (int ->            int ->            Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr F.return)           F.result         val gsl_spmatrix_alloc_nzmax :           (int ->            int ->            int ->            int ->            Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr F.return)           F.result         val gsl_spmatrix_set :           (Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr -> int -> int -> float -> int F.return)           F.result         val gsl_spmatrix_get :           (Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr -> int -> int -> float F.return)           F.result         val gsl_spmatrix_add :           (Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr ->            Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr ->            Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr -> int F.return)           F.result         val gsl_spmatrix_scale :           (Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr -> float -> int F.return)           F.result         val gsl_spmatrix_memcpy :           (Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr ->            Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr -> int F.return)           F.result         val gsl_spmatrix_compcol :           (Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr ->            Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr F.return)           F.result         val gsl_spmatrix_minmax :           (Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr ->            float Ctypes_static.ptr -> float Ctypes_static.ptr -> int F.return)           F.result         val gsl_spmatrix_equal :           (Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr ->            Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr -> int F.return)           F.result         val gsl_spmatrix_transpose_memcpy :           (Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr ->            Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr -> int F.return)           F.result         val gsl_spmatrix_set_zero :           (Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr -> int F.return)           F.result         val gsl_spblas_dgemm :           (float ->            Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr ->            Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr ->            Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr -> int F.return)           F.result         val gsl_spmatrix_d2sp :           (Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr ->            Owl_types.Dense_real.mat_struct Ctypes.structure Ctypes_static.ptr ->            int F.return)           F.result         val gsl_spmatrix_sp2d :           (Owl_types.Dense_real.mat_struct Ctypes.structure Ctypes_static.ptr ->            Owl_types.Sparse_real.spmat_struct Ctypes.structure            Ctypes_static.ptr -> int F.return)           F.result       end   end