Note that a Linear module is more than just a Variable.
Check the difference:
def linear(input):
    x = Variable(torch.rand(2, 2))
    return input

and
def linear(input):
    x = Variable(torch.rand(2, 2))
    return torch.matmul(input, x)