@@ -29,6 +29,7 @@ data Docs = FunDoc FunDoc
29 [FunDoc] -- method docs
29 [FunDoc] -- method docs
30 [(Name, Maybe Docstring)] -- parameters and their docstrings
30 [(Name, Maybe Docstring)] -- parameters and their docstrings
31 [PTerm] -- instances
31 [PTerm] -- instances
32+ [PTerm] -- superclasses
32 deriving Show
33 deriving Show
34showDoc d | nullDocstring d = empty
35showDoc d | nullDocstring d = empty
@@ -76,7 +77,7 @@ pprintDocs ist (DataDoc t args)
76 = text "Data type" <+> pprintFD ist t <$>
77 = text "Data type" <+> pprintFD ist t <$>
77 nest 4 (text "Constructors:" <> line <>
78 nest 4 (text "Constructors:" <> line <>
78 vsep (map (pprintFD ist) args))
79 vsep (map (pprintFD ist) args))
79−pprintDocs ist (ClassDoc n doc meths params instances)
80+pprintDocs ist (ClassDoc n doc meths params instances superclasses)
80 = nest 4 (text "Type class" <+> prettyName imp [] n <>
81 = nest 4 (text "Type class" <+> prettyName imp [] n <>
81 if nullDocstring doc then empty else line <> renderDocstring doc)
82 if nullDocstring doc then empty else line <> renderDocstring doc)
82 <> line <$>
83 <> line <$>
@@ -92,6 +93,10 @@ pprintDocs ist (ClassDoc n doc meths params instances)
92 if null subclasses then empty
93 if null subclasses then empty
93 else line <$> nest 4 (text "Subclasses:" <$>
94 else line <$> nest 4 (text "Subclasses:" <$>
94 vsep (map (dumpInstance . prettifySubclasses) subclasses))
95 vsep (map (dumpInstance . prettifySubclasses) subclasses))
97+ if null superclasses then empty
98+ else line <$> nest 4 (text "Default superclass instances:" <$>
99+ vsep (map dumpInstance superclasses))
96 params' = zip pNames (repeat False)
101 params' = zip pNames (repeat False)
@@ -151,8 +156,12 @@ docClass n ci
151 docstr = maybe emptyDocstring fst docStrings
156 docstr = maybe emptyDocstring fst docStrings
152 params = map (\pn -> (pn, docStrings >>= (lookup pn . snd))) (class_params ci)
157 params = map (\pn -> (pn, docStrings >>= (lookup pn . snd))) (class_params ci)
153 instances = map (delabTy i) (class_instances ci)
158 instances = map (delabTy i) (class_instances ci)
159+ superclasses = catMaybes $ map getDInst (class_default_superclasses ci)
154− mdocs <- mapM (docFun .fst) (class_methods ci)
160+ mdocs <- mapM (docFun . fst) (class_methods ci)
155− return $ ClassDoc n docstr mdocs params instances
161+ return $ ClassDoc n docstr mdocs params instances superclasses
163+ getDInst (PInstance _ _ _ _ _ t _ _) = Just t
164+ getDInst _ = Nothing
157docFun :: Name -> Idris FunDoc
166docFun :: Name -> Idris FunDoc