Join us at Haskell eXchange London on October 12-13th 2017

The sixth Haskell eXchange returns with more in store for you to learn and discover! Join leading experts in the Haskell realm who will share their ideas and thought processes on all things Haskell. Follow us at #HaskellX for all the latest updates on the conference!
Thank you to all speakers, sponsors and attendees for making Haskell eXchange 2016 a memorable event!
Check out Haskell eXchange 2016's Highlights and Conversations with our experts here!
Breaking news! Simon Peyton Jones comes back to Haskell eXchange 2017!

Join us at Haskell eXchange's sixth edition as the mighty Simon Peyton Jones, one of the major contributors to the design of the Haskell programming language, will be delivering a keynote!
Tickets
Registration is open and we have some great Early Bird offers available so if you are planning to join us for two days packed with Haskell fun, get your skates on and book your ticket today!
Call for Papers now CLOSED - Check out our Programme Page for Updates!
The Call for Papers is now CLOSED! Thanks for submitting a proposal, the response's been overwhelming and we are currently working on selecting talks. Click here to stay up to date and find out more on speakers as we'll start publishing the line-up very soon!
Get Involved
Would you like to help us facilitate a great conference? Help us set up the conference spaces, introduce talks and speakers, field Q&A questions with mics, or support some of the workshops and hacks we've got in store? Sign up as a volunteer and get a free ticket to the conference!Join us for the HaskellX Bytes evening events at CodeNode

