When wondering about Prolog and types one should mention Mercury -- Prolog's typed cousin.

http://mercurylang.org/

Paper already mentions -- Haskell with logic extensions:

http://www-ps.informatik.uni-kiel.de/currywiki/

The problem with Prolog is the need to rewire your brain to think in Prolog. I remember struggling for many hours to solve a problem and hitting a wall. But then when it is solved in Prolog it would be something like 10 lines of code.

It kind of reminds of understanding and writing math formulas. It would take days to decipher a one-line formula.

The problem with programming in Prolog after learning how to think in Prolog is the need to remaster control of the search space via cut.

This. I'm no Prolog expert, but every time I come back to it I remember how elegant canonical problems are to solve with it. I absolutely love the declarative style. More languages need to have logic extensions a la core.logic for Clojure, various Kanrens for Scheme. I would love to see computer scientists make advancements in logic programming.

Just a nitpick, but core.logic is a version of Kanren[0].

[0] https://github.com/clojure/core.logic