Personal tools

Budapest Hackathon 2017

From HaskellWiki

Revision as of 04:14, 28 July 2017 by Heisenbug (Talk | contribs)

Jump to: navigation, search

Bp hh 2017.png


When: 2017July 29 - 30th (Saturday & Sunday)
Hours: 09:00 ~ 17:00
Where: Gizmodo Media Hungary, 1062 Andrássy út 66.


1 About

The Budapest Haskell User Group will once again hold a two day Haskell Hackathon in Budapest. This is the third the occasion (info about the first, and second hackathon), and this time we will hold it in Gizmodo Media Group's Budapest office. The event is an international, grassroots collaborative coding festival with a simple focus: build and improve Haskell libraries, tools, and infrastructure, and growing the local community.

This is a great opportunity to meet your fellow Haskellers in real life, find new contributors for your project, improve existing libraries and tools or even start new ones!

This event is open to any experience level, from beginners to gurus. In fact, one of the goals is to bring beginners in contact with experts so that the former can get a quick start in the Haskell community. We will have a dedicated beginners' track, and there are going to be experienced haskellers on site whom you can directly approach during the whole event with any Haskell-related question that might pop up.

There will be lots of hacking, good food, and, of course, fun!

2 Sponsors

Gmg logo.png
Digital asset logo.png
Iseeq logo.png

Many thanks to GMG for hosting, and Digital Asset, and IseeQ for sponsoring the event.

3 Registration

You can fill out the necessary registration information here.
There is no registration deadline, or requirement really, so you can join us even if you didn't fill out the form, it just helps us with the organization.

4 Venue

A66 front.jpg
A66 inside 1.jpg
A66 inside 2.jpg

The Hackathon will be held at Gizmodo Media's Budapest office. WiFi, projectors for talks, and snacks & refreshments will be provided by our sponsors.
Detailed schedules will be posted soon.

5 Local arrangements

5.1 Getting to Budapest

You can find out more about Budapest on these sites. Travel informations can be found on

5.1.1 By Plane

From Liszt Ferenc Airport by public transport: 200E Bus and M3 (Metro line 3 or blue line).

5.2 Getting to the venue

The Gizmodo Media Group's offices (1062 Budapest, Andrássy út 66.) are near center of the city, so it can be easily approached even by foot from downtown accommodations. For public transport timetables, and more information please visit the local transport authority’s site.
Information about tickets, and recommended tickets:

Local Taxis:

5.3 Accommodation

6 Schedule

Note: This is only an approximate schedule.

Saturday Sunday
9:00 doors open doors open
9:30 Andres Löh
András Leitereg, Dániel Berényi
LambdaGen: A GPU Code Generator Powered by Recursion Schemes
10:10 short break short break
10:20 Michal Kawalec
Functional programming with bananas in barbed wire
Lightning talks
11:00 project discussions, start of project work project discussions, start of project work
13:30 lunch break lunch break
16:30 demo session
17:00 end of scheduled programs, beers end of scheduled programs, beers

7 Projects

7.1 generics-sop: Generic Programming using True Sums of Products


generics-sop is a library for datatype-generic programming in Haskell. Datatypes are viewed as n-ary sums of n-ary products. Such sums and products are represented in a type-safe way using Haskell GADTs and manipulated via higher-rank polymorphic combinators provided by the library.

The core of the library is relatively stable, but some new features, such as type-level metadata, require more experience to stabilize. So one open task is to just experiment with type-level metadata and provide feedback.

Other tasks are improving the documentation, and creating a systematic benchmark suite so that the performance of generics-sop can be measured and the performance of different existing internal representations can be compared with each other.

Contact: Andres Löh


7.2 hs-di

Description: Dependency Injection library for Haskell to allow powerful unit testing and mocking (compile-time type-checked)

Contact: Milan Nagy


7.3 STG Optimisations

Description: Since the GHC's internal STG language is unityped, the runtime representation of `\case Right a → Just a` is the strict identity (`\ !a → a`) operationally. However, this optimisation currently is not implemented. Something similar is already done, so this might be low-hanging fruit.

Contact: Gabor Greif


8 Talks/demos

As of yet the following talks are scheduled:

8.1 Andres Löh - generics-sop


Datatype-generic programming and generics-sop provides access to the internal structure of datatype definitions, allowing functions to access datatype constructors and their arguments in a uniform yet type-safe way. As a result, we can implement functions that work over a large range of datatypes and are typically built into the compiler as "derivable" classes directly within Haskell, such as equality and comparison functions, (de)serialization functions to various formats, or generic traversals such as maps and folds.

