Этот вопрос тесно связан с этими (1, 2, 3)
Я использую внешнюю библиотеку, которая еще не обрабатывает единицы измерения. Я хочу иметь возможность "деактивировать" значения, прежде чем передавать их, а затем "воссоединить" их, когда я верну результаты.
Уловка заключается в том, что я бы хотел, чтобы вы не были вынуждены заранее объявлять единицы WHICH.
Пример фрагмента
let ExternalNonUnitAwareFunction s = s + 1.
let MyUnitAwareClient (s:float<'u>) = //'
//1. this option "flattens" to no unit, or fixes to first inferred unit
//let (unit:float<'u>) = 1.0<_>
//2. this works fine, except for 0!
let unit = s / (float s)
s |> float |> ExternalNonUnitAwareFunction |> (*) unit
Мне не удалось разобраться, как справиться с этим...
Обновление Если я правильно понял окончательная версия F # будет включать в себя функции для этого.