En essayant de comprendre l'utilisation de la fonction withClockResetEnable
dans Clash.Prelude, j'ai trouvé la signature de cette fonction comme ceci :
withClockResetEnable
:: forall dom r. KnownDomain dom
=> Clock dom
-> Reset dom
-> Enable dom
-> (HiddenClockResetEnable dom => r)
-> r
La chose qui me cause vraiment de la confusion est cette partie
-> (HiddenClockResetEnable dom => r)
qui a un commentaire ci-dessous : La fonction avec un argument Clock, Reset et Enable cachés
Ma confusion est, mes connaissances limitées me disent, puisqu'il y a un =>
, cette ligne indique peut-être une contrainte de type, comme le type polymorphe r
devrait avoir une instance de HiddenClockResetEnable dom
, ce qui n'a toujours pas de sens pour moi, et je ne peux pas relier cette ligne au commentaire du tout.