Ok.

When I’m writing a class that is inheriting from Function, there is some wrapping going on in C code before the python code inside forward() and backward() is executed. What is the convention

a) for passing arguments to Functions? Always pass Variables?
b) inside forward() and backward(), are certain input types and return types expected? Like, Variables are always unwrapped to tensors before forward(), always return a Variable or always return tensor in forward()?
c) for using @staticmethod for  forward() and backward()?

Is there any code that is tensor type specific inside autograd that could cause problems when introducing a new tensor type?
Whats the convention for calling Functions? Function.apply(args) or Function().foward(args) or something else? I’m getting different errors for those.

Cheers,
kinda stuck right now.