nn.ReLU6 vs. nn.functional.relu6

Hi folks,
I am looking at the implementations of nn.ReLU6 and nn.functional.relu6.

It seems that nn.ReLU6 is implemented as a subclass of HardTanh while nn.functional.relu6 calls to the C API directly.

Is there any reason why there’s a difference? Why can’t nn.ReLU6 directly call nn.functional.relu6?

Thanks!