/// <summary>
        /// Creates a root workspace.
        /// </summary>
        /// <param name="initialSource">Optional initial <see cref="ICodeWorkspace.Global"/> source code.</param>
        /// <param name="assembly">Optional initial <see cref="ICodeWorkspace.AssemblyReferences"/>.</param>
        /// <returns>A new workspace.</returns>
        public static ICodeWorkspace Create(string?initialSource = null, params Assembly[] assembly)
        {
            var w = new CodeWorkspaceImpl();

            if (!String.IsNullOrWhiteSpace(initialSource))
            {
                w.Global.Append(initialSource);
            }
            foreach (var a in assembly)
            {
                w.DoEnsureAssemblyReference(a);
            }
            return(w);
        }