This should probably be `LocatableParser2<T, U super T> extends Parser<T>`, that way the handler can be passed a `T` instead of and `U` without needing a cast which removes the need for `SuppressWarnings("unchecked")`