public final class org.eclipse.collections.impl.block.factory.Functions$FunctionChain<T1, T2, T3> implements org.eclipse.collections.api.block.function.Function<T1, T3>
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.eclipse.collections.impl.block.factory.Functions$FunctionChain
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private final org.eclipse.collections.api.block.function.Function<T1, T2> function1;
    descriptor: Lorg/eclipse/collections/api/block/function/Function;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/eclipse/collections/api/block/function/Function<TT1;TT2;>;

  private final org.eclipse.collections.api.block.function.Function<? super T2, T3> function2;
    descriptor: Lorg/eclipse/collections/api/block/function/Function;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/eclipse/collections/api/block/function/Function<-TT2;TT3;>;

  private void <init>(org.eclipse.collections.api.block.function.Function<T1, T2>, org.eclipse.collections.api.block.function.Function<? super T2, T3>);
    descriptor: (Lorg/eclipse/collections/api/block/function/Function;Lorg/eclipse/collections/api/block/function/Function;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
        start local 1 // org.eclipse.collections.api.block.function.Function function1
        start local 2 // org.eclipse.collections.api.block.function.Function function2
         0: .line 850
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 852
            aload 0 /* this */
            aload 1 /* function1 */
            putfield org.eclipse.collections.impl.block.factory.Functions$FunctionChain.function1:Lorg/eclipse/collections/api/block/function/Function;
         2: .line 853
            aload 0 /* this */
            aload 2 /* function2 */
            putfield org.eclipse.collections.impl.block.factory.Functions$FunctionChain.function2:Lorg/eclipse/collections/api/block/function/Function;
         3: .line 854
            return
        end local 2 // org.eclipse.collections.api.block.function.Function function2
        end local 1 // org.eclipse.collections.api.block.function.Function function1
        end local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/eclipse/collections/impl/block/factory/Functions$FunctionChain<TT1;TT2;TT3;>;
            0    4     1  function1  Lorg/eclipse/collections/api/block/function/Function<TT1;TT2;>;
            0    4     2  function2  Lorg/eclipse/collections/api/block/function/Function<-TT2;TT3;>;
    Signature: (Lorg/eclipse/collections/api/block/function/Function<TT1;TT2;>;Lorg/eclipse/collections/api/block/function/Function<-TT2;TT3;>;)V
    MethodParameters:
           Name  Flags
      function1  
      function2  

  public T3 valueOf();
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
        start local 1 // java.lang.Object object
         0: .line 859
            aload 0 /* this */
            getfield org.eclipse.collections.impl.block.factory.Functions$FunctionChain.function2:Lorg/eclipse/collections/api/block/function/Function;
            aload 0 /* this */
            getfield org.eclipse.collections.impl.block.factory.Functions$FunctionChain.function1:Lorg/eclipse/collections/api/block/function/Function;
            aload 1 /* object */
            invokeinterface org.eclipse.collections.api.block.function.Function.valueOf:(Ljava/lang/Object;)Ljava/lang/Object;
            invokeinterface org.eclipse.collections.api.block.function.Function.valueOf:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object object
        end local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/eclipse/collections/impl/block/factory/Functions$FunctionChain<TT1;TT2;TT3;>;
            0    1     1  object  TT1;
    Signature: (TT1;)TT3;
    MethodParameters:
        Name  Flags
      object  

  public <T4> org.eclipse.collections.impl.block.factory.Functions$FunctionChain<T1, T3, T4> chain(org.eclipse.collections.api.block.function.Function<? super T3, T4>);
    descriptor: (Lorg/eclipse/collections/api/block/function/Function;)Lorg/eclipse/collections/impl/block/factory/Functions$FunctionChain;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
        start local 1 // org.eclipse.collections.api.block.function.Function function
         0: .line 864
            new org.eclipse.collections.impl.block.factory.Functions$FunctionChain
            dup
            aload 0 /* this */
            aload 1 /* function */
            invokespecial org.eclipse.collections.impl.block.factory.Functions$FunctionChain.<init>:(Lorg/eclipse/collections/api/block/function/Function;Lorg/eclipse/collections/api/block/function/Function;)V
            areturn
        end local 1 // org.eclipse.collections.api.block.function.Function function
        end local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/eclipse/collections/impl/block/factory/Functions$FunctionChain<TT1;TT2;TT3;>;
            0    1     1  function  Lorg/eclipse/collections/api/block/function/Function<-TT3;TT4;>;
    Signature: <T4:Ljava/lang/Object;>(Lorg/eclipse/collections/api/block/function/Function<-TT3;TT4;>;)Lorg/eclipse/collections/impl/block/factory/Functions$FunctionChain<TT1;TT3;TT4;>;
    MethodParameters:
          Name  Flags
      function  

  public org.eclipse.collections.impl.block.factory.Functions$BooleanFunctionChain<T1, T3> chainBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction<? super T3>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/BooleanFunction;)Lorg/eclipse/collections/impl/block/factory/Functions$BooleanFunctionChain;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
        start local 1 // org.eclipse.collections.api.block.function.primitive.BooleanFunction function
         0: .line 869
            new org.eclipse.collections.impl.block.factory.Functions$BooleanFunctionChain
            dup
            aload 0 /* this */
            aload 1 /* function */
            invokespecial org.eclipse.collections.impl.block.factory.Functions$BooleanFunctionChain.<init>:(Lorg/eclipse/collections/api/block/function/Function;Lorg/eclipse/collections/api/block/function/primitive/BooleanFunction;)V
            areturn
        end local 1 // org.eclipse.collections.api.block.function.primitive.BooleanFunction function
        end local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/eclipse/collections/impl/block/factory/Functions$FunctionChain<TT1;TT2;TT3;>;
            0    1     1  function  Lorg/eclipse/collections/api/block/function/primitive/BooleanFunction<-TT3;>;
    Signature: (Lorg/eclipse/collections/api/block/function/primitive/BooleanFunction<-TT3;>;)Lorg/eclipse/collections/impl/block/factory/Functions$BooleanFunctionChain<TT1;TT3;>;
    MethodParameters:
          Name  Flags
      function  

  public org.eclipse.collections.impl.block.factory.Functions$ByteFunctionChain<T1, T3> chainByte(org.eclipse.collections.api.block.function.primitive.ByteFunction<? super T3>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/ByteFunction;)Lorg/eclipse/collections/impl/block/factory/Functions$ByteFunctionChain;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
        start local 1 // org.eclipse.collections.api.block.function.primitive.ByteFunction function
         0: .line 874
            new org.eclipse.collections.impl.block.factory.Functions$ByteFunctionChain
            dup
            aload 0 /* this */
            aload 1 /* function */
            invokespecial org.eclipse.collections.impl.block.factory.Functions$ByteFunctionChain.<init>:(Lorg/eclipse/collections/api/block/function/Function;Lorg/eclipse/collections/api/block/function/primitive/ByteFunction;)V
            areturn
        end local 1 // org.eclipse.collections.api.block.function.primitive.ByteFunction function
        end local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/eclipse/collections/impl/block/factory/Functions$FunctionChain<TT1;TT2;TT3;>;
            0    1     1  function  Lorg/eclipse/collections/api/block/function/primitive/ByteFunction<-TT3;>;
    Signature: (Lorg/eclipse/collections/api/block/function/primitive/ByteFunction<-TT3;>;)Lorg/eclipse/collections/impl/block/factory/Functions$ByteFunctionChain<TT1;TT3;>;
    MethodParameters:
          Name  Flags
      function  

  public org.eclipse.collections.impl.block.factory.Functions$CharFunctionChain<T1, T3> chainChar(org.eclipse.collections.api.block.function.primitive.CharFunction<? super T3>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/CharFunction;)Lorg/eclipse/collections/impl/block/factory/Functions$CharFunctionChain;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
        start local 1 // org.eclipse.collections.api.block.function.primitive.CharFunction function
         0: .line 879
            new org.eclipse.collections.impl.block.factory.Functions$CharFunctionChain
            dup
            aload 0 /* this */
            aload 1 /* function */
            invokespecial org.eclipse.collections.impl.block.factory.Functions$CharFunctionChain.<init>:(Lorg/eclipse/collections/api/block/function/Function;Lorg/eclipse/collections/api/block/function/primitive/CharFunction;)V
            areturn
        end local 1 // org.eclipse.collections.api.block.function.primitive.CharFunction function
        end local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/eclipse/collections/impl/block/factory/Functions$FunctionChain<TT1;TT2;TT3;>;
            0    1     1  function  Lorg/eclipse/collections/api/block/function/primitive/CharFunction<-TT3;>;
    Signature: (Lorg/eclipse/collections/api/block/function/primitive/CharFunction<-TT3;>;)Lorg/eclipse/collections/impl/block/factory/Functions$CharFunctionChain<TT1;TT3;>;
    MethodParameters:
          Name  Flags
      function  

  public org.eclipse.collections.impl.block.factory.Functions$DoubleFunctionChain<T1, T3> chainDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction<? super T3>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/DoubleFunction;)Lorg/eclipse/collections/impl/block/factory/Functions$DoubleFunctionChain;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
        start local 1 // org.eclipse.collections.api.block.function.primitive.DoubleFunction function
         0: .line 884
            new org.eclipse.collections.impl.block.factory.Functions$DoubleFunctionChain
            dup
            aload 0 /* this */
            aload 1 /* function */
            invokespecial org.eclipse.collections.impl.block.factory.Functions$DoubleFunctionChain.<init>:(Lorg/eclipse/collections/api/block/function/Function;Lorg/eclipse/collections/api/block/function/primitive/DoubleFunction;)V
            areturn
        end local 1 // org.eclipse.collections.api.block.function.primitive.DoubleFunction function
        end local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/eclipse/collections/impl/block/factory/Functions$FunctionChain<TT1;TT2;TT3;>;
            0    1     1  function  Lorg/eclipse/collections/api/block/function/primitive/DoubleFunction<-TT3;>;
    Signature: (Lorg/eclipse/collections/api/block/function/primitive/DoubleFunction<-TT3;>;)Lorg/eclipse/collections/impl/block/factory/Functions$DoubleFunctionChain<TT1;TT3;>;
    MethodParameters:
          Name  Flags
      function  

  public org.eclipse.collections.impl.block.factory.Functions$FloatFunctionChain<T1, T3> chainFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction<? super T3>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/FloatFunction;)Lorg/eclipse/collections/impl/block/factory/Functions$FloatFunctionChain;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
        start local 1 // org.eclipse.collections.api.block.function.primitive.FloatFunction function
         0: .line 889
            new org.eclipse.collections.impl.block.factory.Functions$FloatFunctionChain
            dup
            aload 0 /* this */
            aload 1 /* function */
            invokespecial org.eclipse.collections.impl.block.factory.Functions$FloatFunctionChain.<init>:(Lorg/eclipse/collections/api/block/function/Function;Lorg/eclipse/collections/api/block/function/primitive/FloatFunction;)V
            areturn
        end local 1 // org.eclipse.collections.api.block.function.primitive.FloatFunction function
        end local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/eclipse/collections/impl/block/factory/Functions$FunctionChain<TT1;TT2;TT3;>;
            0    1     1  function  Lorg/eclipse/collections/api/block/function/primitive/FloatFunction<-TT3;>;
    Signature: (Lorg/eclipse/collections/api/block/function/primitive/FloatFunction<-TT3;>;)Lorg/eclipse/collections/impl/block/factory/Functions$FloatFunctionChain<TT1;TT3;>;
    MethodParameters:
          Name  Flags
      function  

  public org.eclipse.collections.impl.block.factory.Functions$IntFunctionChain<T1, T3> chainInt(org.eclipse.collections.api.block.function.primitive.IntFunction<? super T3>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/IntFunction;)Lorg/eclipse/collections/impl/block/factory/Functions$IntFunctionChain;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
        start local 1 // org.eclipse.collections.api.block.function.primitive.IntFunction function
         0: .line 894
            new org.eclipse.collections.impl.block.factory.Functions$IntFunctionChain
            dup
            aload 0 /* this */
            aload 1 /* function */
            invokespecial org.eclipse.collections.impl.block.factory.Functions$IntFunctionChain.<init>:(Lorg/eclipse/collections/api/block/function/Function;Lorg/eclipse/collections/api/block/function/primitive/IntFunction;)V
            areturn
        end local 1 // org.eclipse.collections.api.block.function.primitive.IntFunction function
        end local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/eclipse/collections/impl/block/factory/Functions$FunctionChain<TT1;TT2;TT3;>;
            0    1     1  function  Lorg/eclipse/collections/api/block/function/primitive/IntFunction<-TT3;>;
    Signature: (Lorg/eclipse/collections/api/block/function/primitive/IntFunction<-TT3;>;)Lorg/eclipse/collections/impl/block/factory/Functions$IntFunctionChain<TT1;TT3;>;
    MethodParameters:
          Name  Flags
      function  

  public org.eclipse.collections.impl.block.factory.Functions$LongFunctionChain<T1, T3> chainLong(org.eclipse.collections.api.block.function.primitive.LongFunction<? super T3>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/LongFunction;)Lorg/eclipse/collections/impl/block/factory/Functions$LongFunctionChain;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
        start local 1 // org.eclipse.collections.api.block.function.primitive.LongFunction function
         0: .line 899
            new org.eclipse.collections.impl.block.factory.Functions$LongFunctionChain
            dup
            aload 0 /* this */
            aload 1 /* function */
            invokespecial org.eclipse.collections.impl.block.factory.Functions$LongFunctionChain.<init>:(Lorg/eclipse/collections/api/block/function/Function;Lorg/eclipse/collections/api/block/function/primitive/LongFunction;)V
            areturn
        end local 1 // org.eclipse.collections.api.block.function.primitive.LongFunction function
        end local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/eclipse/collections/impl/block/factory/Functions$FunctionChain<TT1;TT2;TT3;>;
            0    1     1  function  Lorg/eclipse/collections/api/block/function/primitive/LongFunction<-TT3;>;
    Signature: (Lorg/eclipse/collections/api/block/function/primitive/LongFunction<-TT3;>;)Lorg/eclipse/collections/impl/block/factory/Functions$LongFunctionChain<TT1;TT3;>;
    MethodParameters:
          Name  Flags
      function  

  public org.eclipse.collections.impl.block.factory.Functions$ShortFunctionChain<T1, T3> chainShort(org.eclipse.collections.api.block.function.primitive.ShortFunction<? super T3>);
    descriptor: (Lorg/eclipse/collections/api/block/function/primitive/ShortFunction;)Lorg/eclipse/collections/impl/block/factory/Functions$ShortFunctionChain;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
        start local 1 // org.eclipse.collections.api.block.function.primitive.ShortFunction function
         0: .line 904
            new org.eclipse.collections.impl.block.factory.Functions$ShortFunctionChain
            dup
            aload 0 /* this */
            aload 1 /* function */
            invokespecial org.eclipse.collections.impl.block.factory.Functions$ShortFunctionChain.<init>:(Lorg/eclipse/collections/api/block/function/Function;Lorg/eclipse/collections/api/block/function/primitive/ShortFunction;)V
            areturn
        end local 1 // org.eclipse.collections.api.block.function.primitive.ShortFunction function
        end local 0 // org.eclipse.collections.impl.block.factory.Functions$FunctionChain this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/eclipse/collections/impl/block/factory/Functions$FunctionChain<TT1;TT2;TT3;>;
            0    1     1  function  Lorg/eclipse/collections/api/block/function/primitive/ShortFunction<-TT3;>;
    Signature: (Lorg/eclipse/collections/api/block/function/primitive/ShortFunction<-TT3;>;)Lorg/eclipse/collections/impl/block/factory/Functions$ShortFunctionChain<TT1;TT3;>;
    MethodParameters:
          Name  Flags
      function  
}
Signature: <T1:Ljava/lang/Object;T2:Ljava/lang/Object;T3:Ljava/lang/Object;>Ljava/lang/Object;Lorg/eclipse/collections/api/block/function/Function<TT1;TT3;>;
SourceFile: "Functions.java"
NestHost: org.eclipse.collections.impl.block.factory.Functions
InnerClasses:
  public final BooleanFunctionChain = org.eclipse.collections.impl.block.factory.Functions$BooleanFunctionChain of org.eclipse.collections.impl.block.factory.Functions
  public final ByteFunctionChain = org.eclipse.collections.impl.block.factory.Functions$ByteFunctionChain of org.eclipse.collections.impl.block.factory.Functions
  public final CharFunctionChain = org.eclipse.collections.impl.block.factory.Functions$CharFunctionChain of org.eclipse.collections.impl.block.factory.Functions
  public final DoubleFunctionChain = org.eclipse.collections.impl.block.factory.Functions$DoubleFunctionChain of org.eclipse.collections.impl.block.factory.Functions
  public final FloatFunctionChain = org.eclipse.collections.impl.block.factory.Functions$FloatFunctionChain of org.eclipse.collections.impl.block.factory.Functions
  public final FunctionChain = org.eclipse.collections.impl.block.factory.Functions$FunctionChain of org.eclipse.collections.impl.block.factory.Functions
  public final IntFunctionChain = org.eclipse.collections.impl.block.factory.Functions$IntFunctionChain of org.eclipse.collections.impl.block.factory.Functions
  public final LongFunctionChain = org.eclipse.collections.impl.block.factory.Functions$LongFunctionChain of org.eclipse.collections.impl.block.factory.Functions
  public final ShortFunctionChain = org.eclipse.collections.impl.block.factory.Functions$ShortFunctionChain of org.eclipse.collections.impl.block.factory.Functions