12345678910111213141516171819202122232425262728293031323334353637383940414243(************************************************************************)(* * The Coq Proof Assistant / The Coq 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_bindings