ParseOk
  ( Module
      SrcSpanInfo
        { srcInfoSpan =
            SrcSpan "tests/examples/PatternSynonyms.hs" 1 1 17 1
        , srcInfoPoints =
            [ SrcSpan "tests/examples/PatternSynonyms.hs" 1 1 1 1
            , SrcSpan "tests/examples/PatternSynonyms.hs" 3 1 3 1
            , SrcSpan "tests/examples/PatternSynonyms.hs" 3 1 3 1
            , SrcSpan "tests/examples/PatternSynonyms.hs" 3 1 3 1
            , SrcSpan "tests/examples/PatternSynonyms.hs" 5 1 5 1
            , SrcSpan "tests/examples/PatternSynonyms.hs" 7 1 7 1
            , SrcSpan "tests/examples/PatternSynonyms.hs" 9 1 9 1
            , SrcSpan "tests/examples/PatternSynonyms.hs" 11 1 11 1
            , SrcSpan "tests/examples/PatternSynonyms.hs" 13 1 13 1
            , SrcSpan "tests/examples/PatternSynonyms.hs" 15 1 15 1
            , SrcSpan "tests/examples/PatternSynonyms.hs" 17 1 17 1
            , SrcSpan "tests/examples/PatternSynonyms.hs" 17 1 17 1
            ]
        }
      Nothing
      [ LanguagePragma
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms.hs" 1 1 1 33
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms.hs" 1 1 1 13
                , SrcSpan "tests/examples/PatternSynonyms.hs" 1 30 1 33
                ]
            }
          [ Ident
              SrcSpanInfo
                { srcInfoSpan =
                    SrcSpan "tests/examples/PatternSynonyms.hs" 1 14 1 29
                , srcInfoPoints = []
                }
              "PatternSynonyms"
          ]
      ]
      []
      [ PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms.hs" 3 1 3 20
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms.hs" 3 1 3 8
                , SrcSpan "tests/examples/PatternSynonyms.hs" 3 11 3 12
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms.hs" 3 9 3 10
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms.hs" 3 9 3 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms.hs" 3 9 3 10
                     , srcInfoPoints = []
                     }
                   "A"))
             [])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms.hs" 3 13 3 20
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms.hs" 3 13 3 20
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms.hs" 3 13 3 20
                     , srcInfoPoints = []
                     }
                   "Nothing"))
             [])
          ImplicitBidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms.hs" 5 1 5 21
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms.hs" 5 1 5 8
                , SrcSpan "tests/examples/PatternSynonyms.hs" 5 13 5 14
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms.hs" 5 9 5 12
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms.hs" 5 9 5 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms.hs" 5 9 5 10
                     , srcInfoPoints = []
                     }
                   "B"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms.hs" 5 11 5 12
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms.hs" 5 11 5 12
                      , srcInfoPoints = []
                      }
                    "a")
             ])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms.hs" 5 15 5 21
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms.hs" 5 15 5 19
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms.hs" 5 15 5 19
                     , srcInfoPoints = []
                     }
                   "Just"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms.hs" 5 20 5 21
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms.hs" 5 20 5 21
                      , srcInfoPoints = []
                      }
                    "a")
             ])
          ImplicitBidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms.hs" 7 1 7 24
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms.hs" 7 1 7 8
                , SrcSpan "tests/examples/PatternSynonyms.hs" 7 17 7 18
                ]
            }
          (PInfixApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms.hs" 7 9 7 16
               , srcInfoPoints = []
               }
             (PVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms.hs" 7 9 7 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms.hs" 7 9 7 10
                     , srcInfoPoints = []
                     }
                   "a"))
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms.hs" 7 11 7 14
                  , srcInfoPoints = []
                  }
                (Symbol
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms.hs" 7 11 7 14
                     , srcInfoPoints = []
                     }
                   ":+:"))
             (PVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms.hs" 7 15 7 16
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms.hs" 7 15 7 16
                     , srcInfoPoints = []
                     }
                   "b")))
          (PTuple
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms.hs" 7 19 7 24
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms.hs" 7 19 7 20
                   , SrcSpan "tests/examples/PatternSynonyms.hs" 7 21 7 22
                   , SrcSpan "tests/examples/PatternSynonyms.hs" 7 23 7 24
                   ]
               }
             Boxed
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms.hs" 7 20 7 21
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms.hs" 7 20 7 21
                      , srcInfoPoints = []
                      }
                    "a")
             , PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms.hs" 7 22 7 23
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms.hs" 7 22 7 23
                      , srcInfoPoints = []
                      }
                    "b")
             ])
          ImplicitBidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms.hs" 9 1 9 26
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms.hs" 9 1 9 8
                , SrcSpan "tests/examples/PatternSynonyms.hs" 9 19 9 20
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms.hs" 9 9 9 18
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms.hs" 9 9 9 14
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms.hs" 9 9 9 14
                     , srcInfoPoints = []
                     }
                   "Tuple"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms.hs" 9 15 9 16
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms.hs" 9 15 9 16
                      , srcInfoPoints = []
                      }
                    "a")
             , PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms.hs" 9 17 9 18
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms.hs" 9 17 9 18
                      , srcInfoPoints = []
                      }
                    "b")
             ])
          (PTuple
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms.hs" 9 21 9 26
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms.hs" 9 21 9 22
                   , SrcSpan "tests/examples/PatternSynonyms.hs" 9 23 9 24
                   , SrcSpan "tests/examples/PatternSynonyms.hs" 9 25 9 26
                   ]
               }
             Boxed
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms.hs" 9 22 9 23
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms.hs" 9 22 9 23
                      , srcInfoPoints = []
                      }
                    "a")
             , PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms.hs" 9 24 9 25
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms.hs" 9 24 9 25
                      , srcInfoPoints = []
                      }
                    "b")
             ])
          ImplicitBidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms.hs" 11 1 11 23
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms.hs" 11 1 11 8
                , SrcSpan "tests/examples/PatternSynonyms.hs" 11 14 11 15
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms.hs" 11 12 11 13
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms.hs" 11 12 11 13
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms.hs" 11 12 11 13
                     , srcInfoPoints = []
                     }
                   "A"))
             [])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms.hs" 11 16 11 23
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms.hs" 11 16 11 23
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms.hs" 11 16 11 23
                     , srcInfoPoints = []
                     }
                   "Nothing"))
             [])
          ImplicitBidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms.hs" 13 1 13 24
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms.hs" 13 1 13 8
                , SrcSpan "tests/examples/PatternSynonyms.hs" 13 16 13 17
                ]
            }
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms.hs" 13 9 13 12
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms.hs" 13 9 13 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms.hs" 13 9 13 10
                     , srcInfoPoints = []
                     }
                   "B"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms.hs" 13 11 13 12
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms.hs" 13 11 13 12
                      , srcInfoPoints = []
                      }
                    "a")
             ])
          (PApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms.hs" 13 18 13 24
               , srcInfoPoints = []
               }
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms.hs" 13 18 13 22
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms.hs" 13 18 13 22
                     , srcInfoPoints = []
                     }
                   "Just"))
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms.hs" 13 23 13 24
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms.hs" 13 23 13 24
                      , srcInfoPoints = []
                      }
                    "a")
             ])
          ImplicitBidirectional
      , PatSyn
          SrcSpanInfo
            { srcInfoSpan =
                SrcSpan "tests/examples/PatternSynonyms.hs" 15 1 15 28
            , srcInfoPoints =
                [ SrcSpan "tests/examples/PatternSynonyms.hs" 15 1 15 8
                , SrcSpan "tests/examples/PatternSynonyms.hs" 15 17 15 18
                ]
            }
          (PInfixApp
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms.hs" 15 9 15 16
               , srcInfoPoints = []
               }
             (PVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms.hs" 15 9 15 10
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms.hs" 15 9 15 10
                     , srcInfoPoints = []
                     }
                   "a"))
             (UnQual
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms.hs" 15 11 15 14
                  , srcInfoPoints = []
                  }
                (Symbol
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms.hs" 15 11 15 14
                     , srcInfoPoints = []
                     }
                   ":+:"))
             (PVar
                SrcSpanInfo
                  { srcInfoSpan =
                      SrcSpan "tests/examples/PatternSynonyms.hs" 15 15 15 16
                  , srcInfoPoints = []
                  }
                (Ident
                   SrcSpanInfo
                     { srcInfoSpan =
                         SrcSpan "tests/examples/PatternSynonyms.hs" 15 15 15 16
                     , srcInfoPoints = []
                     }
                   "b")))
          (PTuple
             SrcSpanInfo
               { srcInfoSpan =
                   SrcSpan "tests/examples/PatternSynonyms.hs" 15 23 15 28
               , srcInfoPoints =
                   [ SrcSpan "tests/examples/PatternSynonyms.hs" 15 23 15 24
                   , SrcSpan "tests/examples/PatternSynonyms.hs" 15 25 15 26
                   , SrcSpan "tests/examples/PatternSynonyms.hs" 15 27 15 28
                   ]
               }
             Boxed
             [ PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms.hs" 15 24 15 25
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms.hs" 15 24 15 25
                      , srcInfoPoints = []
                      }
                    "a")
             , PVar
                 SrcSpanInfo
                   { srcInfoSpan =
                       SrcSpan "tests/examples/PatternSynonyms.hs" 15 26 15 27
                   , srcInfoPoints = []
                   }
                 (Ident
                    SrcSpanInfo
                      { srcInfoSpan =
                          SrcSpan "tests/examples/PatternSynonyms.hs" 15 26 15 27
                      , srcInfoPoints = []
                      }
                    "b")
             ])
          ImplicitBidirectional
      ]
  , []
  )