﻿:: { T:{s:s, i4:i4, u2:u2, d:d, G:G, seq:s*}*, si4:i4*, ss:s*, tups:(i8,s,b)* }

Sort(       ss)
Sort([~]     ss)
Sort([<]     ss)
Sort([up]    ss)
Sort([>]     ss)
Sort([down]  ss)
Sort([~<]    ss)
Sort([~up]   ss)
Sort([~>]    ss)
Sort([~down] ss)

Sort(     si4)
Sort([~]  si4)
Sort([<]  si4)
Sort([>]  si4)
Sort([~<] si4)
Sort([~>] si4)

Sort(ss,      it)
Sort(ss, [~]  it)
Sort(ss, [<]  it)
Sort(ss, [>]  it)
Sort(ss, [~<] it)
Sort(ss, [~>] it)

Sort(si4,      it)
Sort(si4, [~]  it)
Sort(si4, [<]  it)
Sort(si4, [>]  it)
Sort(si4, [~<] it)
Sort(si4, [~>] it)

Sort(T, [~] s, i4, u2,      d)
Sort(T, [~] s, i4, u2, [~]  d)
Sort(T, [~] s, i4, u2, [<]  d)
Sort(T, [~] s, i4, u2, [>]  d)
Sort(T, [~] s, i4, u2, [~<] d)
Sort(T, [~] s, i4, u2, [~>] d)

Sort(T, s,     i4 + #, d,      u2)
Sort(T, s, [<]      #, d,      u2)
Sort(T, s,     i4 + #, d, [>]  u2 + #)
Sort(T, s, [~] i4 + #, d, [~>]      #)

Sort(T, G)
Sort(T, s, i4, u2, d, G)

// REVIEW: Deprecate these? No direct function replacement.
SortUp(ss)
SortDown(ss)

// Errors.
Sort()
Sort(T)
Sort([key] ss)
Sort([>] ss, [>] it)
Sort(ss, [key] it)
Sort(T, seq)
Sort(T, s, i4, u2, d, seq)
Sort(tups)
