anchor.diff:  	{ ok, Room }.	
   
   
  +broadcast(Socket, #user{ ipaddr = IPAddr, port = Port }, Message ) ->
  +	gen_udp:send(Socket,IPAddr,Port,Message).
  +
  +relay(Socket, #peer{ ipaddr = IPAddr, port = Port }, Message ) ->
  +	gen_udp:send(Socket,IPAddr,Port,Message).
  +
  +member(IPAddr,Port,Users) ->
  +	[] /= lists:filtermap( fun(#user{ ipaddr = I, port = P }) -> 
  +		(I =:= IPAddr) and (P =:= Port) end, Users).
  +	
  +except(IPAddr,Port,Users) ->
  +	lists:filtermap( fun(#user{ ipaddr = I, port = P }) ->
  +		(I /= IPAddr) or (P /= Port) end, Users ).
  
positive.code: broadcast(Room,Message) ->
  	gen_server:call(Room, { broadcast, Message }).
  
  list(Room) ->
  	gen_server:call(Room, list).
  
  close(Room) ->
  	gen_server:call(Room, close).
  
negative.code: ban(Room,Id) ->
  	gen_server:call(Room, { ban, Id } ).
  
  unban(Room,Id) ->
  	gen_server:call(Room, { unban, Id } ).
  
  peer(Room,Peer) ->
  	gen_server:call(Room, { peer, Peer }).
  
  message(Room,Id,Message) ->
  	gen_server:call(Room, { message, Id, Message }).
  