exception TypeError module VarMap = Mapext.Make(String) let rec fix f s = let fs = f s in if fs = s then fs else fix f fs