The way we use it now, it seems to me as if there could be a simpler solution for `Lift`. Right now `M` is never dynamically determined, both uses are either fixed to `List` or `Option`. This means that for every **usage** of `?` or `repeat` the compiler has to do an implicit search for `MOps` which, in fact, could be avoided. I have no better solution for now but I feel there should be one :)