// http://geniepro.livejournal.com/2840.html
$use StdIO Arithm Compare Box List Dos;
$func Main = e;
Main = (0 L ((Woody 10) (Rex 20) (Hamm 25) (Buzz 5)) ()) :: t.state,
>,
:: e,
>,
:: e,
>;
//$func? Search e.state = e.answer;
//Search {
// e (sn R () (e2) e3)@t0 e = t0;
// { $accum {
// e (sn L (e1) (e2) e3)@t0 e, e1 : $accum e4 (t5 sn5) e6 (t7 sn7) e8,
// (> R (e4 e6 e8) (e2 t5 t7) t0);
// e (sn R (v1) (e2) e3)@t0 e, e2 : $accum e4 (t5 sn5) e6 (t7 sn7) e8,
// (> L (v1 t5 t7) (e2 e6 e8) t0);
// } :: t.state,
// ;; } : { $accum
// e (sn t (e1) (e2) e3)@t0 e, <"<=" sn 60>, t0;
// } :: e.state =
// ;
//};
//
//$func? Search2 t.state = e.answer;
//
//Search2 {
// (sn R ( ) (e2) e3)@t0, <"<=" sn 60> = t0;
// (sn t (e1) (e2) e3)@t0, <">" sn 60> = ;
// (sn L (e1) (e2) e3)@t0, e1 : $accum e4 (t5 sn5) e6 (t7 sn7) e8,
// > R (e4 e6 e8) (e2 t5 t7) t0)>;
// (sn R (v1) (e2) e3)@t0, e2 : $accum e4 (t5 sn5) e6 (t7 sn7) e8,
// > L (v1 t5 t7) (e2 e6 e8) t0)>;
//};
//
//$func? Search3 t.state = e.answer;
//
//Search3 {
// (sn R ( ) (e2) e3)@t0, <"<=" sn 60> = t0;
// (sn t (e1) (e2) e3)@t0, <">" sn 60> = ;
// { $accum {
// (sn L (e1) (e2) e3)@t0, e1 : $accum e4 (t5 sn5) e6 (t7 sn7) e8,
// (> R (e4 e6 e8) (e2 t5 t7) t0);
// (sn R (v1) (e2) e3)@t0, e2 : $accum e4 (t5 sn5) e6 (t7 sn7) e8,
// (> L (v1 t5 t7) (e2 e6 e8) t0);
// }; } :: e.state,