diff --git a/testsuite/tests/dependent/should_compile/Dep2.hs b/testsuite/tests/dependent/should_compile/Dep2.hs
index adaf5c3f99e131d9eb9c7c650729b0304270f15e..061ca2412ffafa65ba058cf5fb85fb12bab23a44 100644
--- a/testsuite/tests/dependent/should_compile/Dep2.hs
+++ b/testsuite/tests/dependent/should_compile/Dep2.hs
@@ -1,8 +1,10 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE PolyKinds, GADTs #-}
 
 module Dep2 where
 
-data G (a :: k) where
+import Data.Kind (Type)
+
+type G :: k -> Type
+data G a where
   G1 :: G Int
   G2 :: G Maybe
diff --git a/testsuite/tests/dependent/should_compile/DkNameRes.hs b/testsuite/tests/dependent/should_compile/DkNameRes.hs
index f871c9cf890d861aadd62b1e943ecc919f4db1a9..6922f1ccf4ad2dc7b4cc4c7eea68bb051ec365d8 100644
--- a/testsuite/tests/dependent/should_compile/DkNameRes.hs
+++ b/testsuite/tests/dependent/should_compile/DkNameRes.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE TypeFamilies, DataKinds, PolyKinds #-}
 
 module DkNameRes where
@@ -6,5 +5,6 @@ module DkNameRes where
 import Data.Proxy
 import Data.Kind
 
-type family IfK (e :: Proxy (j :: Bool)) :: Type where
+type IfK :: Proxy (j :: Bool) -> Type
+type family IfK e where
    IfK (_ :: Proxy True) = ()
diff --git a/testsuite/tests/dependent/should_compile/KindEqualities2.hs b/testsuite/tests/dependent/should_compile/KindEqualities2.hs
index c798524434faea1b61f3b7d35c6041f9c2dee69e..4369b6bddd49781cae7a82602a045d1471a95c92 100644
--- a/testsuite/tests/dependent/should_compile/KindEqualities2.hs
+++ b/testsuite/tests/dependent/should_compile/KindEqualities2.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE DataKinds, GADTs, PolyKinds, TypeFamilies, ExplicitForAll,
              TemplateHaskell, UndecidableInstances, ScopedTypeVariables #-}
 
@@ -16,7 +15,8 @@ data Ty :: Kind -> Type where
   TApp :: Ty (Arr k1 k2) -> Ty k1 -> Ty k2
 
 
-data TyRep (k :: Kind) (t :: Ty k) where
+type TyRep :: forall (k :: Kind) -> Ty k -> Type
+data TyRep k t where
   TyInt :: TyRep Star TInt
   TyBool :: TyRep Star TBool
   TyMaybe :: TyRep (Arr Star Star) TMaybe
