Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Register
  • Sign in
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 5.5k
    • Issues 5.5k
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 631
    • Merge requests 631
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Model experiments
  • Analytics
    • Analytics
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell CompilerGlasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #11715

Constraint vs *

I first noticed something was a bit odd with Constraint when chasing #11334 (closed). Consider this testcase (-O0 is sufficient),

import Data.Typeable

main = do
    print $ typeRep (Proxy :: Proxy Eq)
    print $ typeOf (Proxy :: Proxy Eq)

With ghc-8.0 this will produce,

Eq
Proxy (* -> *) Eq

Notice the second line; GHC seems to be claiming that Eq :: * -> *, which is clearly nonsense.

I believe this issue may be the cause of some of the testsuite failures that I'm seeing on #11011 (closed). Unfortunately I haven't the foggiest where this issue might originate.

See also

  • #11621
  • #12933 (closed)
  • #9547
  • #13931 (closed)
  • #15918 (closed) (about mkCastTy)
  • #21530 (closed) (ultimately also about mkCastTy)
Edited May 09, 2022 by Simon Peyton Jones
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking