[experiment] Use ext-lib monads#1241
Conversation
|
I think it is important that MetaRocq has as few dependencies as possible so it can be used in libraries, say if and when it provides adequate meta-programming facilities. I don't know what the others think. |
|
It was discussed previously #952. |
|
I think we should depend on ext-lib here, no need to reinvent the wheel. I also expect we'll be using itree stuff in combination with MetaRocq in some projects, so the earlier the better. AFAIR the monad_utils was pretty much a copy-paste of ext-lib at the time, so vert probably no big compat issues switching from monad_utils to ext-lib's monads will arise. The |
|
There is a PR rocq-community/coq-ext-lib#136 adding cummulativity to ext-lib. There was interest in merging it, but there were some compatibility issues with QuickChick that haven't been solved yet. |
|
FTR, CertiCoq already depends on ext-lib as well. |
Working with projects using both MetaRocq and ext-lib can be painful due to universe & notation clashes. Currently, the only difference between MetaRocq's and extlib's monad definition is cumulativity. However, cumulativity doesn't appear to be necessary for MetaRocq (I haven't yet tested this PR on all developments using MetaRocq, so it might be the case that it is needed there).