anchor.diff:  .Example repeatedly write data into buffer using the same spec.
   [source, clojure]
   ----
  -(def spec (buf/spec (buf/int16) (buf/int16)))
  +(def spec (buf/spec buf/int16 buf/int16))
   
   (reduce (fn [offset data]
             (let [written (buf/write! buffer data spec {:offset offset})]
  
positive.code: are easy understand, the size of the spec can be know in any time. But in some circumstances
  we want store arbitrary length types.
  
  Arbitrary lenght strings is a clear example, and _bytebuf_ comes with that type spec implemented:
  
  .Example writing arbitrary length string into buffer
  [source, clojure]
  ----
  (buf/write! buffer "hello world" (buf/string*))
  ;; => 15
  ----
  
  
negative.code: (require '[bytebuff.core :as buf])
  
  ;; Indexed composition
  (def my-spec1 (buf/spec buf/int32 buf/bool))
  
  ;; The same spec but using associative composition
  (def my-spec2 (buf/spec :field1 buf/int32
                          :field2 buf/bool))
  ----
  
  You can check that the spec size (in bytes) and number of types internally is the same
  