Success: free(X). free(_abc). free(_). Fail: free(X{a}). coroutine, X>0, free(X). var(atom). var('Abc').