blob: c0908532a1166b80b639683dd4f9998e4881f26f (
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
|
{-# 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))
|