Haskell Communities and Activities Report
Total Page:16
File Type:pdf, Size:1020Kb
Haskell Communities and Activities Report http://tinyurl.com/haskcar Twenty-Ninth Edition — November 2015 Mihai Maruseac (ed.) Andreas Abel Chris Allen Christopher Anand Francesco Ariis Heinrich Apfelmus Emil Axelsson Christiaan Baaij Carl Baatz Doug Beardsley Jean-Philippe Bernardy Alexander Berntsen Joachim Breitner Björn Buckwalter Erik de Castro Lopo Lucas DiCioccio Manuel M. T. Chakravarty Roman Cheplyaka Olaf Chitil Alberto Gómez Corona Duncan Coutts Atze Dijkstra Péter Diviánszky Corentin Dupont Richard Eisenberg Tom Ellis Maarten Faddegon Andrew Farmer Dennis Felsing Julian Fleischer Phil Freeman PÁLI Gábor János Michal J. Gajda Andrew Gibiansky Brett G. Giles Andrew Gill Alexander Granin Mark Grebe Daniel Gröber Jurriaan Hage Greg Hale Bastiaan Heeren Joey Hess Nicu Ionita Bob Ippolito Robin KAY Anton Kholomiov Ian-Woo Kim Oleg Kiselyov Edward Kmett Balázs Kőműves Eric Kow Nickolay Kudasov Rob Leslie Ben Lippmeier Andres Löh Rita Loogen Boris Lykah Ian Lynagh José Pedro Magalhães Ketil Malde Douglas McClean Simon Michael Mantas Markevicius Dino Morelli Natalia Muska Rishiyur Nikhil Antonio Nikishaev Ulf Norell Kiwamu Okabe Ivan Perez Jens Petersen Haskell Consultancy Munich Simon Peyton Jones Matthew Pickering Gracjan Polak Bryan Richter Jeffrey Rosenbluth Ian Ross David Sabel Martijn Schrage Carter Tazio Schonwald Tom Schrijvers Michael Schröder Austin Seipp Jeremy Shaw Christian Höner zu Siederdissen Aditya Siram Gideon Sireling Jim Snow Michael Snoyman Kyle Marek-Spartz Lennart Spitzner Doaitse Swierstra Henk-Jan van Tuyl Bernhard Urban Alessio Valentini Adam Vogt Daniel Wagner Greg Weber Ingo Wechsung Kazu Yamamoto Edward Z. Yang Brent Yorgey Alan Zimmerman Marco Zocca Preface This is the 29th edition of the Haskell Communities and Activities Report. Quite a lot of things changed since the previous report. Some old entries have resurfaced and contributors submitted stories in new areas of development but, sadly, several entries have become too stale and had to be removed. All entries from 2013 except the one about cabal have been removed for now but we hope to see them resurface again on the next edition. Please do revive such entries next time if you do have news on them. To make contributing easier, we are experimenting with moving to a rolling-deadline submis- sion where each entry can be submitted at any moment of the year. However, we will still have only 2 editions of HCAR per year, at the usual pace, only the entry submission period will be extended. This change allows us to change the pipeline for building the report (thus, the next report might look completely different). Hence, we are also considering opening the building pipeline to be used by any submitter. As usual, fresh entries – either completely new or old entries which have been revived after a short temporarily disappearance – are formatted using a blue background, while updated entries have a header with a blue background. A few words from Mihai: The previous issue of HCAR was the last in which Alejandro helped in editing. Due to other obligations he has decided to step down. I want to thank him for the effort so far and for the contributions to the Haskell world. A call for new HCAR entries and updates to existing ones will be issued on the Haskell mailing lists in late March/early April. Now enjoy the current report and see what other Haskellers have been up to lately. Any feedback is very welcome, as always. Mihai Maruseac, University of Massachusetts Boston, US [email protected] 2 Contents 1 Community 7 1.1 Haskellers................................................. 7 2 Books, Articles, Tutorials 8 2.1 Oleg’s Mini Tutorials and Assorted Small Projects........................... 8 2.2 School of Haskell............................................. 8 2.3 Haskell Programming from first principles, a book forall....................... 9 2.4 Learning Haskell.............................................. 9 2.5 Agda Tutorial............................................... 10 3 Implementations 11 3.1 The Glasgow Haskell Compiler...................................... 11 3.2 Ajhc Haskell Compiler.......................................... 12 3.3 The Helium Compiler........................................... 13 3.4 UHC, Utrecht Haskell Compiler..................................... 14 3.5 Frege.................................................... 14 3.6 Specific Platforms............................................. 14 3.6.1 Haskell on FreeBSD............................................ 14 3.6.2 Debian Haskell Group.......................................... 15 3.6.3 Fedora Haskell SIG............................................ 15 4 Related Languages and Language Design 16 4.1 Agda.................................................... 16 4.2 MiniAgda................................................. 16 4.3 Disciple................................................... 16 5 Haskell and . 18 5.1 Haskell and Parallelism.......................................... 18 5.1.1 Eden.................................................... 18 5.1.2 Wakarusa................................................. 19 5.2 Haskell and the Web........................................... 19 5.2.1 WAI.................................................... 19 5.2.2 Yesod.................................................... 20 5.2.3 Scotty................................................... 20 5.2.4 Warp.................................................... 21 5.2.5 Mighttpd2 — Yet another Web Server................................. 21 5.2.6 Happstack................................................. 21 5.2.7 Snap Framework............................................. 21 5.2.8 MFlow................................................... 21 5.2.9 Sunroof................................................... 22 5.2.10 Blank Canvas............................................... 23 5.2.11 PureScript................................................. 24 5.3 Haskell and Compiler Writing...................................... 24 5.3.1 MateVM.................................................. 24 5.3.2 UUAG................................................... 24 6 Development Tools 26 6.1 Environments............................................... 26 6.1.1 Haskell IDE From FP Complete..................................... 26 6.1.2 ghc-mod — Happy Haskell Programming................................ 26 6.1.3 haskell-ide-engine, a project for unifying IDE functionality...................... 26 6.1.4 HaRe — The Haskell Refactorer..................................... 27 3 6.1.5 ghc-exactprint............................................... 28 6.1.6 IHaskell: Haskell for Interactive Computing.............................. 28 6.1.7 Haskell for Mac.............................................. 29 6.1.8 Haskino.................................................. 30 6.2 Code Management............................................ 30 6.2.1 Darcs.................................................... 30 6.2.2 cab — A Maintenance Command of Haskell Cabal Packages..................... 31 6.3 Interfacing to other Languages...................................... 31 6.3.1 java-bridge................................................. 31 6.3.2 fficxx.................................................... 31 6.4 Deployment................................................ 32 6.4.1 Cabal and Hackage............................................ 32 6.4.2 Stackage: the Library Dependency Solution.............................. 32 6.4.3 Haskell Cloud............................................... 33 6.5 Others................................................... 33 6.5.1 ghc-heap-view............................................... 33 6.5.2 Hat — the Haskell Tracer........................................ 33 6.5.3 Tasty.................................................... 34 6.5.4 Automatic type inference from JSON.................................. 34 6.5.5 Exference................................................. 35 6.5.6 Lentil.................................................... 35 6.5.7 The Remote Monad Design Pattern................................... 35 6.5.8 Hoed – The Lightweight Algorithmic Debugger for Haskell...................... 36 7 Libraries, Applications, Projects 38 7.1 Language Features............................................ 38 7.1.1 Conduit.................................................. 38 7.1.2 GHC type-checker plugin for kind Nat................................. 38 7.1.3 Dependent Haskell............................................ 39 7.1.4 Yampa................................................... 39 7.2 Education................................................. 41 7.2.1 Holmes, Plagiarism Detection for Haskell................................ 41 7.2.2 Interactive Domain Reasoners...................................... 41 7.3 Parsing and Transforming........................................ 42 7.3.1 HERMIT.................................................. 42 7.3.2 Utrecht Parser Combinator Library: uu-parsinglib........................... 42 7.3.3 Generalized Algebraic Dynamic Programming............................. 43 7.4 Mathematics, Numerical Packages and High Performance Computing................ 44 7.4.1 Rlang-QQ................................................. 44 7.4.2 arb-fft................................................... 45 7.4.3 hblas.................................................... 45 7.4.4 HROOT.................................................. 45 7.4.5 Numerical................................................. 46 7.4.6 petsc-hs.................................................