anchor.diff:  let createBytes len (value:int) : bytes =
       try abytes (Array.create len (byte value))
       with :? System.OverflowException -> failwith "Default integer for createBytes was greater than max_value"
  +
  +let (@|) (a:bytes) (b:bytes) = abytes(Array.append (cbytes a) (cbytes b))
  +let split (b:bytes) i : bytes * bytes = 
  +  abytes (Array.sub (cbytes b) 0 i),
  +  abytes (Array.sub (cbytes b) i ((length b) - i))
  +
  +#endif
  +
  +type lbytes = bytes
   
   let bytes_of_int nb i =
     let rec put_bytes bb lb n =
  
positive.code: 
  type nat = int
  type cbytes = byte[]
  type bytes = {b:byte[]}
  let length (d:bytes) = (d.b).Length
  type lbytes = bytes
  
  let empty_bytes = {b = [||]}
  let abytes (b:byte[]) = {b=b}
  let abyte (b:byte) = {b=[|b|]}
  let abyte2 (b1,b2) = {b=[|b1;b2|]}
  let cbytes (b:bytes) = b.b
  
negative.code:     abytes res
  
  
  
  let split2 (b:bytes) i j : bytes * bytes * bytes =
    let b1,b2 = split b i in
    let b2a,b2b = split b2 j in
    (b1,b2a,b2b)
   
  let utf8 (x:string) : bytes = abytes (System.Text.Encoding.UTF8.GetBytes x)
  let iutf8 (x:bytes) : string = System.Text.Encoding.UTF8.GetString (cbytes x)
  