My guess is that you are using a too old version of SML/NJ with an old basis library. I am using v110.9.1, and in the version that came with that, OS.Path.mkAbsolute has type { path: string, relativeTo: string } -> string In some older documentation files, I see that it used to have type string * string -> string which (from the error message) is what you have. I guess it is time for you to upgrade your SML/NJ.