>a library/package allocates an object on the heap and passes it back to a caller
Limited controlled types handle this case.
Limited types prevent assignment (i.e. aliasing). Controlled types introduce destructors so everything is closed even when an exception is thrown.