let init_builtin_env variable =   
  Array.fold_left 
    (fun acu (o, (_,_,_,arity, ds)) -> 
       (o, (arity, 
            TVariable (variable ?name:(Some o) ()),
            ds
           )
       ) :: acu) 
    [] builtin_env