pNote :: CharParser () ABC
pNote = do
    n <- oneOf "ABCDEFG"
    m <- maybe [] ((: []) . sharpOrFlat) <$> optionMaybe (oneOf "#b")
    return $ read (n : m)
    where 
        sharpOrFlat '#' = 's'
        sharpOrFlat x = x
pNote :: CharParser () ABC
pNote = do
    n <- oneOf "ABCDEFG"
    m <- maybe [] ((: []) . sharpOrFlat) <$> optionMaybe (oneOf "#b")
    return $ read (n : m)
    where 
        sharpOrFlat '#' = 's'
        sharpOrFlat x = x
pNote = do
    n <- oneOf "ABCDEFG"
    m <- maybe [] ((: []) . sharpOrFlat) <$> optionMaybe (oneOf "#b")
    return $ read (n : m)
    where 
        sharpOrFlat '#' = 's'
        sharpOrFlat x = x