[Haskell-beginners] Haddock question

Patrick LeBoutillier patrick.leboutillier at gmail.com
Tue Apr 5 22:39:39 CEST 2011


Hi,

I have a module that contains (among other stuff) the following code:

module Music.Diatonic.Note (
    Note(
        C,D,E,F,G,A,B
      ), Nte,
        noteMap, ($#),
  ) where


-- | Use these constructors to create 'Note's. To alter them, use the
'flat' or 'sharp' functions.
data Note = C | D | E | F | G | A | B | Note Accidental Note
            deriving (Eq)

-- | Many musical objects have a note at their core (scales, chords,
...). The 'Nte' class allows these objects
--   to make use of all the note-manipulating functions.
class Nte a where
  -- | Applies a 'Note' manipulating function to an instance of the 'Nte' class.
  noteMap :: (Note -> Note) -> a -> a
  -- | Operator for 'noteMap'.
  ($#) :: (Note -> Note) -> a -> a
  ($#) = noteMap


When I run haddock on it it gives the following warnings that I don't
really understand:

Warning: Music.Diatonic.Note: noteMap is exported separately but will
be documented under Nte. Consider exporting it together with its
parent(s) for code clarity.
Warning: Music.Diatonic.Note: $# is exported separately but will be
documented under Nte. Consider exporting it together with its
parent(s) for code clarity.
Warning: Music.Diatonic.Note: notes is exported separately but will be
documented under Nts. Consider exporting it together with its
parent(s) for code clarity.

What exactly does this mean? I am exporting Type class stuff inapproriately?


Patrick




-- 
=====================
Patrick LeBoutillier
Rosemère, Québec, Canada



More information about the Beginners mailing list