diff --git a/testsuite/tests/dependent/should_compile/RaeBlogPost.hs b/testsuite/tests/dependent/should_compile/RaeBlogPost.hs
index d0961dd3845aa40b94cf6197c2e11cba21729357..420600d717c43c4c6e2976e4066e30ebadaab6f6 100644
--- a/testsuite/tests/dependent/should_compile/RaeBlogPost.hs
+++ b/testsuite/tests/dependent/should_compile/RaeBlogPost.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE DataKinds, PolyKinds, GADTs, TypeOperators, TypeFamilies #-}
 {-# OPTIONS_GHC -fwarn-unticked-promoted-constructors #-}
 
@@ -23,7 +22,8 @@ data E :: D c -> Type
 -- note that E :: forall (a :: A) (b :: B a) (c :: C b). D c -> Type
 
 -- a kind-indexed GADT
-data TypeRep (a :: k) where
+type TypeRep :: k -> Type
+data TypeRep a where
   TInt   :: TypeRep Int
   TMaybe :: TypeRep Maybe
   TApp   :: TypeRep a -> TypeRep b -> TypeRep (a b)
@@ -37,13 +37,15 @@ type family a + b where
   'Zero     + b = b
   ('Succ a) + b = 'Succ (a + b)
 
-data Vec :: Type -> Nat -> Type where
+type Vec :: Type -> Nat -> Type
+data Vec a n where
   Nil  :: Vec a 'Zero
   (:>) :: a -> Vec a n -> Vec a ('Succ n)
 infixr 5 :>
 
 -- promoted GADT, and using + as a "kind family":
-type family (x :: Vec a n) ++ (y :: Vec a m) :: Vec a (n + m) where
+type (++) :: Vec a n -> Vec a m -> Vec a (n + m)
+type family x ++ y where
   'Nil      ++ y = y
   (h ':> t) ++ y = h ':> (t ++ y)
 
diff --git a/testsuite/tests/dependent/should_compile/RaeJobTalk.hs b/testsuite/tests/dependent/should_compile/RaeJobTalk.hs
index 008ab860e9caa1235342be9017149fe772d5d989..cbaac9dcc4441890e9754ccfd9a80d389cac5217 100644
--- a/testsuite/tests/dependent/should_compile/RaeJobTalk.hs
+++ b/testsuite/tests/dependent/should_compile/RaeJobTalk.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {- Copyright (c) 2016 Richard Eisenberg
  -}
 
@@ -27,7 +26,8 @@ import qualified GHC.Exts as Exts
 -- Utilities
 
 -- Heterogeneous propositional equality
-data (a :: k1) :~~: (b :: k2) where
+type (:~~:) :: k1 -> k2 -> Type
+data a :~~: b where
   HRefl :: a :~~: a
 
 -- Type-level inequality
@@ -76,7 +76,8 @@ Nil %:++ x = x
 -- Type-indexed type representations
 -- Based on "A reflection on types"
 
-data TyCon (a :: k) where
+type TyCon :: k -> Type
+data TyCon a where
   Int :: TyCon Int
   Bool :: TyCon Bool
   Char :: TyCon Char
@@ -110,7 +111,8 @@ type family Primitive (a :: k) :: Constraint where
   Primitive (_ _) = ('False ~ 'True)
   Primitive _     = (() :: Constraint)
 
-data TypeRep (a :: k) where
+type TypeRep :: k -> Type
+data TypeRep a where
   TyCon :: forall k (a :: k). (Primitive a, Typeable k) => TyCon a -> TypeRep a
   TyApp :: TypeRep a -> TypeRep b -> TypeRep (a b)
 
diff --git a/testsuite/tests/dependent/should_compile/T11711.hs b/testsuite/tests/dependent/should_compile/T11711.hs
index bcbb7cec8303910191f1ac86163d54dadaa5ce89..24111e22536c56f2a3e4b9a891dbf62df3b27356 100644
--- a/testsuite/tests/dependent/should_compile/T11711.hs
+++ b/testsuite/tests/dependent/should_compile/T11711.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE PatternSynonyms #-}
 {-# LANGUAGE GADTs #-}
 {-# LANGUAGE RankNTypes #-}
@@ -11,19 +10,22 @@
 
 module T11711 where
 
-import Data.Kind (Type)
+import Data.Kind (Type, Constraint)
 
-data (:~~:) (a :: k1) (b :: k2) where
+type (:~~:) :: k1 -> k2 -> Type
+data (:~~:) a b where
     HRefl :: a :~~: a
 
-data TypeRep (a :: k) where
+type TypeRep :: k -> Type
+data TypeRep a where
     TrTyCon :: String -> TypeRep k -> TypeRep (a :: k)
     TrApp   :: forall k1 k2 (a :: k1 -> k2) (b :: k1).
                TypeRep (a :: k1 -> k2)
             -> TypeRep (b :: k1)
             -> TypeRep (a b)
 
-class Typeable (a :: k) where
+type Typeable :: k -> Constraint
+class Typeable a where
     typeRep :: TypeRep a
 
 data SomeTypeRep where
diff --git a/testsuite/tests/dependent/should_compile/T12442.hs b/testsuite/tests/dependent/should_compile/T12442.hs
index fa0096b4e4247ac10f00a75e09c67c4b4cca8089..f6203de8544f57778e087903ebc60ceadd62272a 100644
--- a/testsuite/tests/dependent/should_compile/T12442.hs
+++ b/testsuite/tests/dependent/should_compile/T12442.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 -- Based on https://github.com/idris-lang/Idris-dev/blob/v0.9.10/libs/effects/Effects.idr
 
 {-# LANGUAGE DataKinds, PolyKinds, ScopedTypeVariables, TypeOperators,
@@ -34,9 +33,9 @@ data EffElem :: (Type ~> Type ~> Type ~> Type) -> Type -> [EFFECT] -> Type where
 data instance Sing (elem :: EffElem x a xs) where
   SHere :: Sing Here
 
-type family UpdateResTy (b :: Type) (t :: Type)
-                        (xs :: [EFFECT]) (elem :: EffElem e a xs)
-                        (thing :: e @@ a @@ b @@ t) :: [EFFECT] where
+type UpdateResTy :: forall e a. forall b t xs ->
+                    EffElem e a xs -> e @@ a @@ b @@ t -> [EFFECT]
+type family UpdateResTy b t xs elem thing where
   UpdateResTy b _ (MkEff a e ': xs) Here n = MkEff b e ': xs
 
 data EffM :: (Type ~> Type) -> [EFFECT] -> [EFFECT] -> Type -> Type
diff --git a/testsuite/tests/dependent/should_compile/T14066a.hs b/testsuite/tests/dependent/should_compile/T14066a.hs
index 23574a202901c95088d3ba01dd816a45c69047fb..47ef16ed4f4714cb8763945a8b3a31b00927e508 100644
--- a/testsuite/tests/dependent/should_compile/T14066a.hs
+++ b/testsuite/tests/dependent/should_compile/T14066a.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE TypeFamilies, DataKinds, PolyKinds, ExplicitForAll, GADTs,
              UndecidableInstances, RankNTypes, ScopedTypeVariables #-}
 
@@ -32,7 +31,8 @@ type family G x a where
 
 -- this last example just checks that GADT pattern-matching on kinds still works.
 -- nothing new here.
-data T (a :: k) where
+type T :: k -> Type
+data T a where
   MkT :: T (a :: Type -> Type)
 
 data S (a :: Type -> Type) where
@@ -54,9 +54,12 @@ type P k a = Proxy (a :: k)
 -- Naively, we don't know about c's kind early enough.
 
 data SameKind :: forall k. k -> k -> Type
-type family IfK (e :: Proxy (j :: Bool)) (f :: m) (g :: n) :: If j m n where
+
+type IfK :: Proxy (j :: Bool) -> m -> n -> If j m n
+type family IfK e f g where
    IfK (_ :: Proxy True)  f _ = f
    IfK (_ :: Proxy False) _ g = g
+
 x :: forall c. (forall a b (d :: a). SameKind (IfK c b d) d) -> (Proxy (c :: Proxy True))
 x _ = Proxy
 
diff --git a/testsuite/tests/dependent/should_compile/T14066a.stderr b/testsuite/tests/dependent/should_compile/T14066a.stderr
index f46e985a4ce15c5c3a54ecd1fb9aaaabcd7bda30..2eda96aaf56f9f4e2533c1d9bf93bae4f0906635 100644
--- a/testsuite/tests/dependent/should_compile/T14066a.stderr
+++ b/testsuite/tests/dependent/should_compile/T14066a.stderr
@@ -1,5 +1,5 @@
 
-T14066a.hs:14:3: warning: [GHC-28129] [-Winaccessible-code (in -Wdefault)]
+T14066a.hs:13:3: warning: [GHC-28129] [-Winaccessible-code (in -Wdefault)]
     Type family instance equation is overlapped:
       forall {c} {x :: c} {d} {y :: d}.
-        Bar x y = Bool -- Defined at T14066a.hs:14:3
+        Bar x y = Bool -- Defined at T14066a.hs:13:3
diff --git a/testsuite/tests/dependent/should_compile/T14556.hs b/testsuite/tests/dependent/should_compile/T14556.hs
index dd51b05726fec637b0c31e3e702967add504e260..d4e8cfaabb46217ba6a406dec38ec8f8d6cc3c34 100644
--- a/testsuite/tests/dependent/should_compile/T14556.hs
+++ b/testsuite/tests/dependent/should_compile/T14556.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# Language UndecidableInstances, DataKinds, TypeOperators, PolyKinds,
              TypeFamilies, GADTs, LambdaCase, ScopedTypeVariables #-}
 
@@ -10,8 +9,8 @@ import Data.Proxy
 data Fn a b where
   IdSym :: Fn Type Type
 
-type family
-  (@@) (f::Fn k k') (a::k)::k' where
+type (@@) :: Fn k k' -> k -> k'
+type family f @@ a where
   IdSym @@ a = a
 
 data KIND = X | FNARR KIND KIND
@@ -20,19 +19,20 @@ data TY :: KIND -> Type where
   ID    :: TY (FNARR X X)
   FNAPP :: TY (FNARR k k') -> TY k -> TY k'
 
-data TyRep (kind::KIND) :: TY kind -> Type where
+type TyRep :: forall (kind::KIND) -> TY kind -> Type
+data TyRep k t where
   TID    :: TyRep (FNARR X X)  ID
   TFnApp :: TyRep (FNARR k k') f
          -> TyRep k            a
          -> TyRep k'           (FNAPP f a)
 
-type family
-  IK (kind::KIND) :: Type where
+type IK :: KIND -> Type
+type family IK k where
   IK X            = Type
   IK (FNARR k k') = Fn (IK k) (IK k')
 
-type family
-  IT (ty::TY kind) :: IK kind where
+type IT :: TY kind -> IK kind
+type family IT t where
   IT ID          = IdSym
   IT (FNAPP f x) = IT f @@ IT x
 
diff --git a/testsuite/tests/dependent/should_compile/T14749.hs b/testsuite/tests/dependent/should_compile/T14749.hs
index 5e9bfb0ea4ae5403d819e1726925737241ad9935..352685666198669813070016ff83c909b68ba925 100644
--- a/testsuite/tests/dependent/should_compile/T14749.hs
+++ b/testsuite/tests/dependent/should_compile/T14749.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE GADTs, TypeOperators, DataKinds, TypeFamilies, PolyKinds, TypeFamilyDependencies #-}
 
 module T14749 where
@@ -15,11 +14,13 @@ type family IK (k :: KIND) = (res :: Type) where
   IK STAR   = Type
   IK (a:>b) = IK a -> IK b
 
-type family I (t :: Ty k) = (res :: IK k)  where
+type I :: Ty k -> IK k
+type family I t = res where
   I TMaybe     = Maybe
   I (TApp f a) = (I f) (I a)
 
-data TyRep (k :: KIND) (t :: Ty k) where
+type TyRep :: forall (k :: KIND) -> Ty k -> Type
+data TyRep k t where
   TyMaybe :: TyRep (STAR:>STAR) TMaybe
   TyApp   :: TyRep (a:>b) f -> TyRep a x -> TyRep b (TApp f x)
 
diff --git a/testsuite/tests/dependent/should_compile/T16326_Compile1.hs b/testsuite/tests/dependent/should_compile/T16326_Compile1.hs
index 857716d489fb91350a6e104aa44842224f4621f3..0efae546fc1be134ad730928c4c04dda56f48c8c 100644
--- a/testsuite/tests/dependent/should_compile/T16326_Compile1.hs
+++ b/testsuite/tests/dependent/should_compile/T16326_Compile1.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE GADTs #-}
 {-# LANGUAGE PolyKinds #-}
@@ -21,14 +20,9 @@ type DComp a
            (x :: a) =
   f (g x)
 
--- Ensure that ElimList has a CUSK, beuas it is
--- is used polymorphically its RHS (c.f. #16344)
-type family ElimList (a :: Type)
-                     (p :: [a] -> Type)
-                     (s :: [a])
-                     (pNil :: p '[])
-                     (pCons :: forall (x :: a) (xs :: [a]) -> p xs -> p (x:xs))
-                  :: p s where
+type ElimList :: forall (a :: Type) (p :: [a] -> Type) (s :: [a]) ->
+  p '[] -> (forall (x :: a) (xs :: [a]) -> p xs -> p (x:xs)) -> p s
+type family ElimList a p s pNil pCons where
   forall a p pNil (pCons :: forall (x :: a) (xs :: [a]) -> p xs -> p (x:xs)).
     ElimList a p '[] pNil pCons =
       pNil
diff --git a/testsuite/tests/dependent/should_compile/TypeLevelVec.hs b/testsuite/tests/dependent/should_compile/TypeLevelVec.hs
index 9f67efa6448290216ecab338d3eac7b82d0582d2..87d38b6cb6cf4dd5b6477f06458aa9d7e6588bd2 100644
--- a/testsuite/tests/dependent/should_compile/TypeLevelVec.hs
+++ b/testsuite/tests/dependent/should_compile/TypeLevelVec.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE DataKinds, PolyKinds, UnicodeSyntax, GADTs, NoImplicitPrelude,
              TypeOperators, TypeFamilies #-}
 {-# OPTIONS_GHC -fno-warn-unticked-promoted-constructors #-}
@@ -21,7 +20,8 @@ data Vec ∷ ℕ → Type → Type where
   (:>) ∷ a → Vec n a → Vec (S n) a
 infixr 8 :>
 
-type family (x ∷ Vec n a) ++ (y ∷ Vec m a) ∷ Vec (n + m) a where
+type (++) ∷ Vec n a → Vec m a → Vec (n + m) a
+type family x ++ y where
   Nil       ++ y = y
   (x :> xs) ++ y = x :> (xs ++ y)
 infixl 5 ++
diff --git a/testsuite/tests/dependent/should_compile/dynamic-paper.hs b/testsuite/tests/dependent/should_compile/dynamic-paper.hs
index eaba011625b6cff8599c4bb0951a3eca4f5a589a..f9678cd46f33d5c76d5060d1d0d30804d71de2b7 100644
--- a/testsuite/tests/dependent/should_compile/dynamic-paper.hs
+++ b/testsuite/tests/dependent/should_compile/dynamic-paper.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {- This is the code extracted from "A reflection on types", by Simon PJ,
 Stephanie Weirich, Richard Eisenberg, and Dimitrios Vytiniotis, 2016. -}
 
@@ -186,7 +185,8 @@ dynFst (Dyn (rpab :: TypeRep pab) (x :: pab))
 eqT :: forall k1 k2 (a :: k1) (b :: k2).
        TypeRep a -> TypeRep b -> Maybe (a :~: b)
 
-data (a :: k1) :~: (b :: k2) where
+type (:~:) :: k1 -> k2 -> Type
+data a :~: b where
   Refl :: forall k (a :: k). a :~: a
 
 castDance :: (Typeable a, Typeable b)  => a -> Maybe b
@@ -236,7 +236,8 @@ data OrderingT a b where
   EQT  :: OrderingT t t
   GTT  :: OrderingT a b
 
-data TypeRep (a :: k) where
+type TypeRep :: k -> Type
+data TypeRep a where
   TrApp    :: TypeRep a -> TypeRep b -> TypeRep (a b)
   TrTyCon  :: TyCon -> TypeRep k -> TypeRep (a :: k)
 
diff --git a/testsuite/tests/dependent/should_compile/mkGADTVars.hs b/testsuite/tests/dependent/should_compile/mkGADTVars.hs
index 13a647b9ce9f919b4c5908f28f7bf9c3a7a65da7..e45588a6041ee7f4889a979901c7acfa3afae9b0 100644
--- a/testsuite/tests/dependent/should_compile/mkGADTVars.hs
+++ b/testsuite/tests/dependent/should_compile/mkGADTVars.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE GADTs, PolyKinds, RankNTypes #-}
 
 module GADTVars where
@@ -6,5 +5,6 @@ module GADTVars where
 import Data.Kind
 import Data.Proxy
 
-data T (k1 :: Type) (k2 :: Type) (a :: k2) (b :: k2) where
+type T :: Type -> forall (k2 :: Type) -> k2 -> k2 -> Type
+data T k1 k2 a b where
   MkT :: T x1 Type (Proxy (y :: x1), z) z
diff --git a/testsuite/tests/dependent/should_fail/T13601.hs b/testsuite/tests/dependent/should_fail/T13601.hs
index 7667201add18c04ac7793ffa8769f61119cf98f5..814b4d1e90aec68fe55a281e04152685170f244d 100644
--- a/testsuite/tests/dependent/should_fail/T13601.hs
+++ b/testsuite/tests/dependent/should_fail/T13601.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE TypeFamilies, DataKinds, PolyKinds #-}
 
 import GHC.Exts
@@ -16,25 +15,32 @@ type family
   -- Rep PtrRepUnlifted = IntRep
   -- Rep PtrRepLifted   = PtrRepLifted
 
+type Eq :: TYPE rep -> Constraint
 class Boolean (Logic a) => Eq (a :: TYPE rep) where
   type Logic (a :: TYPE rep) :: TYPE (Rep rep)
   (==) :: a -> a -> Logic a
 
+type POrd :: TYPE rep -> Constraint
 class Eq a => POrd (a :: TYPE rep) where
   inf :: a -> a -> a
 
+type MinBound :: TYPE rep -> Constraint
 class POrd a => MinBound (a :: TYPE rep) where
   minBound :: () -> a
 
+type Lattice :: TYPE rep -> Constraint
 class POrd a => Lattice (a :: TYPE rep) where
   sup :: a -> a -> a
 
+type Bounded :: TYPE rep -> Constraint
 class (Lattice a, MinBound a) => Bounded (a :: TYPE rep) where
   maxBound :: () -> a
 
+type Complemented :: TYPE rep -> Constraint
 class Bounded a => Complemented (a :: TYPE rep) where
   not :: a -> a
 
+type Heyting :: TYPE rep -> Constraint
 class Bounded a => Heyting (a :: TYPE rep) where
   infixr 3 ==>
   (==>) :: a -> a -> a
diff --git a/testsuite/tests/dependent/should_fail/T13780c.hs b/testsuite/tests/dependent/should_fail/T13780c.hs
index c26f9ddbe9976b63ae3da47e40fc32b6dda8e9bc..dfa52b62e758121a1b05950fa88cedda22880bf5 100644
--- a/testsuite/tests/dependent/should_fail/T13780c.hs
+++ b/testsuite/tests/dependent/should_fail/T13780c.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE GADTs #-}
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE DataKinds, PolyKinds #-}
@@ -7,7 +6,7 @@ module T13780c where
 import Data.Kind
 import T13780b
 
-type family ElimBool (p :: Bool -> Type) (b :: Bool) (s :: Sing b)
-                     (pFalse :: p False) (pTrue :: p True) :: p b where
+type ElimBool :: (Bool -> Type) -> forall (b :: Bool) -> Sing b -> p False -> p True -> p b
+type family ElimBool p b s pFalse pTrue where
   ElimBool _ _ SFalse pFalse _ = pFalse
   ElimBool _ _ STrue  _ pTrue  = pTrue
diff --git a/testsuite/tests/dependent/should_fail/T13780c.stderr b/testsuite/tests/dependent/should_fail/T13780c.stderr
index 51291ba9ae83de15890026c9a6dcc6c6d7cebf16..24c5157f8faa5adee7d361fd74026b057108b7cf 100644
--- a/testsuite/tests/dependent/should_fail/T13780c.stderr
+++ b/testsuite/tests/dependent/should_fail/T13780c.stderr
@@ -1,13 +1,13 @@
 [1 of 2] Compiling T13780b          ( T13780b.hs, T13780b.o )
 [2 of 2] Compiling T13780c          ( T13780c.hs, T13780c.o )
 
-T13780c.hs:12:16: error: [GHC-64578]
+T13780c.hs:11:16: error: [GHC-64578]
     • Data constructor ‘SFalse’ cannot be used here
         (it comes from a data family instance)
     • In the third argument of ‘ElimBool’, namely ‘SFalse’
       In the type family declaration for ‘ElimBool’
 
-T13780c.hs:13:16: error: [GHC-64578]
+T13780c.hs:12:16: error: [GHC-64578]
     • Data constructor ‘STrue’ cannot be used here
         (it comes from a data family instance)
     • In the third argument of ‘ElimBool’, namely ‘STrue’
diff --git a/testsuite/tests/dependent/should_fail/T15380.hs b/testsuite/tests/dependent/should_fail/T15380.hs
index ac81e5532b259cda5de6b78f4859b50913c02bcd..6dbe330eda52709bb4d6abc4d154719ac4c82f67 100644
--- a/testsuite/tests/dependent/should_fail/T15380.hs
+++ b/testsuite/tests/dependent/should_fail/T15380.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE PolyKinds #-}
 {-# LANGUAGE DataKinds #-}
@@ -14,7 +13,8 @@ class Generic a where
 class PGeneric a where
   type To a (x :: Rep a) :: a
 
-type family MDefault (x :: a) :: a where
+type MDefault :: a -> a
+type family MDefault x where
   MDefault x = To (M x)
 
 class C a where
diff --git a/testsuite/tests/ghci/scripts/T7939.hs b/testsuite/tests/ghci/scripts/T7939.hs
index 493c6538d13805a639b309b32cbfd70208e72dd9..1f12bedf92f0cf3d5de205063f2721ce66fd2372 100644
--- a/testsuite/tests/ghci/scripts/T7939.hs
+++ b/testsuite/tests/ghci/scripts/T7939.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE TypeFamilies, PolyKinds, DataKinds, TypeOperators #-}
 module T7939 where
 import Data.Kind (Type)
@@ -23,6 +22,7 @@ type family K a where
   K '[] = Nothing
   K (h ': t) = Just h
 
-type family L (a :: k) (b :: Type) :: k where
+type L :: k -> Type -> k
+type family L a b where
   L Int Int = Bool
   L Maybe Bool = IO
diff --git a/testsuite/tests/ghci/scripts/T7939.stdout b/testsuite/tests/ghci/scripts/T7939.stdout
index 83445adc242ea998f15bcc1617b50bc531c6dda1..54a633db4fc1b018239c110c5d4e42015e786c1d 100644
--- a/testsuite/tests/ghci/scripts/T7939.stdout
+++ b/testsuite/tests/ghci/scripts/T7939.stdout
@@ -2,32 +2,32 @@ type Foo :: forall {k}. k -> Constraint
 class Foo a where
   type Bar :: forall {k}. k -> * -> *
   type family Bar a b
-  	-- Defined at T7939.hs:7:4
+  	-- Defined at T7939.hs:6:4
 Bar :: k -> * -> *
 type F :: * -> *
 type family F a
-  	-- Defined at T7939.hs:9:1
-type instance F Int = Bool 	-- Defined at T7939.hs:10:15
+  	-- Defined at T7939.hs:8:1
+type instance F Int = Bool 	-- Defined at T7939.hs:9:15
 F :: * -> *
 type G :: * -> *
 type family G a where
     G Int = Bool
-  	-- Defined at T7939.hs:12:1
+  	-- Defined at T7939.hs:11:1
 G :: * -> *
 type H :: Bool -> Bool
 type family H a where
     H False = True
-  	-- Defined at T7939.hs:15:1
+  	-- Defined at T7939.hs:14:1
 H :: Bool -> Bool
 type J :: forall {a}. [a] -> Bool
 type family J a1 where
     J '[] = False
   forall a (h :: a) (t :: [a]). J (h : t) = True
-  	-- Defined at T7939.hs:18:1
+  	-- Defined at T7939.hs:17:1
 J :: [a] -> Bool
 type K :: forall {a}. [a] -> Maybe a
 type family K a1 where
     K '[] = Nothing
   forall a (h :: a) (t :: [a]). K (h : t) = Just h
-  	-- Defined at T7939.hs:22:1
+  	-- Defined at T7939.hs:21:1
 K :: [a] -> Maybe a
diff --git a/testsuite/tests/indexed-types/should_compile/T14554.hs b/testsuite/tests/indexed-types/should_compile/T14554.hs
index e101fbdc74910a2f57b4dc5ee6bc0b4afd07c3de..2ff9b966ee30e4977d67930a13d7a59bd6c05e7c 100644
--- a/testsuite/tests/indexed-types/should_compile/T14554.hs
+++ b/testsuite/tests/indexed-types/should_compile/T14554.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# Language UndecidableInstances, DataKinds, TypeOperators, TypeFamilies,
              PolyKinds, GADTs, LambdaCase, ScopedTypeVariables #-}
 
@@ -17,17 +16,20 @@ data TY :: KIND -> Type where
   ID    :: TY (FNARR X X)
   FNAPP :: TY (FNARR k k') -> TY k -> TY k'
 
-data TyRep (kind::KIND) :: TY kind -> Type where
+type TyRep :: forall (kind::KIND) -> TY kind -> Type
+data TyRep k t where
   TID    :: TyRep (FNARR X X)  ID
   TFnApp :: TyRep (FNARR k k') f
          -> TyRep k            a
          -> TyRep k'           (FNAPP f a)
 
-type family IK (kind::KIND) :: Type where
+type IK :: KIND -> Type
+type family IK k where
   IK X            = Type
   IK (FNARR k k') = IK k ~> IK k'
 
-type family IT (ty::TY kind) :: IK kind
+type IT :: TY kind -> IK kind
+type family IT t
 
 zero :: TyRep X a -> IT a
 zero x = case x of
diff --git a/testsuite/tests/indexed-types/should_compile/T15122.hs b/testsuite/tests/indexed-types/should_compile/T15122.hs
index ac10b530a045f186123940c87820405700e18b36..fdc0d77f61b2b27e7744e723c44c95d70e5712c8 100644
--- a/testsuite/tests/indexed-types/should_compile/T15122.hs
+++ b/testsuite/tests/indexed-types/should_compile/T15122.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE GADTs #-}
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE TypeOperators #-}
@@ -9,7 +8,8 @@ module T15122 where
 import Data.Kind
 import Data.Proxy
 
-data IsStar (a :: k) where
+type IsStar :: k -> Type
+data IsStar a where
   IsStar :: IsStar (a :: Type)
 
 type family F (a :: k) :: k
diff --git a/testsuite/tests/indexed-types/should_compile/T15352.hs b/testsuite/tests/indexed-types/should_compile/T15352.hs
index 0f8e5614cfe106f7d6c02d122273fc4c3c63af62..7e7a80222fb2d401203251b10fa61fcb57a77858 100644
--- a/testsuite/tests/indexed-types/should_compile/T15352.hs
+++ b/testsuite/tests/indexed-types/should_compile/T15352.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE PolyKinds #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE TypeFamilies #-}
@@ -16,18 +15,16 @@ type Hom k = k -> k -> Type
 
 type family Ob (p :: Hom k) :: k -> Constraint
 
+type Functor' :: forall i j.
+  (i -> Constraint) -> Hom i -> Hom i ->
+  (j -> Constraint) -> Hom j -> Hom j ->
+  (i -> j) -> Constraint
 class ( obP ~ Ob p
       , opP ~ Dom p
       , obQ ~ Ob q
       , opQ ~ Dom q
       , p ~ Dom f
       , q ~ Cod f
-      ) => Functor' (obP :: i -> Constraint)
-                    (opP :: Hom i)
-                    (p :: Hom i)
-                    (obQ :: j -> Constraint)
-                    (opQ :: Hom j)
-                    (q :: Hom j)
-                    (f :: i -> j) where
+      ) => Functor' @i @j obP opP p obQ opQ q f where
   type Dom f :: Hom i
   type Cod f :: Hom j
diff --git a/testsuite/tests/indexed-types/should_compile/T16356_Compile1.hs b/testsuite/tests/indexed-types/should_compile/T16356_Compile1.hs
index 6622d513d7f846d1e98847966f80b606c2a50bd5..3a6c954212a8efac9170b568bf7c62f92d7933ef 100644
--- a/testsuite/tests/indexed-types/should_compile/T16356_Compile1.hs
+++ b/testsuite/tests/indexed-types/should_compile/T16356_Compile1.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE PolyKinds #-}
 {-# LANGUAGE TypeApplications #-}
@@ -9,7 +8,8 @@ import Data.Kind (Type)
 
 data B (a :: k)
 
-type family FClosed :: k -> Type where
+type FClosed :: k -> Type
+type family FClosed @k where
   FClosed @k = B @k
 
 type family FOpen :: k -> Type
diff --git a/testsuite/tests/indexed-types/should_compile/T17008b.hs b/testsuite/tests/indexed-types/should_compile/T17008b.hs
index 845eb83294100eebc958ca75617baeae6a45fefe..e5cb4b11c5ba49b4fb60c2231ece12fe73da5cb4 100644
--- a/testsuite/tests/indexed-types/should_compile/T17008b.hs
+++ b/testsuite/tests/indexed-types/should_compile/T17008b.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE TypeApplications #-}
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE PolyKinds #-}
@@ -10,19 +9,27 @@ import Data.Kind
 type family ConstType1 (a :: Type) :: Type where
   ConstType1 _ = Type
 
-type family F1 (x :: ConstType1 a) :: Type where
+type F1 :: ConstType1 a -> Type
+type family F1 x where
   F1 @a (x :: ConstType1 a) = a
-type family F2 (x :: ConstType1 a) :: ConstType1 a where
+
+type F2 :: ConstType1 a -> ConstType1 a
+type family F2 x where
   F2 @a (x :: ConstType1 a) = x :: ConstType1 a
+
 type F3 (x :: ConstType1 a) = a
 type F4 (x :: ConstType1 a) = x :: ConstType1 a
 
 type ConstType2 (a :: Type) = Type
 
-type family G1 (x :: ConstType2 a) :: Type where
+type G1 :: ConstType2 a -> Type
+type family G1 x where
   G1 @a (x :: ConstType2 a) = a
-type family G2 (x :: ConstType2 a) :: ConstType2 a where
+
+type G2 :: ConstType2 a -> Type
+type family G2 x where
   G2 @a (x :: ConstType2 a) = x :: ConstType1 a
+
 type G3 (x :: ConstType2 a) = a
 type G4 (x :: ConstType2 a) = x :: ConstType2 a
 
diff --git a/testsuite/tests/indexed-types/should_fail/ClosedFam3.hs b/testsuite/tests/indexed-types/should_fail/ClosedFam3.hs
index 5d0366446d0a0ef01aeeed00cbf64439620f7763..3dd140b615b37a8261356d9cec7cc74be2203c99 100644
--- a/testsuite/tests/indexed-types/should_fail/ClosedFam3.hs
+++ b/testsuite/tests/indexed-types/should_fail/ClosedFam3.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE TypeFamilies #-}
 
 module ClosedFam3 where
diff --git a/testsuite/tests/indexed-types/should_fail/ClosedFam3.hs-boot b/testsuite/tests/indexed-types/should_fail/ClosedFam3.hs-boot
index 7b72a0276a99ccaf1e1ad6cb09c37c080b0fca30..705114e64ff0dffda1083c3017ba761cfa277557 100644
--- a/testsuite/tests/indexed-types/should_fail/ClosedFam3.hs-boot
+++ b/testsuite/tests/indexed-types/should_fail/ClosedFam3.hs-boot
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE TypeFamilies, PolyKinds #-}
 
 module ClosedFam3 where
@@ -12,5 +11,6 @@ type family Bar a where
   Bar Int = Bool
   Bar Double = Char
 
-type family Baz (a :: k) :: Type where
+type Baz :: k -> Type
+type family Baz a where
   Baz Int = Bool
diff --git a/testsuite/tests/indexed-types/should_fail/ClosedFam3.stderr b/testsuite/tests/indexed-types/should_fail/ClosedFam3.stderr
index f02c4d94bc0357777b4be494a977660fbc31bb9e..fc297a1d0c7ea8777ed579b63ca3483068c2db3e 100644
--- a/testsuite/tests/indexed-types/should_fail/ClosedFam3.stderr
+++ b/testsuite/tests/indexed-types/should_fail/ClosedFam3.stderr
@@ -1,5 +1,5 @@
 
-ClosedFam3.hs-boot:8:1: error: [GHC-15843]
+ClosedFam3.hs-boot:7:1: error: [GHC-15843]
     Type constructor ‘Foo’ has conflicting definitions in the module
     and its hs-boot file.
     Main module: type Foo :: * -> *
@@ -12,7 +12,7 @@ ClosedFam3.hs-boot:8:1: error: [GHC-15843]
     Type family equations do not match:
       The number of equations differs.
 
-ClosedFam3.hs-boot:11:1: error: [GHC-15843]
+ClosedFam3.hs-boot:10:1: error: [GHC-15843]
     Type constructor ‘Bar’ has conflicting definitions in the module
     and its hs-boot file.
     Main module: type Bar :: * -> *
diff --git a/testsuite/tests/indexed-types/should_fail/T14246.hs b/testsuite/tests/indexed-types/should_fail/T14246.hs
index 71e59f8c71d180ba27a681ae92be90d787674c64..5e3c56c3ddd428705e93a628d1ee37959887e931 100644
--- a/testsuite/tests/indexed-types/should_fail/T14246.hs
+++ b/testsuite/tests/indexed-types/should_fail/T14246.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE RankNTypes, GADTs, TypeOperators, PolyKinds, DataKinds, TypeFamilies, AllowAmbiguousTypes, UndecidableInstances #-}
 
 module T14246 where
@@ -7,7 +6,8 @@ import Data.Kind
 
 data Nat = Z | S Nat
 
-data Vect :: Nat -> Type -> Type where
+type Vect :: Nat -> Type -> Type
+data Vect n a where
   Nil  :: Vect Z a
   Cons :: a -> Vect n a -> Vect (S n) a
 
@@ -15,10 +15,12 @@ data Label a = Label a
 
 data L
 
-type family KLN (n :: k) :: Nat where
+type KLN :: k -> Nat
+type family KLN n where
     KLN (f :: v -> k) = S (KLN (forall t. f t))
     KLN (f :: Type) = Z
 
-type family Reveal (n :: k) (l :: Vect (KLN n) L) :: Type where
+type Reveal :: forall k. forall (n :: k) -> Vect (KLN n) L -> Type
+type family Reveal n l where
     Reveal (f :: v -> k) (Cons (Label (t :: v)) l) = Reveal (f t) l
     Reveal (a :: Type) Nil = a
diff --git a/testsuite/tests/indexed-types/should_fail/T14246.stderr b/testsuite/tests/indexed-types/should_fail/T14246.stderr
index 91aebe9dc5086d7a9b58d9c1cda864990247e5df..7ab738a56ea06e76e0cf79726f07ab489d95ce57 100644
--- a/testsuite/tests/indexed-types/should_fail/T14246.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T14246.stderr
@@ -1,10 +1,10 @@
 
-T14246.hs:19:5: error: [GHC-91510]
+T14246.hs:20:5: error: [GHC-91510]
     • Illegal polymorphic type: forall (t :: v). f t
     • In the equations for closed type family ‘KLN’
       In the type family declaration for ‘KLN’
 
-T14246.hs:23:27: error: [GHC-83865]
+T14246.hs:25:27: error: [GHC-83865]
     • Couldn't match kind ‘*’ with ‘L’
       Expected kind ‘Vect (KLN f) L’,
         but ‘Cons (Label (t :: v)) l’ has kind ‘Vect (S (KLN (f t))) (*)’
@@ -12,7 +12,7 @@ T14246.hs:23:27: error: [GHC-83865]
         ‘(Cons (Label (t :: v)) l)’
       In the type family declaration for ‘Reveal’
 
-T14246.hs:23:67: error: [GHC-83865]
+T14246.hs:25:67: error: [GHC-83865]
     • Couldn't match kind ‘*’ with ‘L’
       Expected kind ‘Vect (KLN (f t)) L’,
         but ‘l’ has kind ‘Vect (KLN (f t)) (*)’
@@ -20,7 +20,7 @@ T14246.hs:23:67: error: [GHC-83865]
       In the type ‘Reveal (f t) l’
       In the type family declaration for ‘Reveal’
 
-T14246.hs:24:24: error: [GHC-83865]
+T14246.hs:26:24: error: [GHC-83865]
     • Couldn't match kind ‘Z’ with ‘KLN a’
       Expected kind ‘Vect (KLN a) L’, but ‘Nil’ has kind ‘Vect Z L’
     • In the second argument of ‘Reveal’, namely ‘Nil’
diff --git a/testsuite/tests/parser/should_compile/DumpParsedAst.hs b/testsuite/tests/parser/should_compile/DumpParsedAst.hs
index cd7c7c53e93ff9fba22a1ef6274ce5b967abd75e..faa5b97684fabc9384cb4edbc56cc356f2686d30 100644
--- a/testsuite/tests/parser/should_compile/DumpParsedAst.hs
+++ b/testsuite/tests/parser/should_compile/DumpParsedAst.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE DataKinds, GADTs, PolyKinds, RankNTypes, TypeOperators, TypeFamilies
              , TypeApplications #-}
 
@@ -7,6 +6,7 @@ import Data.Kind
 
 data Peano = Zero | Succ Peano
 
+type Length :: [k] -> Peano
 type family Length (as :: [k]) :: Peano where
   Length (a : as) = Succ (Length as)
   Length '[]      = Zero
@@ -14,6 +14,7 @@ type family Length (as :: [k]) :: Peano where
 -- vis kind app
 data T f (a :: k) = MkT (f a)
 
+type F1 :: k -> (k -> Type) -> Type
 type family F1 (a :: k) (f :: k -> Type) :: Type where
   F1 @Peano a f = T @Peano f a
 
diff --git a/testsuite/tests/parser/should_compile/DumpParsedAst.stderr b/testsuite/tests/parser/should_compile/DumpParsedAst.stderr
index da150a03a62c63aa42560b08edff3d77342ca943..34eefa8fd52485c6174eb2d1f0194ec8f09fda52 100644
--- a/testsuite/tests/parser/should_compile/DumpParsedAst.stderr
+++ b/testsuite/tests/parser/should_compile/DumpParsedAst.stderr
@@ -10,13 +10,13 @@
      { DumpParsedAst.hs:1:1 }
      (UnchangedAnchor))
     (AnnsModule
-     [(AddEpAnn AnnModule (EpaSpan { DumpParsedAst.hs:5:1-6 }))
-     ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:5:22-26 }))]
+     [(AddEpAnn AnnModule (EpaSpan { DumpParsedAst.hs:4:1-6 }))
+     ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:4:22-26 }))]
      []
      (Just
       ((,)
-       { DumpParsedAst.hs:25:1 }
-       { DumpParsedAst.hs:24:17-23 })))
+       { DumpParsedAst.hs:26:1 }
+       { DumpParsedAst.hs:25:17-23 })))
     (EpaCommentsBalanced
      []
      []))
@@ -26,19 +26,19 @@
    (Nothing))
   (Just
    (L
-    (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:5:8-20 })
+    (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:4:8-20 })
     {ModuleName: DumpParsedAst}))
   (Nothing)
   [(L
-    (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:6:1-16 })
+    (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:5:1-16 })
     (ImportDecl
      (XImportDeclPass
       (EpAnn
        (Anchor
-        { DumpParsedAst.hs:6:1-6 }
+        { DumpParsedAst.hs:5:1-6 }
         (UnchangedAnchor))
        (EpAnnImportDecl
-        (EpaSpan { DumpParsedAst.hs:6:1-6 })
+        (EpaSpan { DumpParsedAst.hs:5:1-6 })
         (Nothing)
         (Nothing)
         (Nothing)
@@ -49,7 +49,7 @@
       (NoSourceText)
       (False))
      (L
-      (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:6:8-16 })
+      (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:5:8-16 })
       {ModuleName: Data.Kind})
      (NoRawPkgQual)
      (NotBoot)
@@ -60,25 +60,25 @@
   [(L
     (SrcSpanAnn (EpAnn
                  (Anchor
-                  { DumpParsedAst.hs:8:1-30 }
+                  { DumpParsedAst.hs:7:1-30 }
                   (UnchangedAnchor))
                  (AnnListItem
                   [])
                  (EpaComments
-                  [])) { DumpParsedAst.hs:8:1-30 })
+                  [])) { DumpParsedAst.hs:7:1-30 })
     (TyClD
      (NoExtField)
      (DataDecl
       (EpAnn
        (Anchor
-        { DumpParsedAst.hs:8:1-30 }
+        { DumpParsedAst.hs:7:1-30 }
         (UnchangedAnchor))
-       [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:8:1-4 }))
-       ,(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:8:12 }))]
+       [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:7:1-4 }))
+       ,(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:7:12 }))]
        (EpaComments
         []))
       (L
-       (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:6-10 })
+       (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:7:6-10 })
        (Unqual
         {OccName: Peano}))
       (HsQTvs
@@ -95,23 +95,23 @@
         [(L
           (SrcSpanAnn (EpAnn
                        (Anchor
-                        { DumpParsedAst.hs:8:14-17 }
+                        { DumpParsedAst.hs:7:14-17 }
                         (UnchangedAnchor))
                        (AnnListItem
                         [(AddVbarAnn
-                          (EpaSpan { DumpParsedAst.hs:8:19 }))])
+                          (EpaSpan { DumpParsedAst.hs:7:19 }))])
                        (EpaComments
-                        [])) { DumpParsedAst.hs:8:14-17 })
+                        [])) { DumpParsedAst.hs:7:14-17 })
           (ConDeclH98
            (EpAnn
             (Anchor
-             { DumpParsedAst.hs:8:14-17 }
+             { DumpParsedAst.hs:7:14-17 }
              (UnchangedAnchor))
             []
             (EpaComments
              []))
            (L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:14-17 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:7:14-17 })
             (Unqual
              {OccName: Zero}))
            (False)
@@ -122,17 +122,17 @@
             [])
            (Nothing)))
         ,(L
-          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:21-30 })
+          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:7:21-30 })
           (ConDeclH98
            (EpAnn
             (Anchor
-             { DumpParsedAst.hs:8:21-30 }
+             { DumpParsedAst.hs:7:21-30 }
              (UnchangedAnchor))
             []
             (EpaComments
              []))
            (L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:21-24 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:7:21-24 })
             (Unqual
              {OccName: Succ}))
            (False)
@@ -150,22 +150,110 @@
                  (NoTokenLoc)
                  (HsNormalTok))))
               (L
-               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:26-30 })
+               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:7:26-30 })
                (HsTyVar
                 (EpAnn
                  (Anchor
-                  { DumpParsedAst.hs:8:26-30 }
+                  { DumpParsedAst.hs:7:26-30 }
                   (UnchangedAnchor))
                  []
                  (EpaComments
                   []))
                 (NotPromoted)
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:26-30 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:7:26-30 })
                  (Unqual
                   {OccName: Peano})))))])
            (Nothing)))])
        []))))
