For_unix is the subset of Core's interface that Command needs, in particular to implement the shape and run functions. Core_kernel.Private.Command is a functor taking a module matching For_unix and is applied in Core to construct Core.Command. We use a functor in this way so that Command's internal data types can remain hidden.