Slightly decompose the Plain module.
Update documentation and derived instances.
Use internal library to hide non-public modules.
Move non-public modules into Internal namespace.
Implement "plain" interface.
Separate modules.
WIP version with WIP interface.