+  ,(L
+    (SrcSpanAnn (EpAnn
+                 (Anchor
+                  { DumpParsedAst.hs:9:1-27 }
+                  (UnchangedAnchor))
+                 (AnnListItem
+                  [])
+                 (EpaComments
+                  [])) { DumpParsedAst.hs:9:1-27 })
+    (KindSigD
+     (NoExtField)
+     (StandaloneKindSig
+      (EpAnn
+       (Anchor
+        { DumpParsedAst.hs:9:1-27 }
+        (UnchangedAnchor))
+       [(AddEpAnn AnnType (EpaSpan { DumpParsedAst.hs:9:1-4 }))
+       ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:9:13-14 }))]
+       (EpaComments
+        []))
+      (L
+       (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:9:6-11 })
+       (Unqual
+        {OccName: Length}))
+      (L
+       (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:9:16-27 })
+       (HsSig
+        (NoExtField)
+        (HsOuterImplicit
+         (NoExtField))
+        (L
+         (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:9:16-27 })
+         (HsFunTy
+          (EpAnn
+           (Anchor
+            { DumpParsedAst.hs:9:16-18 }
+            (UnchangedAnchor))
+           (NoEpAnns)
+           (EpaComments
+            []))
+          (HsUnrestrictedArrow
+           (L
+            (TokenLoc
+             (EpaSpan { DumpParsedAst.hs:9:20-21 }))
+            (HsNormalTok)))
+          (L
+           (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:9:16-18 })
+           (HsListTy
+            (EpAnn
+             (Anchor
+              { DumpParsedAst.hs:9:16 }
+              (UnchangedAnchor))
+             (AnnParen
+              (AnnParensSquare)
+              (EpaSpan { DumpParsedAst.hs:9:16 })
+              (EpaSpan { DumpParsedAst.hs:9:18 }))
+             (EpaComments
+              []))
+            (L
+             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:9:17 })
+             (HsTyVar
+              (EpAnn
+               (Anchor
+                { DumpParsedAst.hs:9:17 }
+                (UnchangedAnchor))
+               []
+               (EpaComments
+                []))
+              (NotPromoted)
+              (L
+               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:9:17 })
+               (Unqual
+                {OccName: k}))))))
+          (L
+           (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:9:23-27 })
+           (HsTyVar
+            (EpAnn
+             (Anchor
+              { DumpParsedAst.hs:9:23-27 }
+              (UnchangedAnchor))
+             []
+             (EpaComments
+              []))
+            (NotPromoted)
+            (L
+             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:9:23-27 })
+             (Unqual
+              {OccName: Peano})))))))))))
   ,(L
     (SrcSpanAnn (EpAnn
                  (Anchor
@@ -611,12 +699,160 @@
   ,(L
     (SrcSpanAnn (EpAnn
                  (Anchor
-                  { DumpParsedAst.hs:(17,1)-(18,30) }
+                  { DumpParsedAst.hs:17:1-35 }
+                  (UnchangedAnchor))
+                 (AnnListItem
+                  [])
+                 (EpaComments
+                  [])) { DumpParsedAst.hs:17:1-35 })
+    (KindSigD
+     (NoExtField)
+     (StandaloneKindSig
+      (EpAnn
+       (Anchor
+        { DumpParsedAst.hs:17:1-35 }
+        (UnchangedAnchor))
+       [(AddEpAnn AnnType (EpaSpan { DumpParsedAst.hs:17:1-4 }))
+       ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:17:9-10 }))]
+       (EpaComments
+        []))
+      (L
+       (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:6-7 })
+       (Unqual
+        {OccName: F1}))
+      (L
+       (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:12-35 })
+       (HsSig
+        (NoExtField)
+        (HsOuterImplicit
+         (NoExtField))
+        (L
+         (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:12-35 })
+         (HsFunTy
+          (EpAnn
+           (Anchor
+            { DumpParsedAst.hs:17:12 }
+            (UnchangedAnchor))
+           (NoEpAnns)
+           (EpaComments
+            []))
+          (HsUnrestrictedArrow
+           (L
+            (TokenLoc
+             (EpaSpan { DumpParsedAst.hs:17:14-15 }))
+            (HsNormalTok)))
+          (L
+           (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:12 })
+           (HsTyVar
+            (EpAnn
+             (Anchor
+              { DumpParsedAst.hs:17:12 }
+              (UnchangedAnchor))
+             []
+             (EpaComments
+              []))
+            (NotPromoted)
+            (L
+             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:12 })
+             (Unqual
+              {OccName: k}))))
+          (L
+           (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:17-35 })
+           (HsFunTy
+            (EpAnn
+             (Anchor
+              { DumpParsedAst.hs:17:17-27 }
+              (UnchangedAnchor))
+             (NoEpAnns)
+             (EpaComments
+              []))
+            (HsUnrestrictedArrow
+             (L
+              (TokenLoc
+               (EpaSpan { DumpParsedAst.hs:17:29-30 }))
+              (HsNormalTok)))
+            (L
+             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:17-27 })
+             (HsParTy
+              (EpAnn
+               (Anchor
+                { DumpParsedAst.hs:17:17 }
+                (UnchangedAnchor))
+               (AnnParen
+                (AnnParens)
+                (EpaSpan { DumpParsedAst.hs:17:17 })
+                (EpaSpan { DumpParsedAst.hs:17:27 }))
+               (EpaComments
+                []))
+              (L
+               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:18-26 })
+               (HsFunTy
+                (EpAnn
+                 (Anchor
+                  { DumpParsedAst.hs:17:18 }
+                  (UnchangedAnchor))
+                 (NoEpAnns)
+                 (EpaComments
+                  []))
+                (HsUnrestrictedArrow
+                 (L
+                  (TokenLoc
+                   (EpaSpan { DumpParsedAst.hs:17:20-21 }))
+                  (HsNormalTok)))
+                (L
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:18 })
+                 (HsTyVar
+                  (EpAnn
+                   (Anchor
+                    { DumpParsedAst.hs:17:18 }
+                    (UnchangedAnchor))
+                   []
+                   (EpaComments
+                    []))
+                  (NotPromoted)
+                  (L
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:18 })
+                   (Unqual
+                    {OccName: k}))))
+                (L
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:23-26 })
+                 (HsTyVar
+                  (EpAnn
+                   (Anchor
+                    { DumpParsedAst.hs:17:23-26 }
+                    (UnchangedAnchor))
+                   []
+                   (EpaComments
+                    []))
+                  (NotPromoted)
+                  (L
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:23-26 })
+                   (Unqual
+                    {OccName: Type}))))))))
+            (L
+             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:32-35 })
+             (HsTyVar
+              (EpAnn
+               (Anchor
+                { DumpParsedAst.hs:17:32-35 }
+                (UnchangedAnchor))
+               []
+               (EpaComments
+                []))
+              (NotPromoted)
+              (L
+               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:32-35 })
+               (Unqual
+                {OccName: Type})))))))))))))
+  ,(L
+    (SrcSpanAnn (EpAnn
+                 (Anchor
+                  { DumpParsedAst.hs:(18,1)-(19,30) }
                   (UnchangedAnchor))
                  (AnnListItem
                   [])
                  (EpaComments
-                  [])) { DumpParsedAst.hs:(17,1)-(18,30) })
+                  [])) { DumpParsedAst.hs:(18,1)-(19,30) })
     (TyClD
      (NoExtField)
      (FamDecl
@@ -624,28 +860,28 @@
       (FamilyDecl
        (EpAnn
         (Anchor
-         { DumpParsedAst.hs:(17,1)-(18,30) }
+         { DumpParsedAst.hs:(18,1)-(19,30) }
          (UnchangedAnchor))
-        [(AddEpAnn AnnType (EpaSpan { DumpParsedAst.hs:17:1-4 }))
-        ,(AddEpAnn AnnFamily (EpaSpan { DumpParsedAst.hs:17:6-11 }))
-        ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:17:42-43 }))
-        ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:17:50-54 }))]
+        [(AddEpAnn AnnType (EpaSpan { DumpParsedAst.hs:18:1-4 }))
+        ,(AddEpAnn AnnFamily (EpaSpan { DumpParsedAst.hs:18:6-11 }))
+        ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:18:42-43 }))
+        ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:18:50-54 }))]
         (EpaComments
          []))
        (ClosedTypeFamily
         (Just
          [(L
-           (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:3-30 })
+           (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:3-30 })
            (FamEqn
             (EpAnn
              (Anchor
-              { DumpParsedAst.hs:18:3-30 }
+              { DumpParsedAst.hs:19:3-30 }
               (UnchangedAnchor))
-             [(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:18:17 }))]
+             [(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:19:17 }))]
              (EpaComments
               []))
             (L
-             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:3-4 })
+             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:3-4 })
              (Unqual
               {OccName: F1}))
             (HsOuterImplicit
@@ -653,194 +889,194 @@
             [(HsTypeArg
               (L
                (TokenLoc
-                (EpaSpan { DumpParsedAst.hs:18:6 }))
+                (EpaSpan { DumpParsedAst.hs:19:6 }))
                (HsTok))
               (L
-               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:7-11 })
+               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:7-11 })
                (HsTyVar
                 (EpAnn
                  (Anchor
-                  { DumpParsedAst.hs:18:7-11 }
+                  { DumpParsedAst.hs:19:7-11 }
                   (UnchangedAnchor))
                  []
                  (EpaComments
                   []))
                 (NotPromoted)
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:7-11 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:7-11 })
                  (Unqual
                   {OccName: Peano})))))
             ,(HsValArg
               (L
-               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:13 })
+               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:13 })
                (HsTyVar
                 (EpAnn
                  (Anchor
-                  { DumpParsedAst.hs:18:13 }
+                  { DumpParsedAst.hs:19:13 }
                   (UnchangedAnchor))
                  []
                  (EpaComments
                   []))
                 (NotPromoted)
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:13 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:13 })
                  (Unqual
                   {OccName: a})))))
             ,(HsValArg
               (L
-               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:15 })
+               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:15 })
                (HsTyVar
                 (EpAnn
                  (Anchor
-                  { DumpParsedAst.hs:18:15 }
+                  { DumpParsedAst.hs:19:15 }
                   (UnchangedAnchor))
                  []
                  (EpaComments
                   []))
                 (NotPromoted)
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:15 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:15 })
                  (Unqual
                   {OccName: f})))))]
             (Prefix)
             (L
-             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:19-30 })
+             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:19-30 })
              (HsAppTy
               (NoExtField)
               (L
-               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:19-28 })
+               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:19-28 })
                (HsAppTy
                 (NoExtField)
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:19-26 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:19-26 })
                  (HsAppKindTy
                   (NoExtField)
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:19 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:19 })
                    (HsTyVar
                     (EpAnn
                      (Anchor
-                      { DumpParsedAst.hs:18:19 }
+                      { DumpParsedAst.hs:19:19 }
                       (UnchangedAnchor))
                      []
                      (EpaComments
                       []))
                     (NotPromoted)
                     (L
-                     (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:19 })
+                     (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:19 })
                      (Unqual
                       {OccName: T}))))
                   (L
                    (TokenLoc
-                    (EpaSpan { DumpParsedAst.hs:18:21 }))
+                    (EpaSpan { DumpParsedAst.hs:19:21 }))
                    (HsTok))
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:22-26 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:22-26 })
                    (HsTyVar
                     (EpAnn
                      (Anchor
-                      { DumpParsedAst.hs:18:22-26 }
+                      { DumpParsedAst.hs:19:22-26 }
                       (UnchangedAnchor))
                      []
                      (EpaComments
                       []))
                     (NotPromoted)
                     (L
-                     (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:22-26 })
+                     (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:22-26 })
                      (Unqual
                       {OccName: Peano}))))))
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:28 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:28 })
                  (HsTyVar
                   (EpAnn
                    (Anchor
-                    { DumpParsedAst.hs:18:28 }
+                    { DumpParsedAst.hs:19:28 }
                     (UnchangedAnchor))
                    []
                    (EpaComments
                     []))
                   (NotPromoted)
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:28 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:28 })
                    (Unqual
                     {OccName: f}))))))
               (L
-               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:30 })
+               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:30 })
                (HsTyVar
                 (EpAnn
                  (Anchor
-                  { DumpParsedAst.hs:18:30 }
+                  { DumpParsedAst.hs:19:30 }
                   (UnchangedAnchor))
                  []
                  (EpaComments
                   []))
                 (NotPromoted)
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:30 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:19:30 })
                  (Unqual
                   {OccName: a}))))))))]))
        (TopLevel)
        (L
-        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:13-14 })
+        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:13-14 })
         (Unqual
          {OccName: F1}))
        (HsQTvs
         (NoExtField)
         [(L
-          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:16-23 })
+          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:16-23 })
           (KindedTyVar
            (EpAnn
             (Anchor
-             { DumpParsedAst.hs:17:16-23 }
+             { DumpParsedAst.hs:18:16-23 }
              (UnchangedAnchor))
-            [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:17:19-20 }))
-            ,(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:17:16 }))
-            ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:17:23 }))]
+            [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:18:19-20 }))
+            ,(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:18:16 }))
+            ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:18:23 }))]
             (EpaComments
              []))
            (HsBndrRequired)
            (L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:17 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:17 })
             (Unqual
              {OccName: a}))
            (L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:22 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:22 })
             (HsTyVar
              (EpAnn
               (Anchor
-               { DumpParsedAst.hs:17:22 }
+               { DumpParsedAst.hs:18:22 }
                (UnchangedAnchor))
               []
               (EpaComments
                []))
              (NotPromoted)
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:22 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:22 })
               (Unqual
                {OccName: k}))))))
         ,(L
-          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:25-40 })
+          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:25-40 })
           (KindedTyVar
            (EpAnn
             (Anchor
-             { DumpParsedAst.hs:17:25-40 }
+             { DumpParsedAst.hs:18:25-40 }
              (UnchangedAnchor))
-            [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:17:28-29 }))
-            ,(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:17:25 }))
-            ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:17:40 }))]
+            [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:18:28-29 }))
+            ,(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:18:25 }))
+            ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:18:40 }))]
             (EpaComments
              []))
            (HsBndrRequired)
            (L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:26 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:26 })
             (Unqual
              {OccName: f}))
            (L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:31-39 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:31-39 })
             (HsFunTy
              (EpAnn
               (Anchor
-               { DumpParsedAst.hs:17:31 }
+               { DumpParsedAst.hs:18:31 }
                (UnchangedAnchor))
               (NoEpAnns)
               (EpaComments
@@ -848,70 +1084,70 @@
              (HsUnrestrictedArrow
               (L
                (TokenLoc
-                (EpaSpan { DumpParsedAst.hs:17:33-34 }))
+                (EpaSpan { DumpParsedAst.hs:18:33-34 }))
                (HsNormalTok)))
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:31 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:31 })
               (HsTyVar
                (EpAnn
                 (Anchor
-                 { DumpParsedAst.hs:17:31 }
+                 { DumpParsedAst.hs:18:31 }
                  (UnchangedAnchor))
                 []
                 (EpaComments
                  []))
                (NotPromoted)
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:31 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:31 })
                 (Unqual
                  {OccName: k}))))
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:36-39 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:36-39 })
               (HsTyVar
                (EpAnn
                 (Anchor
-                 { DumpParsedAst.hs:17:36-39 }
+                 { DumpParsedAst.hs:18:36-39 }
                  (UnchangedAnchor))
                 []
                 (EpaComments
                  []))
                (NotPromoted)
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:36-39 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:36-39 })
                 (Unqual
                  {OccName: Type}))))))))])
        (Prefix)
        (L
         (SrcSpanAnn
          (EpAnnNotUsed)
-         { DumpParsedAst.hs:17:42-48 })
+         { DumpParsedAst.hs:18:42-48 })
         (KindSig
          (NoExtField)
          (L
-          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:45-48 })
+          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:45-48 })
           (HsTyVar
            (EpAnn
             (Anchor
-             { DumpParsedAst.hs:17:45-48 }
+             { DumpParsedAst.hs:18:45-48 }
              (UnchangedAnchor))
             []
             (EpaComments
              []))
            (NotPromoted)
            (L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:45-48 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:45-48 })
             (Unqual
              {OccName: Type}))))))
        (Nothing)))))
   ,(L
     (SrcSpanAnn (EpAnn
                  (Anchor
-                  { DumpParsedAst.hs:20:1-33 }
+                  { DumpParsedAst.hs:21:1-33 }
                   (UnchangedAnchor))
                  (AnnListItem
                   [])
                  (EpaComments
-                  [])) { DumpParsedAst.hs:20:1-33 })
+                  [])) { DumpParsedAst.hs:21:1-33 })
     (TyClD
      (NoExtField)
      (FamDecl
@@ -919,17 +1155,17 @@
       (FamilyDecl
        (EpAnn
         (Anchor
-         { DumpParsedAst.hs:20:1-33 }
+         { DumpParsedAst.hs:21:1-33 }
          (UnchangedAnchor))
-        [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:20:1-4 }))
-        ,(AddEpAnn AnnFamily (EpaSpan { DumpParsedAst.hs:20:6-11 }))
-        ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:20:17-18 }))]
+        [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:21:1-4 }))
+        ,(AddEpAnn AnnFamily (EpaSpan { DumpParsedAst.hs:21:6-11 }))
+        ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:21:17-18 }))]
         (EpaComments
          []))
        (DataFamily)
        (TopLevel)
        (L
-        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:13-15 })
+        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:13-15 })
         (Unqual
          {OccName: Nat}))
        (HsQTvs
@@ -939,15 +1175,15 @@
        (L
         (SrcSpanAnn
          (EpAnnNotUsed)
-         { DumpParsedAst.hs:20:17-33 })
+         { DumpParsedAst.hs:21:17-33 })
         (KindSig
          (NoExtField)
          (L
-          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:20-33 })
+          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:20-33 })
           (HsFunTy
            (EpAnn
             (Anchor
-             { DumpParsedAst.hs:20:20 }
+             { DumpParsedAst.hs:21:20 }
              (UnchangedAnchor))
             (NoEpAnns)
             (EpaComments
@@ -955,29 +1191,29 @@
            (HsUnrestrictedArrow
             (L
              (TokenLoc
-              (EpaSpan { DumpParsedAst.hs:20:22-23 }))
+              (EpaSpan { DumpParsedAst.hs:21:22-23 }))
              (HsNormalTok)))
            (L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:20 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:20 })
             (HsTyVar
              (EpAnn
               (Anchor
-               { DumpParsedAst.hs:20:20 }
+               { DumpParsedAst.hs:21:20 }
                (UnchangedAnchor))
               []
               (EpaComments
                []))
              (NotPromoted)
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:20 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:20 })
               (Unqual
                {OccName: k}))))
            (L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:25-33 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:25-33 })
             (HsFunTy
              (EpAnn
               (Anchor
-               { DumpParsedAst.hs:20:25 }
+               { DumpParsedAst.hs:21:25 }
                (UnchangedAnchor))
               (NoEpAnns)
               (EpaComments
@@ -985,48 +1221,48 @@
              (HsUnrestrictedArrow
               (L
                (TokenLoc
-                (EpaSpan { DumpParsedAst.hs:20:27-28 }))
+                (EpaSpan { DumpParsedAst.hs:21:27-28 }))
                (HsNormalTok)))
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:25 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:25 })
               (HsTyVar
                (EpAnn
                 (Anchor
-                 { DumpParsedAst.hs:20:25 }
+                 { DumpParsedAst.hs:21:25 }
                  (UnchangedAnchor))
                 []
                 (EpaComments
                  []))
                (NotPromoted)
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:25 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:25 })
                 (Unqual
                  {OccName: k}))))
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:30-33 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:30-33 })
               (HsTyVar
                (EpAnn
                 (Anchor
-                 { DumpParsedAst.hs:20:30-33 }
+                 { DumpParsedAst.hs:21:30-33 }
                  (UnchangedAnchor))
                 []
                 (EpaComments
                  []))
                (NotPromoted)
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:30-33 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:30-33 })
                 (Unqual
                  {OccName: Type}))))))))))
        (Nothing)))))
   ,(L
     (SrcSpanAnn (EpAnn
                  (Anchor
-                  { DumpParsedAst.hs:(21,1)-(22,45) }
+                  { DumpParsedAst.hs:(22,1)-(23,45) }
                   (UnchangedAnchor))
                  (AnnListItem
                   [])
                  (EpaComments
-                  [])) { DumpParsedAst.hs:(21,1)-(22,45) })
+                  [])) { DumpParsedAst.hs:(22,1)-(23,45) })
     (InstD
      (NoExtField)
      (DataFamInstD
@@ -1035,65 +1271,65 @@
        (FamEqn
         (EpAnn
          (Anchor
-          { DumpParsedAst.hs:(21,1)-(22,45) }
+          { DumpParsedAst.hs:(22,1)-(23,45) }
           (UnchangedAnchor))
-         [(AddEpAnn AnnNewtype (EpaSpan { DumpParsedAst.hs:21:1-7 }))
-         ,(AddEpAnn AnnInstance (EpaSpan { DumpParsedAst.hs:21:9-16 }))
-         ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:21:39-40 }))
-         ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:21:62-66 }))]
+         [(AddEpAnn AnnNewtype (EpaSpan { DumpParsedAst.hs:22:1-7 }))
+         ,(AddEpAnn AnnInstance (EpaSpan { DumpParsedAst.hs:22:9-16 }))
+         ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:22:39-40 }))
+         ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:22:62-66 }))]
          (EpaComments
           []))
         (L
-         (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:18-20 })
+         (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:18-20 })
          (Unqual
           {OccName: Nat}))
         (HsOuterImplicit
          (NoExtField))
         [(HsValArg
           (L
-           (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:22-37 })
+           (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:22-37 })
            (HsParTy
             (EpAnn
              (Anchor
-              { DumpParsedAst.hs:21:22 }
+              { DumpParsedAst.hs:22:22 }
               (UnchangedAnchor))
              (AnnParen
               (AnnParens)
-              (EpaSpan { DumpParsedAst.hs:21:22 })
-              (EpaSpan { DumpParsedAst.hs:21:37 }))
+              (EpaSpan { DumpParsedAst.hs:22:22 })
+              (EpaSpan { DumpParsedAst.hs:22:37 }))
              (EpaComments
               []))
             (L
-             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:23-36 })
+             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:23-36 })
              (HsKindSig
               (EpAnn
                (Anchor
-                { DumpParsedAst.hs:21:23 }
+                { DumpParsedAst.hs:22:23 }
                 (UnchangedAnchor))
-               [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:21:25-26 }))]
+               [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:22:25-26 }))]
                (EpaComments
                 []))
               (L
-               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:23 })
+               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:23 })
                (HsTyVar
                 (EpAnn
                  (Anchor
-                  { DumpParsedAst.hs:21:23 }
+                  { DumpParsedAst.hs:22:23 }
                   (UnchangedAnchor))
                  []
                  (EpaComments
                   []))
                 (NotPromoted)
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:23 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:23 })
                  (Unqual
                   {OccName: a}))))
               (L
-               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:28-36 })
+               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:28-36 })
                (HsFunTy
                 (EpAnn
                  (Anchor
-                  { DumpParsedAst.hs:21:28 }
+                  { DumpParsedAst.hs:22:28 }
                   (UnchangedAnchor))
                  (NoEpAnns)
                  (EpaComments
@@ -1101,36 +1337,36 @@
                 (HsUnrestrictedArrow
                  (L
                   (TokenLoc
-                   (EpaSpan { DumpParsedAst.hs:21:30-31 }))
+                   (EpaSpan { DumpParsedAst.hs:22:30-31 }))
                   (HsNormalTok)))
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:28 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:28 })
                  (HsTyVar
                   (EpAnn
                    (Anchor
-                    { DumpParsedAst.hs:21:28 }
+                    { DumpParsedAst.hs:22:28 }
                     (UnchangedAnchor))
                    []
                    (EpaComments
                     []))
                   (NotPromoted)
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:28 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:28 })
                    (Unqual
                     {OccName: k}))))
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:33-36 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:33-36 })
                  (HsTyVar
                   (EpAnn
                    (Anchor
-                    { DumpParsedAst.hs:21:33-36 }
+                    { DumpParsedAst.hs:22:33-36 }
                     (UnchangedAnchor))
                    []
                    (EpaComments
                     []))
                   (NotPromoted)
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:33-36 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:33-36 })
                    (Unqual
                     {OccName: Type})))))))))))]
         (Prefix)
