Cleanup: split delimiters fn into opener and closer