traverse
type t