Neil Mitchell is a Haskell programmer who lives in Cambridge with his wife Emily and his son Henry. Neil has a PhD in Computer Science from York University, working on making functional programs shorter, faster and safer. Since then he's worked with F# at Credit Suisse and Haskell/F#/C++ at Standard Chartered and Barclays, taking the lessons of functional programming and applying them in finance.
Neil is a strong believer in the functional approach, finding the combination of conciseness, static-typing and testability to offer significant advantages. He is currently developing a number of open source Haskell projects, all of which can be found on his Github page or on Hackage. He welcomes both contributions via pull requests and bug reports via the GitHub issue trackers. Some of my more popular projects include:
- Shake - a library for writing build systems, an alternative to make.
- Hoogle - a Haskell API search engine, searching the standard Haskell libraries by function name and type signature.
- HLint - a tool that suggests stylistic improvements to Haskell code.
Check out Neil's blog and follow him on Twitter @ndm_haskell.
Talks I've Given
-
Fixing Haskell Records
Featuring Neil Mitchell
Sadly, Haskell records aren’t very good - problems include that field names must be unique and that record updates are not very expressive. A variety of solutions have been proposed over many decades, but none has gained traction. The closest answer Haskell has is the lens library, which famously...
records haskell daml -
Fast XML Parsing with Haskell
Featuring Neil Mitchell
Haskell has lots of XML parsing libraries, implemented using different techniques, and offering different levels of performance. In this talk, you will learn why, until recently, even the fastest of these libraries was embarrassingly slow compared to state-of-the-art XML parsers. Neil will share...
haskellx haskell performance xml parsing ffi -
HaskellX Bytes with Neil Mitchell!
Featuring Neil Mitchell
Haskell is a strongly typed programming language, which should be well suited to static analysis - specifically any insights about the program which don't require running the program. Alas, while type systems are becoming increasingly powerful, other forms of static analysis aren't...
haskellx functional -
Plugging Space Leaks, Improving Performance
Featuring Neil Mitchell
Confused by foldl' vs foldl? Unsure when you've got the strictness right? Programs taking too much memory and running too slow? You are not alone! Most Haskell programs suffer from "space leaks" - this talk covers examples (all only found and fixed in the last year) from the...
haskell haskellx spaceleak functional-programming hoogle hlint shake -
Defining your own Build System with Shake
Featuring Neil Mitchell
Shake, like Make, is a tool for writing build systems. However, unlike Make, Shake features monadic dependencies (your dependencies themselves can depend on the results of previous dependencies), polymorphic dependencies (your dependencies don't have to be files) and stable dependencies (if...
haskell functional-programming build-systems -
Everyone should use a Generics library - writing HLint with Uniplate
Featuring Neil Mitchell
This talk explains how to use the Uniplate generics library, using examples derived from the Haskell Lint tool (HLint), which makes extensive use of Uniplate.
boilerplate haskell scrap-your-boilerplate hlint haskellx uniplate