Skip to content

Instantly share code, notes, and snippets.

Created April 18, 2017 12:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/b3bac2b3a2614c35b14365e2a0823a55 to your computer and use it in GitHub Desktop.
Save anonymous/b3bac2b3a2614c35b14365e2a0823a55 to your computer and use it in GitHub Desktop.
the description for this gist
trait Show[A] {
def show(a: A): String
}
object Show {
def apply[A](implicit sh: Show[A]): Show[A] = sh
//needed only if we want to support notation: show(...)
def show[A: Show](a: A) = Show[A].show(a)
implicit class ShowOps[A: Show](a: A) {
def show = Show[A].show(a)
}
//type class instances
implicit val intCanShow: Show[Int] =
int => s"int $int"
implicit val stringCanShow: Show[String] =
str => s"string $str"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment