TensorBoard Summary generation. Provides type safe wrappers around raw
 string emitting CoreOps.</p><p>Example use:</p><pre>-- Call summary functions while constructing the graph.
createModel = do
  loss &lt;- -- ...
  TF.scalarSummary loss

-- Write summaries to an EventWriter.
train = TF.withEventWriter &quot;/path/to/logs&quot; $ \eventWriter -&gt; do
    summaryTensor &lt;- TF.build TF.allSummaries
    forM_ [1..] $ \step -&gt; do
        if (step % 100 == 0)
            then do
                ((), sum