PrefixToModule is unlike any other ParserNamespace: it specifies lookup methods, which are referenced by StatementStream implementations. Otherwise it acts as your normal namespace for lookups from statement implementations.
This fusion of contracts is an obvious bug: while the two views are related, their missions are not.
Separate out the StatementStream contract from the ParserNamespace contract and clean up whatever fallout there is.