└── README.md /README.md: -------------------------------------------------------------------------------- 1 | Links to [conditionally¹ accepted papers][icfp2017-accepted] for the [22nd ACM SIGPLAN International Conference on Functional Programming][icfp2017-website] (ICFP 2017). **Pull requests welcome!** 2 | 3 | [icfp2017-website]: http://icfp17.sigplan.org/home 4 | [icfp2017-accepted]: http://icfp17.sigplan.org/track/icfp-2017-papers#event-overview 5 | 6 | (Similar pages are available for older ICFP 7 | ([2012][icfp12], [2013][icfp13], [2014][icfp14], [2015][icfp15], [2016][icfp16]), 8 | POPL 9 | ([2013][popl2013], [2014][popl2014], [2015][popl2015], [2016][popl2016]), 10 | and [PLDI 2014][pldi2014-accepted].) 11 | 12 | [popl2013]: https://github.com/23Skidoo/popl13-papers-links 13 | [popl2014]: https://github.com/gasche/popl2014-papers 14 | [popl2015]: https://github.com/yallop/popl2015-papers 15 | [popl2016]: https://github.com/gasche/popl2016-papers 16 | [icfp12]: https://github.com/technogeeky/icfp12-paper-links 17 | [icfp13]: https://github.com/gasche/icfp2013-papers 18 | [icfp14]: https://github.com/yallop/icfp2014-papers 19 | [icfp15]: https://github.com/mpickering/icfp2015-papers 20 | [icfp16]: https://github.com/gasche/icfp2016-papers 21 | [haskell2014-accepted]: https://github.com/yallop/haskell2014-papers 22 | [pldi2014-accepted]: https://github.com/yallop/pldi2014-papers 23 | 24 | Note: if you are editing this repository, please remember to use the 25 | Markdown syntax for hard line breaks, namely two spaces at the end of 26 | the line. 27 | 28 | ¹: This year is the first year where ICFP uses a journal publication 29 | model, with open-access proceedings published in PACM. A two-phase 30 | reviewing process is used, so most papers are *conditionally* accepted 31 | with a list of mandatory revisions for authors to perform. 32 | 33 | ## ICFP 2017 34 | 35 | A Framework for Adaptive Differential Privacy 36 | Daniel Winograd-Cort, Andreas Haeberlen, Aaron Roth, Benjamin C. Pierce 37 | ([paper (extended version)](http://www.danwc.com/s/adafuzz2017.pdf), [video](https://livestream.com/oxuni/ICFP-2017/videos/162295527) at 23') 38 | 39 | A Relational Logic for Higher-Order Programs 40 | Alejandro Aguirre, Gilles Barthe, Marco Gaboardi, Deepak Garg, Pierre-Yves Strub 41 | ([preprint](https://arxiv.org/pdf/1703.05042) from [arXiv](https://arxiv.org/abs/1703.05042), [video](https://livestream.com/oxuni/ICFP-2017/videos/162316484) at 27') 42 | 43 | A Specification for Dependently-Typed Haskell 44 | Stephanie Weirich, Antoine Voizard, Pedro Henrique Avezedo de Amorim, Richard Eisenberg 45 | ([draft](https://www.seas.upenn.edu/~sweirich/papers/systemd-submission.pdf), [video](https://livestream.com/oxuni/ICFP-2017/videos/162358063) at start) 46 | 47 | Automating Sized-Type Inference for Complexity Analysis 48 | Martin Avanzini, Ugo Dal Lago 49 | ([preprint](https://arxiv.org/pdf/1704.05585) from [arXiv](https://arxiv.org/abs/1704.05585), [video](https://livestream.com/oxuni/ICFP-2017/videos/162370293) at 23') 50 | 51 | Better Living Through Operational Semantics: An Optimizing Compiler for Radio Protocols 52 | Geoffrey Mainland 53 | ([preprint](https://www.cs.drexel.edu/~mainland/files/mainland17better.pdf)) 54 | 55 | Chaperone Contracts for Higher-Order Sessions 56 | Hernan Melgratti, Luca Padovani 57 | ([slides](http://materials.dagstuhl.de/files/17/17051/17051.Hern%C3%A1nMelgratti.Slides.pdf), [video](https://livestream.com/oxuni/ICFP-2017/videos/162360350) at start) 58 | 59 | Compiling to categories 60 | Conal Elliott 61 | ([preprint](http://conal.net/papers/compiling-to-categories/compiling-to-categories.pdf), [website](http://conal.net/papers/compiling-to-categories/), [video](https://livestream.com/oxuni/ICFP-2017/videos/162323148) at start) 62 | 63 | Constrained Type Families 64 | J. Garrett Morris, Richard Eisenberg 65 | ([preprint](http://cs.brynmawr.edu/~rae/papers/2017/partiality/partiality.pdf), [video](https://livestream.com/oxuni/ICFP-2017/videos/162370293) at start) 66 | 67 | Definitional Abstract Interpreters for Higher-Order Programming Languages 68 | David Darais, Nicholas Labich, Phúc Nguyễn, David Van Horn 69 | ([preprint]()(https://plum-umd.github.io/abstracting-definitional-interpreters/main.pdf), [paper](https://plum-umd.github.io/abstracting-definitional-interpreters/) as a webpage!) 70 | 71 | Effect-Driven QuickChecking of Compilers 72 | Jan Midtgaard, Mathias Nygaard Justesen, Patrick Kasting, Flemming Nielson, Hanne Riis Nielson 73 | ([preprint](http://janmidtgaard.dk/papers/Midtgaard-al%3aICFP17-full.pdf), [implementation](https://github.com/jmid/efftester)) 74 | 75 | Experience Report: Prototyping a Query Compiler Using Coq 76 | Joshua Auerbach, Martin Hirzel, Louis Mandel, Avraham Shinnar, Jerome Simeon 77 | ([video](https://livestream.com/oxuni/ICFP-2017/videos/162295527) first video) 78 | 79 | Faster Coroutine Pipelines 80 | Mike Spivey 81 | ([preprint](http://spivey.oriel.ox.ac.uk/wiki2/images/a/a1/Copipes.pdf), [video](https://livestream.com/oxuni/ICFP-2017/videos/162293313) at 1') 82 | 83 | Foundations of Strong Call by Need 84 | Thibaut Balabonski, Pablo Barenbaum, Eduardo Bonelli, Delia Kesner 85 | 86 | Functional Pearl: A Unified Approach to Solving Seven Programming Problems 87 | William E. Byrd, Michael Ballantyne, Greg Rosenblatt, Matthew Might 88 | ([video](https://livestream.com/oxuni/ICFP-2017/videos/162293313) at 1h11') 89 | 90 | Functional Pearl: a pretty but not greedy printer 91 | Jean-Philippe Bernardy 92 | ([preprint](http://jyp.github.io/pdf/Prettiest.pdf), [github repo](https://github.com/jyp/prettiest), [video](https://livestream.com/oxuni/ICFP-2017/videos/162293313) at 26') 93 | 94 | Generic functional parallel algorithms: Scan and FFT 95 | Conal Elliott 96 | ([preprint](http://conal.net/papers/generic-parallel-functional/generic-parallel-functional.pdf), [website](http://conal.net/papers/generic-parallel-functional/) [video](https://livestream.com/oxuni/ICFP-2017/videos/162293313) at 48'30'') 97 | 98 | Gradual Session Types 99 | Atsushi Igarashi, Peter Thiemann, Vasco Vasconcelos, Philip Wadler 100 | ([preprint](http://www.fos.kuis.kyoto-u.ac.jp/~igarashi/papers/pdf/gradual-session-ICFP2017.pdf), [slides](http://materials.dagstuhl.de/files/17/17051/17051.PeterThiemann.Slides.pdf), [video](https://livestream.com/oxuni/ICFP-2017/videos/162360350) at 1h10') 101 | 102 | Gradual Typing with Union and Intersection Types 103 | Giuseppe Castagna, Victor Lanvin 104 | ([preprint](https://www.irif.fr/~gc/papers/icfp17.pdf), [video](https://livestream.com/oxuni/ICFP-2017/videos/162365389) at 52') 105 | 106 | Herbarium Racketensis: A Stroll Through the Woods (Functional Pearl) 107 | Vincent St-Amour, Daniel Feltey, Spencer P. Florence, Shu-Hung You, Robby Findler 108 | ([paper](http://users.eecs.northwestern.edu/~stamourv/papers/herbarium-racketensis.pdf), [video](https://livestream.com/oxuni/ICFP-2017/videos/162357490)) 109 | 110 | How to Prove Your Calculus is Decidable: Practical Applications of Second-order Algebraic Theories and Computation 111 | Makoto Hamana 112 | ([video](https://livestream.com/oxuni/ICFP-2017/videos/162316484)) 113 | 114 | Imperative functional programs that explain their work 115 | Wilmer Ricciotti, Jan Stolarek, Roly Perera, James Cheney 116 | ([preprint](https://arxiv.org/pdf/1705.07678) from [arXiv](https://arxiv.org/abs/1705.07678), [companion code](https://github.com/jstolarek/slicer)) 117 | 118 | Inferring Scope through Syntactic Sugar 119 | Justin Pombrio, Shriram Krishnamurthi, Mitchell Wand 120 | ([paper](http://cs.brown.edu/~sk/Publications/Papers/Published/pkw-inf-scope-syn-sugar/paper.pdf), [extended version](http://cs.brown.edu/research/plt/dl/icfp2017/supplement.pdf), [material](http://cs.brown.edu/research/plt/dl/icfp2017/), [video](https://livestream.com/oxuni/ICFP-2017/videos/162370293) at 47') 121 | 122 | Kami: A Platform for High-Level Parametric Hardware Specification and its Modular Verification 123 | Joonwon Choi, Muralidaran Vijayaraghavan, Benjamin Sherman, Adam Chlipala, Arvind 124 | ([preprint](http://adam.chlipala.net/papers/KamiICFP17/KamiICFP17.pdf), [website](http://plv.csail.mit.edu/kami/), [video](https://livestream.com/oxuni/ICFP-2017/videos/162320002) at 2') 125 | 126 | Local Refinement Typing 127 | Benjamin Cosman, Ranjit Jhala 128 | ([preprint](https://arxiv.org/pdf/1706.08007) from [arXiv](https://arxiv.org/abs/1706.08007), [video](https://livestream.com/oxuni/ICFP-2017/videos/162320002) at 50') 129 | 130 | Lock-step simulation is child’s play 131 | Joachim Breitner, Chris Smith 132 | ([preprint](https://arxiv.org/pdf/1705.09704) from [arXiv](https://arxiv.org/abs/1705.09704), [video](https://livestream.com/oxuni/ICFP-2017/videos/162291585) at 50'45) 133 | 134 | Manifest Sharing with Session Types 135 | Stephanie Balzer, Frank Pfenning 136 | ([preprint](https://www.cs.cmu.edu/~fp/papers/icfp17.pdf), [video](https://livestream.com/oxuni/ICFP-2017/videos/162360350) at 47') 137 | 138 | A Metaprogramming Framework for Formal Verification 139 | Gabriel Ebner, Sebastian Ullrich, Jared Roesch, Jeremy Avigad, Leonardo de Moura 140 | ([preprint](https://pp.ipd.kit.edu/uploads/publikationen/ebner17meta.pdf)) 141 | 142 | No-brainer CPS Conversion 143 | Milo Davis, William Meehan, Olin Shivers 144 | ([video](https://livestream.com/oxuni/ICFP-2017/videos/162316484) at 1h14') 145 | 146 | Normalization by Evaluation for Sized Dependent Types 147 | Andreas Abel, Andrea Vezzosi, Theo Winterhalter 148 | ([preprint](http://www2.tcs.ifi.lmu.de/~abel/icfp17-long.pdf)) 149 | 150 | On Polymorphic Gradual Typing 151 | Yuu Igarashi, Taro Sekiyama, Atsushi Igarashi 152 | ([preprint](http://www.fos.kuis.kyoto-u.ac.jp/~igarashi/papers/pdf/polygrad-ICFP2017.pdf), [video](https://livestream.com/oxuni/ICFP-2017/videos/162365389) at 28') 153 | 154 | On the expressive power of user-defined effects: effect handlers, monadic reflection, delimited control 155 | Yannick Forster, Ohad Kammar, Sam Lindley, Matija Pretnar 156 | ([preprint](https://arxiv.org/pdf/1610.09161) from [arXiv](https://arxiv.org/pdf/1610.09161)) 157 | 158 | Parametric Quantifiers for Dependent Type Theory 159 | Andreas Nuyts, Andrea Vezzosi, Dominique Devriese 160 | ([preprint](https://people.cs.kuleuven.be/~andreas.nuyts/ParametricQuantifiers.pdf), [video](https://livestream.com/oxuni/ICFP-2017/videos/162358063) at 26') 161 | 162 | Persistence for the masses: RRB-Vectors in a systems language 163 | Juan Pedro Bolívar Puente 164 | ([preprint](https://public.sinusoid.es/misc/immer/immer-icfp17-preprint-00.pdf), [website](https://sinusoid.es/immer/), [github](https://github.com/arximboldi/immer), [cppnow17 talk](https://www.youtube.com/watch?v=ZsryQp0UAC8), [video](https://livestream.com/oxuni/ICFP-2017/videos/162314197) at 3') 165 | 166 | Scaling up Functional Programming Education: under the hood of the OCaml MOOC 167 | Benjamin Canou, Roberto Di Cosmo, Grégoire Henry 168 | ([video](https://livestream.com/oxuni/ICFP-2017/videos/162291585) at 1h13') 169 | 170 | SpaceSearch: A Library for Building and Verifying Solver-Aided Tools 171 | Konstantin Weitz, Steven Lyubomirsky, Stefan Heule, Emina Torlak, Michael D. Ernst, Zachary Tatlock 172 | ([technical report](https://www.cs.washington.edu/public_files/grad/tech_reports/UW-CSE-16-11-02.pdf), [video](https://livestream.com/oxuni/ICFP-2017/videos/162320002) at 27'20'') 173 | 174 | Staged Generic Programming 175 | Jeremy Yallop 176 | ([draft](https://www.cl.cam.ac.uk/~jdy22/papers/staged-generic-programming.pdf), [video](https://livestream.com/oxuni/ICFP-2017/videos/162323148) at 45') 177 | 178 | Super 8, the Story of Making Movies—A Functional Pearl 179 | Leif Andersen, Stephen Chang, Asumu Takikawa, Matthias Felleisen 180 | ([preprint](http://lang.video/pub/icfp2017.pdf)) 181 | 182 | Symbolic conditioning of arrays in probabilistic programs 183 | Praveen Narayanan, Chung-chieh Shan 184 | ([paper](http://homes.soic.indiana.edu/pravnar/disintegrate-arrays.pdf), [video](https://livestream.com/oxuni/ICFP-2017/videos/162295527) at 46') 185 | 186 | Testing and Debugging Functional Reactive Programming 187 | Ivan Perez, Henrik Nilsson 188 | 189 | Theorems for Free for Free: Parametricity, With and Without Types 190 | Amal Ahmed, Dustin Jamner, Jeremy Siek, Philip Wadler 191 | ([artifact](http://www.ccs.neu.edu/home/dijamner/paramblame/artifact/), [video](https://livestream.com/oxuni/ICFP-2017/videos/162365389) at 4') 192 | 193 | Verified Low-Level Programming Embedded in F* 194 | Jonathan Protzenko, Jean-Karim Zinzindohoué, Aseem Rastogi, Tahina Ramananandro, Peng Wang, Santiago Zanella-Béguelin, Antoine Delignat-Lavaud, Catalin Hritcu, Karthikeyan Bhargavan, Cédric Fournet, Nikhil Swamy 195 | ([preprint](https://arxiv.org/pdf/1703.00053) from [arXiv](https://arxiv.org/abs/1703.00053), [video](https://livestream.com/oxuni/ICFP-2017/videos/162314197) at 25') 196 | 197 | Verifying Efficient Function Calls in CakeML 198 | Scott Owens, Michael Norrish, Ramana Kumar, Magnus O. Myreen, Yong Kiam Tan 199 | ([video](https://livestream.com/oxuni/ICFP-2017/videos/162314197) at 49') 200 | 201 | Visitors Unchained 202 | François Pottier 203 | ([preprint](http://gallium.inria.fr/~fpottier/publis/fpottier-visitors-unchained.pdf), [video](https://livestream.com/oxuni/ICFP-2017/videos/162323148) at 23'30'') 204 | 205 | Whip: Higher-Order Contracts for Modern Services 206 | Lucas Waye, Christos Dimoulas, Stephen Chong 207 | ([preprint](http://people.seas.harvard.edu/~chong/pubs/icfp17-whip.pdf) from [paper webpage](http://people.seas.harvard.edu/~chong/abstracts/WayeDC2017.html), [language website](http://whip.services/), [video](https://livestream.com/oxuni/ICFP-2017/videos/162360350) at 24') 208 | 209 | ## Co-located events 210 | 211 | As of writing, the submission process for most ICFP'17 co-located 212 | events is not finished. Feel free to send a pull-request with list of 213 | accepted papers and contribute links to preprints. 214 | 215 | ## Haskell Symposium 2017 216 | 217 | ### Algebraic Programming 218 | 219 | Algebraic Graphs with Class (Functional Pearl) 220 | Andrey Mokhov 221 | ([draft](https://github.com/snowleopard/alga-paper), [hackage](http://hackage.haskell.org/package/algebraic-graphs)) 222 | 223 | Back to the Future: Time Travel in FRP 224 | Ivan Perez 225 | 226 | Packrats Parse in Packs 227 | Mario Blažević and Jacques Légaré 228 | ([pdf](https://github.com/blamario/grampa/raw/master/Grampa.lhs.pdf), [hackage](https://hackage.haskell.org/package/grammatical-parsers)) 229 | 230 | ### Randomness and Testing 231 | 232 | Ode on a Random Urn (Functional Pearl) 233 | Leonidas Lampropoulos, Antal Spector-Zabusky, and Kenneth Foner 234 | ([pdf](http://www.cis.upenn.edu/~llamp/pdf/urns.pdf)) 235 | 236 | QuickSpec: A Lightweight Theory Exploration Tool for Programmers (System Demonstration) 237 | Maximilian Algehed, Koen Claessen, Moa Johansson, and Nicholas Smallbone 238 | 239 | Speculate: Discovering Conditional Equations and Inequalities about Black-Box Functions by Reasoning from Test Results 240 | Rudy Braquehais and Colin Runciman 241 | ([pdf](https://matela.com.br/paper/speculate.pdf)) 242 | 243 | ### Verification 244 | 245 | Using Coq to Write Fast and Correct Haskell 246 | John Wiegley and Ben Delaware 247 | ([abstract](https://www.cs.purdue.edu/homes/bendy/Fiat/FiatByteString.html)) 248 | 249 | A Tale of Two Provers: Verifying Monoidal String Matching in Liquid Haskell and Coq 250 | Niki Vazou, Leonidas Lampropoulos, and Jeff Polakow 251 | ([preprint](https://nikivazou.github.io/static/Haskell17/a-tale.pdf)) 252 | 253 | Well-Typed Music Does Not Sound Wrong (Experience Report) 254 | Dmitrij Szamozvancev and Michael Gale 255 | 256 | ### Expressive Types 257 | 258 | The Linearity Monad 259 | Jennifer Paykin and Steve Zdancewic 260 | ([draft](https://www.cis.upenn.edu/~jpaykin/papers/pz_linearity_monad_2017.pdf)) 261 | 262 | Elaboration on Functional Dependencies 263 | Georgios Karachalias and Tom Schrijvers 264 | ([draft](https://people.cs.kuleuven.be/~george.karachalias/papers/fundeps.pdf)) 265 | 266 | Quantified Class Constraints 267 | Gert-Jan Bottu, Georgios Karachalias, Tom Schrijvers, Bruno C. D. S. Oliveira, and Philip Wadler 268 | ([draft](http://i.cs.hku.hk/~bruno/papers/hs2017.pdf)) 269 | 270 | ### Haskell and the Real World 271 | 272 | Composable Network Stacks and Remote Monads 273 | Justin Dawson, Mark Grebe, and Andy Gill 274 | 275 | A Meta-EDSL for Distributed Web Applications 276 | Anton Ekblad 277 | 278 | Hardware Software Co-Design in Haskell 279 | Markus Aronsson and Mary Sheeran 280 | 281 | ### Concurrency and Parallelism 282 | 283 | Streaming Irregular Arrays 284 | Robert Clifton-Everest, Trevor L. McDonell, Manuel M T Chakravarty, and Gabriele Keller 285 | ([preprint](https://github.com/tmcdonell/tmcdonell.github.io/raw/master/papers/acc-seq2-haskell2017.pdf)) 286 | 287 | Improving STM Performance with Transactional Structs 288 | Ryan Yates and Michael Scott 289 | 290 | Adaptive Lock-Free Data Structures in Haskell: A General Method for Concurrent Implementation Swapping 291 | Chao-Hong Chen, Vikraman Choudhury, and Ryan Newton 292 | 293 | ## [FHPC 2017 Workshop on Functional High-Performance Computing](http://conf.researchr.org/track/FHPC-2017/FHPC-2017-papers#event-overview) 294 | 295 | Destination-Passing Style for Efficient Memory Management 296 | Amir Shaikhha, Andrew Fitzgibbon, Simon Peyton Jones, Dimitrios Vytiniotis 297 | ([preprint](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/11/dps-fhpc17.pdf)) 298 | 299 | From High-level Radio Protocol Specifications to Efficient Low-level Implementations via Partial Evaluation 300 | Geoffrey Mainland, Siddhanathan Shanmugam 301 | 302 | In Search of a Map: using Program Slicing to Discover Potential Parallelism in Recursive Functions 303 | Adam Barwell, Kevin Hammond 304 | ([video](https://livestream.com/oxuni/ICFP-2017/videos/162314197) at 1h12') 305 | 306 | Strategies for Regular Segmented Reductions on GPU 307 | Rasmus Wriedt Larsen, Troels Henriksen 308 | 309 | VisPar: Visualising dataflow graphs from the Par monad 310 | Maximilian Algehed, Patrik Jansson 311 | ([postprint](http://www.cse.chalmers.se/~patrikj/papers/Algehed_Jansson_VisPar_postprint_2017-07-14.pdf), [VisPar source](https://github.com/MaximilianAlgehed/VisPar)) 312 | 313 | 314 | ## Higher-Order Programming with Effects (HOPE) 2017 315 | 316 | A monadic solution to the Cartwright-Felleisen-Wadler conjecture 317 | Ohad Kammar, Dylan McDermott 318 | ([preprint](https://arxiv.org/pdf/1707.06685) from [arXiv](https://arxiv.org/abs/1707.06685)) 319 | 320 | Handling fibred algebraic effects 321 | Danel Ahman 322 | ([paper](https://danelahman.github.io/drafts/handling_fibred_algebraic_effects.pdf)) 323 | 324 | Higher-order Programming is an Effect 325 | Oleg Kiselyov 326 | 327 | Invited Talk: Semantics of Effect Systems by Graded Monads 328 | Shin-ya Katsumata 329 | 330 | Logical Relations for Algebraic Effects 331 | Dariusz Biernacki, Maciej Piróg, Piotr Polesiuk, Filip Sieczkowski 332 | 333 | Only Control Effects and Dependent Types 334 | Youyou Cong, William J. Bowman 335 | 336 | Recalling a Witness 337 | Danel Ahman, Cătălin Hriţcu, Kenji Maillard, Aseem Rastogi, Nikhil Swamy, Cédric Fournet 338 | ([preprint](https://arxiv.org/pdf/1707.02466) from [arXiv](https://arxiv.org/abs/1707.02466)) 339 | 340 | RustBelt: Securing the Foundations of the Rust Programming Language 341 | Ralf Jung, Jacques-Henri Jourdan, Robbert Krebbers, Derek Dreyer 342 | ([paper](https://people.mpi-sws.org/~dreyer/papers/rustbelt/paper.pdf)) 343 | 344 | Structured Asynchrony with Algebraic Effects 345 | Daan Leijen 346 | ([technical report](https://www.microsoft.com/en-us/research/wp-content/uploads/2017/05/asynceffects-msr-tr-2017-21.pdf)) 347 | 348 | ## [ML Family Workshop](http://www.mlworkshop.org/ml2017) 349 | 350 | Effects without monads: non-determinism. 351 | Oleg Kiselyov 352 | 353 | Tierless modules 354 | Gabriel Radanne and Jérôme Vouillon 355 | ([extended abstract](https://www.irif.fr/~gradanne/papers/eliom/mlworkshop2017.pdf)) ([technical report](https://hal.archives-ouvertes.fr/hal-01485362/document)) 356 | 357 | Efficient representation of large, dynamic sequences in ML 358 | Arthur Chargueraud and Mike Rainey 359 | 360 | Mergeable types 361 | Gowtham Kaki, KC Sivaramakrishnan, Samodya Abeysiriwardane, and Suresh Jagannathan 362 | ([draft](http://kcsrk.info/papers/mergeable_types_ml17.pdf)) 363 | 364 | Towards abductive functional programming 365 | Koko Muroya 366 | 367 | Typer: an infix statically typed Lisp 368 | Pierre Delaunay, Vincent Archambault-Bouffard, and Stefan Monnier 369 | 370 | Making SML# a general-purpose high-performance language 371 | Atsushi Ohori, Kenjiro Taura, and Katsuhiro Ueno 372 | ([draft](http://www.pllab.riec.tohoku.ac.jp/papers/ml2017Preversion.pdf)) 373 | 374 | First-class subtypes 375 | Jeremy Yallop and Stephen Dolan 376 | ([draft](https://www.cl.cam.ac.uk/~jdy22/papers/first-class-subtypes.pdf)) 377 | 378 | Effectively tackling the awkward squad 379 | Stephen Dolan, Spiros Eliopoulos, Daniel Hillerström, Anil Madhavapeddy, KC Sivaramakrishnan, and Leo White 380 | ([draft](http://kcsrk.info/papers/awkward_effects_ml17.pdf)) 381 | 382 | Relational conversion for OCaml 383 | Petr Lozov and Dmitry Boulytchev 384 | 385 | VOCAL -- A Verified OCAml Library 386 | Arthur Charguéraud, Jean-Christophe Filliâtre, Mário Pereira, François Pottier 387 | ([extended abstract](https://hal.inria.fr/hal-01561094/document)) 388 | 389 | ## OCaml Workshop 2017 390 | 391 | A B-tree library for OCaml 392 | Tom Ridge 393 | ([extended abstract](http://www.tom-ridge.com/resources/doc/ocaml_2017.pdf); [draft slides](http://www.tom-ridge.com/resources/ocaml_2017_slides.pdf)) 394 | 395 | A memory model for multicore OCaml 396 | Stephen Dolan, KC Sivaramakrishnan 397 | ([extended abstract](http://kcsrk.info/papers/memory_model_ocaml17.pdf)) 398 | 399 | Component-based Program Synthesis in OCaml 400 | Zhanpeng Liang, Kanae Tsushima 401 | ([extended abstract](http://www-scf.usc.edu/~zhanpenl/prog_syn.pdf)) 402 | 403 | Extending OCaml's open 404 | Runhang Li, Jeremy Yallop 405 | ([extended abstract](https://www.cl.cam.ac.uk/~jdy22/papers/extending-ocamls-open.pdf), 406 | [iOCamlJS playground!](http://ocamllabs.io/iocamljs/open-struct.html), 407 | [additional material](https://github.com/objmagic/ocaml-workshop-17-open-ext-talk)) 408 | 409 | Genspio: Generating Shell Phrases In OCaml 410 | [Sebastien Mondet](http://seb.mondet.org) 411 | ([extended abstract](http://wr.mondet.org/paper/smondet-genspio-ocaml17.pdf), 412 | [slides](http://wr.mondet.org/slides/OCaml2017-Genspio/), 413 | [code](https://github.com/hammerlab/genspio)) 414 | 415 | Owl: A General-Purpose Numerical Library in OCaml 416 | Liang Wang 417 | ([extended abstract](https://arxiv.org/pdf/1707.09616) from [arXiv](https://arxiv.org/abs/1707.09616), [presentation](https://docs.google.com/presentation/d/1A-7KiQLot3X2lLyZntrFGxsxaNir0g_2TlruBP4W2Uc/)) 418 | 419 | ROTOR: First Steps Towards a Refactoring Tool for OCaml 420 | Reuben N. S. Rowe, Simon Thompson 421 | ([extended abstract](https://www.cs.kent.ac.uk/people/staff/rnsr/docs/rotor_ocaml-17_abstract.pdf), [slides](https://www.cs.kent.ac.uk/people/staff/rnsr/docs/ocaml_2017_slides.pdf), [code](https://gitlab.com/trustworthy-refactoring/), [Docker image](https://hub.docker.com/r/reubenrowe/ocaml-rotor)) 422 | 423 | Testing with Crowbar 424 | Stephen Dolan, Mindy Preston 425 | 426 | Bioinformatics, The Typed Tagless Final Way 427 | [Sebastien Mondet](http://seb.mondet.org) 428 | ([extended abstract](http://wr.mondet.org/paper/smondet-biottfi-ocaml17.pdf), 429 | [slides](http://wr.mondet.org/slides/OCaml2017-BioTTFI/#/), 430 | [code](https://github.com/hammerlab/wobidisco/)) 431 | 432 | Tezos: the OCaml Crypto-Ledger 433 | Benjamin Canou, Grégoire Henry, Pierre Chambart, Fabrice Le Fessant, Arthur Breitman 434 | 435 | The State of the OCaml Platform: September 2017 436 | Anil Madhavapeddy 437 | ([slides](https://docs.google.com/presentation/d/1A-7KiQLot3X2lLyZntrFGxsxaNir0g_2TlruBP4W2Uc/)) 438 | 439 | Wodan: a pure OCaml, flash-aware filesystem library 440 | Gabriel de Perthuis 441 | ([extended abstract](https://g2p.github.io/research/wodan.pdf )) 442 | 443 | ocamli: Interpreted OCaml 444 | John Whitington 445 | ([extended abstract](http://www.cs.le.ac.uk/people/jw642/ocamlworkshop.pdf)) 446 | 447 | mSAT: An OCaml SAT Solver 448 | Bury Guillaume 449 | ([extended abstract](https://gbury.eu/public/papers/icfp2017_msat.pdf)) 450 | 451 | Tyre – Typed Regular Expressions 452 | Gabriel Radanne 453 | ([abstract](https://www.irif.fr/~gradanne/papers/tyre/abstract.pdf)) 454 | 455 | Jbuilder: a modern approach to OCaml development 456 | Jeremie Dimino, Mark Shinwell 457 | --------------------------------------------------------------------------------