fact: Fixpoint dataP (T : Type) (X : T -> Type) (d : data X) (R : Type) : Type := match d with | Inj _X x => x -> R | Get X x => X x -> R | @Prod _ _ l r => dataP l (dataP r R) | @Sigma _ _ i s => forall i, dataP (s i) R | @Pi _ _ i s => (forall i, dataD (s i)) -> R end.
imports: String List ExtLib.Data.HList