public IEnumerable <StatementSyntax> GetMoveNext(StatementSyntax finalizer)
 {
     yield return(SF.IfStatement(SF.BinaryExpression(SyntaxKind.GreaterThanExpression,
                                                     SF.PrefixUnaryExpression(SyntaxKind.PreIncrementExpression, SF.IdentifierName(bitIndex)), SH.Literal(7)),
                                 SF.Block(_wrapped.GetMoveNext(finalizer).Concat(new StatementSyntax[] {
         SH.Assignment(SF.IdentifierName(cachedInput), _wrapped.GetInput()),
         SH.Assignment(SF.IdentifierName(bitIndex), SH.Literal(0))
     })),
                                 SF.ElseClause(SH.Assignment(SF.IdentifierName(cachedInput), SH.Literal(1), SyntaxKind.RightShiftAssignmentExpression))));
 }