Open gelisam opened 3 years ago
No, I think you're exactly correct here! An earlier version of the library had both bare types and Proof
types, using Proof
more like a monad, but that was sort of confusing and annoying. I bet this didn't make the transition entirely intact.
It is currently:
but my understanding is that
f
is something likeIsCons (Rev (Rev xs))
, which is uninhabited. I think the third argument should beProof f
, notf
:This would make it possible to use a
Proof (Rev (Rev xs) == xs)
to convert aProof (IsCons (Rev (Rev xs)))
into aProof (IsCons xs)
.If I am misunderstanding the purpose of
substitute
, is there a different way to use aProof (Rev (Rev xs) == xs)
to convert aProof (IsCons (Rev (Rev xs)))
into aProof (IsCons xs)
?