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: %How about a word that loads an integer into a stack that we can't retreave from or delete. If the integer gets loaded a second time, then it crashes. This would allow us to make parts of the code exclude each other.
  
  -module(language).
  -export([run/1, test/0, remove_till/2, assemble/1, hashlock/2, extract_sh/1, valid_secret/2, run_script/1]).
  int_arith(2, X, Y) -> X + Y;
  
negative.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; %( -- Many )
  atom2op(hash_section) -> 38; %( Number -- Hash )
  atom2op(to_r) -> 39; %( V -- )
  atom2op(from_r) -> 40; %( -- V )
  atom2op(section_size) -> 41; %( Number -- Other )
  atom2op(true) -> true; %( -- true )
  atom2op(false) -> false. %( -- false )
  
  hashlock(ToAmount, SecretHash) ->
      true = ((ToAmount == 0) or (ToAmount == 1)),
  