Haskell Communities and Activities Report 2014
Total Page:16
File Type:pdf, Size:1020Kb
Haskell Communities and Activities Report http://tinyurl.com/haskcar Twenty-Seventh Edition — November 2014 Mihai Maruseac, Alejandro Serrano Mena (eds.) Andreas Abel Alexander Granin Heinrich Apfelmus Emil Axelsson Carl Baatz Doug Beardsley Jean-Philippe Bernardy Alexander Berntsen Jeroen Bransen Joachim Breitner Erik de Castro Lopo Lucas DiCioccio Roman Cheplyaka Olaf Chitil Alberto Gómez Corona Duncan Coutts Atze Dijkstra Péter Diviánszky Corentin Dupont Richard Eisenberg Andrew Farmer Dennis Felsing Julian Fleischer Michal J. Gajda Andrew Gibiansky Brett G. Giles Andy Gill Jurriaan Hage Greg Hale Bastiaan Heeren Sylvain Henry Lars Hupel PÁLI Gábor János Bob Ippolito Philipp Kant Robin KAY Anton Kholomiov Ian-Woo Kim Oleg Kiselyov Edward Kmett Eric Kow Nickolay Kudasov Ben Lippmeier Andres Löh Rita Loogen Boris Lykah Ian Lynagh Christian Maeder José Pedro Magalhães Ketil Malde Mihai Maruseac Dino Morelli JP Moresmau Ben Moseley Natalia Muska Tom Nielsen Rishiyur Nikhil Kiwamu Okabe Ivan Perez Jens Petersen Haskell Consultancy Munich Simon Peyton Jones Jeffrey Rosenbluth Ian Ross David Sabel Martijn Schrage Austin Seipp Carter Tazio Schonwald Jeremy Shaw Christian Höner zu Siederdissen Gideon Sireling Jim Snow Michael Snoyman Andrei Soare Kyle Marek-Spartz Doaitse Swierstra Henk-Jan van Tuyl Bernhard Urban Alessio Valentini Adam Vogt Daniel Wagner Greg Weber Kazu Yamamoto Edward Z. Yang Brent Yorgey Alan Zimmerman Preface This is the 27th edition of the Haskell Communities and Activities Report. 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. Entries on which no new activity has been reported for a year or longer have been dropped completely. Please do revive such entries next time if you do have news on them. A call for new HCAR entries and updates to existing ones will be issued on the Haskell mailing lists in March. It is possible that by that time we would have switched to a different generation pipeline. In that case, we might issue a call to update old entries which have been completely removed from the report in the past but are still there in the pipeline. 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 Alejandro Serrano Mena, Utrecht University, Netherlands [email protected] 2 Contents 1 Community 4 1.1 Haskellers................................................... 4 2 Books, Articles, Tutorials 5 2.1 The Monad.Reader.............................................. 5 2.2 Oleg’s Mini Tutorials and Assorted Small Projects............................. 5 2.3 Agda Tutorial................................................. 6 2.4 School of Haskell............................................... 6 3 Implementations 7 3.1 The Glasgow Haskell Compiler........................................ 7 3.2 Ajhc Haskell Compiler............................................ 9 3.3 The Helium Compiler............................................. 10 3.4 UHC, Utrecht Haskell Compiler....................................... 10 3.5 Specific Platforms............................................... 10 3.5.1 Haskell on FreeBSD............................................. 10 3.5.2 Debian Haskell Group............................................ 11 3.5.3 Fedora Haskell SIG............................................. 11 4 Related Languages and Language Design 13 4.1 Agda...................................................... 13 4.2 MiniAgda................................................... 13 4.3 Disciple..................................................... 13 4.4 Ermine..................................................... 14 5 Haskell and . 15 5.1 Haskell and Parallelism............................................ 15 5.1.1 Eden..................................................... 15 5.1.2 speculation.................................................. 16 5.2 Haskell and the Web............................................. 16 5.2.1 WAI...................................................... 16 5.2.2 Warp..................................................... 16 5.2.3 Happstack.................................................. 17 5.2.4 Mighttpd2 — Yet another Web Server................................... 17 5.2.5 Yesod..................................................... 18 5.2.6 Snap Framework............................................... 19 5.2.7 Sunroof.................................................... 19 5.2.8 MFlow.................................................... 19 5.2.9 Scotty..................................................... 20 5.3 Haskell and Compiler Writing........................................ 21 5.3.1 MateVM................................................... 21 5.3.2 UUAG.................................................... 21 5.3.3 LQPL — A Quantum Programming Language Compiler and Emulator................ 22 5.3.4 free — Free Monads............................................. 23 5.3.5 bound — Making De Bruijn Succ Less.................................. 23 6 Development Tools 24 6.1 Environments................................................. 24 6.1.1 Haskell IDE From FP Complete...................................... 24 6.1.2 EclipseFP................................................... 24 6.1.3 ghc-mod — Happy Haskell Programming................................. 25 6.1.4 HaRe — The Haskell Refactorer...................................... 25 3 6.1.5 IHaskell: Haskell for Interactive Computing................................ 26 6.2 Code Management.............................................. 27 6.2.1 Darcs..................................................... 27 6.2.2 DarcsWatch................................................. 27 6.2.3 cab — A Maintenance Command of Haskell Cabal Packages...................... 27 6.3 Interfacing to other Languages........................................ 28 6.3.1 java-bridge.................................................. 28 6.3.2 fficxx..................................................... 28 6.4 Deployment.................................................. 29 6.4.1 Cabal and Hackage............................................. 29 6.4.2 Stackage: the Library Dependency Solution................................ 30 6.4.3 Haskell Cloud................................................ 30 6.5 Others..................................................... 31 6.5.1 lhs2TEX.................................................... 31 6.5.2 ghc-heap-view................................................ 31 6.5.3 ghc-vis.................................................... 31 6.5.4 Hat — the Haskell Tracer.......................................... 32 6.5.5 Tasty..................................................... 32 6.5.6 Automatic type inference from JSON................................... 33 7 Libraries, Applications, Projects 34 7.1 Language Features.............................................. 34 7.1.1 Conduit.................................................... 34 7.1.2 lens...................................................... 34 7.1.3 folds...................................................... 35 7.1.4 machines................................................... 35 7.1.5 exceptions.................................................. 35 7.1.6 tables..................................................... 35 7.1.7 Faking even more dependent types!.................................... 36 7.1.8 Type checking units-of-measure...................................... 36 7.1.9 Dependent Haskell.............................................. 36 7.2 Education................................................... 37 7.2.1 Exercism: crowd-sourced code reviews on daily practice problems................... 37 7.2.2 Talentbuddy................................................. 37 7.2.3 Holmes, Plagiarism Detection for Haskell................................. 37 7.2.4 Interactive Domain Reasoners....................................... 38 7.3 Parsing and Transforming.......................................... 39 7.3.1 epub-metadata................................................ 39 7.3.2 Utrecht Parser Combinator Library: uu-parsinglib............................ 39 7.3.3 Grammar Products, Set Grammars, and Automatic Outside Grammars................ 40 7.3.4 HERMIT................................................... 41 7.3.5 parsers.................................................... 41 7.3.6 trifecta.................................................... 42 7.4 Generic and Type-Level Programming................................... 42 7.4.1 Optimising Generic Functions....................................... 42 7.4.2 constraints.................................................. 42 7.5 Mathematics.................................................. 42 7.5.1 Rlang-QQ.................................................. 42 7.5.2 order-statistics................................................ 43 7.5.3 Eliminating Redundancies in Linear Systems............................... 43 7.5.4 linear..................................................... 43 7.5.5 algebra.................................................... 43 7.5.6 semigroups and semigroupoids....................................... 44 7.5.7 Arithmetics packages (Edward Kmett).................................. 44 7.5.8 ad....................................................... 44 7.5.9 integration.................................................