Rob Rix
37e5ba4986
Split concretization into the primitive operations.
...
This allows us to produce values of the correct type for abstract domains which don’t distinguish between primitive types, and to act on the expected type when e.g. typechecking by unifying.
2019-12-20 09:57:19 -05:00
Rob Rix
582c71f355
Reformat the language pragmas.
2019-12-19 15:12:44 -05:00
Rob Rix
3f43fb7290
Apply stylish-haskell to Analysis.Effect.Domain.
2019-12-19 15:11:50 -05:00
Rob Rix
2bbd2e08ef
Reformat the language extensions.
2019-12-19 14:58:30 -05:00
Rob Rix
26cf1d3a15
Revert "Represent import graphs’ semi-abstract values more discretely."
...
This reverts commit 2e3713db34
.
2019-12-19 14:57:01 -05:00
Rob Rix
2e3713db34
Represent import graphs’ semi-abstract values more discretely.
2019-12-19 14:56:55 -05:00
Rob Rix
f00affb958
🔥 commented-out Analysis implementations.
2019-12-19 14:44:22 -05:00
Rob Rix
89d7bd5aaf
Strengthen the constraints available to eval.
2019-12-19 14:44:08 -05:00
Rob Rix
00e506cdec
Run the Domain effect.
2019-12-19 14:43:28 -05:00
Rob Rix
0f030b3dcc
Note a FIXME.
2019-12-19 14:42:39 -05:00
Rob Rix
bcb4eb99d8
Define an Algebra instance for DomainC.
2019-12-19 14:42:21 -05:00
Rob Rix
3003f3fc10
Define a handler for Domain.
2019-12-19 14:33:15 -05:00
Rob Rix
187284782e
Define a MonadTrans instance.
2019-12-19 14:33:11 -05:00
Rob Rix
3f23042191
Derive some instances.
2019-12-19 14:33:02 -05:00
Rob Rix
3ff821bdde
Define a Domain carrier.
2019-12-19 14:32:54 -05:00
Rob Rix
17a6f02894
Note a FIXME.
2019-12-19 14:31:40 -05:00
Rob Rix
fec21c77f5
Strengthen the constraints available to eval.
2019-12-19 14:31:22 -05:00
Rob Rix
0f7188a864
Run the Domain effect.
2019-12-19 14:30:24 -05:00
Rob Rix
3be69996fb
Define an Algebra instance for DomainC.
2019-12-19 14:29:44 -05:00
Rob Rix
db5ef7be3c
Define a MonadTrans instance for DomainC.
2019-12-19 14:19:00 -05:00
Rob Rix
b007c9df46
Define a Domain carrier.
2019-12-19 14:18:51 -05:00
Rob Rix
6e5cb7fa66
Semi closures wrap a scope.
2019-12-19 14:16:39 -05:00
Rob Rix
abd647ebc4
Wrap closure bodies in Named.
2019-12-19 14:11:36 -05:00
Rob Rix
c707fe59df
Strengthen the constraints available to typechecked evaluators.
2019-12-19 14:07:33 -05:00
Rob Rix
ac274cb336
Combine the Has constraints.
2019-12-19 14:06:35 -05:00
Rob Rix
964d8e20d2
Allow the evaluator to use the heap & env effects.
2019-12-19 14:03:01 -05:00
Rob Rix
875a4087d6
Allow the evaluator to use the Domain effect.
2019-12-19 14:00:24 -05:00
Rob Rix
87433746b7
Run the Domain effect for concrete analysis.
2019-12-19 13:59:47 -05:00
Rob Rix
b013780cc2
Define an Algebra instance for DomainC.
2019-12-19 13:56:54 -05:00
Rob Rix
a64c337b1e
Graph the heap using the addresses in closure bodies.
2019-12-19 13:46:16 -05:00
Rob Rix
387824aa7b
Closure holds a Scope.
2019-12-19 13:44:01 -05:00
Rob Rix
1f9e0fa18f
Reformat a context.
2019-12-19 13:33:11 -05:00
Rob Rix
de096192ba
Define a MonadTrans instance for DomainC.
2019-12-19 13:25:47 -05:00
Rob Rix
e518beb826
Derive some instances for DomainC.
2019-12-19 13:25:41 -05:00
Rob Rix
585b05fa61
🔥 the name parameters from Decl & ScopeGraph.
2019-12-19 13:00:35 -05:00
Rob Rix
d93686e01e
Scope graphing takes addressed terms.
2019-12-19 12:58:43 -05:00
Rob Rix
da63c0cf6a
Define an Addr synonym for scope graphing.
2019-12-19 12:57:57 -05:00
Rob Rix
c3b632fd9d
Import graphing uses addressed terms.
2019-12-19 12:55:09 -05:00
Rob Rix
e78cc7bbfc
Define an Addr synonym for import graphing.
2019-12-19 12:54:55 -05:00
Rob Rix
f7c2c74ef8
Take addressed terms in Concrete.
2019-12-19 12:53:39 -05:00
Rob Rix
d22039b768
Rename the Precise synonym to Addr.
2019-12-19 12:52:30 -05:00
Rob Rix
fdb0f519d9
Define an Addr synonym for typechecking.
2019-12-19 12:51:45 -05:00
Rob Rix
4485d3622d
🔥 Evaluator.
2019-12-19 12:32:13 -05:00
Rob Rix
cc403afe27
🔥 Analysis.
2019-12-19 12:30:05 -05:00
Rob Rix
6810624e2c
Note a fixme.
2019-12-19 12:02:28 -05:00
Rob Rix
76c56e387d
Concretize records.
2019-12-19 11:59:39 -05:00
Rob Rix
cb2a9959ce
Add records to Intro.
2019-12-19 11:56:42 -05:00
Rob Rix
e546950f29
Parameterize terms by addresses.
2019-12-19 11:52:05 -05:00
Rob Rix
1bc3c65efe
🔥 the term parameter from Analysis.
2019-12-19 11:18:54 -05:00
Rob Rix
a3ccc126b0
🔥 abstract & apply from Analysis.
2019-12-19 11:18:08 -05:00