diff options
Diffstat (limited to 'testsuite/tests/printer/Test16230.hs')
-rw-r--r-- | testsuite/tests/printer/Test16230.hs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/testsuite/tests/printer/Test16230.hs b/testsuite/tests/printer/Test16230.hs new file mode 100644 index 0000000000..8cccc1de45 --- /dev/null +++ b/testsuite/tests/printer/Test16230.hs @@ -0,0 +1,34 @@ +{-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE KindSignatures #-} +{-# LANGUAGE ExplicitForAll #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE TypeApplications #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE DatatypeContexts, ExistentialQuantification #-} +module MoreExplicitForalls where + +import Data.Proxy + +data family F1 a +data instance forall (x :: Bool). F1 (Proxy x) = MkF + +class C a where + type F2 a b + +instance forall a. C [a] where + type forall b. F2 [a] b = Int + + +type family G a b where + forall x y. G [x] (Proxy y) = Double + forall z. G z z = Bool + + +data instance GMap (Either a b) v = GMapEither (GMap a v) (GMap b v) +data instance forall a (b :: Proxy a). F (Proxy b) = FProxy Bool +data instance forall k (a :: k). F a = FOtherwise -- accepted + +data family D a b +data instance (Show b) => D Int b +data instance forall b . (Show b) => D Int b +data instance forall b . D Int b |