import LIB/default.lm; type A (ACons( Rc , Rc )) | (AAtom( String )); del := λ: Hook+HookPriority<1>(: a Rc). (: ( (if (!=( (.2 a) rc-magic-number )) ( (print 'Del\sRc\sNot\sMagic\s_s)(print (.2 a))(print '\n_s) ) ( (let c (.1(open(.1 a)))) (print 'Del\sRc\sIs\sMagic\s_s)(print c)(print '\n_s) )) ) Nil); print := λ(: a A). (: ( (match a ( () ( (ACons( _ _ )) ( (print 'ACons\n_s) )) ( (AAtom( _ )) ( (print 'AAtom\n_s) )) )) ) Nil); dirty := λ(: r U64). (: ( (if (!=( r 0_u64 )) ( (let a (-( r 1_u64 ))) (dirty a) ) ()) ) Nil); countf := λ. (: ( (let a (rc(AAtom 'A_s))) (let b (rc(AAtom 'B_s))) (if ((let c (rc(AAtom 'C_s))) (branchtrue())) ( (let c2 (rc(AAtom 'C2_s))) ) ()) (if ((let d (rc(AAtom 'D_s))) (branchfalse())) ( (let d2 (rc(AAtom 'D2_s))) ) ()) (let e (rc(ACons( a b )))) (let f (rc(ACons( a a )))) ) Nil); main := λ. (: ( (dirty 50_u64) (countf()) ) Nil);