Re: [GHC] #4230: Template Haskell: less type checking in quotations?

#4230: Template Haskell: less type checking in quotations? ---------------------------------+------------------------------------------ Reporter: simonpj | Owner: Type: feature request | Status: new Priority: low | Milestone: 7.6.2 Component: Compiler | Version: 7.6.3 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: | Testcase: Blockedby: | Blocking: 4124, 4125, 4128, 4135, 4170 Related: | ---------------------------------+------------------------------------------ Changes (by carter): * version: 6.12.3 => 7.6.3 Comment: One use case / example /motivation I encountered this week is the following: To make the LLVM-Base library work with cabal versions 1.16 and cabal head, I wanted to write the following code {{{ --- what i'd like to write, but can't because template haskell rejecting the branch that has the wrong api version extractCLBI x= $(if cabalVersion >= Version [1,17,0] [] then [| getComponentLocalBuildInfo 'x CLibName |] else [| let LocalBuildInfo { libraryConfig = Just clbi } = 'x in clbi |] ) }}} {{{ --- horrible hack to support cabal versions both above and below 1.17 extractCLBI x= $(if cabalVersion >= Version [1,17,0] [] then appE (appE ( varE $ mkName "getComponentLocalBuildInfo") ( varE 'x) ) (conE ( mkName "CLibName")) else letE [valD (recP (mkName "LocalBuildInfo" ) [fieldPat (mkName "libraryConfig") (conP (mkName "Just") [varP $ mkName "clbi"] ) ] ) (normalB $ varE 'x) [] ] (varE $ mkName "clbi") ) }}} In this case, I need to explicitly write out the AST so that template haskell doesn't barf. Would one near term solution be to 1. do the harmonization between haskell-src-exts and TH (as suggested / discussed elsewhere) 2. provide untypedExp, Dec, etc quasiquoters ? this would be a pretty happy balance of allowing both the stronger and weaker typings, and might be a reasonable first step towards actually working on MetaHaskell -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/4230#comment:16 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC