yes, I want that, but the problem is that in the `Replicator` I don't know the concrete types, so there I need to do things like:

    val a: ConvergentReplicatedDataType[_] = new Foo
    val b: ConvergentReplicatedDataType[_] = new Foo
    val merged = a.merge(b)

    <console>:26: error: type mismatch;
    found   : b.type (with underlying type ConvergentReplicatedDataType[_])
    required: _$1
       val merged = a.merge(b)