Closed recursion-ninja closed 5 years ago
The Control.Evaluation
module has been reworked & refactored to omit the NoOp
value. The associated test-suite has been vastly expanded. The high level computation has also been updated to reflect this lack of an identity state. In the defective case described above, the expected work is now correctly performed. See this commit: 356fd8d
Additionally, new tests were added to the integration test-suite to ensure that the SAVE
/LOAD
/REPORT
case described above does not regress. See this commit: 7eb9577
The evaluation model report a
NoOp
value from the following script:Thus script should preform I/O work attempting to deserialize the
"graph.bin"
file contents, and on a success, report the graph state that was deserialized.I think one prudent solution might be to remove the
NoOp
value from theEvalUnit
along with theMonoid
andMonadPlus
instances from theEvaluation
monad. I believe we will only want to operate over non-empty structures (such asNonEmpty Command
) with something liketraverse1
, so theNoOp
value is probably better left as unrepresented.Once resolved, we should add integration tests to ensure that the evaluation model works on a variety of use cases for retrieving input and writing output, not just
READ
/REPORT
commands.