
#14231: Core lint error "in result of Static argument" -------------------------------------+------------------------------------- Reporter: mpickering | Owner: (none) Type: bug | Status: patch Priority: normal | Milestone: Component: Compiler | Version: 8.5 Resolution: | Keywords: | StaticArgumentTransformation Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D4945 Wiki Page: | -------------------------------------+------------------------------------- Comment (by osa1):
In bindWith (comment:8) we are abstracting over the type variable, but it is static. This is the real source of the problem. In my example above, note that b was static but a was not.
We introduce two new bindings: - `bindWith_r1` this is the wrapper (or "shadowing" binding). This has to have the exact same type with the original binder (`bindWith`) because it'll shadow the original definition. This has a type arg because the original `bindWith` has one. - `sat_worker_s198` this is the actual worker function without static argument and because all arguments to `bindWith` are static this has no args. So in the actual worker we don't abstract over the static type argument. It seems to me that there isn't a problem with abstracting over static arguments. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14231#comment:14 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler