As Ken Shan points out, this is an instance of the algorithm
for converting name/year citations (like 'see Montague 1970')
to numerals corresponding to their position in the
- bibliography ('see [24]'). Except that bibliograpic numerals
+ bibliography ('see [24]'). Except that bibliographic numerals
don't start with zero.
Give some thought to efficiency: there are straightforward
fun s -> M.bind (u s) (fun (a, s') -> f a s');;
let elevate (m : 'a M) : 'a stateT(M) =
- fun s -> Wrapped.bind w (fun a -> Wrapped.unit (a, s));;
+ fun s -> M.bind w (fun a -> M.unit (a, s));;
That won't compile in OCaml because we use the `M`s in a way that's intuitive but unrecognized by OCaml. What OCaml will recognize is more complex. Don't worry; you won't need to code a general implementation of StateT.