code: protected ByteCodeAppender.Size apply(MethodVisitor methodVisitor,
                                            Context implementationContext,
                                            MethodDescription instrumentedMethod,
                                            TypeDescription.Generic fixedValueType,
                                            StackManipulation valueLoadingInstruction) {
          StackManipulation assignment = assigner.assign(fixedValueType, instrumentedMethod.getReturnType(), typing);
          if (!assignment.isValid()) {
              throw new IllegalArgumentException("Cannot return value of type " + fixedValueType + " for " + instrumentedMethod);
          }
          StackManipulation.Size stackSize = new StackManipulation.Compound(
                  valueLoadingInstruction,
                  assignment,
                  MethodReturn.of(instrumentedMethod.getReturnType())
          ).apply(methodVisitor, implementationContext);
          return new ByteCodeAppender.Size(stackSize.getMaximalSize(), instrumentedMethod.getStackSize());
      }
docs: Blueprint method that for applying the actual implementation.
  
  @param methodVisitor           The method visitor to which the implementation is applied to.
  @param implementationContext   The implementation context for the given implementation.
  @param instrumentedMethod      The instrumented method that is target of the implementation.
  @param fixedValueType          A description of the type of the fixed value that is loaded by the
  {@code valueLoadingInstruction}.
  @param valueLoadingInstruction A stack manipulation that represents the loading of the fixed value onto the
  operand stack.
  @return A representation of the stack and variable array sized that are required for this implementation.