@@ -1140,11 +1376,11 @@
          (Nothing)
          (Just
           (L
-           (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:42-60 })
+           (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:42-60 })
            (HsFunTy
             (EpAnn
              (Anchor
-              { DumpParsedAst.hs:21:42-52 }
+              { DumpParsedAst.hs:22:42-52 }
               (UnchangedAnchor))
              (NoEpAnns)
              (EpaComments
@@ -1152,27 +1388,27 @@
             (HsUnrestrictedArrow
              (L
               (TokenLoc
-               (EpaSpan { DumpParsedAst.hs:21:54-55 }))
+               (EpaSpan { DumpParsedAst.hs:22:54-55 }))
               (HsNormalTok)))
             (L
-             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:42-52 })
+             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:42-52 })
              (HsParTy
               (EpAnn
                (Anchor
-                { DumpParsedAst.hs:21:42 }
+                { DumpParsedAst.hs:22:42 }
                 (UnchangedAnchor))
                (AnnParen
                 (AnnParens)
-                (EpaSpan { DumpParsedAst.hs:21:42 })
-                (EpaSpan { DumpParsedAst.hs:21:52 }))
+                (EpaSpan { DumpParsedAst.hs:22:42 })
+                (EpaSpan { DumpParsedAst.hs:22:52 }))
                (EpaComments
                 []))
               (L
-               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:43-51 })
+               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:43-51 })
                (HsFunTy
                 (EpAnn
                  (Anchor
-                  { DumpParsedAst.hs:21:43 }
+                  { DumpParsedAst.hs:22:43 }
                   (UnchangedAnchor))
                  (NoEpAnns)
                  (EpaComments
@@ -1180,76 +1416,76 @@
                 (HsUnrestrictedArrow
                  (L
                   (TokenLoc
-                   (EpaSpan { DumpParsedAst.hs:21:45-46 }))
+                   (EpaSpan { DumpParsedAst.hs:22:45-46 }))
                   (HsNormalTok)))
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:43 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:43 })
                  (HsTyVar
                   (EpAnn
                    (Anchor
-                    { DumpParsedAst.hs:21:43 }
+                    { DumpParsedAst.hs:22:43 }
                     (UnchangedAnchor))
                    []
                    (EpaComments
                     []))
                   (NotPromoted)
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:43 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:43 })
                    (Unqual
                     {OccName: k}))))
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:48-51 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:48-51 })
                  (HsTyVar
                   (EpAnn
                    (Anchor
-                    { DumpParsedAst.hs:21:48-51 }
+                    { DumpParsedAst.hs:22:48-51 }
                     (UnchangedAnchor))
                    []
                    (EpaComments
                     []))
                   (NotPromoted)
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:48-51 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:48-51 })
                    (Unqual
                     {OccName: Type}))))))))
             (L
-             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:57-60 })
+             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:57-60 })
              (HsTyVar
               (EpAnn
                (Anchor
-                { DumpParsedAst.hs:21:57-60 }
+                { DumpParsedAst.hs:22:57-60 }
                 (UnchangedAnchor))
                []
                (EpaComments
                 []))
               (NotPromoted)
               (L
-               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:57-60 })
+               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:57-60 })
                (Unqual
                 {OccName: Type})))))))
          (NewTypeCon
           (L
-           (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:3-45 })
+           (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:3-45 })
            (ConDeclGADT
             (EpAnn
              (Anchor
-              { DumpParsedAst.hs:22:3-45 }
+              { DumpParsedAst.hs:23:3-45 }
               (UnchangedAnchor))
              []
              (EpaComments
               []))
             (:|
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:3-5 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:3-5 })
               (Unqual
                {OccName: Nat}))
              [])
             (L
              (TokenLoc
-              (EpaSpan { DumpParsedAst.hs:22:7-8 }))
+              (EpaSpan { DumpParsedAst.hs:23:7-8 }))
              (HsNormalTok))
             (L
-             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:10-45 })
+             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:10-45 })
              (HsOuterImplicit
               (NoExtField)))
             (Nothing)
@@ -1258,63 +1494,63 @@
                (HsUnrestrictedArrow
                 (L
                  (TokenLoc
-                  (EpaSpan { DumpParsedAst.hs:22:36-37 }))
+                  (EpaSpan { DumpParsedAst.hs:23:36-37 }))
                  (HsNormalTok)))
                (L
                 (SrcSpanAnn (EpAnn
                              (Anchor
-                              { DumpParsedAst.hs:22:10-34 }
+                              { DumpParsedAst.hs:23:10-34 }
                               (UnchangedAnchor))
                              (AnnListItem
                               [])
                              (EpaComments
-                              [])) { DumpParsedAst.hs:22:10-34 })
+                              [])) { DumpParsedAst.hs:23:10-34 })
                 (HsParTy
                  (EpAnn
                   (Anchor
-                   { DumpParsedAst.hs:22:10 }
+                   { DumpParsedAst.hs:23:10 }
                    (UnchangedAnchor))
                   (AnnParen
                    (AnnParens)
-                   (EpaSpan { DumpParsedAst.hs:22:10 })
-                   (EpaSpan { DumpParsedAst.hs:22:34 }))
+                   (EpaSpan { DumpParsedAst.hs:23:10 })
+                   (EpaSpan { DumpParsedAst.hs:23:34 }))
                   (EpaComments
                    []))
                  (L
-                  (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:11-33 })
+                  (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:11-33 })
                   (HsForAllTy
                    (NoExtField)
                    (HsForAllInvis
                     (EpAnn
                      (Anchor
-                      { DumpParsedAst.hs:22:11-16 }
+                      { DumpParsedAst.hs:23:11-16 }
                       (UnchangedAnchor))
                      ((,)
-                      (AddEpAnn AnnForall (EpaSpan { DumpParsedAst.hs:22:11-16 }))
-                      (AddEpAnn AnnDot (EpaSpan { DumpParsedAst.hs:22:20 })))
+                      (AddEpAnn AnnForall (EpaSpan { DumpParsedAst.hs:23:11-16 }))
+                      (AddEpAnn AnnDot (EpaSpan { DumpParsedAst.hs:23:20 })))
                      (EpaComments
                       []))
                     [(L
-                      (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:18-19 })
+                      (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:18-19 })
                       (UserTyVar
                        (EpAnn
                         (Anchor
-                         { DumpParsedAst.hs:22:18-19 }
+                         { DumpParsedAst.hs:23:18-19 }
                          (UnchangedAnchor))
                         []
                         (EpaComments
                          []))
                        (SpecifiedSpec)
                        (L
-                        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:18-19 })
+                        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:18-19 })
                         (Unqual
                          {OccName: xx}))))])
                    (L
-                    (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:22-33 })
+                    (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:22-33 })
                     (HsFunTy
                      (EpAnn
                       (Anchor
-                       { DumpParsedAst.hs:22:22-25 }
+                       { DumpParsedAst.hs:23:22-25 }
                        (UnchangedAnchor))
                       (NoEpAnns)
                       (EpaComments
@@ -1322,127 +1558,127 @@
                      (HsUnrestrictedArrow
                       (L
                        (TokenLoc
-                        (EpaSpan { DumpParsedAst.hs:22:27-28 }))
+                        (EpaSpan { DumpParsedAst.hs:23:27-28 }))
                        (HsNormalTok)))
                      (L
-                      (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:22-25 })
+                      (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:22-25 })
                       (HsAppTy
                        (NoExtField)
                        (L
-                        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:22 })
+                        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:22 })
                         (HsTyVar
                          (EpAnn
                           (Anchor
-                           { DumpParsedAst.hs:22:22 }
+                           { DumpParsedAst.hs:23:22 }
                            (UnchangedAnchor))
                           []
                           (EpaComments
                            []))
                          (NotPromoted)
                          (L
-                          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:22 })
+                          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:22 })
                           (Unqual
                            {OccName: f}))))
                        (L
-                        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:24-25 })
+                        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:24-25 })
                         (HsTyVar
                          (EpAnn
                           (Anchor
-                           { DumpParsedAst.hs:22:24-25 }
+                           { DumpParsedAst.hs:23:24-25 }
                            (UnchangedAnchor))
                           []
                           (EpaComments
                            []))
                          (NotPromoted)
                          (L
-                          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:24-25 })
+                          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:24-25 })
                           (Unqual
                            {OccName: xx}))))))
                      (L
-                      (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:30-33 })
+                      (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:30-33 })
                       (HsAppTy
                        (NoExtField)
                        (L
-                        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:30 })
+                        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:30 })
                         (HsTyVar
                          (EpAnn
                           (Anchor
-                           { DumpParsedAst.hs:22:30 }
+                           { DumpParsedAst.hs:23:30 }
                            (UnchangedAnchor))
                           []
                           (EpaComments
                            []))
                          (NotPromoted)
                          (L
-                          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:30 })
+                          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:30 })
                           (Unqual
                            {OccName: g}))))
                        (L
-                        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:32-33 })
+                        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:32-33 })
                         (HsTyVar
                          (EpAnn
                           (Anchor
-                           { DumpParsedAst.hs:22:32-33 }
+                           { DumpParsedAst.hs:23:32-33 }
                            (UnchangedAnchor))
                           []
                           (EpaComments
                            []))
                          (NotPromoted)
                          (L
-                          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:32-33 })
+                          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:32-33 })
                           (Unqual
                            {OccName: xx})))))))))))))])
             (L
-             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:39-45 })
+             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:39-45 })
              (HsAppTy
               (NoExtField)
               (L
-               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:39-43 })
+               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:39-43 })
                (HsAppTy
                 (NoExtField)
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:39-41 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:39-41 })
                  (HsTyVar
                   (EpAnn
                    (Anchor
-                    { DumpParsedAst.hs:22:39-41 }
+                    { DumpParsedAst.hs:23:39-41 }
                     (UnchangedAnchor))
                    []
                    (EpaComments
                     []))
                   (NotPromoted)
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:39-41 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:39-41 })
                    (Unqual
                     {OccName: Nat}))))
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:43 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:43 })
                  (HsTyVar
                   (EpAnn
                    (Anchor
-                    { DumpParsedAst.hs:22:43 }
+                    { DumpParsedAst.hs:23:43 }
                     (UnchangedAnchor))
                    []
                    (EpaComments
                     []))
                   (NotPromoted)
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:43 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:43 })
                    (Unqual
                     {OccName: f}))))))
               (L
-               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:45 })
+               (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:45 })
                (HsTyVar
                 (EpAnn
                  (Anchor
-                  { DumpParsedAst.hs:22:45 }
+                  { DumpParsedAst.hs:23:45 }
                   (UnchangedAnchor))
                  []
                  (EpaComments
                   []))
                 (NotPromoted)
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:45 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:23:45 })
                  (Unqual
                   {OccName: g}))))))
             (Nothing))))
@@ -1450,37 +1686,37 @@
   ,(L
     (SrcSpanAnn (EpAnn
                  (Anchor
-                  { DumpParsedAst.hs:24:1-23 }
+                  { DumpParsedAst.hs:25:1-23 }
                   (UnchangedAnchor))
                  (AnnListItem
                   [])
                  (EpaComments
-                  [])) { DumpParsedAst.hs:24:1-23 })
+                  [])) { DumpParsedAst.hs:25:1-23 })
     (ValD
      (NoExtField)
      (FunBind
       (NoExtField)
       (L
-       (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:1-4 })
+       (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:25:1-4 })
        (Unqual
         {OccName: main}))
       (MG
        (FromSource)
        (L
-        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:1-23 })
+        (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:25:1-23 })
         [(L
-          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:1-23 })
+          (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:25:1-23 })
           (Match
            (EpAnn
             (Anchor
-             { DumpParsedAst.hs:24:1-23 }
+             { DumpParsedAst.hs:25:1-23 }
              (UnchangedAnchor))
             []
             (EpaComments
              []))
            (FunRhs
             (L
-             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:1-4 })
+             (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:25:1-4 })
              (Unqual
               {OccName: main}))
             (Prefix)
@@ -1492,42 +1728,42 @@
             [(L
               (SrcSpanAnn
                (EpAnnNotUsed)
-               { DumpParsedAst.hs:24:6-23 })
+               { DumpParsedAst.hs:25:6-23 })
               (GRHS
                (EpAnn
                 (Anchor
-                 { DumpParsedAst.hs:24:6-23 }
+                 { DumpParsedAst.hs:25:6-23 }
                  (UnchangedAnchor))
                 (GrhsAnn
                  (Nothing)
-                 (AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:24:6 })))
+                 (AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:25:6 })))
                 (EpaComments
                  []))
                []
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:8-23 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:25:8-23 })
                 (HsApp
                  (EpAnn
                   (Anchor
-                   { DumpParsedAst.hs:24:8-23 }
+                   { DumpParsedAst.hs:25:8-23 }
                    (UnchangedAnchor))
                   (NoEpAnns)
                   (EpaComments
                    []))
                  (L
-                  (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:8-15 })
+                  (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:25:8-15 })
                   (HsVar
                    (NoExtField)
                    (L
-                    (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:8-15 })
+                    (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:25:8-15 })
                     (Unqual
                      {OccName: putStrLn}))))
                  (L
-                  (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:17-23 })
+                  (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:25:17-23 })
                   (HsLit
                    (EpAnn
                     (Anchor
-                     { DumpParsedAst.hs:24:17-23 }
+                     { DumpParsedAst.hs:25:17-23 }
                      (UnchangedAnchor))
                     (NoEpAnns)
                     (EpaComments
diff --git a/testsuite/tests/parser/should_compile/DumpRenamedAst.hs b/testsuite/tests/parser/should_compile/DumpRenamedAst.hs
index ba136db8e341a49fa2f37db7e5be766489cc5efc..3fb8e360eb9d2da3ab78a5b1ecd7d9cd73692586 100644
--- a/testsuite/tests/parser/should_compile/DumpRenamedAst.hs
+++ b/testsuite/tests/parser/should_compile/DumpRenamedAst.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE DataKinds, GADTs, PolyKinds, RankNTypes, TypeOperators,
              TypeFamilies, StarIsType, TypeApplications #-}
 
@@ -9,6 +8,7 @@ import Data.Kind (Type)
 
 data Peano = Zero | Succ Peano
 
+type Length :: [k] -> Peano
 type family Length (as :: [k]) :: Peano where
   Length (a : as) = Succ (Length as)
   Length '[]      = Zero
@@ -21,6 +21,7 @@ newtype instance Nat (a :: k -> Type) :: (k -> Type) -> Type where
 
 data T f (a :: k) = MkT (f a)
 
+type F1 :: k -> (k -> Type) -> Type
 type family F1 (a :: k) (f :: k -> Type) :: Type where
   F1 @Peano a f = T @Peano f a
 
diff --git a/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr b/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr
index cd3455b92a8887934e74e5db1fc46e6582571028..3d03be0f8fc81fde375102308ea958c638675f3c 100644
--- a/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr
+++ b/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr
@@ -13,29 +13,29 @@
         [(L
           (SrcSpanAnn (EpAnn
                        (Anchor
-                        { DumpRenamedAst.hs:34:1-23 }
+                        { DumpRenamedAst.hs:35:1-23 }
                         (UnchangedAnchor))
                        (AnnListItem
                         [])
                        (EpaComments
-                        [])) { DumpRenamedAst.hs:34:1-23 })
+                        [])) { DumpRenamedAst.hs:35:1-23 })
           (FunBind
            {NameSet:
             []}
            (L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:1-4 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:35:1-4 })
             {Name: DumpRenamedAst.main})
            (MG
             (FromSource)
             (L
-             (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:1-23 })
+             (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:35:1-23 })
              [(L
-               (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:1-23 })
+               (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:35:1-23 })
                (Match
                 (EpAnnNotUsed)
                 (FunRhs
                  (L
-                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:1-4 })
+                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:35:1-4 })
                   {Name: DumpRenamedAst.main})
                  (Prefix)
                  (NoSrcStrict))
@@ -46,33 +46,33 @@
                  [(L
                    (SrcSpanAnn
                     (EpAnnNotUsed)
-                    { DumpRenamedAst.hs:34:6-23 })
+                    { DumpRenamedAst.hs:35:6-23 })
                    (GRHS
                     (EpAnnNotUsed)
                     []
                     (L
-                     (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:8-23 })
+                     (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:35:8-23 })
                      (HsApp
                       (EpAnn
                        (Anchor
-                        { DumpRenamedAst.hs:34:8-23 }
+                        { DumpRenamedAst.hs:35:8-23 }
                         (UnchangedAnchor))
                        (NoEpAnns)
                        (EpaComments
                         []))
                       (L
-                       (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:8-15 })
+                       (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:35:8-15 })
                        (HsVar
                         (NoExtField)
                         (L
-                         (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:8-15 })
+                         (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:35:8-15 })
                          {Name: System.IO.putStrLn})))
                       (L
-                       (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:17-23 })
+                       (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:35:17-23 })
                        (HsLit
                         (EpAnn
                          (Anchor
-                          { DumpRenamedAst.hs:34:17-23 }
+                          { DumpRenamedAst.hs:35:17-23 }
                           (UnchangedAnchor))
                          (NoEpAnns)
                          (EpaComments
@@ -89,19 +89,19 @@
      [(L
        (SrcSpanAnn (EpAnn
                     (Anchor
-                     { DumpRenamedAst.hs:10:1-30 }
+                     { DumpRenamedAst.hs:9:1-30 }
                      (UnchangedAnchor))
                     (AnnListItem
                      [])
                     (EpaComments
-                     [])) { DumpRenamedAst.hs:10:1-30 })
+                     [])) { DumpRenamedAst.hs:9:1-30 })
        (DataDecl
         (DataDeclRn
          (True)
          {NameSet:
           [{Name: DumpRenamedAst.Peano}]})
         (L
-         (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:10:6-10 })
+         (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:9:6-10 })
          {Name: DumpRenamedAst.Peano})
         (HsQTvs
          []
@@ -117,17 +117,17 @@
           [(L
             (SrcSpanAnn (EpAnn
                          (Anchor
-                          { DumpRenamedAst.hs:10:14-17 }
+                          { DumpRenamedAst.hs:9:14-17 }
                           (UnchangedAnchor))
                          (AnnListItem
                           [(AddVbarAnn
-                            (EpaSpan { DumpRenamedAst.hs:10:19 }))])
+                            (EpaSpan { DumpRenamedAst.hs:9:19 }))])
                          (EpaComments
-                          [])) { DumpRenamedAst.hs:10:14-17 })
+                          [])) { DumpRenamedAst.hs:9:14-17 })
             (ConDeclH98
              (EpAnnNotUsed)
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:10:14-17 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:9:14-17 })
               {Name: DumpRenamedAst.Zero})
              (False)
              []
@@ -137,11 +137,11 @@
               [])
              (Nothing)))
           ,(L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:10:21-30 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:9:21-30 })
             (ConDeclH98
              (EpAnnNotUsed)
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:10:21-24 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:9:21-24 })
               {Name: DumpRenamedAst.Succ})
              (False)
              []
@@ -158,12 +158,12 @@
                    (NoTokenLoc)
                    (HsNormalTok))))
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:10:26-30 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:9:26-30 })
                  (HsTyVar
                   (EpAnnNotUsed)
                   (NotPromoted)
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:10:26-30 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:9:26-30 })
                    {Name: DumpRenamedAst.Peano}))))])
              (Nothing)))])
          [])))]
@@ -348,7 +348,70 @@
               {Name: DumpRenamedAst.Peano})))))
          (Nothing))))]
      []
