code: def some(pred):
      
  
      @Parser
      def _some(tokens, s):
          if s.pos >= len(tokens):
              raise NoParseError(u'no tokens left in the stream', s)
          else:
              t = tokens[s.pos]
              if pred(t):
                  pos = s.pos + 1
                  s2 = State(pos, max(pos, s.max))
                  if debug:
                      log.debug(u'*matched* "%s", new state = %s' % (t, s2))
                  return t, s2
              else:
                  if debug:
                      log.debug(u'failed "%s", state = %s' % (t, s))
                  raise NoParseError(u'got unexpected token', s)
  
      _some.name = u'(some)'
      return _some
docs: (a -> bool) -> Parser(a, a)
  
      Returns a parser that parses a token if it satisfies a predicate pred.