In principle you can create wrapper types in any PL, eg Path(Str) for filesystem functions. I only see it used w/ static types in practice.