added class Binding and function narrowVar. optional result for binding function. added Solver class and branchOn function. lifting for Solver. lifting for Binding. class context for binding function. added module for boolean constraints. added context argument to class Narrow. extended boolean constraint module. guards and ifThenElse in boolean constraint module. added first test for boolean constraint solver. it fails because constraints are not solved after computation. hlint suggestions. test passes after fixing sat solver package. more tests for boolean constraints. added test for unsolved boolean store and Solvable class. return context from normal form functions and use it in evaluator. test with unsolvable constraint after backtracking now succeeds. constraint solving for partial normal forms. reimplemented booleanToBool. Retain variables and delayed computations. simpler formula for backtracking test.
implemented iterative deepening depth-first search.
compute initial context with strategies. removed class methods emptyContext and extendContext for strategies and strategy transformers.
strategies and transformers.
I have added classes for strategies and strategy transformers and implemented depth first search with call time choice using this machinery. As an aside, CFLP computations don't have a ChocieStore context anymore. They can be executed with or without call-time choice semantics. added strategy class and monadic instance added instances for monadic strategies and adapted some operations. added infrastructure for strategy transformers added Enumerable class temporarily generalized list result to m'. extended CFLP class with associated types. adapted eval functions, changed some types, and fixed tests. Ctx type function in extra type class, Narrowing class simpler, n-queens working. removed context from StrategyT and such. added context and label to Strategy.choose. combine contexts of strategy and transformer. added context parameter to strategy. tests fail, call-time choice needs to be implemented as transformer. implemented call-time choice as strategy transformer. Res as type family. context transformers. specialised Results class back to Enumerable. placed definition of emptyContext in Strategy class. depth-first search in new file. reorderings. added strategy transformers. implemented strategy transformers and adjusted dependent code. re-added moved module for strategy transformers. combine ctc and dfs more flexibly. eliminated ChoiceStore context for computations. generalized CFLP instances.
The current version of GHC fails to compile complex higher-order programs, probably due to incomplete support for type equalities in superclass constraints. I've rewritten the code to use mptc with fundeps which requires an undecidable instances pragma but compiles much faster.