gen_server compatible typing