Dv
Size: a a a
Dv
Dv
Dv
#if
?NM
#if
?Dv
Dv
Printf.StringFormat
уже это сделал или ещё нет?NM
Printf.StringFormat
уже это сделал или ещё нет?Dv
Dv
let myLog (x : '_a when '_a :> Printf.StringFormat<'_b,unit>) =
#if ! DEBUG
Printf.kprintf (printfn "%s") x
#else
Unchecked.defaultof<_>
#endif
Dv
Unchecked.defaultof
, потому что эта штука в обычной ситуации возвращает функциюDv
Dv
Dv
let inline negate<'a>(): 'a =
printfn "%A" <| typeof<'a>
if typedefof<'a> = typedefof<FSharpFunc<_, _>> then
// TODO: Generate a function of right type (see typeof<'a>.GetGenericTypeArguments()) that will ignore everything and return negate<> as its result
else // terminal case, unit
Unchecked.defaultof<_>
let debugLog format =
if debug then
Printf.kprintf (
printfn "%A: %s" DateTime.Now
) format
else negate()
Dv
NM
let inline negate<'a>(): 'a =
printfn "%A" <| typeof<'a>
if typedefof<'a> = typedefof<FSharpFunc<_, _>> then
// TODO: Generate a function of right type (see typeof<'a>.GetGenericTypeArguments()) that will ignore everything and return negate<> as its result
else // terminal case, unit
Unchecked.defaultof<_>
let debugLog format =
if debug then
Printf.kprintf (
printfn "%A: %s" DateTime.Now
) format
else negate()
Dv
NM
Dv