
#10188: prefix type-level cons can't be parsed -------------------------------------+------------------------------------- Reporter: Kinokkory | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.4 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: GHC rejects Unknown/Multiple | valid program Test Case: | Blocked By: Blocking: | Related Tickets: Differential Revisions: | -------------------------------------+------------------------------------- Whereas other type operators (whether used as type families or used as data constructors) can be safely used in a prefix form, only the type- level cons of the built-in list kind can't be used in a prefix form. It really is a problem because we don't have any means to express type- level cons itself in source code. This for example prevents us from writing a generic type-level foldr that takes the built-in list and other similar data types alike. In a ghci: {{{#!hs
:set -XDataKinds -XTypeOperators data Listy a = a ::: Listy a :kind! (:::) (:::) :: k -> Listy k -> Listy k = forall (k :: BOX). (':::) :kind! (:)
<interactive>:1:2: parse error on input ‘:’ }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10188 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler