Charlie Somerville
71e389ef71
fix tests
2018-05-23 15:38:47 -07:00
Charlie Somerville
10022d4de9
push Address location value into the guts of the evaluator
2018-05-23 14:55:44 -07:00
Rob Rix
ca6b32378e
Merge branch 'master' into allocator-effect
2018-05-18 11:09:20 -04:00
Josh Vera
053a158e59
Merge branch 'master' into update-fastsum
2018-05-18 10:44:08 -04:00
Rob Rix
6f3698122c
Merge branch 'master' into allocator-effect
2018-05-17 16:47:24 -04:00
Patrick Thomson
322f348103
inj -> inject
2018-05-16 18:25:02 -04:00
Patrick Thomson
6b0198cb00
Remove otiose -Sum prefixes from all Data.Sum operations.
...
There are no modules where we use both Union.inj and Sum.injectSum; as
such, it seems clumsy for such ubiquitous functions as inj and prj to
have such long names when there is no ambiguity. This restores the
codebase to much how it looked before we switched back to a richer
Data.Union.
2018-05-16 15:27:08 -04:00
Timothy Clem
a60ed7bc16
Merge remote-tracking branch 'origin/master' into package-dot-json-parsing
2018-05-16 12:07:13 -07:00
Rob Rix
6ee5cabdf8
Run allocator effects in the evaluator spec.
2018-05-16 13:43:14 -04:00
Timothy Clem
aa9eb68045
Fully construct PackageInfo here
2018-05-16 10:34:17 -07:00
Rob Rix
3ab781ea48
🔥 all the constraining functions since we can use type applications instead.
2018-05-15 13:51:07 -04:00
Rob Rix
6ba840e90b
Go back to simple address types.
2018-05-11 08:35:43 -04:00
Rob Rix
67892e9cf1
Define Precise as a GADT indexed by its cell type.
2018-05-10 19:27:20 -04:00
Rob Rix
91ca0e1aba
Run Gotos via a newtype to break the cycle in the effects types.
2018-05-09 21:30:34 -04:00
Rob Rix
3cbf66c57e
🔥 TermEffects.
2018-05-09 12:39:22 -04:00
Rob Rix
f18d066c88
🔥 the Term newtype.
2018-05-09 12:36:48 -04:00
Rob Rix
d02fdb419a
Only export spec.
2018-05-09 12:36:40 -04:00
Rob Rix
4dca1c121e
🔥 the term parameter to Evaluator.
2018-05-09 12:35:01 -04:00
Rob Rix
3948f74810
Correct the type of the module table effect.
2018-05-08 16:46:17 -04:00
Rob Rix
2aae3dbdd3
Allow runGoto to return its jump table.
2018-05-08 11:10:35 -04:00
Rob Rix
97915e1410
Rename lambda to closure.
2018-05-08 10:54:32 -04:00
Rob Rix
d9084f9f45
lambda takes the set of free variables as a parameter.
2018-05-08 10:54:04 -04:00
Rob Rix
5a4e6cb0b0
Merge branch 'evaluator-dsl' into evaluate-closures-without-terms
2018-05-08 10:40:41 -04:00
Rob Rix
8881dc0284
Fix an ambiguous reference to runM.
2018-05-08 10:40:25 -04:00
Rob Rix
eacb5b47d7
Implement goto using Goto effects embedding evaluators.
2018-05-08 10:19:50 -04:00
Rob Rix
2b2a6f0cd8
Specialize ValueError to Value.
2018-05-08 09:05:43 -04:00
Rob Rix
b66ea73427
Reassociate errors in the specs.
2018-05-07 16:56:40 -04:00
Rob Rix
d9e76fb2c5
Test that we can call functions.
2018-05-07 16:06:21 -04:00
Rob Rix
c05884195d
Add environment errors to the mix.
2018-05-07 16:06:04 -04:00
Rob Rix
de1a8e1164
Clean up a redundant pure.
2018-05-07 16:05:55 -04:00
Rob Rix
b589d4f7d0
Define a FreeVariables instance for Term.
2018-05-07 16:05:27 -04:00
Rob Rix
ca778fd76e
We don’t need to constrain the term type any more.
2018-05-07 15:25:05 -04:00
Rob Rix
28eec7a7ec
Lift TermEvaluators to Subterm evaluators.
2018-05-07 15:19:57 -04:00
Rob Rix
a4e823681f
Define a TermEvaluator synonym.
2018-05-07 15:19:36 -04:00
Rob Rix
3b4b953506
Run evaluators in IO.
2018-05-07 15:13:01 -04:00
Rob Rix
1bd817bc76
Test that we can construct integers.
2018-05-07 15:10:41 -04:00
Rob Rix
980fd74aed
Define an evaluator helper.
2018-05-07 15:10:11 -04:00
Rob Rix
47d48d695e
Add types for terms, values, and the effects for evaluating terms.
2018-05-07 15:09:50 -04:00
Rob Rix
c427be3670
Stub in a spec for Evaluator.
2018-05-07 14:21:05 -04:00