Created
January 29, 2018 23:50
-
-
Save andyscott/67a0db3d577dc680d8e8a0e5266f7a1c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
object Evidence extends App { | |
class Foo[A] | |
class Bar[A] | |
class Zed[A] | |
// FirstK will find the first available evidence for entries in a TListK | |
{ | |
implicit val zedForString: Zed[String] = new Zed[String] | |
assert(FirstK[Foo :: Bar :: Zed :: TNilK, String].value.value == zedForString) | |
{ | |
implicit val barForString: Bar[String] = new Bar[String] | |
assert(FirstK[Foo :: Bar :: Zed :: TNilK, String].value.value == barForString) | |
assert(FirstK[Foo :: Zed :: Bar :: TNilK, String].value.value == zedForString) | |
{ | |
implicit val fooForString: Foo[String] = new Foo[String] | |
assert(FirstK[Foo :: Bar :: Zed :: TNilK, String].value.value == fooForString) | |
assert(FirstK[Bar :: Foo :: Zed :: TNilK, String].value.value == barForString) | |
assert(FirstK[Zed :: Bar :: Foo :: TNilK, String].value.value == zedForString) | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment