Functions
   - We can also have functions like tall(x).
 
   - If x is a constant, this returns true or false.
 
   - If it's a variable, it returns a set (perhaps empty) of all the
       constants that are true for this function.
 
   - Note that returning here really depends on the implementation.  In
       many prologs, the set is returned to the interpretter.
 
   - This gives us a lot of power, because now we've moved to a
     potentially infinite number of statements.