Based on my tests, it appears dust is sorting based on ascii-table values. This also appears to extend to unicode codepoints based on a symbols test. Greater than follows the same pattern for not rendering when key is omitted or null. Longer arrays are greater than shorter arrays if all preceding values match. Theory for comparing arrays: Compare the values, if theres any mismatched types then take the same action you would for non-matching scalar types. greater than ------------ All comparisons between non-matching types (for example, int vs string) appear to render the else block. Comparisons between non-scalar types (like arrays) appears to render the else block greater than or equals to ------------------------- All comparisons between non-matching types (for example, int vs string) appear to render the main block. Comparisons between non-scalar types (like arrays) appears to render the main block less than --------- All comparisons between non-matching types (for example, int vs string) appear to render the else block. Comparisons between non-scalar types (like arrays) appears to render the else block less than or equal to --------------------- All comparisons between non-matching types (for example, int vs string) appear to render the main block. Comparisons between non-scalar types (like arrays) appears to render the main block