---
source: hydroflow_datalog_core/src/lib.rs
expression: flat_graph_ref.surface_syntax_string()
---
2v1 = unique :: < 'tick > ();
3v1 = difference :: < 'tick , 'static > ();
4v1 = tee ();
5v1 = next_tick ();
7v1 = unique :: < 'tick > ();
10v1 = unique :: < 'tick > ();
12v1 = source_stream (ints2);
13v1 = for_each (| v | result . send (v) . unwrap ());
14v1 = map (| row : (_ ,) | ((row . 0 ,) , ()));
15v1 = map (| (g , a) : ((_ ,) , _) | (g . 0 ,));
16v1 = map (| row : (_ ,) | (() , ((row . 0) ,)));
17v1 = group_by :: < 'static , () , (Option < _ > ,) > (| | (None ,) , | old : & mut (Option < _ > ,) , val : (_ ,) | { old . 0 = if let Some (prev) = old . 0 . take () { Some ({ let prev : (hydroflow :: rustc_hash :: FxHashSet < _ > , _) = prev ; let mut set : hydroflow :: rustc_hash :: FxHashSet < _ > = prev . 0 ; if set . insert (val . 0) { (set , prev . 1 + 1) } else { (set , prev . 1) } }) } else { Some ({ let mut set = hydroflow :: rustc_hash :: FxHashSet :: < _ > :: default () ; set . insert (val . 0) ; (set , 1) }) } ; });
18v1 = map (| (g , a) : (() , _) | (a . 0 . unwrap () . 1 ,));

15v1 -> 2v1;
3v1 -> 4v1;
2v1 -> 3v1;
5v1 -> 3v1;
4v1 -> 5v1;
12v1 -> 7v1;
18v1 -> 10v1;
10v1 -> 13v1;
14v1 -> 15v1;
7v1 -> 14v1;
17v1 -> 18v1;
16v1 -> 17v1;
4v1 -> 16v1;

