A journey towards a proper string type