Ltac2_plugin.Tac2ffiSourceThese functions allow to convert back and forth between OCaml and Ltac2 data representation. The to_* functions raise an anomaly whenever the data has not expected shape.
WARNING these functions copy
Toplevel representation of OCaml exceptions. Invariant: no LtacError should be used with err.
val of_result :
('a -> Tac2val.valexpr) ->
('a, Exninfo.iexn) Stdlib.result ->
Tac2val.valexprval to_result :
(Tac2val.valexpr -> 'a) ->
Tac2val.valexpr ->
('a, Exninfo.iexn) Stdlib.resultval of_fun1 :
(Tac2val.valexpr -> 'a) ->
('b -> Tac2val.valexpr) ->
('a, 'b) fun1 ->
Tac2val.valexprval to_fun1 :
('a -> Tac2val.valexpr) ->
(Tac2val.valexpr -> 'b) ->
Tac2val.valexpr ->
('a, 'b) fun1val of_fun2 :
(Tac2val.valexpr -> 'a) ->
(Tac2val.valexpr -> 'b) ->
('c -> Tac2val.valexpr) ->
('a, 'b, 'c) fun2 ->
Tac2val.valexprval to_fun2 :
('a -> Tac2val.valexpr) ->
('b -> Tac2val.valexpr) ->
(Tac2val.valexpr -> 'c) ->
Tac2val.valexpr ->
('a, 'b, 'c) fun2val of_pair :
('a -> Tac2val.valexpr) ->
('b -> Tac2val.valexpr) ->
('a * 'b) ->
Tac2val.valexprval to_pair :
(Tac2val.valexpr -> 'a) ->
(Tac2val.valexpr -> 'b) ->
Tac2val.valexpr ->
'a * 'bval of_triple :
('a -> Tac2val.valexpr) ->
('b -> Tac2val.valexpr) ->
('c -> Tac2val.valexpr) ->
('a * 'b * 'c) ->
Tac2val.valexprval to_triple :
(Tac2val.valexpr -> 'a) ->
(Tac2val.valexpr -> 'b) ->
(Tac2val.valexpr -> 'c) ->
Tac2val.valexpr ->
'a * 'b * 'cException
Ltac2-defined exceptions seen from OCaml side