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
758f1032c1
🔥 a redundant import.
2018-03-07 09:07:42 -05:00
Rob Rix
beca16b30b
🔥 a bunch of redundant imports.
2018-03-07 09:05:53 -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
Patrick Thomson
d4c39f075b
remove otiose comment
2018-03-02 15:35:37 -08:00
Patrick Thomson
226ff88723
Rename MonadFunction to MonadValue.
2018-03-02 11:45:56 -08:00
Patrick Thomson
cc487a3872
Evaluatable instance for If and NoOp.
2018-03-02 11:32:25 -08:00
Rob Rix
57eb8648ba
🔥 the term parameter from Type.
2018-03-02 10:17:38 -05:00
Rob Rix
f9797594e6
Derive Eq, Ord, & Show instances for Subterm.
2018-03-01 17:11:22 -05:00
Rob Rix
5f35fb6397
Don’t list the Data.Abstract.Value exports explicitly.
2018-03-01 16:57:47 -05:00
Rob Rix
64aaf40b2f
Punt on evaluating Program nodes.
...
@tclem’s work in #1517 is revising all of this so this will do for now.
2018-03-01 16:54:04 -05:00
Rob Rix
e20339bfdd
🔥 a TODO.
2018-03-01 16:35:40 -05:00
Rob Rix
a8d16aa05a
Rejigger the imports a little.
2018-03-01 16:33:45 -05:00
Rob Rix
73a5bcec3d
Simplify import evaluation.
2018-03-01 16:31:48 -05:00
Rob Rix
dcc332a75b
Move require/load into Data.Abstract.Evaluatable.
2018-03-01 16:30:26 -05:00
Rob Rix
244e1c2ad7
🔥 the orphan MonadAnalysis instance.
2018-03-01 16:07:28 -05:00
Rob Rix
9638c64024
eval definitions have MonadAnalysis available.
2018-03-01 15:14:15 -05:00
Rob Rix
db751ae06b
Re-export the Control.Abstract.Function module.
2018-03-01 15:13:13 -05:00
Rob Rix
5c26fb3091
Move MonadFunction into its own module.
2018-03-01 15:12:40 -05:00
Rob Rix
74277a8ea8
🔥 a FIXME.
2018-03-01 15:09:36 -05:00
Rob Rix
c2a60138c6
Re-export MonadAnalysis.
2018-03-01 15:07:54 -05:00
Rob Rix
3b3e6ef5a0
Move the constraints into the instances.
2018-03-01 15:06:01 -05:00
Rob Rix
f34a15d7c7
Move the MonadAnalysis typeclass into Control.Abstract.Analysis.
2018-03-01 15:03:23 -05:00
Rob Rix
8f446cbd60
Break the dependency of MonadAnalysis on MonadFunction.
2018-03-01 15:00:26 -05:00
Rob Rix
3e89b76015
Use MonadAnalysis to evaluate closure bodies.
2018-03-01 14:56:43 -05:00
Rob Rix
452fe44952
Define a MonadAnalysis interface.
2018-03-01 14:56:31 -05:00
Rob Rix
4c5ca748d8
Align the signature of eval.
2018-03-01 14:53:12 -05:00
Rob Rix
4c53ad729f
Add a FIXME.
2018-03-01 12:09:34 -05:00
Rob Rix
a9c8e3f85f
We don’t use DataKinds here.
2018-03-01 12:08:52 -05:00
Rob Rix
f53ec5aa61
Sort the language extensions.
2018-03-01 12:08:44 -05:00
Rob Rix
6141815573
🔥 a redundant constraint for the default signature.
2018-03-01 12:08:31 -05:00
Rob Rix
ae3842d2a5
We don’t use ScopedTypeVariables.
2018-03-01 12:08:03 -05:00
Rob Rix
ceaa2834a8
🔥 a redundant type annotation.
2018-03-01 12:07:52 -05:00
Rob Rix
56a7483165
We don’t use TypeApplications here.
2018-03-01 12:07:31 -05:00
Rob Rix
a5d5d26165
We don’t use TypeOperators.
2018-03-01 12:07:01 -05:00
Rob Rix
65fdc4d805
We don’t define GADTs here.
2018-03-01 12:06:46 -05:00
Rob Rix
d78b259987
FunctionalDependencies implies MultiParamTypeClasses.
2018-03-01 12:06:35 -05:00
Rob Rix
acb53236c2
We no longer require rank-2 types.
2018-03-01 12:06:20 -05:00
Rob Rix
f05f0951f0
Rename MonadFunctionAbstraction to MonadFunction.
2018-03-01 12:01:36 -05:00
Rob Rix
d8540f9e4c
Consolidate the Evaluatable module’s exports.
2018-03-01 11:59:23 -05:00
Rob Rix
c0b2bd1c8a
Rename Control.Monad.Effect.Evaluatable to Data.Abstract.Evaluatable.
2018-03-01 11:54:05 -05:00
Rob Rix
ecd81878fc
Rename Control.Monad.Effect.Addressable to Control.Abstract.Addressable.
2018-03-01 11:50:38 -05:00
Rob Rix
9cedb403bd
🔥 redundant imports.
2018-03-01 10:03:45 -05:00
Rob Rix
9192a35b06
Merge branch 'eval-effect' into algebraic-evaluation
2018-03-01 09:56:12 -05:00
joshvera
83e2ba56e5
Merge remote-tracking branch 'origin/master' into prologue
2018-02-28 15:30:42 -05:00
Rob Rix
6501431dea
🔥 the effect list parameter from Evaluatable.
2018-02-28 14:14:45 -05:00
Rob Rix
7198c506be
Evaluate in terms of Evaluator.
2018-02-28 14:09:06 -05:00