Function: _type_preorder
Class: gp2c_internal
Help: List of chains of type preorder
Description:
 (empty, void, bool, small, int, mp, gen)
 (empty, real, mp)
 (empty, bptr, small)
 (empty, bool, lg, small)
 (empty, bool, small_int, small)
 (empty, void, negbool, bool)
 (empty, typ, str, genstr,gen)
 (empty, vecsmall, gen)
 (empty, vec, gen)
 (empty, list, gen)
 (empty, bnr, bnf, nf, vec)
 (empty, bnr, bnf, clgp, vec)
 (empty, bell, ell, vec)
 (empty, prid, vec)
 (empty, gal, vec)
 (empty, var, pol, gen)
 
Function: _cast
Class: gp2c_internal
Help: (type1):type2 : cast expression of type1 to type2
Description:
 (void):bool           0
 (#negbool):bool       ${1 value not}
 (negbool):bool        !$(1)
 (small_int):bool
 (small):bool
 (lg):bool:parens      $(1)!=1
 (bptr):bool           *$(1)
 (gen):bool            !gcmp0($1)
 (real):bool           signe($1)
 (int):bool            signe($1)
 (mp):bool             signe($1)
 (pol):bool            signe($1) 
 
 (void):negbool        1
 (#bool):negbool       ${1 value not}
 (bool):negbool        !$(1)
 (lg):negbool:parens   $(1)==1
 (bptr):negbool        !*$(1)
 (gen):negbool         gcmp0($1)
 (int):negbool         !signe($1)
 (real):negbool        !signe($1)
 (mp):negbool          !signe($1)
 (pol):negbool         !signe($1)
  
 (bool):small_int
 (typ):small_int 
 (small):small_int 
  
 (bool):small
 (typ):small 
 (small_int):small
 (bptr):small           *$(1)
 (int):small            itos($1)
 (#lg):small:parens     ${1 value 1 sub}
 (lg):small:parens      $(1)-1
 
 (void):int             gen_0
 (-1):int               gen_m1
 (0):int                gen_0
 (1):int                gen_1
 (2):int                gen_2
 (bool):int             stoi($1)
 (small):int            stoi($1)
 (mp):int
 (gen):int
 
 (mp):real
 (gen):real
 
 (int):mp
 (real):mp
 (gen):mp
 
 (#bool):lg:parens             ${1 1 value add}
 (bool):lg:parens              $(1)+1
 (#small):lg:parens            ${1 1 value add}
 (small):lg:parens             $(1)+1
 
 (gen):vecsmall
 
 (nf):vec
 (bnf):vec
 (bnr):vec
 (ell):vec
 (bell):vec
 (clgp):vec
 (prid):vec
 (gal):vec
 (gen):vec
 
 (gen):list
 
 (pol):var      varn($1)
 (gen):var      gvar($1)
 
 (var):pol      pol_x[$1]
 (gen):pol
 
 (int):gen
 (mp):gen
 (vecsmall):gen
 (vec):gen
 (list):gen
 (pol):gen
 (genstr):gen
 
 (gen):genstr GENtoGENstr($1)
 (str):genstr strtoGENstr($1)
 
 (genstr):str GSTR($1)
 (typ):str type_name($1)
 
 (#str):typ  ${1 str_format}
  
 (bnf):nf:parens       gel($1, 7)
 (gen):nf
 (bnr):bnf:parens      gel($1, 1)
 (gen):bnf
 (gen):bnr
 (bnf):clgp:parens     gmael($1, 8, 1)
 (bnr):clgp:parens     gel($1, 5)
 (gen):clgp
 (bell):ell
 (gen):ell
 (gen):bell
 (gen):gal
 (gen):prid

