% from AutoTrack by Stefan Ratschan \subsection{Class of transposeable objects} \begin{haskelllisting} > module Haskore.Interface.AutoTrack.Transposeable(C, transpose) where > import qualified Haskore.Basic.Pitch as Pitch \end{haskelllisting} \subsection{Haskore Additions} Here we turn to some stuff that really belongs into the Haskore core. First transposition of pitch classes: \begin{haskelllisting} > class C a where > transpose :: Int -> a -> a > instance C Pitch.Class where > transpose i pc = snd (Pitch.fromInt (Pitch.classToInt pc + i)) \end{haskelllisting}