e><p>In this example, the (abstract) <code>Hush</code> functor would be exposed to other library authors while the (concrete) <code>hush</code> function with some docs would be exposed only to the newcomers.</p><p>This way anyone can still take advantage of the derived implementations provided by this abstraction without any of the learning curve — they can just read the type signature of the <code>hush</code> function and ignore the other stuff. And the functor could be reused for some other type that ta