albanD:

Also I just saw that you should not instantiate an instance of a Function


I do not instantiate any instances of Function and I use the static method apply exactly how you describe in the forward method:
class MyLinear(nn.Linear):
    def forward(self, x):
        return MyLinearFunction.apply(x, self.weight, self.bias)