This is old-style (the first) vs new-style (the second) autograd. The latter was introduced in 0.2 and is required e.g. for second derivatives. Note that it has a context ctx that takes the context data rather than using an instance.
An important difference you did not mention is the use of the functions. Use FuncB.apply(input) for new style.
Best regards
Thomas