test_class.file: a-foundation/src/test/java/com/ajjpj/afoundation/collection/immutable/AListTest.java
test_class.identifier: AListTest
test_class.superclass: extends AbstractCollectionTest<AList<String>, AList<Integer>, AList<Iterable<String>>>
test_case.body: @Test
      public void testCons() {
          AList<String> l0 = AList.nil();
          final AList<String> l1 = l0.cons("a");
          final AList<String> l2 = l0.cons("x").cons("y");
  
          assertEquals(1, l1.size());
          assertEquals(2, l2.size());
  
          assertEquals(Arrays.<String>asList(), l0.asJavaUtilList());
          assertEquals(Arrays.asList("a"),      l1.asJavaUtilList());
          assertEquals(Arrays.asList("y", "x"),  l2.asJavaUtilList());
      }
test_case.class_method_signature: AListTest.testCons()
test_case.full_signature: @Test public void testCons()
test_case.identifier: testCons
test_case.invocations: nil cons cons cons assertEquals size assertEquals size assertEquals asList asJavaUtilList assertEquals asList asJavaUtilList assertEquals asList asJavaUtilList
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testCons()
focal_class.declarator: size
focal_class.modifier: private final
focal_class.original_string: private final int size;
focal_class.type: int
focal_class.var_name: size
focal_class.declarator: nil = Nil.INSTANCE
focal_class.modifier: public static final
focal_class.original_string: public static final AList nil = Nil.INSTANCE;
focal_class.type: AList
focal_class.var_name: nil
focal_class.file: a-foundation/src/main/java/com/ajjpj/afoundation/collection/immutable/AList.java
focal_class.identifier: AList
focal_class.interfaces: implements Serializable
focal_class.class_method_signature: AList.AList(int size)
focal_class.full_signature: protected  AList(int size)
focal_class.identifier: AList
focal_class.modifiers: protected
focal_class.parameters: (int size)
focal_class.signature:  AList(int size)
focal_class.class_method_signature: AList.nil()
focal_class.full_signature: @SuppressWarnings("unchecked") public static AList<T> nil()
focal_class.identifier: nil
focal_class.modifiers: @SuppressWarnings("unchecked") public static
focal_class.parameters: ()
focal_class.return: AList<T>
focal_class.signature: AList<T> nil()
focal_class.class_method_signature: AList.create(Iterable<T> elements)
focal_class.full_signature: public static AList<T> create(Iterable<T> elements)
focal_class.identifier: create
focal_class.modifiers: public static
focal_class.parameters: (Iterable<T> elements)
focal_class.return: AList<T>
focal_class.signature: AList<T> create(Iterable<T> elements)
focal_class.class_method_signature: AList.create(List<T> elements)
focal_class.full_signature: public static AList<T> create(List<T> elements)
focal_class.identifier: create
focal_class.modifiers: public static
focal_class.parameters: (List<T> elements)
focal_class.return: AList<T>
focal_class.signature: AList<T> create(List<T> elements)
focal_class.class_method_signature: AList.create(T... elements)
focal_class.full_signature: @SafeVarargs public static AList<T> create(T... elements)
focal_class.identifier: create
focal_class.modifiers: @SafeVarargs public static
focal_class.parameters: (T... elements)
focal_class.return: AList<T>
focal_class.signature: AList<T> create(T... elements)
focal_class.class_method_signature: AList.asJavaUtilList()
focal_class.full_signature: public java.util.List<T> asJavaUtilList()
focal_class.identifier: asJavaUtilList
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: java.util.List<T>
focal_class.signature: java.util.List<T> asJavaUtilList()
focal_class.class_method_signature: AList.asJavaUtilCollection()
focal_class.full_signature: @Override public Collection<T> asJavaUtilCollection()
focal_class.identifier: asJavaUtilCollection
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Collection<T>
focal_class.signature: Collection<T> asJavaUtilCollection()
focal_class.class_method_signature: AList.createInternal(Collection<T> elements)
focal_class.full_signature: @Override protected AList<T> createInternal(Collection<T> elements)
focal_class.identifier: createInternal
focal_class.modifiers: @Override protected
focal_class.parameters: (Collection<T> elements)
focal_class.return: AList<T>
focal_class.signature: AList<T> createInternal(Collection<T> elements)
focal_class.class_method_signature: AList.equalityForEquals()
focal_class.full_signature: @Override protected AEquality equalityForEquals()
focal_class.identifier: equalityForEquals
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: AEquality
focal_class.signature: AEquality equalityForEquals()
focal_class.class_method_signature: AList.optHead()
focal_class.full_signature: public abstract AOption<T> optHead()
focal_class.identifier: optHead
focal_class.modifiers: public abstract
focal_class.parameters: ()
focal_class.return: AOption<T>
focal_class.signature: AOption<T> optHead()
focal_class.class_method_signature: AList.head()
focal_class.full_signature: public abstract T head()
focal_class.identifier: head
focal_class.modifiers: public abstract
focal_class.parameters: ()
focal_class.return: T
focal_class.signature: T head()
focal_class.class_method_signature: AList.tail()
focal_class.full_signature: public abstract AList<T> tail()
focal_class.identifier: tail
focal_class.modifiers: public abstract
focal_class.parameters: ()
focal_class.return: AList<T>
focal_class.signature: AList<T> tail()
focal_class.class_method_signature: AList.cons(T el)
focal_class.full_signature: public AList<T> cons(T el)
focal_class.identifier: cons
focal_class.modifiers: public
focal_class.parameters: (T el)
focal_class.return: AList<T>
focal_class.signature: AList<T> cons(T el)
focal_class.class_method_signature: AList.reverse()
focal_class.full_signature: public AList<T> reverse()
focal_class.identifier: reverse
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: AList<T>
focal_class.signature: AList<T> reverse()
focal_class.class_method_signature: AList.size()
focal_class.full_signature: public int size()
focal_class.identifier: size
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int size()
focal_class.class_method_signature: AList.toList()
focal_class.full_signature: @Override public AList<T> toList()
focal_class.identifier: toList
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: AList<T>
focal_class.signature: AList<T> toList()
focal_class.class_method_signature: AList.map(AFunction1<? super T, ? extends X, E> f)
focal_class.full_signature: @Override public AList<X> map(AFunction1<? super T, ? extends X, E> f)
focal_class.identifier: map
focal_class.modifiers: @Override public
focal_class.parameters: (AFunction1<? super T, ? extends X, E> f)
focal_class.return: AList<X>
focal_class.signature: AList<X> map(AFunction1<? super T, ? extends X, E> f)
focal_class.class_method_signature: AList.flatMap(AFunction1<? super T, ? extends Iterable<X>, E> f)
focal_class.full_signature: @Override public AList<X> flatMap(AFunction1<? super T, ? extends Iterable<X>, E> f)
focal_class.identifier: flatMap
focal_class.modifiers: @Override public
focal_class.parameters: (AFunction1<? super T, ? extends Iterable<X>, E> f)
focal_class.return: AList<X>
focal_class.signature: AList<X> flatMap(AFunction1<? super T, ? extends Iterable<X>, E> f)
focal_class.class_method_signature: AList.flatten()
focal_class.full_signature: @SuppressWarnings("unchecked") @Override public AList<X> flatten()
focal_class.identifier: flatten
focal_class.modifiers: @SuppressWarnings("unchecked") @Override public
focal_class.parameters: ()
focal_class.return: AList<X>
focal_class.signature: AList<X> flatten()
focal_class.class_method_signature: AList.collect(APartialFunction<? super T, ? extends X, E> pf)
focal_class.full_signature: @Override public AList<X> collect(APartialFunction<? super T, ? extends X, E> pf)
focal_class.identifier: collect
focal_class.modifiers: @Override public
focal_class.parameters: (APartialFunction<? super T, ? extends X, E> pf)
focal_class.return: AList<X>
focal_class.signature: AList<X> collect(APartialFunction<? super T, ? extends X, E> pf)
focal_class.class_method_signature: AList.iterator()
focal_class.full_signature: @Override public Iterator<T> iterator()
focal_class.identifier: iterator
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Iterator<T>
focal_class.signature: Iterator<T> iterator()
focal_class.superclass: extends AbstractACollection<T, AList<T>>
focal_method.body: public AList<T> cons(T el) {
          return new AHead<>(el, this);
      }
focal_method.class_method_signature: AList.cons(T el)
focal_method.full_signature: public AList<T> cons(T el)
focal_method.identifier: cons
focal_method.modifiers: public
focal_method.parameters: (T el)
focal_method.return: AList<T>
focal_method.signature: AList<T> cons(T el)