-
Notifications
You must be signed in to change notification settings - Fork 2
Understand and explore whether we really need that many monads in SymEval
#112
Comments
For the record, I think we can drastically simplify |
Another piece of information to use: #110 (comment) |
The
Why the |
I've been talking with @lucaspena about how to change the weighted list into a |
In fact, I think that we can more or less easily use the following monad: data Tree lang a = Leaf a | Node (Maybe (TermMeta lang SymVar)) [Tree lang a] which keeps the branching and at each point records "the term at this point." At the very list it has the usual @lucaspena will you give it a go? Otherwise I can try tomorrow! |
Current progress:
|
dev
: understand and explore whether we really need that many monads in SymEval
SymEval
In #110 we started using a pure and parallel
solve
function; which meant we could removeIO
from the symbolic engine altogether! 🎉Yet, the
SymEval
monad now looks like:And, in particular, the
StateT
is the one that hurts our ability to parallelize the symbolic engine even further: every call tomapM
can't be replaced by aparMap
because of the state being threaded through.This issue aims at document an exploration of the design space: now that we have no more
IO
to deal with, we might be able to afford ourselves better types and an even cleaner implementation.One particular point where it might be interesting to attempt to parallelize is the
Monad
instance forWeigthedList
.The text was updated successfully, but these errors were encountered: