// same algorithm as above
            /// <exception cref="NotComputedException"></exception>
            public FirstResult Sequence(IEnumerable <Symbol> syms)
            {
                _ = Algo.Nullable ?? throw new NotComputedException(nameof(Algo.Nullable));

                var result = new FirstResult();

                foreach (var Bi in syms)
                {
                    if (Bi.Type == Symbol.Types.Terminal)
                    {
                        result.Add(Bi);
                        break;
                    }
                    else
                    {
                        result.UnionWith(this[Bi]);
                    }
                    if (!Algo.Nullable[Bi])
                    {
                        break;
                    }
                }
                return(result);
            }