This question is closely related to these ones (1, 2, 3)
I'm using an external library which doens't (yet) handle units of measure. I want to be able to 'ununit' values before I pass them in, then 'reunit' them when I get the results back.
The catch is that I'd like to avoid being forced to declare WHICH units in advance.
Example snippet
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
I haven't managed to work out how to handle this one...
Update If I have understood correctly, the final version of F# will include functions to do this.
 
     
     
    