1234567891011121314151617181920212223242526272829303132333435363738394041424344454647(************************************************************************)(* * The Rocq Prover / The Rocq Development Team *)(* v * Copyright INRIA, CNRS and contributors *)(* <O___,, * (see version control and CREDITS file for authors & dates) *)(* \VV/ **************************************************************)(* // * This file is distributed under the terms of the *)(* * GNU Lesser General Public License Version 2.1 *)(* * (see LICENSE file for the text of the license) *)(************************************************************************)openTac2valopenTac2ffiopenTac2typesmoduleValue=Tac2ffi(** Make a representation with a dummy from function *)letmake_to_reprf=Tac2ffi.make_repr(fun_->assertfalse)f(** More ML representations *)letto_qhypv=matchValue.to_blockvwith|(0,[|i|])->AnonHyp(Value.to_inti)|(1,[|id|])->NamedHyp(CAst.make(Value.to_identid))|_->assertfalseletqhyp=make_to_reprto_qhypletto_bindings=function|ValInt0->NoBindings|ValBlk(0,[|vl|])->ImplicitBindings(Value.to_listValue.to_constrvl)|ValBlk(1,[|vl|])->ExplicitBindings((Value.to_list(funp->to_pairto_qhypValue.to_constrp)vl))|_->assertfalseletbindings=make_to_reprto_bindingsletto_constr_with_bindingsv=matchValue.to_tuplevwith|[|c;bnd|]->(Value.to_constrc,to_bindingsbnd)|_->assertfalseletconstr_with_bindings=make_to_reprto_constr_with_bindingsletval_format=Tac2dyn.Val.create"format"letformat=repr_extval_format