on June 3, 2017 at Comwell Conference Center Copenhagen, Denmark
The fourth Typelevel Summit will be co-located with the Scala conference: Scala Days!
The Summits are open to all, not just current contributors to and users of the Typelevel projects, and we are especially keen to encourage participation from people who are new to them. Whilst many of the Typelevel projects use somewhat “advanced” Scala, they are a lot more approachable than many people think, and a major part of Typelevel’s mission is to make the ideas they embody much more widely accessible. If you’re interested in types and pure functional programming we’d love to see you here!
This is a community conference and we strive to make it an inclusive and fulfilling event for all participants. All attendees, speakers, and organizers must abide by the Typelevel Code of Conduct.
Time | Talk |
---|---|
8:30 |
Registration |
9:00 |
Opening Remarks |
9:05 |
Keynote: Inviting everyone to the party
Most of today's popular general-purpose programming languages incorporate various aspects of the imperative, object and functional programming paradigms. In some cases, these languages provide clear guidelines as to what style is preferred, and wh... More |
10:05 |
Break |
10:30 |
Refined types for validated configurations
Are you tired of writing boilerplate code to load configurations? Have you ever had errors because of bad configuration values? Then this talk is for you! In a live-coding session we’ll see how to encode validation rules on the type-level and load... More |
11:10 |
Herding types with Scala macros
In Scala we use the term “type safety”, but what it really means? In short, most applications model data types in a form suitable for storage, change, transmission, and use. During the life cycle of the data, we expect to always use the declared t... More |
11:25 |
Break |
11:45 |
Monad Stacks or: How I Learned to Stop Worrying and Love the Free Monad
In this talk, I will demonstrate various techniques, such as: Monad Transformers, Effects libraries, and Free monads. These techniques can be used to transform scala “spaghetti” code (that is embedded maps, flatmaps and pattern matching) to cleane... More |
12:25 |
Freestyle: A framework for purely functional FP Apps & Libs
Freestyle is a newcomer friendly library encouraging pure FP apps & libs in Scala on top of free monads. In this talk we will discuss design choices and main features including modules, algebras, interpreter composition and what is being planned f... More |
12:45 |
Lunch Break |
14:00 |
Lenses for the masses – introducing Goggles
Lenses, or more generally optics, are a technique that is indispensable to modern functional programming. However, implementations have veered between two extremes: incredible abstractive power with a steep learning curve; and limited domain-speci... More |
14:40 |
The power of type classes in big data ETL: a real world use case of combining Spark and Shapeless
In this talk, we will explore a type driven approach of big data ETL in Spark. Through code snippets, we will see how to express data processing logic with type classes and singleton types using Shapeless, and how to build a higher level DSL over ... More |
14:55 |
Break |
15:15 |
Mastering Typeclass Induction
Typeclasses are a powerful feature of the Scala. Using typeclasses to perform type-level induction is a mysterious, yet surprisingly simple, technique used in shapeless, cats, and circe to do generic programming. We will use basic data types to wa... More |
15:55 |
Do it with (free?) arrows!
DSLs with a monad-based algebra (such as free monads) are becoming popular. Recently, DSLs with an applicative-based algebra (e.g. free applicatives) also aroused interest. It is not new that there exists another notion of computation that sits in... More |
16:25 |
Break |
16:45 |
Libra: Reaching for the stars with dependent types
When we code, we code in numerics - doubles, floats and ints. Those numerics always represent real world quantities. Each problem domain has it’s own kinds of quantities, with its own dimensions. Adding quantities of different dimensions is nonsen... More |
17:30 |
Reception hosted by 47 Degrees |
We’d like to thank all our sponsors who help to make the Summit happen: