Everyone knows (should know?) what Test Driven Development is.
In languages with sufficiently strong type systems such as Scala or Haskell we can do even better. We can make compiler do part of testing for us. We sometimes hear "I cannot think of bugs that can be prevented by static type checking".
I would like to show some Scala code examples which (hopefully) prove this statement is not correct - starting from basic ones, such as avoiding null pointers, and moving towards
more complex ones - coming from libraries such as Scalaz and Shapeless.
Recorded 13 March 2013 at the Booster conference in Bergen, Norway.