-     []
+     [(L
+       (SrcSpanAnn (EpAnn
+                    (Anchor
+                     { DumpRenamedAst.hs:11:1-27 }
+                     (UnchangedAnchor))
+                    (AnnListItem
+                     [])
+                    (EpaComments
+                     [])) { DumpRenamedAst.hs:11:1-27 })
+       (StandaloneKindSig
+        (NoExtField)
+        (L
+         (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:11:6-11 })
+         {Name: DumpRenamedAst.Length})
+        (L
+         (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:11:16-27 })
+         (HsSig
+          (NoExtField)
+          (HsOuterImplicit
+           [{Name: k}])
+          (L
+           (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:11:16-27 })
+           (HsFunTy
+            (EpAnn
+             (Anchor
+              { DumpRenamedAst.hs:11:16-18 }
+              (UnchangedAnchor))
+             (NoEpAnns)
+             (EpaComments
+              []))
+            (HsUnrestrictedArrow
+             (L
+              (TokenLoc
+               (EpaSpan { DumpRenamedAst.hs:11:20-21 }))
+              (HsNormalTok)))
+            (L
+             (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:11:16-18 })
+             (HsListTy
+              (EpAnn
+               (Anchor
+                { DumpRenamedAst.hs:11:16 }
+                (UnchangedAnchor))
+               (AnnParen
+                (AnnParensSquare)
+                (EpaSpan { DumpRenamedAst.hs:11:16 })
+                (EpaSpan { DumpRenamedAst.hs:11:18 }))
+               (EpaComments
+                []))
+              (L
+               (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:11:17 })
+               (HsTyVar
+                (EpAnnNotUsed)
+                (NotPromoted)
+                (L
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:11:17 })
+                 {Name: k})))))
+            (L
+             (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:11:23-27 })
+             (HsTyVar
+              (EpAnnNotUsed)
+              (NotPromoted)
+              (L
+               (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:11:23-27 })
+               {Name: DumpRenamedAst.Peano})))))))))]
      [])
    ,(TyClGroup
      (NoExtField)
@@ -845,12 +908,12 @@
      [(L
        (SrcSpanAnn (EpAnn
                     (Anchor
-                     { DumpRenamedAst.hs:(24,1)-(25,30) }
+                     { DumpRenamedAst.hs:(25,1)-(26,30) }
                      (UnchangedAnchor))
                     (AnnListItem
                      [])
                     (EpaComments
-                     [])) { DumpRenamedAst.hs:(24,1)-(25,30) })
+                     [])) { DumpRenamedAst.hs:(25,1)-(26,30) })
        (FamDecl
         (NoExtField)
         (FamilyDecl
@@ -858,11 +921,11 @@
          (ClosedTypeFamily
           (Just
            [(L
-             (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:3-30 })
+             (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:3-30 })
              (FamEqn
               (EpAnnNotUsed)
               (L
-               (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:3-4 })
+               (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:3-4 })
                {Name: DumpRenamedAst.F1})
               (HsOuterImplicit
                [{Name: a}
@@ -870,135 +933,135 @@
               [(HsTypeArg
                 (L
                  (TokenLoc
-                  (EpaSpan { DumpRenamedAst.hs:25:6 }))
+                  (EpaSpan { DumpRenamedAst.hs:26:6 }))
                  (HsTok))
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:7-11 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:7-11 })
                  (HsTyVar
                   (EpAnnNotUsed)
                   (NotPromoted)
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:7-11 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:7-11 })
                    {Name: DumpRenamedAst.Peano}))))
               ,(HsValArg
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:13 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:13 })
                  (HsTyVar
                   (EpAnnNotUsed)
                   (NotPromoted)
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:13 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:13 })
                    {Name: a}))))
               ,(HsValArg
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:15 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:15 })
                  (HsTyVar
                   (EpAnnNotUsed)
                   (NotPromoted)
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:15 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:15 })
                    {Name: f}))))]
               (Prefix)
               (L
-               (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:19-30 })
+               (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:19-30 })
                (HsAppTy
                 (NoExtField)
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:19-28 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:19-28 })
                  (HsAppTy
                   (NoExtField)
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:19-26 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:19-26 })
                    (HsAppKindTy
                     (NoExtField)
                     (L
-                     (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:19 })
+                     (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:19 })
                      (HsTyVar
                       (EpAnnNotUsed)
                       (NotPromoted)
                       (L
-                       (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:19 })
+                       (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:19 })
                        {Name: DumpRenamedAst.T})))
                     (L
                      (TokenLoc
-                      (EpaSpan { DumpRenamedAst.hs:25:21 }))
+                      (EpaSpan { DumpRenamedAst.hs:26:21 }))
                      (HsTok))
                     (L
-                     (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:22-26 })
+                     (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:22-26 })
                      (HsTyVar
                       (EpAnnNotUsed)
                       (NotPromoted)
                       (L
-                       (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:22-26 })
+                       (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:22-26 })
                        {Name: DumpRenamedAst.Peano})))))
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:28 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:28 })
                    (HsTyVar
                     (EpAnnNotUsed)
                     (NotPromoted)
                     (L
-                     (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:28 })
+                     (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:28 })
                      {Name: f})))))
                 (L
-                 (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:30 })
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:30 })
                  (HsTyVar
                   (EpAnnNotUsed)
                   (NotPromoted)
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:30 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:26:30 })
                    {Name: a})))))))]))
          (TopLevel)
          (L
-          (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:13-14 })
+          (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:13-14 })
           {Name: DumpRenamedAst.F1})
          (HsQTvs
           [{Name: k}]
           [(L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:16-23 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:16-23 })
             (KindedTyVar
              (EpAnn
               (Anchor
-               { DumpRenamedAst.hs:24:16-23 }
+               { DumpRenamedAst.hs:25:16-23 }
                (UnchangedAnchor))
-              [(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:24:19-20 }))
-              ,(AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:24:16 }))
-              ,(AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:24:23 }))]
+              [(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:25:19-20 }))
+              ,(AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:25:16 }))
+              ,(AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:25:23 }))]
               (EpaComments
                []))
              (HsBndrRequired)
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:17 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:17 })
               {Name: a})
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:22 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:22 })
               (HsTyVar
                (EpAnnNotUsed)
                (NotPromoted)
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:22 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:22 })
                 {Name: k})))))
           ,(L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:25-40 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:25-40 })
             (KindedTyVar
              (EpAnn
               (Anchor
-               { DumpRenamedAst.hs:24:25-40 }
+               { DumpRenamedAst.hs:25:25-40 }
                (UnchangedAnchor))
-              [(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:24:28-29 }))
-              ,(AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:24:25 }))
-              ,(AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:24:40 }))]
+              [(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:25:28-29 }))
+              ,(AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:25:25 }))
+              ,(AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:25:40 }))]
               (EpaComments
                []))
              (HsBndrRequired)
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:26 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:26 })
               {Name: f})
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:31-39 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:31-39 })
               (HsFunTy
                (EpAnn
                 (Anchor
-                 { DumpRenamedAst.hs:24:31 }
+                 { DumpRenamedAst.hs:25:31 }
                  (UnchangedAnchor))
                 (NoEpAnns)
                 (EpaComments
@@ -1006,54 +1069,154 @@
                (HsUnrestrictedArrow
                 (L
                  (TokenLoc
-                  (EpaSpan { DumpRenamedAst.hs:24:33-34 }))
+                  (EpaSpan { DumpRenamedAst.hs:25:33-34 }))
                  (HsNormalTok)))
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:31 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:31 })
                 (HsTyVar
                  (EpAnnNotUsed)
                  (NotPromoted)
                  (L
-                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:31 })
+                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:31 })
                   {Name: k})))
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:36-39 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:36-39 })
                 (HsTyVar
                  (EpAnnNotUsed)
                  (NotPromoted)
                  (L
-                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:36-39 })
+                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:36-39 })
                   {Name: GHC.Types.Type})))))))])
          (Prefix)
          (L
           (SrcSpanAnn
            (EpAnnNotUsed)
-           { DumpRenamedAst.hs:24:42-48 })
+           { DumpRenamedAst.hs:25:42-48 })
           (KindSig
            (NoExtField)
            (L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:45-48 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:45-48 })
             (HsTyVar
              (EpAnnNotUsed)
              (NotPromoted)
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:45-48 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:45-48 })
               {Name: GHC.Types.Type})))))
          (Nothing))))]
      []
-     []
+     [(L
+       (SrcSpanAnn (EpAnn
+                    (Anchor
+                     { DumpRenamedAst.hs:24:1-35 }
+                     (UnchangedAnchor))
+                    (AnnListItem
+                     [])
+                    (EpaComments
+                     [])) { DumpRenamedAst.hs:24:1-35 })
+       (StandaloneKindSig
+        (NoExtField)
+        (L
+         (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:6-7 })
+         {Name: DumpRenamedAst.F1})
+        (L
+         (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:12-35 })
+         (HsSig
+          (NoExtField)
+          (HsOuterImplicit
+           [{Name: k}])
+          (L
+           (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:12-35 })
+           (HsFunTy
+            (EpAnn
+             (Anchor
+              { DumpRenamedAst.hs:24:12 }
+              (UnchangedAnchor))
+             (NoEpAnns)
+             (EpaComments
+              []))
+            (HsUnrestrictedArrow
+             (L
+              (TokenLoc
+               (EpaSpan { DumpRenamedAst.hs:24:14-15 }))
+              (HsNormalTok)))
+            (L
+             (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:12 })
+             (HsTyVar
+              (EpAnnNotUsed)
+              (NotPromoted)
+              (L
+               (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:12 })
+               {Name: k})))
+            (L
+             (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:17-35 })
+             (HsFunTy
+              (EpAnn
+               (Anchor
+                { DumpRenamedAst.hs:24:17-27 }
+                (UnchangedAnchor))
+               (NoEpAnns)
+               (EpaComments
+                []))
+              (HsUnrestrictedArrow
+               (L
+                (TokenLoc
+                 (EpaSpan { DumpRenamedAst.hs:24:29-30 }))
+                (HsNormalTok)))
+              (L
+               (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:17-27 })
+               (HsParTy
+                (EpAnnNotUsed)
+                (L
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:18-26 })
+                 (HsFunTy
+                  (EpAnn
+                   (Anchor
+                    { DumpRenamedAst.hs:24:18 }
+                    (UnchangedAnchor))
+                   (NoEpAnns)
+                   (EpaComments
+                    []))
+                  (HsUnrestrictedArrow
+                   (L
+                    (TokenLoc
+                     (EpaSpan { DumpRenamedAst.hs:24:20-21 }))
+                    (HsNormalTok)))
+                  (L
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:18 })
+                   (HsTyVar
+                    (EpAnnNotUsed)
+                    (NotPromoted)
+                    (L
+                     (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:18 })
+                     {Name: k})))
+                  (L
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:23-26 })
+                   (HsTyVar
+                    (EpAnnNotUsed)
+                    (NotPromoted)
+                    (L
+                     (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:23-26 })
+                     {Name: GHC.Types.Type})))))))
+              (L
+               (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:32-35 })
+               (HsTyVar
+                (EpAnnNotUsed)
+                (NotPromoted)
+                (L
+                 (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:32-35 })
+                 {Name: GHC.Types.Type})))))))))))]
      [])
    ,(TyClGroup
      (NoExtField)
      [(L
        (SrcSpanAnn (EpAnn
                     (Anchor
-                     { DumpRenamedAst.hs:(27,1)-(28,12) }
+                     { DumpRenamedAst.hs:(28,1)-(29,12) }
                      (UnchangedAnchor))
                     (AnnListItem
                      [])
                     (EpaComments
-                     [])) { DumpRenamedAst.hs:(27,1)-(28,12) })
+                     [])) { DumpRenamedAst.hs:(28,1)-(29,12) })
        (ClassDecl
         {NameSet:
          []}
@@ -1061,23 +1224,23 @@
          (3))
         (Nothing)
         (L
-         (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:27:7 })
+         (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:28:7 })
          {Name: DumpRenamedAst.C})
         (HsQTvs
          []
          [(L
-           (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:27:9 })
+           (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:28:9 })
            (UserTyVar
             (EpAnn
              (Anchor
-              { DumpRenamedAst.hs:27:9 }
+              { DumpRenamedAst.hs:28:9 }
               (UnchangedAnchor))
              []
              (EpaComments
               []))
             (HsBndrRequired)
             (L
-             (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:27:9 })
+             (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:28:9 })
              {Name: a})))])
         (Prefix)
         []
@@ -1085,43 +1248,43 @@
         {Bag(LocatedA (HsBind Name)):
          []}
         [(L
-          (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:28:3-12 })
+          (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:29:3-12 })
           (FamilyDecl
            (EpAnnNotUsed)
            (OpenTypeFamily)
            (NotTopLevel)
            (L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:28:8 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:29:8 })
             {Name: DumpRenamedAst.F})
            (HsQTvs
             []
             [(L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:28:10 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:29:10 })
               (UserTyVar
                (EpAnn
                 (Anchor
-                 { DumpRenamedAst.hs:28:10 }
+                 { DumpRenamedAst.hs:29:10 }
                  (UnchangedAnchor))
                 []
                 (EpaComments
                  []))
                (HsBndrRequired)
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:28:10 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:29:10 })
                 {Name: a})))
             ,(L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:28:12 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:29:12 })
               (UserTyVar
                (EpAnn
                 (Anchor
-                 { DumpRenamedAst.hs:28:12 }
+                 { DumpRenamedAst.hs:29:12 }
                  (UnchangedAnchor))
                 []
                 (EpaComments
                  []))
                (HsBndrRequired)
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:28:12 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:29:12 })
                 {Name: b})))])
            (Prefix)
            (L
@@ -1138,138 +1301,138 @@
      [(L
        (SrcSpanAnn (EpAnn
                     (Anchor
-                     { DumpRenamedAst.hs:(30,1)-(31,27) }
+                     { DumpRenamedAst.hs:(31,1)-(32,27) }
                      (UnchangedAnchor))
                     (AnnListItem
                      [])
                     (EpaComments
-                     [])) { DumpRenamedAst.hs:(30,1)-(31,27) })
+                     [])) { DumpRenamedAst.hs:(31,1)-(32,27) })
        (ClsInstD
         (NoExtField)
         (ClsInstDecl
          (NoExtField)
          (L
-          (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:30:10-14 })
+          (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:10-14 })
           (HsSig
            (NoExtField)
            (HsOuterImplicit
             [{Name: a}])
            (L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:30:10-14 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:10-14 })
             (HsAppTy
              (NoExtField)
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:30:10 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:10 })
               (HsTyVar
                (EpAnnNotUsed)
                (NotPromoted)
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:30:10 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:10 })
                 {Name: DumpRenamedAst.C})))
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:30:12-14 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:12-14 })
               (HsListTy
                (EpAnn
                 (Anchor
-                 { DumpRenamedAst.hs:30:12 }
+                 { DumpRenamedAst.hs:31:12 }
                  (UnchangedAnchor))
                 (AnnParen
                  (AnnParensSquare)
-                 (EpaSpan { DumpRenamedAst.hs:30:12 })
-                 (EpaSpan { DumpRenamedAst.hs:30:14 }))
+                 (EpaSpan { DumpRenamedAst.hs:31:12 })
+                 (EpaSpan { DumpRenamedAst.hs:31:14 }))
                 (EpaComments
                  []))
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:30:13 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:13 })
                 (HsTyVar
                  (EpAnnNotUsed)
                  (NotPromoted)
                  (L
-                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:30:13 })
+                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:13 })
                   {Name: a})))))))))
          {Bag(LocatedA (HsBind Name)):
           []}
          []
          [(L
-           (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:3-27 })
+           (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:32:3-27 })
            (TyFamInstDecl
             (EpAnn
              (Anchor
-              { DumpRenamedAst.hs:31:3-27 }
+              { DumpRenamedAst.hs:32:3-27 }
               (UnchangedAnchor))
-             [(AddEpAnn AnnType (EpaSpan { DumpRenamedAst.hs:31:3-6 }))]
+             [(AddEpAnn AnnType (EpaSpan { DumpRenamedAst.hs:32:3-6 }))]
              (EpaComments
               []))
             (FamEqn
              (EpAnnNotUsed)
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:8 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:32:8 })
               {Name: DumpRenamedAst.F})
              (HsOuterImplicit
               [{Name: b}])
              [(HsValArg
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:10-12 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:32:10-12 })
                 (HsListTy
                  (EpAnn
                   (Anchor
-                   { DumpRenamedAst.hs:31:10 }
+                   { DumpRenamedAst.hs:32:10 }
                    (UnchangedAnchor))
                   (AnnParen
                    (AnnParensSquare)
-                   (EpaSpan { DumpRenamedAst.hs:31:10 })
-                   (EpaSpan { DumpRenamedAst.hs:31:12 }))
+                   (EpaSpan { DumpRenamedAst.hs:32:10 })
+                   (EpaSpan { DumpRenamedAst.hs:32:12 }))
                   (EpaComments
                    []))
                  (L
-                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:11 })
+                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:32:11 })
                   (HsTyVar
                    (EpAnnNotUsed)
                    (NotPromoted)
                    (L
-                    (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:11 })
+                    (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:32:11 })
                     {Name: a}))))))
              ,(HsValArg
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:14 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:32:14 })
                 (HsTyVar
                  (EpAnnNotUsed)
                  (NotPromoted)
                  (L
-                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:14 })
+                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:32:14 })
                   {Name: b}))))]
              (Prefix)
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:18-27 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:32:18-27 })
               (HsAppTy
                (NoExtField)
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:18-25 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:32:18-25 })
                 (HsAppTy
                  (NoExtField)
                  (L
-                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:18-23 })
+                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:32:18-23 })
                   (HsTyVar
                    (EpAnnNotUsed)
                    (NotPromoted)
                    (L
-                    (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:18-23 })
+                    (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:32:18-23 })
                     {Name: Data.Either.Either})))
                  (L
-                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:25 })
+                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:32:25 })
                   (HsTyVar
                    (EpAnnNotUsed)
                    (NotPromoted)
                    (L
-                    (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:25 })
+                    (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:32:25 })
                     {Name: a})))))
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:27 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:32:27 })
                 (HsTyVar
                  (EpAnnNotUsed)
                  (NotPromoted)
                  (L
-                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:27 })
+                  (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:32:27 })
                   {Name: b}))))))))]
          []
          (Nothing))))])]
@@ -1282,14 +1445,14 @@
    []
    [])
   [(L
-    (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:5:8-21 })
+    (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:4:8-21 })
     (ImportDecl
      (XImportDeclPass
       (EpAnnNotUsed)
       (NoSourceText)
       (True))
      (L
-      (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:5:8-21 })
+      (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:4:8-21 })
       {ModuleName: Prelude})
      (NoPkgQual)
      (NotBoot)
@@ -1298,15 +1461,15 @@
      (Nothing)
      (Nothing)))
   ,(L
-    (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:6:1-16 })
+    (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:5:1-16 })
     (ImportDecl
      (XImportDeclPass
       (EpAnn
        (Anchor
-        { DumpRenamedAst.hs:6:1-6 }
+        { DumpRenamedAst.hs:5:1-6 }
         (UnchangedAnchor))
        (EpAnnImportDecl
-        (EpaSpan { DumpRenamedAst.hs:6:1-6 })
+        (EpaSpan { DumpRenamedAst.hs:5:1-6 })
         (Nothing)
         (Nothing)
         (Nothing)
@@ -1317,7 +1480,7 @@
       (NoSourceText)
       (False))
      (L
-      (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:6:8-16 })
+      (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:5:8-16 })
       {ModuleName: Data.Kind})
      (NoPkgQual)
      (NotBoot)
@@ -1326,15 +1489,15 @@
      (Nothing)
      (Nothing)))
   ,(L
-    (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:8:1-23 })
+    (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:7:1-23 })
     (ImportDecl
      (XImportDeclPass
       (EpAnn
        (Anchor
-        { DumpRenamedAst.hs:8:1-6 }
+        { DumpRenamedAst.hs:7:1-6 }
         (UnchangedAnchor))
        (EpAnnImportDecl
-        (EpaSpan { DumpRenamedAst.hs:8:1-6 })
+        (EpaSpan { DumpRenamedAst.hs:7:1-6 })
         (Nothing)
         (Nothing)
         (Nothing)
@@ -1345,7 +1508,7 @@
       (NoSourceText)
       (False))
      (L
-      (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:8:8-16 })
+      (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:7:8-16 })
       {ModuleName: Data.Kind})
      (NoPkgQual)
      (NotBoot)
@@ -1358,30 +1521,30 @@
        (L
         (SrcSpanAnn (EpAnn
                      (Anchor
-                      { DumpRenamedAst.hs:8:18-23 }
+                      { DumpRenamedAst.hs:7:18-23 }
                       (UnchangedAnchor))
                      (AnnList
                       (Nothing)
                       (Just
-                       (AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:8:18 })))
+                       (AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:7:18 })))
                       (Just
-                       (AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:8:23 })))
+                       (AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:7:23 })))
                       []
                       [])
                      (EpaComments
-                      [])) { DumpRenamedAst.hs:8:18-23 })
+                      [])) { DumpRenamedAst.hs:7:18-23 })
         [(L
-          (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:8:19-22 })
+          (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:7:19-22 })
           (IEThingAbs
            ((,)
             (Nothing)
             (EpAnnNotUsed))
            (L
-            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:8:19-22 })
+            (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:7:19-22 })
             (IEName
              (NoExtField)
              (L
-              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:8:19-22 })
+              (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:7:19-22 })
               {Name: GHC.Types.Type})))))])))))]
   (Nothing)
   (Nothing)))
diff --git a/testsuite/tests/parser/should_compile/DumpTypecheckedAst.hs b/testsuite/tests/parser/should_compile/DumpTypecheckedAst.hs
index 202be3f1101b61f6c5529939177c8d0d399b95cc..cc54b8ccd82699831f2cb1e9392d4fddade49e0d 100644
--- a/testsuite/tests/parser/should_compile/DumpTypecheckedAst.hs
+++ b/testsuite/tests/parser/should_compile/DumpTypecheckedAst.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE DataKinds, PolyKinds, TypeOperators, TypeFamilies
              , TypeApplications #-}
 
@@ -7,12 +6,14 @@ import Data.Kind
 
 data Peano = Zero | Succ Peano
 
+type Length :: [k] -> Peano
 type family Length (as :: [k]) :: Peano where
   Length (a : as) = Succ (Length as)
   Length '[]      = Zero
 
 data T f (a :: k) = MkT (f a)
 
+type F :: k -> (k -> Type) -> Type
 type family F (a :: k) (f :: k -> Type) :: Type where
   F @Peano a f = T @Peano f a
 
diff --git a/testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr b/testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr
index 8f31c0a2481d850fa0f7500840015687237976d5..a3794a79c6fe83ec9158a98df26bbdb73aeb23c7 100644
--- a/testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr
+++ b/testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr
@@ -1513,7 +1513,7 @@
          (NoTokenLoc)
          (HsTok))))))))
  ,(L
-   (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:1-23 })
+   (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:20:1-23 })
    (XHsBindsLR
     (AbsBinds
      []
@@ -1529,18 +1529,18 @@
       [(L
         (SrcSpanAnn (EpAnn
                      (Anchor
-                      { DumpTypecheckedAst.hs:19:1-23 }
+                      { DumpTypecheckedAst.hs:20:1-23 }
                       (UnchangedAnchor))
                      (AnnListItem
                       [])
                      (EpaComments
-                      [])) { DumpTypecheckedAst.hs:19:1-23 })
+                      [])) { DumpTypecheckedAst.hs:20:1-23 })
         (FunBind
          ((,)
           (WpHole)
           [])
          (L
-          (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:1-4 })
+          (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:20:1-4 })
           {Var: main})
          (MG
           (MatchGroupTc
@@ -1552,14 +1552,14 @@
               [])])
            (FromSource))
           (L
-           (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:1-23 })
+           (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:20:1-23 })
            [(L
-             (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:1-23 })
+             (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:20:1-23 })
              (Match
               (EpAnnNotUsed)
               (FunRhs
                (L
-                (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:1-4 })
+                (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:20:1-4 })
                 {Name: main})
                (Prefix)
                (NoSrcStrict))
