(
  (defun simplify_merkle_proof_after_leaf (leaf_hash (bitpath . hashes_path))
    (if hashes_path
        (simplify_merkle_proof_after_leaf
          (if (logand 1 bitpath)
              (sha256 0x02 (f hashes_path) leaf_hash)
              (sha256 0x02 leaf_hash (f hashes_path))
          )
          (c (lsh bitpath -1) (r hashes_path))
        )
        leaf_hash
    )
  )

  (defun-inline simplify_merkle_proof (leaf proof)
    (simplify_merkle_proof_after_leaf (sha256 0x01 leaf) proof)
  )
)
