From 8818d0c53ea63149c88afaeef22e0a5f5178a710 Mon Sep 17 00:00:00 2001
From: timofey <tim@ongoteam.yaconnect.com>
Date: Sun, 15 Oct 2023 11:32:57 +0000
Subject: [PATCH] count in trace example

---
 examples/trace.rs | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/examples/trace.rs b/examples/trace.rs
index 40fa733..c61f990 100644
--- a/examples/trace.rs
+++ b/examples/trace.rs
@@ -4,15 +4,17 @@ use radn::{
     flow::{comparator::*, traversible::algorithms::subset::*},
     func::*,
     mrds::trees::unbalanced::*,
-    rstd::tracing::*,
+    rstd::{counting::CountedInstance, tracing::*},
 };
 use rand::{Rng, SeedableRng};
 
-type TracedMonad = instances::composition::CompositionInstance<
+type Inner = instances::composition::CompositionInstance<
     TracedInstance,
     instances::result::ResultInstance<()>,
 >;
 
+type Outer = instances::composition::CompositionInstance<CountedInstance, Inner>;
+
 trait FromSlice<R> {
     type Tree;
     type A;
@@ -44,10 +46,11 @@ impl<'a, T: Monad<'a>, A: 'a + Send + Sync + Clone, R: 'a + rand::Rng> FromSlice
 }
 
 fn main() {
-    let ctr: Arc<UnbalancedConstructor<TracedMonad, _>> =
-        UnbalancedConstructor::rc(Box::new(|node| {
-            Box::new(move || TracedMonad::pure(node.clone()).after_resolution())
-        }));
+    let ctr: Arc<UnbalancedConstructor<Outer, _>> = UnbalancedConstructor::rc(Box::new(|node| {
+        Box::new(move || {
+            CountedInstance::pure(Inner::pure(node.clone()).after_resolution()).after_resolution()
+        })
+    }));
     let mut rng = rand::rngs::StdRng::seed_from_u64(426);
     let big: Vec<i32> = (0..(rng.gen_range(1000..2000))).collect();
     let key = big[rng.gen_range(0..big.len())];
@@ -65,6 +68,7 @@ fn main() {
         None,
         None,
     );
-    assert!(traced.value.is_ok());
-    println!("{:?}", traced.render().to_vec());
+    assert!(traced.value.value.is_ok());
+    println!("{:?}", traced.value.render().to_vec());
+    println!("{}", traced.count());
 }