promote functionals and operators in linsolve