Skip to content

HEAD-only panic (tcSpliceExpr) on typed Template Haskell example

The following program compiles on GHC 8.10.1:

{-# LANGUAGE TemplateHaskell #-}
module Bug where

import Language.Haskell.TH

sapply :: Q (TExp (a -> b)) -> Q (TExp a) -> Q (TExp b)
sapply cf cx = [|| $$cf $$cx ||]

But not on HEAD:

$ ~/Software/ghc/inplace/bin/ghc-stage2 Bug.hs
[1 of 1] Compiling Bug              ( Bug.hs, Bug.o, Bug.dyn_o )
ghc-stage2: panic! (the 'impossible' happened)
  (GHC version 8.11.0.20200430:
        tcSpliceExpr

cc @mpickering

Edited by Ryan Scott
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information