fact: Record pcADT (Sig : ADTSig) (cRep : Type) : Type := { pcConstructors : forall idx : ConstructorIndex Sig, cConstructorType cRep (ConstructorDom Sig idx); pcMethods : forall idx : MethodIndex Sig, cMethodType cRep (fst (MethodDomCod Sig idx)) (snd (MethodDomCod Sig idx)) }.
imports: Fiat.Common Fiat.Computation Fiat.ADT.ADTSig Fiat.ADT Coq.Sets.Ensembles