Parsexp.Conv_many_and_locations
val parse_string :
string ->
((Sexplib0.Sexp.t * Positions.range) -> 'a) ->
('a list, Conv_error.t) result
val parse_string_exn :
string ->
((Sexplib0.Sexp.t * Positions.range) -> 'a) ->
'a list
val conv :
((sexp_list * Positions.t) * Positions.t) ->
((Sexplib0.Sexp.t * Positions.range) -> 'a) ->
('a list, Of_sexp_error.t) result
val conv_exn :
((sexp_list * Positions.t) * Positions.t) ->
((Sexplib0.Sexp.t * Positions.range) -> 'a) ->
'a list
val conv_combine :
((sexp_list * Positions.t) * Positions.t, Parse_error.t) result ->
((Sexplib0.Sexp.t * Positions.range) -> 'a) ->
('a list, Conv_error.t) result
Convenience function for merging parsing and conversion errors.
For instance if you have a load
function as follow:
val load : string -> (Sexp.t list * Positions.t, Parse_error.t) result
then you can create a load_conv
function as follow:
let load_conv : string -> (Sexp.t -> 'a) -> ('a list, Conv_error.t) result
= fun filename f -> conv_combine (load filename) f