Constructors and normalization for Rust type AST nodes.
type/1 accepts existing type nodes, Rust paths, and structural tuples such
as {:option, type}, {:result, ok, error}, {:vec, type}, references,
slices, arrays, and explicit {:raw, source} escapes. Prefer the named
constructors when they make generator intent clearer.