Gravar-mail: Decidable Synthesis of Programs with Uninterpreted Functions