t :: {IO.StreamError, term, term, String.t}
options :: [__exception__: term, reason: term, message: String.t] | [{String.t, term}]