Skip to content

Commit 2f96be8

Browse files
committed
fix typos, add diagram
1 parent 334cb97 commit 2f96be8

File tree

3 files changed

+23
-10
lines changed

3 files changed

+23
-10
lines changed

slides/Makefile

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,23 @@ main.tex: main.md macros.tex Makefile bib.bib
2323
--slide-level=2 \
2424
-o main.tex
2525

26-
figures: dependent-types-compiler.pdf dependent-types-typechecker.pdf dependent-types-general.pdf prior-work.pdf
26+
figures: dependent-types-compiler.pdf dependent-types-typechecker.pdf dependent-types-general.pdf prior-work.pdf architecture-diagram.pdf
2727

28-
dependent-types-compiler.pdf:
28+
dependent-types-compiler.pdf: dependent-types-compiler.svg
2929
inkscape ./dependent-types-compiler.svg --export-pdf=dependent-types-compiler.pdf
3030

31-
dependent-types-typechecker.pdf:
31+
dependent-types-typechecker.pdf: dependent-types-typechecker.svg
3232
inkscape ./dependent-types-typechecker.svg --export-pdf=dependent-types-typechecker.pdf
3333

34-
dependent-types-general.pdf:
34+
dependent-types-general.pdf: dependent-types-general.svg
3535
inkscape ./dependent-types-general.svg --export-pdf=dependent-types-general.pdf
3636

37-
prior-work.pdf:
37+
prior-work.pdf: prior-work.svg
3838
inkscape ./prior-work.svg --export-pdf=prior-work.pdf
3939

40+
architecture-diagram.pdf: architecture-diagram.svg
41+
inkscape ./architecture-diagram.svg --export-pdf=architecture-diagram.pdf
42+
4043
open: main.pdf
4144
xdg-open main.pdf &
4245

slides/architecture-diagram.svg

Lines changed: 1 addition & 0 deletions
Loading

slides/main.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ f k _¹ (C _² _³) (succ zero)
115115

116116
* replace `` with ``
117117
* we know that `?¹ : F k`
118-
* looking up `t` yields type `T ?² ?³`
118+
* elaborating `(C _² _³)` yields type `T ?² ?³`
119119
* produce a constraint `?¹ ~ T ?² ?³`
120120

121121
## How do constraints work
@@ -215,6 +215,10 @@ Bottom line: this is a design study
215215
* each constraint raised gets an opportunity to be solved/simplified immediately by the user-supplied solver
216216
* if it doesn't - we can freeze the problem and return a meta in place of the typechecked solution
217217

218+
## Design overview
219+
220+
![](./architecture-diagram.pdf)
221+
218222
## Open questions
219223

220224
::: incremental
@@ -236,17 +240,22 @@ Current idea:
236240

237241
* there is machinery in Haskell to declare interfaces [@pangPluggingHaskell2004]
238242
* what should the interface look like?
239-
* ```
243+
```
240244
data SolverTag = ...
241245
242-
type Solver = ConstraintF c -> (Set (ConstraintF c), Map MetaId Term)
246+
type Solver = ConstraintF c -> ( Set (ConstraintF c)
247+
, Map MetaId Term )
243248
244249
data PluginInterface = Plugin {
245250
solvers :: Map SolverTag Solver,
246251
solverTags :: [SolverTag],
247252
priorities :: [(SolverTag, SolverTag)]
248253
}
249-
254+
```
255+
256+
## how does dynamic linking interfere with what we can do
257+
258+
```
250259
instance ConstraintMap constraintTag ConstraintType where
251260
...
252261
@@ -269,7 +278,7 @@ Current idea:
269278
* Lean
270279
* uses macros to redefine symbols
271280
* uses reflection and typechecking monads to define custom elaboration procedures
272-
* TypeOS
281+
* TypOS
273282
* you have to buy into a whole new discipline
274283
* we hope to keep things a bit more conventional engineering-wise
275284

0 commit comments

Comments
 (0)