Package fj.data.hlist
Class HList<A extends HList<A>>
- java.lang.Object
-
- fj.data.hlist.HList<A>
-
- Type Parameters:
A
- The specific type of the list, as a subtype of HList
- Direct Known Subclasses:
HList.HCons
,HList.HNil
public abstract class HList<A extends HList<A>> extends java.lang.Object
Type-safe heterogeneous lists.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
HList.Apply<F$,A,R>
Type-level function application operators.static class
HList.HAppend<A,B,C>
The concatenation of two heterogeneous lists.static class
HList.HCons<E,L extends HList<L>>
The nonempty liststatic class
HList.HFoldr<G,V,L,R>
The catamorphism over heterogeneous lists.static class
HList.HNil
The empty list
-
Constructor Summary
Constructors Constructor Description HList()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static <E,L extends HList<L>>
HList.HCons<E,L>cons(E e, L l)
Returns a heterogeneous list consisting of an element and another list.abstract <E> HList.HCons<E,A>
extend(E e)
Extends (cons) this list by prepending the given element, returning a new list.abstract <E> HList.Apply<Unit,P2<E,A>,HList.HCons<E,A>>
extender()
static HList.HNil
nil()
Returns the empty list.static <E> HList.HCons<E,HList.HNil>
single(E e)
Returns a heterogeneous list consisting of a single element.
-
-
-
Method Detail
-
extend
public abstract <E> HList.HCons<E,A> extend(E e)
Extends (cons) this list by prepending the given element, returning a new list.- Parameters:
e
- an element to prepend to this list.- Returns:
- a new heterogeneous list, consisting of the given element prepended to this list.
-
extender
public abstract <E> HList.Apply<Unit,P2<E,A>,HList.HCons<E,A>> extender()
-
nil
public static HList.HNil nil()
Returns the empty list.- Returns:
- the empty list.
-
cons
public static <E,L extends HList<L>> HList.HCons<E,L> cons(E e, L l)
Returns a heterogeneous list consisting of an element and another list.- Parameters:
e
- an element to put in a list.l
- the rest of the list.- Returns:
- a heterogeneous list consisting of an element and another list.
-
single
public static <E> HList.HCons<E,HList.HNil> single(E e)
Returns a heterogeneous list consisting of a single element.- Parameters:
e
- an element to put in a list- Returns:
- a heterogeneous list consisting of a single element.
-
-