witx 0.9.1

Parse and validate witx file format
Documentation
;; B uses A, and C uses A.
(witx $multi
  (load "multimodule/type_b.witx" "multimodule/type_c.witx")
)

(witx $reference
  (typename $a u32)
  (typename $b (record (field $member_a $a)))
  (typename $c (record (field $first_a $a) (field $second_a $a)))
)

(assert_representable eq $reference "a" $multi "a")
(assert_representable eq $reference "b" $multi "b")
(assert_representable eq $reference "c" $multi "c")

(assert_invalid
  (witx
    (load
          "multimodule/type_a.witx"
          "multimodule/redefine_a.witx")
  )
  "Redefinition of name `a`")