'self -> 'a