simon.vergauwen
@instance(L::class) instance LShowInstance<A> : Show<L<A>> { fun S(): Show<A> //dependeny on Show<A> fun L<A>.show() = l.joinToString { S().run { it.show() } } }