summaryrefslogtreecommitdiff
path: root/testsuite/tests/th/T13098.hs
blob: e6a541cc559331d765f7dfdbf081053147bcbcf2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE ViewPatterns #-}

module T13098 where

import Language.Haskell.TH

$( sequence [ dataD (cxt []) (mkName "T") [PlainTV (mkName "a") ()]
                     Nothing [normalC (mkName "T") []] []
          , pragCompleteD [mkName "T"] Nothing ] )

$([d| class LL f where
        go :: f a -> ()

      instance LL [] where
        go _ = ()

      pattern T2 :: LL f => f a
      pattern T2 <- (go -> ())

      {-# COMPLETE T2 :: [] #-}

      -- No warning
      foo :: [a] -> Int
      foo T2 = 5
    |])