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