I mean, shouldn't there be a guard?

instance (Integral a, Read a) => ReadPrec (Ratio a) where
readPrec = parens . prec 7 $ do
n <- step readPrec
lift (expect (Symbol "%"))
d <- step readPrec
guard (0 /= d)
return (n % d)

2020년 5월 31일 (일) 오후 12:13, Dannyu NDos <ndospark320@gmail.com>님이 작성:
Shouldn't the parser be pfail rather than throwing an error?