BLAS and LAPACK binding in OCaml with static size checking for matrix operations