It is just a very old / odd way to implement Precursor for the `next' routine.
I guess the second inherit was replaced by an insert without really trying to analyze the code: insert is more recent than Precursor, but the export rules are tighter and the fix was done in automatic mode without involving the brain ;-) (just a guess though)
Feel free to replace with a simple Precursor call.