- >>
- -- 頻出するので高速化
- choice [ do string "1.0"
- return $ HttpVersion 1 0
- , do string "1.1"
- return $ HttpVersion 1 1
- -- 一般の場合
- , do major <- many1 digit
- char '.'
- minor <- many1 digit
- return $ HttpVersion (read major) (read minor)
+ ≫
+ choice [ string "1.1" ≫ return (HttpVersion 1 1)
+ , string "1.0" ≫ return (HttpVersion 1 0)
+ , do major ← decimal
+ _ ← char '.'
+ minor ← decimal
+ return $ HttpVersion major minor