From 8a59f49ae2204dbf58ef50ea8c0a50ee2c7aa64a Mon Sep 17 00:00:00 2001 From: Luke Lau Date: Fri, 22 May 2020 17:34:57 +0100 Subject: template-haskell: Add putDoc, getDoc, withDecDoc and friends This adds two new methods to the Quasi class, putDoc and getDoc. They allow Haddock documentation to be added to declarations, module headers, function arguments and class/type family instances, as well as looked up. It works by building up a map of names to attach pieces of documentation to, which are then added in the extractDocs function in GHC.HsToCore.Docs. However because these template haskell names need to be resolved to GHC names at the time they are added, putDoc cannot directly add documentation to declarations that are currently being spliced. To remedy this, withDecDoc/withDecsDoc wraps the operation with addModFinalizer, and provides a more ergonomic interface for doing so. Similarly, the funD_doc, dataD_doc etc. combinators provide a more ergonomic interface for documenting functions and their arguments simultaneously. This also changes ArgDocMap to use an IntMap rather than an Map Int, for efficiency. Part of the work towards #5467 --- utils/haddock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'utils/haddock') diff --git a/utils/haddock b/utils/haddock index d1bf3e5030..d930bd87cd 160000 --- a/utils/haddock +++ b/utils/haddock @@ -1 +1 @@ -Subproject commit d1bf3e5030ebf0f8f7443b394abb96da2f216eb9 +Subproject commit d930bd87cd43d840bf2877e4a51b2a48c2e18f74 -- cgit v1.2.1