the package and the user should be options, not constructor arguments. If the type is reused twice, you might want to pass a different package or a different user.
As the form registry keeps a single instance of each type, this is a clear way to see that the user and the package are not dependencies of the form types but options to build the form (the doctrine registry could be a dependency on the other hand, like done for the ``entity`` type)