In particular, I wanted to avoid having an IO in the return type because introducing the impurity(by that I mean the IO monad) for this simple task is logically unnecessary. All examples involing
a C string I have seen so far involve returning an IO something or Ptr which cannot be converted back to a pure String.