testsuite: Assert that testsuite ways are known
[ghc.git] / testsuite / tests / typecheck / should_compile / UnlifNewUnify.hs
1 {-# Language CPP #-}
2 {-# Language QuantifiedConstraints #-}
3 {-# Language TypeApplications #-}
4 {-# Language PolyKinds #-}
5 {-# Language TypeOperators #-}
6 {-# Language DataKinds #-}
7 {-# Language TypeFamilies #-}
8 {-# Language TypeSynonymInstances #-}
9 {-# Language FlexibleInstances #-}
10 {-# Language GADTs #-}
11 {-# Language UndecidableInstances #-}
12 {-# Language MultiParamTypeClasses #-}
13 {-# Language FlexibleContexts #-}
14 {-# LANGUAGE UnliftedNewtypes #-}
15
16 module Bug where
17 import Data.Coerce
18 import Data.Kind
19
20 type Cat ob = ob -> ob -> Type
21
22 type Obj = Type
23
24 class
25 Ríki (obj :: Obj) where
26 type (-->) :: obj -> obj -> Type
27
28:: a --> (a::obj)
29
30 data Op a = Op a
31
32 type family UnOp op where UnOp ('Op obj) = obj
33
34 newtype Y :: Cat (Op a) where
35 Y :: (UnOp b --> UnOp a) -> Y a b