I have the following function:

```
def combine1[L1 <: S, L2 <: S, T1, T2](a: BaseSampler[L1,T1], b: BaseSampler[L2,T2])(implicit ev1: L1 =:= L2 ) =
ComplexSampler[L1, T1, T2](a.x, b.x)
```

that works correctly. However the Scala compiler (2.12.2) complaints that the `ev`

is not used. So I thought I could use the `implicitly`

construct and tried this:

```
def combine1[L1 <: S, L2 <: S, T1, T2](a: BaseSampler[L1,T1], b: BaseSampler[L2,T2]) = {
implicitly[L1 =:= L2]
ComplexSampler[L1, T1, T2](a.x, b.x)
}
```

which fails with:

```
Cannot prove that L1 =:= L2.
[error] implicitly[L1 =:= L2]
[error] ^
```

Of course this fails because I have no context bound for `=:=`

for two type parameters. The question now is, how can I add that context bound? I have found a possible solution in [1] but cannot get it to work.

Can anyone point me in the right direction?

TIA