- (satTok SquareOpenToken *> parseType <* satTok SquareCloseToken
- >>= \t.pure $ ListType t) <|>
- (satTok BraceOpenToken *> parseType <* satTok CommaToken
- >>= \t1->parseType <* satTok BraceCloseToken
- >>= \t2->pure $ TupleType t1 t2) <|>
- (parseIdent >>= \e.pure $ IdType e) <|>
- empty
+ (liftM ListType (parseBSqBraces parseType)) <|>
+ (liftM2 TupleType
+ (satTok BraceOpenToken *> parseType <* satTok CommaToken)
+ (parseType <* satTok BraceCloseToken)) <|>
+ (liftM IdType parseIdent)