;; RUN: wasm-fuzz-types -v --seed=0 | filecheck %s
;; CHECK: Running with seed 0
;; CHECK-NEXT: Built 20 types:
;; CHECK-NEXT: (rec
;; CHECK-NEXT: (type $0 (sub (struct (field i32))))
;; CHECK-NEXT: (type $1 (sub (func (param (ref $2)) (result externref))))
;; CHECK-NEXT: (type $2 (sub (struct )))
;; CHECK-NEXT: )
;; CHECK-NEXT: (rec
;; CHECK-NEXT: (type $3 (sub $0 (struct (field i32) (field (ref $5)) (field (ref $5)))))
;; CHECK-NEXT: (type $4 (sub $3 (struct (field i32) (field (ref $5)) (field (ref $5)) (field i8) (field (ref null $13)) (field (mut i64)))))
;; CHECK-NEXT: (type $5 (sub (array (mut f64))))
;; CHECK-NEXT: (type $6 (sub $1 (func (param anyref) (result externref))))
;; CHECK-NEXT: (type $7 (sub final $2 (struct (field (mut (ref null $14))) (field (ref $3)))))
;; CHECK-NEXT: (type $8 (sub $1 (func (param (ref struct)) (result (ref extern)))))
;; CHECK-NEXT: (type $9 (sub $5 (array (mut f64))))
;; CHECK-NEXT: (type $10 (sub final $8 (func (param (ref any)) (result (ref noextern)))))
;; CHECK-NEXT: (type $11 (sub (array (mut anyref))))
;; CHECK-NEXT: (type $12 (sub $2 (struct (field (mut f64)))))
;; CHECK-NEXT: (type $13 (sub final $1 (func (param (ref $2)) (result (ref extern)))))
;; CHECK-NEXT: (type $14 (array (mut (ref null $14))))
;; CHECK-NEXT: )
;; CHECK-NEXT: (rec
;; CHECK-NEXT: (type $15 (sub final $11 (array (mut anyref))))
;; CHECK-NEXT: (type $16 (sub final $12 (struct (field (mut f64)))))
;; CHECK-NEXT: (type $17 (sub (struct (field f32) (field (mut i32)) (field i8) (field (ref array)))))
;; CHECK-NEXT: (type $18 (sub $11 (array (mut anyref))))
;; CHECK-NEXT: (type $19 (sub final $9 (array (mut f64))))
;; CHECK-NEXT: )
;; CHECK-NEXT:
;; CHECK-NEXT: Inhabitable types:
;; CHECK-NEXT:
;; CHECK-NEXT: Built 20 types:
;; CHECK-NEXT: (rec
;; CHECK-NEXT: (type $0 (sub (struct (field i32))))
;; CHECK-NEXT: (type $1 (sub (func (param (ref $2)) (result externref))))
;; CHECK-NEXT: (type $2 (sub (struct )))
;; CHECK-NEXT: )
;; CHECK-NEXT: (rec
;; CHECK-NEXT: (type $3 (sub $0 (struct (field i32) (field (ref $5)) (field (ref $5)))))
;; CHECK-NEXT: (type $4 (sub $3 (struct (field i32) (field (ref $5)) (field (ref $5)) (field i8) (field (ref null $13)) (field (mut i64)))))
;; CHECK-NEXT: (type $5 (sub (array (mut f64))))
;; CHECK-NEXT: (type $6 (sub $1 (func (param anyref) (result externref))))
;; CHECK-NEXT: (type $7 (sub final $2 (struct (field (mut (ref null $14))) (field (ref $3)))))
;; CHECK-NEXT: (type $8 (sub $1 (func (param (ref struct)) (result (ref extern)))))
;; CHECK-NEXT: (type $9 (sub $5 (array (mut f64))))
;; CHECK-NEXT: (type $10 (sub final $8 (func (param (ref any)) (result (ref noextern)))))
;; CHECK-NEXT: (type $11 (sub (array (mut anyref))))
;; CHECK-NEXT: (type $12 (sub $2 (struct (field (mut f64)))))
;; CHECK-NEXT: (type $13 (sub final $1 (func (param (ref $2)) (result (ref extern)))))
;; CHECK-NEXT: (type $14 (array (mut (ref null $14))))
;; CHECK-NEXT: )
;; CHECK-NEXT: (rec
;; CHECK-NEXT: (type $15 (sub final $11 (array (mut anyref))))
;; CHECK-NEXT: (type $16 (sub final $12 (struct (field (mut f64)))))
;; CHECK-NEXT: (type $17 (sub (struct (field f32) (field (mut i32)) (field i8) (field (ref array)))))
;; CHECK-NEXT: (type $18 (sub $11 (array (mut anyref))))
;; CHECK-NEXT: (type $19 (sub final $9 (array (mut f64))))
)