bei jeder Benutzung jeder Klausel müssen deren Variablen umbenannt werden (= durch „frische`` Namen ersetzt).
Globalen Zähler hinzufügen = Zustands-Monaden-Transformator anwenden.
single :: [Clause] -> Atom -> [Substitution] single cs a = do c <- cs import Control.Monad.State single :: [Clause] -> Atom -> StateT Int [] Substitution single cs a = do c <- lift cs