123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354(*******************************************************************************
* electrod - a model finder for relational first-order linear temporal logic
*
* Copyright (C) 2016-2020 ONERA
* Authors: Julien Brunel (ONERA), David Chemouil (ONERA)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* SPDX-License-Identifier: MPL-2.0
* License-Filename: LICENSE.md
******************************************************************************)openContainersmoduleH=Hashconstypet=stringH.hash_consedmoduleS=H.Make(structtypet=stringlethash=String.hashletequal=String.equalend)(* ********************* *)(* table for hashconsing *)(* ********************* *)lettable=S.create271(* ********************* *)letmakes=S.hashconstableslethashsym=sym.H.hkeyletcompares1s2=s1.H.tag-s2.H.tagletcompare_strings1s2=String.compares1.H.nodes2.H.nodeletequalx1x2=Stdlib.(x1==x2)letppoutat=(* Format.fprintf out "%s/%d" at.H.node at.H.tag *)Format.fprintfout"%s"at.H.nodeincludeIntf.Print.Mixin(structtypenonrect=tletpp=ppend)