Skip to content

Improve documentation of module signatures

Out of curiosity, I read the bit in the user manual about the new module signatures, and I find the text a little confusing. Could those in the know clarify the points below in the manual? Thanks!

  • (typo) The first example refers to String.hs. I think you mean Text.hs.
  • Is there a way to use module signatures to deal with mutually recursive modules? The example with TextSig seems to require that both Text and TextSig are compiled before A.
  • Could you provide an example of specifying multiple signature/implementation pairs with --make?
  • The manual says that the dialect of Haskell used in signature files is "essentially" the same as with hs-boot files. Are there any differences?
  • The most recent paragraph addition doesn't make sense to me, starting with "Signatures can be installed like ordinary modules". What do you mean by "installed"? What does it mean to bring multiple signatures into scope by the same name? Can two signatures have the same name? Wouldn't their filenames also need to be the same?
  • Is there currently any facility available to have multiple implementations of one signature?

Of course, this is all work in progress, and I don't necessarily expect an immediate fix. But, when it's nearing completion, it may be worth revisiting this stretch of text. Thanks!

Trac metadata
Trac field Value
Version 7.11
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Documentation
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information