anchor.diff:  	when 
   		Identity :: string() | binary(),
   		Password :: string() | binary(),
  -		Product :: string() | #product_instance{},
  +		Product :: string(),
   		Buckets :: [#bucket{}],
   		Result :: {ok, #subscriber{}} | {error, Reason},
   		Reason :: term().
  
positive.code: 	when
  		Identity :: string() | binary(),
  		Password :: string() | binary(),
  		Product :: string() | #product_instance{},
  		Result :: {ok, #subscriber{}} | {error, Reason},
  		Reason :: term().
  %% @equiv add_subscriber(Identity, Password, Product, [], [], true, false)
  
negative.code: 	add_subscriber(Identity, Password, Product, Buckets, [], EnabledStatus, MultiSession);
  add_subscriber(Identity, Password, Product, undefined, Product, EnabledStatus, MultiSession) ->
  	add_subscriber(Identity, Password, Product, [], Product, EnabledStatus, MultiSession);
  add_subscriber(Identity, undefined, Product, Buckets, Attributes, EnabledStatus, MultiSession) ->
  	add_subscriber(Identity, ocs:generate_password(),
  			Product, Buckets, Attributes, EnabledStatus, MultiSession);
  