@@ -32,47 +32,41 @@ type internal<'a> = {
3232  /* its type is ['a] or [unit -> 'a ] */ 
3333}
3434
35- %% private ( external  fnToVal : (unit  =>  'a ) =>  'a  =  "%identity" ) 
36- %% private ( external  valToFn : 'a  =>  unit  =>  'a  =  "%identity" ) 
37- %% private ( external  castToConcrete : t <'a > =>  internal <'a > =  "%identity" ) 
38- %% private ( external  castFromConcrete : internal <'a > =>  t <'a > =  "%identity" ) 
35+ external  fnToVal : (unit  =>  'a ) =>  'a  =  "%identity" 
36+ external  valToFn : 'a  =>  unit  =>  'a  =  "%identity" 
37+ external  castToConcrete : t <'a > =>  internal <'a > =  "%identity" 
38+ external  castFromConcrete : internal <'a > =>  t <'a > =  "%identity" 
3939
4040let  is_val  =  (type  a , l : t <a >): bool  =>  castToConcrete (l ).tag 
4141
4242exception  Undefined 
4343
44- %%private (
45-   let  forward_with_closure  =  (type  a , blk : internal <a >, closure : unit  =>  a ): a  =>  {
46-     let  result  =  closure ()
47-     blk .value  =  result 
48-     blk .tag  =  true 
49-     result 
50-   }
51- )
44+ let  forward_with_closure  =  (type  a , blk : internal <a >, closure : unit  =>  a ): a  =>  {
45+   let  result  =  closure ()
46+   blk .value  =  result 
47+   blk .tag  =  true 
48+   result 
49+ }
5250
53- %% private ( let  raise_undefined  =  () =>  throw (Undefined ) )
51+ let  raise_undefined  =  () =>  throw (Undefined )
5452
5553/* Assume [blk] is a block with tag lazy */ 
56- %%private (
57-   let  force_lazy_block  =  (type  a , blk : internal <a >): a  =>  {
58-     let  closure  =  valToFn (blk .value )
59-     blk .value  =  fnToVal (raise_undefined )
60-     try  forward_with_closure (blk , closure ) catch  {
61-     | e  => 
62-       blk .value  =  fnToVal (() =>  throw (e ))
63-       throw (e )
64-     }
54+ let  force_lazy_block  =  (type  a , blk : internal <a >): a  =>  {
55+   let  closure  =  valToFn (blk .value )
56+   blk .value  =  fnToVal (raise_undefined )
57+   try  forward_with_closure (blk , closure ) catch  {
58+   | e  => 
59+     blk .value  =  fnToVal (() =>  throw (e ))
60+     throw (e )
6561  }
66- ) 
62+ } 
6763
6864/* Assume [blk] is a block with tag lazy */ 
69- %%private (
70-   let  force_val_lazy_block  =  (type  a , blk : internal <a >): a  =>  {
71-     let  closure  =  valToFn (blk .value )
72-     blk .value  =  fnToVal (raise_undefined )
73-     forward_with_closure (blk , closure )
74-   }
75- )
65+ let  force_val_lazy_block  =  (type  a , blk : internal <a >): a  =>  {
66+   let  closure  =  valToFn (blk .value )
67+   blk .value  =  fnToVal (raise_undefined )
68+   forward_with_closure (blk , closure )
69+ }
7670
7771let  force  =  (type  a , lzv : t <a >): a  =>  {
7872  let  lzv : internal <_ > =  castToConcrete (lzv )
0 commit comments