A logic/functional programming language with strong. static type, mode, and determinism checking. Mercury is designed for declarative programming and is side effect free. The languages most similar to it in my opinion are Prolog and Haskell.