It seems that if the type is visible, an impl's pub methods can be used, even if such an impl is encased in multiple private modules. https://play.rust-lang.org/?version=nightly&mode=debug&edition=2015&gist=bf21f358b4b57075d1243a3b07d93da9