Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get OCaml toplevel to use Batteries?

Tags:

ocaml

After reading the content on the OCaml web site, the Batteries web site, the OPAM web site, etc, I cannot figure out how to use this library. (It was even worse when I tried Core but I'll stick to batteries for now). Admittedly I'm new to OCaml's ecosystem, but I'm finding it more difficult to understand than Haskell's, than Python's, than Ubuntu's, or any other package-managed system.

So, can someone please tell me how do I get Batteries and OCaml loaded properly so I can start writing code?

I'm on a Mac, so I started here:

brew install opam # Install opam
opam switch 4.01.0 # Install 4.01.0 version of Ocaml
opam install batteries # Install batteries library

eval `opam config env`
ocaml # Run the toplevel
open Batteries # Try to use batteries

I may have left some commands out, but I believe these are the main ones. At the open command, the toplevel tells me Error: Unbound module Batteries.

Am I supposed to have to "link" libraries into the Ocaml interpreter because they are not loaded automatically?

Finally, how do I arrive at a working setup that I can then use to learn Ocaml and Batteries?

like image 298
Cam Avatar asked Nov 20 '13 19:11

Cam


2 Answers

Load it using findlib in the toplevel:

# #use "topfind";;
# #require "batteries";;
# open Batteries;;

You might like to look at Real World OCaml, which I believe has some instructions for setting up OCaml.

like image 123
Leo White Avatar answered Sep 28 '22 04:09

Leo White


The 'official' way is to use findlib:

ocamlfind batteries/ocaml

Alternatively, you can tell ocaml toplevel where to search for batteries modules:

ocaml -I /path/to/batteries/

e.g.

ocaml -I ~/.opam/4.00.1/lib/batteries

or

ocaml -I +batteries
like image 33
barti_ddu Avatar answered Sep 28 '22 05:09

barti_ddu