bool available; // true when more specials are available
		
		public SpecialNodesInserter(IEnumerable<ISpecial> specials, SpecialOutputVisitor visitor)
		{
			if (specials == null) throw new ArgumentNullException("specials");
			if (visitor == null) throw new ArgumentNullException("visitor");
			enumerator = specials.GetEnumerator();
			this.visitor = visitor;
			available = enumerator.MoveNext();
		}
        bool available;         // true when more specials are available

        public SpecialNodesInserter(IEnumerable <ISpecial> specials, SpecialOutputVisitor visitor)
        {
            if (specials == null)
            {
                throw new ArgumentNullException("specials");
            }
            if (visitor == null)
            {
                throw new ArgumentNullException("visitor");
            }
            enumerator   = specials.GetEnumerator();
            this.visitor = visitor;
            available    = enumerator.MoveNext();
        }