ParseOk ( Module SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 1 1 8 1 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 1 1 1 1 , SrcSpan "tests/examples/GenericTree.hs" 2 1 2 1 , SrcSpan "tests/examples/GenericTree.hs" 2 1 2 1 , SrcSpan "tests/examples/GenericTree.hs" 4 1 4 1 , SrcSpan "tests/examples/GenericTree.hs" 6 1 6 1 , SrcSpan "tests/examples/GenericTree.hs" 7 1 7 1 , SrcSpan "tests/examples/GenericTree.hs" 8 1 8 1 , SrcSpan "tests/examples/GenericTree.hs" 8 1 8 1 ] } (Just (ModuleHead SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 2 1 2 25 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 2 1 2 7 , SrcSpan "tests/examples/GenericTree.hs" 2 20 2 25 ] } (ModuleName SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 2 8 2 19 , srcInfoPoints = [] } "GenericTree") Nothing Nothing)) [ LanguagePragma SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 1 1 1 28 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 1 1 1 13 , SrcSpan "tests/examples/GenericTree.hs" 1 25 1 28 ] } [ Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 1 14 1 24 , srcInfoPoints = [] } "RankNTypes" ] ] [ ImportDecl { importAnn = SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 4 1 4 21 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 4 1 4 7 ] } , importModule = ModuleName SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 4 8 4 21 , srcInfoPoints = [] } "Data.Typeable" , importQualified = False , importSrc = False , importSafe = False , importPkg = Nothing , importAs = Nothing , importSpecs = Nothing } ] [ TypeSig SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 1 6 83 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 6 8 6 10 ] } [ Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 1 6 7 , srcInfoPoints = [] } "dynRep" ] (TyForall SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 11 6 83 , srcInfoPoints = [] } Nothing (Just (CxSingle SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 11 6 26 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 6 11 6 12 , SrcSpan "tests/examples/GenericTree.hs" 6 22 6 23 , SrcSpan "tests/examples/GenericTree.hs" 6 24 6 26 ] } (ParenA SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 11 6 26 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 6 11 6 12 , SrcSpan "tests/examples/GenericTree.hs" 6 22 6 23 , SrcSpan "tests/examples/GenericTree.hs" 6 24 6 26 ] } (ClassA SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 22 , srcInfoPoints = [] } (UnQual SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 20 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 20 , srcInfoPoints = [] } "Typeable")) [ TyVar SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 21 6 22 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 21 6 22 , srcInfoPoints = [] } "a") ])))) (TyFun SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 27 6 83 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 6 29 6 31 ] } (TyVar SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 27 6 28 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 27 6 28 , srcInfoPoints = [] } "a")) (TyTuple SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 32 6 83 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 6 32 6 33 , SrcSpan "tests/examples/GenericTree.hs" 6 40 6 41 , SrcSpan "tests/examples/GenericTree.hs" 6 82 6 83 ] } Boxed [ TyCon SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 33 6 40 , srcInfoPoints = [] } (UnQual SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 33 6 40 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 33 6 40 , srcInfoPoints = [] } "TypeRep")) , TyForall SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 42 6 82 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 6 42 6 48 , SrcSpan "tests/examples/GenericTree.hs" 6 50 6 51 ] } (Just [ UnkindedVar SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 49 6 50 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 49 6 50 , srcInfoPoints = [] } "b") ]) (Just (CxSingle SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 52 6 67 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 6 52 6 53 , SrcSpan "tests/examples/GenericTree.hs" 6 63 6 64 , SrcSpan "tests/examples/GenericTree.hs" 6 65 6 67 ] } (ParenA SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 52 6 67 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 6 52 6 53 , SrcSpan "tests/examples/GenericTree.hs" 6 63 6 64 , SrcSpan "tests/examples/GenericTree.hs" 6 65 6 67 ] } (ClassA SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 53 6 63 , srcInfoPoints = [] } (UnQual SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 53 6 61 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 53 6 61 , srcInfoPoints = [] } "Typeable")) [ TyVar SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 62 6 63 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 62 6 63 , srcInfoPoints = [] } "b") ])))) (TyFun SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 68 6 82 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 6 70 6 72 ] } (TyVar SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 68 6 69 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 68 6 69 , srcInfoPoints = [] } "b")) (TyParen SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 73 6 82 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 6 73 6 74 , SrcSpan "tests/examples/GenericTree.hs" 6 81 6 82 ] } (TyApp SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 74 6 81 , srcInfoPoints = [] } (TyCon SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 74 6 79 , srcInfoPoints = [] } (UnQual SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 74 6 79 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 74 6 79 , srcInfoPoints = [] } "Maybe"))) (TyVar SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 80 6 81 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 80 6 81 , srcInfoPoints = [] } "b"))))) ]))) , FunBind SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 1 7 36 , srcInfoPoints = [] } [ Match SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 1 7 36 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 1 7 7 , srcInfoPoints = [] } "dynRep") [ PVar SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 8 7 9 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 8 7 9 , srcInfoPoints = [] } "a") ] (UnGuardedRhs SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 10 7 36 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 7 10 7 11 ] } (Tuple SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 12 7 36 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 7 12 7 13 , SrcSpan "tests/examples/GenericTree.hs" 7 21 7 22 , SrcSpan "tests/examples/GenericTree.hs" 7 35 7 36 ] } Boxed [ App SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 21 , srcInfoPoints = [] } (Var SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 19 , srcInfoPoints = [] } (UnQual SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 19 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 13 7 19 , srcInfoPoints = [] } "typeOf"))) (Var SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 20 7 21 , srcInfoPoints = [] } (UnQual SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 20 7 21 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 20 7 21 , srcInfoPoints = [] } "a"))) , Lambda SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 23 7 35 , srcInfoPoints = [ SrcSpan "tests/examples/GenericTree.hs" 7 23 7 24 , SrcSpan "tests/examples/GenericTree.hs" 7 26 7 28 ] } [ PWildCard SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 24 7 25 , srcInfoPoints = [] } ] (App SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 29 7 35 , srcInfoPoints = [] } (Var SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 29 7 33 , srcInfoPoints = [] } (UnQual SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 29 7 33 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 29 7 33 , srcInfoPoints = [] } "cast"))) (Var SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 34 7 35 , srcInfoPoints = [] } (UnQual SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 34 7 35 , srcInfoPoints = [] } (Ident SrcSpanInfo { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 7 34 7 35 , srcInfoPoints = [] } "a")))) ])) Nothing ] ] , [] )