I want a custom class that functionally extends `List[Double]`, with some added functionality. My understanding of ***Pimp My Library*** would lead me to construct something like this:

```
implicit class MahThing(list:List[Double]) {
    def mahStuff = ...
}

```

The problem is, now everywhere `MahThing` is imported, all `List[Double]`s have the option to do `mahStuff`.

Same with:

```
class MahThing(list:List[Double]) {
    def mahStuff ...
}
implicit def toThing(list:List[Double]) = new MahThing(list)

```

Now, `list.toThing` produces `MahThing`, but `MahThing` can't do `List`y stuff. Painstakingly defining `List` operations in `MahThing` as `list.operation` is painstaking. For some reason, working with instances of `MahThing`, it's making me e.g. declare variable types during `map` operations.

What I really need is the exact functionality of extending `List[Double]`. Things that are supposed to be `MahThing` get to do `mahStuff`, and no one else does. Plus `MahThing` acts just like a `List` in every other respect.