In its fifth year, the Haskell eXchange is an annual conference created for and by the Skills Matter community. An opportunity for Haskellers to meet, learn and share skills, discover emerging technologies and help evolve the Haskell ecosystem. Everyone is welcome to join, whether you are an expert or a beginner, whether you are a commercial user, an academic or a hobbyist, we'd love it if you join us this year at the Haskell eXchange!
Thank you!!
Bigger and Better!
The fifth Haskell eXchange was a great success, growing to 3 tracks of inspiring talks and workshops. Thank you to all those who joined us, Speakers and Attendees alike, we had an awesome time and we hope you did too! A special mention to our Programme Committee who helped us build a superb schedule as well.
Registration for 2017 is Open!
Haskell eXchange 2017 will be held on 12th and 13th October 2017. Join us for another great year - don't miss our
Impressions of last year
Excited? Share it!
Day 1: Thursday 6th October 2016
Join us for these awesome sessions!
| Track | Room Name: CTRL | Room Name: ALT/TAB | Room Name: CMD | |||||||||
| 08:15 |
Registration |
|||||||||||
| 09:00 |
This talk is about the day to day practice of using Haskell to write large software systems. Focusing on: *Building bigger systems from smaller pieces *Reusable approaches for designing components *Techniques for making code maintainable *And ways to improve code that you come across Using examples where we *Integrate Haskell into existing systems *Use Haskell to wrap untrusted or external systems Above all, ways to reduce and manage complexity in software as the size of the system grows. About the speaker...Donald StewartDon is a functional programmer and leads the Strats team at Standard Chartered Bank writing trading software in Haskell. He holds a PhD in Computer Science, and has been using Haskell commercially for the past decade. He’s also co-author of “Real World Haskell” and the xmonad window manager. He’s interested in building great software, type-driven software design and software optimization. |
|||||||||||
| 10:00 |
Coffee Break |
|||||||||||
| 10:30 |
During this talk, you will learn how to use Haskell's powerful features for abstraction to create a Neural Network library in native Haskell that makes it easy to create complex network architectures in a type-safe and flexible way. Automatic differentiation is used to provide painless gradient descent and easy extension with new components without the need to first compute complicated partial derivatives by hand. Furthermore, the API uses "Pipes" for separation of concerns (data import, training, reporting, termination).
neural
nets
differentiation
api
haskell
haskellx
About the speaker...Lars BrünjesLars is a pure mathematician by training, and holds a PhD in the same. He has spent several years teaching and doing postgraduate research in arithmetic number theory at Cambridge University in the UK, and at Regensburg University in Germany. He worked for ten years as a Lead Software Architect for an international IT company. His job, amongst other things, was the application of mathematical optimization techniques to the paper industry and web framework development (using mostly C#, JavaScript and TypeScript). His present position is that of Director of Education at Input Output Hong Kong (IOHK), working on blockchain technology and teaching Haskell and other subjects. He has been interested in programming since his early teens, and he loves learning new programming languages and paradigms - in particular those that offer a radically new way of looking at problems and of thinking about solutions. He is especially fascinated by functional programming and its promise of elegant, bug-free code that can be developed rapidly. |
Many Haskell programmers write parsers using parser combinator libraries like `parsec` or `uu-lib`, or parser generators like `happy`. These systems are popular because they are easy to get started with and suitable for production applications. In particular, parser combinators libraries are popular because the parsers obtained in this way are easy to debug, maintain, generalise and compose. The disadvantages of the underlying parsing technologies - left-recursion, nondeterminism and ambiguity - are well understood and can be circumnavigated. Some argue that parsing is therefore a solved problem. Others turn to generalised parsing. Generalised parsing overcomes these disadvantages: modern parser generators are capable of generating parsers for arbitrary context-free grammars. The generated parsers find all possible derivations of an input string in worst-case cubic time and space. In recent years, combinator libraries like `p3` (OCaml) and `meerkat` (Scala) emerged, promising to combine the advantages of parser combinators with those of generalised parsing. In this talk, you will explore the implementation of the `gll` combinator library, offering generalised top-down parsing to Haskell programmers. The combinators of these libraries are so powerful that they may compute explicit representations of context-free grammars, enabling features common to parser generators like lookahead tests and grammar transformations. This power comes at a price. Following the authors of the `grammar-combinators` library, I argue that combinator libraries for generalised parsing require observable sharing. As a consequence, such combinator libraries cannot offer programmers the same flexibility as `parsec` and `uu-lib`. Although offering generalised parsing, some benefits of combinator parsing are definitely lost. In this talk,
- You learn the basics of combinator based parsing in Haskell
- You are introduced to generalised parsing
- You get a glimpse of the
combinator
parsing
types
haskell
haskellx
About the speaker...Thomas van BinsbergenL. Thomas van Binsbergen is a PhD student in Computer Science at Royal Holloway, University of London, and an MSc graduate of Utrecht University. His work revolves around the specificying and prototyping programming languages. Notable are the contributions he made to the Utrecht University Attribute Grammar Compiler (UUAGC), implementing algorithms for compile-time scheduling of attribute evaluation based on dependency analysis. In recent years, Thomas has been associated with the PLanCompS project and has developed Haskell tools for defining and executing FunCons: highly reusable and modular components used in the formal specification of programming languages' semantics. |
Day 1, 6 Oct starts 10:30 (Room Name: CMD)
Hands On Tutorial: Build yourself a reddit bot
|
|||||||||
| 11:15 |
Coffee Break |
|||||||||||
| 11:30 |
Ling is an experimental programming language combining the precision of a system-level programming language and the abstraction and safety of a pure, functional programming language. This combination is made possible by the underlying theory which is based on a combination of dependent type theory and linear logic. In practice, this provides a general form of program fusion (an optimization short-cutting production and consumption of data) which is part of the type system, and which can still be finely controlled. In Ling, resource allocations such as memory are explicit. Fusion may happen at each allocation point. The user controls how much fusion should happen, and the type system checks if this is possible. The resulting fusion framework is both quite general and fully predictable.
ling
fusion
type-theory
language-design
linearity
optimization
system-programming
haskell-x
haskell
About the speaker...Nicolas PouillardNicolas's current areas of research/interests are a mixture of Functional programming/Type Theory and Cryptography/Security. He is currently working for Liqd.net on the AuLa project (open source and written in Haskell) aiming at bringing liquid democracy to students. Previously, he was a postdoc researcher with the Demtech project at IT Univeristy of Copenhagen focusing on formalizing cryptographic voting protoctols in type theory. Before that, he was an engineer and then a PhD student in the Gallium research team at INRIA Paris Rocquencourt. At that time, he was mainly focused on the design of programming languages and in particular meta-programming. He learned programming and computer science at the engineering school of EPITA in Paris. Nicolas tweets at @npouillard, and his website can be found at https://nicolaspouillard.fr. |
Most build systems start small and simple, but over time grow into hairy monsters that few dare to touch. Our favourite Glasgow Haskell Compiler is no exception. In this talk, you will learn that there are a few issues that cause build systems major scalability challenges, and many pervasively used build systems (e.g. Make) do not scale well. You will use functional programming to design abstractions for build systems and overcome these challenges. You will explore a new build system for GHC, called Hadrian, that we engineered using these abstractions. The result is more scalable, faster, and spectacularly more maintainable than its Make-based predecessor.
hadrian
ghc
haskell
haskellx
About the speaker...Andrey MokhovAndrey Mokhov is a senior lecturer in computer engineering at Newcastle University and a Royal Society Industry Fellow. He is interested in applying abstract mathematics and functional programming to industrial engineering problems. In 2015 he was a visiting researcher at Microsoft Research Cambridge redesigning the build system of the Glasgow Haskell Compiler; this project is currently continued as part of a 4-year Royal Society research fellowship dedicated to studying build systems in general. |
Day 1, 6 Oct starts 11:30 (Room Name: CMD)
Hands On Tutorial: Build yourself a reddit bot
|
|||||||||
| 12:15 |
Lunch |
|||||||||||
| 13:30 |
Haskell is a lazy language and thus differs from most other widely used languages. The way that Haskell programs are executed can be obscure to newcomers and old hands alike. It's not actually too hard to understand how Haskell programs are executed, but it is rather unusual! This talk will demystify lazy evaluation and help explain related issues such as performance and space leaks. The talk will be accessible to beginners but should be interesting to Haskellers at any point on the experience spectrum!
programming
haskell
haskellx
About the speaker...Tom EllisTom Ellis studied computer science and mathematics at the University of Cambridge, graduating with a PhD. Since then he has worked as a software developer in the finance sector, mainly as a consultant using Haskell. He is the author of the Haskell "Opaleye" library for type-safe, composable Postgres access, and is an experienced public speaker. |
In this talk, you will discover that broad language interoperability is crucial for Haskell's success in not entirely insignificant niches such as the enterprise. And that performance of language binding mechanisms is the key to retaining good modularity. Hot on the heals of previous efforts such as inline-c and inline-r, you will learn inline-java and explore how the library enables you to ask existing JVM-based frameworks to seamlessly distribute your analytics Haskell apps at scale on dozens of machines in the cloud.
java
spark
ffi
interoperability
JVM
distributed-programming
haskell
haskellx
About the speaker...Mathieu BoespflugMathieu Boespflug is a functional programmer and enthusiast based in Paris. He is the founder of Tweag I/O, an R&D Lab pushing the practice of programming language theory and distributed systems. Some time before that, after having learned Haskell from the venerable old and new guard at the University of York, he wrote Haskell and Ocaml at various academic institutions, focusing on compiler technologies for dependent types during his PhD (École Polytechnique, France) and type safe metaprogramming for both proofs and programs during his postdoc (McGill, Canada). |
Thanks to recent work by Bas and Roel van Dijk at Lumiguide, it is now possible and easy to use OpenCV from Haskell. In this talk, you will discover how Haskell lets us define a typed and ergonomic API on top of the OpenCV types and functions, and how easy it is to define new bindings -- also thanks to the inline-c library presented at last year Haskell eXchange. Following this, you will explore the full capabilities of the bindings through a live coding demo showing how you can process input from a webcam in real time.
haskell
haskellx
opencv
inline-c
computer-vision
foreign-function-interface
typelevel-programming
About the speaker...Francesco MazzoliFrancesco Mazzoli is a Haskell programmer working at FPComplete from Rome. Before that, he has dropped out of a PhD working on Agda, worked with Haskell at Better, and spent almost a year working at RabbitMQ. He studied Computer Science at Imperial College London. |
|||||||||
| 14:15 |
Coffee Break |
|||||||||||
| 14:30 |
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 base library, QuickCheck, pretty, Happy, Alex and Shake. Some fixes saved over 1Gb of memory! Space leaks occur when a program uses more memory than necessary. Haskell, as a lazy language, is particularly vulnerable to a form of space leak where a small accumulator (e.g. an Int) is instead represented by a sequence of updates that grows on each iteration. In this talk, you will learn the gritty details of space leaks, then the session sets off on a quest to remove them from all Haskell programs. You will explore the relationship between space leaks and stack usage, then how to use the existing tools built in to GHC to detect and debug excessive stack usage. These techniques have already slain lots of space leaks, and hopefully in your hands they can destroy even more.
spaceleak
functional-programming
hoogle
hlint
shake
haskell
haskellx
About the speaker...Neil MitchellNeil 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:
Check out Neil's blog and follow him on Twitter @ndm_haskell. |
In this talk, you will explore using QuickCheck and using it beyond technical tests or for testing algebraic properties & visual symmetries: You will dive into the rich world of Business Domain Specific properties! See that your business rules are Domain Invariants (in the DDD sense), and you will learn how to translate them to properties QuickCheck can check!
quickcheck
testing
algebra
symmetries
ddd
haskell
haskellx
About the speaker...Romeu MouraWriter of tales – on art, puzzles & crafts – to friends & compilers. Likes dialectics, paradigm jumping, serendipity, endless conversations. |
In this talk, you will explore a case study on how to implement a 3D first person shooter game in Haskell. The project's goal is to mimic the Quake 3 engine, but starting from scratch using purely functional paradigm. You will discover each problem domain related to a 3D engine and game, such as loading and displaying the game content, game logic implementation. Luckily, you can learn to use off the shelf solutions from the Haskell ecosystem as a solution (e.g. binary, megaparsec, monad transformers, lens, lambdacube 3D). Find out more on lambdacube here.
opengl
gamedev
gpu
dsl
lambdacube3d
quake
game-engine
haskell-x
haskell
About the speaker...Csaba HruskaCsaba is an enthusiastic Haskell programmer with interest in compilers, graphics programming and game development. He likes to experiment with cutting edge technologies usually doing it in open source collaboration. Csaba's projects typically combine multiple fields from his interest. i.e.
Csaba tweets at @csaba_hruska. |
|||||||||
| 15:15 |
Coffee Break |
|||||||||||
| 15:30 |
The STG is the lowest functional intermediate representation of GHC-Haskell, and the gateway between the functional world and the metal. At this level, many common questions are answered, such as when stack and heap are accessed, why space leaks happen, or why certain algorithms are surprisingly inefficient. With this talk, you will discover into the operational
semantics of Haskell, by executing a couple of small programs everyone should be
haskell-x
stg
ghc
haskell
About the speaker...David LuposchainskyDavid has been a Haskell enthusiast ever since he (was) stumbled upon it in early 2012 as a physics student. After spending a lot of time with it and talking to others in #haskell, he proposed the unifying the Applicative-Monad hierarchy and removing the fail function from the Monad class to the mailing lists. The former is live as of GHC 7.8, the latter is in a backwards-compatible slow transitional phase for the next couple of compiler versions. As of 2016, he is member of the Core Language committee to work on the next Haskell standard. When David isn't working or haskelling, he spends his time outdoors hiking, bouldering, mountainbiking or motorcycling. |
There are several powerful mechanisms for testing applications in the servant ecosystem that are not yet widely known or documented. You will explore them, showing how you can state, sometimes as type constraints, sometimes as QuickCheck predicates, properties about entire applications, such as:
These techniques largely apply (though not as cleanly) to web applications written with frameworks other than servant-server - indeed, written in any language. During this talk, you may also discover how the servant ecosystem can be used to improve integration tests. Among the packages you will look at are servant-quickcheck and servant-mock. Prior experience with servant is not required. About the speaker...Julian ArniJulian K. Arni is a Haskell consultant, founder of Turing Jump, and one of the original authors of servant. |
Haskell programs make use of overloading extensively. As a consequence, qualified types, i.e., types containing class constraints are ubiquitous. In this talk, you will discover how a type system with type classes works internally, and how a compiler such as GHC deals with the presence of qualified types. You will explore the basics of the "dictionary translation", and how it is applied during type checking. If you are a Haskell beginner who would like to learn more about how the Haskell type system works, this talk is for you! You would also have lots to learn if you are more advanced in the language.
typeclasses
types
ghc
haskell
haskellx
About the speaker...Andres LöhAndres Löh is a Haskell consultant and co-owner of Well-Typed LLP. He is based in Regensburg, Germany. He started using Haskell in 1997, when being an undergraduate student of mathematics in Konstanz and has been an enthusiastic functional programmer ever since. Andres obtained a PhD in Computer Science from Utrecht University in 2004, on extending the Haskell language with capabilities for datatype-generic programming. After having been a university lecturer for several years, he joined Well-Typed in 2010. Andres is very interested in applying functional programming to real-world problems, and in particular in datatype-generic programming, domain-specific languages, (dependent) type systems, parallel and concurrent programming, and the theory of version control. |
|||||||||
| 16:15 |
Coffee Break |
|||||||||||
| 16:30 |
A lifebuoy can save you when you have already fallen in the water, but it doesn't stop you falling in the water: it can help to protect you from the more serious consequences of your mistakes. A lamp helps you see what you are doing, but it doesn't stop you doing things: the extra information can help you avoid making mistakes. Types are often sold as a means to stop programmer errors becoming execution errors. In modern Haskell, that would rather understate their value, as I hope to demonstrate. Programming live, I shall show what you can achieve when you see types as an input to the program construction process (in which labour is shared with the compiler in helpful ways), rather than an output from type inference.
haskell
haskellx
About the speaker...Conor McBrideDr Conor McBride runs the Mathematically Structured Programming group at the University of Strathclyde. He specialises in dependently typed programming. Over a decade ago. he was co-designer and implementer of Epigram. These days, while working on foundational innovations beyond advanced languages like Agda and Idris, he also engages keenly with the languages funcitonal programmers use for real work today. He is one of the people helping to drive the evolution of Haskell's type system towards ever greater expressivity. |
|||||||||||
| 17:30 |
#HaskellX 2016 Party with Pizza and Beer! |
|||||||||||
| 20:00 |
End of #HaskellX Day 1 |
|||||||||||
Day 2: Friday 7th October 2016
Join us for these awesome sessions!
| Track | Room Name: CTRL | Room Name: ALT/TAB | Room Name: CMD | |||||||||
| 08:15 |
Registration |
|||||||||||
| 09:00 |
In this talk, you will learn a new approach to the problem of calculating compilers. In particular, you will explore developing a simple but general technique that allows you to derive correct compilers from high-level semantics by systematic calculation, with all the required compilation machinery falling naturally out of the calculation process. The approach is based upon the use of standard equational reasoning techniques, and has been applied to calculate compilers for a wide range of language features and their combination. During the talk, you will discover the basic ideas using a small example language. View the pdf publication here.
compilers
technique
semantics
calculation
haskell
haskellx
About the speaker...Graham HuttonGraham Hutton is Professor of Computer Science at the University of Nottingham. He has served as an editor of the Journal of Functional Programming, Chair of the Haskell Symposium and the International Conference on Functional Programming, Vice-Chair of the ACM Special Interest Group on Programming Languages, and he is an ACM Distinguished Scientist. His research interests are in developing simple but powerful techniques for writing and reasoning about programs, by recognising and exploiting their underlying mathematical structure. A new edition of his book Programming in Haskell was published in 2016. |
|||||||||||
| 10:00 |
Coffee Break |
|||||||||||
| 10:30 |
The talk will focus on how to restrict effects performed by monadic computations using type classes. You will explore the pros and cons of this approach in relation to its alternatives as well as how to solve several common issues that arise, such as the problem of quadratic number of instance definitions.
computations
monad
type
haskell-x
haskell
About the speaker...Andrzej RybczakAndrzej Rybczak has been using Haskell in production since 2011. He also studied Computer Science at Wroclaw University of Technology and Mathematics at University of Wroclaw. |
Join Bas for a great talk on Functional Programming!
lumiguide
functional-programming
haskell
haskellx
About the speaker...Bas van DijkBas is a CTO at LumiGuide. Bas previously worked as a Software Engineer for Erudify and a Haskell Hacker for Sensor Sense (Nijmegen, The Netherlands. |
Day 2, 7 Oct starts 10:30 (Room Name: CMD)
Hands On Tutorial: Haskell-tools: Refact - A refactoring framework for Haskell
|
|||||||||
| 11:15 |
Coffee Break |
|||||||||||
| 11:30 |
In this talk, Robin will use the medium of building a playable Haskell clone of the classic computer game "Pipe Mania" to show how typed functional programming can be applied to create effective domain models and work with them. You will begin by learning how algebraic data types can model our game and give you control over the size and shape of state spaces. Furthermore, that there are trade-offs between different models and that the best model can vary depending on the task at hand. Hence, you will explore two separate models suited to implementing different parts of the game program and learn how to work with and translate between these models, starting with simple primitives and building up to implementing the complete game. Finally, the talk concludes by building a view for our model using the HsQML GUI framework in order to make a fully playable and complete application." |
In web development, a great deal of effort is spent on consistency. The frontend, backend and database must all agree on a data-model, and if they don’t, the system crashes spectacularly. The default solutions are either to invest heavily in hand-written integration tests, or use JavaScript everywhere. Neither of these are ideal. However there is a compelling alternative - use the same types everywhere. By reusing strong, static types across tiers, you can make guarantees about the consistency of the entire system, and dramatically lower the cost of change. In this talk, you will explore one approach that uses Haskell data types to drive a both a PostgreSQL database schema and a frontend system written in Elm. With one set of types to rule them all, whole system consistency is automatic and reliable, and the cost of changing types - and hence evolving the whole system’s data model - is dramatically reduced.
frontend
backend
javascript
elm
postgresql
types
haskell-x
haskell
About the speaker...Kris JenkinsKris Jenkins is a successful startup cofounder, turned freelance functional programmer, and open-source enthusiast. He mostly works building systems in Elm, Haskell & Clojure, improving the world one project at a time. |
Day 2, 7 Oct starts 11:30 (Room Name: CMD)
Hands On Tutorial: Haskell-tools: Refact - A refactoring framework for Haskell
|
|||||||||
| 12:15 |
Lunch Break |
|||||||||||
| 13:30 |
Static type systems are wonderful, but they have their limits, and then you reach for dynamic type and run-time type checks. Haskell has had dynamic types for ages, in the form of the Typeable class, but recent developments has made it feasible to support type-indexed type run-time type representations. That in turn makes it possible to support dynamic typing as an ordinary Haskell library, using a very small, sharply-focused language extension. It turns out that doing this really pushes the envelope on what is possible with static type systems. Not only do you need higher kinds, kind polymorphism, and GADTs, but also kind equalities, and even heterogeneous kind equalities! It’ll be fun. And it’s all in GHC 8.0.
haskell
About the speaker...Simon Peyton JonesSimon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. Simon was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages. After two years in industry, he spent seven years as a lecturer at University College London, and nine years as a professor at Glasgow University before moving to Microsoft Research (Cambridge) in 1998. His main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused around the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines. More generally, he is interested in language design, rich type systems, software component architectures, compiler technology, code generation, runtime systems, virtual machines, and garbage collection. He is particularly motivated by direct use of principled theory to practical language design and implementation -- that's one reason he loves functional programming so much. |
|||||||||||
| 14:30 |
Coffee Break |
|||||||||||
| 14:45 |
In this talk, you will discover how Jeremy and team designed the learning materials for a massive open online course about Haskell, and what they found to be most effective techniques for engaging novice Haskell developers.
haskell-x
haskell
About the speaker...Jeremy SingerJeremy is a lecturer in Computing Science at the University of Glasgow. He is moderately fluent in the following languages: Haskell, Java, C, Scouse and New Testament Greek. Jeremy tweets at @jsinger_compsci. |
This talk introduces string diagrams as a notation for calculating in category theory. You will learn the diagrams to better understand monads, adjunctions, and finally free monads. All of this, of course, is relevant to the curious Haskell programmer who wants to better understand abstract nonsense.
haskell-x
monads
haskell
About the speaker...Nicolas WuNick has been using Haskell since 2001 while he was an undergraduate at the University of Oxford, where he also obtained his doctorate in Computer Science. He then went to work as a Haskell consultant at Well-Typed LLP before returning to academia. As a postdoctoral researcher he worked principally on unifying the foundations of recursion schemes using category theory. He is currently a lecturer at the University of Bristol, and continues to work on recursion schemes, as well as effect handlers and domain specific languages. |
CλaSH (pronounced ‘clash’) is a functional hardware description language that borrows both its syntax and semantics from the functional programming language Haskell. This is just a fancy way of saying that CλaSH is a compiler for Haskell, but instead of creating machine code (like GHC), or javascript (like GHCjs), CλaSH generates digital circuits (in the form of VHDL or Verilog code). In this talk, you will learn the use of CλaSH to create your own digital circuits in Haskell, and how you can use the generated HDL code to program FPGAs.
digital-circuits
fpgas
parallel-programming
haskell-x
haskell
About the speaker...Christiaan BaaijChristiaan Baaij has been programming in Haskell since 2009, when he started on the first prototype of the CλaSH compiler. Since then, he is always keen on trying to figure out ways to effectively use GHCs latest language extensions for doing circuit design in Haskell. After obtaining his PhD in 2015 from the University of Twente he continued to work on the CλaSH compiler and has recently co-founded QBayLogic to bring the use of CλaSH to industry. Christiaan tweets at @ChristiaanBaaij. |
|||||||||
| 15:30 |
Coffee Break |
|||||||||||
| 15:45 |
Day 2, 7 Oct starts 15:45 (Room Name: CTRL)
Lightning Talks 1
|
Day 2, 7 Oct starts 15:45 (Room Name: ALT/TAB)
Lightning Talks 2
|
Day 2, 7 Oct starts 15:45 (Room Name: CMD)
Lightning Talks 3
|
|||||||||
| 16:30 |
Beer Break! |
|||||||||||
| 16:45 |
|
|||||||||||
| 17:45 |
#HaskellX 2016 Wrap Up! See you in 2017! |
|||||||||||
Neil Mitchell will share techniques for detecting space leaks at the Haskell eXchange 2016!
I am excited to be joining the Haskell eXchange where I will be sharing my techniques for detecting space leaks. Lazy languages such as Haskell have lots of great properties (e.g. compositionality), but have the major downside of space leaks. Practical techniques to detect space leaks largely remove that disadvantage, without removing any of the benefits.
The best thing about being part of the Haskell community is the incredible quality of libraries available. If you take an even mildly popular Haskell library it will probably handle most corner cases properly, be robust to exceptions, be multithread safe, have documentation about types which is statically checked and be reasonably well designed.
At Haskell eXchange, I look forward to learning about the work going on in the Haskell community. There are a couple of specific techniques/libraries that look interesting (e.g. neutral nets, game programming), but beyond that I'm interested in how theory and practice are combining (e.g. category theory). While the exact libraries might come and go, the theory underpinning them will hang around forever.
My talk will be enjoyed by those who need to counter arguments in pubs about lazy evaluation, along with those writing real Haskell programs where avoiding space leaks reduces memory usage and improves performance. Even those people who don't enjoy the talk will probably enjoy the benefits the talk provides, including removing space leaks from functions in the Haskell base library.
I think the most anticipated/exciting development for the Haskell community over the next 12 months will be an increase of Haskell in established companies, along with an increase in the number of Haskell jobs. Talk to me if you'd like one of those jobs :)
Wanna find out more? Jump to the Programme Page!
Christiaan Baaij will join the Haskell eXchange to share his experience on programming FPGAs with Haskell!
I'll be joining Haskell eXchange 2016 to share my experience on programming FPGAs using Haskell. Functional languages have always had the promise of being easy to parallelise, but naive approaches on a normal CPU never led to any great results. Perhaps unsurprisingly, it turns out that we can, however, naively use the fine-grain parallelism available in functional languages on fine-grain parallel hardware architectures such as FPGAs.
At Haskell eXchange, there are several talks I'm looking forward to. Having had to endure the pain of hacking GHCs Make-based build system in the past, I'm interested in Andray's talk about what seems to be a much friendlier Haskell-based build system for GHC.
Also, although I have been using Haskell since 2009, I've noticed that my grasp of fixing performance bugs is a bit sketchy at times. So I will definitely be joining Tom's, Neil's, and David's talk to properly refresh my understanding of how Haskell programs actually run, and how to fix the performance of my Haskell programs.
My talk will be enjoyed by newcomers and seasoned Haskell programmers alike. Newcomers will get to know that by learning Haskell they will also be able to program unusual architectures such as FPGAs.
Seasoned Haskell programmers will get to know how to apply their skills if they ever end up in a situation where standard CPUs just cannot deliver enough performance for their application.
Wanna find out more? Jump to the Programme Page!
Robert Henderson will share his excitement about the possibilities that Haskell offers for interactive rapid development of video games at #HaskellX 2016.
As a game developer, I'm excited about the possibilities that Haskell offers for interactive rapid development of video games. I'll be giving a taste of this in my talk, where I'll demonstrate using the Junpi multimedia library to write a platform game in 100 lines of Haskell code.
I am looking forward to meeting fellow Haskellers at the conference. There are a number of talks on computer graphics, user interfaces, and education that look particularly interesting.
Paul Hudak predicted way back in 2000 that Haskell has the potential to revolutionise graphics and multimedia programming. I believe that we've only just begun to tap this potential, and I'm sure we'll be seeing an increase in the use of Haskell in these areas in coming years.
Wanna find out more? Jump to the Programme Page!
Tom Ellis will give a talk at the Haskell eXchange to explain how Haskell programs are executed
I'm really looking forward to speaking at Haskell eXchange and explain how Haskell programs are executed.
Laziness lets us write elegant and compact code but can be unfamiliar and sometimes confusing. I'm looking forward to explaining how Haskell programs are executed and the impact on memory usage.
My talk will shed some light on a corner of Haskell which often seems rather mysterious! My talk will be suitable for new Haskellers and long-timers alike.
CodeNode
In August 2015, Skills Matter opened the doors to CodeNode, our new 23,000 sqft Tech Events and Community venue. CodeNode provides fantastic meetup, conference, training and collaboration spaces with unrivalled technology capabilities for our tech, digital and developer communities - a long held dream coming true !
With fantastic transport links and located in the heart of London's Tech City, we could not think of a better location for our 130,000 strong engineering community!
With six event rooms, including a 300 seater lecture room, thousands more community members will be able to visit CodeNode to learn and share skills, code and collaborate on projects.
CodeNode features a 5,000 sqft break-out space, complete with fully-licensed bar, plenty of power sockets, meeting and collaboration spaces and entertainment areas.
If you're interested in hiring CodeNode for your upcoming event, check out more details here.
CodeNode
Skills Matter | CodeNode, 10 South Place, London, EC2M 7EB, GB
View details, travel and nearby hotels
Check out the Highlights from Haskell eXchange 2016!
Don't miss these Special Moments with the experts from #HaskellX 2016!
Join us for the 2017 edition with more to learn from the leading experts in the Haskell field!
Well-Typed's Guide to the Haskell Type System
Wednesday Oct 5 (day before #haskellX)
Haskell is an evolving language. With each new GHC release, there are some new features, many of which add extra power to Haskell's already remarkable type system. But which extensions are widely used? Which are stable? How can one find out how they really work? While many features are really interesting, documentation is often scarce, and scattered around in various places such as blog posts and academic papers.
Learn from this course by Andres Löh and discover an in-depth look into Haskell's type system, including the various language extensions that the Glasgow Haskell Compiler (GHC) has to offer.
HaskellXHack
Saturday Oct 8 and Sunday Oct 9 (weekend after HaskellX)
We're excited to host the Haskell eXchange Hackathon 2016 once again this year. It will be held on Saturday 8th October and Sunday 9th October at Facebook Offices in London. This is a free event for all to join in and have fun hacking with like-minded Haskell enthusiasts! Your registration here will help us prepare for an awesome couple of days.
HaskellX Bytes
Monday Nov 21 and beyond
Can't wait for the next HaskellX? Join us for this new 'byte-sized' meetup series with Haskell experts in the lead up to the next Haskell eXchange! Stay tuned and check out this page for more info on regular updates!
Available Packages
-
- 64-BIT SPONSORSHIP
Engage with 150 highly experienced and passionate Haskell developers and mathematicians exploring functional programming, Haskell and the Haskell stack! Show off your team, projects, tools or devices at your #HaskellX conference booth!
Brand Visibility Benefits
- Your logo (large) on all #HaskellXweb pages
- Your own dedicated partner page on skillsmatter.com
- Your logo (large) on all in-venue conference banners
- Visibility of your brand and your support for #HaskellX in regular social media updates.
Engagement Benefits
- Your own booth at #HaskellX (160x80cm)
- Your sponsored message with hot linked logo in the #HaskellX post-conference newsletter
- Two items (leaflet, device, pen or notepad) included in all #HaskellX swag bags
- Two Exhibitor Tickets
- Two Full Conference Tickets to the conference, which you can gift to your clients, your engineering team or members of Computing At School (teachers learning computing to teach the new National Computing Curriculum).
-
- SPONSOR THE HASKELL EXCHANGE 2016 ATTENDEE BAGS!
Be remembered! Have your logo printed on all #HaskellX swag bags, provided to conference attendees, speakers and sponsors attending this year.
Brand Visibility Benefits
- Your logo on 150 #HaskellX swag bags
- Exclusive to two swag bag sponsors only!
-
- 32-BIT SPONSORSHIP
Brand Visibility Benefits
- Your logo (medium) on #HaskellX web pages
- Your own dedicated partner page on skillsmatter.com
- Your logo (medium) on all in-venue conference banners
- Visibility of your brand and your support for #HaskellX in regular social media updates.
Engagement Benefits
- Your sponsored message with hot linked logo in the #HaskellX post-conference newsletter
- One item (leaflet, device, pen or notepad) included in 150 #HaskellX swag bags
- Two free exhibitor tickets and one full conference ticket, which you can gift to your clients, your engineering team or members of Computing At School (teachers learning computing to teach the new National Computing Curriculum).
-
- 16-BIT SPONSORSHIP
Brand Visibility Benefits
- Your logo (small) on #HaskellX web pages
- Your own dedicated partner page on skillsmatter.com
- Your logo (small) on all in-venue conference banners
-
- T-SHIRT SPONSORSHIP
Be remembered! Have your logo printed on all #HaskellX t-shirts, provided to conference attendees, speakers and sponsors attending this year.
Brand Visibility Benefits
- Your logo on all #HaskellX t-shirts
- Exclusive to two t-shirt sponsors only!
-
- SPONSOR THE HASKELL EXCHANGE 2016 PARTY!
Be remembered by all conference attendees, speakers and sponsors attending the party this year! Have your logo printed on the Haskell eXchange 2015 Party beer mats and on highly visible party posters and pop-up banners, which are bound to feature in lots of pictures this year.
Brand Visibility Benefits
- Your logo displayed on the #HaskellX 2016 party beer mats and on the party table pop-up banners;
- Five free tickets to the #HaskellX 2015 Party, which you can gift to your clients and team members;
- Your logo (small) on all in-venue conference banners and on the #HaskellX 2016 Sponsor web pages;
- Your own dedicated partner page on skillsmatter.com;
- Exclusive to two party sponsors only!
To discuss sponsorship opportunities please contact the team:
- Phone: +44 (0) 207 183 9040
- Email: [email protected]
-
Combinators for Generalised Parsing
Featuring Thomas van Binsbergen
Many Haskell programmers write parsers using parser combinator libraries like
parsecoruu-lib, or parser generators likehappy. These systems are popular because they are easy to get started with and suitable for production applications.In particular, parser combinators libraries are popular...
combinator parsing types haskell haskellx -
Everything you need to know about Haskell to be an Amateur Sewage Engineer
Featuring Robin Kay
In this talk, Robin will use the medium of building a playable Haskell clone of the classic computer game "Pipe Mania" to show how typed functional programming can be applied to create effective domain models and work with them.
gui domain models game types programming algebra haskell-x haskell -
Meet Hadrian: a new build system for GHC
Featuring Andrey Mokhov
Most build systems start small and simple, but over time grow into hairy monsters that few dare to touch. Our favourite Glasgow Haskell Compiler is no exception. In this talk, you will learn that there are a few issues that cause build systems major scalability challenges, and many pervasively...
hadrian ghc haskell haskellx -
Haskell in the Large - The day to day practice of using Haskell to write large systems
Featuring Donald Stewart
This talk is about the day to day practice of using Haskell to write large software systems.
-
Checking and translating type classes
Featuring Andres Löh
Haskell programs make use of overloading extensively. As a consequence, qualified types, i.e., types containing class constraints are ubiquitous. In this talk, you will discover how a type system with type classes works internally, and how a compiler such as GHC deals with the presence of...
typeclasses types ghc haskell haskellx -
Haskell and OpenCV: theory and practice
Featuring Francesco Mazzoli
Thanks to recent work by Bas and Roel van Dijk at Lumiguide, it is now possible and easy to use OpenCV from Haskell. In this talk, you will discover how Haskell lets us define a typed and ergonomic API on top of the OpenCV types and functions, and how easy it is to define new bindings -- also...
opencv inline-c computer-vision foreign-function-interface typelevel-programming haskell haskellx -
Proving and testing with servant
Featuring Julian Arni
There are several powerful mechanisms for testing applications in the servant ecosystem that are not yet widely known or documented. You will explore them, showing how you can state, sometimes as type constraints, sometimes as QuickCheck predicates, properties about entire applications, such as:
... -
Functional Programming at LumiGuide
Featuring Bas van Dijk
Join Bas for a great talk on Functional Programming!
lumiguide haskell haskellx functional-programming -
Generating Elm data types using GHC Generics
Featuring Csongor Kiss
Haskell is well established as a backend language for client-server applications, and at the same time, new functional languages are gaining popularity on the frontend side. Implementing a client-server communication API, it is very important that there is a seamless conversion between the data...
ghc-generics elm haskell-x haskell -
Real World Servant: GetShopTV experience report
Featuring Nickolay Kudasov
Servant is a very young library, yet at GetShopTV we use it ubiquitously for our back end and to connect with external services, such as SIP and SMS. We rely heavily on types to guarantee safety and correctness. Besides that we use servant-swagger for automatic documentation and to automatically...
type-level json web api haskell-x haskell -
Neural Nets with Automatic Differentiation
Featuring Lars Brünjes
During this talk, you will learn how to use Haskell's powerful features for abstraction to create a Neural Network library in native Haskell that makes it easy to create complex network architectures in a type-safe and flexible way.
Automatic differentiation is used to provide painless...
neural nets differentiation api haskell haskellx -
Design You a Haskell Course
Featuring Jeremy Singer
In this talk, you will discover how Jeremy and team designed the learning materials for a massive open online course about Haskell, and what they found to be most effective techniques for engaging novice Haskell developers.
haskell-x haskell -
Calculating Correct Compilers
Featuring Graham Hutton
In this talk, you will learn a new approach to the problem of calculating compilers. In particular, you will explore developing a simple but general technique that allows you to derive correct compilers from high-level semantics by systematic calculation, with all the required compilation...
compilers technique semantics calculation haskell haskellx -
The innards of a purely functional 3D shooter game engine (influenced by Quake 3)
Featuring Csaba Hruska
In this talk, you will explore a case study on how to implement a 3D first person shooter game in Haskell. The project's goal is to mimic the Quake 3 engine, but starting from scratch using purely functional paradigm. You will discover each problem domain related to a 3D engine and game, such...
opengl gamedev gpu dsl lambdacube3d quake game-engine haskell-x haskell -
Types All The Way Down
Featuring Kris Jenkins
In web development, a great deal of effort is spent on consistency. The frontend, backend and database must all agree on a data-model, and if they don’t, the system crashes spectacularly.
types frontend backend postgresql javascript elm haskell-x haskell -
Creating digital circuits using CλaSH
Featuring Christiaan Baaij
CλaSH (pronounced ‘clash’) is a functional hardware description language that borrows both its syntax and semantics from the functional programming language Haskell.
digital-circuits fpgas parallel-programming haskell-x haskell -
Graphics, sound, fonts, and joysticks unleashed: the Junpi multimedia library
Featuring Robert Henderson
Junpi is a new free / open-source, high-performance multimedia library for Haskell, whose design is strongly guided by the development needs of real commercial games. At the heart of Junpi's design philosophy is 'instant-feedback': you change your code and see the results instantly,...
haskell-x haskell -
Categories and String Diagrams
Featuring Nicolas Wu
This talk introduces string diagrams as a notation for calculating in category theory. You will learn the diagrams to better understand monads, adjunctions, and finally free monads. All of this, of course, is relevant to the curious Haskell programmer who wants to better understand abstract...
monads haskell-x haskell -
Controlling monadic effects with type classes
Featuring Andrzej Rybczak
The talk will focus on how to restrict effects performed by monadic computations using type classes. You will explore the pros and cons of this approach in relation to its alternatives as well as how to solve several common issues that arise, such as the problem of quadratic number of instance...
computations monad type haskell-x haskell -
Ling, a language with predictable fusion
Featuring Nicolas Pouillard
Ling is an experimental programming language combining the precision of a system-level programming language and the abstraction and safety of a pure, functional programming language.
ling fusion type-theory language-design linearity optimization system-programming haskell-x haskell -
Haskell meets Java
Featuring Mathieu Boespflug
In this talk, you will discover that broad language interoperability is crucial for Haskell's success in not entirely insignificant niches such as the enterprise. And that performance of language binding mechanisms is the key to retaining good modularity. Hot on the heals of previous efforts...
java spark ffi interoperability JVM distributed-programming haskell haskellx -
Haskell programs: how do they run?
Featuring Tom Ellis
Haskell is a lazy language and thus differs from most other widely used languages. The way that Haskell programs are executed can be obscure to newcomers and old hands alike.
It's not actually too hard to understand how Haskell programs are executed, but it is rather unusual! This talk will...
programming haskell haskellx -
Property Based Testing for your business rules too
Featuring Romeu Moura
In this talk, you will explore using QuickCheck and using it beyond technical tests or for testing algebraic properties & visual symmetries: You will dive into the rich world of Business Domain Specific properties! See that your business rules are Domain Invariants (in the DDD sense), and you...
quickcheck testing algebra symmetries ddd haskell haskellx -
A reflection on types - Simon Peyton Jones, Microsoft Research
Featuring Simon Peyton Jones
Static type systems are wonderful, but they have their limits, and then you reach for dynamic type and run-time type checks. Haskell has had dynamic types for ages, in the form of the Typeable class, but recent developments has made it feasible to support type-indexed type run-time type...
haskell -
Functional and low-level: watching the STG execute
Featuring David Luposchainsky
The STG is the lowest functional intermediate representation of GHC-Haskell, and the gateway between the functional world and the metal. At this level, many common questions are answered, such as when stack and heap are accessed, why space leaks happen, or why certain algorithms are surprisingly...
ghc stg haskell-x haskell -
Is a type a lifebuoy or a lamp?
Featuring Conor McBride
A lifebuoy can save you when you have already fallen in the water, but it doesn't stop you falling in the water: it can help to protect you from the more serious consequences of your mistakes. A lamp helps you see what you are doing, but it doesn't stop you doing things: the extra...
haskell haskellx -
i18n for Haskell Web Applications
Featuring Philip Cunningham
Philip will be discussing approaches to internationalising Haskell web applications in 2016. He’ll give an overview of existing libraries and tools available to Haskell web application developers, describe his experiences internationalising Haskell web applications and show where the Haskell...
haskell-x haskell -
#HaskellX Park Bench Park Discussion with Haskell experts!
Join us for the #HaskellX Park Bench Park Discussion with Haskell experts!
panel haskell haskellx -
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
-
HaskellX2gether Community Day 2018
One day in London
Following up on the Haskell eXchange, we will hold a Haskell eXchange Community Day - HaskellX2gether. Everyone is welcome, beginners and experts alike, and not just participants at the Haskell eXchange, but everyone who would like to participate in a coding festival event.
workshops hackathon hack functional-programming haskell -
Haskell eXchange 2018
Two days in London
Back for a seventh installment, the Haskell eXchange is an annual conference created for and by the Skills Matter community. An opportunity for Haskellers to meet, learn and share skills, discover emerging technologies and help evolve the Haskell ecosystem. Everyone is welcome to join, whether...
types functional-programming haskellx haskell -
HaskellX2gether Community Weekend
Two days in London
Following up on the Haskell eXchange, we will hold a two-day Haskell eXchange Community Weekend - HaskellX2gether. Everyone is welcome, beginners and experts alike, and not just participants at the Haskell eXchange, but everyone who would like to participate in a two-day coding festival.
hackathon hack functional-programming haskellx haskell -
Haskell eXchange 2017
Two days in London
Back for a sixth installment, the Haskell eXchange is an annual conference created for and by the Skills Matter community. An opportunity for Haskellers to meet, learn and share skills, discover emerging technologies and help evolve the Haskell ecosystem. Everyone is welcome to join, whether you...
types functional-programming haskellx haskell -
Haskell Infrastructure Hackathon 2015
Two days in London
Following up on the Haskell eXchange, we will hold a two-day Haskell Hackathon at Pivotal. Everyone is welcome, beginners and experts alike, and not just participants at the Haskell eXchange, but everyone who would like to participate in a two-day coding festival.
monads types functional-programming haskellx haskell -
Haskell eXchange 2015
Two days in London
Want to learn about the latest innovations in Haskell? Join 100+ functional programmers to learn modern approaches as well as how Haskell's application in enterprise is changing the way our industry tackles complex engineering problems.
monads types functional-programming haskellx haskell -
Haskell eXchange 2014
One day in London
Want to join the dots of the Haskell landscape? Eager to hear from those driving innovations in Haskell in various industry and academic fields? Then join Haskell experts and enthusiasts this October for London's premier Haskell conference.
monads types functional-programming haskell -
Haskell eXchange 2013
One day in London
The second edition of the Haskell eXchange returns to Skills Matter HQ on October 9th. This unique and dedicated Haskell event will pull together Haskell enthusiasts, developers, and thought leaders across Europe.
clojure akka functional-programming haskellx haskell -
Haskell eXchange 2012
One day in London
Skills Matter is proud to announce the first annual Haskell eXchange. While we're working with Neil Mitchell to put together a fantastic programme for you, we can already tell you that Simon Peyton-Jones is confirmed to make a keynote!
For updates on the latest presentations and speakers,...
haskell



