docs: @Override
    public Pair getCanonicalForm(Pair value) throws UcumException  {
  		assert value != null : paramError("getCanonicalForm", "value", "must not be null");
  		assert checkStringParam(value.getCode()) : paramError("getCanonicalForm", "value.code", "must not be null or empty");
  		
  		Term term = new ExpressionParser(model).parse(value.getCode());
  		Canonical c = new Converter(model, handlers).convert(term);
  		if (value.getValue() == null)
  			return new Pair(null, new ExpressionComposer().compose(c, false));
  		else
  			return new Pair(value.getValue().multiply(c.getValue()), new ExpressionComposer().compose(c, false));
  	}