
#11376: Inconsistent specified type variables among functions and datatypes/classes when using -XTypeApplications -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: goldfire Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.1 checker) | Keywords: Resolution: | TypeApplications Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: Other | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by RyanGlScott): I suppose the behavior is unchanged, but cosmetically, the type signature's appearance seems off, especially when combined with `-XTypeApplications`: {{{ $ /opt/ghc/8.0.1/bin/ghci GHCi, version 8.0.0.20160324: http://www.haskell.org/ghc/ :? for help Loaded GHCi configuration from /home/ryanglscott/.ghci λ> :set -XTypeApplications -XDataKinds -fprint-explicit-foralls λ> import GHC.Generics λ> :t datatypeName @('MetaData "Void" "Data.Void" "base" 'False) datatypeName @('MetaData "Void" "Data.Void" "base" 'False) :: Datatype ('MetaData "Void" "Data.Void" "base" 'False) => forall {k1} (t :: Meta -> (* -> *) -> k1 -> *) (f :: * -> *) (a :: k1). t ('MetaData "Void" "Data.Void" "base" 'False) f a -> [Char] }}} 1. You would expect the context to go away once you apply `'MetaData "Void" "Data.Void" "base" 'False`. 2. You certainly wouldn't expect the context to appear //before// the list of quantified type variables. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11376#comment:15 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler