MEMOIZED PULL-TABBING FOR FUNCTIONAL LOGIC PROGRAMMING