original_string: protected function run(MonadInterface $prevResult, callable $next = null)
      {
          try {
              $result = call_user_func($this->codeBlock, $prevResult);
              return ($result instanceof MonadInterface) ? $result : Success::unit($result);
          } catch (Exception $error) {
              return Error::unit($error);
          }
      }
code: protected function run(MonadInterface $prevResult, callable $next = null)
      {
          try {
              $result = call_user_func($this->codeBlock, $prevResult);
              return ($result instanceof MonadInterface) ? $result : Success::unit($result);
          } catch (Exception $error) {
              return Error::unit($error);
          }
      }
code_tokens: protected function run ( MonadInterface $ prevResult , callable $ next = null ) { try { $ result = call_user_func ( $ this -> codeBlock , $ prevResult ) ; return ( $ result instanceof MonadInterface ) ? $ result : Success :: unit ( $ result ) ; } catch ( Exception $ error ) { return Error :: unit ( $ error ) ; } }
docstring: Runs the monad's code-block.
  
  @param MonadInterface $prevResult
  @param callable $next
  
  @return MonadInterface Either Success or Error in case an exception occured.
docstring_tokens: Runs the monad s code - block .