code: protected function generateMethod(
          RuntimeConfiguration $configuration,
          ClassDefinition $classDefinition,
          MethodDefinition $methodDefinition
      ) {
          $this->typeCheck->generateMethod(func_get_args());
  
          $typhoonMethod = new ConcreteMethod(
              new Identifier(
                  $this->validatorMethodName($methodDefinition)
              )
          );
          $typhoonMethod->addParameter(new ParameterASTNode(
              new Identifier('arguments'),
              new ArrayTypeHint
          ));
  
          $this->generator()
              ->setValidatorNamespace($configuration->validatorNamespace())
          ;
          $expressions = $this->parameterList(
              $configuration,
              $classDefinition,
              $methodDefinition
          )->accept($this->generator());
          foreach ($expressions as $expression) {
              $typhoonMethod->statementBlock()->add($expression);
          }
  
          return $typhoonMethod;
      }
docs: @param RuntimeConfiguration $configuration
  @param ClassDefinition      $classDefinition
  @param MethodDefinition     $methodDefinition
  
  @return ConcreteMethod