Genserver calling other genserver

Have a look at map_reduce.ex - the function run by spawn_monitor/1 (look inside map_spawn/2) returns its result with GenServer.cast/2.