I wrote about monads recently here: Simple introduction to monads in OCaml
and state monads here: State monads in OCaml
thought this might be useful to someone trying to learn these as well
I wrote about monads recently here: Simple introduction to monads in OCaml
and state monads here: State monads in OCaml
thought this might be useful to someone trying to learn these as well
I see you do toplevel-open
in your code, which is generally only good for namespaced modules not identifiers.
A more idiomatic way to access definitions is to refer to them directly by their fully-qualified names, or do a local-open
.
open Mod
let f x = a ...
let g x = b ...
let h x = c ...
becomes
let f x = Mod.a ...
let g x =
let open Mod in
b ...
let h x = Mod.(c ...)
so for example:
let res = Monad.(
let* a = Some 5 in
let* b = Some 6 in
return (a + b)
)