Determinacy analysis for full Prolog