id:nobsunさんの簡単移調ツールを読んでみます (3)

昨日の続きです。簡単移調ツール - HaHaHa!(old) - haskellより引用。
37行目でreadで入力文字列をNote型に変換している仕組みは、以下の部分です。

    53	instance Read Note where
    54	  readsPrec _ ('C':'#':rs) = [(C',rs)]
    55	  readsPrec _ ('C':rs)     = [(C,rs)]
    56	  readsPrec _ ('D':rs)     = [(D,rs)]
    57	  readsPrec _ ('E':'b':rs) = [(Eb,rs)]
    58	  readsPrec _ ('E':rs)     = [(E,rs)]
    59	  readsPrec _ ('F':'#':rs) = [(F',rs)]
    60	  readsPrec _ ('F':rs)     = [(F,rs)]
    61	  readsPrec _ ('G':'#':rs) = [(G',rs)]
    62	  readsPrec _ ('G':rs)     = [(G,rs)]
    63	  readsPrec _ ('A':rs)     = [(A,rs)]
    64	  readsPrec _ ('B':'b':rs) = [(Bb,rs)]
    65	  readsPrec _ ('B':rs)     = [(B,rs)]

ここのパターンマッチで変換しています。仕様はここを参照かな? 難しそうなことが書いてあってあまり理解してません。
The Haskell 98 Report: Derived Instances