Add abstracting induction.
List recursion did not match the book because the binding as-is ended up returning dummy types. It can be fixed by wrapping it in a function declaration, or by specifying a type.