If trait A[+T] extends B, should I be able to pass classes of type A[T] where B is needed?
===

Here is the exact situation I am in (I do not want to simplify it for fear of missing out the cause of the error):

In the framework I am working in there is a

    trait RequestHeader{...}

and another trait

    trait Header[+A] extends RequestHeader{...}

There is a function that expects to receive an argument of type:

    def f(arg: RequestHeader => Result) = {...}

I would expect to be able to pass in

    arg': Request[AnyContent] => Result

However, this causes the compiler to complain. Why is this?