I plan to make a little obfuscatory logic language. It's going have some features prolog doesn't. Probable some of the features I want aren't possible to unify. But before I ask what features I should drop you should know what my language is. A comma means and. A semicolon means or. Things which would be zero-ary constructors take one argument as a predicate, (zero Z as opposed to Z=zero). A few examples.
print(Words),
"Hello"(First),
" World"(Second),
append(First,Second,Words)
zero : num ,
inc : (num,num) ,
true : (),
not false : (),
addTwo : (num,num),
addTwo = (&(A,B) inc A C,inc C B) -- An anonymous predicate bound to a name with =
The features I suspect might not be unifiable are the not predicate, the or (;) predicate and anonymous predicates. Which features that I want in my language can't be done with unification and why?