Type systems of functional languages are generally capable of representing more. You can have the type system validate application state at compile time for you, for example.
If it compiled before and worked and your refactored version also compiles, chances are you didn't break anything.