open infix fun <A> Kind<F, A>.shouldBeInterpretedTo(a: A): Unit
Asserts that the given tagless program this can be reduced to a blocking if necessary in async and effect capable data types such as IO
fun <F> Applicative<F>.helloWorldPoly(): Kind<F, String> = just("Hello World")
IO.applicative().run {
helloWorldPoly() shouldBeInterpretedTo "Hello World"
}