-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathmain.rkt
719 lines (620 loc) · 25.6 KB
/
main.rkt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
#lang at-exp racket
;; This module defines a gradual typing bibliography in
;; autobib format, suitable for use in papers written in Scribble
;; FIXME: this doesn't have all the papers from the README yet
(require racket/format
scriblib/autobib)
(provide (all-defined-out))
;; ----------------------------------------
;; In a submodule so that it doesn't get exported automatically by
;; the outer module
(module util racket/base
(require racket/format)
(provide (all-defined-out))
(define short? #f)
(define-syntax define/short
(syntax-rules ()
[(_ i e e*) (define i (if short? e e*))]
[(_ i e) (define i e)]))
(define IEEE "IEEE ")
(define ACM "ACM ")
(define International "Intl. ")
(define Conference "Conf. ")
(define Workshop "Wksp. ")
(define Journal "J. ")
(define Symposium "Sym. ")
(define Transactions "Trans. ")
(define/short aplas "APLAS" (string-append "Asian " Symposium "Programming Languages and Systems"))
(define/short fpca "FPCA" (string-append ACM International Conference "Functional Programming Languages and Computer Architecture"))
(define/short icfp "ICFP" (string-append ACM International Conference "Functional Programming"))
(define/short pldi "PLDI" (string-append ACM Conference "Programming Language Design and Implementation"))
(define/short popl "POPL" (string-append ACM Symposium "Principles of Programming Languages"))
(define/short lncs "LNCS" "Lecture Notes in Computer Science")
(define/short sigplan-notices "SIGPLAN Notices" (string-append ACM "SIGPLAN Notices"))
(define/short scheme-workshop "SFP" (string-append Workshop "Scheme and Functional Programming"))
(define/short ml-workshop "ML" (string-append Workshop "on ML"))
(define/short jfp "JFP" (string-append Journal "Functional Programming"))
(define/short hosc "HOSC" "Higher-Order and Symbolic Computation")
(define/short lfp "LFP" "LISP and Functional Programming")
(define/short lsc "LSC" "LISP and Symbolic Computation")
(define/short ifl "IFL" (string-append International Symposium "Functional and Logic Programming"))
(define/short tfp "TFP" (string-append Symposium "Trends in Functional Programming"))
(define/short ecoop "ECOOP" (string-append "European " Conference "Object-Oriented Programming"))
(define/short oopsla "OOPSLA" (string-append ACM Conference "Object-Oriented Programming, Systems, Languages and Applications"))
(define/short ieee-software (string-append IEEE "Software"))
(define/short toplas "TOPLAS" (string-append Transactions "Programming Languages and Systems"))
(define/short dls "DLS" "Dynamic Languages Symposium")
(define/short flops "FLOPS" (string-append Symposium "Functional and Logic Programming"))
(define/short esop "ESOP" (string-append "European " Symposium "on Programming"))
(define/short iclp "ICLP" (string-append International Conference "on Logic Programming"))
(define/short fse "FSE" (string-append International Symposium "on the Foundations of Software Engineering"))
(define/short aosd "AOSD" (string-append International Conference "on Aspect-Oriented Software Development"))
(define/short foal "FOAL" "Foundations of Aspect-Oriented Languages")
(define/short tlca "TLCA" (string-append International Conference "Typed Lambda Calculi and Applications"))
(define/short i&c "Info. & Comp." "Information and Computation")
(define/short padl "PADL" (string-append Symposium "on Practical Aspects of Declarative Languages"))
(define/short ppdp "PPDP" (string-append International Symposium "on Principles and Practice of Declarative Programming"))
(define/short fool "FOOL" (~a International Workshop "on Foundations of Object-Oriented Languages"))
(define/short icse "ICSE" (~a International Conference "on Software Engineering"))
(define/short icalp "ICALP" (string-append International "Colloquium on Automata, Languages, and Programming"))
(define/short sac "SAC" (string-append Symposium "on Applied Computing"))
(define/short snapl "SNAPL" "Summit on Advances in Programming Languages")
(define/short dyla "DYLA" (string-append Workshop "on Dynamic Languages and Applications"))
(define/short pacmpl "PACMPL" "Proceedings of the ACM on Programming Languages"))
(require 'util)
;; ----------------------------------------
;; The original papers
(define st-sfp-2006
(make-bib
#:title "Gradual Typing for Functional Languages"
#:author (authors "Jeremy G. Siek" "Walid Taha")
#:location (proceedings-location scheme-workshop)
#:date 2006))
(define thf-dls-2006
(make-bib
#:title "Interlanguage Migration: from Scripts to Programs"
#:author (authors "Sam Tobin-Hochstadt" "Matthias Felleisen")
#:location (proceedings-location dls #:pages '(964 974))
#:date 2006))
(define mf-toplas-2007
(make-bib
#:title "Operational Semantics for Multi-Language Programs"
#:author (authors "Jacob Matthews" "Robert Bruce Findler")
#:date 2009
#:location (journal-location toplas
#:volume 31
#:number 3
#:pages '("12:1" "12:44"))))
(define gktff-sfp-2006
(make-bib
#:title "Sage: Hybrid Checking for Flexible Specifications"
#:author (authors "Jessica Gronski" "Kenneth Knowles" "Aaron Tomb"
"Stephen N. Freund" "Cormac Flanagan")
#:date 2006
#:location (proceedings-location scheme-workshop
#:pages '(93 104))))
;; ----------------------------------------
;; Subsequent work
(define ktgff-tech-2007
(make-bib
#:title @~a{Sage: Unified Hybrid Checking for First-Class Types,
General Refinement Types, and Dynamic (Extended Report)}
#:author (authors "Kenneth Knowles" "Aaron Tomb" "Jessica Gronski"
"Stephen N. Freund" "Cormac Flanagan")
#:date 2007))
(define htf-tfp-2007
(make-bib
#:title "Space Efficient Gradual Typing"
#:author (authors "David Herman" "Aaron Tomb" "Cormac Flanagan")
#:location (proceedings-location tfp)
#:date "2007"))
(define st-ecoop-2007
(make-bib
#:title "Gradual Typing for Objects"
#:author (authors "Jeremy G. Siek" "Walid Taha")
#:location (proceedings-location ecoop #:pages '(2 27))
#:date 2007))
(define cthf-sfp-2007
(make-bib
#:title "Advanced Macrology and the Implementation of Typed Scheme"
#:author (authors "Ryan Culpepper" "Sam Tobin-Hochstadt" "Matthew Flatt")
#:location (proceedings-location scheme-workshop #:pages '(1 13))
#:date 2007))
(define wf-sfp-2007
(make-bib
#:title "Well-typed Programs Can't be Blamed"
#:author (authors "Philip Wadler" "Robert Bruce Findler")
#:location (proceedings-location scheme-workshop)
#:date 2007))
(define hansen-tech-2007
(make-bib
#:title "Evolutionary Programming and Gradual Typing in ECMAScript 4"
#:author "Lars T. Hansen"
#:date 2007))
(define hf-ml-2007
(make-bib
#:title "Status report: specifying JavaScript with ML"
#:author (authors "David Herman" "Cormac Flanagan")
#:location (proceedings-location ml-workshop)
#:date 2007))
(define thf-popl-2008
(make-bib
#:title "The Design and Implementation of Typed Scheme"
#:author (authors "Sam Tobin-Hochstadt" "Matthias Felleisen")
#:location (proceedings-location popl
#:pages '(395 406))
#:date 2008))
(define gray-ecoop-2008
(make-bib
#:title "Safe Cross-Language Inheritance"
#:author "Kathryn E. Gray"
#:location (proceedings-location ecoop #:pages '(52 75))
#:date 2008))
(define sv-dls-2008
(make-bib
#:title "Gradual Typing with Unification-based Inference"
#:author (authors "Jeremy G. Siek" "Manish Vachharajani")
#:location (proceedings-location dls)
#:date 2008))
(define wf-esop-2009
(make-bib
#:title "Well-typed Programs Can't be Blamed"
#:author (authors "Philip Wadler" "Robert Bruce Findler")
#:location (proceedings-location esop #:pages '(1 15))
#:date 2009))
(define sgt-esop-2009
(make-bib
#:title "Exploring the Design Space of Higher-Order Casts"
#:author (authors "Jeremy G. Siek" "Ronald Garcia" "Walid Taha")
#:location (proceedings-location esop #:pages '(17 31))
#:date 2009))
(define gray-chapter-2009
(make-bib
#:title "A Model of Java/Scheme Interoperability"
#:author "Kathryn E. Gray"
#:date 2009))
(define mf-toplas-2009
(make-bib
#:title "Operational Semantics for Multi-language Programs"
#:author (authors "Jacob Matthews" "Robert Bruce Findler")
#:location (journal-location toplas
#:volume 31
#:number 3
#:pages '(1 44))
#:date 2009))
(define ii-cs-2009
(make-bib
#:title "Gradual Typing for Featherweight Java"
#:author (authors "Lintaro Ina" "Atsushi Igarashi")
#:location (journal-location "Computer Software"
#:volume 26
#:number 2
#:pages '(18 40))
#:date 2009))
(define shb-icfp-2009
(make-bib
#:title "A Theory of Typed Coercions and its Applications"
#:author (authors "Nikhil Swamy" "Michael Hicks" "Gavin M. Bierman")
#:location (proceedings-location icfp #:pages '(329 340))
#:date 2009))
(define bfnorsvw-oopsla-2009
(make-bib
#:title "Thorn: Robust, Concurrent, Extensible Scripting on the JVM"
#:author (authors "Bard Bloom" "John Field" "Nathaniel Nystrom"
"Johan Östlund" "Gregor Richards" "Rok Strniša"
"Jan Vitek" "Tobias Wrigstad")
#:location (proceedings-location oopsla #:pages '(117 136))
#:date 2009))
(define furr-dissertation-2009
(make-bib
#:title "Combining Static and Dynamic Typing in Ruby"
#:author "Michael Furr"
#:location (dissertation-location #:institution "University of Maryland"
#:degree "Ph.D.")
#:date 2009))
(define tobin-hochstadt-dissertation-2010
(make-bib
#:title "Typed Scheme: From Scripts to Programs"
#:author "Sam Tobin-Hochstadt"
#:location (dissertation-location #:institution "Northeastern University"
#:degree "Ph.D.")
#:date 2010))
(define wnlov-popl-2010
(make-bib
#:title "Integrating Typed and Untyped Code in a Scripting Language."
#:author (authors "Tobias Wrigstad" "Francesco Zappa Nardelli"
"Sylvain Lebresne" "Johan Östlund" "Jan Vitek")
#:location (proceedings-location popl #:pages '(377 388))
#:date 2010))
(define sw-popl-2010
(make-bib
#:title "Threesomes, with and without blame"
#:author (authors "Jeremy G. Siek" "Philip Wadler")
#:location (proceedings-location popl #:pages '(365 376))
#:date 2010))
(define htf-hosc-2010
(make-bib
#:title "Space-efficient Gradual Typing"
#:author (authors "David Herman" "Aaron Tomb" "Cormac Flanagan")
#:location (journal-location hosc
#:volume 23
#:number 2
#:pages '(167 189))
#:date 2010))
(define bmt-ecoop-2010
(make-bib
#:title "Adding Dynamic Types to C#"
#:author (authors "Gavin Bierman" "Erik Meijer" "Mads Torgersen")
#:location (proceedings-location ecoop #:pages '(76 100))
#:date 2010))
(define gray-fool-2010
(make-bib
#:title "Interoperability in a Scripted World: Putting Inheritance and Prototypes Together"
#:author "Kathryn E. Gray"
#:location (proceedings-location fool)
#:date 2010))
(define afsw-popl-2011
(make-bib
#:author (authors "Amal Ahmed" "Robert Bruce Findler"
"Jeremy G. Siek" "Philip Wadler")
#:title "Blame for All"
#:location (proceedings-location popl #:pages '(201 214))
#:date 2011))
(define thscff-pldi-2011
(make-bib
#:title "Languages as Libraries"
#:author (authors "Sam Tobin-Hochstadt" "Vincent St-Amour"
"Ryan Culpepper" "Matthew Flatt" "Matthias Felleisen")
#:location (proceedings-location pldi #:pages '(132 141))
#:date 2011))
(define bce-icse-2011
(make-bib
#:title "Always-available Static and Dynamic Feedback"
#:author (authors "Michael Bayne" "Richard Cook" "Michael D. Ernst")
#:location (proceedings-location icse #:pages '(521 530))
#:date 2011))
(define wgta-ecoop-2011
(make-bib
#:title "Gradual Typestate"
#:author (authors "Roger Wolff" "Ronald Garcia"
"Éric Tanter" "Jonathan Aldrich")
#:location (proceedings-location ecoop #:pages '(459 483))
#:date 2011))
(define ii-oopsla-2011
(make-bib
#:title "Gradual Typing for Generics"
#:author (authors "Lintaro Ina" "Atsushi Igarashi")
#:location (proceedings-location oopsla #:pages '(609 624))
#:date 2011))
(define cmscgbwf-dls-2011
(make-bib
#:title "The Impact of Optional Type Information on JIT Compilation of Dynamically Typed Languages"
#:author (authors "Mason Chang" "Bernd Mathiske"
"Edwin Smith" "Avik Chaudhuri"
"Andreas Gal" "Michael Bebenita"
"Christian Wimmer" "Michael Franz")
#:location (proceedings-location dls #:pages '(13 24))
#:date 2011))
(define rch-popl-2012
(make-bib
#:title "The Ins and Outs of Gradual Type Inference"
#:author (authors "Aseem Rastogi" "Avik Chaudhuri" "Basil Hosmer")
#:location (proceedings-location popl #:pages '(481 494))
#:date 2012))
(define dthf-esop-2012
(make-bib
#:title "Complete Monitors for Behavioral Contracts"
#:author (authors "Christos Dimoulas" "Sam Tobin-Hochstadt" "Matthias Felleisen")
#:location (proceedings-location esop #:pages '(214 233))
#:date 2012))
(define sthff-oopsla-2012
(make-bib
#:author (authors "T. Stephen Strickland" "Sam Tobin-Hochstadt" "Robert Bruce Findler" "Matthew Flatt")
#:title "Chaperones and Impersonators: Run-time Support for Reasonable Interposition"
#:location (proceedings-location oopsla #:pages '(943 962))
#:date 2012))
(define tsdthf-oopsla-2012
(make-bib
#:author (authors "Asumu Takikawa" "T. Stephen Strickland"
"Christos Dimoulas" "Sam Tobin-Hochstadt"
"Matthias Felleisen")
#:title "Gradual Typing for First-Class Classes"
#:location (proceedings-location oopsla #:pages '(793 810))
#:date 2012))
(define tsth-esop-2013
(make-bib
#:author (authors "Asumu Takikawa" "T. Stephen Strickland" "Sam Tobin-Hochstadt")
#:title "Constraining Delimited Control with Contracts"
#:location (proceedings-location esop #:pages '(229 248))
#:date "2013"))
(define acftd-scp-2013
(make-bib
#:author (authors "Esteban Allende" "Oscar Callaú" "Johan Fabry" "Éric Tanter" "Marcus Denker")
#:title "Gradual typing for Smalltalk"
#:location (journal-location "Science of Computer Programming")
#:date 2013))
(define aft-dls-2013
(make-bib
#:author (authors "Esteban Allende" "Johan Fabry" "Éric Tanter")
#:title "Cast Insertion Strategies for Gradually-Typed Objects"
#:location (proceedings-location dls #:pages '(27 36))
#:date 2013))
(define vksb-dls-2014
(make-bib
#:author (authors "Michael M. Vitousek" "Andrew Kent" "Jeremy G. Siek" "Jim Baker")
#:title "Design and Evaluation of Gradual Typing for Python"
#:location (proceedings-location dls #:pages '(45 56))
#:date 2014))
(define rsfbv-popl-2015
(make-bib
#:author (authors "Aseem Rastogi" "Nikhil Swamy" "Cédric Fournet"
"Gavin Bierman" "Panagiotis Vekris")
#:title "Safe & Efficient Gradual Typing for TypeScript"
#:location (proceedings-location popl #:pages '(167 180))
#:date 2015))
(define gc-popl-2015
(make-bib
#:author (authors "Ronald Garcia" "Matteo Cimini")
#:title "Principal Type Schemes for Gradual Programs"
#:location (proceedings-location popl #:pages '(303 315))
#:date 2015))
(define vcgts-esop-2015
(make-bib
#:title "Monotonic References for Efficient Gradual Typing"
#:location (proceedings-location esop #:pages '(432 456))
#:date 2015
#:author (authors "Jeremy Siek"
"Michael M. Vitousek"
"Matteo Cimini"
"Sam Tobin-Hochstadt"
"Ronald Garcia")))
(define tfdffthf-ecoop-2015
(make-bib
#:author (authors "Asumu Takikawa" "Daniel Feltey"
"Earl Dean" "Robert Bruce Findler"
"Matthew Flatt" "Sam Tobin-Hochstadt"
"Matthias Felleisen")
#:title "Towards Practical Gradual Typing"
#:location (proceedings-location ecoop)
#:date 2015))
(define svcb-snapl-2015
(make-bib
#:title "Refined Criteria for Gradual Typing"
#:author (authors "Jeremy G. Siek" "Michael M. Vitousek" "Matteo Cimini" "John Tang Boyland")
#:location (proceedings-location snapl #:pages '(274 293))
#:date 2015))
(define rnv-ecoop-2015
(make-bib
#:author (authors "Gregor Richards" "Francesco Zappa Nardelli" "Jan Vitek")
#:title "Concrete Types for TypeScript"
#:location (proceedings-location ecoop)
#:date 2015))
(define tt-oopsla-2015
(make-bib
#:title "Customizable Gradual Polymorphic Effects for Scala"
#:author (authors "Matías Toro" "Éric Tanter")
#:location (proceedings-location popl #:pages '(935 953))
#:date 2015))
(define gct-popl-2016
(make-bib
#:title "Abstracting Gradual Typing"
#:author (authors "Ronald Garcia" "Alison M. Clark" "Éric Tanter")
#:location (proceedings-location popl #:pages '(429 442))
#:date 2016))
(define cs-popl-2016
(make-bib
#:title "The Gradualizer: A methodology and algorithm for generating gradual type systems"
#:author (authors "Matteo Cimini" "Jeremy Siek")
#:location (proceedings-location popl #:pages '(443 455))
#:date 2016))
(define tfgnvf-popl-2016
(make-bib
#:title "Is Sound Gradual Typing Dead?"
#:author (authors "Asumu Takikawa" "Daniel Feltey" "Ben Greenman" "Max New" "Jan Vitek" "Matthias Felleisen")
#:location (proceedings-location popl #:pages '(456 468))
#:date 2016))
(define gfd-oopsla-2019
(make-bib
#:title "Complete Monitors for Gradual Types"
#:author (authors "Ben Greenman" "Matthias Felleisen" "Christos Dimoulas")
#:location (journal-location pacmpl #:volume "1" #:number "OOPSLA" #:pages '(122:1 122:29))
#:date 2019))
;; ----------------------------------------
; Early Work on Interoperation
(define ff-icfp-2002
(make-bib
#:title "Contracts for Higher-Order Functions"
#:author (authors "Robert Bruce Findler" "Matthias Felleisen")
#:location (proceedings-location icfp #:pages '(48 59))
#:date "2002"))
(define gff-oopsla-2005
(make-bib
#:title "Fine-Grained Interoperability through Mirrors and Contracts"
#:author (authors "Kathryn E. Gray" "Robert Bruce Findler" "Matthew Flatt")
#:location (proceedings-location oopsla #:pages '(231 245))
#:date 2015))
;; ----------------------------------------
; Related
;; ----------------------------------------
; Contracts
(define gf-tfp-2007
(make-bib
#:title "Unifying Hybrid Types and Contracts"
#:author (authors "Jessica Gronski" "Cormac Flanagan")
#:location (proceedings-location tfp)
#:date 2007))
(define bgip-esop-2011
(make-bib
#:title "Polymorphic Contracts"
#:author (authors "João Filipe Belo" "Michael Greenberg"
"Atsushi Igarashi" "Benjamin C. Pierce")
#:location (proceedings-location esop #:pages '(18 37))
#:date 2011))
;; ----------------------------------------
; Typing Untyped Languages
(define cartwright-icalp-1976
(make-bib
#:title "User-defined Data Types as an Aid to Verifying LISP Programs"
#:author "Robert Cartwright"
#:location (proceedings-location icalp #:pages '(228 256))
#:date 1976))
(define suzuki-popl-1981
(make-bib
#:title "Inferring Types in Smalltalk"
#:author "Norihisa Suzuki"
#:location (proceedings-location popl #:pages '(187 199))
#:date 1981))
(define st-popl-1984
(make-bib
#:title "Creating Efficient Systems for Object-Oriented Languages"
#:author (authors "Norihisa Suzuki" "Minoru Terada")
#:location (proceedings-location popl #:pages '(290 296))
#:date 1984))
(define jgz-oopsla-1998
(make-bib
#:title "TS: An Optimizing Compiler for Smalltalk"
#:author (authors "Ralph E. Johnson" "Justin O. Graver" "Lawrence W. Zurawski")
#:location (proceedings-location oopsla #:pages '(18 26))
#:date 1988))
(define am-popl-1991
(make-bib
#:title "Static Type Inference in a Dynamically Typed Language"
#:author (authors "Alexander Aiken" "Brian R. Murphy")
#:location (proceedings-location popl #:pages '(279 290))
#:date 1991))
(define cf-pldi-1991
(make-bib
#:title "Soft Typing"
#:author (authors "Robert Cartwright" "Mike Fagan")
#:location (proceedings-location pldi #:pages '(278 292))
#:date 1991))
(define bg-oopsla-1993
(make-bib
#:title "Strongtalk: Typechecking Smalltalk in a Production Environment"
#:author (authors "Gilad Bracha" "David Griswold")
#:location (proceedings-location oopsla #:pages '(215 230))
#:date 1993))
(define awl-popl-1994
(make-bib
#:title "Soft Typing with Conditional Types"
#:author (authors "Alexander Aiken" "Edward L. Wimmers" "T.K. Lakshman")
#:location (proceedings-location popl #:pages '(163 173))
#:date 1994))
(define henglein-scp-1994
(make-bib
#:author "Fritz Henglein"
#:title "Dynamic Typing: Syntax and Proof Theory"
#:location (journal-location "Science of Computer Programming"
#:volume 22
#:number 3
#:pages '(197 230))
#:date 1994))
(define hr-fpca-1995
(make-bib
#:author (authors "Fritz Henglein" "Jakob Rehof")
#:title "Safe Polymorphic Type Inference for a Dynamically Typed Language: Translating Scheme to ML"
#:location (proceedings-location fpca #:pages '(192 203))
#:date 1995))
(define haynes-tech-1995
(make-bib
#:author "Christopher T. Haynes"
#:title "Infer: a Statically-typed Dialect of Scheme"
#:location (techrpt-location #:institution "Indiana University"
#:number "367")
#:date 1995))
(define akers-dissertation-1996
(make-bib
#:title "Strong Static Type Checking for Functional Common Lisp"
#:author "Robert Akers"
#:location (dissertation-location #:institution "University of Texas")
#:date 1996))
(define ffkwf-pldi-1996
(make-bib
#:title "Catching bugs in the web of program invariants"
#:author (authors "Cormac Flanagan" "Matthew Flatt"
"Shriram Krishnamurthi" "Stephanie Weirich"
"Matthias Felleisen")
#:location (proceedings-location pldi #:pages '(23 32))
#:date 1996))
(define mw-icfp-1997
(make-bib
#:title "A Practical Subtyping System for Erlang"
#:author (authors "Simon Marlow" "Philip Wadler")
#:location (proceedings-location icfp #:pages '(136 149))
#:date 1997))
(define wc-toplas-1997
(make-bib
#:title "A Practical Soft Type System for Scheme"
#:author (authors "Andrew K. Wright" "Robert Cartwright")
#:location (journal-location toplas
#:volume 19
#:number 1
#:pages '(87 152))
#:date 1997))
(define ls-ppdp-2006
(make-bib
#:title "Practical Type Inference Based on Success Typings"
#:author (authors "Tobias Lindahl" "Konstantinos Sagonas")
#:location (proceedings-location ppdp #:pages '(167 178))
#:date 2006))
;; ----------------------------------------
; Type Systems for Gradual Typing
(define thf-icfp-2010
(make-bib
#:title "Logical Types for Untyped Languages"
#:author (authors "Sam Tobin-Hochstadt" "Matthias Felleisen")
#:location (proceedings-location icfp #:pages '(117 128))
#:date 2010))
(define sthff-padl-2012
(make-bib
#:title "Typing the Numeric Tower"
#:author (authors "Vincent St-Amour" "Sam Tobin-Hochstadt"
"Matthew Flatt" "Matthias Felleisen")
#:location (proceedings-location padl #:pages '(289 303))
#:date 2012))
(define fafh-sac-2009
(make-bib
#:title "Static Type Inference for Ruby"
#:author (authors "Michael Furr" "Jong-hoon (David) An"
"Jeffrey S. Foster" "Michael Hicks")
#:location (proceedings-location sac #:pages '(1859 1866))
#:date 2009))
(define acfh-popl-2011
(make-bib
#:title "Dynamic Inference of Static Types for Ruby"
#:author (authors "Jong-hoon (David) An" "Avik Chaudhuri"
"Jeffrey S. Foster" "Michael Hicks")
#:location (proceedings-location popl #:pages '(459 472))
#:date 2011))
(define chj-oopsla-2012
(make-bib
#:title "Dependent Types for JavaScript"
#:author (authors "Ravi Chugh" "David Herman"
"Ranjit Jhala")
#:location (proceedings-location oopsla #:pages '(587 606))
#:date 2012))
(define bonnaire-sergeant-thesis-2012
(make-bib
#:title "A Practical Optional Type System for Clojure"
#:location (dissertation-location
#:institution "University of Western Australia"
#:degree "Honour's")
#:date 2012))
(define mmi-dyla-2014
(make-bib
#:title "Typed Lua: An Optional Type System for Lua"
#:author (authors "André Murbach Maidl" "Fabio Mascarenhas" "Roberto Ierusalimschy")
#:location (proceedings-location dyla #:pages '(1 10))
#:date 2014))
(define bsdth-esop-2016
(make-bib
#:title "Practical Optional Types for Clojure"
#:author (authors "Ambrose Bonnaire-Sergeant" "Rowan Davies" "Sam Tobin-Hochstadt")
#:location (proceedings-location esop #:pages '(68 94))
#:date 2016))
(define kkth-pldi-2016
(make-bib
#:title "Occurrence Typing Modulo Theories"
#:author (authors "Andrew M. Kent" "David Kempe" "Sam Tobin-Hochstadt")
#:location (proceedings-location pldi #:pages '(296 309))
#:date 2016))