Open LMnet opened 4 years ago
It seems one workaround would be to use Coercible (special thanks to @hmemcpy for pointing this out to others)
implicit def coercibleMeta[R, N](implicit ev: Coercible[Meta[R], Meta[N]], R: Meta[R]): Meta[N] = ev(R)
Yeah, unfortunately I couldn't get the tmap/tcontramap variant working, so this workaround uses the regular map/contramap on doobie types. This works, but as @LMnet mentions, won't provide decent logging output when things go wrong.
Currently, there is no way to get a
TypeTag
for a newtype:WeakTypeTag
works fine:Also, I can get a
TypeTag
for theRepr
type:Looks like there is no way to get a
TypeTag
for the newtype in the current newtype encoding because newtype's type is abstract, but TypeTag can be summoned only for a concrete type.About my use case: I'm using doobie and it uses
TypeTag
s very extensively for better logging and error reporting.