{ core, document, physical, ... }: let inherit(core) debug string type; inherit(physical) formatValue; report = { acronyms, ... }: { melting ? null, boiling ? null, sublimation ? null, decomposition ? null, density ? null, ... }: let formatValue' = value: type.matchPrimitiveOrPanic value { int = formatValue { value = 1.0 * value; precision = 1; }; float = formatValue { inherit value; precision = 1; }; set = formatValue { inherit value; }; }; formatTemperature = temperature: formatValue' temperature "celsius"; optional = value: text: if value != null then [ text ] else []; result = ( optional melting "${acronyms.meltingTemperature.short} ${formatTemperature melting}" ) ++ ( optional boiling "${acronyms.boilingTemperature.short} ${formatTemperature boiling}" ) ++ ( optional sublimation "${acronyms.sublimationTemperature.short} ${formatTemperature sublimation}" ) ++ ( optional decomposition "${acronyms.decompositionTemperature.short} ${formatTemperature decomposition}" ) ++ ( optional density "$\\rho$ ${formatValue' density [ "gram" "millilitre" (-1) ] }" ); in [ "${string.concatWith ", " result}." ]; in { report = resources: value: if value != null then report value else [ ]; }