fungi-lang 0.1.63

Fungi: A typed, functional language for programs that name their cached dependency graphs
Documentation
///////////////;;;;;;;,,,,,,....~~~...,,;;;//////////////////
// This stuff is commented out:                            //
// Fungi modules are not on the critical path right now.  ///
///////////////;;;;;;;,,,,,,......~~~.,,;;;//////////////////

// #![recursion_limit="128"]
// #[macro_use]
// extern crate fungi_lang;
// use fungi_lang::ast::*;
// use std::rc::Rc;

// use fungi_lang::stdlib::{vec,seq};
// use fungi_lang::stdlib::seq::seq_nat;

// fgi_inner_mod!{
//     pub (nums)
//     /// Len type
//     type Len = ( Nat );
//     /// Cnt type
//     type Cnt = ( Nat );
//     /// smallest number
//     val zero : ( Len ) = ( 0 );
//     /// almost smallest number
//     val one  : ( Len ) = ( 1 );
//     /// one + one
//     val two  : ( Len ) = ( 2 );;;;;;
// }
// fn fgi_module_test () -> Module {
//     fgi_module!{
//         // import modules defined in fungi_lang::stdlib
//         use vec::*;

//         // import nums module, defined above
//         use nums::*;

//         /// now, we can use anything in either module, as if they were
//         /// defined here:        
//         val test_nums_vec : (Thk[0] 0 F (Nat x Vec Nat)) = (
//             thunk {
//                 let x = {one + two}
//                 let v = {{force vec_gen_range} x}
//                 ret (x, v)
//             }
//         )
//     }
// }

// #[test]
// fn module () {
//     use std::thread;
//     let child =
//         thread::Builder::new().stack_size(64 * 1024 * 1024).spawn(move || { 
//             module2()
//         });
//     let _ = child.unwrap().join();
// }

// fn module2() {
//     use fungi_lang::bitype::*;
//     use fungi_lang::vis::*;
    
//     //let m : Rc<Module> = Rc::new(fgi_module_test());
//     //let md : bitype::ModuleDer = bitype::synth_module(None, &m);

//     let bundle : Bundle = fgi_bundle![
//         use seq_nat::*;
//         ret 123
//     ];
//     write_bundle("target/mod.fgb", &bundle);
// }