PartialTypeSignatures-0.1.0.0: Example.hs
{-# LANGUAGE CPP #-}
{-# LANGUAGE TemplateHaskell #-}
module Example where
import Control.Monad
import PartialTypeSigs
import Language.Haskell.TH
#if __GLASGOW_HASKELL__ > 707
sigs
[| ["f1" :: a -> b -> (a, Int),
"f1" :: b -> a -> (Char, a) ] |]
f1 x y | False = $(unionSigs [| f1 x y |])
f1 x y = undefined -- (x,y)
#endif
sigs [| do
let f2 = undefined
Just
( f2 :: a -> b -> (a, Int),
f2 :: c -> d -> (Char, d)
)
|]
f2 x y | False = $(unionSigs [| f2 x y |])
f2 x y = undefined -- (x,y)