@@ -1570,27 +1570,27 @@
                [(L
                  (SrcSpanAnn
                   (EpAnnNotUsed)
-                  { DumpTypecheckedAst.hs:19:6-23 })
+                  { DumpTypecheckedAst.hs:20:6-23 })
                  (GRHS
                   (EpAnnNotUsed)
                   []
                   (L
-                   (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:8-23 })
+                   (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:20:8-23 })
                    (HsApp
                     (EpAnnNotUsed)
                     (L
-                     (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:8-15 })
+                     (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:20:8-15 })
                      (HsVar
                       (NoExtField)
                       (L
                        (SrcSpanAnn (EpAnnNotUsed) { <no location info> })
                        {Var: putStrLn})))
                     (L
-                     (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:17-23 })
+                     (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:20:17-23 })
                      (HsLit
                       (EpAnn
                        (Anchor
-                        { DumpTypecheckedAst.hs:19:17-23 }
+                        { DumpTypecheckedAst.hs:20:17-23 }
                         (UnchangedAnchor))
                        (NoEpAnns)
                        (EpaComments
diff --git a/testsuite/tests/patsyn/should_compile/T10997_1a.hs b/testsuite/tests/patsyn/should_compile/T10997_1a.hs
index bf69c41fa3c2d5a9f855815247ff9558ab19507c..a274daef0e6d18c027cedc1bb96450dc72e9aa46 100644
--- a/testsuite/tests/patsyn/should_compile/T10997_1a.hs
+++ b/testsuite/tests/patsyn/should_compile/T10997_1a.hs
@@ -1,10 +1,10 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE PatternSynonyms, ViewPatterns, ConstraintKinds, TypeFamilies, PolyKinds, KindSignatures #-}
 module T10997_1a where
 
 import Data.Kind
 
-type family Showable (a :: k) :: Constraint where
+type Showable :: k -> Constraint
+type family Showable a where
   Showable (a :: Type) = (Show a)
   Showable a           = ()
 
diff --git a/testsuite/tests/patsyn/should_compile/T12698.hs b/testsuite/tests/patsyn/should_compile/T12698.hs
index bb2bccbb443a507d9589cc5539d7c0a7e8ee0ad9..44a101f9ca0be007a52a95d49789daf75fbf9b65 100644
--- a/testsuite/tests/patsyn/should_compile/T12698.hs
+++ b/testsuite/tests/patsyn/should_compile/T12698.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# Language ViewPatterns, TypeOperators, KindSignatures, PolyKinds,
              StandaloneDeriving, GADTs, RebindableSyntax,
              RankNTypes, LambdaCase, PatternSynonyms, TypeApplications #-}
@@ -37,7 +36,8 @@ splitApp = \case
   TP -> Nothing
   TA f x -> Just (App f x)
 
-data (a :: k1) :~~: (b :: k2) where
+type (:~~:) :: k1 -> k2 -> Type
+data a :~~: b where
   HRefl :: a :~~: a
 
 eqT :: T a -> T b -> Maybe (a :~~: b)
diff --git a/testsuite/tests/patsyn/should_fail/T14507.hs b/testsuite/tests/patsyn/should_fail/T14507.hs
index b803f5073496d72f8cfa3284648fb954481d867a..90fa2e4dac953934cd2bc5e957a209037407637b 100644
--- a/testsuite/tests/patsyn/should_fail/T14507.hs
+++ b/testsuite/tests/patsyn/should_fail/T14507.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# Language PatternSynonyms, ViewPatterns, GADTs, ConstraintKinds, RankNTypes,
              PolyKinds, ScopedTypeVariables, DataKinds, TypeOperators,
              TypeApplications, TypeFamilies, TypeFamilyDependencies #-}
@@ -11,7 +10,8 @@ import Data.Kind
 foo :: TypeRep a -> (Bool :~~: k, TypeRep a)
 foo rep = error "urk"
 
-type family SING :: k -> Type where
+type SING :: k -> Type
+type family SING @k where
   SING = (TypeRep :: Bool -> Type)
 
 pattern RepN :: forall kk (a::kk). () => Bool~kk => SING a -> TypeRep (a::kk)
diff --git a/testsuite/tests/patsyn/should_fail/T15694.hs b/testsuite/tests/patsyn/should_fail/T15694.hs
index 44b3c7a8d6582daecd4d51bae2180a6aba569f7a..2b2d8086afe25edf2bc2bfcb0a1e3264c37e6086 100644
--- a/testsuite/tests/patsyn/should_fail/T15694.hs
+++ b/testsuite/tests/patsyn/should_fail/T15694.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# Language RankNTypes, PatternSynonyms, TypeOperators, DataKinds, PolyKinds, KindSignatures, GADTs #-}
 
 module T15694 where
@@ -10,7 +9,8 @@ data Ctx :: Type -> Type where
  E     :: Ctx(Type)
  (:&:) :: a -> Ctx(as) -> Ctx(a -> as)
 
-data ApplyT(kind::Type) :: kind ->  Ctx(kind) -> Type where
+type ApplyT :: forall (kind::Type) -> kind -> Ctx(kind) -> Type
+data ApplyT k t ctx where
  AO :: a -> ApplyT(Type) a E
  AS :: ApplyT(ks)      (f a) ctx
     -> ApplyT(k -> ks) f     (a:&:ctx)
diff --git a/testsuite/tests/patsyn/should_fail/T15695.hs b/testsuite/tests/patsyn/should_fail/T15695.hs
index ebccb8a02e1c50ee5abc34a6b1678fb63f9afc01..bd68a56a561477eeda6c70873ad3869ceff21716 100644
--- a/testsuite/tests/patsyn/should_fail/T15695.hs
+++ b/testsuite/tests/patsyn/should_fail/T15695.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# Language RankNTypes, PatternSynonyms, DataKinds, PolyKinds, GADTs,
              TypeOperators, MultiParamTypeClasses, TypeFamilies,
              TypeSynonymInstances, FlexibleInstances, InstanceSigs, FlexibleContexts #-}
@@ -31,7 +30,8 @@ data NA a
 
 type SOP(kind::Type) code = NS (NP NA) code
 
-data ApplyT(kind::Type) :: kind ->  Ctx(kind) -> Type where
+type ApplyT :: forall (kind::Type) -> kind -> Ctx(kind) -> Type
+data ApplyT k t ctx where
  AO :: a -> ApplyT(Type) a E
  AS :: ApplyT(ks)      (f a) ctx
     -> ApplyT(k -> ks) f     (a:&:ctx)
diff --git a/testsuite/tests/pmcheck/complete_sigs/T14253.hs b/testsuite/tests/pmcheck/complete_sigs/T14253.hs
index fc594b4355554ac01916e40caa51b4398e764653..c2e6240c6c75f96455e0758bc45dbe6fc831e3fa 100644
--- a/testsuite/tests/pmcheck/complete_sigs/T14253.hs
+++ b/testsuite/tests/pmcheck/complete_sigs/T14253.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE GADTs #-}
 {-# LANGUAGE PatternSynonyms #-}
 {-# LANGUAGE TypeOperators #-}
@@ -10,7 +9,8 @@ module T14253 where
 import GHC.Exts
 import Data.Kind
 
-data TypeRep (a :: k) where
+type TypeRep :: k -> Type
+data TypeRep a where
     Con :: TypeRep (a :: k)
     TrFun   :: forall (r1 :: RuntimeRep) (r2 :: RuntimeRep)
                       (a :: TYPE r1) (b :: TYPE r2).
diff --git a/testsuite/tests/polykinds/T10670a.hs b/testsuite/tests/polykinds/T10670a.hs
index 489e1d56c579e97ea030075078f76b9f1a5058dd..c0649a29bc7ad3f77c39963329e9384d952081f9 100644
--- a/testsuite/tests/polykinds/T10670a.hs
+++ b/testsuite/tests/polykinds/T10670a.hs
@@ -1,8 +1,8 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE GADTs , PolyKinds #-}
 
 module Bug2 where
 
+import Data.Kind (Type)
 import Unsafe.Coerce
 
 data TyConT (a::k) = TyConT String
@@ -16,7 +16,8 @@ tyConTArr :: TyConT (->)
 tyConTArr = TyConT "(->)"
 
 
-data TypeRepT (a::k) where
+type TypeRepT :: k -> Type
+data TypeRepT a where
   TRCon :: TyConT a -> TypeRepT a
   TRApp :: TypeRepT a -> TypeRepT b -> TypeRepT (a b)
 
diff --git a/testsuite/tests/polykinds/T11362.hs b/testsuite/tests/polykinds/T11362.hs
index 7763cf460da9103ea59fc9d8abf5bc09970753a6..94c4f20c9808c8122c34339c3d353085ab5fd7e8 100644
--- a/testsuite/tests/polykinds/T11362.hs
+++ b/testsuite/tests/polykinds/T11362.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE PolyKinds #-}
 {-# LANGUAGE KindSignatures #-}
@@ -25,5 +24,6 @@ data instance In (F f) r o where
   MkIn :: In f (Sum1 r (In (F f) r)) o -> In (F f) r o
 
 -- Requires polymorphic recursion
-data In' (f :: Code i o) :: (i -> Type) -> o -> Type where
+type In' :: Code i o -> (i -> Type) -> o -> Type
+data In' f r t where
   MkIn' :: In' g (Sum1 r (In' (F g) r)) t -> In' (F g) r t
diff --git a/testsuite/tests/polykinds/T11480a.hs b/testsuite/tests/polykinds/T11480a.hs
index 26e53807b289da2d693cb43a59c512acf1ad68dc..2f2bbdca914486c6ad59ad8a5990a7238aaf486c 100644
--- a/testsuite/tests/polykinds/T11480a.hs
+++ b/testsuite/tests/polykinds/T11480a.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# language KindSignatures, PolyKinds, TypeFamilies,
   NoImplicitPrelude, FlexibleContexts,
   MultiParamTypeClasses, GADTs,
@@ -12,7 +11,8 @@ import qualified Prelude
 
 data Nat (c :: i -> i -> Type) (d :: j -> j -> Type) (f :: i -> j) (g :: i -> j)
 
-class Functor p (Nat p (->)) p => Category (p :: i -> i -> Type)
+type Category :: (i -> i -> Type) -> Constraint
+class Functor p (Nat p (->)) p => Category p
 
 class (Category dom, Category cod)
    => Functor (dom :: i -> i -> Type) (cod :: j -> j -> Type) (f :: i -> j)
diff --git a/testsuite/tests/polykinds/T11480b.hs b/testsuite/tests/polykinds/T11480b.hs
index a144c97a34e24b054c8519af7b9e442d1098cf19..635ee4efac5f2de9e9c1662911ba460917a8bbaf 100644
--- a/testsuite/tests/polykinds/T11480b.hs
+++ b/testsuite/tests/polykinds/T11480b.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# language KindSignatures #-}
 {-# language PolyKinds #-}
 {-# language DataKinds #-}
@@ -40,7 +39,8 @@ instance Vacuous p a
 data Dict (p :: Constraint) where
   Dict :: p => Dict p
 
-class Functor (Op p) (Nat p (->)) p => Category (p :: i -> i -> Type) where
+type Category :: (i -> i -> Type) -> Constraint
+class Functor (Op p) (Nat p (->)) p => Category @i p where
   type Ob p :: i -> Constraint
   type Ob p = Vacuous p
 
diff --git a/testsuite/tests/polykinds/T11520.hs b/testsuite/tests/polykinds/T11520.hs
index 18881f333f3267d0d7fe92c92bb4ab1c0abf34dc..e0b315392ba83fe9f2fc2a6ddb75b3056f190b85 100644
--- a/testsuite/tests/polykinds/T11520.hs
+++ b/testsuite/tests/polykinds/T11520.hs
@@ -1,12 +1,14 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE RankNTypes, PolyKinds, GADTs, UndecidableSuperClasses, UndecidableInstances #-}
 
 module T11520 where
 
+import Data.Kind (Type, Constraint)
 import GHC.Types hiding (TyCon)
 
-data TypeRep (a :: k)
+type TypeRep :: k -> Type
+data TypeRep a
 
+type Typeable :: k -> Constraint
 class Typeable k => Typeable (a :: k) where
     typeRep :: TypeRep a
 
diff --git a/testsuite/tests/polykinds/T11520.stderr b/testsuite/tests/polykinds/T11520.stderr
index 38d871f5865812ee74ee14e9f64d4fd73cc60529..d29fd443e5afe43ca731d6b5d73b0a4467d5610a 100644
--- a/testsuite/tests/polykinds/T11520.stderr
+++ b/testsuite/tests/polykinds/T11520.stderr
@@ -1,9 +1,9 @@
 
-T11520.hs:16:77: error: [GHC-25897]
+T11520.hs:18:77: error: [GHC-25897]
     • Expected kind ‘k2 -> k1’, but ‘g’ has kind ‘k4’
       ‘k4’ is a rigid type variable bound by
         an instance declaration
-        at T11520.hs:16:10-78
+        at T11520.hs:18:10-78
     • In the second argument of ‘Compose’, namely ‘g’
       In the first argument of ‘Typeable’, namely ‘(Compose f g)’
       In the instance declaration for ‘Typeable (Compose f g)’
diff --git a/testsuite/tests/polykinds/T11523.hs b/testsuite/tests/polykinds/T11523.hs
index 679d1d13d528398a57c457c64da8d70078afcfca..e81ad4a829669df1aae28dd173b6c147ad7e0780 100644
--- a/testsuite/tests/polykinds/T11523.hs
+++ b/testsuite/tests/polykinds/T11523.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# language KindSignatures #-}
 {-# language PolyKinds #-}
 {-# language DataKinds #-}
@@ -30,7 +29,8 @@ newtype Y (p :: i -> j -> Type) (a :: j) (b :: i) = Y { getY :: p b a }
 class Vacuous (a :: i)
 instance Vacuous a
 
-class (Functor p, Dom p ~ Op p, Cod p ~ Nat p (->)) => Category (p :: Cat i) where
+type Category :: Cat i -> Constraint
+class (Functor p, Dom p ~ Op p, Cod p ~ Nat p (->)) => Category @i p where
   type Op p :: Cat i
   type Op p = Y p
   type Ob p :: i -> Constraint
diff --git a/testsuite/tests/polykinds/T12055.hs b/testsuite/tests/polykinds/T12055.hs
index 72c208d77d90966790070db2d3e43b76e2985924..7d1662bc30531db0cf01ec98aba0606caa8eee4a 100644
--- a/testsuite/tests/polykinds/T12055.hs
+++ b/testsuite/tests/polykinds/T12055.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE ConstraintKinds #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE NoImplicitPrelude #-}
@@ -22,10 +21,12 @@ import Data.Type.Equality (type (~), type (~~))
 
 type Cat k = k -> k -> Type
 
-class Category (p :: Cat k) where
+type Category :: forall k. Cat k -> Constraint
+class Category @k p where
     type Ob p :: k -> Constraint
 
-class (Category (Dom f), Category (Cod f)) => Functor (f :: j -> k) where
+type Functor :: forall j k. (j -> k) -> Constraint
+class (Category (Dom f), Category (Cod f)) => Functor @j @k f where
     type Dom f :: Cat j
     type Cod f :: Cat k
     functor :: forall a b.
diff --git a/testsuite/tests/polykinds/T12055a.hs b/testsuite/tests/polykinds/T12055a.hs
index e26da3246c59cb65e24ab2f7c3b15ec539196303..23ea606d22fffc5d96e60e73c86b3995201fcb32 100644
--- a/testsuite/tests/polykinds/T12055a.hs
+++ b/testsuite/tests/polykinds/T12055a.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE ConstraintKinds #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE NoImplicitPrelude #-}
@@ -13,19 +12,21 @@
 -- The code from the ticket lacked necessary extension FlexibleContexts
 -- which crashed the compiler with "GHC internal error"
 -- This test case reproduces that scenario
-{- # LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE NoFlexibleContexts #-}
 
 module T12055a where
 
 import GHC.Base ( Constraint, Type )
-import GHC.Exts ( type (~~) )
+import GHC.Exts ( type (~), type (~~) )
 
 type Cat k = k -> k -> Type
 
-class Category (p :: Cat k) where
+type Category :: forall k. Cat k -> Constraint
+class Category @k p where
     type Ob p :: k -> Constraint
 
-class (Category (Dom f), Category (Cod f)) => Functor (f :: j -> k) where
+type Functor :: forall j k. (j -> k) -> Constraint
+class (Category (Dom f), Category (Cod f)) => Functor @j @k f where
     type Dom f :: Cat j
     type Cod f :: Cat k
     functor :: forall a b.
diff --git a/testsuite/tests/polykinds/T12055a.stderr b/testsuite/tests/polykinds/T12055a.stderr
index 4e19219a236611e080fa4197c3277d1963f78e76..aa56cc1430765bbd0a293c9c9349f8d5de59ce5e 100644
--- a/testsuite/tests/polykinds/T12055a.stderr
+++ b/testsuite/tests/polykinds/T12055a.stderr
@@ -1,5 +1,5 @@
 
-T12055a.hs:28:1: error: [GHC-80003]
+T12055a.hs:29:1: error: [GHC-80003]
     • Non type-variable argument in the constraint: Category (Dom f)
     • In the context: (Category (Dom f), Category (Cod f))
       While checking the super-classes of class ‘Functor’
diff --git a/testsuite/tests/polykinds/T14270.hs b/testsuite/tests/polykinds/T14270.hs
index efdc68cc5a7988c3bc9297e94ca1f15fa3ed46d0..5051e3daa94378b9263cbd5c891e8aa8e79c277d 100644
--- a/testsuite/tests/polykinds/T14270.hs
+++ b/testsuite/tests/polykinds/T14270.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE ViewPatterns #-}
 {-# LANGUAGE TypeOperators #-}
 {-# LANGUAGE RankNTypes #-}
@@ -15,10 +14,12 @@ import Data.Kind (Type)
 import GHC.Fingerprint (Fingerprint, fingerprintFingerprints)
 import GHC.Types (RuntimeRep, TYPE, TyCon)
 
-data (a :: k1) :~~: (b :: k2) where
+type (:~~:) :: k1 -> k2 -> Type
+data a :~~: b where
   HRefl :: a :~~: a
 
-data TypeRep (a :: k) where
+type TypeRep :: k -> Type
+data TypeRep a where
     TrTyCon :: {-# UNPACK #-} !Fingerprint -> !TyCon -> [SomeTypeRep]
             -> TypeRep (a :: k)
 
diff --git a/testsuite/tests/polykinds/T14450.hs b/testsuite/tests/polykinds/T14450.hs
index e660263b19d33626ae63e491996232544447a620..c1246056a3f8e826838c2cbc433d6735071a871e 100644
--- a/testsuite/tests/polykinds/T14450.hs
+++ b/testsuite/tests/polykinds/T14450.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# Language KindSignatures, TypeOperators, PolyKinds, TypeOperators,
              ConstraintKinds, TypeFamilies, DataKinds, GADTs,
              AllowAmbiguousTypes, InstanceSigs #-}
@@ -13,9 +12,11 @@ type a ~> b = TyFun a b -> Type
 
 type Cat ob = ob -> ob -> Type
 
-type SameKind (a :: k) (b :: k) = (() :: Constraint)
+type SameKind :: k -> k -> Constraint
+type SameKind a b = ()
 
-type family Apply (f :: a ~> b) (x :: a) :: b where
+type Apply :: (a ~> b) -> (a -> b)
+type family Apply f x where
   Apply IddSym0 x = Idd x
 
 class Varpi (f :: i ~> j) where
diff --git a/testsuite/tests/polykinds/T14450.stderr b/testsuite/tests/polykinds/T14450.stderr
index 0c5110a4428b358dcab12841cca5f18c3f99f017..485ff0be9591d75b99d58f67c0398138580171d6 100644
--- a/testsuite/tests/polykinds/T14450.stderr
+++ b/testsuite/tests/polykinds/T14450.stderr
@@ -1,5 +1,5 @@
 
-T14450.hs:34:3: error:
+T14450.hs:35:3: error:
     • Type indexes must match class instance head
       Expected: Dom @k @k (IddSym0 @k)
         Actual: Dom @(*) @(*) (IddSym0 @(*))
diff --git a/testsuite/tests/polykinds/T15787.hs b/testsuite/tests/polykinds/T15787.hs
index fbe67f3356f3954c6673f8c0e41bd5e41cc12973..3f224aaa94c3c24737c5a9f640385ce438be8728 100644
--- a/testsuite/tests/polykinds/T15787.hs
+++ b/testsuite/tests/polykinds/T15787.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# Language RankNTypes #-}
 {-# Language TypeApplications #-}
 {-# Language DataKinds        #-}
@@ -6,13 +5,15 @@
 {-# Language GADTs            #-}
 {-# Language TypeFamilies     #-}
 
+module T15787 where
+
 import Data.Kind
 
 class Ríki (ob :: Type) where
  type Hom :: ob -> ob -> Type
 
-data
-  Kl_kind :: forall ob . (ob -> ob) -> ob -> Type where
+type Kl_kind :: forall ob . (ob -> ob) -> ob -> Type
+data Kl_kind m k where
   Kl      :: k -> Kl_kind (m :: ob -> ob) k
 
 type family
diff --git a/testsuite/tests/polykinds/T15787.stderr b/testsuite/tests/polykinds/T15787.stderr
index 831cde0235a8fc91e878fa112dacfec5ae9a3b2e..5eceea0c887196f97f885a5d94246826e9e5f0b0 100644
--- a/testsuite/tests/polykinds/T15787.stderr
+++ b/testsuite/tests/polykinds/T15787.stderr
@@ -1,9 +1,9 @@
 
-T15787.hs:16:14: error: [GHC-25897]
+T15787.hs:17:14: error: [GHC-25897]
     • Expected a type, but ‘k’ has kind ‘ob1’
       ‘ob1’ is a rigid type variable bound by
         the type signature for ‘Kl’
-        at T15787.hs:16:3-43
+        at T15787.hs:17:3-43
     • In the type ‘k’
       In the definition of data constructor ‘Kl’
       In the data declaration for ‘Kl_kind’
diff --git a/testsuite/tests/polykinds/T16244.hs b/testsuite/tests/polykinds/T16244.hs
index 9b29c2237ac5e4000bd38eeb8841f44c3caebf8f..8af40f70155aa6e9b5a02a765862841d72788325 100644
--- a/testsuite/tests/polykinds/T16244.hs
+++ b/testsuite/tests/polykinds/T16244.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE ConstraintKinds #-}
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
@@ -8,5 +7,9 @@ module T16244 where
 import Data.Kind
 
 type Const a b = a
-type SameKind (a :: k) (b :: k) = (() :: Constraint)
-class SameKind a b => C (k :: Const Type a) (b :: k)
+
+type SameKind :: k -> k -> Constraint
+type SameKind a b = ()
+
+type C :: forall a. forall (k :: Const Type a) -> k -> Constraint
+class SameKind a b => C @a k b
diff --git a/testsuite/tests/polykinds/T16244.stderr b/testsuite/tests/polykinds/T16244.stderr
index 1d9a4560968faafc0b8a8aa2ff4c43c07e275f02..92baf84db8645d4098c45a7f32ebc8c35b465b35 100644
--- a/testsuite/tests/polykinds/T16244.stderr
+++ b/testsuite/tests/polykinds/T16244.stderr
@@ -1,11 +1,11 @@
 
-T16244.hs:12:18: error: [GHC-25897]
+T16244.hs:15:18: error: [GHC-25897]
     • Expected kind ‘k1’, but ‘b’ has kind ‘k2’
       ‘k2’ is a rigid type variable bound by
         the class declaration for ‘C’
-        at T16244.hs:12:26
+        at T16244.hs:15:28
       ‘k1’ is a rigid type variable bound by
         the class declaration for ‘C’
-        at T16244.hs:12:1-52
+        at T16244.hs:14:11-65
     • In the second argument of ‘SameKind’, namely ‘b’
       In the class declaration for ‘C’
diff --git a/testsuite/tests/polykinds/T16245.hs b/testsuite/tests/polykinds/T16245.hs
index ba8c6bd566e2e0d8b80b9b1654e2f9ea86972d5e..4aecdbca3fc433ec1238e12bce3e48d9cfe2b253 100644
--- a/testsuite/tests/polykinds/T16245.hs
+++ b/testsuite/tests/polykinds/T16245.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE ConstraintKinds #-}
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE PolyKinds #-}
@@ -8,5 +7,9 @@ module T16245 where
 import Data.Kind
 
 type Const a b = a
-type SameKind (a :: k) (b :: k) = (() :: Constraint)
-class (forall (b :: k). SameKind a b) => C (k :: Const Type a)
+
+type SameKind :: k -> k -> Constraint
+type SameKind a b = ()
+
+type C :: forall a. Const Type a -> Constraint
+class (forall (b :: k). SameKind a b) => C @a k
diff --git a/testsuite/tests/polykinds/T16245.stderr b/testsuite/tests/polykinds/T16245.stderr
index 41c7d0d8ab2cbfbab7b0a2748db42e08a3613db9..a57b85425021e01e27939e3a18b44af56f6ce43d 100644
--- a/testsuite/tests/polykinds/T16245.stderr
+++ b/testsuite/tests/polykinds/T16245.stderr
@@ -1,11 +1,11 @@
 
-T16245.hs:12:36: error: [GHC-25897]
+T16245.hs:15:36: error: [GHC-25897]
     • Expected kind ‘k1’, but ‘b’ has kind ‘k2’
       ‘k2’ is a rigid type variable bound by
         the class declaration for ‘C’
-        at T16245.hs:12:45
+        at T16245.hs:15:47
       ‘k1’ is a rigid type variable bound by
         the class declaration for ‘C’
-        at T16245.hs:12:1-62
+        at T16245.hs:14:11-46
     • In the second argument of ‘SameKind’, namely ‘b’
       In the class declaration for ‘C’
diff --git a/testsuite/tests/polykinds/T16245a.hs b/testsuite/tests/polykinds/T16245a.hs
index 2defabb36db2114c2a7942d94f270353f00c0ef9..18e10df4b673f5dee2911f74240f6bd590a2b37c 100644
--- a/testsuite/tests/polykinds/T16245a.hs
+++ b/testsuite/tests/polykinds/T16245a.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE PolyKinds #-}
 {-# LANGUAGE DataKinds #-}
@@ -9,4 +8,5 @@ import Data.Kind
 type Const a b = a
 data SameKind :: k -> k -> Type
 
-newtype T (k :: Const Type a) = MkT (forall (b :: k). SameKind a b)
+type T :: forall a. Const Type a -> Type
+newtype T @a k = MkT (forall (b :: k). SameKind a b)
diff --git a/testsuite/tests/polykinds/T16245a.stderr b/testsuite/tests/polykinds/T16245a.stderr
index 2d99b7f415405113f5eba6017956684d6cc4565d..6d04f5f6896fe7347fd9ae3e8110b216198eb597 100644
--- a/testsuite/tests/polykinds/T16245a.stderr
+++ b/testsuite/tests/polykinds/T16245a.stderr
@@ -1,12 +1,12 @@
 
-T16245a.hs:12:66: error: [GHC-25897]
+T16245a.hs:12:51: error: [GHC-25897]
     • Expected kind ‘k1’, but ‘b’ has kind ‘k2’
       ‘k2’ is a rigid type variable bound by
         the newtype declaration for ‘T’
-        at T16245a.hs:12:12
+        at T16245a.hs:12:14
       ‘k1’ is a rigid type variable bound by
         the newtype declaration for ‘T’
-        at T16245a.hs:12:1-67
+        at T16245a.hs:11:11-40
     • In the second argument of ‘SameKind’, namely ‘b’
       In the type ‘(forall (b :: k). SameKind a b)’
       In the definition of data constructor ‘MkT’
diff --git a/testsuite/tests/polykinds/T17841.hs b/testsuite/tests/polykinds/T17841.hs
index 24189a6e8403e346f95a4d21ce356d1cbcb6dcb0..f5f4657c0c4114fdee1169316899e96d35e3a430 100644
--- a/testsuite/tests/polykinds/T17841.hs
+++ b/testsuite/tests/polykinds/T17841.hs
@@ -1,8 +1,10 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE PolyKinds #-}
 
 module T17841 where
 
+import Data.Kind
+
 data Proxy a = Proxy
 
-class Foo (t :: k) where foo :: Proxy (a :: t)
+type Foo :: k -> Constraint
+class Foo t where foo :: Proxy (a :: t)
diff --git a/testsuite/tests/polykinds/T17841.stderr b/testsuite/tests/polykinds/T17841.stderr
index 5c95fb8d067728337ff4845c5a96a7c7bec44a40..d93800d95107a329dc07f4ddd9080d4fa879fd19 100644
--- a/testsuite/tests/polykinds/T17841.stderr
+++ b/testsuite/tests/polykinds/T17841.stderr
@@ -1,9 +1,9 @@
 
-T17841.hs:8:45: error: [GHC-25897]
+T17841.hs:10:38: error: [GHC-25897]
     • Expected a type, but ‘t’ has kind ‘k’
       ‘k’ is a rigid type variable bound by
         the class declaration for ‘Foo’
-        at T17841.hs:8:12-17
+        at T17841.hs:9:13-27
     • In the kind ‘t’
       In the first argument of ‘Proxy’, namely ‘(a :: t)’
       In the type signature: foo :: Proxy (a :: t)
diff --git a/testsuite/tests/polykinds/T6137.hs b/testsuite/tests/polykinds/T6137.hs
index 6b7ebc47cc46104be478041fcf80916fc5e9bd39..6b7368f2c6b38bdd37bb6a32a57f92e6db820c86 100644
--- a/testsuite/tests/polykinds/T6137.hs
+++ b/testsuite/tests/polykinds/T6137.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE PolyKinds #-}
 {-# LANGUAGE KindSignatures #-}
@@ -43,5 +42,6 @@ data instance In (F f) r x where
   D:R:InioFrx0 ::    R:InioFrx o i f ~ In i o ('F i o f)
 -}
 -- Requires polymorphic recursion
-data In' (f :: Code i o) :: (i -> Type) -> o -> Type where
+type In' :: Code i o -> (i -> Type) -> o -> Type
+data In' f r t where
   MkIn' :: In' g (Sum1 r (In' (F g) r)) t -> In' (F g) r t
diff --git a/testsuite/tests/polykinds/T7053.hs b/testsuite/tests/polykinds/T7053.hs
index 9540e71c422bbd31cc1a6ecc16601e51dcbd8560..9dc7d96f6b82aedc38e4a6aba8ee7109e3bce8a8 100644
--- a/testsuite/tests/polykinds/T7053.hs
+++ b/testsuite/tests/polykinds/T7053.hs
@@ -1,8 +1,9 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE PolyKinds, GADTs #-}
 
 module T7053 where
 
+-- No standalone kind signature or return kind annotation.
+-- We are testing that GHC does not panic without either of those.
 data TypeRep (a :: k) where
    TyApp   :: TypeRep a -> TypeRep b -> TypeRep (a b)
 
diff --git a/testsuite/tests/polykinds/T7053.stderr b/testsuite/tests/polykinds/T7053.stderr
new file mode 100644
index 0000000000000000000000000000000000000000..49f2fe68bc923b26dd915d0db36669048c9e3c6b
--- /dev/null
+++ b/testsuite/tests/polykinds/T7053.stderr
@@ -0,0 +1,6 @@
+
+T7053.hs:8:23: error: [GHC-25897]
+    • Expected kind ‘k’, but ‘a’ has kind ‘k -> k’
+    • In the first argument of ‘TypeRep’, namely ‘a’
+      In the type ‘TypeRep a’
+      In the definition of data constructor ‘TyApp’
diff --git a/testsuite/tests/polykinds/T7053a.hs b/testsuite/tests/polykinds/T7053a.hs
index 8b798d530e196e52c9887e1da1e6db44ad13e6c1..559c190a2fed04e5846166bf5c6641df48273f27 100644
--- a/testsuite/tests/polykinds/T7053a.hs
+++ b/testsuite/tests/polykinds/T7053a.hs
@@ -1,11 +1,10 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE PolyKinds, GADTs #-}
 
 module T7053a where
 
 import Data.Kind (Type)
 
--- This time with a fully-specified kind signature
-data TypeRep (a :: k) :: Type where
+type TypeRep :: k -> Type
+data TypeRep a where
    TyApp   :: TypeRep a -> TypeRep b -> TypeRep (a b)
 
diff --git a/testsuite/tests/polykinds/T7224.hs b/testsuite/tests/polykinds/T7224.hs
index 0283b4be3cc9c645ec4bdb57effeac3b1509aa00..e4b34c0e858e0cdbad51aad838101bc48b8f415f 100644
--- a/testsuite/tests/polykinds/T7224.hs
+++ b/testsuite/tests/polykinds/T7224.hs
@@ -1,8 +1,10 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE PolyKinds #-}
 
 module T7224 where
 
-class PMonad' (m :: i -> i -> * -> *) where
+import Data.Kind
+
+type PMonad' :: (i -> i -> Type -> Type) -> Constraint
+class PMonad' @i m where
   ret'  :: a -> m i i a
   bind' :: m i j a -> (a -> m j k b) -> m i k b
diff --git a/testsuite/tests/polykinds/T7224.stderr b/testsuite/tests/polykinds/T7224.stderr
index 9ef09aed7b605671cbfcb21b259aecf6eb87de02..87edb3d81e390dc26bca9eaa485c4583f9a5b60f 100644
--- a/testsuite/tests/polykinds/T7224.stderr
+++ b/testsuite/tests/polykinds/T7224.stderr
@@ -1,18 +1,18 @@
 
-T7224.hs:7:19: error: [GHC-25897]
+T7224.hs:9:19: error: [GHC-25897]
     • Expected kind ‘i’, but ‘i’ has kind ‘*’
       ‘i’ is a rigid type variable bound by
         the class declaration for ‘PMonad'’
-        at T7224.hs:6:16-36
+        at T7224.hs:8:16
     • In the first argument of ‘m’, namely ‘i’
       In the type signature: ret' :: a -> m i i a
       In the class declaration for ‘PMonad'’
 
-T7224.hs:8:14: error: [GHC-25897]
+T7224.hs:10:14: error: [GHC-25897]
     • Expected kind ‘i’, but ‘i’ has kind ‘*’
       ‘i’ is a rigid type variable bound by
         the class declaration for ‘PMonad'’
-        at T7224.hs:6:16-36
+        at T7224.hs:8:16
     • In the first argument of ‘m’, namely ‘i’
       In the type signature:
         bind' :: m i j a -> (a -> m j k b) -> m i k b
diff --git a/testsuite/tests/polykinds/T9200.hs b/testsuite/tests/polykinds/T9200.hs
index 96edb604adc76b078f3311c9e890b8e8d8df0177..43691bad4022603aaf623b7f39f9fd84a7001d29 100644
--- a/testsuite/tests/polykinds/T9200.hs
+++ b/testsuite/tests/polykinds/T9200.hs
@@ -1,32 +1,37 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE PolyKinds, MultiParamTypeClasses, FlexibleContexts, DataKinds,
              TypeFamilies #-}
 
 module T9200 where
 
-import Data.Kind (Type)
+import Data.Kind (Type, Constraint)
 import Data.Proxy
 
 ------
--- test CUSK on classes
+-- test SAKS on classes
 
-class C (f :: k) (a :: k2) where
+type C :: k -> k2 -> Constraint
+class C f a where
   c_meth :: D a => Proxy f -> Proxy a -> ()
-  
+
 class C () a => D a
 
 
 ---------
---- test CUSK on type synonyms
+--- test SAKS on type synonyms
+
 data T1 a b c = MkT1 (S True b c)
 data T2 p q r = MkT2 (S p 5 r)
 data T3 x y q = MkT3 (S x y '())
-type S (f :: k1) (g :: k2) (h :: k3) = ((T1 f g h, T2 f g h, T3 f g h) :: Type)
+
+type S :: k1 -> k2 -> k3 -> Type
+type S f g h = (T1 f g h, T2 f g h, T3 f g h)
 
 
 ----------
--- test CUSK on closed type families
-type family F (a :: k) :: k where
+-- test SAKS on closed type families
+
+type F :: k -> k
+type family F a where
   F True = False
   F False = True
   F x = x
diff --git a/testsuite/tests/polykinds/all.T b/testsuite/tests/polykinds/all.T
index 7a8d5aa7b427afcb497beced9cbef40600cdf61d..ab44471511af3a1187697725b69f5d1744270fb0 100644
--- a/testsuite/tests/polykinds/all.T
+++ b/testsuite/tests/polykinds/all.T
@@ -52,7 +52,7 @@ test('T6137', normal, compile,[''])
 test('T6093', normal, compile,[''])
 test('T6049', normal, compile,[''])
 test('T6129', normal, compile_fail,[''])
-test('T7053', normal, compile,[''])
+test('T7053', normal, compile_fail,[''])
 test('T7053a', normal, compile,[''])
 test('T7020', normal, compile,[''])
 test('T7022', req_th, makefile_test, [])
diff --git a/testsuite/tests/simplCore/should_compile/T14270a.hs b/testsuite/tests/simplCore/should_compile/T14270a.hs
index 1cf422f709d5175be2cf708975d1ebea50627781..f79afee9ea4ef03d5eb5c4a2621f19a9b457c336 100644
--- a/testsuite/tests/simplCore/should_compile/T14270a.hs
+++ b/testsuite/tests/simplCore/should_compile/T14270a.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE TypeApplications, ScopedTypeVariables, GADTs, RankNTypes,
              PolyKinds, KindSignatures #-}
 {-# OPTIONS_GHC -O2 #-} -- We are provoking a bug in GHC.Core.Opt.SpecConstr
@@ -10,7 +9,8 @@ import Data.Proxy
 
 data T a = T1 (T a) | T2
 
-data K (a :: k) where
+type K :: k -> Type
+data K a where
   K1 :: K (a :: Type)
   K2 :: K a
 
diff --git a/testsuite/tests/simplCore/should_compile/T16979b.hs b/testsuite/tests/simplCore/should_compile/T16979b.hs
index 92c6d28a07ee4dcb04dd59cd2c66603c95f80500..00aeecf8bcd7bfc961078759cd4db7153da4a272 100644
--- a/testsuite/tests/simplCore/should_compile/T16979b.hs
+++ b/testsuite/tests/simplCore/should_compile/T16979b.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE AllowAmbiguousTypes    #-}
 {-# LANGUAGE DataKinds              #-}
 {-# LANGUAGE DeriveGeneric          #-}
@@ -160,7 +159,8 @@ iso :: (s -> a) -> (b -> t) -> Iso s t a b
 iso sa bt = dimap sa (fmap bt)
 {-# INLINE iso #-}
 
-type family LookupParam (a :: k) (p :: Nat) :: Maybe Nat where
+type LookupParam :: k -> Nat -> Maybe Nat
+type family LookupParam a p where
   LookupParam (param (n :: Nat)) m = 'Nothing
   LookupParam (a (_ (m :: Nat))) n = IfEq m n ('Just 0) (MaybeAdd (LookupParam a n) 1)
   LookupParam (a _) n = MaybeAdd (LookupParam a n) 1
@@ -177,20 +177,24 @@ type family IfEq (a :: k) (b :: k) (t :: l) (f :: l) :: l where
 data Sub where
   Sub :: Nat -> k -> Sub
 
-type family ReplaceArg (t :: k) (pos :: Nat) (to :: j) :: k where
+type ReplaceArg :: k -> Nat -> j -> k
+type family ReplaceArg t pos to where
   ReplaceArg (t a) 0 to = t to
   ReplaceArg (t a) pos to = ReplaceArg t (pos - 1) to a
   ReplaceArg t _ _ = t
 
-type family ReplaceArgs (t :: k) (subs :: [Sub]) :: k where
+type ReplaceArgs :: k -> [Sub] -> k
+type family ReplaceArgs t subs where
   ReplaceArgs t '[] = t
   ReplaceArgs t ('Sub n arg ': ss) = ReplaceArgs (ReplaceArg t n arg) ss
 
-type family ArgAt (t :: k) (n :: Nat) :: j where
+type ArgAt :: k -> Nat -> j
+type family ArgAt t n where
   ArgAt (t a) 0 = a
   ArgAt (t a) n = ArgAt t (n - 1)
 
-type family Unify (a :: k) (b :: k) :: [Sub] where
+type Unify :: k -> k -> [Sub]
+type family Unify a b where
   Unify (p n _ 'PTag) a' = '[ 'Sub n a']
   Unify (a x) (b y) = Unify x y ++ Unify a b
   Unify a a = '[]
@@ -208,7 +212,8 @@ data PTag = PTag
 type family P :: Nat -> k -> PTag -> k
 type family Param :: Nat -> k where
 
-type family Indexed (t :: k) (i :: Nat) :: k where
+type Indexed :: k -> Nat -> k
+type family Indexed t i where
   Indexed (t a) i = Indexed t (i + 1) (Param i)
   Indexed t _     = t
 
diff --git a/testsuite/tests/th/ClosedFam2TH.hs b/testsuite/tests/th/ClosedFam2TH.hs
index 8786e24aa609bac3e6f5f459b9576cd4dbe9f27c..2003557bf4af95ced71370467312d3b9e15eab0b 100644
--- a/testsuite/tests/th/ClosedFam2TH.hs
+++ b/testsuite/tests/th/ClosedFam2TH.hs
@@ -1,11 +1,14 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE TemplateHaskell, TypeFamilies, PolyKinds, TypeApplications, TypeFamilyDependencies #-}
 
 module ClosedFam2 where
 
 import Language.Haskell.TH
 
-$( return [ ClosedTypeFamilyD
+$( return [ KiSigD (mkName "Equals")
+              (ArrowT `AppT` VarT (mkName "k") `AppT`
+              (ArrowT `AppT` VarT (mkName "k") `AppT`
+               VarT (mkName "k")))
+          , ClosedTypeFamilyD
               (TypeFamilyHead
                 (mkName "Equals")
                 [ KindedTV (mkName "a") BndrReq (VarT (mkName "k"))
@@ -27,7 +30,8 @@ a = (5 :: Int)
 b :: Equals Int Bool
 b = False
 
-$( return [ ClosedTypeFamilyD
+$( return [ KiSigD (mkName "Foo") (ArrowT `AppT` VarT (mkName "k") `AppT` StarT)
+          , ClosedTypeFamilyD
                (TypeFamilyHead
                 (mkName "Foo")
                 [ KindedTV (mkName "a") BndrReq (VarT (mkName "k"))]
diff --git a/testsuite/tests/th/T12045TH1.hs b/testsuite/tests/th/T12045TH1.hs
index 7d5ad856c31f7f1716c883df1bb9cb21e7ae484b..94797bd2aa0e00f33d65aa0b3a7cb22eb8db99a5 100644
--- a/testsuite/tests/th/T12045TH1.hs
+++ b/testsuite/tests/th/T12045TH1.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE TemplateHaskell, DataKinds, PolyKinds
              , TypeApplications, TypeFamilies  #-}
 
@@ -6,7 +5,8 @@ module T12045TH1 where
 import Data.Kind
 import Language.Haskell.TH hiding (Type)
 
-$([d| type family F (a :: k) :: Type where
+$([d| type F :: k -> Type
+      type family F a where
                      F @Type Int = Bool
                      F @(Type->Type) Maybe = Char |])
 
diff --git a/testsuite/tests/th/T12045TH1.stderr b/testsuite/tests/th/T12045TH1.stderr
index fd727295eb971cbb11457b573b8caa3d1780ce06..e165ef7deab56a67d694d5b7ae5279a4c34d25c4 100644
--- a/testsuite/tests/th/T12045TH1.stderr
+++ b/testsuite/tests/th/T12045TH1.stderr
@@ -1,9 +1,12 @@
-T12045TH1.hs:(9,2)-(11,53): Splicing declarations
-    [d| type family F (a :: k) :: Type where
+T12045TH1.hs:(8,2)-(11,53): Splicing declarations
+    [d| type F :: k -> Type
+        
+        type family F a where
           F @Type Int = Bool
           F @(Type -> Type) Maybe = Char |]
   ======>
-    type family F (a :: k) :: Type where
+    type F :: k -> Type
+    type family F a where
       F @Type Int = Bool
       F @(Type -> Type) Maybe = Char
 T12045TH1.hs:14:2-32: Splicing declarations
diff --git a/testsuite/tests/th/T12045TH2.hs b/testsuite/tests/th/T12045TH2.hs
index cab400d301ca2c4d1de391f065043da7cc163ffa..2609cf3d391cc7ae4b12f5cfa31da5287e6e35a6 100644
--- a/testsuite/tests/th/T12045TH2.hs
+++ b/testsuite/tests/th/T12045TH2.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE TemplateHaskell, TypeApplications, PolyKinds
              , TypeFamilies, DataKinds #-}
 
@@ -8,7 +7,8 @@ import Data.Kind
 import Language.Haskell.TH hiding (Type)
 import System.IO
 
-type family Foo (a :: k) :: Type where
+type Foo :: k -> Type
+type family Foo a where
   Foo @Type a = Bool
 
 type family Baz (a :: k)
@@ -17,13 +17,16 @@ type instance Baz @(Type->Type->Type) a = Char
 $( do FamilyI foo@(ClosedTypeFamilyD (TypeFamilyHead _ tvbs1 res1 m_kind1)
                    [TySynEqn (Just bndrs1) (AppT _ lhs1) rhs1])
               [] <- reify ''Foo
+      sig1 <- reifyType ''Foo
       FamilyI baz@(OpenTypeFamilyD (TypeFamilyHead _ tvbs2 res2 m_kind2))
               [inst@(TySynInstD (TySynEqn (Just bndrs2) (AppT _ lhs2) rhs2))] <- reify ''Baz
+      runIO $ putStrLn $ pprint sig1
       runIO $ putStrLn $ pprint foo
       runIO $ putStrLn $ pprint baz
       runIO $ putStrLn $ pprint inst
       runIO $ hFlush stdout
-      return [ ClosedTypeFamilyD
+      return [ KiSigD (mkName "Foo'") sig1
+             , ClosedTypeFamilyD
                  (TypeFamilyHead (mkName "Foo'") tvbs1 res1 m_kind1)
                  [TySynEqn (Just bndrs1) (AppT (ConT (mkName "Foo'")) lhs1) rhs1]
              , OpenTypeFamilyD
diff --git a/testsuite/tests/th/T12045TH2.stderr b/testsuite/tests/th/T12045TH2.stderr
index ce626e5e018031e2d0ac76f9c269b94b727bf00d..5516e7d48012e56c6d2d7907c0f2733bcf1c2bed 100644
--- a/testsuite/tests/th/T12045TH2.stderr
+++ b/testsuite/tests/th/T12045TH2.stderr
@@ -1,3 +1,4 @@
+forall (k_0 :: *) . k_0 -> *
 type family T12045TH2.Foo (a_0 :: k_1) :: * where
     forall (a_2 :: *). T12045TH2.Foo (a_2 :: *) = GHC.Types.Bool
 type family T12045TH2.Baz (a_0 :: k_1) :: *
diff --git a/testsuite/tests/th/T12646.hs b/testsuite/tests/th/T12646.hs
index aa33f5cb058b0e6594274a740cb8825f854eda54..0472ce60b046e91be17121ffe06deffd40e500bc 100644
--- a/testsuite/tests/th/T12646.hs
+++ b/testsuite/tests/th/T12646.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE PolyKinds #-}
 {-# LANGUAGE TemplateHaskell #-}
 {-# LANGUAGE TypeFamilies #-}
@@ -8,7 +7,8 @@ import Language.Haskell.TH hiding (Type)
 import System.IO
 import Data.Kind (Type)
 
-type family F (a :: k) :: Type where
+type F :: k -> Type
+type family F a where
     F (a :: Type -> Type) = Int
     F (a :: k) = Char
 
diff --git a/testsuite/tests/th/T15243.hs b/testsuite/tests/th/T15243.hs
index c429f783aaebbba4c69bc86013f0974bb0504735..afd446ac75eaea21b0f8ecb2440713ffd71c0abd 100644
--- a/testsuite/tests/th/T15243.hs
+++ b/testsuite/tests/th/T15243.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE PolyKinds #-}
 {-# LANGUAGE TemplateHaskell #-}
@@ -8,7 +7,8 @@ module T15243 where
 
 data Unit = Unit
 
-$([d| type family F (a :: k) :: k where
+$([d| type F :: k -> k
+      type family F a where
         F 'Unit = 'Unit
         F '(,)  = '(,)
         F '[]   = '[]
diff --git a/testsuite/tests/th/T15243.stderr b/testsuite/tests/th/T15243.stderr
index 74f316e7d7a60b04eb00bf92980d5a8d4353c39c..ac43033524fb360e90b1402d7763e10714bf930b 100644
--- a/testsuite/tests/th/T15243.stderr
+++ b/testsuite/tests/th/T15243.stderr
@@ -1,11 +1,14 @@
-T15243.hs:(11,2)-(16,7): Splicing declarations
-    [d| type family F (a :: k) :: k where
+T15243.hs:(10,2)-(16,7): Splicing declarations
+    [d| type F :: k -> k
+        
+        type family F a where
           F 'Unit = 'Unit
           F '(,) = '(,)
           F '[] = '[]
           F '(:) = '(:) |]
   ======>
-    type family F (a :: k) :: k where
+    type F :: k -> k
+    type family F a where
       F 'Unit = 'Unit
       F '(,) = '(,)
       F '[] = '[]
diff --git a/testsuite/tests/typecheck/should_compile/SplitWD.hs b/testsuite/tests/typecheck/should_compile/SplitWD.hs
index b0f37cc4b1ce1289042a4c155942c47f34e5c148..55012effe1fd49eec4662d9506837410cce2a8e3 100644
--- a/testsuite/tests/typecheck/should_compile/SplitWD.hs
+++ b/testsuite/tests/typecheck/should_compile/SplitWD.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE ScopedTypeVariables, TypeOperators, DataKinds, PolyKinds,
              TypeFamilies, GADTs, StandaloneDeriving #-}
 
@@ -18,7 +17,8 @@ data Vec :: Type -> Nat -> Type where
   (:>) :: a -> Vec a n -> Vec a (Succ n)
 infixr 5 :>
 
-type family (xs :: Vec a n) +++ (ys :: Vec a m) :: Vec a (n + m) where
+type (+++) :: Vec a n -> Vec a m -> Vec a (n + m)
+type family xs +++ ys where
   VNil +++ ys = ys
   (x :> xs) +++ ys = x :> (xs +++ ys)
 infixr 5 +++
diff --git a/testsuite/tests/typecheck/should_compile/T11524.hs b/testsuite/tests/typecheck/should_compile/T11524.hs
index a8c40c88c6d53c65c837e5a6b7a34748db51a830..182df054770b327db931a263e305a5ac0bbe03a1 100644
--- a/testsuite/tests/typecheck/should_compile/T11524.hs
+++ b/testsuite/tests/typecheck/should_compile/T11524.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE GADTs #-}
 {-# LANGUAGE PolyKinds #-}
 {-# LANGUAGE ExplicitForAll #-}
@@ -7,7 +6,10 @@
 
 module T11524 where
 
-data AType (a :: k) where
+import Data.Kind (Type)
+
+type AType :: k -> Type
+data AType a where
     AMaybe :: AType Maybe
     AInt :: AType Int
     AApp :: forall k1 k2 (a :: k1 -> k2) (b :: k1).
diff --git a/testsuite/tests/typecheck/should_compile/T12919.hs b/testsuite/tests/typecheck/should_compile/T12919.hs
index 825b7f65c104b669524e393a4a47bd443e23cb02..9fd31cdacf6539ac03a66da8efbfe25cf7125b9b 100644
--- a/testsuite/tests/typecheck/should_compile/T12919.hs
+++ b/testsuite/tests/typecheck/should_compile/T12919.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE DataKinds, PolyKinds, TypeFamilies, GADTs, ConstraintKinds, TypeOperators #-}
 
 module T12919 where
@@ -13,7 +12,8 @@ data V :: N -> Type where
 type family VC (n :: N) :: Type where
   VC Z = Type
 
-type family VF (xs :: V n) (f :: VC n) :: Type where
+type VF :: V n -> VC n -> Type
+type family VF xs f where
   VF VZ f = f
 
 data Dict c where
diff --git a/testsuite/tests/typecheck/should_compile/T13333.hs b/testsuite/tests/typecheck/should_compile/T13333.hs
index 843b3d816502274576dda52c9af201d7dde183b4..7bf10aa4c90460bab78f701dea228bc33d84abb6 100644
--- a/testsuite/tests/typecheck/should_compile/T13333.hs
+++ b/testsuite/tests/typecheck/should_compile/T13333.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE ConstraintKinds #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE GADTs #-}
@@ -9,12 +8,13 @@
 {-# LANGUAGE TypeOperators #-}
 module T13333 where
 
+import Data.Kind (Type, Constraint)
 import Data.Data
-import GHC.Exts (Constraint)
 
 data T (phantom :: k) = T
 
-data D (p :: k -> Constraint) (x :: j) where
+type D :: (k -> Constraint) -> j -> Type
+data D p x where
   D :: forall k (p :: k -> Constraint) (x :: k). p x => D p x
 
 class Possibly p x where
diff --git a/testsuite/tests/typecheck/should_compile/T13822.hs b/testsuite/tests/typecheck/should_compile/T13822.hs
index cd5ff23478ec74c025001b32954773278b14df6c..6bdad43b54856f069798c36219d3811539f74457 100644
--- a/testsuite/tests/typecheck/should_compile/T13822.hs
+++ b/testsuite/tests/typecheck/should_compile/T13822.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE GADTs, TypeOperators, PolyKinds, DataKinds,
              TypeFamilyDependencies, RankNTypes, LambdaCase, EmptyCase,
              UndecidableInstances #-}
@@ -20,14 +19,15 @@ type family
   IK STAR   = Type
   IK (a:>b) = IK a -> IK b
 
-type family
-  I (t :: Ty k) = (res :: IK k) | res -> t where
+type I :: Ty k -> IK k
+type family I t = res | res -> t where
   I TInt       = Int
   I TBool      = Bool
   I TMaybe     = Maybe
   I (TApp f a) = (I f) (I a)
 
-data TyRep (k :: KIND) (t :: Ty k) where
+type TyRep :: forall (k :: KIND) -> Ty k -> Type
+data TyRep k t where
   TyInt   :: TyRep STAR         TInt
   TyBool  :: TyRep STAR         TBool
   TyMaybe :: TyRep (STAR:>STAR) TMaybe
diff --git a/testsuite/tests/typecheck/should_compile/T13879.hs b/testsuite/tests/typecheck/should_compile/T13879.hs
index 8a70565e7a4de417fb009293758d2fdda728460e..c8e3a9b4e01cfd45142401d262122d30db5d20fe 100644
--- a/testsuite/tests/typecheck/should_compile/T13879.hs
+++ b/testsuite/tests/typecheck/should_compile/T13879.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE GADTs #-}
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE ScopedTypeVariables #-}
@@ -11,7 +10,8 @@ import Data.Kind
 
 data family Sing (a :: k)
 
-data HR (a :: j) (b :: k) where
+type HR :: j -> k -> Type
+data HR a b where
   HRefl :: HR a a
 
 data instance Sing (z :: HR a b) where
diff --git a/testsuite/tests/typecheck/should_compile/T14366.hs b/testsuite/tests/typecheck/should_compile/T14366.hs
index 52bc3a4338ea43a3ade73f76efb8eac7af5cafe5..d9e14d68a1127873a8735c468255f19bab9e9483 100644
--- a/testsuite/tests/typecheck/should_compile/T14366.hs
+++ b/testsuite/tests/typecheck/should_compile/T14366.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE PolyKinds #-}
 {-# LANGUAGE DataKinds #-}
@@ -8,7 +7,8 @@ module T14366 where
 import Data.Kind
 import Data.Type.Equality
 
-type family Cast (a :: Type) (b :: Type) (e :: a :~: b) (x :: a) :: b where
+type Cast :: forall a b -> (a :~: b) -> (a -> b)
+type family Cast a b e x where
   Cast _ _ Refl x = x
 
 type family F (a :: Type) :: Type where
diff --git a/testsuite/tests/typecheck/should_compile/T14451.hs b/testsuite/tests/typecheck/should_compile/T14451.hs
index 1d4493d20d6969430fd765b4b374d6887afab482..417cd7a08e80ea38e45660745a2eae66c17e1d5e 100644
--- a/testsuite/tests/typecheck/should_compile/T14451.hs
+++ b/testsuite/tests/typecheck/should_compile/T14451.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# Language KindSignatures, TypeOperators, PolyKinds, TypeOperators, ConstraintKinds, TypeFamilies, DataKinds, GADTs, AllowAmbiguousTypes, InstanceSigs, RankNTypes, UndecidableInstances #-}
 module T14451 where
 
@@ -10,8 +9,8 @@ type a ~> b = TyFun a b -> Type
 
 type Cat ob = ob -> ob -> Type
 
-type family
-  Apply (f :: a ~> b) (x :: a) :: b where
+type Apply :: (a ~> b) -> (a -> b)
+type family Apply f x where
   Apply (CompSym2 f g) a = Comp f g a
 
 data CompSym2 :: (b ~> c) -> (a ~> b) -> (a ~> c)
@@ -24,6 +23,6 @@ class Varpi (f :: i ~> j) where
 
   varpa :: Dom f a a' -> Cod f (f·a) (f·a')
 
-type family
-  Comp (f::k1 ~> k) (g::k2 ~> k1) (a::k2) :: k where
+type Comp :: (k1 ~> k) -> (k2 ~> k1) -> k2 -> k
+type family Comp f g a where
   Comp f g a = f · (g · a)
diff --git a/testsuite/tests/typecheck/should_compile/T15079.hs b/testsuite/tests/typecheck/should_compile/T15079.hs
index 22e86abc56089b88ba6d239cf62b2ffc937c57d3..484a870d1a243efc12ff144db79a4d4cfc90f65f 100644
--- a/testsuite/tests/typecheck/should_compile/T15079.hs
+++ b/testsuite/tests/typecheck/should_compile/T15079.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE GADTs #-}
 {-# LANGUAGE PolyKinds #-}
@@ -14,13 +13,16 @@ import           GHC.Exts (Any)
 
 infixl 4 :==
 -- | Heterogeneous Leibnizian equality.
-newtype (a :: j) :== (b :: k)
+type (:==) :: j -> k -> Type
+newtype a :== b
   = HRefl { hsubst :: forall (c :: forall (i :: Type). i -> Type). c a -> c b }
 
 -----
 
 newtype Coerce a = Coerce { uncoerce :: Starify a }
-type family Starify (a :: k) :: Type where
+
+type Starify :: k -> Type
+type family Starify a where
   Starify (a :: Type) = a
   Starify _           = Void
 
@@ -35,7 +37,8 @@ newtype Flay :: (forall (i :: Type). i -> i -> Type)
                  (j :: Type) (k :: Type) (a :: j) (b :: k).
           { unflay :: p a (MassageKind j b) } -> Flay p a b
 
-type family MassageKind (j :: Type) (a :: k) :: j where
+type MassageKind :: forall (j :: Type) -> k -> j
+type family MassageKind j a where
   MassageKind j (a :: j) = a
   MassageKind _ _        = Any
 
diff --git a/testsuite/tests/typecheck/should_compile/T6018.hs b/testsuite/tests/typecheck/should_compile/T6018.hs
index f4b431cda48cbfe07b6b91e82f79941e76ebe4be..1b2653d3ca49026d22b374534d852895bd67fcf1 100644
--- a/testsuite/tests/typecheck/should_compile/T6018.hs
+++ b/testsuite/tests/typecheck/should_compile/T6018.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE DataKinds                 #-}
 {-# LANGUAGE MultiParamTypeClasses     #-}
 {-# LANGUAGE PolyKinds                 #-}
@@ -200,7 +199,8 @@ class Kcl a b where
 
 -- Declaring kind injectivity. Here we only claim that knowing the RHS
 -- determines the LHS kind but not the type.
-type family L (a :: k1) = (r :: k2) | r -> k1 where
+type L :: k1 -> k2
+type family L @k1 a = r | r -> k1 where
     L 'True  = Int
     L 'False = Int
     L Maybe  = 3
diff --git a/testsuite/tests/typecheck/should_compile/T6018.stderr b/testsuite/tests/typecheck/should_compile/T6018.stderr
index bcbe0357c7e9a07da34397239ad87115a6516394..b793a61df34fc8b00dfd3049636010816ac9338e 100644
--- a/testsuite/tests/typecheck/should_compile/T6018.stderr
+++ b/testsuite/tests/typecheck/should_compile/T6018.stderr
@@ -2,10 +2,10 @@
 [2 of 3] Compiling T6018a           ( T6018a.hs, T6018a.o )
 [3 of 3] Compiling T6018            ( T6018.hs, T6018.o )
 
-T6018.hs:109:5: warning: [GHC-28129] [-Winaccessible-code (in -Wdefault)]
+T6018.hs:108:5: warning: [GHC-28129] [-Winaccessible-code (in -Wdefault)]
     Type family instance equation is overlapped:
-      Foo Bool = Bool -- Defined at T6018.hs:109:5
+      Foo Bool = Bool -- Defined at T6018.hs:108:5
 
-T6018.hs:116:5: warning: [GHC-28129] [-Winaccessible-code (in -Wdefault)]
+T6018.hs:115:5: warning: [GHC-28129] [-Winaccessible-code (in -Wdefault)]
     Type family instance equation is overlapped:
-      Bar Bool = Char -- Defined at T6018.hs:116:5
+      Bar Bool = Char -- Defined at T6018.hs:115:5
diff --git a/testsuite/tests/typecheck/should_compile/T7503a.hs b/testsuite/tests/typecheck/should_compile/T7503a.hs
index 638265a8dfb32854366006450e34b812becf25a4..4ef16e02d71997a64c07dc7f54da64c27f9f3fe8 100644
--- a/testsuite/tests/typecheck/should_compile/T7503a.hs
+++ b/testsuite/tests/typecheck/should_compile/T7503a.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE ExistentialQuantification, DataKinds, PolyKinds, KindSignatures, GADTs #-}
 module T7503a where
     import Data.Kind
@@ -6,7 +5,8 @@ module T7503a where
 
     data WrappedType = forall a. WrapType a
 
-    data A :: WrappedType -> Type where
+    type A :: WrappedType -> Type
+    data A a where
         MkA :: forall (a :: Type). AW a -> A (WrapType a)
 
     type AW  (a :: k) = A (WrapType a)
diff --git a/testsuite/tests/typecheck/should_compile/T9151.hs b/testsuite/tests/typecheck/should_compile/T9151.hs
index c3546438d2ec711fa2e90a696758133502409cbf..cc45517c9fa88d134d5d30c989768083704e492f 100644
--- a/testsuite/tests/typecheck/should_compile/T9151.hs
+++ b/testsuite/tests/typecheck/should_compile/T9151.hs
@@ -1,11 +1,12 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE PolyKinds, DataKinds, TypeFamilies, UndecidableInstances #-}
 
 module T9151 where
 
+import Data.Kind
 import Data.Proxy
 
-class PEnum (kproxy :: KProxy a) where
+type PEnum :: KProxy a -> Constraint
+class PEnum @a kproxy where
   type ToEnum (x :: a) :: Bool
   type ToEnum x = TEHelper
 
diff --git a/testsuite/tests/typecheck/should_fail/LevPolyBounded.hs b/testsuite/tests/typecheck/should_fail/LevPolyBounded.hs
index 674de050d630d28e696ec2a6d5ec6ee953c2572f..c5d0eb58fa172ab0b7626ed9067d54a0f3dddd13 100644
--- a/testsuite/tests/typecheck/should_fail/LevPolyBounded.hs
+++ b/testsuite/tests/typecheck/should_fail/LevPolyBounded.hs
@@ -1,12 +1,13 @@
-{-# LANGUAGE Haskell2010 #-}
 -- inspired by comment:25 on #12708
 
 {-# LANGUAGE PolyKinds #-}
 
 module LevPolyBounded where
 
+import Data.Kind
 import GHC.Exts
 
-class XBounded (a :: TYPE r) where
+type XBounded :: TYPE r -> Constraint
+class XBounded a where
   minBound :: a
   maxBound :: a
diff --git a/testsuite/tests/typecheck/should_fail/LevPolyBounded.stderr b/testsuite/tests/typecheck/should_fail/LevPolyBounded.stderr
index 69e24ad5f8dcd728d4ef86713a025536db15d624..210f941bd5a43778415dc45b2449b96a13985419 100644
--- a/testsuite/tests/typecheck/should_fail/LevPolyBounded.stderr
+++ b/testsuite/tests/typecheck/should_fail/LevPolyBounded.stderr
@@ -1,18 +1,18 @@
 
-LevPolyBounded.hs:11:15: error: [GHC-25897]
+LevPolyBounded.hs:12:15: error: [GHC-25897]
     • Couldn't match kind ‘r’ with ‘LiftedRep’
       Expected kind ‘*’, but ‘a’ has kind ‘TYPE r’
       ‘r’ is a rigid type variable bound by
         the class declaration for ‘XBounded’
-        at LevPolyBounded.hs:10:17-27
+        at LevPolyBounded.hs:10:18-37
     • In the type signature: LevPolyBounded.minBound :: a
       In the class declaration for ‘XBounded’
 
-LevPolyBounded.hs:12:15: error: [GHC-25897]
+LevPolyBounded.hs:13:15: error: [GHC-25897]
     • Couldn't match kind ‘r’ with ‘LiftedRep’
       Expected kind ‘*’, but ‘a’ has kind ‘TYPE r’
       ‘r’ is a rigid type variable bound by
         the class declaration for ‘XBounded’
-        at LevPolyBounded.hs:10:17-27
+        at LevPolyBounded.hs:10:18-37
     • In the type signature: LevPolyBounded.maxBound :: a
       In the class declaration for ‘XBounded’
diff --git a/testsuite/tests/typecheck/should_fail/T12785b.hs b/testsuite/tests/typecheck/should_fail/T12785b.hs
index ccc53f609345e93b2bd884f133988da583b79da9..f52cbcb7357cc94ab22bd27dffae797c1ff7ce6f 100644
--- a/testsuite/tests/typecheck/should_fail/T12785b.hs
+++ b/testsuite/tests/typecheck/should_fail/T12785b.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE RankNTypes, TypeOperators, ViewPatterns #-}
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE DataKinds, PolyKinds, GADTs #-}
@@ -14,7 +13,8 @@ data HTree n a where
   Leaf :: HTree (S n) a
   Branch :: a -> HTree n (HTree (S n) a) -> HTree (S n) a
 
-data STree (n ::Peano) :: forall a . (a -> Type) -> HTree n a -> Type where
+type STree :: forall (n :: Peano) -> forall a. (a -> Type) -> HTree n a -> Type
+data STree n f s where
   SPoint :: f a -> STree Z f (Point a)
   SLeaf :: STree (S n) f Leaf
   SBranch :: f a -> STree n (STree (S n) f) stru -> STree (S n) f (a `Branch` stru)
@@ -34,6 +34,7 @@ hmap f (Point a) = Point (f a)
 hmap f Leaf = Leaf
 hmap f (a `Branch` tr) = f a `Branch` hmap (hmap f) tr
 
-type family Payload (n :: Peano) (s :: HTree n x) :: x where
+type Payload :: forall x. forall (n :: Peano) -> HTree n x -> x
+type family Payload n s where
   Payload Z (Point a) = a
   Payload (S n) (a `Branch` stru) = a
diff --git a/testsuite/tests/typecheck/should_fail/T14904a.hs b/testsuite/tests/typecheck/should_fail/T14904a.hs
index 0043067e51dd635778c70e7125a0d9e9d16d0ba8..1059a5a86d9f993907199901d943f03f7f5a1eb8 100644
--- a/testsuite/tests/typecheck/should_fail/T14904a.hs
+++ b/testsuite/tests/typecheck/should_fail/T14904a.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE PolyKinds #-}
@@ -6,5 +5,6 @@ module T14904a where
 
 import Data.Kind
 
-type family F (f :: forall a. g a) :: Type where
+type F :: (forall a. g a) -> Type
+type family F f :: Type where
   F (f :: forall a. g a) = Int
diff --git a/testsuite/tests/typecheck/should_fail/T15552a.hs b/testsuite/tests/typecheck/should_fail/T15552a.hs
index a6cc56f99dc6d31065d55bca886cff9630e938d6..69824dfd7ddd95600128e04f8bcb6eb901e857ea 100644
--- a/testsuite/tests/typecheck/should_fail/T15552a.hs
+++ b/testsuite/tests/typecheck/should_fail/T15552a.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE DataKinds, ExistentialQuantification, GADTs, PolyKinds, TypeOperators #-}
 {-# LANGUAGE TypeFamilies #-}
 {-  # LANGUAGE UndecidableInstances #-}
@@ -22,7 +21,8 @@ type family GetEntryOfVal (eov :: EntryOfVal v kvs)
   where
     GetEntryOfVal ('EntryOfVal e) = e
 
-type family FirstEntryOfVal (v :: Type) (kvs :: [Type]) :: EntryOfVal v kvs
+type FirstEntryOfVal :: forall (v :: Type) (kvs :: [Type]) -> EntryOfVal v kvs
+type family FirstEntryOfVal v kvs
   where FirstEntryOfVal v (_ : kvs)
            = 'EntryOfVal (There (GetEntryOfVal (FirstEntryOfVal v kvs)))
 --type instance FirstEntryOfVal v (_ : kvs)
diff --git a/testsuite/tests/typecheck/should_fail/T16255.hs b/testsuite/tests/typecheck/should_fail/T16255.hs
index 2f20d4c788c6f0cb4ddb908505631d98b713e2a4..2bfa23a5657e7f3946056e3c5c3fb096f732dcf9 100644
--- a/testsuite/tests/typecheck/should_fail/T16255.hs
+++ b/testsuite/tests/typecheck/should_fail/T16255.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE PolyKinds #-}
 {-# LANGUAGE RankNTypes #-}
@@ -18,5 +17,6 @@ data family D1 :: forall k. k -> Type
 -- instances permit oversaturation in their equations.
 data instance D1 @Bool :: Bool -> Type
 
+type F2 :: j -> forall k. Either j k
 type family F2 (x :: j) :: forall k. Either j k where
   F2 5 @Symbol = Left 4
diff --git a/testsuite/tests/typecheck/should_fail/T16255.stderr b/testsuite/tests/typecheck/should_fail/T16255.stderr
index e4867cba96754f440a985bb02b58b1f48133b15c..d771a0f7f24056cba87c107ed4356f031b82de8f 100644
--- a/testsuite/tests/typecheck/should_fail/T16255.stderr
+++ b/testsuite/tests/typecheck/should_fail/T16255.stderr
@@ -1,5 +1,5 @@
 
-T16255.hs:14:3: error: [GHC-45474]
+T16255.hs:13:3: error: [GHC-45474]
     • Illegal oversaturated visible kind argument: ‘@Bool’
     • In the equations for closed type family ‘F1’
       In the type family declaration for ‘F1’
diff --git a/testsuite/tests/typecheck/should_fail/T9201.hs b/testsuite/tests/typecheck/should_fail/T9201.hs
index b04162880511a8bbeddb6fd7b46da5dd5881c9a1..4527759c893e78d10ba84f1c7c1791f4f368717c 100644
--- a/testsuite/tests/typecheck/should_fail/T9201.hs
+++ b/testsuite/tests/typecheck/should_fail/T9201.hs
@@ -1,7 +1,9 @@
-{-# LANGUAGE Haskell2010 #-}
 {-# LANGUAGE PolyKinds, FunctionalDependencies, MultiParamTypeClasses #-}
 
 module T9201 where
 
-class MonoidalCCC (f :: x -> y) (d :: y -> y -> *) | f -> d where
+import Data.Kind (Type, Constraint)
+
+type MonoidalCCC :: (x -> y) -> (y -> y -> Type) -> Constraint
+class MonoidalCCC f d | f -> d where
   ret :: d a (f a)
diff --git a/testsuite/tests/typecheck/should_fail/T9201.stderr b/testsuite/tests/typecheck/should_fail/T9201.stderr
index 660c32bef55bce5acde6ba1920eb9ece3a62d7c0..b65410edaf6c753e0f936028987b8a3a24c336af 100644
--- a/testsuite/tests/typecheck/should_fail/T9201.stderr
+++ b/testsuite/tests/typecheck/should_fail/T9201.stderr
@@ -1,12 +1,12 @@
 
-T9201.hs:7:17: error: [GHC-25897]
+T9201.hs:9:17: error: [GHC-25897]
     • Expected kind ‘x’, but ‘a’ has kind ‘y’
       ‘y’ is a rigid type variable bound by
         the class declaration for ‘MonoidalCCC’
-        at T9201.hs:6:20-49
+        at T9201.hs:7:21-62
       ‘x’ is a rigid type variable bound by
         the class declaration for ‘MonoidalCCC’
-        at T9201.hs:6:20-49
+        at T9201.hs:7:21-62
     • In the first argument of ‘f’, namely ‘a’
       In the second argument of ‘d’, namely ‘(f a)’
       In the type signature: ret :: d a (f a)