Writing system code in a high-level language such as Haskell should be much more productive than writing it in a low-level language like C.
High-level code is often more concise and most of the boilerplate code (e.g., error management, logging, memory management) can be abstracted away. Fully working code examples stay shorts and understandable. Writing system code is much more fun as we can quickly get enjoyable results (less irrelevant details to manage).
Many errors are caught during the compilation (type checking) which is especially useful with system programming because programs are harder to debug using standard methods (printf) and tools (gdb).
Code is easier to refactor thanks to type-checking, hence more maintenable.