ParseOk
  ( Module
      SrcSpanInfo
        { srcInfoSpan =
            SrcSpan "tests/examples/PatternSynonyms3.hs" 1 1 77 1
        , srcInfoPoints =
            [ SrcSpan "tests/examples/PatternSynonyms3.hs" 1 1 1 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 3 1 3 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 5 1 5 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 5 1 5 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 5 1 5 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 8 1 8 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 9 1 9 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 10 1 10 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 12 1 12 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 13 1 13 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 1 16 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 17 1 17 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 19 1 19 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 20 1 20 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 22 1 22 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 23 1 23 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 1 25 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 26 1 26 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 28 1 28 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 30 1 30 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 31 1 31 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 1 34 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 1 36 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 37 1 37 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 39 1 39 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 40 1 40 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 42 1 42 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 43 1 43 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 46 1 46 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 48 1 48 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 50 1 50 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 53 1 53 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 56 1 56 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 58 1 58 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 60 1 60 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 63 1 63 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 65 1 65 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 67 1 67 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 69 1 69 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 72 1 72 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 75 1 75 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 77 1 77 1
            , SrcSpan "tests/examples/PatternSynonyms3.hs" 77 1 77 1
            ]
        }
      Nothing
      [ LanguagePragma
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 1 1 2 36
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 1 1 1 13
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 1 29 1 30
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 1 43 1 44
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 1 54 1 55
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 1 65 1 66
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 1 72 1 73
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 2 18 2 19
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 2 33 2 36
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 1 14 1 29
                , srcInfoPoints = []
                }
              "PatternSynonyms"
          , Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 1 31 1 43
                , srcInfoPoints = []
                }
              "BangPatterns"
          , Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 1 45 1 54
                , srcInfoPoints = []
                }
              "PolyKinds"
          , Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 1 56 1 65
                , srcInfoPoints = []
                }
              "DataKinds"
          , Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 1 67 1 72
                , srcInfoPoints = []
                }
              "GADTs"
          , Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 2 2 2 18
                , srcInfoPoints = []
                }
              "FlexibleContexts"
          , Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 2 20 2 32
                , srcInfoPoints = []
                }
              "ViewPatterns"
          ]
      , LanguagePragma
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 3 1 3 32
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 3 1 3 13
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 3 29 3 32
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 3 14 3 28
                , srcInfoPoints = []
                }
              "ExplicitForAll"
          ]
      ]
      []
      [ PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 5 1 5 24
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 5 1 5 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 5 18 5 20
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 5 9 5 17
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 5 9 5 15
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 5 9 5 15
                     , srcInfoPoints = []
                     }
                   "Single"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 5 16 5 17
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 5 16 5 17
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          (PList
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 5 21 5 24
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 5 21 5 22
                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 5 23 5 24
                   ]
               }
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 5 22 5 23
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 5 22 5 23
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          Unidirectional
      , TypeSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 8 1 8 25
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 8 8 8 10 ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 8 1 8 7
                , srcInfoPoints = []
                }
              "single"
          ]
          (TyFun
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 8 11 8 25
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 8 15 8 17 ]
               }
             (TyList
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 8 11 8 14
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 8 11 8 12
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 8 13 8 14
                      ]
                  }
                (TyVar
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 8 12 8 13
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 8 12 8 13
                        , srcInfoPoints = []
                        }
                      "a")))
             (TyApp
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 8 18 8 25
                  , srcInfoPoints = []
                  }
                (TyCon
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 8 18 8 23
                     , srcInfoPoints = []
                     }
                   (UnQual
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 8 18 8 23
                        , srcInfoPoints = []
                        }
                      (Ident
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 8 18 8 23
                           , srcInfoPoints = []
                           }
                         "Maybe")))
                (TyVar
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 8 24 8 25
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 8 24 8 25
                        , srcInfoPoints = []
                        }
                      "a"))))
      , FunBind
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 9 1 10 19
            , srcInfoPoints = []
            }
          [ Match
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 9 1 9 27
                , srcInfoPoints = []
                }
              (Ident
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 9 1 9 7
                   , srcInfoPoints = []
                   }
                 "single")
              [ PParen
                  SrcSpanInfo
                    { srcInfoSpan =
                        SrcSpan "tests/examples/PatternSynonyms3.hs" 9 8 9 18
                    , srcInfoPoints =
                        [ SrcSpan "tests/examples/PatternSynonyms3.hs" 9 8 9 9
                        , SrcSpan "tests/examples/PatternSynonyms3.hs" 9 17 9 18
                        ]
                    }
                  (PApp
                     SrcSpanInfo
                       { srcInfoSpan =
                           SrcSpan "tests/examples/PatternSynonyms3.hs" 9 9 9 17
                       , srcInfoPoints = []
                       }
                     (UnQual
                        SrcSpanInfo
                          { srcInfoSpan =
                              SrcSpan "tests/examples/PatternSynonyms3.hs" 9 9 9 15
                          , srcInfoPoints = []
                          }
                        (Ident
                           SrcSpanInfo
                             { srcInfoSpan =
                                 SrcSpan "tests/examples/PatternSynonyms3.hs" 9 9 9 15
                             , srcInfoPoints = []
                             }
                           "Single"))
                     [ PVar
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 9 16 9 17
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 9 16 9 17
                              , srcInfoPoints = []
                              }
                            "x")
                     ])
              ]
              (UnGuardedRhs
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 9 19 9 27
                   , srcInfoPoints =
                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 9 19 9 20 ]
                   }
                 (App
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 9 21 9 27
                      , srcInfoPoints = []
                      }
                    (Con
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 9 21 9 25
                         , srcInfoPoints = []
                         }
                       (UnQual
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 9 21 9 25
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 9 21 9 25
                               , srcInfoPoints = []
                               }
                             "Just")))
                    (Var
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 9 26 9 27
                         , srcInfoPoints = []
                         }
                       (UnQual
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 9 26 9 27
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 9 26 9 27
                               , srcInfoPoints = []
                               }
                             "x")))))
              Nothing
          , Match
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 10 1 10 19
                , srcInfoPoints = []
                }
              (Ident
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 10 1 10 7
                   , srcInfoPoints = []
                   }
                 "single")
              [ PWildCard
                  SrcSpanInfo
                    { srcInfoSpan =
                        SrcSpan "tests/examples/PatternSynonyms3.hs" 10 8 10 9
                    , srcInfoPoints = []
                    }
              ]
              (UnGuardedRhs
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 10 10 10 19
                   , srcInfoPoints =
                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 10 10 10 11 ]
                   }
                 (Con
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 10 12 10 19
                      , srcInfoPoints = []
                      }
                    (UnQual
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 10 12 10 19
                         , srcInfoPoints = []
                         }
                       (Ident
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 10 12 10 19
                            , srcInfoPoints = []
                            }
                          "Nothing"))))
              Nothing
          ]
      , PatSynSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 12 1 12 27
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 12 1 12 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 12 16 12 18
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 12 9 12 15
                , srcInfoPoints = []
                }
              "Single"
          ]
          Nothing
          Nothing
          Nothing
          (TyFun
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 12 19 12 27
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 12 21 12 23 ]
               }
             (TyVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 12 19 12 20
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 12 19 12 20
                     , srcInfoPoints = []
                     }
                   "a"))
             (TyList
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 12 24 12 27
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 12 24 12 25
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 12 26 12 27
                      ]
                  }
                (TyVar
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 12 25 12 26
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 12 25 12 26
                        , srcInfoPoints = []
                        }
                      "a"))))
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 13 1 13 23
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 13 1 13 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 13 18 13 19
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 13 9 13 17
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 13 9 13 15
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 13 9 13 15
                     , srcInfoPoints = []
                     }
                   "Single"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 13 16 13 17
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 13 16 13 17
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          (PList
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 13 20 13 23
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 13 20 13 21
                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 13 22 13 23
                   ]
               }
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 13 21 13 22
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 13 21 13 22
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          ImplicitBidirectional
      , PatSynSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 16 1 16 45
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 16 1 16 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 16 16 18
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 16 9 16 15
                , srcInfoPoints = []
                }
              "Single"
          ]
          Nothing
          (Just
             (CxEmpty
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 16 19 16 24
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 16 19 16 20
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 20 16 21
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 22 16 24
                      ]
                  }))
          (Just
             (CxSingle
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 16 25 16 36
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 16 25 16 26
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 32 16 33
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 34 16 36
                      ]
                  }
                (ParenA
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 16 25 16 36
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 16 25 16 26
                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 32 16 33
                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 34 16 36
                         ]
                     }
                   (ClassA
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 16 26 16 32
                        , srcInfoPoints = []
                        }
                      (UnQual
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 16 26 16 30
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 16 26 16 30
                              , srcInfoPoints = []
                              }
                            "Show"))
                      [ TyVar
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 16 31 16 32
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 16 31 16 32
                               , srcInfoPoints = []
                               }
                             "a")
                      ]))))
          (TyFun
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 16 37 16 45
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 16 39 16 41 ]
               }
             (TyVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 16 37 16 38
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 16 37 16 38
                     , srcInfoPoints = []
                     }
                   "a"))
             (TyList
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 16 42 16 45
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 16 42 16 43
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 44 16 45
                      ]
                  }
                (TyVar
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 16 43 16 44
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 16 43 16 44
                        , srcInfoPoints = []
                        }
                      "a"))))
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 17 1 17 23
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 17 1 17 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 17 18 17 19
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 17 9 17 17
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 17 9 17 15
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 17 9 17 15
                     , srcInfoPoints = []
                     }
                   "Single"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 17 16 17 17
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 17 16 17 17
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          (PList
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 17 20 17 23
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 17 20 17 21
                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 17 22 17 23
                   ]
               }
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 17 21 17 22
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 17 21 17 22
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          ImplicitBidirectional
      , TypeSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 19 1 19 26
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 19 3 19 5 ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 19 1 19 2
                , srcInfoPoints = []
                }
              "f"
          ]
          (TyForall
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 19 6 19 26
               , srcInfoPoints = []
               }
             Nothing
             (Just
                (CxSingle
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 19 6 19 17
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 19 6 19 7
                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 19 13 19 14
                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 19 15 19 17
                         ]
                     }
                   (ParenA
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 19 6 19 17
                        , srcInfoPoints =
                            [ SrcSpan "tests/examples/PatternSynonyms3.hs" 19 6 19 7
                            , SrcSpan "tests/examples/PatternSynonyms3.hs" 19 13 19 14
                            , SrcSpan "tests/examples/PatternSynonyms3.hs" 19 15 19 17
                            ]
                        }
                      (ClassA
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 19 7 19 13
                           , srcInfoPoints = []
                           }
                         (UnQual
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 19 7 19 11
                              , srcInfoPoints = []
                              }
                            (Ident
                               SrcSpanInfo
                                 { srcInfoSpan =
                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 19 7 19 11
                                 , srcInfoPoints = []
                                 }
                               "Show"))
                         [ TyVar
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 19 12 19 13
                               , srcInfoPoints = []
                               }
                             (Ident
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/PatternSynonyms3.hs" 19 12 19 13
                                  , srcInfoPoints = []
                                  }
                                "a")
                         ]))))
             (TyFun
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 19 18 19 26
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 19 22 19 24 ]
                  }
                (TyList
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 19 18 19 21
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 19 18 19 19
                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 19 20 19 21
                         ]
                     }
                   (TyVar
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 19 19 19 20
                        , srcInfoPoints = []
                        }
                      (Ident
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 19 19 19 20
                           , srcInfoPoints = []
                           }
                         "a")))
                (TyVar
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 19 25 19 26
                     , srcInfoPoints = []
                     }
                   (Ident
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 19 25 19 26
                        , srcInfoPoints = []
                        }
                      "a"))))
      , FunBind
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 20 1 20 17
            , srcInfoPoints = []
            }
          [ Match
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 20 1 20 17
                , srcInfoPoints = []
                }
              (Ident
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 20 1 20 2
                   , srcInfoPoints = []
                   }
                 "f")
              [ PParen
                  SrcSpanInfo
                    { srcInfoSpan =
                        SrcSpan "tests/examples/PatternSynonyms3.hs" 20 3 20 13
                    , srcInfoPoints =
                        [ SrcSpan "tests/examples/PatternSynonyms3.hs" 20 3 20 4
                        , SrcSpan "tests/examples/PatternSynonyms3.hs" 20 12 20 13
                        ]
                    }
                  (PApp
                     SrcSpanInfo
                       { srcInfoSpan =
                           SrcSpan "tests/examples/PatternSynonyms3.hs" 20 4 20 12
                       , srcInfoPoints = []
                       }
                     (UnQual
                        SrcSpanInfo
                          { srcInfoSpan =
                              SrcSpan "tests/examples/PatternSynonyms3.hs" 20 4 20 10
                          , srcInfoPoints = []
                          }
                        (Ident
                           SrcSpanInfo
                             { srcInfoSpan =
                                 SrcSpan "tests/examples/PatternSynonyms3.hs" 20 4 20 10
                             , srcInfoPoints = []
                             }
                           "Single"))
                     [ PVar
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 20 11 20 12
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 20 11 20 12
                              , srcInfoPoints = []
                              }
                            "x")
                     ])
              ]
              (UnGuardedRhs
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 20 14 20 17
                   , srcInfoPoints =
                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 20 14 20 15 ]
                   }
                 (Var
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 20 16 20 17
                      , srcInfoPoints = []
                      }
                    (UnQual
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 20 16 20 17
                         , srcInfoPoints = []
                         }
                       (Ident
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 20 16 20 17
                            , srcInfoPoints = []
                            }
                          "x"))))
              Nothing
          ]
      , PatSynSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 22 1 22 41
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 22 1 22 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 22 20 22 22
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 22 9 22 19
                , srcInfoPoints = []
                }
              "SinglePair"
          ]
          Nothing
          Nothing
          Nothing
          (TyFun
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 22 23 22 41
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 22 30 22 32 ]
               }
             (TyTuple
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 22 23 22 29
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 22 23 22 24
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 22 25 22 26
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 22 28 22 29
                      ]
                  }
                Boxed
                [ TyVar
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 22 24 22 25
                      , srcInfoPoints = []
                      }
                    (Ident
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 22 24 22 25
                         , srcInfoPoints = []
                         }
                       "a")
                , TyVar
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 22 27 22 28
                      , srcInfoPoints = []
                      }
                    (Ident
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 22 27 22 28
                         , srcInfoPoints = []
                         }
                       "a")
                ])
             (TyList
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 22 33 22 41
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 22 33 22 34
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 22 40 22 41
                      ]
                  }
                (TyTuple
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 22 34 22 40
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 22 34 22 35
                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 22 36 22 37
                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 22 39 22 40
                         ]
                     }
                   Boxed
                   [ TyVar
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 22 35 22 36
                         , srcInfoPoints = []
                         }
                       (Ident
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 22 35 22 36
                            , srcInfoPoints = []
                            }
                          "a")
                   , TyVar
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 22 38 22 39
                         , srcInfoPoints = []
                         }
                       (Ident
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 22 38 22 39
                            , srcInfoPoints = []
                            }
                          "a")
                   ])))
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 23 1 23 27
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 23 1 23 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 23 22 23 23
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 23 9 23 21
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 23 9 23 19
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 23 9 23 19
                     , srcInfoPoints = []
                     }
                   "SinglePair"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 23 20 23 21
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 23 20 23 21
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          (PList
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 23 24 23 27
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 23 24 23 25
                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 23 26 23 27
                   ]
               }
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 23 25 23 26
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 23 25 23 26
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          ImplicitBidirectional
      , TypeSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 25 1 25 36
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 25 3 25 5 ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 25 1 25 2
                , srcInfoPoints = []
                }
              "f"
          ]
          (TyForall
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 25 6 25 36
               , srcInfoPoints = []
               }
             Nothing
             (Just
                (CxSingle
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 25 6 25 17
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 25 6 25 7
                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 13 25 14
                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 15 25 17
                         ]
                     }
                   (ParenA
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 25 6 25 17
                        , srcInfoPoints =
                            [ SrcSpan "tests/examples/PatternSynonyms3.hs" 25 6 25 7
                            , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 13 25 14
                            , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 15 25 17
                            ]
                        }
                      (ClassA
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 25 7 25 13
                           , srcInfoPoints = []
                           }
                         (UnQual
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 25 7 25 11
                              , srcInfoPoints = []
                              }
                            (Ident
                               SrcSpanInfo
                                 { srcInfoSpan =
                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 25 7 25 11
                                 , srcInfoPoints = []
                                 }
                               "Show"))
                         [ TyVar
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 25 12 25 13
                               , srcInfoPoints = []
                               }
                             (Ident
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/PatternSynonyms3.hs" 25 12 25 13
                                  , srcInfoPoints = []
                                  }
                                "a")
                         ]))))
             (TyFun
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 25 18 25 36
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 25 27 25 29 ]
                  }
                (TyList
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 25 18 25 26
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 25 18 25 19
                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 25 25 26
                         ]
                     }
                   (TyTuple
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 25 19 25 25
                        , srcInfoPoints =
                            [ SrcSpan "tests/examples/PatternSynonyms3.hs" 25 19 25 20
                            , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 21 25 22
                            , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 24 25 25
                            ]
                        }
                      Boxed
                      [ TyVar
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 25 20 25 21
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 25 20 25 21
                               , srcInfoPoints = []
                               }
                             "a")
                      , TyVar
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 25 23 25 24
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 25 23 25 24
                               , srcInfoPoints = []
                               }
                             "a")
                      ]))
                (TyCon
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 25 30 25 36
                     , srcInfoPoints = []
                     }
                   (UnQual
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 25 30 25 36
                        , srcInfoPoints = []
                        }
                      (Ident
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 25 30 25 36
                           , srcInfoPoints = []
                           }
                         "String")))))
      , FunBind
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 26 1 26 26
            , srcInfoPoints = []
            }
          [ Match
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 26 1 26 26
                , srcInfoPoints = []
                }
              (Ident
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 26 1 26 2
                   , srcInfoPoints = []
                   }
                 "f")
              [ PParen
                  SrcSpanInfo
                    { srcInfoSpan =
                        SrcSpan "tests/examples/PatternSynonyms3.hs" 26 3 26 17
                    , srcInfoPoints =
                        [ SrcSpan "tests/examples/PatternSynonyms3.hs" 26 3 26 4
                        , SrcSpan "tests/examples/PatternSynonyms3.hs" 26 16 26 17
                        ]
                    }
                  (PApp
                     SrcSpanInfo
                       { srcInfoSpan =
                           SrcSpan "tests/examples/PatternSynonyms3.hs" 26 4 26 16
                       , srcInfoPoints = []
                       }
                     (UnQual
                        SrcSpanInfo
                          { srcInfoSpan =
                              SrcSpan "tests/examples/PatternSynonyms3.hs" 26 4 26 14
                          , srcInfoPoints = []
                          }
                        (Ident
                           SrcSpanInfo
                             { srcInfoSpan =
                                 SrcSpan "tests/examples/PatternSynonyms3.hs" 26 4 26 14
                             , srcInfoPoints = []
                             }
                           "SinglePair"))
                     [ PVar
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 26 15 26 16
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 26 15 26 16
                              , srcInfoPoints = []
                              }
                            "x")
                     ])
              ]
              (UnGuardedRhs
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 26 18 26 26
                   , srcInfoPoints =
                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 26 18 26 19 ]
                   }
                 (App
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 26 20 26 26
                      , srcInfoPoints = []
                      }
                    (Var
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 26 20 26 24
                         , srcInfoPoints = []
                         }
                       (UnQual
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 26 20 26 24
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 26 20 26 24
                               , srcInfoPoints = []
                               }
                             "show")))
                    (Var
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 26 25 26 26
                         , srcInfoPoints = []
                         }
                       (UnQual
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 26 25 26 26
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 26 25 26 26
                               , srcInfoPoints = []
                               }
                             "x")))))
              Nothing
          ]
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 28 1 28 14
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 28 1 28 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 28 11 28 12
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 28 9 28 10
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 28 9 28 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 28 9 28 10
                     , srcInfoPoints = []
                     }
                   "Q"))
             [])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 28 13 28 14
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 28 13 28 14
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 28 13 28 14
                     , srcInfoPoints = []
                     }
                   "D"))
             [])
          ImplicitBidirectional
      , PatSynSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 30 1 30 36
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 30 1 30 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 30 11 30 13
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 30 9 30 10
                , srcInfoPoints = []
                }
              "C"
          ]
          Nothing
          Nothing
          Nothing
          (TyFun
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 30 14 30 36
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 30 16 30 18 ]
               }
             (TyVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 30 14 30 15
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 30 14 30 15
                     , srcInfoPoints = []
                     }
                   "a"))
             (TyApp
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 30 19 30 36
                  , srcInfoPoints = []
                  }
                (TyApp
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 30 19 30 26
                     , srcInfoPoints = []
                     }
                   (TyCon
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 30 19 30 20
                        , srcInfoPoints = []
                        }
                      (UnQual
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 30 19 30 20
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 30 19 30 20
                              , srcInfoPoints = []
                              }
                            "X")))
                   (TyCon
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 30 21 30 26
                        , srcInfoPoints = []
                        }
                      (UnQual
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 30 21 30 26
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 30 21 30 26
                              , srcInfoPoints = []
                              }
                            "Maybe"))))
                (TyParen
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 30 27 30 36
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 30 27 30 28
                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 30 35 30 36
                         ]
                     }
                   (TyApp
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 30 28 30 35
                        , srcInfoPoints = []
                        }
                      (TyCon
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 30 28 30 33
                           , srcInfoPoints = []
                           }
                         (UnQual
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 30 28 30 33
                              , srcInfoPoints = []
                              }
                            (Ident
                               SrcSpanInfo
                                 { srcInfoSpan =
                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 30 28 30 33
                                 , srcInfoPoints = []
                                 }
                               "Maybe")))
                      (TyVar
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 30 34 30 35
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 30 34 30 35
                              , srcInfoPoints = []
                              }
                            "a"))))))
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 31 1 31 25
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 31 1 31 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 31 13 31 14
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 31 9 31 12
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 31 9 31 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 31 9 31 10
                     , srcInfoPoints = []
                     }
                   "C"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 31 11 31 12
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 31 11 31 12
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 31 15 31 25
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 31 15 31 16
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 31 15 31 16
                     , srcInfoPoints = []
                     }
                   "Y"))
             [ PParen
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 31 17 31 25
                   , srcInfoPoints =
                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 31 17 31 18
                       , SrcSpan "tests/examples/PatternSynonyms3.hs" 31 24 31 25
                       ]
                   }
                 (PApp
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 31 18 31 24
                      , srcInfoPoints = []
                      }
                    (UnQual
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 31 18 31 22
                         , srcInfoPoints = []
                         }
                       (Ident
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 31 18 31 22
                            , srcInfoPoints = []
                            }
                          "Just"))
                    [ PVar
                        SrcSpanInfo
                          { srcInfoSpan =
                              SrcSpan "tests/examples/PatternSynonyms3.hs" 31 23 31 24
                          , srcInfoPoints = []
                          }
                        (Ident
                           SrcSpanInfo
                             { srcInfoSpan =
                                 SrcSpan "tests/examples/PatternSynonyms3.hs" 31 23 31 24
                             , srcInfoPoints = []
                             }
                           "x")
                    ])
             ])
          ImplicitBidirectional
      , PatSynSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 34 1 34 49
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 34 1 34 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 13 34 15
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 16 34 22
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 32 34 33
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 34 9 34 12
                , srcInfoPoints = []
                }
              "Syn"
          ]
          (Just
             [ UnkindedVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 34 23 34 24
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 34 23 34 24
                      , srcInfoPoints = []
                      }
                    "a")
             , UnkindedVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 34 25 34 26
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 34 25 34 26
                      , srcInfoPoints = []
                      }
                    "b")
             , UnkindedVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 34 27 34 28
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 34 27 34 28
                      , srcInfoPoints = []
                      }
                    "c")
             ])
          (Just
             (CxEmpty
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 34 34 34 39
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 34 34 34 35
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 35 34 36
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 37 34 39
                      ]
                  }))
          (Just
             (CxEmpty
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 34 40 34 45
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 34 40 34 41
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 41 34 42
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 43 34 45
                      ]
                  }))
          (TyCon
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 34 46 34 49
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 34 46 34 49
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 34 46 34 49
                     , srcInfoPoints = []
                     }
                   "Int")))
      , PatSynSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 36 1 36 64
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 36 1 36 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 11 36 13
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 36 9 36 10
                , srcInfoPoints = []
                }
              "C"
          ]
          Nothing
          (Just
             (CxSingle
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 36 14 36 33
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 36 14 36 15
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 29 36 30
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 31 36 33
                      ]
                  }
                (ParenA
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 36 14 36 33
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 36 14 36 15
                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 29 36 30
                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 31 36 33
                         ]
                     }
                   (ClassA
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 36 15 36 29
                        , srcInfoPoints = []
                        }
                      (UnQual
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 36 15 36 19
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 36 15 36 19
                              , srcInfoPoints = []
                              }
                            "Show"))
                      [ TyTuple
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 36 20 36 29
                            , srcInfoPoints =
                                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 36 20 36 21
                                , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 22 36 23
                                , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 28 36 29
                                ]
                            }
                          Boxed
                          [ TyVar
                              SrcSpanInfo
                                { srcInfoSpan =
                                    SrcSpan "tests/examples/PatternSynonyms3.hs" 36 21 36 22
                                , srcInfoPoints = []
                                }
                              (Ident
                                 SrcSpanInfo
                                   { srcInfoSpan =
                                       SrcSpan "tests/examples/PatternSynonyms3.hs" 36 21 36 22
                                   , srcInfoPoints = []
                                   }
                                 "a")
                          , TyCon
                              SrcSpanInfo
                                { srcInfoSpan =
                                    SrcSpan "tests/examples/PatternSynonyms3.hs" 36 24 36 28
                                , srcInfoPoints = []
                                }
                              (UnQual
                                 SrcSpanInfo
                                   { srcInfoSpan =
                                       SrcSpan "tests/examples/PatternSynonyms3.hs" 36 24 36 28
                                   , srcInfoPoints = []
                                   }
                                 (Ident
                                    SrcSpanInfo
                                      { srcInfoSpan =
                                          SrcSpan "tests/examples/PatternSynonyms3.hs" 36 24 36 28
                                      , srcInfoPoints = []
                                      }
                                    "Bool"))
                          ]
                      ]))))
          Nothing
          (TyFun
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 36 34 36 64
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 36 36 36 38 ]
               }
             (TyVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 36 34 36 35
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 36 34 36 35
                     , srcInfoPoints = []
                     }
                   "a"))
             (TyApp
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 36 39 36 64
                  , srcInfoPoints = []
                  }
                (TyApp
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 36 39 36 46
                     , srcInfoPoints = []
                     }
                   (TyCon
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 36 39 36 40
                        , srcInfoPoints = []
                        }
                      (UnQual
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 36 39 36 40
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 36 39 36 40
                              , srcInfoPoints = []
                              }
                            "X")))
                   (TyCon
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 36 41 36 46
                        , srcInfoPoints = []
                        }
                      (UnQual
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 36 41 36 46
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 36 41 36 46
                              , srcInfoPoints = []
                              }
                            "Maybe"))))
                (TyParen
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 36 47 36 64
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 36 47 36 48
                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 63 36 64
                         ]
                     }
                   (TyApp
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 36 48 36 63
                        , srcInfoPoints = []
                        }
                      (TyCon
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 36 48 36 53
                           , srcInfoPoints = []
                           }
                         (UnQual
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 36 48 36 53
                              , srcInfoPoints = []
                              }
                            (Ident
                               SrcSpanInfo
                                 { srcInfoSpan =
                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 36 48 36 53
                                 , srcInfoPoints = []
                                 }
                               "Maybe")))
                      (TyTuple
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 36 54 36 63
                           , srcInfoPoints =
                               [ SrcSpan "tests/examples/PatternSynonyms3.hs" 36 54 36 55
                               , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 56 36 57
                               , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 62 36 63
                               ]
                           }
                         Boxed
                         [ TyVar
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 36 55 36 56
                               , srcInfoPoints = []
                               }
                             (Ident
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/PatternSynonyms3.hs" 36 55 36 56
                                  , srcInfoPoints = []
                                  }
                                "a")
                         , TyCon
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 36 58 36 62
                               , srcInfoPoints = []
                               }
                             (UnQual
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/PatternSynonyms3.hs" 36 58 36 62
                                  , srcInfoPoints = []
                                  }
                                (Ident
                                   SrcSpanInfo
                                     { srcInfoSpan =
                                         SrcSpan "tests/examples/PatternSynonyms3.hs" 36 58 36 62
                                     , srcInfoPoints = []
                                     }
                                   "Bool"))
                         ])))))
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 37 1 37 33
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 37 1 37 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 37 13 37 14
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 37 9 37 12
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 37 9 37 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 37 9 37 10
                     , srcInfoPoints = []
                     }
                   "C"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 37 11 37 12
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 37 11 37 12
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 37 15 37 33
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 37 15 37 16
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 37 15 37 16
                     , srcInfoPoints = []
                     }
                   "Y"))
             [ PParen
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 37 17 37 33
                   , srcInfoPoints =
                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 37 17 37 18
                       , SrcSpan "tests/examples/PatternSynonyms3.hs" 37 32 37 33
                       ]
                   }
                 (PApp
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 37 18 37 32
                      , srcInfoPoints = []
                      }
                    (UnQual
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 37 18 37 22
                         , srcInfoPoints = []
                         }
                       (Ident
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 37 18 37 22
                            , srcInfoPoints = []
                            }
                          "Just"))
                    [ PTuple
                        SrcSpanInfo
                          { srcInfoSpan =
                              SrcSpan "tests/examples/PatternSynonyms3.hs" 37 23 37 32
                          , srcInfoPoints =
                              [ SrcSpan "tests/examples/PatternSynonyms3.hs" 37 23 37 24
                              , SrcSpan "tests/examples/PatternSynonyms3.hs" 37 25 37 26
                              , SrcSpan "tests/examples/PatternSynonyms3.hs" 37 31 37 32
                              ]
                          }
                        Boxed
                        [ PVar
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 37 24 37 25
                              , srcInfoPoints = []
                              }
                            (Ident
                               SrcSpanInfo
                                 { srcInfoSpan =
                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 37 24 37 25
                                 , srcInfoPoints = []
                                 }
                               "x")
                        , PApp
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 37 27 37 31
                              , srcInfoPoints = []
                              }
                            (UnQual
                               SrcSpanInfo
                                 { srcInfoSpan =
                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 37 27 37 31
                                 , srcInfoPoints = []
                                 }
                               (Ident
                                  SrcSpanInfo
                                    { srcInfoSpan =
                                        SrcSpan "tests/examples/PatternSynonyms3.hs" 37 27 37 31
                                    , srcInfoPoints = []
                                    }
                                  "True"))
                            []
                        ]
                    ])
             ])
          ImplicitBidirectional
      , PatSynSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 39 1 39 22
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 39 1 39 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 39 11 39 13
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 39 9 39 10
                , srcInfoPoints = []
                }
              "P"
          ]
          Nothing
          Nothing
          Nothing
          (TyApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 39 14 39 22
               , srcInfoPoints = []
               }
             (TyApp
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 39 14 39 20
                  , srcInfoPoints = []
                  }
                (TyCon
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 39 14 39 15
                     , srcInfoPoints = []
                     }
                   (UnQual
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 39 14 39 15
                        , srcInfoPoints = []
                        }
                      (Ident
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 39 14 39 15
                           , srcInfoPoints = []
                           }
                         "T")))
                (TyCon
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 39 16 39 20
                     , srcInfoPoints = []
                     }
                   (UnQual
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 39 16 39 20
                        , srcInfoPoints = []
                        }
                      (Ident
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 39 16 39 20
                           , srcInfoPoints = []
                           }
                         "Bool"))))
             (TyVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 39 21 39 22
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 39 21 39 22
                     , srcInfoPoints = []
                     }
                   "b")))
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 40 1 40 22
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 40 1 40 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 40 11 40 13
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 40 9 40 10
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 40 9 40 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 40 9 40 10
                     , srcInfoPoints = []
                     }
                   "P"))
             [])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 40 14 40 22
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 40 14 40 17
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 40 14 40 17
                     , srcInfoPoints = []
                     }
                   "MkT"))
             [ PApp
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 40 18 40 22
                   , srcInfoPoints = []
                   }
                 (UnQual
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 40 18 40 22
                      , srcInfoPoints = []
                      }
                    (Ident
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 40 18 40 22
                         , srcInfoPoints = []
                         }
                       "True"))
                 []
             ])
          Unidirectional
      , PatSynSig
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 42 1 42 35
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 42 1 42 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 42 11 42 13
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 42 9 42 10
                , srcInfoPoints = []
                }
              "D"
          ]
          Nothing
          Nothing
          Nothing
          (TyFun
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 42 14 42 35
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 42 16 42 18 ]
               }
             (TyVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 42 14 42 15
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 42 14 42 15
                     , srcInfoPoints = []
                     }
                   "a"))
             (TyApp
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 42 19 42 35
                  , srcInfoPoints = []
                  }
                (TyApp
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 42 19 42 30
                     , srcInfoPoints = []
                     }
                   (TyCon
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 42 19 42 20
                        , srcInfoPoints = []
                        }
                      (UnQual
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 42 19 42 20
                           , srcInfoPoints = []
                           }
                         (Ident
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 42 19 42 20
                              , srcInfoPoints = []
                              }
                            "T")))
                   (TyParen
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 42 21 42 30
                        , srcInfoPoints =
                            [ SrcSpan "tests/examples/PatternSynonyms3.hs" 42 21 42 22
                            , SrcSpan "tests/examples/PatternSynonyms3.hs" 42 29 42 30
                            ]
                        }
                      (TyApp
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 42 22 42 29
                           , srcInfoPoints = []
                           }
                         (TyCon
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 42 22 42 27
                              , srcInfoPoints = []
                              }
                            (UnQual
                               SrcSpanInfo
                                 { srcInfoSpan =
                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 42 22 42 27
                                 , srcInfoPoints = []
                                 }
                               (Ident
                                  SrcSpanInfo
                                    { srcInfoSpan =
                                        SrcSpan "tests/examples/PatternSynonyms3.hs" 42 22 42 27
                                    , srcInfoPoints = []
                                    }
                                  "Maybe")))
                         (TyVar
                            SrcSpanInfo
                              { srcInfoSpan =
                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 42 28 42 29
                              , srcInfoPoints = []
                              }
                            (Ident
                               SrcSpanInfo
                                 { srcInfoSpan =
                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 42 28 42 29
                                 , srcInfoPoints = []
                                 }
                               "a")))))
                (TyCon
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 42 31 42 35
                     , srcInfoPoints = []
                     }
                   (UnQual
                      SrcSpanInfo
                        { srcInfoSpan =
                            SrcSpan "tests/examples/PatternSynonyms3.hs" 42 31 42 35
                        , srcInfoPoints = []
                        }
                      (Ident
                         SrcSpanInfo
                           { srcInfoSpan =
                               SrcSpan "tests/examples/PatternSynonyms3.hs" 42 31 42 35
                           , srcInfoPoints = []
                           }
                         "Bool")))))
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 43 1 43 27
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 43 1 43 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 43 13 43 14
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 43 9 43 12
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 43 9 43 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 43 9 43 10
                     , srcInfoPoints = []
                     }
                   "D"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 43 11 43 12
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 43 11 43 12
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 43 15 43 27
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 43 15 43 18
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 43 15 43 18
                     , srcInfoPoints = []
                     }
                   "MkT"))
             [ PParen
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 43 19 43 27
                   , srcInfoPoints =
                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 43 19 43 20
                       , SrcSpan "tests/examples/PatternSynonyms3.hs" 43 26 43 27
                       ]
                   }
                 (PApp
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 43 20 43 26
                      , srcInfoPoints = []
                      }
                    (UnQual
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 43 20 43 24
                         , srcInfoPoints = []
                         }
                       (Ident
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 43 20 43 24
                            , srcInfoPoints = []
                            }
                          "Just"))
                    [ PVar
                        SrcSpanInfo
                          { srcInfoSpan =
                              SrcSpan "tests/examples/PatternSynonyms3.hs" 43 25 43 26
                          , srcInfoPoints = []
                          }
                        (Ident
                           SrcSpanInfo
                             { srcInfoSpan =
                                 SrcSpan "tests/examples/PatternSynonyms3.hs" 43 25 43 26
                             , srcInfoPoints = []
                             }
                           "x")
                    ])
             ])
          ImplicitBidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 46 1 46 28
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 46 1 46 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 46 15 46 16
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 46 9 46 14
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 46 9 46 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 46 9 46 10
                     , srcInfoPoints = []
                     }
                   "P"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 46 11 46 12
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 46 11 46 12
                      , srcInfoPoints = []
                      }
                    "a")
             , PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 46 13 46 14
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 46 13 46 14
                      , srcInfoPoints = []
                      }
                    "b")
             ])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 46 17 46 28
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 46 17 46 21
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 46 17 46 21
                     , srcInfoPoints = []
                     }
                   "Just"))
             [ PTuple
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 46 22 46 28
                   , srcInfoPoints =
                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 46 22 46 23
                       , SrcSpan "tests/examples/PatternSynonyms3.hs" 46 24 46 25
                       , SrcSpan "tests/examples/PatternSynonyms3.hs" 46 27 46 28
                       ]
                   }
                 Boxed
                 [ PVar
                     SrcSpanInfo
                       { srcInfoSpan =
                           SrcSpan "tests/examples/PatternSynonyms3.hs" 46 23 46 24
                       , srcInfoPoints = []
                       }
                     (Ident
                        SrcSpanInfo
                          { srcInfoSpan =
                              SrcSpan "tests/examples/PatternSynonyms3.hs" 46 23 46 24
                          , srcInfoPoints = []
                          }
                        "a")
                 , PVar
                     SrcSpanInfo
                       { srcInfoSpan =
                           SrcSpan "tests/examples/PatternSynonyms3.hs" 46 26 46 27
                       , srcInfoPoints = []
                       }
                     (Ident
                        SrcSpanInfo
                          { srcInfoSpan =
                              SrcSpan "tests/examples/PatternSynonyms3.hs" 46 26 46 27
                          , srcInfoPoints = []
                          }
                        "b")
                 ]
             ])
          ImplicitBidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 48 1 48 23
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 48 1 48 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 48 18 48 19
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 48 9 48 17
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 48 9 48 15
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 48 9 48 15
                     , srcInfoPoints = []
                     }
                   "Single"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 48 16 48 17
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 48 16 48 17
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          (PList
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 48 20 48 23
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 48 20 48 21
                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 48 22 48 23
                   ]
               }
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 48 21 48 22
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 48 21 48 22
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          ImplicitBidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 50 1 50 25
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 50 1 50 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 50 17 50 18
                ]
            }
          (PInfixApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 50 9 50 16
               , srcInfoPoints = []
               }
             (PVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 50 9 50 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 50 9 50 10
                     , srcInfoPoints = []
                     }
                   "a"))
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 50 11 50 14
                  , srcInfoPoints = []
                  }
                (Symbol
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 50 11 50 14
                     , srcInfoPoints = []
                     }
                   ":+:"))
             (PVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 50 15 50 16
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 50 15 50 16
                     , srcInfoPoints = []
                     }
                   "b")))
          (PTuple
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 50 19 50 25
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 50 19 50 20
                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 50 21 50 22
                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 50 24 50 25
                   ]
               }
             Boxed
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 50 20 50 21
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 50 20 50 21
                      , srcInfoPoints = []
                      }
                    "a")
             , PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 50 23 50 24
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 50 23 50 24
                      , srcInfoPoints = []
                      }
                    "b")
             ])
          ImplicitBidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 53 1 53 24
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 53 1 53 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 53 13 53 15
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 53 9 53 12
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 53 9 53 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 53 9 53 10
                     , srcInfoPoints = []
                     }
                   "P"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 53 11 53 12
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 53 11 53 12
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 53 16 53 24
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 53 16 53 19
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 53 16 53 19
                     , srcInfoPoints = []
                     }
                   "MkT"))
             [ PLit
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 53 20 53 22
                   , srcInfoPoints = []
                   }
                 (Signless
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 53 20 53 22
                      , srcInfoPoints = []
                      })
                 (Int
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 53 20 53 22
                      , srcInfoPoints = []
                      }
                    42
                    "42")
             , PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 53 23 53 24
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 53 23 53 24
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          Unidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 56 1 56 25
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 56 1 56 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 56 15 56 17
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 56 9 56 14
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 56 9 56 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 56 9 56 10
                     , srcInfoPoints = []
                     }
                   "P"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 56 11 56 12
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 56 11 56 12
                      , srcInfoPoints = []
                      }
                    "x")
             , PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 56 13 56 14
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 56 13 56 14
                      , srcInfoPoints = []
                      }
                    "y")
             ])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 56 18 56 25
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 56 18 56 21
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 56 18 56 21
                     , srcInfoPoints = []
                     }
                   "MkT"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 56 22 56 23
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 56 22 56 23
                      , srcInfoPoints = []
                      }
                    "x")
             , PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 56 24 56 25
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 56 24 56 25
                      , srcInfoPoints = []
                      }
                    "y")
             ])
          Unidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 58 1 58 33
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 58 1 58 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 58 13 58 15
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 58 9 58 12
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 58 9 58 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 58 9 58 10
                     , srcInfoPoints = []
                     }
                   "P"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 58 11 58 12
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 58 11 58 12
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 58 16 58 33
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 58 16 58 19
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 58 16 58 19
                     , srcInfoPoints = []
                     }
                   "MkT"))
             [ PParen
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 58 20 58 31
                   , srcInfoPoints =
                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 58 20 58 21
                       , SrcSpan "tests/examples/PatternSynonyms3.hs" 58 30 58 31
                       ]
                   }
                 (PViewPat
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 58 21 58 30
                      , srcInfoPoints =
                          [ SrcSpan "tests/examples/PatternSynonyms3.hs" 58 23 58 25 ]
                      }
                    (Var
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 58 21 58 22
                         , srcInfoPoints = []
                         }
                       (UnQual
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 58 21 58 22
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 58 21 58 22
                               , srcInfoPoints = []
                               }
                             "f")))
                    (PApp
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 58 26 58 30
                         , srcInfoPoints = []
                         }
                       (UnQual
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 58 26 58 30
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 58 26 58 30
                               , srcInfoPoints = []
                               }
                             "True"))
                       []))
             , PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 58 32 58 33
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 58 32 58 33
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          Unidirectional
      , GDataDecl
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 60 1 63 0
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 60 8 60 13
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 61 5 61 5
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 63 1 63 0
                ]
            }
          (DataType
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 60 1 60 5
               , srcInfoPoints = []
               })
          Nothing
          (DHead
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 60 6 60 7
               , srcInfoPoints = []
               }
             (Ident
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 60 6 60 7
                  , srcInfoPoints = []
                  }
                "T"))
          Nothing
          [ GadtDecl
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms3.hs" 61 5 61 33
                , srcInfoPoints =
                    [ SrcSpan "tests/examples/PatternSynonyms3.hs" 61 9 61 11 ]
                }
              (Ident
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 61 5 61 8
                   , srcInfoPoints = []
                   }
                 "MkT")
              Nothing
              (TyFun
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 61 12 61 33
                   , srcInfoPoints =
                       [ SrcSpan "tests/examples/PatternSynonyms3.hs" 61 14 61 16 ]
                   }
                 (TyVar
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 61 12 61 13
                      , srcInfoPoints = []
                      }
                    (Ident
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 61 12 61 13
                         , srcInfoPoints = []
                         }
                       "b"))
                 (TyFun
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 61 17 61 33
                      , srcInfoPoints =
                          [ SrcSpan "tests/examples/PatternSynonyms3.hs" 61 29 61 31 ]
                      }
                    (TyParen
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 61 17 61 28
                         , srcInfoPoints =
                             [ SrcSpan "tests/examples/PatternSynonyms3.hs" 61 17 61 18
                             , SrcSpan "tests/examples/PatternSynonyms3.hs" 61 27 61 28
                             ]
                         }
                       (TyFun
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 61 18 61 27
                            , srcInfoPoints =
                                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 61 20 61 22 ]
                            }
                          (TyVar
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 61 18 61 19
                               , srcInfoPoints = []
                               }
                             (Ident
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/PatternSynonyms3.hs" 61 18 61 19
                                  , srcInfoPoints = []
                                  }
                                "b"))
                          (TyCon
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 61 23 61 27
                               , srcInfoPoints = []
                               }
                             (UnQual
                                SrcSpanInfo
                                  { srcInfoSpan =
                                      SrcSpan "tests/examples/PatternSynonyms3.hs" 61 23 61 27
                                  , srcInfoPoints = []
                                  }
                                (Ident
                                   SrcSpanInfo
                                     { srcInfoSpan =
                                         SrcSpan "tests/examples/PatternSynonyms3.hs" 61 23 61 27
                                     , srcInfoPoints = []
                                     }
                                   "Bool")))))
                    (TyCon
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 61 32 61 33
                         , srcInfoPoints = []
                         }
                       (UnQual
                          SrcSpanInfo
                            { srcInfoSpan =
                                SrcSpan "tests/examples/PatternSynonyms3.hs" 61 32 61 33
                            , srcInfoPoints = []
                            }
                          (Ident
                             SrcSpanInfo
                               { srcInfoSpan =
                                   SrcSpan "tests/examples/PatternSynonyms3.hs" 61 32 61 33
                               , srcInfoPoints = []
                               }
                             "T")))))
          ]
          []
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 63 1 63 25
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 63 1 63 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 63 15 63 17
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 63 9 63 14
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 63 9 63 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 63 9 63 10
                     , srcInfoPoints = []
                     }
                   "P"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 63 11 63 12
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 63 11 63 12
                      , srcInfoPoints = []
                      }
                    "x")
             , PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 63 13 63 14
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 63 13 63 14
                      , srcInfoPoints = []
                      }
                    "f")
             ])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 63 18 63 25
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 63 18 63 21
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 63 18 63 21
                     , srcInfoPoints = []
                     }
                   "MkT"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 63 22 63 23
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 63 22 63 23
                      , srcInfoPoints = []
                      }
                    "x")
             , PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 63 24 63 25
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 63 24 63 25
                      , srcInfoPoints = []
                      }
                    "f")
             ])
          Unidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 65 1 65 24
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 65 1 65 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 65 18 65 20
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 65 9 65 17
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 65 9 65 15
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 65 9 65 15
                     , srcInfoPoints = []
                     }
                   "Single"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 65 16 65 17
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 65 16 65 17
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          (PList
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 65 21 65 24
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 65 21 65 22
                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 65 23 65 24
                   ]
               }
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 65 22 65 23
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 65 22 65 23
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          Unidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 67 1 67 23
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 67 1 67 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 67 11 67 13
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 67 9 67 10
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 67 9 67 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 67 9 67 10
                     , srcInfoPoints = []
                     }
                   "P"))
             [])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 67 14 67 23
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 67 14 67 18
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 67 14 67 18
                     , srcInfoPoints = []
                     }
                   "Just"))
             [ PApp
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 67 19 67 23
                   , srcInfoPoints = []
                   }
                 (UnQual
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 67 19 67 23
                      , srcInfoPoints = []
                      }
                    (Ident
                       SrcSpanInfo
                         { srcInfoSpan =
                             SrcSpan "tests/examples/PatternSynonyms3.hs" 67 19 67 23
                         , srcInfoPoints = []
                         }
                       "True"))
                 []
             ])
          Unidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 69 1 69 15
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 69 1 69 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 69 11 69 12
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 69 9 69 10
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 69 9 69 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 69 9 69 10
                     , srcInfoPoints = []
                     }
                   "P"))
             [])
          (PLit
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 69 13 69 15
               , srcInfoPoints = []
               }
             (Signless
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 69 13 69 15
                  , srcInfoPoints = []
                  })
             (Int
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 69 13 69 15
                  , srcInfoPoints = []
                  }
                42
                "42"))
          ImplicitBidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 72 1 72 15
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 72 1 72 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 72 11 72 12
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 72 9 72 10
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 72 9 72 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 72 9 72 10
                     , srcInfoPoints = []
                     }
                   "P"))
             [])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 72 13 72 15
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 72 13 72 14
                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 72 14 72 15
                   ]
               }
             (Special
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 72 13 72 15
                  , srcInfoPoints =
                      [ SrcSpan "tests/examples/PatternSynonyms3.hs" 72 13 72 14
                      , SrcSpan "tests/examples/PatternSynonyms3.hs" 72 14 72 15
                      ]
                  }
                (UnitCon
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 72 13 72 15
                     , srcInfoPoints =
                         [ SrcSpan "tests/examples/PatternSynonyms3.hs" 72 13 72 14
                         , SrcSpan "tests/examples/PatternSynonyms3.hs" 72 14 72 15
                         ]
                     }))
             [])
          ImplicitBidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms3.hs" 75 1 75 24
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms3.hs" 75 1 75 8
                , SrcSpan "tests/examples/PatternSynonyms3.hs" 75 18 75 20
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 75 9 75 17
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms3.hs" 75 9 75 15
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms3.hs" 75 9 75 15
                     , srcInfoPoints = []
                     }
                   "Single"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 75 16 75 17
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 75 16 75 17
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          (PList
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms3.hs" 75 21 75 24
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms3.hs" 75 21 75 22
                   , SrcSpan "tests/examples/PatternSynonyms3.hs" 75 23 75 24
                   ]
               }
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms3.hs" 75 22 75 23
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms3.hs" 75 22 75 23
                      , srcInfoPoints = []
                      }
                    "x")
             ])
          Unidirectional
      ]
  , []
  )