-
Notifications
You must be signed in to change notification settings - Fork 2
/
Thesis.bib
executable file
·1701 lines (1537 loc) · 54.4 KB
/
Thesis.bib
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
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
% Encoding: UTF-8
@inproceedings{esop2018:arguments,
title={Let Arguments Go First},
author={Xie, Ningning and Oliveira, Bruno C d S},
booktitle={European Symposium on Programming},
pages={272--299},
year={2018},
organization={Springer}
}
@inproceedings{esop2018:consistent,
title={Consistent Subtyping for All},
author={Xie, Ningning and Bi, Xuan and Oliveira, Bruno C d S},
booktitle={European Symposium on Programming},
pages={3--30},
year={2018},
organization={Springer}
}
@article{toplas:consistent,
author = {Xie, Ningning and Bi, Xuan and Oliveira, Bruno C. D. S. and Schrijvers, Tom},
title = {Consistent Subtyping for All},
year = {2019},
issue_date = {January 2020},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {42},
number = {1},
issn = {0164-0925},
url = {https://doi.org/10.1145/3310339},
doi = {10.1145/3310339},
journal = {ACM Transactions on Programming Languages and Systems},
month = nov,
articleno = {2},
numpages = {79},
keywords = {consistent subtyping, implicit polymorphism, Gradual typing, dynamic gradual guarantee}
}
@article{popl:kind,
author = {Xie, Ningning and Eisenberg, Richard A. and Oliveira, Bruno C. d. S.},
title = {Kind Inference for Datatypes},
year = {2019},
issue_date = {January 2020},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {4},
number = {POPL},
url = {https://doi.org/10.1145/3371121},
doi = {10.1145/3371121},
journal = {Proc. ACM Program. Lang.},
month = dec,
articleno = {53},
numpages = {28},
keywords = {Haskell, Dependent Types}
}
@inproceedings{siek:criteria,
title={Refined criteria for gradual typing},
author={Siek, Jeremy G and Vitousek, Michael M and Cimini, Matteo and Boyland, John Tang},
booktitle={1st Summit on Advances in Programming Languages (SNAPL 2015)},
year={2015},
organization={Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik}
}
@inproceedings{siek:consistent:subtyping,
author = {Siek, Jeremy and Taha, Walid},
title = {Gradual Typing for Objects},
year = {2007},
isbn = {3540735887},
publisher = {Springer-Verlag},
address = {Berlin, Heidelberg},
booktitle = {Proceedings of the 21st European Conference on Object-Oriented Programming},
pages = {2–27},
numpages = {26},
location = {Berlin, Germany},
series = {ECOOP'07}
}
@inproceedings{siek2006gradual,
title={Gradual Typing for Functional Languages},
author={Siek, Jeremy G. and Taha, Walid},
booktitle={Proceedings of the 2006 Scheme and Functional Programming Workshop},
year={2006}
}
@inproceedings{garcia:principal,
author = {Garcia, Ronald and Cimini, Matteo},
title = {Principal Type Schemes for Gradual Programs},
year = {2015},
isbn = {9781450333009},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/2676726.2676992},
doi = {10.1145/2676726.2676992},
booktitle = {Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
pages = {303–315},
numpages = {13},
keywords = {type inference, gradual typing},
location = {Mumbai, India},
series = {POPL '15}
}
@inproceedings{amal:blame,
author = {Ahmed, Amal and Findler, Robert Bruce and Matthews, Jacob and Wadler, Philip},
title = {Blame for All},
year = {2009},
isbn = {9781605585437},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/1570506.1570507},
doi = {10.1145/1570506.1570507},
booktitle = {Proceedings for the 1st Workshop on Script to Program Evolution},
pages = {1–13},
numpages = {13},
location = {Genova, Italy},
series = {STOP '09}
}
@inproceedings{tfp,
title={Towards Unification for Dependent Types},
author={Xie, Ningning and Oliveira, Bruno C d S},
year={2017},
booktitle = {Draft Proceedings of the 18th Symposium on Trends in Functional Programming},
series = {TFP '18},
note = {Extended abstract}
}
@article{hindley,
title = {The Principal Type-Scheme of an Object in Combinatory Logic},
author = {J. Roger Hindley},
journal = {Transactions of the American Mathematical Society},
volume = {146},
number = {},
pages = {29-60},
year = {1969},
publisher = {American Mathematical Society}
}
@article{milner,
title={A theory of type polymorphism in programming},
author={Milner, Robin},
journal={Journal of computer and system sciences},
volume={17},
number={3},
pages={348--375},
year={1978},
publisher={Elsevier}
}
@inproceedings{Damas:Milner,
author = {Damas, Luis and Milner, Robin},
title = {Principal Type-Schemes for Functional Programs},
year = {1982},
isbn = {0897910656},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/582153.582176},
doi = {10.1145/582153.582176},
booktitle = {Proceedings of the 9th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
pages = {207–212},
numpages = {6},
location = {Albuquerque, New Mexico},
series = {POPL '82}
}
@inproceedings{odersky:putting,
author = {Odersky, Martin and L\"{a}ufer, Konstantin},
title = {Putting Type Annotations to Work},
year = {1996},
isbn = {0897917693},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/237721.237729},
doi = {10.1145/237721.237729},
booktitle = {Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
pages = {54–67},
numpages = {14},
location = {St. Petersburg Beach, Florida, USA},
series = {POPL '96}
}
@article{kfoury:type,
title={Type reconstruction in finite rank fragments of the second-order $\lambda$-calculus},
author={Kfoury, Assaf J and Tiuryn, Jerzy},
journal={Information and computation},
volume={98},
number={2},
pages={228--257},
year={1992},
publisher={Elsevier}
}
@article{F:undecidable,
title={Typability and Type Checking in System F are Equivalent and Undecidable},
author={Wells, Joe B},
journal={Annals of Pure and Applied Logic},
volume={98},
number={1-3},
pages={111--156},
year={1999},
publisher={Elsevier}
}
@article{pierce:local,
author = {Pierce, Benjamin C. and Turner, David N.},
title = {Local Type Inference},
year = {2000},
issue_date = {Jan. 2000},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {22},
number = {1},
issn = {0164-0925},
url = {https://doi.org/10.1145/345099.345100},
doi = {10.1145/345099.345100},
journal = {ACM Trans. Program. Lang. Syst.},
month = jan,
pages = {1–44},
numpages = {44},
keywords = {polymorphism, subtyping, type inference}
}
@inproceedings{davies:intersection,
author = {Davies, Rowan and Pfenning, Frank},
title = {Intersection Types and Computational Effects},
year = {2000},
isbn = {1581132026},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/351240.351259},
doi = {10.1145/351240.351259},
booktitle = {Proceedings of the Fifth ACM SIGPLAN International Conference on Functional Programming},
pages = {198–208},
numpages = {11},
series = {ICFP '00}
}
@article{dunfield:tridirectional,
author = {Dunfield, Joshua and Pfenning, Frank},
title = {Tridirectional Typechecking},
year = {2004},
issue_date = {January 2004},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {39},
number = {1},
issn = {0362-1340},
url = {https://doi.org/10.1145/982962.964025},
doi = {10.1145/982962.964025},
journal = {SIGPLAN Not.},
month = jan,
pages = {281–292},
numpages = {12},
keywords = {dependent types, union types, intersection types, type refinements}
}
@inproceedings{DK,
author = {Dunfield, Joshua and Krishnaswami, Neelakantan R.},
title = {Complete and Easy Bidirectional Typechecking for Higher-Rank Polymorphism},
year = {2013},
isbn = {9781450323260},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/2500365.2500582},
doi = {10.1145/2500365.2500582},
booktitle = {Proceedings of the 18th ACM SIGPLAN International Conference on Functional Programming},
pages = {429–442},
numpages = {14},
keywords = {bidirectional typechecking, higher-rank polymorphism},
location = {Boston, Massachusetts, USA},
series = {ICFP '13}
}
@article{asperti:bi:dependent,
title={A Bi-Directional Refinement Algorithm for the Calculus of (Co) Inductive Constructions},
author={Asperti, Andrea and Ricciotti, Wilmer and Coen, Claudio Sacerdoti and Tassi, Enrico},
year={2012},
journal={Logical Methods in Computer Science},
volume={8},
pages={1--49},
publisher={Technischen Universitat Braunschweig},
}
@article{coquand:algorithm,
title={An algorithm for type-checking dependent types},
author={Coquand, Thierry},
journal={Science of Computer Programming},
volume={26},
number={1-3},
pages={167--177},
year={1996},
publisher={Elsevier}
}
@article{loh:tutorial,
title={A tutorial implementation of a dependently typed lambda calculus},
author={L{\"o}h, Andres and McBride, Conor and Swierstra, Wouter},
journal={Fundamenta informaticae},
volume={102},
number={2},
pages={177--207},
year={2010},
publisher={IOS Press}
}
@inproceedings{xi:dependent,
author = {Xi, Hongwei and Pfenning, Frank},
title = {Dependent Types in Practical Programming},
year = {1999},
isbn = {1581130953},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/292540.292560},
doi = {10.1145/292540.292560},
booktitle = {Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
pages = {214–227},
numpages = {14},
location = {San Antonio, Texas, USA},
series = {POPL '99}
}
@article{practical:inference,
title={Practical type inference for arbitrary-rank types},
author={Peyton Jones, Simon and Vytiniotis, Dimitrios and Weirich, Stephanie and Shields, Mark},
journal={Journal of functional programming},
volume={17},
number={1},
pages={1--82},
year={2007},
publisher={Cambridge University Press}
}
@article{systemF,
title={The System F of Variable Types, Fifteen Years Later},
author={Girard, Jean-Yves},
journal={Theoretical computer science},
volume={45},
pages={159--192},
year={1986},
publisher={Elsevier}
}
@inproceedings{chen:coercive,
author = {Chen, Gang},
title = {Coercive Subtyping for the Calculus of Constructions},
series = {POPL '03},
year = {2003},
numpages = {10},
acmid = {604145},
keywords = {calculus of constructions, coercion, semantics of coercions, subtyping, transitivity elimination},
}
@article{severi:dependent:definitions,
title={Pure Type Systems with Definitions},
author={Severi, Paula and Poll, Erik},
journal={Logical Foundations of Computer Science},
pages={316--328},
year={1994},
publisher={Springer}
}
@inproceedings{siek2007gradual,
title={Gradual Typing for Objects},
author={Siek, Jeremy G. and Taha, Walid},
booktitle={European Conference on Object-Oriented Programming},
year={2007},
}
@book{curry1958combinatory,
title={Combinatory logic},
author={Curry, Haskell Brooks and Feys, Robert and Craig, William and Hindley, J Roger and Seldin, Jonathan P},
volume={1},
year={1958},
publisher={North-Holland Amsterdam}
}
@article{parigot1992recursive,
title={Recursive programming with proofs},
author={Parigot, Michel},
journal={Theoretical Computer Science},
volume={94},
number={2},
pages={335--356},
year={1992},
publisher={Elsevier}
}
@inproceedings{garcia:abstracting,
title={Abstracting Gradual Typing},
author={Garcia, Ronald and Clark, Alison M and Tanter, {\'E}ric},
booktitle={Proceedings of the 43rd Symposium on Principles of Programming Languages},
year={2016},
}
@book{church1941calculi,
title={The calculi of lambda-conversion},
author={Church, Alonzo},
number={6},
year={1941},
publisher={Princeton University Press}
}
@inproceedings{kiselyov2004strongly,
title={Strongly typed heterogeneous collections},
author={Kiselyov, Oleg and L{\"a}mmel, Ralf and Schupke, Keean},
booktitle={Proceedings of the 2004 ACM SIGPLAN workshop on Haskell},
pages={96--107},
year={2004},
organization={ACM}
}
@inproceedings{jones1997type,
title={Type classes: exploring the design space},
author={Peyton Jones, Simon and Jones, Mark and Meijer, Erik},
booktitle={Haskell workshop},
volume={1997},
year={1997}
}
@article{jones1995system,
title={A system of constructor classes: overloading and implicit higher-order polymorphism},
author={Jones, Mark P},
journal={Journal of functional programming},
volume={5},
number={1},
pages={1--35},
year={1995},
publisher={Cambridge University Press}
}
@inproceedings{jones2000type,
title={Type classes with functional dependencies},
author={Jones, Mark P},
booktitle={European Symposium on Programming},
pages={230--244},
year={2000},
organization={Springer}
}
@article{mcbride2002faking,
title={Faking it Simulating dependent types in Haskell},
author={McBride, Conor},
journal={Journal of functional programming},
volume={12},
number={4-5},
pages={375--392},
year={2002},
publisher={Cambridge University Press}
}
@inproceedings{yuu2017poly,
title={On Polymorphic Gradual Typing},
author={Igarashi, Yuu and Sekiyama, Taro and Igarashi, Atsushi},
booktitle={Proceedings of the 22nd International Conference on Functional Programming},
year={2017},
}
@article{castagna2017gradual,
author = {Castagna, Giuseppe and Lanvin, Victor},
title = {Gradual Typing with Union and Intersection Types},
journal = {Proc. ACM Program. Lang.},
issue_date = {September 2017},
volume = {1},
number = {ICFP},
month = aug,
year = {2017},
pages = {41:1--41:28},
articleno = {41},
numpages = {28},
acmid = {3110285},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {Gradual typing, intersection types, negation types, set-theoretic types, union types},
}
@inproceedings{Jafery:2017:SUR:3093333.3009865,
author = {Jafery, Khurram A. and Dunfield, Joshua},
title = {Sums of Uncertainty: Refinements Go Gradual},
booktitle = {Proceedings of the 44th Symposium on Principles of Programming Languages},
year = {2017},
numpages = {14},
acmid = {3009865},
keywords = {gradual typing, refinement types},
}
@inproceedings{cimini2016gradualizer,
title={The Gradualizer: A Methodology and Algorithm for Generating Gradual Type Systems},
author={Cimini, Matteo and Siek, Jeremy G.},
booktitle={Proceedings of the 43rd Symposium on Principles of Programming Languages},
year={2016},
}
@inproceedings{reynolds1983types,
title={Types, Abstraction and Parametric Polymorphism},
author={Reynolds, John C.},
booktitle={Proceedings of the IFIP 9th World Computer Congress},
year={1983}
}
@inproceedings{matthews2008parametric,
title={Parametric polymorphism through run-time sealing or, theorems for low, low prices!},
author={Matthews, Jacob and Ahmed, Amal},
booktitle={European Symposium on Programming},
pages={16--31},
year={2008},
organization={Springer}
}
@inproceedings{Neis:2009:NP:1596550.1596572,
author = {Neis, Georg and Dreyer, Derek and Rossberg, Andreas},
title = {Non-parametric Parametricity},
booktitle = {Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming},
series = {ICFP '09},
year = {2009},
isbn = {978-1-60558-332-7},
location = {Edinburgh, Scotland},
pages = {135--148},
numpages = {14},
url = {http://doi.acm.org/10.1145/1596550.1596572},
doi = {10.1145/1596550.1596572},
acmid = {1596572},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {intensional type analysis, parametricity, representation independence, step-indexed logical relations, type-safe cast},
}
@book{pierce2002types,
title={Types and programming languages},
author={Pierce, Benjamin C},
year={2002}
}
@inproceedings{Reynolds_coherence,
author = {Reynolds, John C.},
title = {The Coherence of Languages with Intersection Types},
booktitle = {Proceedings of the International Conference on Theoretical Aspects of Computer Software},
year = {1991},
}
@phdthesis{morris1969lambda,
title={Lambda-calculus models of programming languages.},
author={Morris Jr, James Hiram},
year={1969},
school={Massachusetts Institute of Technology}
}
@techreport{cardelli1993implementation,
title={An implementation of FSub},
author={Cardelli, Luca},
year={1993},
institution={Research Report 97, Digital Equipment Corporation Systems Research Center}
}
@inproceedings{gundry2010type,
title={Type inference in context},
author={Gundry, Adam and McBride, Conor and McKinna, James},
booktitle={Proceedings of the third ACM SIGPLAN workshop on Mathematically structured functional programming},
pages={43--54},
year={2010},
organization={ACM}
}
@inproceedings{PeytonJones:gadt,
author = {Peyton Jones, Simon and Vytiniotis, Dimitrios and Weirich, Stephanie and Washburn, Geoffrey},
title = {Simple unification-based type inference for GADTs},
booktitle = {Proceedings of the Eleventh ACM SIGPLAN International Conference on Functional Programming},
series = {ICFP '06},
year = {2006},
isbn = {1-59593-309-3},
location = {Portland, Oregon, USA},
pages = {50--61},
numpages = {12},
url = {http://doi.acm.org/10.1145/1159803.1159811},
doi = {10.1145/1159803.1159811},
acmid = {1159811},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {generalized algebraic data types, type inference},
}
@inproceedings{siek2008gradual,
title={Gradual Typing with Unification-based Inference},
author={Siek, Jeremy G. and Vachharajani, Manish},
booktitle={Proceedings of the 2008 Symposium on Dynamic Languages},
year={2008},
}
@inproceedings{yorgey2012giving,
author = {Yorgey, Brent A. and Weirich, Stephanie and Cretin, Julien and Peyton Jones, Simon and Vytiniotis, Dimitrios and Magalh\~{a}es, Jos{\'e} Pedro},
title = {Giving Haskell a Promotion},
booktitle = {Proceedings of the 8th ACM SIGPLAN Workshop on Types in Language Design and Implementation},
series = {TLDI '12},
year = {2012},
isbn = {978-1-4503-1120-5},
location = {Philadelphia, Pennsylvania, USA},
pages = {53--66},
numpages = {14},
url = {http://doi.acm.org/10.1145/2103786.2103795},
doi = {10.1145/2103786.2103795},
acmid = {2103795},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {haskell, kinds, polymorphism, promotion},
}
@inproceedings{Weirich:2013:SFE:2500365.2500599,
author = {Weirich, Stephanie and Hsu, Justin and Eisenberg, Richard A.},
title = {System FC with Explicit Kind Equality},
booktitle = {Proceedings of the 18th ACM SIGPLAN International Conference on Functional Programming},
series = {ICFP '13},
year = {2013},
isbn = {978-1-4503-2326-0},
location = {Boston, Massachusetts, USA},
pages = {275--286},
numpages = {12},
url = {http://doi.acm.org/10.1145/2500365.2500599},
doi = {10.1145/2500365.2500599},
acmid = {2500599},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {dependent types, equality, haskell},
}
@book{jones2003haskell,
title={Haskell 98 language and libraries: the revised report},
author={Peyton Jones, Simon},
year={2003},
publisher={Cambridge University Press}
}
@TechReport{cardelli1986polymorphic,
author = {L. Cardelli},
title ={A polymorphic lambda-calculus with Type:Type},
institution={SRC},
number={10},
year={1986},
month=may}
@article{vytiniotis2011outsidein,
title={OutsideIn (X) Modular type inference with local assumptions},
author={Vytiniotis, Dimitrios and Jones, Simon Peyton and Schrijvers, Tom and Sulzmann, Martin},
journal={Journal of functional programming},
volume={21},
number={4-5},
pages={333--412},
year={2011},
publisher={Cambridge University Press}
}
@article{goldfarb1981undecidability,
title={The undecidability of the second-order unification problem},
author={Goldfarb, Warren D},
journal={Theoretical Computer Science},
volume={13},
number={2},
pages={225--230},
year={1981},
publisher={Elsevier}
}
@article{gundry2013tutorial,
title={A tutorial implementation of dynamic pattern unification},
author={Gundry, Adam and McBride, Conor},
journal={Unpublished draft},
year={2013}
}
@phdthesis{gundry2013type,
title={Type inference, Haskell and dependent types},
author={Gundry, Adam Michael},
year={2013},
school={University of Strathclyde}
}
@inproceedings{BirdMeertens98Nested,
title = "Nested datatypes",
author = "Richard S. Bird and Lambert Meertens",
year = "1998",
address = "Marstrand, Sweden",
booktitle = "LNCS~1422: Proceedings of Mathematics of Program Construction",
editor = "Johan Jeuring",
month = "jun",
pages = "52--67",
publisher = "Springer-Verlag",
url = "http://www.cs.ox.ac.uk/people/richard.bird/online/BirdMeertens98Nested.pdf",
}
@Article{henglein-polymorphic-recursion,
author = {Henglein, Fritz},
title = {Type inference with polymorphic recursion},
journal = {ACM Trans. Program. Lang. Syst.},
year = {1993},
volume = {15},
number = {2},
pages = {253--289},
month = apr,
acmid = {169692},
address = {New York, NY, USA},
doi = {10.1145/169701.169692},
issn = {0164-0925},
issue_date = {April 1993},
keywords = {polymorphism, recursion, semiunification, type inference},
numpages = {37},
publisher = {ACM},
url = {http://doi.acm.org/10.1145/169701.169692},
}
@inproceedings{eisenberg2016visible,
title={Visible type application},
author={Eisenberg, Richard A and Weirich, Stephanie and Ahmed, Hamidhasan G},
booktitle={European Symposium on Programming},
pages={229--254},
year={2016},
organization={Springer}
}
@article{andrews1971resolution,
Author = {Andrews, P. B.},
Date-Modified = {2010-02-12 14:29:59 +0100},
Journal = {Journal of Symbolic Logic},
Keywords = {Resolution},
Owner = {Bruno},
Pages = {414--432},
Timestamp = {2008.06.10},
Title = {Resolution in type Theory},
Volume = {36},
Year = {1971}}
@article{huet73unification,
Author = {G. Huet},
Journal = {Theoretical Computer Science},
Key = {Huet},
Number = {1},
Pages = {27--57},
Title = {A unification algorithm for typed lambda calculus},
Volume = {1},
Year = {1973}}
@InProceedings{jones99typing,
author = {Jones, Mark P.},
title = {Typing {Haskell} in {Haskell}},
booktitle = {Proceedings of the 1999 Haskell Workshop},
year = {1999},
editor = {Meijer, Erik},
series = {Haskell '99},
pages = {pp.~9--22},
address = {Paris, France},
note = {University of Utrecht Technical Report UU-CS-1999-28},
}
@inproceedings{kiss2019higher,
author = {Kiss, Csongor and Eisenbach, Susan and Field, Tony and Peyton Jones, Simon},
title = {Higher-order type-level programming in Haskell},
booktitle = {Proceedings of the 24th ACM SIGPLAN International Conference on Functional Programming},
series = {ICFP 2019},
year = {2019},
publisher = {ACM},
}
@inproceedings{Xi:2003:GRD:604131.604150,
author = {Xi, Hongwei and Chen, Chiyan and Chen, Gang},
title = {Guarded recursive datatype constructors},
booktitle = {Proceedings of the 30th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
series = {POPL '03},
year = {2003},
isbn = {1-58113-628-5},
location = {New Orleans, Louisiana, USA},
pages = {224--235},
numpages = {12},
url = {http://doi.acm.org/10.1145/604131.604150},
doi = {10.1145/604131.604150},
acmid = {604150},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {guarded recursive datatype constructors},
}
@inproceedings{Chakravarty:2005:ATS:1086365.1086397,
author = {Chakravarty, Manuel M. T. and Keller, Gabriele and Jones, Simon Peyton},
title = {Associated type synonyms},
booktitle = {Proceedings of the Tenth ACM SIGPLAN International Conference on Functional Programming},
series = {ICFP '05},
year = {2005},
isbn = {1-59593-064-7},
location = {Tallinn, Estonia},
pages = {241--253},
numpages = {13},
url = {http://doi.acm.org/10.1145/1086365.1086397},
doi = {10.1145/1086365.1086397},
acmid = {1086397},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {associated types, generic programming, type classes, type functions, type inference},
}
@inproceedings{Eisenberg:2014:CTF:2535838.2535856,
author = {Eisenberg, Richard A. and Vytiniotis, Dimitrios and Peyton Jones, Simon and Weirich, Stephanie},
title = {Closed type families with overlapping equations},
booktitle = {Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
series = {POPL '14},
year = {2014},
isbn = {978-1-4503-2544-8},
location = {San Diego, California, USA},
pages = {671--683},
numpages = {13},
url = {http://doi.acm.org/10.1145/2535838.2535856},
doi = {10.1145/2535838.2535856},
acmid = {2535856},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {haskell, system fc, type families, type-level computation},
}
@phdthesis{eisenberg2016dependent,
title={Dependent types in haskell: Theory and practice},
author={Eisenberg, Richard A},
year={2016},
school={University of Pennsylvania}
}
@article{xie2019kind,
title={Kind Inference for Datatypes: Technical Supplement},
author={Xie, Ningning and Eisenberg, Richard A and Oliveira, Bruno CDS},
journal={arXiv preprint arXiv:1911.06153},
year={2019},
url={https://arxiv.org/abs/1911.06153}
}
@article{miller1991unification,
title={Unification of simply typed lambda-terms as logic programming},
author={Miller, Dale},
year={1991}
}
@inproceedings{reed2009higher,
title={Higher-order constraint simplification in dependent type theory},
author={Reed, Jason},
booktitle={Proceedings of the Fourth International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice},
pages={49--56},
year={2009},
organization={ACM}
}
@inproceedings{abel2011higher,
title={Higher-order dynamic pattern unification for dependent types and records},
author={Abel, Andreas and Pientka, Brigitte},
booktitle={International Conference on Typed Lambda Calculi and Applications},
pages={10--26},
year={2011},
organization={Springer}
}
@inproceedings{Cockx:2016:UEP:2951913.2951917,
author = {Cockx, Jesper and Devriese, Dominique and Piessens, Frank},
title = {Unifiers as equivalences: proof-relevant unification of dependently typed data},
booktitle = {Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming},
series = {ICFP 2016},
year = {2016},
isbn = {978-1-4503-4219-3},
location = {Nara, Japan},
pages = {270--283},
numpages = {14},
url = {http://doi.acm.org/10.1145/2951913.2951917},
doi = {10.1145/2951913.2951917},
acmid = {2951917},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {Agda, Dependent Types, Inductive Families, Type Theory, Unification},
}
@inproceedings{ziliani2015unification,
author = {Ziliani, Beta and Sozeau, Matthieu},
title = {A Unification Algorithm for Coq Featuring Universe Polymorphism and Overloading},
booktitle = {Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming},
series = {ICFP 2015},
year = {2015},
isbn = {978-1-4503-3669-7},
location = {Vancouver, BC, Canada},
pages = {179--191},
numpages = {13},
url = {http://doi.acm.org/10.1145/2784731.2784751},
doi = {10.1145/2784731.2784751},
acmid = {2784751},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {Coq, Interactive theorem proving, overloading, unification, universe polymorphism},
}
@article{pottier2005essence,
title={The essence of ML type inference},
author={Pottier, Fran{\c{c}}ois and R{\'e}my, Didier},
year={2005},
journal={Advanced Topics in Types and Programming Languages}
}
@article{simonet2007constraint,
title={A constraint-based approach to guarded algebraic data types},
author={Simonet, Vincent and Pottier, Fran{\c{c}}ois},
journal={ACM Transactions on Programming Languages and Systems (TOPLAS)},
volume={29},
number={1},
pages={1},
year={2007},
}
@inproceedings{Schrijvers:2009:CDT:1596550.1596599,
author = {Schrijvers, Tom and Peyton Jones, Simon and Sulzmann, Martin and Vytiniotis, Dimitrios},
title = {Complete and decidable type inference for GADTs},
booktitle = {Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming},
series = {ICFP '09},
year = {2009},
isbn = {978-1-60558-332-7},
location = {Edinburgh, Scotland},
pages = {341--352},
numpages = {12},
url = {http://doi.acm.org/10.1145/1596550.1596599},
doi = {10.1145/1596550.1596599},
acmid = {1596599},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {GADTs, Haskell, type inference},
}
@inproceedings{weirich2017specification,
title={A specification for dependent types in Haskell},
author={Weirich, Stephanie and Voizard, Antoine and de Amorim, Pedro Henrique Azevedo and Eisenberg, Richard A},
booktitle = {Proceedings of the 22th ACM SIGPLAN International Conference on Functional Programming},
series = {ICFP '17},
year={2017},
publisher={ACM}
}
@inproceedings{coercionq,
title={Coercion Quantification},
author={Xie, Ningnign and Eisenberg, Richard A},
booktitle = {Haskell Implementors’ Workshop},
year={2018},
}
@article{breitner2016safe,
title={Safe zero-cost coercions for Haskell},
author={Breitner, Joachim and Eisenberg, Richard A and Jones, Simon Peyton and Weirich, Stephanie},
journal={Journal of Functional Programming},
volume={26},
year={2016},
publisher={Cambridge University Press}
}
@inproceedings{odersky2001colored,
author = {Odersky, Martin and Zenger, Christoph and Zenger, Matthias},
title = {Colored Local Type Inference},
series = {POPL '01},
year = {2001},
numpages = {13},
acmid = {360207},
}
@inproceedings{dunfield2009greedy,
title={Greedy Bidirectional Polymorphism},
author={Dunfield, Joshua},
booktitle={Workshop on ML},
year={2009},
}
@article{DK:extend,
author = {Dunfield, Joshua and Krishnaswami, Neelakantan R.},
title = {Sound and Complete Bidirectional Typechecking for Higher-Rank Polymorphism with Existentials and Indexed Types},
year = {2019},
issue_date = {January 2019},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {3},
number = {POPL},
url = {https://doi.org/10.1145/3290322},
doi = {10.1145/3290322},
abstract = {Bidirectional typechecking, in which terms either synthesize a type or are checked against a known type, has become popular for its applicability to a variety of type systems, its error reporting, and its ease of implementation. Following principles from proof theory, bidirectional typing can be applied to many type constructs. The principles underlying a bidirectional approach to indexed types (generalized algebraic datatypes) are less clear. Building on proof-theoretic treatments of equality, we give a declarative specification of typing based on focalization. This approach permits declarative rules for coverage of pattern matching, as well as support for first-class existential types using a focalized subtyping judgment. We use refinement types to avoid explicitly passing equality proofs in our term syntax, making our calculus similar to languages such as Haskell and OCaml. We also extend the declarative specification with an explicit rules for deducing when a type is principal, permitting us to give a complete declarative specification for a rich type system with significant type inference. We also give a set of algorithmic typing rules, and prove that it is sound and complete with respect to the declarative system. The proof requires a number of technical innovations, including proving soundness and completeness in a mutually recursive fashion.},
journal = {Proc. ACM Program. Lang.},
month = jan,
articleno = {9},
numpages = {28},
keywords = {existential types, indexed types, higher-rank polymorphism, GADTs, equality types, bidirectional typechecking}
}
@article{mitchell1988polymorphic,
title={Polymorphic type inference and containment},
author={Mitchell, John C},
journal={Information and Computation},
volume={76},
number={2-3},
pages={211--249},
year={1988},
publisher={Elsevier}