It seems that in java you could write `ArrayList<A>`. I think this type is actually of kind "type -> type". But in java it seems that we cannot have the type `A<B>`, and functors and monads require that..
ArrayList's kind is type->type
ArrayList<A>'s kind is type.
The A is what plugs into type on the LHS of the arrow, leaving only the RHS remaining.