

#include "BUILTIN.h"

#include "Nat.h"

#include "Char.h"
extern OBJ _AEnvIO_2(OBJ,OBJ);OBJ __AEnvIO_2; /* & */
extern OBJ _AEnvIO_3(OBJ);OBJ __AEnvIO_3; /* &? */
extern OBJ _AEnvIO_4(OBJ);OBJ __AEnvIO_4; /* dep */
extern OBJ _AEnvIO_5(OBJ);OBJ __AEnvIO_5; /* io */

extern OBJ _AEnvIO_2(OBJ x1,OBJ x2) /* & */
{OBJ r;
 PRD1(2,r);FLD1(r,1)=x1;FLD1(r,2)=x2;
 return r;}

extern OBJ _AEnvIO_3(OBJ x1) /* &? */
{OBJ r;
 FRPRD(x1,1);
 r=__ABUILTIN_5;
 return r;}

extern OBJ _AEnvIO_4(OBJ x1) /* dep */
{OBJ r;
 {OBJ x3=FLD1(x1,2);
  if(EXPRD(x1,1)){
   r=x3;
   FREE(FLD1(x1,1),1);DSPRDF(x1);
  }else{
   COPY(x3,1);
   r=x3;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AEnvIO_5(OBJ x1) /* io */
{OBJ r;
 {OBJ x2=FLD1(x1,1);
  if(EXPRD(x1,1)){
   r=x2;
   FREE(FLD1(x1,2),1);DSPRDF(x1);
  }else{
   COPY(x2,1);
   r=x2;
   FRPRD(x1,1);}}
 return r;}

static OBJ _mt_1_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ))ENTRY(t))(t1);
 return r;}
static OBJ _mt_1_0_1_l(OBJ t,OBJ t1) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ))ENTRY(t))(t1);
 COPY(r,1);LZYCLS(t,r);
 return r;}

static OBJ _mt_2_0_2(OBJ t,OBJ t1,OBJ t2) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ))ENTRY(t))(t1,t2);
 return r;}

init_AEnvIO()
{
 static int visited=0; if(visited) return; visited=1;
 init_AInterOpal();
 init_AName();
 init_ASet();
 init_ANat();
 init_ASeq();
 init_AOption();
 init_AObjects();
 init_AFct();
 init_AOcPos();
 init_AChar();
 init_AMap();
 init_ADyn();
 init_APair();
 CLS(1,_AEnvIO_5,__AEnvIO_5);
 CLS(1,_AEnvIO_4,__AEnvIO_4);
 CLS(1,_AEnvIO_3,__AEnvIO_3);
 CLS(2,_AEnvIO_2,__AEnvIO_2);
 MTH(1,0,1,_mt_1_0_1);LZYMTH(1,0,1,_mt_1_0_1_l);
 MTH(2,0,2,_mt_2_0_2);LZYMTH(2,0,2,_mt_2_0_2);}

