2013-07-20 18 views
6

folgendes Beispiel:Haddock: Dokumentation zum Beispiel Funktionen von Standardklasse Dokumentation ersetzt Macken

instance (Monad m) => MonadState s (ChronoT s e m) where 

    -- | Returns the present-day state. 
    get = ChronoT $ do 
     (ChronoS _ s _) <- get 
     return s 

    -- | Set the present-day state directly, erasing the past and future for 
    -- safety. See also 'paradox'. 
    put x = ChronoT $ do 
     (ChronoS _ _ _) <- get 
     put $ mkChronoS x 

Wenn durch Schellfisch läuft die Funktionen get und put zeigen, aber sie die Standard-Dokumentation von MonadState verwenden . Wie füge ich meine eigene Dokumentation in mein Modul ein?

(können Sie sehen, was ich meine cabal haddock über den Repo-Lauf here) nicht

+6

Soweit ich weiß, können Sie nicht, Schelldock nicht dokumentieren Instanzen Deklarationen (außer durch Auflisten der Instanz als definiert). Sie könnten die Top-Level-Objekte "chronoGet" und "chronoPut" erstellen, sie dokumentieren (und exportieren) und die Instanz definieren ... ... wobei get = chronoGet; put = chronoPut'. Das ist natürlich nicht sehr befriedigend. –

Antwort

3

Sie können.

Sie können Ihre Instanz dokumentieren.

-- | You can have a brief description here 
instance (Monad m) => MonadState s (ChronoT s e m) where 
… 

Dies wird die Beschreibung auf der Seite der erzeugten instances Schachtel angezeigt. Dies sollte vorzugsweise kurz sein, aber es lässt Sie Dinge tun, wie den Benutzer auf die Dokumentation der Funktionen aufmerksam machen, die die Felder implementieren, wenn Sie wirklich brauchen, wie der Kommentator auf der Frage nahe legt.

Persönlich denke ich, dass es nicht viel Sinn macht, jedes Feld wie folgt zu dokumentieren: Was die Felder tun sollen, sollte aus der Dokumentation der Klassendefinition und dem Kommentar zur Instanz klar sein.

+0

wo ist die Instanzen-Box? (Ich benutze Schellfisch 2.14.3) –

+1

Hier bezog ich mich auf die Box, die unter der Datentypdefinition zeigt. Hier ist ein Beispiel für Maybe, das auch einen Kommentar darstellt, der sich auf der Instanz selbst befinden würde: http://fuuzetsu.co.uk/images/1412881296.png –