
#14917: Allow levity polymorhism in binding position -------------------------------------+------------------------------------- Reporter: andrewthad | Owner: (none) Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.2 Resolution: | Keywords: | LevityPolymorphism Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by andrewthad): @Iceland_jack I believe that the inlining phase (or phases) happens after type checking, so this couldn’t even be done during the usual inlining phase. You would need something similar to the inlining phase that happens prior to type checking. The only things allowed to inline during this phase would be fully saturated calls to functions with levity polymorphic binders ( maybe function template, as Richard suggests, is an appropriate name for it). This is why Richard says that it would be hard to produce sensible error messages. So, I don’t think that changes to the inliner could mess this up because this would be a separate and unusual inlining phase. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14917#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler