sig val last : 'a list -> 'val rassoc : '-> ('b * 'a) list -> 'end