Split writer type out.

No tests.

Also I've *hilariously* imported regex and macros for them. I'm sure I'll find a use for them.