Rob Rix
669f652062
Define a LiftEffect instance for Eff.
2018-03-07 11:05:11 -05:00
Rob Rix
0087c5a1d1
Define a typeclass for lifting effects into some wrapping context.
2018-03-07 11:04:53 -05:00
Rob Rix
86fb1a8706
Parameterize TracingAnalysis by the list of effects.
2018-03-07 10:53:19 -05:00
Rob Rix
3780ffa628
Disable TypeFamilies.
2018-03-07 10:52:40 -05:00
Rob Rix
41103a52fe
Rearrange the parameters to Evaluator.
2018-03-07 10:43:05 -05:00
Rob Rix
29866143b7
🔥 the root set effect.
2018-03-07 10:39:48 -05:00
Rob Rix
7520910147
📝 the CachingEffects.
2018-03-07 10:39:24 -05:00
Rob Rix
158c9251fb
🔥 EvaluationEffects.
2018-03-07 10:36:18 -05:00
Rob Rix
54033f5926
Copy the comments for the evaluator effects.
2018-03-07 10:35:25 -05:00
Rob Rix
a2f3c0c6df
Define CachingEffects in terms of EvaluatorEffects.
2018-03-07 10:33:54 -05:00
Rob Rix
f534844342
Define DeadCodeEffects in terms of EvaluatorEffects.
2018-03-07 10:28:23 -05:00
Rob Rix
ad234eb56b
Define TracingEffects in terms of EvaluatorEffects.
2018-03-07 10:27:31 -05:00
Rob Rix
743c17e74c
Extract an EvaluatorEffects synonym.
2018-03-07 10:24:07 -05:00
Rob Rix
0cc7ece380
📝 Tracer.
2018-03-07 10:21:40 -05:00
Rob Rix
83228ce526
Use the Tracer effect synonym in TracingEffects.
2018-03-07 10:21:02 -05:00
Rob Rix
762ab7f31d
Define a Tracer effect synonym.
2018-03-07 10:20:50 -05:00
Rob Rix
a3e500ca14
Define a Bitraversable instance for Subterm.
2018-03-07 10:18:37 -05:00
Rob Rix
26b34baf5e
Define a Bifoldable instance for Subterm.
2018-03-07 10:18:01 -05:00
Rob Rix
bd608f713c
Derive Foldable, Functor, & Traversable instances for Subterm.
2018-03-07 10:17:24 -05:00
Rob Rix
1072ab151b
Define a Bifunctor instance for Subterm.
2018-03-07 10:16:59 -05:00
Rob Rix
352fc2ff07
🔥 redundant constraints on evaluateTerm.
2018-03-07 09:14:38 -05:00
Rob Rix
89b0890336
Reformat TracingAnalysis onto a new line.
2018-03-07 09:09:13 -05:00
Rob Rix
758f1032c1
🔥 a redundant import.
2018-03-07 09:07:42 -05:00
Rob Rix
62a0548573
Re-export Subterm/SubtermAlgebra.
2018-03-07 09:07:37 -05:00
Rob Rix
beca16b30b
🔥 a bunch of redundant imports.
2018-03-07 09:05:53 -05:00
Rob Rix
85cea81d5c
Re-export a bunch of effect-related modules.
2018-03-07 09:03:51 -05:00
Rob Rix
fa6062fa9c
List the Control.Abstract.Analysis exports explicitly.
2018-03-07 09:02:51 -05:00
Rob Rix
b2f9b1f644
Align the effect comments.
2018-03-06 17:38:47 -05:00
Rob Rix
9563c4c309
📝 how to recover the linear/reachable state analyses.
2018-03-06 17:32:30 -05:00
Rob Rix
f78d8c717f
🔥 evaluateReach.
2018-03-06 17:31:15 -05:00
Rob Rix
927c3fe608
Generalize evaluateTrace to arbitrary trace types.
2018-03-06 17:31:01 -05:00
Rob Rix
3579304444
Sort the contexts of evaluateTrace and evaluateReach.
2018-03-06 17:29:32 -05:00
Rob Rix
833e6af0f5
Rename v to value.
2018-03-06 17:28:20 -05:00
Rob Rix
95510010ba
🔥 the commented-out evTell.
2018-03-06 17:27:06 -05:00
Rob Rix
68b7ffc612
Define analyzeTerm using getConfiguration.
2018-03-06 17:26:45 -05:00
Rob Rix
8be2e14849
Define getConfiguration in terms of askRoots.
2018-03-06 17:25:22 -05:00
Rob Rix
f6cd19ddb9
Add askRoots to the MonadEvaluator interface with a default definition.
2018-03-06 17:24:14 -05:00
Rob Rix
6650e4de4e
Define getConfiguration as a method on MonadEvaluator.
2018-03-06 17:21:46 -05:00
Rob Rix
4e9f13a035
Use the embedSubterm helper.
2018-03-06 17:18:00 -05:00
Rob Rix
ee911a0990
🔥 MonadTrace.
2018-03-06 17:14:52 -05:00
Rob Rix
c9a74da233
Re-enable the tracing analysis.
2018-03-06 17:13:58 -05:00
Rob Rix
ca32bdc551
Define 'analyzeTerm' for 'CachingAnalysis'.
2018-03-06 16:46:38 -05:00
Rob Rix
76c69dce45
📝 analyzeTerm.
2018-03-06 16:43:23 -05:00
Rob Rix
e0e1dc2e67
Reformat/expand the 📝 for evaluateTerm.
2018-03-06 16:43:15 -05:00
Rob Rix
b0b93c7147
Move the 📝 for evaluateTerm down.
2018-03-06 16:40:49 -05:00
Rob Rix
25e5af382e
Define dead code analysis using analyzeTerm.
2018-03-06 16:40:15 -05:00
Rob Rix
2ab50cda5e
Evaluation analyzes via eval.
2018-03-06 16:39:37 -05:00
Rob Rix
c68728ea06
Define an analyzeTerm method on MonadAnalysis.
2018-03-06 16:36:06 -05:00
Patrick Thomson
c3d01b6602
Resuscitate the caching evaluator.
...
The caching analysis had been disabled, as it was still written in the
open-interpreter style. This patch restores it, defining a
`CachingAnalysis` newtype that uses nondeterministic but convergent
caching in its `MonadAnalysis` instance. This also defines an
`embedSubterm` helper that is useful in defining new analysis passes.
Thanks to @robrix for 🍐 !
2018-03-06 13:51:00 -05:00
Josh Vera
7e22cf8f69
Merge pull request #1522 from github/haddock-fixes-mk2
...
Further fixes for Haddock syntax.
2018-03-05 16:59:29 -05:00