add new ^^? parser combinator
fix return type of new ^^? combinator