Nim already supports chaining functions using the dot syntax (UFCS), and this module seems to work exactly the same way. What's the purpose?