You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The intent is to hide clash-protocols-base a bit more from the user. clash-protocols-base exposes that module, and clash-protocols merely reexports it. But this is not perfect.
The generated Haddock for clash-protocols does not actually include the Haddock for that module. It merely links to the Haddock for clash-protocols-base. So much for hiding.
Also, it confused me. I opened the contents for clash-protocols, clicked the Protocols.Plugin module, then clicked the Contents header of that page and suddenly I was in the contents for clash-protocols-base even though I could have sworn I was looking at the documentation for clash-protocols. (To continue the saga, I drew the incorrect conclusion I must have had opened the wrong tab in my browser, started looking for the proper tab which didn't exist, and so on...). All in all, I find this a weird UX.
The Haddock for the Protocols module only documents the instances for Protocol that are defined in clash-protocols. The instances defined in clash-protocols-base are not listed. On the flip side, Protocols.Plugin only lists the instances for Protocols defined in clash-protocols-base (but that is pretty obvious as it doesn't know about clash-protocols).
Points 1 and 2 combine to: if you open the Haddock for clash-protocols and go to Protocols.Plugin, it will tell you that you can get more tuple instances for Protocols if you define the flag -flarge-tuples. But you need to define that flag for the clash-protocols-base package as well as for the clash-protocols package if you want other classes to get the same (but see issue clash-protocols should not use Protocols.Plugin.Cpp #119).
The text was updated successfully, but these errors were encountered:
We use the following in
clash-protocols.cabal
:The intent is to hide
clash-protocols-base
a bit more from the user.clash-protocols-base
exposes that module, andclash-protocols
merely reexports it. But this is not perfect.The generated Haddock for
clash-protocols
does not actually include the Haddock for that module. It merely links to the Haddock forclash-protocols-base
. So much for hiding.Also, it confused me. I opened the contents for
clash-protocols
, clicked theProtocols.Plugin
module, then clicked the Contents header of that page and suddenly I was in the contents forclash-protocols-base
even though I could have sworn I was looking at the documentation forclash-protocols
. (To continue the saga, I drew the incorrect conclusion I must have had opened the wrong tab in my browser, started looking for the proper tab which didn't exist, and so on...). All in all, I find this a weird UX.The Haddock for the
Protocols
module only documents the instances forProtocol
that are defined inclash-protocols
. The instances defined inclash-protocols-base
are not listed. On the flip side,Protocols.Plugin
only lists the instances forProtocols
defined inclash-protocols-base
(but that is pretty obvious as it doesn't know aboutclash-protocols
).Points 1 and 2 combine to: if you open the Haddock for
clash-protocols
and go toProtocols.Plugin
, it will tell you that you can get more tuple instances forProtocols
if you define the flag-flarge-tuples
. But you need to define that flag for theclash-protocols-base
package as well as for theclash-protocols
package if you want other classes to get the same (but see issueclash-protocols
should not useProtocols.Plugin.Cpp
#119).The text was updated successfully, but these errors were encountered: