Type Member vs Type Parameter: Which? Why?
Arnold de Vos
Path dependent types distinguish scala from other commonly used languages. But what can we do with PDT's that we can't (easily) do by introducing type parameters? In other words, why do we care about PDTs?
In a recent paper about DOT Odersky et al show an example of the usefulness of PDTs. But this example is easily recoded with type parameters. See here: https://gist.github.com/arnolddevos/09e5f51ce1436f590c7d
This talk will give a few more examples and we will see if any of them are convincing. May the superior idiom survive!
At the end, if it is not too much, the encoding of type parameters in PDTs will be shown.
Shapeless hacking - exploring the power of the Dark Side
• A demo of some cool things that are possible
• Type-level programming techniques in Scala, focusing on shapeless
• Some warnings about how overdoing this stuff can be dangerous
• Encouragement to ignore the dangers and embrace the raw power
• Star Wars references.
data streams at the core
I'll go through a real-world example of scalaz-streams at the core of a command line application. We'll look at features like IO streams, async, transformation and reduction and fluent DSL, as well as how we modelled the application around the stream-based core, and how this set us up for future extensions.