ParseOk
  ( Module
      SrcSpanInfo
        { srcInfoSpan =
            SrcSpan "tests/examples/RoleAnnotations.hs" 1 1 17 1
        , srcInfoPoints =
            [ SrcSpan "tests/examples/RoleAnnotations.hs" 1 1 1 1
            , SrcSpan "tests/examples/RoleAnnotations.hs" 3 1 3 1
            , SrcSpan "tests/examples/RoleAnnotations.hs" 3 1 3 1
            , SrcSpan "tests/examples/RoleAnnotations.hs" 5 1 5 1
            , SrcSpan "tests/examples/RoleAnnotations.hs" 6 1 6 1
            , SrcSpan "tests/examples/RoleAnnotations.hs" 8 1 8 1
            , SrcSpan "tests/examples/RoleAnnotations.hs" 9 1 9 1
            , SrcSpan "tests/examples/RoleAnnotations.hs" 10 1 10 1
            , SrcSpan "tests/examples/RoleAnnotations.hs" 12 1 12 1
            , SrcSpan "tests/examples/RoleAnnotations.hs" 13 1 13 1
            , SrcSpan "tests/examples/RoleAnnotations.hs" 14 1 14 1
            , SrcSpan "tests/examples/RoleAnnotations.hs" 15 1 15 1
            , SrcSpan "tests/examples/RoleAnnotations.hs" 16 1 16 1
            , SrcSpan "tests/examples/RoleAnnotations.hs" 17 1 17 1
            , SrcSpan "tests/examples/RoleAnnotations.hs" 17 1 17 1
            ]
        }
      (Just
         (ModuleHead
            SrcSpanInfo
              { srcInfoSpan =
                  SrcSpan "tests/examples/RoleAnnotations.hs" 3 1 3 19
              , srcInfoPoints =
                  [ SrcSpan "tests/examples/RoleAnnotations.hs" 3 1 3 7
                  , SrcSpan "tests/examples/RoleAnnotations.hs" 3 14 3 19
                  ]
              }
            (ModuleName
               SrcSpanInfo
                 { srcInfoSpan =
                     SrcSpan "tests/examples/RoleAnnotations.hs" 3 8 3 13
                 , srcInfoPoints = []
                 }
               "Roles")
            Nothing
            Nothing))
      [ LanguagePragma
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/RoleAnnotations.hs" 1 1 1 60
            , srcInfoPoints =
                [ SrcSpan "tests/examples/RoleAnnotations.hs" 1 1 1 13
                , SrcSpan "tests/examples/RoleAnnotations.hs" 1 29 1 30
                , SrcSpan "tests/examples/RoleAnnotations.hs" 1 40 1 41
                , SrcSpan "tests/examples/RoleAnnotations.hs" 1 57 1 60
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/RoleAnnotations.hs" 1 14 1 29
                , srcInfoPoints = []
                }
              "RoleAnnotations"
          , Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/RoleAnnotations.hs" 1 31 1 40
                , srcInfoPoints = []
                }
              "PolyKinds"
          , Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/RoleAnnotations.hs" 1 42 1 56
                , srcInfoPoints = []
                }
              "KindSignatures"
          ]
      ]
      []
      [ DataDecl
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/RoleAnnotations.hs" 5 1 5 17
            , srcInfoPoints =
                [ SrcSpan "tests/examples/RoleAnnotations.hs" 5 11 5 12 ]
            }
          (DataType
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 5 1 5 5
               , srcInfoPoints = []
               })
          Nothing
          (DHApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/RoleAnnotations.hs" 5 6 5 10
               , srcInfoPoints = []
               }
             (DHead
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 5 6 5 8
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 5 6 5 8
                     , srcInfoPoints = []
                     }
                   "T1"))
             (UnkindedVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/RoleAnnotations.hs" 5 9 5 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/RoleAnnotations.hs" 5 9 5 10
                     , srcInfoPoints = []
                     }
                   "a")))
          [ QualConDecl
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/RoleAnnotations.hs" 5 13 5 17
                , srcInfoPoints = []
                }
              Nothing
              Nothing
              (ConDecl
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/RoleAnnotations.hs" 5 13 5 17
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/RoleAnnotations.hs" 5 13 5 15
                      , srcInfoPoints = []
                      }
                    "K1")
                 [ TyVar
                     SrcSpanInfo
                       { srcInfoSpan =
                           SrcSpan "tests/examples/RoleAnnotations.hs" 5 16 5 17
                       , srcInfoPoints = []
                       }
                     (Ident
                        SrcSpanInfo
                          { srcInfoSpan =
                              SrcSpan "tests/examples/RoleAnnotations.hs" 5 16 5 17
                          , srcInfoPoints = []
                          }
                        "a")
                 ])
          ]
          []
      , DataDecl
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/RoleAnnotations.hs" 6 1 6 17
            , srcInfoPoints =
                [ SrcSpan "tests/examples/RoleAnnotations.hs" 6 11 6 12 ]
            }
          (DataType
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 6 1 6 5
               , srcInfoPoints = []
               })
          Nothing
          (DHApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/RoleAnnotations.hs" 6 6 6 10
               , srcInfoPoints = []
               }
             (DHead
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 6 6 6 8
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 6 6 6 8
                     , srcInfoPoints = []
                     }
                   "T2"))
             (UnkindedVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/RoleAnnotations.hs" 6 9 6 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/RoleAnnotations.hs" 6 9 6 10
                     , srcInfoPoints = []
                     }
                   "a")))
          [ QualConDecl
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/RoleAnnotations.hs" 6 13 6 17
                , srcInfoPoints = []
                }
              Nothing
              Nothing
              (ConDecl
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/RoleAnnotations.hs" 6 13 6 17
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/RoleAnnotations.hs" 6 13 6 15
                      , srcInfoPoints = []
                      }
                    "K2")
                 [ TyVar
                     SrcSpanInfo
                       { srcInfoSpan =
                           SrcSpan "tests/examples/RoleAnnotations.hs" 6 16 6 17
                       , srcInfoPoints = []
                       }
                     (Ident
                        SrcSpanInfo
                          { srcInfoSpan =
                              SrcSpan "tests/examples/RoleAnnotations.hs" 6 16 6 17
                          , srcInfoPoints = []
                          }
                        "a")
                 ])
          ]
          []
      , DataDecl
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/RoleAnnotations.hs" 8 1 8 17
            , srcInfoPoints =
                [ SrcSpan "tests/examples/RoleAnnotations.hs" 8 11 8 12 ]
            }
          (DataType
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 8 1 8 5
               , srcInfoPoints = []
               })
          Nothing
          (DHApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/RoleAnnotations.hs" 8 6 8 10
               , srcInfoPoints = []
               }
             (DHead
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 8 6 8 8
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 8 6 8 8
                     , srcInfoPoints = []
                     }
                   "T5"))
             (UnkindedVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/RoleAnnotations.hs" 8 9 8 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/RoleAnnotations.hs" 8 9 8 10
                     , srcInfoPoints = []
                     }
                   "a")))
          [ QualConDecl
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/RoleAnnotations.hs" 8 13 8 17
                , srcInfoPoints = []
                }
              Nothing
              Nothing
              (ConDecl
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/RoleAnnotations.hs" 8 13 8 17
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/RoleAnnotations.hs" 8 13 8 15
                      , srcInfoPoints = []
                      }
                    "K5")
                 [ TyVar
                     SrcSpanInfo
                       { srcInfoSpan =
                           SrcSpan "tests/examples/RoleAnnotations.hs" 8 16 8 17
                       , srcInfoPoints = []
                       }
                     (Ident
                        SrcSpanInfo
                          { srcInfoSpan =
                              SrcSpan "tests/examples/RoleAnnotations.hs" 8 16 8 17
                          , srcInfoPoints = []
                          }
                        "a")
                 ])
          ]
          []
      , DataDecl
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/RoleAnnotations.hs" 9 1 9 15
            , srcInfoPoints =
                [ SrcSpan "tests/examples/RoleAnnotations.hs" 9 11 9 12 ]
            }
          (DataType
             SrcSpanInfo
               { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 9 1 9 5
               , srcInfoPoints = []
               })
          Nothing
          (DHApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/RoleAnnotations.hs" 9 6 9 10
               , srcInfoPoints = []
               }
             (DHead
                SrcSpanInfo
                  { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 9 6 9 8
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan = SrcSpan "tests/examples/RoleAnnotations.hs" 9 6 9 8
                     , srcInfoPoints = []
                     }
                   "T6"))
             (UnkindedVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/RoleAnnotations.hs" 9 9 9 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/RoleAnnotations.hs" 9 9 9 10
                     , srcInfoPoints = []
                     }
                   "a")))
          [ QualConDecl
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/RoleAnnotations.hs" 9 13 9 15
                , srcInfoPoints = []
                }
              Nothing
              Nothing
              (ConDecl
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/RoleAnnotations.hs" 9 13 9 15
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/RoleAnnotations.hs" 9 13 9 15
                      , srcInfoPoints = []
                      }
                    "K6")
                 [])
          ]
          []
      , DataDecl
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/RoleAnnotations.hs" 10 1 10 19
            , srcInfoPoints =
                [ SrcSpan "tests/examples/RoleAnnotations.hs" 10 13 10 14 ]
            }
          (DataType
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/RoleAnnotations.hs" 10 1 10 5
               , srcInfoPoints = []
               })
          Nothing
          (DHApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/RoleAnnotations.hs" 10 6 10 12
               , srcInfoPoints = []
               }
             (DHApp
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/RoleAnnotations.hs" 10 6 10 10
                  , srcInfoPoints = []
                  }
                (DHead
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/RoleAnnotations.hs" 10 6 10 8
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/RoleAnnotations.hs" 10 6 10 8
                        , srcInfoPoints = []
                        }
                      "T7"))
                (UnkindedVar
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/RoleAnnotations.hs" 10 9 10 10
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/RoleAnnotations.hs" 10 9 10 10
                        , srcInfoPoints = []
                        }
                      "a")))
             (UnkindedVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/RoleAnnotations.hs" 10 11 10 12
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/RoleAnnotations.hs" 10 11 10 12
                     , srcInfoPoints = []
                     }
                   "b")))
          [ QualConDecl
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/RoleAnnotations.hs" 10 15 10 19
                , srcInfoPoints = []
                }
              Nothing
              Nothing
              (ConDecl
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/RoleAnnotations.hs" 10 15 10 19
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/RoleAnnotations.hs" 10 15 10 17
                      , srcInfoPoints = []
                      }
                    "K7")
                 [ TyVar
                     SrcSpanInfo
                       { srcInfoSpan =
                           SrcSpan "tests/examples/RoleAnnotations.hs" 10 18 10 19
                       , srcInfoPoints = []
                       }
                     (Ident
                        SrcSpanInfo
                          { srcInfoSpan =
                              SrcSpan "tests/examples/RoleAnnotations.hs" 10 18 10 19
                          , srcInfoPoints = []
                          }
                        "b")
                 ])
          ]
          []
      , RoleAnnotDecl
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/RoleAnnotations.hs" 12 1 12 21
            , srcInfoPoints =
                [ SrcSpan "tests/examples/RoleAnnotations.hs" 12 1 12 5
                , SrcSpan "tests/examples/RoleAnnotations.hs" 12 6 12 10
                ]
            }
          (UnQual
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/RoleAnnotations.hs" 12 11 12 13
               , srcInfoPoints = []
               }
             (Ident
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/RoleAnnotations.hs" 12 11 12 13
                  , srcInfoPoints = []
                  }
                "T1"))
          [ Nominal
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/RoleAnnotations.hs" 12 14 12 21
                , srcInfoPoints = []
                }
          ]
      , RoleAnnotDecl
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/RoleAnnotations.hs" 13 1 13 30
            , srcInfoPoints =
                [ SrcSpan "tests/examples/RoleAnnotations.hs" 13 1 13 5
                , SrcSpan "tests/examples/RoleAnnotations.hs" 13 6 13 10
                ]
            }
          (UnQual
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/RoleAnnotations.hs" 13 11 13 13
               , srcInfoPoints = []
               }
             (Ident
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/RoleAnnotations.hs" 13 11 13 13
                  , srcInfoPoints = []
                  }
                "T2"))
          [ Representational
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/RoleAnnotations.hs" 13 14 13 30
                , srcInfoPoints = []
                }
          ]
      , RoleAnnotDecl
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/RoleAnnotations.hs" 14 1 14 21
            , srcInfoPoints =
                [ SrcSpan "tests/examples/RoleAnnotations.hs" 14 1 14 5
                , SrcSpan "tests/examples/RoleAnnotations.hs" 14 6 14 10
                ]
            }
          (UnQual
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/RoleAnnotations.hs" 14 11 14 13
               , srcInfoPoints = []
               }
             (Ident
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/RoleAnnotations.hs" 14 11 14 13
                  , srcInfoPoints = []
                  }
                "T3"))
          [ Phantom
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/RoleAnnotations.hs" 14 14 14 21
                , srcInfoPoints = []
                }
          ]
      , RoleAnnotDecl
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/RoleAnnotations.hs" 15 1 15 23
            , srcInfoPoints =
                [ SrcSpan "tests/examples/RoleAnnotations.hs" 15 1 15 5
                , SrcSpan "tests/examples/RoleAnnotations.hs" 15 6 15 10
                ]
            }
          (UnQual
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/RoleAnnotations.hs" 15 11 15 13
               , srcInfoPoints = []
               }
             (Ident
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/RoleAnnotations.hs" 15 11 15 13
                  , srcInfoPoints = []
                  }
                "T4"))
          [ Nominal
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/RoleAnnotations.hs" 15 14 15 21
                , srcInfoPoints = []
                }
          , RoleWildcard
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/RoleAnnotations.hs" 15 22 15 23
                , srcInfoPoints = []
                }
          ]
      , RoleAnnotDecl
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/RoleAnnotations.hs" 16 1 16 17
            , srcInfoPoints =
                [ SrcSpan "tests/examples/RoleAnnotations.hs" 16 1 16 5
                , SrcSpan "tests/examples/RoleAnnotations.hs" 16 6 16 10
                ]
            }
          (UnQual
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/RoleAnnotations.hs" 16 11 16 13
               , srcInfoPoints = []
               }
             (Ident
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/RoleAnnotations.hs" 16 11 16 13
                  , srcInfoPoints = []
                  }
                "T5"))
          [ RoleWildcard
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/RoleAnnotations.hs" 16 16 16 17
                , srcInfoPoints = []
                }
          ]
      ]
  , []
  )