calling compile/1 from a user defined predicate