Skip to content

Instantly share code, notes, and snippets.

@utaal
Created November 8, 2016 16:34
Show Gist options
  • Save utaal/fa3de004f418bc01adf3a72ab69bf0bd to your computer and use it in GitHub Desktop.
Save utaal/fa3de004f418bc01adf3a72ab69bf0bd to your computer and use it in GitHub Desktop.
https://twitter.com/travisbrown/status/795992815201304577 -inspired typeclass instance naming
case class Circle(radius: Double)
trait HasArea[A] {
def area(a: A): Double
}
implicit val `HasArea for Circle` = new HasArea[Circle] {
def area(circle: Circle): Double = Math.PI * Math.pow(circle.radius, 2)
}
println(implicitly[HasArea[Circle]].area(Circle(2)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment