diff options
author | panne <unknown> | 2003-02-24 21:26:29 +0000 |
---|---|---|
committer | panne <unknown> | 2003-02-24 21:26:29 +0000 |
commit | bc42cc876275c14a8858f11bf301d00f4dab8b45 (patch) | |
tree | fe0fad2d321e7a4a39e41b650b9fe77aeb8e08dd | |
parent | 871f65df490f46d66523b38df2cf6311ecaabe39 (diff) |
[haddock @ 2003-02-24 21:26:29 by panne]
Don't convert a "newtype" to a single-constructor "data" for
non-abstractly exported types, they are quite different regarding
strictness/pattern matching. Now a "data" without any constructors is
only emitted for an abstractly exported type, regardless if it is
actually a "newtype" or a "data".
-rw-r--r-- | src/HaddockUtil.hs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/HaddockUtil.hs b/src/HaddockUtil.hs index 878abeb7..61c40373 100644 --- a/src/HaddockUtil.hs +++ b/src/HaddockUtil.hs @@ -130,8 +130,10 @@ restrictTo :: [HsName] -> HsDecl -> HsDecl restrictTo names decl = case decl of HsDataDecl loc ctxt n xs cons drv doc -> HsDataDecl loc ctxt n xs (restrictCons names cons) drv doc - HsNewTypeDecl loc ctxt n xs con drv doc -> - HsDataDecl loc ctxt n xs (restrictCons names [con]) drv doc + decl@(HsNewTypeDecl loc ctxt n xs con drv doc) -> + case restrictCons names [con] of + [] -> HsDataDecl loc ctxt n xs [] drv doc + _ -> decl HsClassDecl loc ctxt n tys fds decls doc -> HsClassDecl loc ctxt n tys fds (restrictDecls names decls) doc _ -> decl |