Type System: The Beauty And The Beast
The type system plays an important role in building type-safe applications that reduce runtime exceptions and developer mistakes. This sophisticated system is leveraged by Scala’s most famous functional libraries, such as Scala-Cats and ScalaZ. This feature-rich system allows implementing pure functional programming on the JVM. It is a beast due to its complex syntax, as it prevents developers from exploring its beautiful aspects like partially applying types in Scala. In this talk, we will tame the beast and use its beauty to solve real-life issues faced during coding. Our examples will be based on generics, constraints, type lambdas, and the kind projector plugin.
The following are the learning objectives of this talk:
Practical use cases of the type system using real-life coding examples.
Implementing custom higher kinded types and handling partially applied types via type lambdas and the kind projector plugin.
Outline/Structure of the Talk
Practical use cases for Scala advanced type system features with real-life examples.
This talk helps to Scala programmers for understanding the powerful features of Scala Type System, and those are used to build generic functional libraries via Scala.
Programmers who love's Scala and want's to contribute in open source libraries which are based on advanced Type System features.
Prerequisites for Attendees
Basics knowledge of scala fundamentals and type system.
schedule Submitted 2 weeks ago
People who liked this proposal, also liked:
Alexander Granin - Hierarchical Free Monads and Software Design in Functional ProgrammingAlexander GraninSenior Haskell DeveloperJuspay
schedule 1 week agoSold Out!
Functional Programming is going through the same process of rethinking as Object Oriented Programming has passed already. FP today is not only something mystical, something barely applicable for day-to-day tasks, but rather a whole philosophy of building big, complex applications, with own tools, approaches and methodologies. We can see a lot of ideas about software design and architecture emerging from the FP community: talks, books, articles. We’re actively discussing Final Tagless, Free Monads, effect systems and other approaches, but it seems the theme not yet covered and we don’t know about possibilities we have.
In this talk, I’ll tell you about the power of Free Monads in building complex applications in Haskell and PureScript. These applications will be satisfying the requirements like maintainability, testability, simplicity. You’ll know how to create a safe concurrent application state, how to divide the application into layers and how to keep the code sane. In fact, you can do the same with Final Tagless or extensible effects, but the approach with hierarchical Free Monads has some specific properties making it the best tool to separate concerns and create a very interesting eDSLs with different semantics.
I’ve used these ideas to build software for different companies, including Juspay (Bengaluru), Restaumatic (Poland), Enecuum (Hong Kong). We’ve created several interesting technologies that were not possible to make without Free Monads. Some of them are open sourced.