% 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}