Jerzy is a functional programming passionate, currently evangelist of Scala. He also likes to dwell into software engineering topics like code quality, peer review or architecture design. At his day job in VirtusLab he is involved in multiple Scala projects using Akka, Play! and Scala IDE. After hours he is co-organizer of Kraków Scala User Groups, attends several other meetup groups, dances and reads a lot of books.
Type classes are advanced type system constructs that originates in Haskell. They can greatly improve readability, extensibility and usability of your libraries. Type classes provides you a way to extend types which you don't control with interfaces you don't control, use different semantic for methods depending on scope or even change method return type based on it's arguments.
In this talk we will start with some basic definition what Type Class is, we will see some basic examples from Scala & Haskell and then we will dwell deeper into some advanced features you can create on top of them.
Talk is targeted at developers who have seen some Scala and/or Haskell code, but everything will be explained from the basics.