match ... as ... of