anchor.diff:      Sig = sign:sign(Data, Priv),
       true = sign:verify_sig(Data, Sig, Pub),
       true = run(assemble([Sig] ++ [Data, Pub, verify_sig])) == [true],%3rd party signature
  -    B = <<169,243,219,139,234,91,46,239,146,55,229,72,9,221,164,63,12,33,143,128,208,211,40,163,63,91,76,255,255,51,72,230>>,%hash of 1.
  +    B = hash:doit(1),
       true = run(assemble([1] ++ [hash, B, eq])) == [true],%normal hashlock
       true = run(assemble([seperate, {f, 10, 11}, seperate, seperate, 5, plus])) == [{f, 65, 11}],
       true = run(assemble([seperate, {f, 10, 11}, seperate, seperate, 5, plus, drop, many_sections])) == [4],
  
positive.code: atom2op(eq) -> 35; %( X Y -- true/false )
  %atom2op(scripthash) -> 36; %( size start -- <<Bytes:256>> )
  %this opcode looks at a section of code that was already processed, and computes the hash of those words. paytoscripthash
  atom2op(seperate) -> 36;
  atom2op(many_sections) -> 37;
  atom2op(hash_section) -> 38;
  atom2op(to_r) -> 39;
  atom2op(from_r) -> 40;
  atom2op(section_size) -> 41;
  atom2op(true) -> true;
  atom2op(false) -> false.
  
  hashlock(ToAmount, SecretHash) ->
      true = ((ToAmount == 0) or (ToAmount == 1)),
  
negative.code: run([18|Code], UsedCode, Alt, Stack) -> %else
      {H, T} = remove_till(19, Code),
      run(T, [18|(H++UsedCode)], Alt, Stack);
  run([37|Code], UsedCode, Alt, Stack) -> %counts up how many sections of code we have. Each section is seperated by "seperate" 36.
      Sections = 1 + count(36, Code ++ UsedCode),
      run(Code, [37|UsedCode], Alt, [Sections|Stack]);
  