anchor.diff:  	%BelongsNames = [{B, belongs_to} || B <- BossRec:belongs_to_names()],
   	HasTypes = extract_has_types(RecType),
   	Excluded = case erlang:function_exported(RecType, json_dec_exclude, 1) of
  -		true -> BossRec:json_exlude();
  +		true -> BossRec:json_dec_exlude();
   		_ -> []
   	end,
   	AllNames = lists:append([Attrs, HasTypes]),
  
positive.code: 	end,
  	Attr2 = proplists:substitute_aliases(Lexxed, Attr1),
  
  	BelongsToAttrs = assign_belongs(BossRec),
  	Attr3 = lists:append(Attr2, BelongsToAttrs),
  	Hases = assign_hases(BossRec),
  	lists:append(Attr3, Hases).
  
  assign_hases(BossRec) ->
  	Mod = boss_db:type(BossRec:id()),
  	ModAttr = Mod:module_info(attributes),
  	HasAttrs = lists:flatten(proplists:get_all_values(has, ModAttr)),
  	[{element(1, H), assign_hases(BossRec, element(1,H))} || H <- HasAttrs].
  
  assign_hases(BossRec, HasName) ->
  	Recs = BossRec:HasName(),
  	[to_json(Rec) || Rec <- Recs].
  
  assign_belongs(BossRec) ->
  	Names = BossRec:belongs_to_names(),
  	assign_belongs(Names, BossRec).
  
  assign_belongs(Names, BossRec) ->
  	assign_belongs(Names, BossRec, []).
  
  assign_belongs([], _BossRec, Acc) ->
  	lists:reverse(Acc);
  
  assign_belongs([Name | Tail], BossRec, Acc) ->
  	case BossRec:Name() of
  		{error, Err} ->
  			?info("not encoding ~s due to ~p", [Name, Err]),
  			assign_belongs(Tail, BossRec, Acc);
  		Rec ->
  			Json = to_json(Rec),
  			assign_belongs(Tail, BossRec, [{Name, Json} | Acc])
  	end.
  
  correct_types(Attrs, Types) ->
  
negative.code: 		{_, boolean} when Val; not Val ->
  			correct_types(Tail, Types, [H | Acc]);
  		{_, DahType} ->
  			?info("Skipping ~p: ~p as type ~p didn't sync up", [Key, Val, DahType]),
  			correct_types(Tail, Types, Acc)
  	end.
  
  