Skip to content

Instantly share code, notes, and snippets.

@missingfaktor
Created October 24, 2011 13:08
Show Gist options
  • Select an option

  • Save missingfaktor/1308987 to your computer and use it in GitHub Desktop.

Select an option

Save missingfaktor/1308987 to your computer and use it in GitHub Desktop.
scala> trait DayOfWeek; trait Sun extends DayOfWeek; trait Mon extends DayOfWeek // etc
defined trait DayOfWeek
defined trait Sun
defined trait Mon
scala> trait Weekend[D <: DayOfWeek]; implicit object SunInWeekend extends Weekend[Sun] // define one for Sat too
defined trait Weekend
defined module SunInWeekend
scala> def goSkiing[D <: DayOfWeek : Weekend] = println("whee")
goSkiing: [D <: DayOfWeek](implicit evidence$1: Weekend[D])Unit
scala> goSkiing[Sun]
whee
scala> goSkiing[Mon]
<console>:38: error: could not find implicit value for evidence parameter of type Weekend[Mon]
goSkiing[Mon]
^
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment