code: def bind(self, f):
          
  
          @Parser
          def _bind(tokens, s):
              (v, s2) = self.run(tokens, s)
              return f(v).run(tokens, s2)
  
          _bind.name = u'(%s >>=)' % (self.name,)
          return _bind
docs: Parser(a, b), (b -> Parser(a, c)) -> Parser(a, c)
  
          NOTE: A monadic bind function. It is used internally to implement other
          combinators. Functions bind and pure make the Parser a Monad.