\starttext 
\setuppagenumbering[location=]
\setupwhitespace[medium]

\def\Head{%
    \NC \tex{unit} argument \NC desired \NC \tex{unit} output \NC\NR \HL}
\def\Unit#1#2{%
    \NC \type{#1} \NC #2 \NC \unit{#1} \NC\NR}

In beta 2011.11.29 Hans has kindly fixed most of the bugs identified in
\tex{unit}, and we have all the main SI units and symbols supported.
Still a few problems:

Temperature symbols should be \quote{℃} and \quote{℉} (Unicode 2103 and 2109);
note the latter for Fahrenheit does not print in text.

If you look closely \unit{celsius} and \unit{fahrenheit} have different degree
symbols. The Fahrenheit one is larger and looks better to my eye, but
whichever is chosen, they should be consistent.

More seriously, only one unit seems to be formatted following a \type{per}:

\starttabulate[|lw(0.5\textwidth)|lw(0.2\textwidth)|lw(0.25\textwidth)|]
\Head
\Unit{0 celsius}			{0 °C}
\Unit{32 fahrenheit}			{32 °F}
\Unit{0.123 ohm per celsius}		{0.123 \textohm/°C}
\Unit{5 watt per meter celsius}		{5 W/m\cdot °C}
\Unit{5 watt per meter degree celsius}	{5 W/m\cdot °C}
\Unit{5 watt per meter kelvin}		{5 W/m\cdot K}
\Unit{5 watt per meter per kelvin}	{5 W/m\cdot K}
\Unit{760 mmHg}				{760 mmHg}
\stoptabulate

The second last case \type{watt per metre per kelvin} is a valid way of
expressing a unit. Typographically, the subsequent \type{per}s should be
ignored.

I'm not sure what to do about \quote{millimetres of mercury}. I kind of
expected it would cause parsing problems, but it is an allowed SI unit 
with the symbol as shown. Perhaps at least \type{mmHg} would work as one of
the \quote{packaged units}?

Finally, two possible enhancements: multiple quantities in a single argument
to \tex{unit}, which is appropriate in cases where the quantities form part
of a single measurement, such as in navigation:

\starttabulate[|lw(0.5\textwidth)|lw(0.2\textwidth)|lw(0.25\textwidth)|]
\Head
\Unit{37 degree}				{37°}
\Unit{37 degree 48 arcminute}			{37° 48$^′$}
\Unit{37 degree 48 arcminute 49 arcsecond}	{37° 48$^′$ 49$^{′′}$}
\stoptabulate

And a means of qualifying units with a subscript. This is sometimes necessary,
particularly for relative units. The qualification is usually a couple of
letters or digits, and usually an entire unit is so qualified, not individual
units within a unit. The syntax below is just a suggestion:

\starttabulate[|lw(0.5\textwidth)|lw(0.2\textwidth)|lw(0.25\textwidth)|]
\Head
\Unit{112 decibel (A)}				{112 dB\low{A}}
\stoptabulate

\blank
\Context\ \contextmark\ \contextversion
\stoptext
