└── README.md /README.md: -------------------------------------------------------------------------------- 1 | ## A List of Foundational Haskell Papers 2 | 3 | #### The Beginning: The Eugenio Moggi Papers 4 | 5 | - [Notions of Computations over Monads](https://core.ac.uk/download/pdf/21173011.pdf) 6 | - [Computational Lambda Calculus and Monads](https://www.disi.unige.it/person/MoggiE/ftp/lics89.pdf) 7 | - [Monads for functional programming](http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf) 8 | 9 | #### Haskell Semantics and Design Spaces 10 | 11 | - [Semantics](https://www.microsoft.com/en-us/research/wp-content/uploads/1991/03/A-Static-Semantics-for-Haskell_small.pdf) 12 | - [How to make ad hoc polymorphism less ad hoc](https://people.csail.mit.edu/dnj/teaching/6898/papers/wadler88.pdf) 13 | - [Type Classes](https://www.microsoft.com/en-us/research/wp-content/uploads/1994/04/classhask.pdf) 14 | - [Lazy State Threads](https://www.microsoft.com/en-us/research/wp-content/uploads/1994/06/lazy-functional-state-threads.pdf) 15 | - [General State](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/state-lasc.pdf) 16 | - [An Exploration of the Design space of Type Classes](https://www.microsoft.com/en-us/research/wp-content/uploads/1997/01/multi.pdf) 17 | - [Functional Dependencies](https://www.cs.tufts.edu/comp/150FP/archive/mark-jones/fundeps.pdf) 18 | - [Rank-n Types](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/putting.pdf?from=https%3A%2F%2Fresearch.microsoft.com%2Fen-us%2Fum%2Fpeople%2Fsimonpj%2Fpapers%2Fhigher-rank%2Fputting.pdf) 19 | - [Typing Haskell in Haskell](https://web.cecs.pdx.edu/~mpj/thih/thih.pdf) 20 | - [Type Families](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/typefun.pdf?from=https%3A%2F%2Fresearch.microsoft.com%2F%7Esimonpj%2Fpapers%2Fassoc-types%2Ffun-with-type-funs%2Ftypefun.pdf) 21 | - [Type Families pt. 2](https://www.microsoft.com/en-us/research/wp-content/uploads/2005/01/at-syns.pdf) 22 | - [GADTs](https://ecommons.cornell.edu/bitstream/handle/1813/5614/TR2003-1901.pdf?sequence=1) 23 | - [First Class Modules in Haskell](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/first_class_modules.pdf) 24 | - [Kind Promotion](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/p53-yorgey.pdf) 25 | - [Stream Fusion. From Lists to Streams to Nothing at All](http://fun.cs.tufts.edu/stream-fusion.pdf) 26 | 27 | #### Type Systems 28 | 29 | - [Lambda Calculus with Types](http://www.cse.chalmers.se/research/group/logic/TypesSS05/Extra/geuvers.pdf) 30 | - [The Call by Need Lambda Calculus](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.56.1889&rep=rep1&type=pdf) 31 | - [The Lazy Lambda Calculus](https://www.cs.ox.ac.uk/files/293/lazy.pdf) 32 | - [Hindley-Milner Systems](http://web.cs.wpi.edu/~cs4536/c12/milner-damas_principal_types.pdf) 33 | - [Generalized Hindley-Milner Systems](http://soft.vub.ac.be/~cfscholl/Capita-Selecta-2015/papers/2002%20Heeren.pdf) 34 | - [System F with type equality coercion](https://www.microsoft.com/en-us/research/wp-content/uploads/2007/01/tldi22-sulzmann-with-appendix.pdf?from=https%3A%2F%2Fresearch.microsoft.com%2Fen-us%2Fum%2Fpeople%2Fsimonpj%2Fpapers%2Fext-f%2Ftldi22-sulzmann-with-appendix.pdf) 35 | - [System FC with Kind Equality](https://cs.brynmawr.edu/~rae/papers/2013/fckinds/fckinds-extended.pdf) 36 | 37 | #### Misc Parametricity 38 | 39 | - [Theorems for Free](http://ecee.colorado.edu/ecen5533/fall11/reading/free.pdf) 40 | - [Free theorems for TyCons](http://www.janis-voigtlaender.eu/papers/FreeTheoremsInvolvingTypeConstructorClasses.pdf) 41 | - [Parametric Polymorphism](http://www.cse.chalmers.se/edu/year/2010/course/DAT140_Types/Reynolds_typesabpara.pdf) 42 | - [Type Derivatives and Typed Holes](http://strictlypositive.org/diff.pdf) 43 | - [Suggesting Valid Hole Fits](https://mpg.is/papers/gissurarson2018suggesting.pdf) 44 | 45 | #### Misc TypeChecking + PLT 46 | 47 | - [Parametric HOAS](http://adam.chlipala.net/papers/PhoasICFP08/PhoasICFP08.pdf) 48 | - [Tutorial on Bidirectional Type Inference](http://davidchristiansen.dk/tutorials/bidirectional.pdf) 49 | - [Tutorial Implementation of Dependent Types](https://www.andres-loeh.de/LambdaPi/LambdaPi.pdf) 50 | - [Pfenning's Notes on Bidirectional Type Inference](http://www.cs.cmu.edu/~fp/courses/15312-f04/handouts/15-bidirectional.pdf) 51 | - [EdK's `bound` Library Comparisons](https://www.schoolofhaskell.com/user/edwardk/bound) 52 | - [Bidirectional Typechecking for Higher Rank Polymorphism](https://www.cl.cam.ac.uk/~nk480/bidir.pdf) 53 | - [Tutorial Implementation of Hindley-Milner](https://pdfs.semanticscholar.org/8983/233b3dff2c5b94efb31235f62bddc22dc899.pdf) 54 | - [De Bruijn Indices](https://www.cs.ox.ac.uk/richard.bird/online/BirdPaterson99DeBruijn.pdf) 55 | - [The Stitch Type Checker](https://cs.brynmawr.edu/~rae/papers/2018/stitch/stitch.pdf) 56 | - [Boxes go Bananas](https://repository.upenn.edu/cgi/viewcontent.cgi?article=1031&context=cis_reports) 57 | 58 | 59 | #### Functional pearls 60 | 61 | - [The countdown problem](http://www.cs.nott.ac.uk/~pszgmh/countdown.pdf) 62 | - [A program to solve Sudoku](https://www.cs.tufts.edu/~nr/cs257/archive/richard-bird/sudoku.pdf) 63 | - [Calculating correct compilers](http://www.cs.nott.ac.uk/~pszgmh/ccc.pdf) 64 | - [Data types a la carte](http://www.cs.ru.nl/~W.Swierstra/Publications/DataTypesALaCarte.pdf) 65 | - [Trees that grow](https://www.microsoft.com/en-us/research/uploads/prod/2016/11/trees-that-grow.pdf) 66 | - [I am not a Number, I am a Free Variable!](http://www.cs.ru.nl/~james/RESEARCH/haskell2004.pdf) 67 | 68 | #### Algebra of programming 69 | 70 | - [Functional programming with Bananas, Lenses, and Barbed Wire](https://maartenfokkinga.github.io/utwente/mmf91m.pdf) 71 | - [Origami programming](https://www.cs.ox.ac.uk/jeremy.gibbons/publications/origami.pdf) 72 | - [A tutorial on the universality and expressiveness of fold](http://moss.cs.iit.edu/cs495/universal-fold.pdf) 73 | - [Unifying Structured Recursion Schemes](https://www.cs.ox.ac.uk/people/nicolas.wu/papers/URS.pdf) 74 | - [Bananas in Space](http://www.cs.nott.ac.uk/~pszgmh/bananas.pdf) 75 | - [Conjugate Hylomorphisms](https://www.cs.ox.ac.uk/people/nicolas.wu/papers/Hylomorphisms.pdf) 76 | - [Adjoint Folds](https://www.cs.ox.ac.uk/ralf.hinze/publications/SCP-78-11.pdf) 77 | --------------------------------------------------------------------------------