==================== Parser AST ==================== (L { T15323.hs:1:1 } (HsModule (XModulePs (EpAnn (Anchor { T15323.hs:1:1 } (UnchangedAnchor)) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { T15323.hs:3:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T15323.hs:3:15-19 }))] (AnnList (Nothing) (Nothing) (Nothing) [] [])) (EpaCommentsBalanced [] [(L (Anchor { T15323.hs:7:1 } (UnchangedAnchor)) (EpaComment (EpaEofComment) { T15323.hs:7:1 }))])) (VirtualBraces (1)) (Nothing) (Nothing)) (Just (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:3:8-13 }) {ModuleName: T15323})) (Nothing) [] [(L (SrcSpanAnn (EpAnn (Anchor { T15323.hs:(5,1)-(6,54) } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { T15323.hs:(5,1)-(6,54) }) (TyClD (NoExtField) (DataDecl (EpAnn (Anchor { T15323.hs:(5,1)-(6,54) } (UnchangedAnchor)) [(AddEpAnn AnnData (EpaSpan { T15323.hs:5:1-4 })) ,(AddEpAnn AnnWhere (EpaSpan { T15323.hs:5:21-25 }))] (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:5:6-17 }) (Unqual {OccName: MaybeDefault})) (HsQTvs (NoExtField) [(L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:5:19 }) (UserTyVar (EpAnn (Anchor { T15323.hs:5:19 } (UnchangedAnchor)) [] (EpaComments [])) (()) (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:5:19 }) (Unqual {OccName: v}))))]) (Prefix) (HsDataDefn (NoExtField) (Nothing) (Nothing) (Nothing) (DataTypeCons [(L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:5-54 }) (ConDeclGADT (EpAnn (Anchor { T15323.hs:6:5-54 } (UnchangedAnchor)) [] (EpaComments [])) (:| (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:5-14 }) (Unqual {OccName: TestParens})) []) (L (TokenLoc (EpaSpan { T15323.hs:6:17-18 })) (HsNormalTok)) (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:20-54 }) (HsOuterExplicit (EpAnn (Anchor { T15323.hs:6:20-25 } (UnchangedAnchor)) ((,) (AddEpAnn AnnForall (EpaSpan { T15323.hs:6:20-25 })) (AddEpAnn AnnDot (EpaSpan { T15323.hs:6:29 }))) (EpaComments [])) [(L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:27 }) (UserTyVar (EpAnn (Anchor { T15323.hs:6:27 } (UnchangedAnchor)) [] (EpaComments [])) (SpecifiedSpec) (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:27 }) (Unqual {OccName: v}))))])) (Just (L (SrcSpanAnn (EpAnn (Anchor { T15323.hs:6:31-36 } (UnchangedAnchor)) (AnnContext (Just ((,) (NormalSyntax) (EpaSpan { T15323.hs:6:38-39 }))) [] []) (EpaComments [])) { T15323.hs:6:31-36 }) [(L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:31-36 }) (HsParTy (EpAnn (Anchor { T15323.hs:6:31 } (UnchangedAnchor)) (AnnParen (AnnParens) (EpaSpan { T15323.hs:6:31 }) (EpaSpan { T15323.hs:6:36 })) (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:32-35 }) (HsAppTy (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:32-33 }) (HsTyVar (EpAnn (Anchor { T15323.hs:6:32-33 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:32-33 }) (Unqual {OccName: Eq})))) (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:35 }) (HsTyVar (EpAnn (Anchor { T15323.hs:6:35 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:35 }) (Unqual {OccName: v}))))))))])) (PrefixConGADT []) (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:41-54 }) (HsAppTy (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:41-52 }) (HsTyVar (EpAnn (Anchor { T15323.hs:6:41-52 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:41-52 }) (Unqual {OccName: MaybeDefault})))) (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:54 }) (HsTyVar (EpAnn (Anchor { T15323.hs:6:54 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:54 }) (Unqual {OccName: v})))))) (Nothing)))]) []))))]))