(witx
(module $a (typename $a bool)))
(witx
(module $b (typename $a (variant (case $false) (case $true)))))
(assert_eq $a "a" $b "a")
(witx
(module $a (typename $a (expected (error)))))
(witx
(module $b (typename $a (variant (case $ok) (case $err)))))
(assert_eq $a "a" $b "a")
(witx
(module $a (typename $a (expected (error u32)))))
(witx
(module $b (typename $a (variant (case $ok) (case $err u32)))))
(assert_eq $a "a" $b "a")
(witx
(module $a (typename $a (expected u32 (error)))))
(witx
(module $b (typename $a (variant (case $ok u32) (case $err)))))
(assert_eq $a "a" $b "a")
(witx
(module $a (typename $a (expected u32 (error u64)))))
(witx
(module $b (typename $a (variant (case $ok u32) (case $err u64)))))
(assert_eq $a "a" $b "a")
(witx
(module $a (typename $a (flags $a $b))))
(witx
(module $b (typename $a (record (field $a bool) (field $b bool)))))
(assert_eq $a "a" $b "a")
(witx
(module $a (typename $a (enum $a $b))))
(witx
(module $b (typename $a (variant (case $a) (case $b)))))
(assert_eq $a "a" $b "a")
(witx
(module $a (typename $a string)))
(witx
(module $b (typename $a (list char))))
(assert_eq $a "a" $b "a")
(witx
(module $a (typename $a (tuple u32 u64))))
(witx
(module $b (typename $a (record (field $0 u32) (field $1 u64)))))
(assert_eq $a "a" $b "a")
(witx
(module $a (typename $a (union u32 u64))))
(witx
(module $b (typename $a (variant (case $0 u32) (case $1 u64)))))
(assert_eq $a "a" $b "a")
(witx
(module $a (typename $a (option u32))))
(witx
(module $b (typename $a (variant (case $none) (case $some u32)))))
(assert_eq $a "a" $b "a")