Common (Polyglot)¶
In [1]:
#!import ../../lib/fsharp/Notebooks.livemd
In [2]:
#!import ../../lib/fsharp/Testing.livemd
In [3]:
#if !INTERACTIVE
open Lib
#endif
In [4]:
let nl = System.Environment.NewLine
let q = @""""
In [5]:
let inline cons head tail = head :: tail
memoize¶
In [6]:
let inline memoize fn =
let result = lazy fn ()
fun () -> result.Value
TraceLevel¶
In [7]:
type TraceLevel =
| Verbose
| Debug
| Info
| Warning
| Critical
let inline _locals () = ""
to_trace_level¶
In [8]:
let to_trace_level = function
| Verbose -> SpiralTrace.TraceLevel.US0_0
| Debug -> SpiralTrace.TraceLevel.US0_1
| Info -> SpiralTrace.TraceLevel.US0_2
| Warning -> SpiralTrace.TraceLevel.US0_3
| Critical -> SpiralTrace.TraceLevel.US0_4
from_trace_level¶
In [9]:
let from_trace_level = function
| SpiralTrace.TraceLevel.US0_0 -> Verbose
| SpiralTrace.TraceLevel.US0_1 -> Debug
| SpiralTrace.TraceLevel.US0_2 -> Info
| SpiralTrace.TraceLevel.US0_3 -> Warning
| SpiralTrace.TraceLevel.US0_4 -> Critical
trace¶
In [10]:
let trace level fn locals =
let level = level |> to_trace_level
SpiralTrace.trace level fn locals
In [11]:
///- --test
trace Debug (fun () -> "test") _locals
11:54:03 d #1 test