Oh I haven't seen the main part of you modification...
this is a pure scala trick to protect ourselves against unwanted/evil implicit conversions!

trait DWrapper extends NotNull
private[datomisca] case class DWrapperImpl(underlying: DatomicData) extends DWrapper

implicit def toDWrapper[T](t: T)(implicit td: ToDatomicCast[T]): DWrapper = DWrapperImpl(Datomic.toDatomic(t)(td)) 

The implicit conversion tries to convert any type T with a ToDatomicCast[T]. So it's quite large and can try to convert things we don't want.
So, if you just keep: `class DWrapper(underlying: DatomicData)`
and write:

`val s = "foobar"` and then `s.underlying` will be accepted by the compiler where you certainly don't want it to exist at all.

So by creating DWrapper as a trait without any method in it and returning it from the implicit def, we are sure no implicit can be called on this type.
So you can't have any unwanted implicit conversion whatever you do!

We use the same interesting trick in Play/Json and it prevents anything unexpected about implicit conversions...