diff options
Diffstat (limited to 'testsuite/tests/th/T17380.hs')
-rw-r--r-- | testsuite/tests/th/T17380.hs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/testsuite/tests/th/T17380.hs b/testsuite/tests/th/T17380.hs new file mode 100644 index 0000000000..c0908532a1 --- /dev/null +++ b/testsuite/tests/th/T17380.hs @@ -0,0 +1,24 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE TemplateHaskell #-} +module T17380 where + +import Data.Proxy +import Language.Haskell.TH + +foo :: $(tupleT 1 `appT` (conT ''Maybe `appT` conT ''String)) +foo = Just "wat" + +bar :: Maybe String +bar = $(tupE [[| Just "wat" |]]) + +baz :: $(tupleT 1 `appT` (conT ''Maybe `appT` conT ''String)) -> Maybe String +baz (Just "wat") = Just "frerf" + +quux :: Maybe String -> Maybe String +quux $(tupP [[p| Just "wat" |]]) = Just "frerf" + +quuz :: Proxy $(promotedTupleT 1 `appT` (conT ''Maybe `appT` conT ''String)) +quuz = Proxy :: Proxy (Maybe String) + +fred :: Proxy (Maybe String) +fred = Proxy :: Proxy $(promotedTupleT 1 `appT` (conT ''Maybe `appT` conT ''String)) |