I want to use something like "type class variable".
Suppose I have a value of type "Either Int Double" and I want to double it's content and get back the value wrapped back into that Either. I can write a function that can work on all types that belongs to the Num class, i.e. "Num a => a -> a". Both Int and Double are members of the Num class, so I can apply this function to any of those.
Now replace the "Num" class to a variable, in my example "tc" (short for "type class"), as long as the function I'm trying to apply rely only on functions defined by the type class "tc" and both sides of Either belongs to the class "tc", then I can apply that function to it.
That's what I'm trying to express.