anchor.diff:  bcurlt_absorb(High, Low) ->
   	bcurlt_absorb(High, Low, ?CURL_INITIAL_STATE, ?CURL_INITIAL_STATE).
   
  -bcurlt_absorb(High, Low, HighState, LowState) ->
  -	% TODO: Implement
  +bcurlt_absorb(<<HighTrytes:?TRYTE_HASHLENGTH/binary, Bin/binary>>,
  +		<<LowTrytes:?TRYTE_HASHLENGTH/binary, Bin0/binary>>, HighState, LowState) ->
  +	HighState0 = next_curl_state(HighTrytes, HighState),
  +	LowState0 = next_curl_state(LowTrytes, LowState),
  +	{HighState1, LowState1} = bcurlt_transform(HighState0, LowState0),
  +	bcurlt_absorb(Bin, Bin0, HighState1, LowState1);
  +bcurlt_absorb(<<>>, <<>>, HighState, LowState) ->
   	{HighState, LowState}.
   
   
   bcurlt_squeeze(HighState, LowState, Count) ->
  -	bcurlt_squeeze(HighState, LowState, Count, <<>>).
  +	bcurlt_squeeze(HighState, LowState, Count, <<>>, <<>>).
   
  -bcurlt_squeeze(High, Low, Count, Acc) when Count > 0 ->
  -	% TODO: Implement
  -	bcurlt_squeeze(High, Low, Count - 1, Acc);
  -bcurlt_squeeze(_, _, 0, Acc) ->
  -	Acc.
  +bcurlt_squeeze(High, Low, Count, HAcc, LAcc) when Count > 0 ->
  +	HighTrytes = get_curl_hash(High),
  +	HAcc0 = <<HAcc/binary, HighTrytes/binary>>,
  +	LowTrytes = get_curl_hash(Low),
  +	LAcc0 = <<LAcc/binary, LowTrytes/binary>>,
  +	{High0, Low0} = bcurlt_transform(High, Low),
  +	bcurlt_squeeze(High0, Low0, Count - 1, HAcc0, LAcc0);
  +bcurlt_squeeze(_, _, 0, HAcc, LAcc) ->
  +	{HAcc, LAcc}.
   
  +
  +bcurlt_transform(HighState, LowState) ->
  +	bcurlt_transform(HighState, LowState, 1, 1, []).
   
   bcurlt_transform(HighState, LowState, Index, Count, Acc) when Count =< ?STATE_LENGTH ->
   	% TODO: Implement
  
positive.code: 	X - 365.
  
  
  bcurlt(HighTrytes, LowTrytes) ->
  	bcurlt(HighTrytes, LowTrytes, 1).
  
  
negative.code: 	curl_squeeze(State, Count, <<>>).
  
  curl_squeeze(State, Count, Acc) when Count > 0 ->
  	Trytes = get_curl_hash(State),
  	State0 = curl_transform(State),
  	curl_squeeze(State0, Count - 1, <<Acc/binary, Trytes/binary>>);
  curl_squeeze(_, 0, Acc) ->
  