You can find the following on the web:

  1. Higher kinded type == type constructor?

    class AClass[T]{...} // For example, class List[T]
    

    Some say this is a higher kinded type, because it
    abstracts over types which would be compliant with the definition.

    Higher kinded types are types which take other types and construct a new type

    These though are also known as type constructor. (For example, in Programming in Scala).

  2. Higher kinded type == type constructor which takes type constructor as a type parameter?

    In the paper Generics of a Higher Kind, you can read

    … types that abstract over types that abstract over types
    (‘higher-kinded types’) …”

    which suggests that

    class XClass[M[T]]{...} // or
    
    trait YTrait[N[_]]{...} // e.g. trait Functor[F[_]]
    

    is a higher kinded type.

So with this in mind, it is difficult to distinguish between type constructor, higher kinded type and type constructor which takes type constructors as type parameter, therefore the question above.

5 Answers
5

Leave a Reply

Your email address will not be published. Required fields are marked *