I'm trying to understand the following piece of code (from the Scalaz library):
def kleisliIdApplicative[R]: Applicative[Kleisli[Id, R, ?]] = ...
I'm assuming that a type of the form T[P0, ?]
is a type-constructor that takes a parameter. However I'm no able to find documentation that explains the usage of question marks in type parameters.
A related question is what is the difference between the question mark and an underscore?
Is there a place where all this is well-documented?