sig val take : 'a list -> 'end