io.Writer arg: pass in os.Stdout io.Reader arg: pass in os.Stdin test: method docs during validation, reject circular type references