cats
Hand rolling the type class boilerplate due to scala/bug#6260 and scala/bug#10458
creates an instance of Show using object toString
creates an instance of Show using the provided function
Hand rolling the type class boilerplate due to scala/bug#6260 and scala/bug#10458