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, bool, usmall, small)
 (empty, void, negbool, bool)
 (empty, typ, str, genstr,gen)
 (empty, errtyp, str)
 (empty, vecsmall, gen)
 (empty, vecvecsmall, vec, gen)
 (empty, list, gen)
 (empty, closure, gen)
 (empty, error, gen)
 (empty, bnr, bnf, nf, vec)
 (empty, bnr, bnf, clgp, vec)
 (empty, ell, vec)
 (empty, prid, vec)
 (empty, gal, vec)
 (empty, var, pol, gen)
 (empty, Fp, Fq, gen)
 (empty, FpX, FqX, 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
 (usmall):bool
 (small):bool
 (lg):bool:parens      $(1)!=1
 (bptr):bool           *$(1)
 (gen):bool            !gequal0($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         gequal0($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):usmall
 (typ):usmall
 (small):usmall

 (bool):small
 (typ):small
 (small_int):small
 (usmall):small
 (bptr):small           *$(1)
 (int):small            itos($1)
 (int):usmall           itou($1)
 (#lg):small:parens     ${1 value 1 sub}
 (lg):small:parens      $(1)-1
 (gen):small            gtos($1)
 (gen):usmall           gtou($1)

 (void):int             gen_0
 (-2):int               gen_m2
 (-1):int               gen_m1
 (0):int                gen_0
 (1):int                gen_1
 (2):int                gen_2
 (bool):int             stoi($1)
 (small):int            stoi($1)
 (usmall):int           utoi($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):error
 (gen):closure
 (gen):vecsmall

 (nf):vec
 (bnf):vec
 (bnr):vec
 (ell):vec
 (clgp):vec
 (prid):vec
 (gal):vec
 (vecvecsmall):vec
 (gen):vec

 (vec):vecvecsmall

 (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
 (vecvecsmall):gen
 (list):gen
 (pol):gen
 (genstr):gen
 (error):gen
 (closure):gen
 (Flx):gen
 (Fp):gen
 (FpX):gen
 (Fq):gen
 (FqX):gen
 (gen):Flx
 (gen):Fp
 (gen):FpX
 (gen):Fq
 (gen):FqX

 (gen):genstr GENtoGENstr($1)
 (str):genstr strtoGENstr($1)

 (gen):str GENtostr_unquoted($1)
 (genstr):str GSTR($1)
 (typ):str type_name($1)
 (errtyp):str numerr_name($1)

 (#str):typ  ${1 str_format}
 (#str):errtyp  ${1 str_format}

 (bnf):nf              bnf_get_nf($1)
 (gen):nf
 (bnr):bnf             bnr_get_bnf($1)
 (gen):bnf
 (gen):bnr
 (bnf):clgp            bnf_get_clgp($1)
 (bnr):clgp            bnr_get_clgp($1)
 (gen):clgp
 (gen):ell
 (gen):gal
 (gen):prid

 (Fp):Fq
