GHC
GHC is the primary compiler for the Haskell language and supports numerous language extensions, such as PolyKinds, DataKinds, and TypeFamilies. It is the core tool of the Haskell ecosystem.
Timeline (last 90 days)
The TypeApplications extension allows explicit specification of type parameters at the expression level (such as read @Int).
The TypeFamilies extension allows the definition of type-level functions, which fall into closed and open varieties; open type families can have instances defined incrementally across multiple modules.
In ghci, the :kind command (abbreviated as :k) is used to query the Kind of a type; for example, :k Int returns Int :: *.
In newer versions of GHC, * has been renamed Type and can be imported through the Data.Kind module.
GHC's PolyKinds extension allows type variables to have polymorphic Kinds, enabling types such as Proxy to adapt to any Kind.
When defining an instance for Functor, the compiler checks whether the Kind of the target type is * -> *; if a type whose Kind is * (such as Int) is passed in, the compiler reports an error.
After enabling the DataKinds extension, each data type automatically promotes its value constructors to type constructors and assigns them Kinds; for example, data Bool = True | False generates the types 'True and 'False (with Kind Bool).
The cancellation of GHC may have a negative impact on corporate recruiting pipelines, students' career planning, and women-in-tech community networks.
At present there is no clear information on whether GHC will restart in another form or be permanently discontinued.
Over the past decade, GHC's sponsors have included giants such as Google, Meta, Apple and Microsoft.
All Facts (10)
The TypeApplications extension allows explicit specification of type parameters at the expression level (such as read @Int).
50%UnverifiedThe TypeFamilies extension allows the definition of type-level functions, which fall into closed and open varieties; open type families can have instances defined incrementally across multiple modules.
50%UnverifiedIn ghci, the :kind command (abbreviated as :k) is used to query the Kind of a type; for example, :k Int returns Int :: *.
50%UnverifiedIn newer versions of GHC, * has been renamed Type and can be imported through the Data.Kind module.
50%UnverifiedGHC's PolyKinds extension allows type variables to have polymorphic Kinds, enabling types such as Proxy to adapt to any Kind.
50%UnverifiedWhen defining an instance for Functor, the compiler checks whether the Kind of the target type is * -> *; if a type whose Kind is * (such as Int) is passed in, the compiler reports an error.
50%UnverifiedAfter enabling the DataKinds extension, each data type automatically promotes its value constructors to type constructors and assigns them Kinds; for example, data Bool = True | False generates the types 'True and 'False (with Kind Bool).
50%UnverifiedAt present there is no clear information on whether GHC will restart in another form or be permanently discontinued.
50%UnverifiedOver the past decade, GHC's sponsors have included giants such as Google, Meta, Apple and Microsoft.
50%UnverifiedThe cancellation of GHC may have a negative impact on corporate recruiting pipelines, students' career planning, and women-in-tech community networks.
50%