
#10697: Change template-haskell API to allow NOUNPACK, lazy annotations -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: Type: feature request | Status: patch Priority: normal | Milestone: Component: Template Haskell | Version: 7.10.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #5290, #8347 | Differential Rev(s): Phab:D1603 Wiki Page: | -------------------------------------+------------------------------------- Comment (by RyanGlScott): By the way, I'm open to ideas on what to color the bikeshed: * I'm not sure if `SourceStrictness` and `SourceUnpackedness` should have three constructors each, or if we should just remove `NoSourceStrictness`/`NoSourceUnpackedness` and just use `Nothing` to represent a lack of an annotation (e.g., `Just SourceStrict` for a `!` annotation, `Nothing` for no annotation). * What to name `SourceStrictness` and `SourceUnpackedness`. Other names I contemplated were `data AnnStrictness = StrictAnnotation | LazyAnnotation | NoStrictnessAnnotation` and `data AnnUnpackedness = NoUnpackAnnotation | UnpackAnnotation | NoUnpackednessAnnotation`. * What to name `DecidedStrictness`. I also considered `data ImplStrictness = ImplStrict | ImplLazy | ImplUnpack`. Or perhaps we should just re-use the already existing `data Strict = IsLazy | IsStrict | Unpack`? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10697#comment:17 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler