testInverse :: Note -> Semitone -> Bool
testInverse (Note p o)  x = transpose
    (transpose (Note p o) x) (-x) == (Note p o)
testInverse :: Note -> Semitone -> Bool
testInverse (Note p o)  x = transpose
    (transpose (Note p o) x) (-x) == (Note p o)
testInverse (Note p o)  x = transpose
    (transpose (Note p o) x) (-x) == (Note p o)