We will look at a number of examples and show how they can be solved with generics-sop.

Talk/Project repo


Andres is a partner and Haskell Consultant at Well-Typed LLP.

8.2 András Leitereg, Dániel Berényi - LambdaGen: A GPU Code Generator Powered by Recursion Schemes


Problems that are data and computation intensive but are also naturally parallelizable are very frequent in physics, statistics and other fields of science. Their efficient parallel implementation would however require not just decent programming skills, but also deep insight of the target architecture. These computations are often in the form of a linear algebraic expression, and our goal is to deduce their optimal parallelization and memory usage automatically. We'd like to create a tool that offers a compromise between minimizing the implementation and the running time, for scientists who are not programmers. We chose a small set of high level operations accessible through a Haskell EDSL, with which the users build an expression tree of their computation. Then we apply a series of recursion scheme based transformations on the expression tree, and finally produce a SYCL source code to evaluate the expression on GPU. We keep this abstract representation throughout the processing, which opens the possibility of optimizations that are otherwise difficult to recognize and carry out. It also minimizes the time we spent with debugging, but imposes some problems that are specific to the functional context.

Talk/Project repo


  • András Leitereg (Department of Informatics, Eötvös Loránd University)
  • Dániel Berényi (Wigner GPU Lab)

8.3 Michal Kawalec - Functional programming with bananas in barbed wire


In our day to day functional programming, we 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!

Fortunately, recursion schemes come to the rescue. They allow for a clear and concise definition of recursion, while being guided by the typechecker. The talk will present basic theory behind them but will not require advanced knowledge of mathematics. We believe that 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.


Michal is an engineer of many trades. He is currently responsible for libraries and architecture of League of Legends, and, previously, he had worked with startups, supercomputers, and particle detectors. At night, he writes Haskell libraries and runs the biggest Haskell Meetup in Poland.

8.4 Notes regarding the talks

We plan more, and we will update this site regularly so check back later.

Apart from longer presentations, it will be possible to give lightning talks, or project demos. If you're interested in giving one of these, please contact us on one of the addresses at the bottom of the page.

9 Attendees

Here is the list of participants who have signed up, and have chosen their name to be listed.

10 Communication

If you have any questions about the event you can reach us here:

All code from this and past event will be uploaded to the meetup’s Github page.

11 Organizers

  • Dániel Berecz
  • Csaba Hruska
  • Péter Diviánszky
  • Andor Pénzes

12 Code of Conduct

All attendees, speakers, exhibitors, organizers, contributors and volunteers are required to conform to the following Code of Conduct.

BP-HUG events are for anyone interested in the Haskell language, its history, related topics, and want to discuss them in a fun, engaging and respectful environment.

Be an adult, don't be a jerk.

We value the participation of each member of the community and want all attendees to have an enjoyable and fulfilling experience. Accordingly, all attendees are expected to show respect and courtesy to other attendees throughout the meet-ups, this hackathon, and on the electronic channels listed above.

12.1 Need help?

If you are experiencing harassment on or have concerns about the content please contact:

The organizers will be available to help you with any issues or concerns at this event.

12.2 What it means

The BP-HUG is dedicated to providing a harassment-free experience for everyone, regardless of gender, sexual orientation, disability, physical appearance, body size, race, or religion. We do not tolerate harassment of meet-up participants in any form.

All communication should be appropriate for a professional audience including people of many different backgrounds. Sexual language and imagery is not appropriate for any meet-up, including talks.

Be kind to others. Do not insult or put down other attendees. Behave professionally. Remember that harassment and sexist, racist, or exclusionary jokes are not appropriate for this event.

Attendees violating these rules may be asked to leave the meet-up at the sole discretion of the organizers.

Thank you for helping make this a welcoming, friendly event for all.

12.3 Spelling it out

Harassment includes offensive verbal comments related to gender, sexual orientation, disability, physical appearance, body size, race, religion, sexual images in public spaces, deliberate intimidation, stalking, following, harassing photography or recording, sustained disruption of talks or other events, inappropriate physical contact, and unwelcome sexual attention.

Participants asked to stop any harassing behavior are expected to comply immediately.

Contributors to the GitHub repository, the Meetup and/or event-related sites, sponsors, or similar are also subject to the anti-harassment policy. Organizers (including volunteers) should not use sexualized clothing/uniforms/costumes, or otherwise create a sexualized environment.