<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def uninstall(self, name, forced_removal, display_info):
 """Uninstalls an extension pack, removing all related files. in name of type str The name of the extension pack to uninstall. in forced_removal of type bool Forced removal of the extension pack. This means that the uninstall hook will not be called. in display_info of type str Platform specific display information. Reserved for future hacks. return progess of type :class:`IProgress` Progress object for the operation. """

        if not isinstance(name, basestring):
            raise TypeError("name can only be an instance of type basestring")
        if not isinstance(forced_removal, bool):
            raise TypeError("forced_removal can only be an instance of type bool")
        if not isinstance(display_info, basestring):
            raise TypeError("display_info can only be an instance of type basestring")
        progess = self._call("uninstall",
                     in_p=[name, forced_removal, display_info])
        progess = IProgress(progess)
        return progess