Combinando árvores de expressão

Eu tenho a seguinte expressão:

public Expression<Func<T, bool>> UserAccessCheckExpression<T>(int userId) where T : class
{
    return x => (IsAdmin || userId == CurrentUserId || userId == 0);
}

Quero aplicar esse filtro a várias coleções (IQueryable) como esta:

return tasks
  .Where(t => t.TaskUsers
     .Any(x => UserAccessCheckExpression<TaskUser>(x.User) && x.SomeBool == true));

Estou recebendo o seguinte erro ao fazer isso:

Erro 40 Não é possível converter implicitamente o tipoSystem.Linq.Expressions.Expression<System.Func<TaskUser,bool>> parabool

Não consigo usar a solução alternativa com herança de interface (como TaskUser herda a interface com a propriedade int UserId (onde T: IHasUserId)), pois quero combinar a lógica.

questionAnswers(2)

yourAnswerToTheQuestion