diff options
Diffstat (limited to 'testsuite/tests/indexed-types/should_fail/T4174.hs')
-rw-r--r-- | testsuite/tests/indexed-types/should_fail/T4174.hs | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/testsuite/tests/indexed-types/should_fail/T4174.hs b/testsuite/tests/indexed-types/should_fail/T4174.hs new file mode 100644 index 0000000000..784c0baa08 --- /dev/null +++ b/testsuite/tests/indexed-types/should_fail/T4174.hs @@ -0,0 +1,60 @@ +{-# LANGUAGE TypeFamilies, TypeOperators, EmptyDataDecls #-} + +module T4174 where + +data True +data False + +data Minor1 + +data GHC6'8 m +data GHC6'10 m + +type family a :<=: b :: {-Bool-}* +type instance GHC6'10 m1 :<=: GHC6'8 m2 = False + +type a :>=: b = b :<=: a + +data Way ghcVersion tablesNextToCode profiling threaded + +type family GHCVersion way :: {-GHCVersion-} * +type instance GHCVersion (Way v n p t) = v + +type family Threaded way :: {-Bool-} * +type instance Threaded (Way v n p t) = t + +data Field w s t +data SmStep +data RtsSpinLock + +field :: String -> m (Field w a b) +field = undefined + +type family WayOf (m :: * -> *) :: * + +sync_large_objects :: (Monad m, + (GHCVersion (WayOf m) :>=: GHC6'10 Minor1) ~ True, + Threaded (WayOf m) ~ True) + => m (Field (WayOf m) SmStep RtsSpinLock) +sync_large_objects = field "sync_large_objects" + +testcase :: Monad m => m (Field (Way (GHC6'8 minor) n t p) a b) +testcase = sync_large_objects + +{- Wanted constraints from the occurrence of sync_large_objects + + (WayOf m) ~ (Way (GHC6'8 minor) n t p) + a ~ SmStep + b ~ RtsSpinLock + + Threaded (WayOf m) ~ True + == Threaded (Way (GHC6'8 minor) n t p) ~ True + == p ~ True + + (GHCVersion (WayOf m) :>=: GHC6'10 Minor1) ~ True, + == (GHC6'10 Minor1 :<=: GHCVersion (WayOf m)) ~ True, + == (GHC6'10 Minor1 :<=: GHCVersion (Way (GHC6'8 minor) n t p))) ~ True, + == (GHC6'10 Minor1 :<=: GHC6'8 minor) ~ True + == False ~ True + +-}
\ No newline at end of file |