Want to stay in the loop with the latest developments within the Haskell community?
Join us at the brand new Haskell Bytes series we'll be hosting at CodeNode leading up to Haskell eXchange 2017!
Find more information here!
Code of Conduct
Please find our Code of Conduct here.
Impressions of last year
Excited? Share it!
Day 1: Day 1 - Thursday 12 Oct 2017
Join us for these awesome sessions!
Track | Room Name: CTRL | Room Name: SHIFT | Room Name: CMD | |||||||||
08:30
Invalid Time
Invalid Time
|
Registration & Breakfast Refreshments |
|||||||||||
09:15
Invalid Time
Invalid Time
|
Opening & Welcome |
|||||||||||
09:30
Invalid Time
Invalid Time
|
KEYNOTE
|
|||||||||||
10:30
Invalid Time
Invalid Time
|
Coffee Break |
|||||||||||
10:45
Invalid Time
Invalid Time
|
haskellx
haskell
performance
xml
parsing
ffi
About the speaker...Neil MitchellNeil 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. |
Current database design forces application developers to decide early in the design cycle, and once and for all, what type of consistency the database should provide. At one extreme, strong consistency requires frequent global coordination; restricting concurrency in this way greatly simplifies application development, but it reduces availability and increases latency. At the opposite extreme, there are systems that provide eventual consistency only: they never sacrifice availability, but application developers must write code to deal with all sorts of concurrency anomalies in order to prevent violation of application invariants. But a system only needs to be consistent enough for the application to be correct. Antidote, an open-source cloud-scale database operates, on a unique middle ground by providing Just-Right Consistency (JRC). It composes various techniques that do not sacrifice availability, unless provably required for the application to execute correctly, including Conflict-free Replicated Data Types (CRDTs) and causal consistency. In the talk, you will learn how application developers can benefit from Antidote's features in their Haskell applications.
haskellx
haskell
nosql
data-store
replicated-data
consistency
cloud-computing
edge-computing
About the speaker... |
Day 1, 12 Oct starts 10:45 (Room Name: CMD)
Workshop: Practical Parser Combinators
|
|||||||||
11:30
Invalid Time
Invalid Time
|
Coffee Break |
|||||||||||
11:45
Invalid Time
Invalid Time
|
In this talk, you will briefly explore historical solutions to the problem and discuss their advantages and disadvantages, following that, you will discover a practical introduction to the great You will learn how the library usage compare to other players in the ecosystem (pipes, conduit, ...), and walk through real world examples giving you a chance to write your own combinators and understand some of the internals. |
Tom will briefly outline the data science process and the different kinds of workflows employed, depending on the questions that are asked and the volume and variety of data present. You will learn how, contrary to the common perception, there in fact is a substantial body of work existing in the Haskell open source ecosystem that can solve many of these tasks. You will focus on two recent projects: combinator libraries predictive analytics and dashboard generation. The R language have mature projects in this area, caret and Shiny respectively. Implementing these projects in Haskell forces us to formalise the types of operations necessary; but this formalisation brings new opportunities in terms of presenting a constructor kit with building block that can be combined in ways that were difficult to imagine in a less formal approach. |
Day 1, 12 Oct starts 11:45 (Room Name: CMD)
Workshop: Practical Parser Combinators
|
|||||||||
12:30
Invalid Time
Invalid Time
|
Lunch Break! |
|||||||||||
13:30
Invalid Time
Invalid Time
|
In this talk, you will explore the basic operation of the main optimisations that GHC performs, what users should expect from the compiler and what options they have to control how the optimiser behaves. We will focus on core-to-core passes such as inlining, specialisation, SpecConstr, SAT and so on. The aim of this talk is to make you think more carefully about how the compiler optimises their code. There will be lots of examples of real world code and toy examples which demonstrate how specific passes work. Ultimately by users better understanding the optimisation pipeline, I hope that library writers experience can feed back into making GHC better optimise modern Haskell code. |
haskell
haskellx
erlang
functional-programming
lazy-evaluation
stream
io
list
About the speaker...Simon ThompsonYou can find Simon Thompson's blog here |
In this talk, you will see a scalable approach where individualisation boils down to extending a base workflow description. The problem is related to the expression problem, and our approach is based on solutions in this area. In this approach, the workflow is modelled as a data flow graph in contrast to control flow graphs as traditionally used by workflow systems. Such a graph essentially represents a functional reactive program where the nodes correspond to tasks. The tasks will be organized in a tree, and we express the data flow as functions between attributes of this tree. The description of this tree is an example of an attribute grammar, which we can express as EDSL in Haskell using type level programming. Finally, the attribute grammar formalism allows you to compose the workflow description from small transformable fragments, thereby obtaining the desired extensibility. |
|||||||||
14:15
Invalid Time
Invalid Time
|
Coffee Break |
|||||||||||
14:30
Invalid Time
Invalid Time
|
types
recursion
lazy-evaluation
list-processing
geometric-algebra
haskell
geometric
algebra
mathematics
About the speaker...Chris DoranPrior to his current role Chris was the Founder and Director of Geomerics, a company specialising in graphics software for the games industry. Geomerics’ technology has been used in many iconic titles, including Need for Speed, Dragon Age, Overwatch and Battlefield. Chris is also a Director of Studies in Physics for Sidney Sussex College, Cambridge, and is the author of many research papers and a book on Geometric Algebra. |
Property discovery is the next logical step: it could solve the problem of finding which properties to test. The talk will be presented without any assumption of prior knowledge of testing in Haskell, but familiarity with Haskell is assumed and familiarity with QuickCheck may increase the likelihood that you will appreciate the work presented.
haskellx
haskell
testing
random-testing
property-testing
property-discovery
unit-testing
About the speaker... |
During this talk, you will explore the correctness and performance implications of various degrees of DSL embedding, from simple open term-level APIs to free monads. Free monads afford a particularly high degree of expressivity while remaining syntactically convenient. You will discover practical motivating examples and a real-world implementation of undo/redo within a spreadsheet program (AlphaSheets). |
|||||||||
15:15
Invalid Time
Invalid Time
|
Coffee Break |
|||||||||||
15:30
Invalid Time
Invalid Time
|
During this talk, you will discover what it »means« to do IO in Haskell, how it differs from ST, and under what circumstances the infamous »unsafe« functions can be used.
haskellx
haskell
immutable
io
About the speaker...David LuposchainskyWhen David isn't working or haskelling, he spends his time outdoors hiking, bouldering, mountainbiking or motorcycling. |
haskellx
haskell
postgresql
database
driver
hasql
About the speaker...Nikita VolkovNikita also maintains a Haskell-devoted blog. |
In the 1960s, the Kalman filter was applied to navigation for the Apollo Project, which required estimates of the trajectories of manned spacecraft going to the Moon and back. It is now used in so many quantitative fields as to make it impractical to list them all in a summary: navigation and global positioning, tracking, guidance, robotics, computer vision, signal processing, voice recognition, video stabilization, automotive control systems, time-series analysis, econometrics to name but some! During this talk, you will explore an intuitive introduction to the Kalman filter (not a covariance matrix in sight - well maybe one) and show how data kinds / type level literals can be used to create a filtering and smoothing library in Haskell that has some guarantees that it really does what it says on the tin.
haskell
haskellx
kalman-filter
About the speaker...Dominic SteinitzHe has been writing in Haskell for over 20 years, contributes regularly to the Haskell community and has worked professionally on embedded domain specific languages in Haskell for web analytics and exotic financial derivatives. He completed Part III of the Mathematical Tripos at Cambridge specialising in mathematical statistics and has a Ph.D. in Computer Science. He is currently using control theory and Bayesian statistics in developing a medical device. |
|||||||||
16:15
Invalid Time
Invalid Time
|
Beer Break |
|||||||||||
16:30
Invalid Time
Invalid Time
|
KEYNOTE
During this talk, you will explore a bit of background in Boolean algebra, focusing on the two fundamental operations, which are generalizations of addition and multiplication, and their identity elements. Julie will extend this to the Monoid typeclass in Haskell and illuminate those Boolean patterns over various types. Julie will then extend this further, and you will discover how to examine the monoids of conjunction that typically underlie applicative functors and the monoids of disjunction that you find in the Alternative typeclass.
haskell
haskellx
monoid
pattern
haskell-teaching
haskell-books
typeclasses
boolean-algebra
applicatives
About the speaker...Julie MoronukiAs her interest in lambdas and static typing grew, she saw a need for additions to the Haskell pedagogical literature and applied her teaching expertise as one of the authors of Haskell Programming from First Principles. Currently she lives in Austin, Texas, where she homeschools her children, adopts too many animals, teaches Haskell at a local meetup, and is working on a new book, called The Joy of Haskell. |
|||||||||||
17:30
Invalid Time
Invalid Time
|
Beer Break! |
|||||||||||
17:45
Invalid Time
Invalid Time
|
KEYNOTE
|
|||||||||||
18:45
Invalid Time
Invalid Time
|
#HASKELLX PARTY WITH PIZZA & BEER! |
|||||||||||
21:00
Invalid Time
Invalid Time
|
End of Day 1 |
Day 2: Day 2: Friday 13 Oct 2017
Join us for these awesome sessions!
Track | Room Name: CTRL | Room Name: ALT/TAB | Room Name: CMD | |||||||||
08:30
Invalid Time
Invalid Time
|
Registration & Breakfast Refreshments |
|||||||||||
09:15
Invalid Time
Invalid Time
|
Welcome to Day 2 |
|||||||||||
09:30
Invalid Time
Invalid Time
|
KEYNOTE
GHC compiles Haskell via Core, a tiny intermediate language based closely on the lambda calculus. Almost all GHC’s optimisations happen in Core, but until recently there was an important kind of optimisation that Core really did not handle well. In this talk, you will learn what the problem was, and how Core’s new “join points” solve it simply and beautifully, by effectively allowing Core to express control flow as well as data flow; there are strong links to so-called “continuation passing style” (CPS) here. On the way, you will explore how GHC’s Mighty Simplifier, which is responsible for many optimisations, works. Understanding join points can help you are a programmer too, because you can write code confident that it will optimise well. You will discover a rather compelling example this: “skip-less streams” now fuse well, for the first time, which allows us to drop the previous (ingenious but awkward) workarounds.
haskell
haskellx
types
monads
compile
compiler
ghc
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. |
|||||||||||
10:30
Invalid Time
Invalid Time
|
Coffee Break |
|||||||||||
10:45
Invalid Time
Invalid Time
|
|
The Arpeggigon is implemented in Haskell using the frameworks Functional Reactive Programming (FRP) and Reactive Values and Relations. During this talk, you will discover how FRP and its capabilities for handling hybrid (discrete and continuous) time aligns with the temporal and declarative nature of music, thus facilitating developing this kind of application, and by extension applications in domains with similar traits, and how Reactive Values and Relations provide a bridge between the purely functional FRP core of the application and the imperative outside world in a manner that has a relatively declarative reading yet easily accommodates imperative aspects where needed.
functional-reactive-programming
reactive-value
synchronous-dataflow
hybrid-systems
music
About the speaker... |
Day 2, 13 Oct starts 10:45 (Room Name: CMD)
Workshop: Advanced Haskell Development with Nix
|
|||||||||
11:30
Invalid Time
Invalid Time
|
Coffee Break |
|||||||||||
11:45
Invalid Time
Invalid Time
|
In this talk, you will explore the incremental-computing package, which allows you to easily build functions with accompanying support for incremental updates. The package contains specifically crafted update algorithms for a set of core functions like filtering and sorting of lists. From these core functions, you can build more complex functions with the help of easy-to-use combinators, and the incremental-computing package will derive the accompanying incremental update methods for you.
haskellx
haskell
incremental-computing
dsl
type-system
types
algorithms
frp
About the speaker...Wolfgang JeltschHis main interests are functional reactive programming (FRP), incremental computing, advanced uses of Haskell’s type system, and algorithms. He is the developer of the Grapefruit FRP library and the main contributer to the incremental-computing package. He obtained a PhD on functional reactive programming using Haskell in 2012. |
This talk is beginner-friendly. You do not need to know dependent types or category theory, and even functors and monads will appear just as familiar and natural (psst!) graph transformations. The ideas presented in the talk are implemented in the Alga library.
haskell
haskellx
graph
algebra
About the speaker...Andrey MokhovIn the last few years, Andrey was working on build systems: he is one of the developers of Hadrian, a new build system for the Glasgow Haskell Compiler, and is a co-author of the paper "Build Systems à la Carte" that provides executable models of popular build systems such as Make, Shake and Bazel. After a long academic career, Andrey has recently joined the Tools and Compilers team at Jane Street London, where he works on the OCaml build system Dune. |
Day 2, 13 Oct starts 11:45 (Room Name: CMD)
Workshop: Advanced Haskell Development with Nix
|
|||||||||
12:30
Invalid Time
Invalid Time
|
Lunch Break |
|||||||||||
13:30
Invalid Time
Invalid Time
|
|
If you are writing a medium-sized Haskell for the very first time, you will typically end up with three modules: Types.hs, Utils.hs and Main.hs. While this is a very clear split, it typically doesn't scale very well as applications become larger. In this beginners talk, Jasper will share with you some practical ways to organise code in Haskell applications. Some of the questions Jasper will answer include:
haskell
haskellx
types.hs
utils.hs
main.hs
About the speaker...Jasper Van der JeugtHead over to Jasper's blog, check out what he is up to on Github and follow him on Twitter @jaspervdj. |
During this talk, you will explore the experience gained building an EDSL for the KDB/Q database language at Standard Chartered. You will start with their rationale for choosing such an approach; then review techniques such as Higher-order abstract syntax (HOAS), recursion schemes and embedding Algebraic Datatypes. Finally, you will reflect on the success of the project and discuss the lessons learned. |
|||||||||
14:15
Invalid Time
Invalid Time
|
Coffee Break |
|||||||||||
14:30
Invalid Time
Invalid Time
|
The concept of lenses in general, and the lens library in particular, have revolutionised modern Haskell programming. The lens library is full of abstractions that allow expert users to write amazingly concise code, but these are sometimes baffling to the uninitiated. Not for nothing has the library been described as a separate language that happens to be embedded in Haskell. Significantly, the key concepts expressed in the library (optics such as lenses, traversals and prisms), are not in fact abstract data types. Rather, they are type synonyms, which expose the underlying implementation. This gives a lot of power and flexibility to combine optics, but allows implementation details to leak into inferred types and error messages. In this talk, you will discover an attempt to capture optics such as lenses using abstract data types, while maintaining as far as possible the expressive power of the lens library. Clearly distinguishing between the interface and implementation of optics will help illuminate their nature and purpose. Moreover, I will reflect on the power and limitations of abstraction in Haskell itself. This talk will be suitable for Haskell programmers of a range of skill levels. Only basic Haskell knowledge will be required, and familiarity with the lens library will not be assumed, although having been baffled by it at least once is a worthwhile experience for anyone.
haskellx
haskell
functional-programming
lenses
optics
abstraction
About the speaker...Adam GundryFollow Adam on Github! |
haskell
haskellx
games
About the speaker...Nickolay KudasovNickolay is the CTO & co-founder at GetShop.TV and a Haskell teacher at Moscow State University. He has been a Haskell enthusiast since 2009 and is an author and maintainer of some Hackage packages. Nickolay tweets at @crazy_fizruk. |
Fortunately, recursion schemes come to the rescue. They allow for a clear and concise definition of recursion, while being guided by the typechecker. During this talk, you will explore the basic theory behind them but will not require advanced knowledge of mathematics. Recursion schemes can greatly benefit from a more widespread usage and will try to convey the practical ways in which they can be used in real life programs. |
|||||||||
15:15
Invalid Time
Invalid Time
|
Coffee Break |
|||||||||||
15:30
Invalid Time
Invalid Time
|
|
|
Herculus is an innovative tool for working on relational data, with a spreadsheet-like user interface. Arbitrary user-defined ADTs can be used as column types, and a statically-typed functional language like Haskell is used to declare data transformations. As a result, you can quickly build complex data management applications with zero boilerplate. In this talk, you will learn about the guiding design principles and concepts behind Herculus, see some applications, and discuss planned features as well as challenges. |
|||||||||
15:45
Invalid Time
Invalid Time
|
During this talk, you will explore an overview of the structure of the native code generator and the mapping of Cmm language constructs to assembly code. Haskell pattern matching simplifies peephole optimisation. Examples will be based on the Linux 64-bit PowerPC backend but should be accessible to anyone with basic knowledge of assembler.
haskell
-ghc
-native-code
-peephole-optimisation
ghc
native-code
peephole-optimisation
linux
About the speaker...Peter TrommlerHis research interests include secure software engineering, formal methods and model checking in engineering of secure systems. He is a member of the Laboratory for Safe and Secure Systems LaS3 at Nuremberg. In his spare time he contributes to the GHC PowerPC backend and maintains the GHC package in the openSUSE Linux distribution. |
Our toolchain is composed of the compilation and packaging tools Andronaut and CuriOSity, the FRP testing framework Haskell Titan, our game and app development libraries, and our application templates. Together, they allow to create, compile, test, package and publish a new app directly to online stores in a matter of seconds. |
|
|||||||||
16:00
Invalid Time
Invalid Time
|
Property-based testing consist of generating random values and check that some properties hold on the result of the function under tests. This technique is manifested for example in the QuickCheck library. The QuickCheck library provides conjunction, disjunction and implication combinators to form complex properties from simple ones, but in case of failure the reason of failure is not clear. Specification Based technique can be formalized in modern Haskell. This formalization can be used to aim traceability of test failures. At the same time it keeps the compositional structures of the Property based resulting a clean and readable testsuite and software architecture. The result of test design can be reused in different levels of testing, from unit, integration, stress, etc. In this talk, you will discover the Specification-Based techniques through their Haskell implementation, and you will explore an example the testing of a semi-complex application. |
haskell
dependent-types
About the speaker...Will JonesA functional programmer at heart, with a penchant for statically enforcing correctness through principles such as strong typing and immutable data, Will's passions are deeply embedded in the technologies he is using in his current role as VP Engineering at Habito, such as Haskell, PureScript and event sourcing/CQRS. Alongside his substantial industrial standing, Will also maintains strong ties with his alma mater, giving lecture courses to first-year students on both introductory programming with Java and advanced functional programming with Haskell. |
During this talk, you will discover a type safe way of bringing together domain actions and rules by leaning on most recent GHC v8.2's module 'Type.Reflection' and 'Refl'. The ultimate goal is to saturate your multicore CPUs with work safely, and thus making customers happy. |
|||||||||
16:30
Invalid Time
Invalid Time
|
Beer Break! |
|||||||||||
16:45
Invalid Time
Invalid Time
|
KEYNOTE
|
|||||||||||
17:45
Invalid Time
Invalid Time
|
Wrap Up Presentation |
|||||||||||
18:00
Invalid Time
Invalid Time
|
End of #HaskellX 2017! See you in 2018! |
-
Lightning Talk: Stolen Instances Taste Just Fine
Featuring Baldur Blondal
Deriving is a powerful feature of GHC. With an extension (or Template Haskell) a programmer can safely derive (steal) instances from other data types of the same representation (or arbitrary isomorphic data types). This avoids boilerplate but also allows users to build a vocabulary of derivations...
ghc haskell typeclasses applicatives monoid types pattern deriving -
Park Bench Panel Session with #HaskellX Experts!
Looking forward to hearing from this great panel of #HaskellX speakers!
haskell -
Keynote: Compiling without Continuations
Featuring Simon Peyton Jones
GHC compiles Haskell via Core, a tiny intermediate language based closely on the lambda calculus. Almost all GHC’s optimisations happen in Core, but until recently there was an important kind of optimisation that Core really did not handle well. In this talk, you will learn what the problem was,...
haskell haskellx types monads compile compiler ghc -
Lightning Talk: Dependent Maps
Featuring Will Jones
Sometimes you want something a bit more strongly-typed than Haskell's traditional Map and HashMap types. In this talk, you will explore a variety of increasingly-abusive solutions to try and maximise typing whilst minimising boilerplate.
haskell dependent-types -
Keynote: Scrap your Bounds Checks with Liquid Haskell
Liquid Haskell is a type system extension to GHC that lets you add sophisticated predicates to type signatures. You can use these "refined types" to guarantee the safety of high-performance operations at compile time by eliminating most runtime checks.
haskell haskellx liquid-haskell refinement-types parsing performance -
Geometric Algebra in Haskell
Featuring Chris Doran
Geometric algebra is typically viewed as an advanced technique for analysing geometric problems and relationships, similar to subjects likes tensor analysis and differential forms. The subject itself dates back to the work of the Cambridge mathematician William Clifford in the 19th century, and...
types recursion lazy-evaluation list-processing geometric-algebra haskell geometric algebra mathematics -
Functional Programming with Bananas in Barbed Wire
Featuring Michał Kawalec
In your day to day functional programming, you encounter recursion every step of the way. If only there were a way of abstracting away its repetitive parts and clarifying the recursive code with minimal boilerplate!
haskellx haskell recursion compiler abstraction types type-system -
Distributed Programming with Linear Types
Featuring Arnaud Spiwack
It is a very haskellian thing to do, to solve problems by applying types to them. In this talk, you will learn to do just that, to problems found in distributed programming. The interesting commonality of these problems is that they are not commonly recognised as having a solution in the space of...
haskellx haskell programming types -
New Hasql: Faster and Simpler
Featuring Nikita Volkov
In this talk, you will explore a detailed introduction to the Hasql library, the most efficient Haskell driver for Postgres, core ideas behind it and a tutorial on how to use it.
haskellx haskell postgresql database driver hasql -
Algebraic Design of DSLs
Featuring Ritesh Ragavender
Haskell is widely cited as an ideal language for building domain specific languages (DSLs). Embedded DSLs are a powerful idiom for building robust interfaces and systems with checkable properties.
haskell haskellx type-systems large-system-design dsl startups -
A Look Inside GHC's Optimiser
Featuring Matthew Pickering
The joy of functional programming is writing high-level declarative code. The belief of Haskell programmers is that GHC should compile this code to remove the overhead of abstraction. The reality is that sometimes it does and sometimes it doesn't!
haskell haskellx functional-programming ghc optimisation -
Multiplayer Game from Scratch
Featuring Nickolay Kudasov
Making games is a great way to learn. Any tool or technique can be used to add a feature to a game. Start with a something basic and gradually evolve into something interesting. As it turns out Haskell is quite good for continuous refactoring and suits well for at least home-grown games! But how...
haskell haskellx games -
Lightning Talk: Protop--Dependent Types through Topoi
Featuring Lars Brünjes
The idea of this talk is to take a somewhat unusual route to dependent types, not via type-theory, but rather by trying to model a "topos" in Haskell. A "topos" is a special kind of category which is basically a theory of sets that makes it possible to do most of the usual...
haskell types -
Lightning Talk: Engage Clutch, Shift Gear; ROFL!
Featuring Gabor Greif
In one of your first driving lessons you have learned to disengage the clutch before shifting gears, and engaging it thereafter. Not following this sequence in practice quickly leads to unhappy instructors and broken cars.
haskell type algorithm effect-ordering shallow-embedding -
Lightning Talk: Writing an Assembler Back-end in Haskell is Easier Than You Think (Honest!)
Featuring Peter Trommler
The final stage in GHC's compilation pipeline is the transformation from GHC's intermediate language Cmm to assembly code in the native code generator.
haskell -ghc -native-code -peephole-optimisation ghc native-code peephole-optimisation linux -
Data Science in Haskell: Solutions and Challenges
Featuring Tom Nielsen
Data science has emerged as "the sexiest job of the 21st century" - but can existing data science infrastructure and ecosystems live up to that title? Many data scientists use dynamically typed languages such as Python, or R. In the Haskell community, you know that functional...
haskellx haskell bigdata datascience -
Change in an Immutable World – Taming IO, ST, and the Demons of Unsafety
Featuring David Luposchainsky
In Haskell, everything is immutable – yet you can print to the terminal, read files, and mutate arrays in place. There are many myths about the apparent type system breakouts and compiler hacks necessary to reconcile these principles. But as it turns out, the concepts are not contradictory at...
haskellx haskell immutable io -
Individualisation of Extensible Workflows
Featuring Arie Middelkoop
Imagine you have many small customers with a common problem that can be solved by utilizing a workflow system. This opens a market for a common solution in the form of a process description. However, as customers usually have significant differences in their requirements, the capturing of data...
haskellx haskell workflows edsl typelevel-programming attribute-grammars -
Keynote: Category Theory in Life
Featuring Dr Eugenia Cheng
Category theory can be thought of as being "very abstract algebra". It is thought of as "too abstract" by some people, and as "abstract nonsense" by some others. In this talk, you will discover that while it is abstract, it is far from being nonsense. Eugenia will...
haskell haskellx category-theory -
Lightning Talk: Properties Meets Quality Assurance Test Design Principles
Featuring Andor Penzes
Black Box testing as referenced in the ISTQB (International Software Testing Board) organization is a specification-based testing technique. There are four specification based technique: Equivalence Partionining, Boundary Value analysis, Decision Tables and State transition testing. They view the...
haskell test testing -
Antidote - Just the Right Kind of Consistency for your Data
Featuring Annette Bieniusa
You need a data store that allows for high throughput and availability, while supporting just the right kind of consistency?
haskellx haskell nosql data-store replicated-data consistency cloud-computing edge-computing -
Lazy Interactions - Back to the Future
Featuring Simon Thompson
During this talk, you will discover that interactive programs can be built as lazy functions taking the input (a string) to the output (another string). The approach was was first developed in the 1980s, and is used to take a perspective on how Haskell has changed in the last 25 years.
haskell haskellx erlang functional-programming lazy-evaluation stream io list -
Lightning Talk: Elliptic Curve Cryptography
Featuring Thomas Dietert
During this talk, you will explore a short overview of Elliptic Curve Cryptography (ECC) and the foundational ECDSA (Elliptic Curve Digital Signature Algorithm) that is the basis for data origin verification in most security sensitive applications. You will discover the usage of ECDSA using the...
haskell public-key-cryptography cryptography digital-signature ecdsa -
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 -
Lightning Talk: Our Tools for Mobile Haskell Games and Apps
Featuring Ivan Perez
In this talk, you will learn about the toolchain we use at Keera Studios to create games and mobile apps.
haskell android ios mobile games testing -
Keynote: A Monoid for All Seasons
Featuring Julie Moronuki
One of the great things about Haskell is the way it enables us to recognize patterns, give them names, and reuse them. It's been noted before that monoids really are everywhere in programming, but that Haskell gives us more ability to see them than many languages do.
haskell haskellx monoid pattern haskell-teaching haskell-books typeclasses boolean-algebra applicatives -
Static Pointers, Closures and Polymorphism
Featuring Edsko de Vries
A static pointer can be thought of as the address of symbol in a program. Their primary use lies in the fact that they can always be serialized and hence sent across a network; thus, while we cannot send a Haskell function over a network, we /can/ send a static pointer to that function. This...
haskell haskellx static-pointers distributed-computing cloud-haskell sparkle -
Signature Inference for Functional Property Discovery
Featuring Tom Sydney Kerckhove
During this talk, you will explore the master thesis on Property discovery. Property has the potential to be the last piece of the puzzle in the Property discovery industry when it comes to testing. Property testing solved the problem with unit testing that you can never think of enough examples....
haskellx haskell testing random-testing property-testing property-discovery unit-testing -
Welcome to the Machines
Featuring Alois Cochard
The streaming of data in a purely functional language is a fascinating problem that have been extensively explored over the years.
haskellx haskell -
Incremental Computing
Featuring Wolfgang Jeltsch
Many applications maintain data that evolves over time together with views on this data. An example are GUI applications that present information from a database to the user. Whenever the underlying data changes, the views must adapt to these changes. Incremental computing is about performing...
haskellx haskell incremental-computing dsl type-system types algorithms frp -
Algebraic Graphs
Featuring Andrey Mokhov
Are you tired of fiddling with sets of vertices and edges when working with graphs? Would you like to have a simple tree-like data type for representing graphs and manipulating them using familiar functional programming abstractions? In this talk, you will learn a new way of thinking about graphs...
haskell haskellx graph algebra -
Through a Glass, Abstractly: Lenses and the Power of Abstraction
Featuring Adam Gundry
Abstraction is a Haskell programmer's best friend. Our choice of good abstractions, identifying which details to hide from other parts of the system and which to expose in interfaces, is crucial to our ability to craft correct, concise and meaningful programs. Haskell gives us the ability to...
haskellx haskell functional-programming lenses optics abstraction -
An EDSL for KDB/Q: Rationale, Techniques and Lessons Learned
Featuring Tim Williams
Haskell is expressive enough to enable the composition of staged programs, thus giving a powerful and lightweight technique for code generation. This is often referred to as an embedded domain specific language or EDSL. You get all the benefits of the Haskell host language, such as strong static...
haskell haskellx dsl compiler recursion -
The Arpeggigon: A Functional Reactive Musical Automaton
Featuring Henrik Nilsson
The Arpeggigon is an interactive cellular automaton for composing groove-based music. It is a hexagonal grid laid out as a Harmonic Table where moving one step in each of the six possible directions corresponds to a musically meaningful interval. The automaton is configured by placing different...
functional-reactive-programming reactive-value synchronous-dataflow hybrid-systems music
-
Haskell eXchange 2022: Online Conference
Two days - Online Conference
We're thrilled to once again welcome the global Haskell community to join the Haskell eXchange conference via our virtual conference platform, where across 2 jam-packed days, you'll connect with like-minded Haskellers and learn new skills through practical, coding-based sessions.
software-development haskell ghc functional-programming -
Haskell eXchange 2022: In-Person Conference
Two days in London
We're thrilled to once again welcome the Haskell community to CodeNode in London, where you'll meet hundreds of like-minded Haskellers face-to-face, discuss new technologies, and learn new skills through practical, coding-based sessions, as we explore what's new and what's next in...
software-development haskell -
Haskell eXchange 2022: Novice Track
One day - Online Conference
If you've heard of Haskell, but aren't sure where to begin, join us online 7 December for a day of free talks exploring the fundamentals of functional programming, the basics of Haskell, and answers to why teams use this increasingly popular language!
software-development functional-programming beginner haskell -
Haskell eXchange 2021: Pro Track
Two days - Online Conference
Join us for the 10th annual Haskell eXchange! Hear the latest from Haskell thought leaders, while you connect with fellow Haskellers in breakout sessions, and learn new skills in practical, coding-based talks.
functional haskell ghc #functional-programming -
Haskell eXchange 2021: Novice Track
One day - Online Conference
This year at Haskell eXchange we've added a special "Novice Track" day for anyone who may have heard of Haskell, but isn't quite sure where to begin. Join us for a day of free talks exploring the fundamentals of functional programming, the basics of Haskell, and real-world uses...
haskell functional-programming -
Haskell eXchange 2020
Two days - Online Conference
The Haskell eXchange Online is the online edition of the annual conference created for and by the Skills Matter Haskell community. An opportunity for Haskellers to meet, learn and share skills, discover emerging technologies and help evolve the Haskell ecosystem.
haskell ghc functional-programming types haskellx -
Haskell eXchange 2019
Two days in London
Back for its eighth instalment, 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...
nix monads cryptocurrency fp ghc haskell functional-programming types -
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...
haskell haskellx types functional-programming -
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.
haskell haskellx hackathon hack functional-programming -
Haskell eXchange 2016
Two days in London
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...
types monads functional-programming haskell haskellx -
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.
haskell haskellx functional-programming monads types -
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.
haskellx haskell functional-programming monads types -
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.
haskell functional-programming monads types -
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.
haskell clojure akka functional-programming haskellx -
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