code: 9ferno

ref: 8d0725d57a988ed0ed2ef0a33e0cebe48a85b5db
dir: /tests/sh.debug/

View raw version
declare module Sys
declare module Draw
declare module Bufio
declare module BufioFill
declare module ChanFill
declare module String
declare module Filepat
declare module Env
declare module Command
declare module Sh
declare module Shellbuiltin
declare module YYSys
variable 'SELF' val '"$self"'
variable 'Sys->PATH' val '"$Sys"'
variable 'Sys->Maxint' val '2147483647'
variable 'Sys->QTDIR' val '128'
variable 'Sys->QTAPPEND' val '64'
variable 'Sys->QTEXCL' val '32'
variable 'Sys->QTAUTH' val '8'
variable 'Sys->QTTMP' val '4'
variable 'Sys->QTFILE' val '0'
variable 'Sys->nulldir' val 'Dir(nil, nil, nil, nil, (-1, -1, -1), -1, -1, -1, -1, -1, -1)'
variable 'Sys->zerodir' val 'Dir(nil, nil, nil, nil, (0, 0, 0), 0, 0, 0, 0, 0, 0)'
variable 'Sys->ATOMICIO' val '8192'
variable 'Sys->SEEKSTART' val '0'
variable 'Sys->SEEKRELA' val '1'
variable 'Sys->SEEKEND' val '2'
variable 'Sys->NAMEMAX' val '256'
variable 'Sys->ERRMAX' val '128'
variable 'Sys->WAITLEN' val '192'
variable 'Sys->OREAD' val '0'
variable 'Sys->OWRITE' val '1'
variable 'Sys->ORDWR' val '2'
variable 'Sys->OTRUNC' val '16'
variable 'Sys->ORCLOSE' val '64'
variable 'Sys->OEXCL' val '4096'
variable 'Sys->DMDIR' val '-2147483648'
variable 'Sys->DMAPPEND' val '1073741824'
variable 'Sys->DMEXCL' val '536870912'
variable 'Sys->DMAUTH' val '134217728'
variable 'Sys->DMTMP' val '67108864'
variable 'Sys->MREPL' val '0'
variable 'Sys->MBEFORE' val '1'
variable 'Sys->MAFTER' val '2'
variable 'Sys->MCREATE' val '4'
variable 'Sys->MCACHE' val '16'
variable 'Sys->NEWFD' val '(1)'
variable 'Sys->FORKFD' val '(2)'
variable 'Sys->NEWNS' val '(4)'
variable 'Sys->FORKNS' val '(8)'
variable 'Sys->NEWPGRP' val '(16)'
variable 'Sys->NODEVS' val '(32)'
variable 'Sys->NEWENV' val '(64)'
variable 'Sys->FORKENV' val '(128)'
variable 'Sys->EXPWAIT' val '0'
variable 'Sys->EXPASYNC' val '1'
variable 'Sys->UTFmax' val '4'
variable 'Sys->UTFerror' val '65533'
variable 'Sys->Runemax' val '1114111'
variable 'Sys->Runemask' val '2097151'
variable 'Draw->PATH' val '"$Draw"'
variable 'Draw->Opaque' val '-1'
variable 'Draw->Transparent' val '0'
variable 'Draw->Black' val '255'
variable 'Draw->White' val '-1'
variable 'Draw->Red' val '-16776961'
variable 'Draw->Green' val '16711935'
variable 'Draw->Blue' val '65535'
variable 'Draw->Cyan' val '16777215'
variable 'Draw->Magenta' val '-16711681'
variable 'Draw->Yellow' val '-65281'
variable 'Draw->Grey' val '-286331137'
variable 'Draw->Paleyellow' val '-21761'
variable 'Draw->Darkyellow' val '-286351617'
variable 'Draw->Darkgreen' val '1149781247'
variable 'Draw->Palegreen' val '-1426085121'
variable 'Draw->Medgreen' val '-1999861505'
variable 'Draw->Darkblue' val '22015'
variable 'Draw->Palebluegreen' val '-1426063361'
variable 'Draw->Paleblue' val '48127'
variable 'Draw->Bluegreen' val '8947967'
variable 'Draw->Greygreen' val '1437248255'
variable 'Draw->Palegreygreen' val '-1628508417'
variable 'Draw->Yellowgreen' val '-1718006529'
variable 'Draw->Medblue' val '39423'
variable 'Draw->Greyblue' val '6142975'
variable 'Draw->Palegreyblue' val '1234427391'
variable 'Draw->Purpleblue' val '-2004300545'
variable 'Draw->Notacolor' val '-256'
variable 'Draw->Nofill' val 'Notacolor'
variable 'Draw->Endsquare' val '0'
variable 'Draw->Enddisc' val '1'
variable 'Draw->Endarrow' val '2'
variable 'Draw->Flushoff' val '0'
variable 'Draw->Flushon' val '1'
variable 'Draw->Flushnow' val '2'
variable 'Draw->Refbackup' val '0'
variable 'Draw->Refnone' val '1'
variable 'Draw->SinD' val '8'
variable 'Draw->DinS' val '4'
variable 'Draw->SoutD' val '2'
variable 'Draw->DoutS' val '1'
variable 'Draw->S' val '10'
variable 'Draw->SoverD' val '11'
variable 'Draw->SatopD' val '9'
variable 'Draw->SxorD' val '3'
variable 'Draw->D' val '5'
variable 'Draw->DoverS' val '7'
variable 'Draw->DatopS' val '6'
variable 'Draw->DxorS' val '3'
variable 'Draw->Clear' val '0'
variable 'Draw->CRed' val 'iota'
variable 'Draw->CGreen' val 'iota'
variable 'Draw->CBlue' val 'iota'
variable 'Draw->CGrey' val 'iota'
variable 'Draw->CAlpha' val 'iota'
variable 'Draw->CMap' val 'iota'
variable 'Draw->CIgnore' val 'iota'
variable 'Draw->GREY1' val 'Chans(49)'
variable 'Draw->GREY2' val 'Chans(50)'
variable 'Draw->GREY4' val 'Chans(52)'
variable 'Draw->GREY8' val 'Chans(56)'
variable 'Draw->CMAP8' val 'Chans(88)'
variable 'Draw->RGB15' val 'Chans(1627723045)'
variable 'Draw->RGB16' val 'Chans(333349)'
variable 'Draw->RGB24' val 'Chans(530472)'
variable 'Draw->RGBA32' val 'Chans(402663496)'
variable 'Draw->ARGB32' val 'Chans(1208490024)'
variable 'Draw->XRGB32' val 'Chans(1745360936)'
variable 'Bufio->PATH' val '"/dis/lib/b..."'
variable 'Bufio->SEEKSTART' val 'SEEKSTART'
variable 'Bufio->SEEKRELA' val 'SEEKRELA'
variable 'Bufio->SEEKEND' val 'SEEKEND'
variable 'Bufio->OREAD' val 'OREAD'
variable 'Bufio->OWRITE' val 'OWRITE'
variable 'Bufio->ORDWR' val 'ORDWR'
variable 'Bufio->EOF' val '-1'
variable 'Bufio->ERROR' val '-2'
variable 'ChanFill->PATH' val '"/dis/lib/c..."'
variable 'String->PATH' val '"/dis/lib/s..."'
variable 'Filepat->PATH' val '"/dis/lib/f..."'
variable 'Env->PATH' val '"/dis/lib/e..."'
variable 'Command->PATH' val '"/dis/sh.di..."'
variable 'PATH' val '"/dis/sh.di..."'
variable 'Context.INTERACTIVE' val '1'
variable 'Context.VERBOSE' val '2'
variable 'Context.EXECPRINT' val '4'
variable 'Context.ERROREXIT' val '8'
variable 'Var.CHANGED' val '(1)'
variable 'Var.NOEXPORT' val '(2)'
variable 'n_BLOCK' val 'iota'
variable 'n_VAR' val 'iota'
variable 'n_BQ' val 'iota'
variable 'n_BQ2' val 'iota'
variable 'n_REDIR' val 'iota'
variable 'n_DUP' val 'iota'
variable 'n_LIST' val 'iota'
variable 'n_SEQ' val 'iota'
variable 'n_CONCAT' val 'iota'
variable 'n_PIPE' val 'iota'
variable 'n_ADJ' val 'iota'
variable 'n_WORD' val 'iota'
variable 'n_NOWAIT' val 'iota'
variable 'n_SQUASH' val 'iota'
variable 'n_COUNT' val 'iota'
variable 'n_ASSIGN' val 'iota'
variable 'n_LOCAL' val 'iota'
variable 'GLOB' val '1'
variable 'Shellbuiltin->BUILTIN' val 'iota'
variable 'Shellbuiltin->SBUILTIN' val 'iota'
variable 'Shellbuiltin->OTHER' val 'iota'
variable 'YYLEX.EOF' val '-1'
variable 'DUP' val '57346'
variable 'REDIR' val '57347'
variable 'WORD' val '57348'
variable 'OP' val '57349'
variable 'END' val '57350'
variable 'ERROR' val '57351'
variable 'ANDAND' val '57352'
variable 'OROR' val '57353'
variable 'YYEOFCODE' val '1'
variable 'YYERRCODE' val '2'
variable 'YYMAXDEPTH' val '200'
variable 'EPERM' val '"permission..."'
variable 'EPIPE' val '"write on c..."'
variable 'LIBSHELLRC' val '"/lib/sh/pr..."'
variable 'BUILTINPATH' val '"/dis/sh"'
variable 'DEBUG' val '0'
variable 'ENVSEP' val '0'
variable 'ENVHASHSIZE' val '7'
variable 'OAPPEND' val '524288'
variable 'OMASK' val '7'
variable 'NOTOKEN' val '-1'
generate desc for int
generate desc for int
	desc	$-1,4,""
variable 'YYNPROD' val '45'
variable 'YYPRIVATE' val '57344'
variable 'yydebug' val '0'
variable 'YYLAST' val '93'
generate desc for int
generate desc for int
generate desc for int
generate desc for int
generate desc for int
generate desc for int
generate desc for int
generate desc for int
generate desc for int
generate desc for int
variable 'YYFLAG' val '-1000'
typecheck tree: 
fn(){} fn() 0 0
  name usage fn() 0 0
  seq nothing 0 0
    call nothing 0 0
      -> nothing 0 0
        name sys nothing 0 0
        name fprint nothing 0 0
      seq nothing 0 0
        call nothing 0 0
          name stderr nothing 0 0
        seq nothing 0 0
          const usage: sh [-ilexn] [-c command] [file [arg...]]
 string 0 0
    seq nothing 0 0
      raise nothing 0 0
        const fail:usage string 0 0
typecheck tree: 
fn(){} fn(path: string) 0 0
  name badmodule fn(path: string) 0 0
  seq nothing 0 0
    call nothing 0 0
      -> nothing 0 0
        name sys nothing 0 0
        name fprint nothing 0 0
      seq nothing 0 0
        call nothing 0 0
          -> nothing 0 0
            name sys nothing 0 0
            name fildes nothing 0 0
          seq nothing 0 0
            const (2) int 0 0
        seq nothing 0 0
          const sh: cannot load %s: %r
 string 0 0
          seq nothing 0 0
            name path nothing 0 0
    seq nothing 0 0
      raise nothing 0 0
        const fail:bad module string 0 0
typecheck tree: 
fn(){} fn() 0 0
  name initialise fn() 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        name sys nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        scope nothing 0 0
          seq nothing 0 0
            = nothing 0 0
              name sys nothing 0 0
              load Sys 0 0
                -> nothing 0 0
                  name Sys nothing 0 0
                  name PATH nothing 0 0
            seq nothing 0 0
              = nothing 0 0
                name filepat nothing 0 0
                load Filepat 0 0
                  -> nothing 0 0
                    name Filepat nothing 0 0
                    name PATH nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  == nothing 0 0
                    name filepat nothing 0 0
                    name nil polymorphic type 0 0
                  seq nothing 0 0
                    call nothing 0 0
                      name badmodule nothing 0 0
                      seq nothing 0 0
                        -> nothing 0 0
                          name Filepat nothing 0 0
                          name PATH nothing 0 0
                seq nothing 0 0
                  = nothing 0 0
                    name str nothing 0 0
                    load String 0 0
                      -> nothing 0 0
                        name String nothing 0 0
                        name PATH nothing 0 0
                  seq nothing 0 0
                    if nothing 0 0
                      == nothing 0 0
                        name str nothing 0 0
                        name nil polymorphic type 0 0
                      seq nothing 0 0
                        call nothing 0 0
                          name badmodule nothing 0 0
                          seq nothing 0 0
                            -> nothing 0 0
                              name String nothing 0 0
                              name PATH nothing 0 0
                    seq nothing 0 0
                      = nothing 0 0
                        name bufio nothing 0 0
                        load Bufio 0 0
                          -> nothing 0 0
                            name Bufio nothing 0 0
                            name PATH nothing 0 0
                      seq nothing 0 0
                        if nothing 0 0
                          == nothing 0 0
                            name bufio nothing 0 0
                            name nil polymorphic type 0 0
                          seq nothing 0 0
                            call nothing 0 0
                              name badmodule nothing 0 0
                              seq nothing 0 0
                                -> nothing 0 0
                                  name Bufio nothing 0 0
                                  name PATH nothing 0 0
                        seq nothing 0 0
                          = nothing 0 0
                            name myself nothing 0 0
                            load Sh 0 0
                              const $self string 0 0
                          seq nothing 0 0
                            if nothing 0 0
                              == nothing 0 0
                                name myself nothing 0 0
                                name nil polymorphic type 0 0
                              seq nothing 0 0
                                call nothing 0 0
                                  name badmodule nothing 0 0
                                  seq nothing 0 0
                                    const $self(Sh) string 0 0
                            seq nothing 0 0
                              = nothing 0 0
                                name myselfbuiltin nothing 0 0
                                load Shellbuiltin 0 0
                                  const $self string 0 0
                              seq nothing 0 0
                                if nothing 0 0
                                  == nothing 0 0
                                    name myselfbuiltin nothing 0 0
                             
typecheck tree: 
fn(){} fn(drawcontext: ref Draw->Context, argv: list of string) 0 0
  name init fn(ctxt: ref Draw->Context, argv: list of string) 0 0
  seq nothing 0 0
    call nothing 0 0
      name initialise nothing 0 0
    seq nothing 0 0
      := nothing 0 0
        name opts nothing 0 0
        name blankopts nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          != nothing 0 0
            name argv nothing 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  == nothing 0 0
                    index nothing 0 0
                      hd nothing 0 0
                        name argv nothing 0 0
                      const (0) int 0 0
                    const (45) int 0 0
                  seq nothing 0 0
                    ++ nothing 0 0
                      . nothing 0 0
                        name opts nothing 0 0
                        name lflag nothing 0 0
                seq nothing 0 0
                  = nothing 0 0
                    name argv nothing 0 0
                    tl nothing 0 0
                      name argv nothing 0 0
        seq nothing 0 0
          := nothing 0 0
            name interactive nothing 0 0
            const (0) int 0 0
          seq nothing 0 0
            for nothing 0 0
              && nothing 0 0
                && nothing 0 0
                  != nothing 0 0
                    name argv nothing 0 0
                    name nil polymorphic type 0 0
                  != nothing 0 0
                    hd nothing 0 0
                      name argv nothing 0 0
                    name nil polymorphic type 0 0
                == nothing 0 0
                  index nothing 0 0
                    hd nothing 0 0
                      name argv nothing 0 0
                    const (0) int 0 0
                  const (45) int 0 0
              seq nothing 0 0
                scope nothing 0 0
                  seq nothing 0 0
                    := nothing 0 0
                      name i nothing 0 0
                      const (1) int 0 0
                    seq nothing 0 0
                      for nothing 0 0
                        < nothing 0 0
                          name i nothing 0 0
                          len nothing 0 0
                            hd nothing 0 0
                              name argv nothing 0 0
                        seq nothing 0 0
                          scope nothing 0 0
                            seq nothing 0 0
                              := nothing 0 0
                                name c nothing 0 0
                                index nothing 0 0
                                  hd nothing 0 0
                                    name argv nothing 0 0
                                  name i nothing 0 0
                              seq nothing 0 0
                                case nothing 0 0
                                  name c nothing 0 0
                                  seq nothing 0 0
                                    label nothing 0 0
                                      seq nothing 0 0
                                        const (105) int 0 0
                                      scope nothing 0 0
                                        = nothing 0 0
                                          name interactive nothing 0 0
                                          . nothing 0 0
                                            name Context nothing 0 0
                                            name INTERACTIVE nothing 0 0
                                    seq nothing 0 0
                                      label nothing 0 0
                                        seq nothing 0 0
                                          const (108) int 0 0
                                        scope nothing 0 0
                                          ++ nothing 0 0
                                            . nothing 0 0
                                              name opts nothing 0 0
      
typecheck tree: 
fn(){} fn(s: string): (ref Node, string) 0 0
  name parse fn(s: string): (ref Node, string) 0 0
  seq nothing 0 0
    call nothing 0 0
      name initialise nothing 0 0
    seq nothing 0 0
      := nothing 0 0
        name lex nothing 0 0
        call nothing 0 0
          . nothing 0 0
            name YYLEX nothing 0 0
            name initstring nothing 0 0
          seq nothing 0 0
            name s nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          call nothing 0 0
            name doparse nothing 0 0
            seq nothing 0 0
              name lex nothing 0 0
              seq nothing 0 0
                const  string 0 0
                seq nothing 0 0
                  const (0) int 0 0
typecheck tree: 
fn(){} fn(drawctxt: ref Draw->Context, cmd: string): string 0 0
  name system fn(drawctxt: ref Draw->Context, cmd: string): string 0 0
  seq nothing 0 0
    call nothing 0 0
      name initialise nothing 0 0
    seq nothing 0 0
      exstat nothing 0 0
        scope nothing 0 0
          seq nothing 0 0
            := nothing 0 0
              tuple nothing 0 0
                seq nothing 0 0
                  name n nothing 0 0
                  seq nothing 0 0
                    name err nothing 0 0
              call nothing 0 0
                name parse nothing 0 0
                seq nothing 0 0
                  name cmd nothing 0 0
            seq nothing 0 0
              if nothing 0 0
                != nothing 0 0
                  name err nothing 0 0
                  name nil polymorphic type 0 0
                seq nothing 0 0
                  return nothing 0 0
                    name err nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  == nothing 0 0
                    name n nothing 0 0
                    name nil polymorphic type 0 0
                  seq nothing 0 0
                    return nothing 0 0
                      name nil polymorphic type 0 0
                seq nothing 0 0
                  return nothing 0 0
                    call nothing 0 0
                      . nothing 0 0
                        call nothing 0 0
                          . nothing 0 0
                            name Context nothing 0 0
                            name new nothing 0 0
                          seq nothing 0 0
                            name drawctxt nothing 0 0
                        name run nothing 0 0
                      seq nothing 0 0
                        :: nothing 0 0
                          ref nothing 0 0
                            call nothing 0 0
                              name Listnode nothing 0 0
                              seq nothing 0 0
                                name n nothing 0 0
                                seq nothing 0 0
                                  name nil polymorphic type 0 0
                          name nil polymorphic type 0 0
                        seq nothing 0 0
                          const (0) int 0 0
        except nothing 0 0
          name e nothing 0 0
          seq nothing 0 0
            label nothing 0 0
              seq nothing 0 0
                const fail:* string 0 0
              scope nothing 0 0
                return nothing 0 0
                  call nothing 0 0
                    name failurestatus nothing 0 0
                    seq nothing 0 0
                      name e nothing 0 0
typecheck tree: 
fn(){} fn(drawctxt: ref Draw->Context, argv: list of string): string 0 0
  name run fn(drawctxt: ref Draw->Context, argv: list of string): string 0 0
  seq nothing 0 0
    call nothing 0 0
      name initialise nothing 0 0
    seq nothing 0 0
      exstat nothing 0 0
        scope nothing 0 0
          seq nothing 0 0
            return nothing 0 0
              call nothing 0 0
                . nothing 0 0
                  call nothing 0 0
                    . nothing 0 0
                      name Context nothing 0 0
                      name new nothing 0 0
                    seq nothing 0 0
                      name drawctxt nothing 0 0
                  name run nothing 0 0
                seq nothing 0 0
                  call nothing 0 0
                    name stringlist2list nothing 0 0
                    seq nothing 0 0
                      name argv nothing 0 0
                  seq nothing 0 0
                    const (0) int 0 0
        except nothing 0 0
          name e nothing 0 0
          seq nothing 0 0
            label nothing 0 0
              seq nothing 0 0
                const fail:* string 0 0
              scope nothing 0 0
                return nothing 0 0
                  call nothing 0 0
                    name failurestatus nothing 0 0
                    seq nothing 0 0
                      name e nothing 0 0
typecheck tree: 
fn(){} fn(fd: ref Sys->FD): int 0 0
  name isconsole fn(fd: ref Sys->FD): int 0 0
  seq nothing 0 0
    := nothing 0 0
      tuple nothing 0 0
        seq nothing 0 0
          name ok1 nothing 0 0
          seq nothing 0 0
            name d1 nothing 0 0
      call nothing 0 0
        -> nothing 0 0
          name sys nothing 0 0
          name fstat nothing 0 0
        seq nothing 0 0
          name fd nothing 0 0
    seq nothing 0 0
      := nothing 0 0
        tuple nothing 0 0
          seq nothing 0 0
            name ok2 nothing 0 0
            seq nothing 0 0
              name d2 nothing 0 0
        call nothing 0 0
          -> nothing 0 0
            name sys nothing 0 0
            name stat nothing 0 0
          seq nothing 0 0
            const /dev/cons string 0 0
      seq nothing 0 0
        if nothing 0 0
          || nothing 0 0
            < nothing 0 0
              name ok1 nothing 0 0
              const (0) int 0 0
            < nothing 0 0
              name ok2 nothing 0 0
              const (0) int 0 0
          seq nothing 0 0
            return nothing 0 0
              const (0) int 0 0
        seq nothing 0 0
          return nothing 0 0
            && nothing 0 0
              == nothing 0 0
                . nothing 0 0
                  name d1 nothing 0 0
                  name dtype nothing 0 0
                . nothing 0 0
                  name d2 nothing 0 0
                  name dtype nothing 0 0
              == nothing 0 0
                . nothing 0 0
                  . nothing 0 0
                    name d1 nothing 0 0
                    name qid nothing 0 0
                  name path nothing 0 0
                . nothing 0 0
                  . nothing 0 0
                    name d2 nothing 0 0
                    name qid nothing 0 0
                  name path nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, path: string, args: list of ref Listnode, reporterr: int) 0 0
  name runscript fn(ctxt: ref Context, path: string, args: list of ref Listnode, reporterr: int) 0 0
  seq nothing 0 0
    exstat nothing 0 0
      scope nothing 0 0
        seq nothing 0 0
          := nothing 0 0
            name fd nothing 0 0
            call nothing 0 0
              -> nothing 0 0
                name sys nothing 0 0
                name open nothing 0 0
              seq nothing 0 0
                name path nothing 0 0
                seq nothing 0 0
                  -> nothing 0 0
                    name Sys nothing 0 0
                    name OREAD nothing 0 0
          seq nothing 0 0
            if nothing 0 0
              != nothing 0 0
                name fd nothing 0 0
                name nil polymorphic type 0 0
              seq nothing 0 0
                call nothing 0 0
                  name runfile nothing 0 0
                  seq nothing 0 0
                    name ctxt nothing 0 0
                    seq nothing 0 0
                      name fd nothing 0 0
                      seq nothing 0 0
                        name path nothing 0 0
                        seq nothing 0 0
                          name args nothing 0 0
                if nothing 0 0
                  name reporterr nothing 0 0
                  seq nothing 0 0
                    call nothing 0 0
                      . nothing 0 0
                        name ctxt nothing 0 0
                        name fail nothing 0 0
                      seq nothing 0 0
                        const bad script path string 0 0
                        seq nothing 0 0
                          call nothing 0 0
                            -> nothing 0 0
                              name sys nothing 0 0
                              name sprint nothing 0 0
                            seq nothing 0 0
                              const sh: cannot open %s: %r string 0 0
                              seq nothing 0 0
                                name path nothing 0 0
      except nothing 0 0
        seq nothing 0 0
          label nothing 0 0
            seq nothing 0 0
              const fail:* string 0 0
            scope nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  ! nothing 0 0
                    name reporterr nothing 0 0
                  seq nothing 0 0
                    return nothing 0 0
                raise nothing 0 0
                  nothing nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, fd: ref Sys->FD, path: string, args: list of ref Listnode) 0 0
  name runfile fn(ctxt: ref Context, fd: ref Sys->FD, path: string, args: list of ref Listnode) 0 0
  seq nothing 0 0
    call nothing 0 0
      . nothing 0 0
        name ctxt nothing 0 0
        name push nothing 0 0
    seq nothing 0 0
      exstat nothing 0 0
        scope nothing 0 0
          seq nothing 0 0
            call nothing 0 0
              . nothing 0 0
                name ctxt nothing 0 0
                name setlocal nothing 0 0
              seq nothing 0 0
                const 0 string 0 0
                seq nothing 0 0
                  call nothing 0 0
                    name stringlist2list nothing 0 0
                    seq nothing 0 0
                      :: nothing 0 0
                        name path nothing 0 0
                        name nil polymorphic type 0 0
            seq nothing 0 0
              call nothing 0 0
                . nothing 0 0
                  name ctxt nothing 0 0
                  name setlocal nothing 0 0
                seq nothing 0 0
                  const * string 0 0
                  seq nothing 0 0
                    name args nothing 0 0
              seq nothing 0 0
                := nothing 0 0
                  name lex nothing 0 0
                  call nothing 0 0
                    . nothing 0 0
                      name YYLEX nothing 0 0
                      name initfile nothing 0 0
                    seq nothing 0 0
                      name fd nothing 0 0
                      seq nothing 0 0
                        name path nothing 0 0
                seq nothing 0 0
                  if nothing 0 0
                    name DEBUG nothing 0 0
                    seq nothing 0 0
                      call nothing 0 0
                        name debug nothing 0 0
                        seq nothing 0 0
                          call nothing 0 0
                            name sprint nothing 0 0
                            seq nothing 0 0
                              const parse(interactive == %d) string 0 0
                              seq nothing 0 0
                                != nothing 0 0
                                  & nothing 0 0
                                    call nothing 0 0
                                      . nothing 0 0
                                        name ctxt nothing 0 0
                                        name options nothing 0 0
                                    . nothing 0 0
                                      name ctxt nothing 0 0
                                      name INTERACTIVE nothing 0 0
                                  const (0) int 0 0
                  seq nothing 0 0
                    := nothing 0 0
                      name prompt nothing 0 0
                      :: nothing 0 0
                        const  string 0 0
                        :: nothing 0 0
                          const  string 0 0
                          name nil polymorphic type 0 0
                    seq nothing 0 0
                      vardecl string 0 0
                        seq nothing 0 0
                      seq nothing 0 0
                        for nothing 0 0
                          ! nothing 0 0
                            . nothing 0 0
                              name lex nothing 0 0
                              name eof nothing 0 0
                          seq nothing 0 0
                            scope nothing 0 0
                              seq nothing 0 0
                                := nothing 0 0
                                  name interactive nothing 0 0
                                  & nothing 0 0
                                    call nothing 0 0
                                      . nothing 0 0
                                        name ctxt nothing 0 0
                                        name options nothing 0 0
                                    . nothing 0 0
                                      name ctxt nothing 0 0
                    
typecheck tree: 
fn(){} fn(e: string): int 0 0
  name nonexistent fn(e: string): int 0 0
  seq nothing 0 0
    := nothing 0 0
      name errs nothing 0 0
      array nothing 0 0
        nothing nothing 0 0
        seq nothing 0 0
          elem nothing 0 0
            const does not exist string 0 0
          seq nothing 0 0
            elem nothing 0 0
              const directory entry not found string 0 0
    seq nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name i nothing 0 0
          const (0) int 0 0
        for nothing 0 0
          < nothing 0 0
            name i nothing 0 0
            len nothing 0 0
              name errs nothing 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                := nothing 0 0
                  name j nothing 0 0
                  len nothing 0 0
                    index nothing 0 0
                      name errs nothing 0 0
                      name i nothing 0 0
                seq nothing 0 0
                  if nothing 0 0
                    && nothing 0 0
                      <= nothing 0 0
                        name j nothing 0 0
                        len nothing 0 0
                          name e nothing 0 0
                      == nothing 0 0
                        slice nothing 0 0
                          name e nothing 0 0
                          seq nothing 0 0
                            - nothing 0 0
                              len nothing 0 0
                                name e nothing 0 0
                              name j nothing 0 0
                            nothing nothing 0 0
                        index nothing 0 0
                          name errs nothing 0 0
                          name i nothing 0 0
                    seq nothing 0 0
                      return nothing 0 0
                        const (1) int 0 0
            ++ nothing 0 0
              name i nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          const (0) int 0 0
typecheck tree: 
fn(){} fn(n: ref Node): ref Node 0 0
  name pipe2cmd fn(n: ref Node): ref Node 0 0
  seq nothing 0 0
    if nothing 0 0
      || nothing 0 0
        == nothing 0 0
          name n nothing 0 0
          name nil polymorphic type 0 0
        != nothing 0 0
          . nothing 0 0
            name n nothing 0 0
            name ntype nothing 0 0
          name n_PIPE nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          name n nothing 0 0
    seq nothing 0 0
      return nothing 0 0
        call nothing 0 0
          name mk nothing 0 0
          seq nothing 0 0
            name n_ADJ nothing 0 0
            seq nothing 0 0
              call nothing 0 0
                name mk nothing 0 0
                seq nothing 0 0
                  name n_BLOCK nothing 0 0
                  seq nothing 0 0
                    name n nothing 0 0
                    seq nothing 0 0
                      name nil polymorphic type 0 0
              seq nothing 0 0
                call nothing 0 0
                  name mk nothing 0 0
                  seq nothing 0 0
                    name n_VAR nothing 0 0
                    seq nothing 0 0
                      ref nothing 0 0
                        call nothing 0 0
                          name Node nothing 0 0
                          seq nothing 0 0
                            name n_WORD nothing 0 0
                            seq nothing 0 0
                              name nil polymorphic type 0 0
                              seq nothing 0 0
                                name nil polymorphic type 0 0
                                seq nothing 0 0
                                  const * string 0 0
                                  seq nothing 0 0
                                    name nil polymorphic type 0 0
                      seq nothing 0 0
                        name nil polymorphic type 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, n: ref Node, last: int): string 0 0
  name walk fn(ctxt: ref Context, n: ref Node, last: int): string 0 0
  seq nothing 0 0
    if nothing 0 0
      name DEBUG nothing 0 0
      seq nothing 0 0
        call nothing 0 0
          name debug nothing 0 0
          seq nothing 0 0
            call nothing 0 0
              name sprint nothing 0 0
              seq nothing 0 0
                const walking: %s string 0 0
                seq nothing 0 0
                  call nothing 0 0
                    name cmd2string nothing 0 0
                    seq nothing 0 0
                      name n nothing 0 0
    seq nothing 0 0
      for nothing 0 0
        && nothing 0 0
          != nothing 0 0
            name n nothing 0 0
            name nil polymorphic type 0 0
          == nothing 0 0
            . nothing 0 0
              name n nothing 0 0
              name ntype nothing 0 0
            name n_SEQ nothing 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              := nothing 0 0
                name status nothing 0 0
                call nothing 0 0
                  name walk nothing 0 0
                  seq nothing 0 0
                    name ctxt nothing 0 0
                    seq nothing 0 0
                      . nothing 0 0
                        name n nothing 0 0
                        name left nothing 0 0
                      seq nothing 0 0
                        const (0) int 0 0
              seq nothing 0 0
                if nothing 0 0
                  && nothing 0 0
                    & nothing 0 0
                      call nothing 0 0
                        . nothing 0 0
                          name ctxt nothing 0 0
                          name options nothing 0 0
                      . nothing 0 0
                        name ctxt nothing 0 0
                        name ERROREXIT nothing 0 0
                    != nothing 0 0
                      name status nothing 0 0
                      name nil polymorphic type 0 0
                  seq nothing 0 0
                    raise nothing 0 0
                      + nothing 0 0
                        const fail: string 0 0
                        name status nothing 0 0
                seq nothing 0 0
                  call nothing 0 0
                    name setstatus nothing 0 0
                    seq nothing 0 0
                      name ctxt nothing 0 0
                      seq nothing 0 0
                        name status nothing 0 0
                  seq nothing 0 0
                    = nothing 0 0
                      name n nothing 0 0
                      . nothing 0 0
                        name n nothing 0 0
                        name right nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          == nothing 0 0
            name n nothing 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            return nothing 0 0
              name nil polymorphic type 0 0
        seq nothing 0 0
          case nothing 0 0
            . nothing 0 0
              name n nothing 0 0
              name ntype nothing 0 0
            seq nothing 0 0
              label nothing 0 0
                seq nothing 0 0
                  name n_PIPE nothing 0 0
                scope nothing 0 0
                  return nothing 0 0
                    call nothing 0 0
                      name waitfor nothing 0 0
                      seq nothing 0 0
                        name ctxt nothing 0 0
                        seq nothing 0 0
                          call nothing 0 0
                            name walkpipeline nothing 0 0
                            seq nothing 0 0
                              name ctxt nothing 0 0
                              seq nothing 0 0
                                name n nothing 0 0
                                seq nothing 0 0
                                  name nil polymorphic type 0 0
                                  seq nothing 0 0
                                    - nothing 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, n: ref Node): list of ref Listnode 0 0
  name assign fn(ctxt: ref Context, n: ref Node): list of ref Listnode 0 0
  seq nothing 0 0
    := nothing 0 0
      name redirs nothing 0 0
      ref nothing 0 0
        name Redirlist nothing 0 0
    seq nothing 0 0
      vardecl list of ref Listnode 0 0
        seq nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          && nothing 0 0
            != nothing 0 0
              . nothing 0 0
                name n nothing 0 0
                name right nothing 0 0
              name nil polymorphic type 0 0
            || nothing 0 0
              == nothing 0 0
                . nothing 0 0
                  . nothing 0 0
                    name n nothing 0 0
                    name right nothing 0 0
                  name ntype nothing 0 0
                name n_ASSIGN nothing 0 0
              == nothing 0 0
                . nothing 0 0
                  . nothing 0 0
                    name n nothing 0 0
                    name right nothing 0 0
                  name ntype nothing 0 0
                name n_LOCAL nothing 0 0
          seq nothing 0 0
            = nothing 0 0
              name val nothing 0 0
              call nothing 0 0
                name assign nothing 0 0
                seq nothing 0 0
                  name ctxt nothing 0 0
                  seq nothing 0 0
                    . nothing 0 0
                      name n nothing 0 0
                      name right nothing 0 0
            = nothing 0 0
              name val nothing 0 0
              call nothing 0 0
                name glob nothing 0 0
                seq nothing 0 0
                  call nothing 0 0
                    name glom nothing 0 0
                    seq nothing 0 0
                      name ctxt nothing 0 0
                      seq nothing 0 0
                        . nothing 0 0
                          name n nothing 0 0
                          name right nothing 0 0
                        seq nothing 0 0
                          name redirs nothing 0 0
                          seq nothing 0 0
                            name nil polymorphic type 0 0
        seq nothing 0 0
          := nothing 0 0
            name vars nothing 0 0
            call nothing 0 0
              name glom nothing 0 0
              seq nothing 0 0
                name ctxt nothing 0 0
                seq nothing 0 0
                  . nothing 0 0
                    name n nothing 0 0
                    name left nothing 0 0
                  seq nothing 0 0
                    name redirs nothing 0 0
                    seq nothing 0 0
                      name nil polymorphic type 0 0
          seq nothing 0 0
            if nothing 0 0
              == nothing 0 0
                name vars nothing 0 0
                name nil polymorphic type 0 0
              seq nothing 0 0
                call nothing 0 0
                  . nothing 0 0
                    name ctxt nothing 0 0
                    name fail nothing 0 0
                  seq nothing 0 0
                    const bad assign string 0 0
                    seq nothing 0 0
                      const sh: nil variable name string 0 0
            seq nothing 0 0
              if nothing 0 0
                != nothing 0 0
                  . nothing 0 0
                    name redirs nothing 0 0
                    name r nothing 0 0
                  name nil polymorphic type 0 0
                seq nothing 0 0
                  call nothing 0 0
                    . nothing 0 0
                      name ctxt nothing 0 0
                      name fail nothing 0 0
                    seq nothing 0 0
                      const bad assign string 0 0
                      seq nothing 0 0
                        const sh: redirections not allowed in assignment string 0 0
              seq nothing 0 0
                := nothing 0 0
                  name tval nothing 0 0
                  name val nothing 0 0
                seq nothing 0 0
                  for nothing
typecheck tree: 
fn(){} fn(ctxt: ref Context, n: ref Node, wrpipe: ref Sys->FD, wfdno: int): list of int 0 0
  name walkpipeline fn(ctxt: ref Context, n: ref Node, wrpipe: ref Sys->FD, wfdno: int): list of int 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        name n nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          name nil polymorphic type 0 0
    seq nothing 0 0
      := nothing 0 0
        name fds nothing 0 0
        array array of ref Sys->FD 0 0
          const (2) int 0 0
      seq nothing 0 0
        vardecl list of int 0 0
          seq nothing 0 0
        seq nothing 0 0
          := nothing 0 0
            name rfdno nothing 0 0
            - nothing 0 0
              const (1) int 0 0
          seq nothing 0 0
            if nothing 0 0
              == nothing 0 0
                . nothing 0 0
                  name n nothing 0 0
                  name ntype nothing 0 0
                name n_PIPE nothing 0 0
              seq nothing 0 0
                scope nothing 0 0
                  seq nothing 0 0
                    if nothing 0 0
                      == nothing 0 0
                        call nothing 0 0
                          -> nothing 0 0
                            name sys nothing 0 0
                            name pipe nothing 0 0
                          seq nothing 0 0
                            name fds nothing 0 0
                        - nothing 0 0
                          const (1) int 0 0
                      seq nothing 0 0
                        call nothing 0 0
                          . nothing 0 0
                            name ctxt nothing 0 0
                            name fail nothing 0 0
                          seq nothing 0 0
                            const no pipe string 0 0
                            seq nothing 0 0
                              call nothing 0 0
                                -> nothing 0 0
                                  name sys nothing 0 0
                                  name sprint nothing 0 0
                                seq nothing 0 0
                                  const sh: cannot make pipe: %r string 0 0
                    seq nothing 0 0
                      := nothing 0 0
                        name nwfdno nothing 0 0
                        - nothing 0 0
                          const (1) int 0 0
                      seq nothing 0 0
                        if nothing 0 0
                          != nothing 0 0
                            . nothing 0 0
                              name n nothing 0 0
                              name redir nothing 0 0
                            name nil polymorphic type 0 0
                          seq nothing 0 0
                            scope nothing 0 0
                              seq nothing 0 0
                                := nothing 0 0
                                  tuple nothing 0 0
                                    seq nothing 0 0
                                      name fd1 nothing 0 0
                                      seq nothing 0 0
                                        name fd2 nothing 0 0
                                  tuple nothing 0 0
                                    seq nothing 0 0
                                      . nothing 0 0
                                        . nothing 0 0
                                          name n nothing 0 0
                                          name redir nothing 0 0
                                        name fd2 nothing 0 0
                                      seq nothing 0 0
                                        . nothing 0 0
                                          . nothing 0 0
                                            name n nothing 0 0
                                            name redir nothing 0 0
                                          name fd1 nothing 0 0
                                seq nothing 0 0
                                  if nothing 0 0
                                    == nothing 0 0
typecheck tree: 
fn(){} fn(f: string, mode: int, fd: int): Redirword 0 0
  name makeredir fn(f: string, mode: int, fd: int): Redirword 0 0
  seq nothing 0 0
    return nothing 0 0
      call nothing 0 0
        name Redirword nothing 0 0
        seq nothing 0 0
          name nil polymorphic type 0 0
          seq nothing 0 0
            name f nothing 0 0
            seq nothing 0 0
              call nothing 0 0
                name Redir nothing 0 0
                seq nothing 0 0
                  name mode nothing 0 0
                  seq nothing 0 0
                    name fd nothing 0 0
                    seq nothing 0 0
                      - nothing 0 0
                        const (1) int 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 0 0
  name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        name n nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          name nil polymorphic type 0 0
    seq nothing 0 0
      if nothing 0 0
        != nothing 0 0
          . nothing 0 0
            name n nothing 0 0
            name ntype nothing 0 0
          name n_ADJ nothing 0 0
        seq nothing 0 0
          return nothing 0 0
            call nothing 0 0
              name listjoin nothing 0 0
              seq nothing 0 0
                call nothing 0 0
                  name glomoperation nothing 0 0
                  seq nothing 0 0
                    name ctxt nothing 0 0
                    seq nothing 0 0
                      name n nothing 0 0
                      seq nothing 0 0
                        name redirs nothing 0 0
                seq nothing 0 0
                  name onto nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name nlist nothing 0 0
          call nothing 0 0
            name glom nothing 0 0
            seq nothing 0 0
              name ctxt nothing 0 0
              seq nothing 0 0
                . nothing 0 0
                  name n nothing 0 0
                  name right nothing 0 0
                seq nothing 0 0
                  name redirs nothing 0 0
                  seq nothing 0 0
                    name onto nothing 0 0
        seq nothing 0 0
          if nothing 0 0
            != nothing 0 0
              . nothing 0 0
                . nothing 0 0
                  name n nothing 0 0
                  name left nothing 0 0
                name ntype nothing 0 0
              name n_ADJ nothing 0 0
            seq nothing 0 0
              scope nothing 0 0
                seq nothing 0 0
                  = nothing 0 0
                    name nlist nothing 0 0
                    call nothing 0 0
                      name listjoin nothing 0 0
                      seq nothing 0 0
                        call nothing 0 0
                          name glomoperation nothing 0 0
                          seq nothing 0 0
                            name ctxt nothing 0 0
                            seq nothing 0 0
                              . nothing 0 0
                                name n nothing 0 0
                                name left nothing 0 0
                              seq nothing 0 0
                                name redirs nothing 0 0
                        seq nothing 0 0
                          name nlist nothing 0 0
              = nothing 0 0
                name nlist nothing 0 0
                call nothing 0 0
                  name glom nothing 0 0
                  seq nothing 0 0
                    name ctxt nothing 0 0
                    seq nothing 0 0
                      . nothing 0 0
                        name n nothing 0 0
                        name left nothing 0 0
                      seq nothing 0 0
                        name redirs nothing 0 0
                        seq nothing 0 0
                          name nlist nothing 0 0
          seq nothing 0 0
            return nothing 0 0
              name nlist nothing 0 0
typecheck tree: 
fn(){} fn(left: list of ref Listnode, right: list of ref Listnode): list of ref Listnode 0 0
  name listjoin fn(left: list of ref Listnode, right: list of ref Listnode): list of ref Listnode 0 0
  seq nothing 0 0
    vardecl list of ref Listnode 0 0
      seq nothing 0 0
    seq nothing 0 0
      for nothing 0 0
        != nothing 0 0
          name left nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          = nothing 0 0
            name l nothing 0 0
            :: nothing 0 0
              hd nothing 0 0
                name left nothing 0 0
              name l nothing 0 0
          = nothing 0 0
            name left nothing 0 0
            tl nothing 0 0
              name left nothing 0 0
      seq nothing 0 0
        for nothing 0 0
          != nothing 0 0
            name l nothing 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            = nothing 0 0
              name right nothing 0 0
              :: nothing 0 0
                hd nothing 0 0
                  name l nothing 0 0
                name right nothing 0 0
            = nothing 0 0
              name l nothing 0 0
              tl nothing 0 0
                name l nothing 0 0
        seq nothing 0 0
          return nothing 0 0
            name right nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, cmd: list of ref Listnode, redir: ref Redir): ref Sys->FD 0 0
  name pipecmd fn(ctxt: ref Context, cmd: list of ref Listnode, redir: ref Redir): ref Sys->FD 0 0
  seq nothing 0 0
    if nothing 0 0
      || nothing 0 0
        != nothing 0 0
          . nothing 0 0
            name redir nothing 0 0
            name fd2 nothing 0 0
          - nothing 0 0
            const (1) int 0 0
        & nothing 0 0
          . nothing 0 0
            name redir nothing 0 0
            name rtype nothing 0 0
          name OAPPEND nothing 0 0
      seq nothing 0 0
        call nothing 0 0
          . nothing 0 0
            name ctxt nothing 0 0
            name fail nothing 0 0
          seq nothing 0 0
            const bad redir string 0 0
            seq nothing 0 0
              const sh: bad redirection string 0 0
    seq nothing 0 0
      := nothing 0 0
        name r nothing 0 0
        * nothing 0 0
          name redir nothing 0 0
      seq nothing 0 0
        case nothing 0 0
          . nothing 0 0
            name redir nothing 0 0
            name rtype nothing 0 0
          seq nothing 0 0
            label nothing 0 0
              seq nothing 0 0
                -> nothing 0 0
                  name Sys nothing 0 0
                  name OREAD nothing 0 0
              scope nothing 0 0
                = nothing 0 0
                  . nothing 0 0
                    name r nothing 0 0
                    name rtype nothing 0 0
                  -> nothing 0 0
                    name Sys nothing 0 0
                    name OWRITE nothing 0 0
            seq nothing 0 0
              label nothing 0 0
                seq nothing 0 0
                  -> nothing 0 0
                    name Sys nothing 0 0
                    name OWRITE nothing 0 0
                scope nothing 0 0
                  = nothing 0 0
                    . nothing 0 0
                      name r nothing 0 0
                      name rtype nothing 0 0
                    -> nothing 0 0
                      name Sys nothing 0 0
                      name OREAD nothing 0 0
        seq nothing 0 0
          := nothing 0 0
            name p nothing 0 0
            array array of ref Sys->FD 0 0
              const (2) int 0 0
          seq nothing 0 0
            if nothing 0 0
              == nothing 0 0
                call nothing 0 0
                  -> nothing 0 0
                    name sys nothing 0 0
                    name pipe nothing 0 0
                  seq nothing 0 0
                    name p nothing 0 0
                - nothing 0 0
                  const (1) int 0 0
              seq nothing 0 0
                call nothing 0 0
                  . nothing 0 0
                    name ctxt nothing 0 0
                    name fail nothing 0 0
                  seq nothing 0 0
                    const no pipe string 0 0
                    seq nothing 0 0
                      call nothing 0 0
                        -> nothing 0 0
                          name sys nothing 0 0
                          name sprint nothing 0 0
                        seq nothing 0 0
                          const sh: cannot make pipe: %r string 0 0
            seq nothing 0 0
              := nothing 0 0
                name startchan nothing 0 0
                chan chan of (int, ref Expropagate) 0 0
              seq nothing 0 0
                spawn nothing 0 0
                  call nothing 0 0
                    name runasync nothing 0 0
                    seq nothing 0 0
                      name ctxt nothing 0 0
                      seq nothing 0 0
                        const (1) int 0 0
                        seq nothing 0 0
                          name cmd nothing 0 0
                          seq nothing 0 0
                            ref nothing 0 0
                              call nothing 0 0
                                name Redirlist nothing 0 0
                                seq nothing 0 0
                                  :: nothing 0 0
                              
typecheck tree: 
fn(){} fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist): list of ref Listnode 0 0
  name glomoperation fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist): list of ref Listnode 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        name n nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          name nil polymorphic type 0 0
    seq nothing 0 0
      vardecl list of ref Listnode 0 0
        seq nothing 0 0
      seq nothing 0 0
        case nothing 0 0
          . nothing 0 0
            name n nothing 0 0
            name ntype nothing 0 0
          seq nothing 0 0
            label nothing 0 0
              seq nothing 0 0
                name n_WORD nothing 0 0
              scope nothing 0 0
                = nothing 0 0
                  name nlist nothing 0 0
                  :: nothing 0 0
                    ref nothing 0 0
                      call nothing 0 0
                        name Listnode nothing 0 0
                        seq nothing 0 0
                          name nil polymorphic type 0 0
                          seq nothing 0 0
                            . nothing 0 0
                              name n nothing 0 0
                              name word nothing 0 0
                    name nil polymorphic type 0 0
            seq nothing 0 0
              label nothing 0 0
                seq nothing 0 0
                  name n_REDIR nothing 0 0
                scope nothing 0 0
                  seq nothing 0 0
                    seq nothing 0 0
                      := nothing 0 0
                        name wlist nothing 0 0
                        call nothing 0 0
                          name glob nothing 0 0
                          seq nothing 0 0
                            call nothing 0 0
                              name glom nothing 0 0
                              seq nothing 0 0
                                name ctxt nothing 0 0
                                seq nothing 0 0
                                  . nothing 0 0
                                    name n nothing 0 0
                                    name left nothing 0 0
                                  seq nothing 0 0
                                    ref nothing 0 0
                                      call nothing 0 0
                                        name Redirlist nothing 0 0
                                        seq nothing 0 0
                                          name nil polymorphic type 0 0
                                    seq nothing 0 0
                                      name nil polymorphic type 0 0
                      if nothing 0 0
                        != nothing 0 0
                          len nothing 0 0
                            name wlist nothing 0 0
                          const (1) int 0 0
                        seq nothing 0 0
                          call nothing 0 0
                            . nothing 0 0
                              name ctxt nothing 0 0
                              name fail nothing 0 0
                            seq nothing 0 0
                              const bad redir string 0 0
                              seq nothing 0 0
                                const sh: single redirection operand required string 0 0
                    if nothing 0 0
                      != nothing 0 0
                        . nothing 0 0
                          hd nothing 0 0
                            name wlist nothing 0 0
                          name cmd nothing 0 0
                        name nil polymorphic type 0 0
                      seq nothing 0 0
                        scope nothing 0 0
                          seq nothing 0 0
                            := nothing 0 0
                              name fd nothing 0 0
                              call nothing 0 0
                                name pipecmd nothing 0 0
                                seq nothing 0 0
                                  name ctxt nothing 0 0
            
typecheck tree: 
fn(){} fn(ctxt: ref Context, n: ref Node): list of ref Listnode 0 0
  name subsbuiltin fn(ctxt: ref Context, n: ref Node): list of ref Listnode 0 0
  seq nothing 0 0
    if nothing 0 0
      || nothing 0 0
        || nothing 0 0
          || nothing 0 0
            == nothing 0 0
              name n nothing 0 0
              name nil polymorphic type 0 0
            == nothing 0 0
              . nothing 0 0
                name n nothing 0 0
                name ntype nothing 0 0
              name n_SEQ nothing 0 0
          == nothing 0 0
            . nothing 0 0
              name n nothing 0 0
              name ntype nothing 0 0
            name n_PIPE nothing 0 0
        == nothing 0 0
          . nothing 0 0
            name n nothing 0 0
            name ntype nothing 0 0
          name n_NOWAIT nothing 0 0
      seq nothing 0 0
        call nothing 0 0
          . nothing 0 0
            name ctxt nothing 0 0
            name fail nothing 0 0
          seq nothing 0 0
            const bad $ arg string 0 0
            seq nothing 0 0
              const sh: invalid argument to ${} operator string 0 0
    seq nothing 0 0
      := nothing 0 0
        name r nothing 0 0
        ref nothing 0 0
          name Redirlist nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name cmd nothing 0 0
          call nothing 0 0
            name glob nothing 0 0
            seq nothing 0 0
              call nothing 0 0
                name glom nothing 0 0
                seq nothing 0 0
                  name ctxt nothing 0 0
                  seq nothing 0 0
                    name n nothing 0 0
                    seq nothing 0 0
                      name r nothing 0 0
                      seq nothing 0 0
                        name nil polymorphic type 0 0
        seq nothing 0 0
          if nothing 0 0
            != nothing 0 0
              . nothing 0 0
                name r nothing 0 0
                name r nothing 0 0
              name nil polymorphic type 0 0
            seq nothing 0 0
              call nothing 0 0
                . nothing 0 0
                  name ctxt nothing 0 0
                  name fail nothing 0 0
                seq nothing 0 0
                  const bad $ arg string 0 0
                  seq nothing 0 0
                    const sh: redirection not allowed in substitution string 0 0
          seq nothing 0 0
            = nothing 0 0
              name r nothing 0 0
              name nil polymorphic type 0 0
            seq nothing 0 0
              if nothing 0 0
                || nothing 0 0
                  || nothing 0 0
                    == nothing 0 0
                      name cmd nothing 0 0
                      name nil polymorphic type 0 0
                    == nothing 0 0
                      . nothing 0 0
                        hd nothing 0 0
                          name cmd nothing 0 0
                        name word nothing 0 0
                      name nil polymorphic type 0 0
                  != nothing 0 0
                    . nothing 0 0
                      hd nothing 0 0
                        name cmd nothing 0 0
                      name cmd nothing 0 0
                    name nil polymorphic type 0 0
                seq nothing 0 0
                  call nothing 0 0
                    . nothing 0 0
                      name ctxt nothing 0 0
                      name fail nothing 0 0
                    seq nothing 0 0
                      const bad $ arg string 0 0
                      seq nothing 0 0
                        const sh: bad builtin name string 0 0
              seq nothing 0 0
                := nothing 0 0
                  tuple nothing 0 0
                    seq nothing 0 0
                      name nil polymorphic type 0 0
                      seq nothing 0 0
                        name bmods nothing 0 0
                  call nothing 0 0
                    name findbuiltin nothing 0 0
                    seq nothing 0 0
                      . nothing 0 0
                        . nothi
typecheck tree: 
fn(){} fn(nil: ref Context, fd: ref Sys->FD, seps: string): list of ref Listnode 0 0
  name getbq fn(nil: ref Context, fd: ref Sys->FD, seps: string): list of ref Listnode 0 0
  seq nothing 0 0
    := nothing 0 0
      name buf nothing 0 0
      array array of byte 0 0
        -> nothing 0 0
          name Sys nothing 0 0
          name ATOMICIO nothing 0 0
    seq nothing 0 0
      := nothing 0 0
        name buflen nothing 0 0
        const (0) int 0 0
      seq nothing 0 0
        for nothing 0 0
          > nothing 0 0
            := nothing 0 0
              name n nothing 0 0
              call nothing 0 0
                -> nothing 0 0
                  name sys nothing 0 0
                  name read nothing 0 0
                seq nothing 0 0
                  name fd nothing 0 0
                  seq nothing 0 0
                    slice nothing 0 0
                      name buf nothing 0 0
                      seq nothing 0 0
                        name buflen nothing 0 0
                        nothing nothing 0 0
                    seq nothing 0 0
                      - nothing 0 0
                        len nothing 0 0
                          name buf nothing 0 0
                        name buflen nothing 0 0
            const (0) int 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                += nothing 0 0
                  name buflen nothing 0 0
                  name n nothing 0 0
                seq nothing 0 0
                  if nothing 0 0
                    == nothing 0 0
                      name buflen nothing 0 0
                      len nothing 0 0
                        name buf nothing 0 0
                    seq nothing 0 0
                      scope nothing 0 0
                        seq nothing 0 0
                          := nothing 0 0
                            name nbuf nothing 0 0
                            array array of byte 0 0
                              * nothing 0 0
                                name buflen nothing 0 0
                                const (2) int 0 0
                          seq nothing 0 0
                            = nothing 0 0
                              slice nothing 0 0
                                name nbuf nothing 0 0
                                seq nothing 0 0
                                  const (0) int 0 0
                                  nothing nothing 0 0
                              slice nothing 0 0
                                name buf nothing 0 0
                                seq nothing 0 0
                                  const (0) int 0 0
                                  nothing nothing 0 0
                            seq nothing 0 0
                              = nothing 0 0
                                name buf nothing 0 0
                                name nbuf nothing 0 0
        seq nothing 0 0
          vardecl list of string 0 0
            seq nothing 0 0
          seq nothing 0 0
            if nothing 0 0
              != nothing 0 0
                name seps nothing 0 0
                name nil polymorphic type 0 0
              seq nothing 0 0
                = nothing 0 0
                  tuple nothing 0 0
                    seq nothing 0 0
                      name nil polymorphic type 0 0
                      seq nothing 0 0
                        name l nothing 0 0
                  call nothing 0 0
                    -> nothing 0 0
                      name sys nothing 0 0
                      name tokenize nothing 0 0
                    seq nothing 0 0
                      cast string 0 0
                        slice nothing 0 0
                          name buf nothing 0 0
                          seq nothing 0 0
                            const (0) int 0 0
                            name buflen nothing 0 0
                      seq nothing 0 0
                        name seps nothing 0 0
                = nothing 0 0
                  name l nothing 0 0
                  :: nothing 0 0
                    
typecheck tree: 
fn(){} fn(ctxt: ref Context, cmd: list of ref Listnode, seps: string): (list of ref Listnode, string) 0 0
  name bq fn(ctxt: ref Context, cmd: list of ref Listnode, seps: string): (list of ref Listnode, string) 0 0
  seq nothing 0 0
    := nothing 0 0
      name fds nothing 0 0
      array array of ref Sys->FD 0 0
        const (2) int 0 0
    seq nothing 0 0
      if nothing 0 0
        == nothing 0 0
          call nothing 0 0
            -> nothing 0 0
              name sys nothing 0 0
              name pipe nothing 0 0
            seq nothing 0 0
              name fds nothing 0 0
          - nothing 0 0
            const (1) int 0 0
        seq nothing 0 0
          call nothing 0 0
            . nothing 0 0
              name ctxt nothing 0 0
              name fail nothing 0 0
            seq nothing 0 0
              const no pipe string 0 0
              seq nothing 0 0
                call nothing 0 0
                  -> nothing 0 0
                    name sys nothing 0 0
                    name sprint nothing 0 0
                  seq nothing 0 0
                    const sh: cannot make pipe: %r string 0 0
      seq nothing 0 0
        := nothing 0 0
          name r nothing 0 0
          call nothing 0 0
            name rdir nothing 0 0
            seq nothing 0 0
              index nothing 0 0
                name fds nothing 0 0
                const (1) int 0 0
        seq nothing 0 0
          = nothing 0 0
            index nothing 0 0
              name fds nothing 0 0
              const (1) int 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            := nothing 0 0
              name startchan nothing 0 0
              chan chan of (int, ref Expropagate) 0 0
            seq nothing 0 0
              spawn nothing 0 0
                call nothing 0 0
                  name runasync nothing 0 0
                  seq nothing 0 0
                    name ctxt nothing 0 0
                    seq nothing 0 0
                      const (0) int 0 0
                      seq nothing 0 0
                        name cmd nothing 0 0
                        seq nothing 0 0
                          name r nothing 0 0
                          seq nothing 0 0
                            name startchan nothing 0 0
              seq nothing 0 0
                := nothing 0 0
                  tuple nothing 0 0
                    seq nothing 0 0
                      name exepid nothing 0 0
                      seq nothing 0 0
                        name exprop nothing 0 0
                  <- nothing 0 0
                    name startchan nothing 0 0
                seq nothing 0 0
                  = nothing 0 0
                    name r nothing 0 0
                    name nil polymorphic type 0 0
                  seq nothing 0 0
                    := nothing 0 0
                      name bqlist nothing 0 0
                      call nothing 0 0
                        name getbq nothing 0 0
                        seq nothing 0 0
                          name ctxt nothing 0 0
                          seq nothing 0 0
                            index nothing 0 0
                              name fds nothing 0 0
                              const (0) int 0 0
                            seq nothing 0 0
                              name seps nothing 0 0
                    seq nothing 0 0
                      call nothing 0 0
                        name waitfor nothing 0 0
                        seq nothing 0 0
                          name ctxt nothing 0 0
                          seq nothing 0 0
                            :: nothing 0 0
                              name exepid nothing 0 0
                              name nil polymorphic type 0 0
                      seq nothing 0 0
                        if nothing 0 0
                          != nothing 0 0
                            . nothing 0 0
                              name exprop nothing 0 0
                              name name nothing 0 0
                            name nil polymorphic ty
typecheck tree: 
fn(){} fn(fd: ref Sys->FD): ref Redirlist 0 0
  name rdir fn(fd: ref Sys->FD): ref Redirlist 0 0
  seq nothing 0 0
    return nothing 0 0
      ref nothing 0 0
        call nothing 0 0
          name Redirlist nothing 0 0
          seq nothing 0 0
            :: nothing 0 0
              call nothing 0 0
                name Redirword nothing 0 0
                seq nothing 0 0
                  name fd nothing 0 0
                  seq nothing 0 0
                    name nil polymorphic type 0 0
                    seq nothing 0 0
                      call nothing 0 0
                        name Redir nothing 0 0
                        seq nothing 0 0
                          -> nothing 0 0
                            name Sys nothing 0 0
                            name OWRITE nothing 0 0
                          seq nothing 0 0
                            const (1) int 0 0
                            seq nothing 0 0
                              - nothing 0 0
                                const (1) int 0 0
              name nil polymorphic type 0 0
typecheck tree: 
fn(){} fn(p1: ref Listnode, p2: ref Listnode): ref Listnode 0 0
  name concatwords fn(p1: ref Listnode, p2: ref Listnode): ref Listnode 0 0
  seq nothing 0 0
    if nothing 0 0
      && nothing 0 0
        == nothing 0 0
          . nothing 0 0
            name p1 nothing 0 0
            name word nothing 0 0
          name nil polymorphic type 0 0
        != nothing 0 0
          . nothing 0 0
            name p1 nothing 0 0
            name cmd nothing 0 0
          name nil polymorphic type 0 0
      seq nothing 0 0
        = nothing 0 0
          . nothing 0 0
            name p1 nothing 0 0
            name word nothing 0 0
          call nothing 0 0
            name cmd2string nothing 0 0
            seq nothing 0 0
              . nothing 0 0
                name p1 nothing 0 0
                name cmd nothing 0 0
    seq nothing 0 0
      if nothing 0 0
        && nothing 0 0
          == nothing 0 0
            . nothing 0 0
              name p2 nothing 0 0
              name word nothing 0 0
            name nil polymorphic type 0 0
          != nothing 0 0
            . nothing 0 0
              name p2 nothing 0 0
              name cmd nothing 0 0
            name nil polymorphic type 0 0
        seq nothing 0 0
          = nothing 0 0
            . nothing 0 0
              name p2 nothing 0 0
              name word nothing 0 0
            call nothing 0 0
              name cmd2string nothing 0 0
              seq nothing 0 0
                . nothing 0 0
                  name p2 nothing 0 0
                  name cmd nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          ref nothing 0 0
            call nothing 0 0
              name Listnode nothing 0 0
              seq nothing 0 0
                name nil polymorphic type 0 0
                seq nothing 0 0
                  + nothing 0 0
                    . nothing 0 0
                      name p1 nothing 0 0
                      name word nothing 0 0
                    . nothing 0 0
                      name p2 nothing 0 0
                      name word nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, nl1: list of ref Listnode, nl2: list of ref Listnode): list of ref Listnode 0 0
  name concat fn(ctxt: ref Context, nl1: list of ref Listnode, nl2: list of ref Listnode): list of ref Listnode 0 0
  seq nothing 0 0
    if nothing 0 0
      || nothing 0 0
        == nothing 0 0
          name nl1 nothing 0 0
          name nil polymorphic type 0 0
        == nothing 0 0
          name nl2 nothing 0 0
          name nil polymorphic type 0 0
      seq nothing 0 0
        scope nothing 0 0
          seq nothing 0 0
            if nothing 0 0
              && nothing 0 0
                == nothing 0 0
                  name nl1 nothing 0 0
                  name nil polymorphic type 0 0
                == nothing 0 0
                  name nl2 nothing 0 0
                  name nil polymorphic type 0 0
              seq nothing 0 0
                return nothing 0 0
                  name nil polymorphic type 0 0
            seq nothing 0 0
              call nothing 0 0
                . nothing 0 0
                  name ctxt nothing 0 0
                  name fail nothing 0 0
                seq nothing 0 0
                  const bad concatenation string 0 0
                  seq nothing 0 0
                    const sh: null list in concatenation string 0 0
    seq nothing 0 0
      vardecl list of ref Listnode 0 0
        seq nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          || nothing 0 0
            == nothing 0 0
              tl nothing 0 0
                name nl1 nothing 0 0
              name nil polymorphic type 0 0
            == nothing 0 0
              tl nothing 0 0
                name nl2 nothing 0 0
              name nil polymorphic type 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                := nothing 0 0
                  name p1 nothing 0 0
                  name nl1 nothing 0 0
                seq nothing 0 0
                  for nothing 0 0
                    != nothing 0 0
                      name p1 nothing 0 0
                      name nil polymorphic type 0 0
                    seq nothing 0 0
                      seq nothing 0 0
                        := nothing 0 0
                          name p2 nothing 0 0
                          name nl2 nothing 0 0
                        for nothing 0 0
                          != nothing 0 0
                            name p2 nothing 0 0
                            name nil polymorphic type 0 0
                          seq nothing 0 0
                            = nothing 0 0
                              name ret nothing 0 0
                              :: nothing 0 0
                                call nothing 0 0
                                  name concatwords nothing 0 0
                                  seq nothing 0 0
                                    hd nothing 0 0
                                      name p1 nothing 0 0
                                    seq nothing 0 0
                                      hd nothing 0 0
                                        name p2 nothing 0 0
                                name ret nothing 0 0
                            = nothing 0 0
                              name p2 nothing 0 0
                              tl nothing 0 0
                                name p2 nothing 0 0
                      = nothing 0 0
                        name p1 nothing 0 0
                        tl nothing 0 0
                          name p1 nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  != nothing 0 0
                    len nothing 0 0
                      name nl1 nothing 0 0
                    len nothing 0 0
                      name nl2 nothing 0 0
                  seq nothing 0 0
                    call nothing 0 0
                      . nothing 0 0
                        name ctxt nothing 0 0
                        name fail nothing 0 0
                      seq nothing 0 0
                        const bad con
typecheck tree: 
fn(){} fn(ctxt: ref Context, copyenv: int, argv: list of ref Listnode, redirs: ref Redirlist, startchan: chan of (int, ref Expropagate)) 0 0
  name runasync fn(ctxt: ref Context, copyenv: int, argv: list of ref Listnode, redirs: ref Redirlist, startchan: chan of (int, ref Expropagate)) 0 0
  seq nothing 0 0
    vardecl string 0 0
      seq nothing 0 0
    seq nothing 0 0
      := nothing 0 0
        name pid nothing 0 0
        call nothing 0 0
          -> nothing 0 0
            name sys nothing 0 0
            name pctl nothing 0 0
          seq nothing 0 0
            -> nothing 0 0
              name sys nothing 0 0
              name FORKFD nothing 0 0
            seq nothing 0 0
              name nil polymorphic type 0 0
      seq nothing 0 0
        if nothing 0 0
          name DEBUG nothing 0 0
          seq nothing 0 0
            call nothing 0 0
              name debug nothing 0 0
              seq nothing 0 0
                call nothing 0 0
                  name sprint nothing 0 0
                  seq nothing 0 0
                    const in async (len redirs: %d) string 0 0
                    seq nothing 0 0
                      len nothing 0 0
                        . nothing 0 0
                          name redirs nothing 0 0
                          name r nothing 0 0
        seq nothing 0 0
          = nothing 0 0
            name ctxt nothing 0 0
            call nothing 0 0
              . nothing 0 0
                name ctxt nothing 0 0
                name copy nothing 0 0
              seq nothing 0 0
                name copyenv nothing 0 0
          seq nothing 0 0
            := nothing 0 0
              name exprop nothing 0 0
              ref nothing 0 0
                name Expropagate nothing 0 0
            seq nothing 0 0
              exstat nothing 0 0
                scope nothing 0 0
                  seq nothing 0 0
                    := nothing 0 0
                      name newfdl nothing 0 0
                      call nothing 0 0
                        name doredirs nothing 0 0
                        seq nothing 0 0
                          name ctxt nothing 0 0
                          seq nothing 0 0
                            name redirs nothing 0 0
                    seq nothing 0 0
                      = nothing 0 0
                        name redirs nothing 0 0
                        name nil polymorphic type 0 0
                      seq nothing 0 0
                        if nothing 0 0
                          != nothing 0 0
                            name newfdl nothing 0 0
                            name nil polymorphic type 0 0
                          seq nothing 0 0
                            call nothing 0 0
                              -> nothing 0 0
                                name sys nothing 0 0
                                name pctl nothing 0 0
                              seq nothing 0 0
                                -> nothing 0 0
                                  name Sys nothing 0 0
                                  name NEWFD nothing 0 0
                                seq nothing 0 0
                                  name newfdl nothing 0 0
                        seq nothing 0 0
                          = nothing 0 0
                            . nothing 0 0
                              name ctxt nothing 0 0
                              name waitfd nothing 0 0
                            call nothing 0 0
                              name waitfd nothing 0 0
                          seq nothing 0 0
                            <-= nothing 0 0
                              name startchan nothing 0 0
                              tuple nothing 0 0
                                seq nothing 0 0
                                  name pid nothing 0 0
                                  seq nothing 0 0
                                    name exprop nothing 0 0
                            seq nothing 0 0
                              = nothing 0 0
                                name startchan nothing 0 0
             
typecheck tree: 
fn(){} fn(ctxt: ref Context, argv: list of ref Listnode, redirs: ref Redirlist, last: int): string 0 0
  name runsync fn(ctxt: ref Context, argv: list of ref Listnode, redirs: ref Redirlist, last: int): string 0 0
  seq nothing 0 0
    if nothing 0 0
      name DEBUG nothing 0 0
      seq nothing 0 0
        call nothing 0 0
          name debug nothing 0 0
          seq nothing 0 0
            call nothing 0 0
              -> nothing 0 0
                name sys nothing 0 0
                name sprint nothing 0 0
              seq nothing 0 0
                const in sync (len redirs: %d; last: %d) string 0 0
                seq nothing 0 0
                  len nothing 0 0
                    . nothing 0 0
                      name redirs nothing 0 0
                      name r nothing 0 0
                  seq nothing 0 0
                    name last nothing 0 0
    seq nothing 0 0
      if nothing 0 0
        && nothing 0 0
          != nothing 0 0
            . nothing 0 0
              name redirs nothing 0 0
              name r nothing 0 0
            name nil polymorphic type 0 0
          ! nothing 0 0
            name last nothing 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              := nothing 0 0
                name startchan nothing 0 0
                chan chan of (int, ref Expropagate) 0 0
              seq nothing 0 0
                spawn nothing 0 0
                  call nothing 0 0
                    name runasync nothing 0 0
                    seq nothing 0 0
                      name ctxt nothing 0 0
                      seq nothing 0 0
                        const (0) int 0 0
                        seq nothing 0 0
                          name argv nothing 0 0
                          seq nothing 0 0
                            name redirs nothing 0 0
                            seq nothing 0 0
                              name startchan nothing 0 0
                seq nothing 0 0
                  := nothing 0 0
                    tuple nothing 0 0
                      seq nothing 0 0
                        name pid nothing 0 0
                        seq nothing 0 0
                          name exprop nothing 0 0
                    <- nothing 0 0
                      name startchan nothing 0 0
                  seq nothing 0 0
                    = nothing 0 0
                      name redirs nothing 0 0
                      name nil polymorphic type 0 0
                    seq nothing 0 0
                      := nothing 0 0
                        name r nothing 0 0
                        call nothing 0 0
                          name waitfor nothing 0 0
                          seq nothing 0 0
                            name ctxt nothing 0 0
                            seq nothing 0 0
                              :: nothing 0 0
                                name pid nothing 0 0
                                name nil polymorphic type 0 0
                      seq nothing 0 0
                        if nothing 0 0
                          != nothing 0 0
                            . nothing 0 0
                              name exprop nothing 0 0
                              name name nothing 0 0
                            name nil polymorphic type 0 0
                          seq nothing 0 0
                            raise nothing 0 0
                              . nothing 0 0
                                name exprop nothing 0 0
                                name name nothing 0 0
                        seq nothing 0 0
                          return nothing 0 0
                            name r nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              := nothing 0 0
                name newfdl nothing 0 0
                call nothing 0 0
                  name doredirs nothing 0 0
                  seq nothing 0 0
                    name ctxt nothing 0 0
                    seq nothing 0 0
                      name redirs nothing 0 0
              seq nothing 0 0
            
typecheck tree: 
fn(){} fn(p: string): int 0 0
  name absolute fn(p: string): int 0 0
  seq nothing 0 0
    if nothing 0 0
      < nothing 0 0
        len nothing 0 0
          name p nothing 0 0
        const (2) int 0 0
      seq nothing 0 0
        return nothing 0 0
          const (0) int 0 0
    seq nothing 0 0
      if nothing 0 0
        || nothing 0 0
          == nothing 0 0
            index nothing 0 0
              name p nothing 0 0
              const (0) int 0 0
            const (47) int 0 0
          == nothing 0 0
            index nothing 0 0
              name p nothing 0 0
              const (0) int 0 0
            const (35) int 0 0
        seq nothing 0 0
          return nothing 0 0
            const (1) int 0 0
      seq nothing 0 0
        if nothing 0 0
          || nothing 0 0
            < nothing 0 0
              len nothing 0 0
                name p nothing 0 0
              const (3) int 0 0
            != nothing 0 0
              index nothing 0 0
                name p nothing 0 0
                const (0) int 0 0
              const (46) int 0 0
          seq nothing 0 0
            return nothing 0 0
              const (0) int 0 0
        seq nothing 0 0
          if nothing 0 0
            == nothing 0 0
              index nothing 0 0
                name p nothing 0 0
                const (1) int 0 0
              const (47) int 0 0
            seq nothing 0 0
              return nothing 0 0
                const (1) int 0 0
          seq nothing 0 0
            if nothing 0 0
              && nothing 0 0
                == nothing 0 0
                  index nothing 0 0
                    name p nothing 0 0
                    const (1) int 0 0
                  const (46) int 0 0
                == nothing 0 0
                  index nothing 0 0
                    name p nothing 0 0
                    const (2) int 0 0
                  const (47) int 0 0
              seq nothing 0 0
                return nothing 0 0
                  const (1) int 0 0
            seq nothing 0 0
              return nothing 0 0
                const (0) int 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, args: list of ref Listnode, last: int): string 0 0
  name runexternal fn(ctxt: ref Context, args: list of ref Listnode, last: int): string 0 0
  seq nothing 0 0
    := nothing 0 0
      name progname nothing 0 0
      . nothing 0 0
        hd nothing 0 0
          name args nothing 0 0
        name word nothing 0 0
    seq nothing 0 0
      := nothing 0 0
        name disfile nothing 0 0
        const (0) int 0 0
      seq nothing 0 0
        if nothing 0 0
          && nothing 0 0
            >= nothing 0 0
              len nothing 0 0
                name progname nothing 0 0
              const (4) int 0 0
            == nothing 0 0
              slice nothing 0 0
                name progname nothing 0 0
                seq nothing 0 0
                  - nothing 0 0
                    len nothing 0 0
                      name progname nothing 0 0
                    const (4) int 0 0
                  nothing nothing 0 0
              const .dis string 0 0
          seq nothing 0 0
            = nothing 0 0
              name disfile nothing 0 0
              const (1) int 0 0
        seq nothing 0 0
          vardecl list of string 0 0
            seq nothing 0 0
          seq nothing 0 0
            if nothing 0 0
              call nothing 0 0
                name absolute nothing 0 0
                seq nothing 0 0
                  name progname nothing 0 0
              seq nothing 0 0
                = nothing 0 0
                  name pathlist nothing 0 0
                  :: nothing 0 0
                    const  string 0 0
                    name nil polymorphic type 0 0
                if nothing 0 0
                  != nothing 0 0
                    := nothing 0 0
                      name pl nothing 0 0
                      call nothing 0 0
                        . nothing 0 0
                          name ctxt nothing 0 0
                          name get nothing 0 0
                        seq nothing 0 0
                          const path string 0 0
                    name nil polymorphic type 0 0
                  seq nothing 0 0
                    = nothing 0 0
                      name pathlist nothing 0 0
                      call nothing 0 0
                        name list2stringlist nothing 0 0
                        seq nothing 0 0
                          name pl nothing 0 0
                    = nothing 0 0
                      name pathlist nothing 0 0
                      :: nothing 0 0
                        const /dis string 0 0
                        :: nothing 0 0
                          const . string 0 0
                          name nil polymorphic type 0 0
            seq nothing 0 0
              := nothing 0 0
                name err nothing 0 0
                const  string 0 0
              seq nothing 0 0
                do nothing 0 0
                  && nothing 0 0
                    != nothing 0 0
                      name pathlist nothing 0 0
                      name nil polymorphic type 0 0
                    call nothing 0 0
                      name nonexistent nothing 0 0
                      seq nothing 0 0
                        name err nothing 0 0
                  scope nothing 0 0
                    seq nothing 0 0
                      vardecl string 0 0
                        seq nothing 0 0
                      seq nothing 0 0
                        if nothing 0 0
                          != nothing 0 0
                            hd nothing 0 0
                              name pathlist nothing 0 0
                            const  string 0 0
                          seq nothing 0 0
                            = nothing 0 0
                              name path nothing 0 0
                              + nothing 0 0
                                + nothing 0 0
                                  hd nothing 0 0
                                    name pathlist nothing 0 0
                                  const / string 0 0
                                name progname nothing 0 0
 
typecheck tree: 
fn(){} fn(e: string): string 0 0
  name failurestatus fn(e: string): string 0 0
  seq nothing 0 0
    := nothing 0 0
      name s nothing 0 0
      slice nothing 0 0
        name e nothing 0 0
        seq nothing 0 0
          const (5) int 0 0
          nothing nothing 0 0
    seq nothing 0 0
      for nothing 0 0
        && nothing 0 0
          != nothing 0 0
            name s nothing 0 0
            name nil polymorphic type 0 0
          || nothing 0 0
            == nothing 0 0
              index nothing 0 0
                name s nothing 0 0
                const (0) int 0 0
              const (32) int 0 0
            == nothing 0 0
              index nothing 0 0
                name s nothing 0 0
                const (0) int 0 0
              const (9) int 0 0
        seq nothing 0 0
          = nothing 0 0
            name s nothing 0 0
            slice nothing 0 0
              name s nothing 0 0
              seq nothing 0 0
                const (1) int 0 0
                nothing nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          != nothing 0 0
            name s nothing 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            return nothing 0 0
              name s nothing 0 0
        seq nothing 0 0
          return nothing 0 0
            const failed string 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, fd: ref Sys->FD, path: string, argv: list of ref Listnode, last: int): string 0 0
  name runhashpling fn(ctxt: ref Context, fd: ref Sys->FD, path: string, argv: list of ref Listnode, last: int): string 0 0
  seq nothing 0 0
    := nothing 0 0
      name header nothing 0 0
      array array of byte 0 0
        const (1024) int 0 0
    seq nothing 0 0
      := nothing 0 0
        name n nothing 0 0
        call nothing 0 0
          -> nothing 0 0
            name sys nothing 0 0
            name read nothing 0 0
          seq nothing 0 0
            name fd nothing 0 0
            seq nothing 0 0
              name header nothing 0 0
              seq nothing 0 0
                len nothing 0 0
                  name header nothing 0 0
      seq nothing 0 0
        seq nothing 0 0
          := nothing 0 0
            name i nothing 0 0
            const (0) int 0 0
          for nothing 0 0
            < nothing 0 0
              name i nothing 0 0
              name n nothing 0 0
            seq nothing 0 0
              if nothing 0 0
                == nothing 0 0
                  index nothing 0 0
                    name header nothing 0 0
                    name i nothing 0 0
                  cast byte 0 0
                    const (10) int 0 0
                seq nothing 0 0
                  break nothing 0 0
              ++ nothing 0 0
                name i nothing 0 0
        seq nothing 0 0
          if nothing 0 0
            || nothing 0 0
              || nothing 0 0
                || nothing 0 0
                  == nothing 0 0
                    name i nothing 0 0
                    name n nothing 0 0
                  < nothing 0 0
                    name i nothing 0 0
                    const (3) int 0 0
                != nothing 0 0
                  index nothing 0 0
                    name header nothing 0 0
                    const (0) int 0 0
                  cast byte 0 0
                    const (35) int 0 0
              != nothing 0 0
                index nothing 0 0
                  name header nothing 0 0
                  const (1) int 0 0
                cast byte 0 0
                  const (33) int 0 0
            seq nothing 0 0
              scope nothing 0 0
                seq nothing 0 0
                  call nothing 0 0
                    name diagnostic nothing 0 0
                    seq nothing 0 0
                      name ctxt nothing 0 0
                      seq nothing 0 0
                        + nothing 0 0
                          const bad script header on  string 0 0
                          name path nothing 0 0
                  seq nothing 0 0
                    return nothing 0 0
                      const bad header string 0 0
          seq nothing 0 0
            := nothing 0 0
              tuple nothing 0 0
                seq nothing 0 0
                  name nil polymorphic type 0 0
                  seq nothing 0 0
                    name args nothing 0 0
              call nothing 0 0
                -> nothing 0 0
                  name sys nothing 0 0
                  name tokenize nothing 0 0
                seq nothing 0 0
                  cast string 0 0
                    slice nothing 0 0
                      name header nothing 0 0
                      seq nothing 0 0
                        const (2) int 0 0
                        name i nothing 0 0
                  seq nothing 0 0
                    const  	 string 0 0
            seq nothing 0 0
              if nothing 0 0
                == nothing 0 0
                  name args nothing 0 0
                  name nil polymorphic type 0 0
                seq nothing 0 0
                  scope nothing 0 0
                    seq nothing 0 0
                      call nothing 0 0
                        name diagnostic nothing 0 0
                        seq nothing 0 0
                          name ctxt nothing 0 0
                          seq nothing 0 0
                            + nothing 0 0
                              con
typecheck tree: 
fn(){} fn(ctxt: ref Context, args: list of ref Listnode, last: int): string 0 0
  name runblock fn(ctxt: ref Context, args: list of ref Listnode, last: int): string 0 0
  seq nothing 0 0
    := nothing 0 0
      name cmd nothing 0 0
      . nothing 0 0
        hd nothing 0 0
          name args nothing 0 0
        name cmd nothing 0 0
    seq nothing 0 0
      if nothing 0 0
        == nothing 0 0
          name cmd nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              := nothing 0 0
                name lex nothing 0 0
                call nothing 0 0
                  . nothing 0 0
                    name YYLEX nothing 0 0
                    name initstring nothing 0 0
                  seq nothing 0 0
                    . nothing 0 0
                      hd nothing 0 0
                        name args nothing 0 0
                      name word nothing 0 0
              seq nothing 0 0
                vardecl string 0 0
                  seq nothing 0 0
                seq nothing 0 0
                  = nothing 0 0
                    tuple nothing 0 0
                      seq nothing 0 0
                        name cmd nothing 0 0
                        seq nothing 0 0
                          name err nothing 0 0
                    call nothing 0 0
                      name doparse nothing 0 0
                      seq nothing 0 0
                        name lex nothing 0 0
                        seq nothing 0 0
                          const  string 0 0
                          seq nothing 0 0
                            const (0) int 0 0
                  seq nothing 0 0
                    if nothing 0 0
                      == nothing 0 0
                        name cmd nothing 0 0
                        name nil polymorphic type 0 0
                      seq nothing 0 0
                        call nothing 0 0
                          . nothing 0 0
                            name ctxt nothing 0 0
                            name fail nothing 0 0
                          seq nothing 0 0
                            const parse error string 0 0
                            seq nothing 0 0
                              + nothing 0 0
                                const sh:  string 0 0
                                name err nothing 0 0
                    seq nothing 0 0
                      = nothing 0 0
                        . nothing 0 0
                          hd nothing 0 0
                            name args nothing 0 0
                          name cmd nothing 0 0
                        name cmd nothing 0 0
      seq nothing 0 0
        call nothing 0 0
          . nothing 0 0
            name ctxt nothing 0 0
            name push nothing 0 0
        seq nothing 0 0
          exstat nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                call nothing 0 0
                  . nothing 0 0
                    name ctxt nothing 0 0
                    name setlocal nothing 0 0
                  seq nothing 0 0
                    const 0 string 0 0
                    seq nothing 0 0
                      :: nothing 0 0
                        hd nothing 0 0
                          name args nothing 0 0
                        name nil polymorphic type 0 0
                seq nothing 0 0
                  call nothing 0 0
                    . nothing 0 0
                      name ctxt nothing 0 0
                      name setlocal nothing 0 0
                    seq nothing 0 0
                      const * string 0 0
                      seq nothing 0 0
                        tl nothing 0 0
                          name args nothing 0 0
                  seq nothing 0 0
                    if nothing 0 0
                      && nothing 0 0
                        != nothing 0 0
                          name cmd nothing 0 0
                          name nil polymorphic type 0 0
                        == nothing 0 0
                          . no
typecheck tree: 
fn(){} fn(ctxt: ref Context, args: list of ref Listnode, lseq: int): (int, string) 0 0
  name trybuiltin fn(ctxt: ref Context, args: list of ref Listnode, lseq: int): (int, string) 0 0
  seq nothing 0 0
    := nothing 0 0
      tuple nothing 0 0
        seq nothing 0 0
          name nil polymorphic type 0 0
          seq nothing 0 0
            name bmods nothing 0 0
      call nothing 0 0
        name findbuiltin nothing 0 0
        seq nothing 0 0
          . nothing 0 0
            . nothing 0 0
              name ctxt nothing 0 0
              name env nothing 0 0
            name builtins nothing 0 0
          seq nothing 0 0
            . nothing 0 0
              hd nothing 0 0
                name args nothing 0 0
              name word nothing 0 0
    seq nothing 0 0
      if nothing 0 0
        == nothing 0 0
          name bmods nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          return nothing 0 0
            tuple nothing 0 0
              seq nothing 0 0
                const (0) int 0 0
                seq nothing 0 0
                  name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          tuple nothing 0 0
            seq nothing 0 0
              const (1) int 0 0
              seq nothing 0 0
                call nothing 0 0
                  -> nothing 0 0
                    hd nothing 0 0
                      name bmods nothing 0 0
                    name runbuiltin nothing 0 0
                  seq nothing 0 0
                    name ctxt nothing 0 0
                    seq nothing 0 0
                      name myself nothing 0 0
                      seq nothing 0 0
                        name args nothing 0 0
                        seq nothing 0 0
                          name lseq nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context): string 0 0
  name keepfdstr fn(ctxt: ref Context): string 0 0
  seq nothing 0 0
    := nothing 0 0
      name s nothing 0 0
      const  string 0 0
    seq nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name f nothing 0 0
          . nothing 0 0
            name ctxt nothing 0 0
            name keepfds nothing 0 0
        for nothing 0 0
          != nothing 0 0
            name f nothing 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                += nothing 0 0
                  name s nothing 0 0
                  cast string 0 0
                    hd nothing 0 0
                      name f nothing 0 0
                seq nothing 0 0
                  if nothing 0 0
                    != nothing 0 0
                      tl nothing 0 0
                        name f nothing 0 0
                      name nil polymorphic type 0 0
                    seq nothing 0 0
                      += nothing 0 0
                        name s nothing 0 0
                        const , string 0 0
            = nothing 0 0
              name f nothing 0 0
              tl nothing 0 0
                name f nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          name s nothing 0 0
typecheck tree: 
fn(){} fn(mod: Command, drawcontext: ref Draw->Context, argv: list of string, startchan: chan of int, keepfds: list of int) 0 0
  name externalexec fn(mod: Command, drawcontext: ref Draw->Context, argv: list of string, startchan: chan of int, keepfds: list of int) 0 0
  seq nothing 0 0
    if nothing 0 0
      name DEBUG nothing 0 0
      seq nothing 0 0
        call nothing 0 0
          name debug nothing 0 0
          seq nothing 0 0
            call nothing 0 0
              name sprint nothing 0 0
              seq nothing 0 0
                const externalexec(%s,... [%d args]) string 0 0
                seq nothing 0 0
                  hd nothing 0 0
                    name argv nothing 0 0
                  seq nothing 0 0
                    len nothing 0 0
                      name argv nothing 0 0
    seq nothing 0 0
      call nothing 0 0
        -> nothing 0 0
          name sys nothing 0 0
          name pctl nothing 0 0
        seq nothing 0 0
          -> nothing 0 0
            name Sys nothing 0 0
            name NEWFD nothing 0 0
          seq nothing 0 0
            name keepfds nothing 0 0
      seq nothing 0 0
        <-= nothing 0 0
          name startchan nothing 0 0
          call nothing 0 0
            -> nothing 0 0
              name sys nothing 0 0
              name pctl nothing 0 0
            seq nothing 0 0
              const (0) int 0 0
              seq nothing 0 0
                name nil polymorphic type 0 0
        seq nothing 0 0
          exstat nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                call nothing 0 0
                  -> nothing 0 0
                    name mod nothing 0 0
                    name init nothing 0 0
                  seq nothing 0 0
                    name drawcontext nothing 0 0
                    seq nothing 0 0
                      name argv nothing 0 0
            except nothing 0 0
              seq nothing 0 0
                label nothing 0 0
                  seq nothing 0 0
                    name EPIPE nothing 0 0
                  scope nothing 0 0
                    raise nothing 0 0
                      + nothing 0 0
                        const fail: string 0 0
                        name EPIPE nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, fd1: int, fd2: int): int 0 0
  name dup fn(ctxt: ref Context, fd1: int, fd2: int): int 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        . nothing 0 0
          . nothing 0 0
            name ctxt nothing 0 0
            name waitfd nothing 0 0
          name fd nothing 0 0
        name fd2 nothing 0 0
      seq nothing 0 0
        scope nothing 0 0
          seq nothing 0 0
            = nothing 0 0
              . nothing 0 0
                name ctxt nothing 0 0
                name waitfd nothing 0 0
              call nothing 0 0
                name waitfd nothing 0 0
            seq nothing 0 0
              if nothing 0 0
                == nothing 0 0
                  . nothing 0 0
                    . nothing 0 0
                      name ctxt nothing 0 0
                      name waitfd nothing 0 0
                    name fd nothing 0 0
                  name fd2 nothing 0 0
                seq nothing 0 0
                  call nothing 0 0
                    name panic nothing 0 0
                    seq nothing 0 0
                      call nothing 0 0
                        -> nothing 0 0
                          name sys nothing 0 0
                          name sprint nothing 0 0
                        seq nothing 0 0
                          const reopen of waitfd gave same fd (%d) string 0 0
                          seq nothing 0 0
                            . nothing 0 0
                              . nothing 0 0
                                name ctxt nothing 0 0
                                name waitfd nothing 0 0
                              name fd nothing 0 0
    seq nothing 0 0
      return nothing 0 0
        call nothing 0 0
          -> nothing 0 0
            name sys nothing 0 0
            name dup nothing 0 0
          seq nothing 0 0
            name fd1 nothing 0 0
            seq nothing 0 0
              name fd2 nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, redirs: ref Redirlist): list of int 0 0
  name doredirs fn(ctxt: ref Context, redirs: ref Redirlist): list of int 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        . nothing 0 0
          name redirs nothing 0 0
          name r nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          name nil polymorphic type 0 0
    seq nothing 0 0
      := nothing 0 0
        name keepfds nothing 0 0
        . nothing 0 0
          name ctxt nothing 0 0
          name keepfds nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name rl nothing 0 0
          . nothing 0 0
            name redirs nothing 0 0
            name r nothing 0 0
        seq nothing 0 0
          = nothing 0 0
            name redirs nothing 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            for nothing 0 0
              != nothing 0 0
                name rl nothing 0 0
                name nil polymorphic type 0 0
              seq nothing 0 0
                scope nothing 0 0
                  seq nothing 0 0
                    := nothing 0 0
                      tuple nothing 0 0
                        seq nothing 0 0
                          name rfd nothing 0 0
                          seq nothing 0 0
                            name path nothing 0 0
                            seq nothing 0 0
                              tuple nothing 0 0
                                seq nothing 0 0
                                  name mode nothing 0 0
                                  seq nothing 0 0
                                    name fd1 nothing 0 0
                                    seq nothing 0 0
                                      name fd2 nothing 0 0
                      hd nothing 0 0
                        name rl nothing 0 0
                    seq nothing 0 0
                      if nothing 0 0
                        && nothing 0 0
                          == nothing 0 0
                            name path nothing 0 0
                            name nil polymorphic type 0 0
                          == nothing 0 0
                            name rfd nothing 0 0
                            name nil polymorphic type 0 0
                        seq nothing 0 0
                          scope nothing 0 0
                            seq nothing 0 0
                              if nothing 0 0
                                || nothing 0 0
                                  == nothing 0 0
                                    name fd1 nothing 0 0
                                    - nothing 0 0
                                      const (1) int 0 0
                                  == nothing 0 0
                                    name fd2 nothing 0 0
                                    - nothing 0 0
                                      const (1) int 0 0
                                seq nothing 0 0
                                  call nothing 0 0
                                    . nothing 0 0
                                      name ctxt nothing 0 0
                                      name fail nothing 0 0
                                    seq nothing 0 0
                                      const bad redir string 0 0
                                      seq nothing 0 0
                                        const sh: invalid dup string 0 0
                              seq nothing 0 0
                                if nothing 0 0
                                  == nothing 0 0
                                    call nothing 0 0
                                      name dup nothing 0 0
                                      seq nothing 0 0
                                        name ctxt nothing 0 0
                                        seq nothing 0 0
                                          name fd2 nothing 0 0
                                          seq nothing 0 0
                                            name fd1 nothing 0 0
                                
typecheck tree: 
fn(){} fn(): ref Sys->FD 0 0
  name waitfd fn(): ref Sys->FD 0 0
  seq nothing 0 0
    := nothing 0 0
      name wf nothing 0 0
      + nothing 0 0
        cast string 0 0
          call nothing 0 0
            -> nothing 0 0
              name sys nothing 0 0
              name pctl nothing 0 0
            seq nothing 0 0
              const (0) int 0 0
              seq nothing 0 0
                name nil polymorphic type 0 0
        const /wait string 0 0
    seq nothing 0 0
      := nothing 0 0
        name waitfd nothing 0 0
        call nothing 0 0
          -> nothing 0 0
            name sys nothing 0 0
            name open nothing 0 0
          seq nothing 0 0
            + nothing 0 0
              const #p/ string 0 0
              name wf nothing 0 0
            seq nothing 0 0
              -> nothing 0 0
                name Sys nothing 0 0
                name OREAD nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          == nothing 0 0
            name waitfd nothing 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            = nothing 0 0
              name waitfd nothing 0 0
              call nothing 0 0
                -> nothing 0 0
                  name sys nothing 0 0
                  name open nothing 0 0
                seq nothing 0 0
                  + nothing 0 0
                    const /prog/ string 0 0
                    name wf nothing 0 0
                  seq nothing 0 0
                    -> nothing 0 0
                      name Sys nothing 0 0
                      name OREAD nothing 0 0
        seq nothing 0 0
          if nothing 0 0
            == nothing 0 0
              name waitfd nothing 0 0
              name nil polymorphic type 0 0
            seq nothing 0 0
              call nothing 0 0
                name panic nothing 0 0
                seq nothing 0 0
                  call nothing 0 0
                    -> nothing 0 0
                      name sys nothing 0 0
                      name sprint nothing 0 0
                    seq nothing 0 0
                      const cannot open wait file: %r string 0 0
          seq nothing 0 0
            return nothing 0 0
              name waitfd nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, pids: list of int): string 0 0
  name waitfor fn(ctxt: ref Context, pids: list of int): string 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        name pids nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          name nil polymorphic type 0 0
    seq nothing 0 0
      := nothing 0 0
        name status nothing 0 0
        array array of string 0 0
          len nothing 0 0
            name pids nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name wcount nothing 0 0
          len nothing 0 0
            name status nothing 0 0
        seq nothing 0 0
          := nothing 0 0
            name buf nothing 0 0
            array array of byte 0 0
              -> nothing 0 0
                name Sys nothing 0 0
                name WAITLEN nothing 0 0
          seq nothing 0 0
            := nothing 0 0
              name onebad nothing 0 0
              const (0) int 0 0
            seq nothing 0 0
              for nothing 0 0
                nothing nothing 0 0
                seq nothing 0 0
                  scope nothing 0 0
                    seq nothing 0 0
                      := nothing 0 0
                        name n nothing 0 0
                        call nothing 0 0
                          -> nothing 0 0
                            name sys nothing 0 0
                            name read nothing 0 0
                          seq nothing 0 0
                            . nothing 0 0
                              name ctxt nothing 0 0
                              name waitfd nothing 0 0
                            seq nothing 0 0
                              name buf nothing 0 0
                              seq nothing 0 0
                                len nothing 0 0
                                  name buf nothing 0 0
                      seq nothing 0 0
                        if nothing 0 0
                          < nothing 0 0
                            name n nothing 0 0
                            const (0) int 0 0
                          seq nothing 0 0
                            call nothing 0 0
                              name panic nothing 0 0
                              seq nothing 0 0
                                call nothing 0 0
                                  -> nothing 0 0
                                    name sys nothing 0 0
                                    name sprint nothing 0 0
                                  seq nothing 0 0
                                    const error on wait read: %r string 0 0
                        seq nothing 0 0
                          := nothing 0 0
                            tuple nothing 0 0
                              seq nothing 0 0
                                name who nothing 0 0
                                seq nothing 0 0
                                  name line nothing 0 0
                                  seq nothing 0 0
                                    name s nothing 0 0
                            call nothing 0 0
                              name parsewaitstatus nothing 0 0
                              seq nothing 0 0
                                name ctxt nothing 0 0
                                seq nothing 0 0
                                  cast string 0 0
                                    slice nothing 0 0
                                      name buf nothing 0 0
                                      seq nothing 0 0
                                        const (0) int 0 0
                                        name n nothing 0 0
                          seq nothing 0 0
                            if nothing 0 0
                              != nothing 0 0
                                name s nothing 0 0
                                name nil polymorphic type 0 0
                              seq nothing 0 0
                                scope nothing 0 0
                                  seq nothing 0 0
                                    if nothing 0 0

typecheck tree: 
fn(){} fn(ctxt: ref Context, status: string): (int, string, string) 0 0
  name parsewaitstatus fn(ctxt: ref Context, status: string): (int, string, string) 0 0
  seq nothing 0 0
    := nothing 0 0
      name i nothing 0 0
      const (0) int 0 0
    seq nothing 0 0
      for nothing 0 0
        < nothing 0 0
          name i nothing 0 0
          len nothing 0 0
            name status nothing 0 0
        seq nothing 0 0
          if nothing 0 0
            == nothing 0 0
              index nothing 0 0
                name status nothing 0 0
                name i nothing 0 0
              const (32) int 0 0
            seq nothing 0 0
              break nothing 0 0
          ++ nothing 0 0
            name i nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          || nothing 0 0
            == nothing 0 0
              name i nothing 0 0
              - nothing 0 0
                len nothing 0 0
                  name status nothing 0 0
                const (1) int 0 0
            != nothing 0 0
              index nothing 0 0
                name status nothing 0 0
                + nothing 0 0
                  name i nothing 0 0
                  const (1) int 0 0
              const (34) int 0 0
          seq nothing 0 0
            call nothing 0 0
              . nothing 0 0
                name ctxt nothing 0 0
                name fail nothing 0 0
              seq nothing 0 0
                const bad wait read string 0 0
                seq nothing 0 0
                  call nothing 0 0
                    -> nothing 0 0
                      name sys nothing 0 0
                      name sprint nothing 0 0
                    seq nothing 0 0
                      const sh: bad exit status '%s' string 0 0
                      seq nothing 0 0
                        name status nothing 0 0
        seq nothing 0 0
          seq nothing 0 0
            += nothing 0 0
              name i nothing 0 0
              const (2) int 0 0
            for nothing 0 0
              < nothing 0 0
                name i nothing 0 0
                len nothing 0 0
                  name status nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  == nothing 0 0
                    index nothing 0 0
                      name status nothing 0 0
                      name i nothing 0 0
                    const (34) int 0 0
                  seq nothing 0 0
                    break nothing 0 0
                ++ nothing 0 0
                  name i nothing 0 0
          seq nothing 0 0
            if nothing 0 0
              || nothing 0 0
                > nothing 0 0
                  name i nothing 0 0
                  - nothing 0 0
                    len nothing 0 0
                      name status nothing 0 0
                    const (2) int 0 0
                != nothing 0 0
                  index nothing 0 0
                    name status nothing 0 0
                    + nothing 0 0
                      name i nothing 0 0
                      const (1) int 0 0
                  const (58) int 0 0
              seq nothing 0 0
                call nothing 0 0
                  . nothing 0 0
                    name ctxt nothing 0 0
                    name fail nothing 0 0
                  seq nothing 0 0
                    const bad wait read string 0 0
                    seq nothing 0 0
                      call nothing 0 0
                        -> nothing 0 0
                          name sys nothing 0 0
                          name sprint nothing 0 0
                        seq nothing 0 0
                          const sh: bad exit status '%s' string 0 0
                          seq nothing 0 0
                            name status nothing 0 0
            seq nothing 0 0
              return nothing 0 0
                tuple nothing 0 0
                  seq nothing 0 0
                    cast int 0 0
                      name status nothing 0 0
                    seq nothing 0 0
                      name status nothing 0 0
           
typecheck tree: 
fn(){} fn(s: string) 0 0
  name panic fn(s: string) 0 0
  seq nothing 0 0
    call nothing 0 0
      -> nothing 0 0
        name sys nothing 0 0
        name fprint nothing 0 0
      seq nothing 0 0
        call nothing 0 0
          name stderr nothing 0 0
        seq nothing 0 0
          const sh panic: %s
 string 0 0
          seq nothing 0 0
            name s nothing 0 0
    seq nothing 0 0
      raise nothing 0 0
        const panic string 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, s: string) 0 0
  name diagnostic fn(ctxt: ref Context, s: string) 0 0
  seq nothing 0 0
    if nothing 0 0
      & nothing 0 0
        call nothing 0 0
          . nothing 0 0
            name ctxt nothing 0 0
            name options nothing 0 0
        . nothing 0 0
          name Context nothing 0 0
          name VERBOSE nothing 0 0
      seq nothing 0 0
        call nothing 0 0
          -> nothing 0 0
            name sys nothing 0 0
            name fprint nothing 0 0
          seq nothing 0 0
            call nothing 0 0
              name stderr nothing 0 0
            seq nothing 0 0
              const sh: %s
 string 0 0
              seq nothing 0 0
                name s nothing 0 0
typecheck tree: 
fn(){} fn(drawcontext: ref Draw->Context): ref Context 0 0
  . fn(drawcontext: ref Draw->Context): ref Context 0 0
    name Context Context 0 0
    name new nothing 0 0
  seq nothing 0 0
    call nothing 0 0
      name initialise nothing 0 0
    seq nothing 0 0
      if nothing 0 0
        != nothing 0 0
          name env nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          call nothing 0 0
            -> nothing 0 0
              name env nothing 0 0
              name clone nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name ctxt nothing 0 0
          ref nothing 0 0
            call nothing 0 0
              name Context nothing 0 0
              seq nothing 0 0
                ref nothing 0 0
                  call nothing 0 0
                    name Environment nothing 0 0
                    seq nothing 0 0
                      ref nothing 0 0
                        call nothing 0 0
                          name Builtins nothing 0 0
                          seq nothing 0 0
                            name nil polymorphic type 0 0
                            seq nothing 0 0
                              const (0) int 0 0
                      seq nothing 0 0
                        ref nothing 0 0
                          call nothing 0 0
                            name Builtins nothing 0 0
                            seq nothing 0 0
                              name nil polymorphic type 0 0
                              seq nothing 0 0
                                const (0) int 0 0
                        seq nothing 0 0
                          name nil polymorphic type 0 0
                          seq nothing 0 0
                            call nothing 0 0
                              name newlocalenv nothing 0 0
                              seq nothing 0 0
                                name nil polymorphic type 0 0
                seq nothing 0 0
                  call nothing 0 0
                    name waitfd nothing 0 0
                  seq nothing 0 0
                    name drawcontext nothing 0 0
                    seq nothing 0 0
                      :: nothing 0 0
                        const (0) int 0 0
                        :: nothing 0 0
                          const (1) int 0 0
                          :: nothing 0 0
                            const (2) int 0 0
                            name nil polymorphic type 0 0
        seq nothing 0 0
          call nothing 0 0
            -> nothing 0 0
              name myselfbuiltin nothing 0 0
              name initbuiltin nothing 0 0
            seq nothing 0 0
              name ctxt nothing 0 0
              seq nothing 0 0
                name myself nothing 0 0
          seq nothing 0 0
            = nothing 0 0
              . nothing 0 0
                . nothing 0 0
                  . nothing 0 0
                    name ctxt nothing 0 0
                    name env nothing 0 0
                  name localenv nothing 0 0
                name flags nothing 0 0
              . nothing 0 0
                name ctxt nothing 0 0
                name VERBOSE nothing 0 0
            seq nothing 0 0
              seq nothing 0 0
                := nothing 0 0
                  name vl nothing 0 0
                  call nothing 0 0
                    . nothing 0 0
                      name ctxt nothing 0 0
                      name get nothing 0 0
                    seq nothing 0 0
                      const autoload string 0 0
                for nothing 0 0
                  != nothing 0 0
                    name vl nothing 0 0
                    name nil polymorphic type 0 0
                  seq nothing 0 0
                    if nothing 0 0
                      && nothing 0 0
                        == nothing 0 0
                          . nothing 0 0
                            hd nothing 0 0
                              name vl nothing 0 0
                            name cmd nothing 0 0
                          name nil polymorphic type 0 0
         
typecheck tree: 
fn(){} fn(ctxt: self ref Context, copyenv: int): ref Context 0 0
  . fn(c: self ref Context, copyenv: int): ref Context 0 0
    name Context Context 0 0
    name copy nothing 0 0
  seq nothing 0 0
    := nothing 0 0
      name nctxt nothing 0 0
      ref nothing 0 0
        call nothing 0 0
          name Context nothing 0 0
          seq nothing 0 0
            . nothing 0 0
              name ctxt nothing 0 0
              name env nothing 0 0
            seq nothing 0 0
              call nothing 0 0
                name waitfd nothing 0 0
              seq nothing 0 0
                . nothing 0 0
                  name ctxt nothing 0 0
                  name drawcontext nothing 0 0
                seq nothing 0 0
                  . nothing 0 0
                    name ctxt nothing 0 0
                    name keepfds nothing 0 0
    seq nothing 0 0
      if nothing 0 0
        name copyenv nothing 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              if nothing 0 0
                != nothing 0 0
                  name env nothing 0 0
                  name nil polymorphic type 0 0
                seq nothing 0 0
                  call nothing 0 0
                    -> nothing 0 0
                      name env nothing 0 0
                      name clone nothing 0 0
              seq nothing 0 0
                = nothing 0 0
                  . nothing 0 0
                    name nctxt nothing 0 0
                    name env nothing 0 0
                  ref nothing 0 0
                    call nothing 0 0
                      name Environment nothing 0 0
                      seq nothing 0 0
                        call nothing 0 0
                          name copybuiltins nothing 0 0
                          seq nothing 0 0
                            . nothing 0 0
                              . nothing 0 0
                                name ctxt nothing 0 0
                                name env nothing 0 0
                              name sbuiltins nothing 0 0
                        seq nothing 0 0
                          call nothing 0 0
                            name copybuiltins nothing 0 0
                            seq nothing 0 0
                              . nothing 0 0
                                . nothing 0 0
                                  name ctxt nothing 0 0
                                  name env nothing 0 0
                                name builtins nothing 0 0
                          seq nothing 0 0
                            . nothing 0 0
                              . nothing 0 0
                                name ctxt nothing 0 0
                                name env nothing 0 0
                              name bmods nothing 0 0
                            seq nothing 0 0
                              call nothing 0 0
                                name copylocalenv nothing 0 0
                                seq nothing 0 0
                                  . nothing 0 0
                                    . nothing 0 0
                                      name ctxt nothing 0 0
                                      name env nothing 0 0
                                    name localenv nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          name nctxt nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: self ref Context, name: string, val: list of ref Listnode) 0 0
  . fn(c: self ref Context, name: string, val: list of ref Listnode) 0 0
    name Context Context 0 0
    name set nothing 0 0
  seq nothing 0 0
    := nothing 0 0
      name e nothing 0 0
      . nothing 0 0
        . nothing 0 0
          name ctxt nothing 0 0
          name env nothing 0 0
        name localenv nothing 0 0
    seq nothing 0 0
      := nothing 0 0
        name idx nothing 0 0
        call nothing 0 0
          name hashfn nothing 0 0
          seq nothing 0 0
            name name nothing 0 0
            seq nothing 0 0
              len nothing 0 0
                . nothing 0 0
                  name e nothing 0 0
                  name vars nothing 0 0
      seq nothing 0 0
        for nothing 0 0
          nothing nothing 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                := nothing 0 0
                  name v nothing 0 0
                  call nothing 0 0
                    name hashfind nothing 0 0
                    seq nothing 0 0
                      . nothing 0 0
                        name e nothing 0 0
                        name vars nothing 0 0
                      seq nothing 0 0
                        name idx nothing 0 0
                        seq nothing 0 0
                          name name nothing 0 0
                seq nothing 0 0
                  if nothing 0 0
                    == nothing 0 0
                      name v nothing 0 0
                      name nil polymorphic type 0 0
                    seq nothing 0 0
                      scope nothing 0 0
                        seq nothing 0 0
                          if nothing 0 0
                            == nothing 0 0
                              . nothing 0 0
                                name e nothing 0 0
                                name pushed nothing 0 0
                              name nil polymorphic type 0 0
                            seq nothing 0 0
                              scope nothing 0 0
                                seq nothing 0 0
                                  := nothing 0 0
                                    name flags nothing 0 0
                                    . nothing 0 0
                                      name Var nothing 0 0
                                      name CHANGED nothing 0 0
                                  seq nothing 0 0
                                    if nothing 0 0
                                      call nothing 0 0
                                        name noexport nothing 0 0
                                        seq nothing 0 0
                                          name name nothing 0 0
                                      seq nothing 0 0
                                        |= nothing 0 0
                                          name flags nothing 0 0
                                          . nothing 0 0
                                            name Var nothing 0 0
                                            name NOEXPORT nothing 0 0
                                    seq nothing 0 0
                                      call nothing 0 0
                                        name hashadd nothing 0 0
                                        seq nothing 0 0
                                          . nothing 0 0
                                            name e nothing 0 0
                                            name vars nothing 0 0
                                          seq nothing 0 0
                                            name idx nothing 0 0
                                            seq nothing 0 0
                                              ref nothing 0 0
                                                call nothing 0 0
                                                  name Var nothing 0 0
                                                  seq nothing 0 0
                                                    name name nothing 0 0
                         
typecheck tree: 
fn(){} fn(ctxt: self ref Context, name: string): list of ref Listnode 0 0
  . fn(c: self ref Context, name: string): list of ref Listnode 0 0
    name Context Context 0 0
    name get nothing 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        name name nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          name nil polymorphic type 0 0
    seq nothing 0 0
      := nothing 0 0
        name idx nothing 0 0
        - nothing 0 0
          const (1) int 0 0
      seq nothing 0 0
        if nothing 0 0
          && nothing 0 0
            > nothing 0 0
              index nothing 0 0
                name name nothing 0 0
                const (0) int 0 0
              const (48) int 0 0
            <= nothing 0 0
              index nothing 0 0
                name name nothing 0 0
                const (0) int 0 0
              const (57) int 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                vardecl int 0 0
                  seq nothing 0 0
                seq nothing 0 0
                  seq nothing 0 0
                    = nothing 0 0
                      name i nothing 0 0
                      const (0) int 0 0
                    for nothing 0 0
                      < nothing 0 0
                        name i nothing 0 0
                        len nothing 0 0
                          name name nothing 0 0
                      seq nothing 0 0
                        if nothing 0 0
                          || nothing 0 0
                            < nothing 0 0
                              index nothing 0 0
                                name name nothing 0 0
                                name i nothing 0 0
                              const (48) int 0 0
                            > nothing 0 0
                              index nothing 0 0
                                name name nothing 0 0
                                name i nothing 0 0
                              const (57) int 0 0
                          seq nothing 0 0
                            break nothing 0 0
                        ++ nothing 0 0
                          name i nothing 0 0
                  seq nothing 0 0
                    if nothing 0 0
                      >= nothing 0 0
                        name i nothing 0 0
                        len nothing 0 0
                          name name nothing 0 0
                      seq nothing 0 0
                        scope nothing 0 0
                          seq nothing 0 0
                            = nothing 0 0
                              name idx nothing 0 0
                              - nothing 0 0
                                cast int 0 0
                                  name name nothing 0 0
                                const (1) int 0 0
                            seq nothing 0 0
                              = nothing 0 0
                                name name nothing 0 0
                                const * string 0 0
        seq nothing 0 0
          := nothing 0 0
            name v nothing 0 0
            call nothing 0 0
              name varfind nothing 0 0
              seq nothing 0 0
                . nothing 0 0
                  . nothing 0 0
                    name ctxt nothing 0 0
                    name env nothing 0 0
                  name localenv nothing 0 0
                seq nothing 0 0
                  name name nothing 0 0
          seq nothing 0 0
            if nothing 0 0
              != nothing 0 0
                name v nothing 0 0
                name nil polymorphic type 0 0
              seq nothing 0 0
                scope nothing 0 0
                  seq nothing 0 0
                    if nothing 0 0
                      != nothing 0 0
                        name idx nothing 0 0
                        - nothing 0 0
                          const (1) int 0 0
                      seq nothing 0 0
                        return nothing 0 0
                          call n
typecheck tree: 
fn(){} fn(ctxt: self ref Context): list of (string, list of ref Listnode) 0 0
  . fn(c: self ref Context): list of (string, list of ref Listnode) 0 0
    name Context Context 0 0
    name envlist nothing 0 0
  seq nothing 0 0
    := nothing 0 0
      name t nothing 0 0
      array array of list of ref Var 0 0
        name ENVHASHSIZE nothing 0 0
    seq nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name e nothing 0 0
          . nothing 0 0
            . nothing 0 0
              name ctxt nothing 0 0
              name env nothing 0 0
            name localenv nothing 0 0
        for nothing 0 0
          != nothing 0 0
            name e nothing 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                := nothing 0 0
                  name i nothing 0 0
                  const (0) int 0 0
                seq nothing 0 0
                  for nothing 0 0
                    < nothing 0 0
                      name i nothing 0 0
                      len nothing 0 0
                        . nothing 0 0
                          name e nothing 0 0
                          name vars nothing 0 0
                    seq nothing 0 0
                      scope nothing 0 0
                        seq nothing 0 0
                          := nothing 0 0
                            name vl nothing 0 0
                            index nothing 0 0
                              . nothing 0 0
                                name e nothing 0 0
                                name vars nothing 0 0
                              name i nothing 0 0
                          seq nothing 0 0
                            for nothing 0 0
                              != nothing 0 0
                                name vl nothing 0 0
                                name nil polymorphic type 0 0
                              seq nothing 0 0
                                scope nothing 0 0
                                  seq nothing 0 0
                                    := nothing 0 0
                                      name v nothing 0 0
                                      hd nothing 0 0
                                        name vl nothing 0 0
                                    seq nothing 0 0
                                      := nothing 0 0
                                        name idx nothing 0 0
                                        call nothing 0 0
                                          name hashfn nothing 0 0
                                          seq nothing 0 0
                                            . nothing 0 0
                                              name v nothing 0 0
                                              name name nothing 0 0
                                            seq nothing 0 0
                                              len nothing 0 0
                                                . nothing 0 0
                                                  name e nothing 0 0
                                                  name vars nothing 0 0
                                      seq nothing 0 0
                                        if nothing 0 0
                                          == nothing 0 0
                                            call nothing 0 0
                                              name hashfind nothing 0 0
                                              seq nothing 0 0
                                                name t nothing 0 0
                                                seq nothing 0 0
                                                  name idx nothing 0 0
                                                  seq nothing 0 0
                                                    . nothing 0 0
                                                      name v nothing 0 0
                                                      name name nothing 0 0
                                            name nil polymorphic type 0 0
                             
typecheck tree: 
fn(){} fn(ctxt: self ref Context, name: string, val: list of ref Listnode) 0 0
  . fn(c: self ref Context, name: string, val: list of ref Listnode) 0 0
    name Context Context 0 0
    name setlocal nothing 0 0
  seq nothing 0 0
    := nothing 0 0
      name e nothing 0 0
      . nothing 0 0
        . nothing 0 0
          name ctxt nothing 0 0
          name env nothing 0 0
        name localenv nothing 0 0
    seq nothing 0 0
      := nothing 0 0
        name idx nothing 0 0
        call nothing 0 0
          name hashfn nothing 0 0
          seq nothing 0 0
            name name nothing 0 0
            seq nothing 0 0
              len nothing 0 0
                . nothing 0 0
                  name e nothing 0 0
                  name vars nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name v nothing 0 0
          call nothing 0 0
            name hashfind nothing 0 0
            seq nothing 0 0
              . nothing 0 0
                name e nothing 0 0
                name vars nothing 0 0
              seq nothing 0 0
                name idx nothing 0 0
                seq nothing 0 0
                  name name nothing 0 0
        seq nothing 0 0
          if nothing 0 0
            == nothing 0 0
              name v nothing 0 0
              name nil polymorphic type 0 0
            seq nothing 0 0
              scope nothing 0 0
                seq nothing 0 0
                  := nothing 0 0
                    name flags nothing 0 0
                    . nothing 0 0
                      name Var nothing 0 0
                      name CHANGED nothing 0 0
                  seq nothing 0 0
                    if nothing 0 0
                      call nothing 0 0
                        name noexport nothing 0 0
                        seq nothing 0 0
                          name name nothing 0 0
                      seq nothing 0 0
                        |= nothing 0 0
                          name flags nothing 0 0
                          . nothing 0 0
                            name Var nothing 0 0
                            name NOEXPORT nothing 0 0
                    seq nothing 0 0
                      call nothing 0 0
                        name hashadd nothing 0 0
                        seq nothing 0 0
                          . nothing 0 0
                            name e nothing 0 0
                            name vars nothing 0 0
                          seq nothing 0 0
                            name idx nothing 0 0
                            seq nothing 0 0
                              ref nothing 0 0
                                call nothing 0 0
                                  name Var nothing 0 0
                                  seq nothing 0 0
                                    name name nothing 0 0
                                    seq nothing 0 0
                                      name val nothing 0 0
                                      seq nothing 0 0
                                        name flags nothing 0 0
              scope nothing 0 0
                seq nothing 0 0
                  = nothing 0 0
                    . nothing 0 0
                      name v nothing 0 0
                      name val nothing 0 0
                    name val nothing 0 0
                  seq nothing 0 0
                    |= nothing 0 0
                      . nothing 0 0
                        name v nothing 0 0
                        name flags nothing 0 0
                      . nothing 0 0
                        name Var nothing 0 0
                        name CHANGED nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: self ref Context) 0 0
  . fn(c: self ref Context) 0 0
    name Context Context 0 0
    name push nothing 0 0
  seq nothing 0 0
    = nothing 0 0
      . nothing 0 0
        . nothing 0 0
          name ctxt nothing 0 0
          name env nothing 0 0
        name localenv nothing 0 0
      call nothing 0 0
        name newlocalenv nothing 0 0
        seq nothing 0 0
          . nothing 0 0
            . nothing 0 0
              name ctxt nothing 0 0
              name env nothing 0 0
            name localenv nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: self ref Context) 0 0
  . fn(c: self ref Context) 0 0
    name Context Context 0 0
    name pop nothing 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        . nothing 0 0
          . nothing 0 0
            . nothing 0 0
              name ctxt nothing 0 0
              name env nothing 0 0
            name localenv nothing 0 0
          name pushed nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        call nothing 0 0
          name panic nothing 0 0
          seq nothing 0 0
            const unbalanced contexts in shell environment string 0 0
        scope nothing 0 0
          seq nothing 0 0
            := nothing 0 0
              name oldv nothing 0 0
              . nothing 0 0
                . nothing 0 0
                  . nothing 0 0
                    name ctxt nothing 0 0
                    name env nothing 0 0
                  name localenv nothing 0 0
                name vars nothing 0 0
            seq nothing 0 0
              = nothing 0 0
                . nothing 0 0
                  . nothing 0 0
                    name ctxt nothing 0 0
                    name env nothing 0 0
                  name localenv nothing 0 0
                . nothing 0 0
                  . nothing 0 0
                    . nothing 0 0
                      name ctxt nothing 0 0
                      name env nothing 0 0
                    name localenv nothing 0 0
                  name pushed nothing 0 0
              seq nothing 0 0
                seq nothing 0 0
                  := nothing 0 0
                    name i nothing 0 0
                    const (0) int 0 0
                  for nothing 0 0
                    < nothing 0 0
                      name i nothing 0 0
                      len nothing 0 0
                        name oldv nothing 0 0
                    seq nothing 0 0
                      scope nothing 0 0
                        seq nothing 0 0
                          := nothing 0 0
                            name vl nothing 0 0
                            index nothing 0 0
                              name oldv nothing 0 0
                              name i nothing 0 0
                          seq nothing 0 0
                            for nothing 0 0
                              != nothing 0 0
                                name vl nothing 0 0
                                name nil polymorphic type 0 0
                              seq nothing 0 0
                                scope nothing 0 0
                                  seq nothing 0 0
                                    if nothing 0 0
                                      != nothing 0 0
                                        := nothing 0 0
                                          name v nothing 0 0
                                          call nothing 0 0
                                            name varfind nothing 0 0
                                            seq nothing 0 0
                                              . nothing 0 0
                                                . nothing 0 0
                                                  name ctxt nothing 0 0
                                                  name env nothing 0 0
                                                name localenv nothing 0 0
                                              seq nothing 0 0
                                                . nothing 0 0
                                                  hd nothing 0 0
                                                    name vl nothing 0 0
                                                  name name nothing 0 0
                                        name nil polymorphic type 0 0
                                      seq nothing 0 0
                                        |= nothing 0 0
                                          . nothing 0 0
                                            name v nothing 0 0
                                            name flags nothing 0 0
                                          . 
typecheck tree: 
fn(){} fn(ctxt: self ref Context, args: list of ref Listnode, last: int): string 0 0
  . fn(c: self ref Context, args: list of ref Listnode, last: int): string 0 0
    name Context Context 0 0
    name run nothing 0 0
  seq nothing 0 0
    if nothing 0 0
      || nothing 0 0
        == nothing 0 0
          name args nothing 0 0
          name nil polymorphic type 0 0
        && nothing 0 0
          == nothing 0 0
            . nothing 0 0
              hd nothing 0 0
                name args nothing 0 0
              name cmd nothing 0 0
            name nil polymorphic type 0 0
          == nothing 0 0
            . nothing 0 0
              hd nothing 0 0
                name args nothing 0 0
              name word nothing 0 0
            name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          name nil polymorphic type 0 0
    seq nothing 0 0
      := nothing 0 0
        name cmd nothing 0 0
        hd nothing 0 0
          name args nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          || nothing 0 0
            != nothing 0 0
              . nothing 0 0
                name cmd nothing 0 0
                name cmd nothing 0 0
              name nil polymorphic type 0 0
            == nothing 0 0
              index nothing 0 0
                . nothing 0 0
                  name cmd nothing 0 0
                  name word nothing 0 0
                const (0) int 0 0
              const (123) int 0 0
          seq nothing 0 0
            return nothing 0 0
              call nothing 0 0
                name runblock nothing 0 0
                seq nothing 0 0
                  name ctxt nothing 0 0
                  seq nothing 0 0
                    name args nothing 0 0
                    seq nothing 0 0
                      name last nothing 0 0
        seq nothing 0 0
          if nothing 0 0
            & nothing 0 0
              call nothing 0 0
                . nothing 0 0
                  name ctxt nothing 0 0
                  name options nothing 0 0
              . nothing 0 0
                name ctxt nothing 0 0
                name EXECPRINT nothing 0 0
            seq nothing 0 0
              call nothing 0 0
                -> nothing 0 0
                  name sys nothing 0 0
                  name fprint nothing 0 0
                seq nothing 0 0
                  call nothing 0 0
                    name stderr nothing 0 0
                  seq nothing 0 0
                    const %s
 string 0 0
                    seq nothing 0 0
                      call nothing 0 0
                        name quoted nothing 0 0
                        seq nothing 0 0
                          name args nothing 0 0
                          seq nothing 0 0
                            const (0) int 0 0
          seq nothing 0 0
            := nothing 0 0
              tuple nothing 0 0
                seq nothing 0 0
                  name doneit nothing 0 0
                  seq nothing 0 0
                    name status nothing 0 0
              call nothing 0 0
                name trybuiltin nothing 0 0
                seq nothing 0 0
                  name ctxt nothing 0 0
                  seq nothing 0 0
                    name args nothing 0 0
                    seq nothing 0 0
                      name last nothing 0 0
            seq nothing 0 0
              if nothing 0 0
                ! nothing 0 0
                  name doneit nothing 0 0
                seq nothing 0 0
                  = nothing 0 0
                    name status nothing 0 0
                    call nothing 0 0
                      name runexternal nothing 0 0
                      seq nothing 0 0
                        name ctxt nothing 0 0
                        seq nothing 0 0
                          name args nothing 0 0
                          seq nothing 0 0
                            name last nothing 0 0
              seq nothing 0 0
                return nothing 0 0
                  name status nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: self ref Context, name: string, mod: Shellbuiltin) 0 0
  . fn(c: self ref Context, name: string, mod: Shellbuiltin) 0 0
    name Context Context 0 0
    name addmodule nothing 0 0
  seq nothing 0 0
    call nothing 0 0
      -> nothing 0 0
        name mod nothing 0 0
        name initbuiltin nothing 0 0
      seq nothing 0 0
        name ctxt nothing 0 0
        seq nothing 0 0
          name myself nothing 0 0
    seq nothing 0 0
      = nothing 0 0
        . nothing 0 0
          . nothing 0 0
            name ctxt nothing 0 0
            name env nothing 0 0
          name bmods nothing 0 0
        :: nothing 0 0
          tuple nothing 0 0
            seq nothing 0 0
              name name nothing 0 0
              seq nothing 0 0
                call nothing 0 0
                  -> nothing 0 0
                    name mod nothing 0 0
                    name getself nothing 0 0
          . nothing 0 0
            . nothing 0 0
              name ctxt nothing 0 0
              name env nothing 0 0
            name bmods nothing 0 0
typecheck tree: 
fn(){} fn(c: self ref Context, name: string, mod: Shellbuiltin) 0 0
  . fn(c: self ref Context, name: string, mod: Shellbuiltin) 0 0
    name Context Context 0 0
    name addbuiltin nothing 0 0
  seq nothing 0 0
    call nothing 0 0
      name addbuiltin nothing 0 0
      seq nothing 0 0
        . nothing 0 0
          . nothing 0 0
            name c nothing 0 0
            name env nothing 0 0
          name builtins nothing 0 0
        seq nothing 0 0
          name name nothing 0 0
          seq nothing 0 0
            name mod nothing 0 0
typecheck tree: 
fn(){} fn(c: self ref Context, name: string, mod: Shellbuiltin) 0 0
  . fn(c: self ref Context, name: string, mod: Shellbuiltin) 0 0
    name Context Context 0 0
    name removebuiltin nothing 0 0
  seq nothing 0 0
    call nothing 0 0
      name removebuiltin nothing 0 0
      seq nothing 0 0
        . nothing 0 0
          . nothing 0 0
            name c nothing 0 0
            name env nothing 0 0
          name builtins nothing 0 0
        seq nothing 0 0
          name name nothing 0 0
          seq nothing 0 0
            name mod nothing 0 0
typecheck tree: 
fn(){} fn(c: self ref Context, name: string, mod: Shellbuiltin) 0 0
  . fn(c: self ref Context, name: string, mod: Shellbuiltin) 0 0
    name Context Context 0 0
    name addsbuiltin nothing 0 0
  seq nothing 0 0
    call nothing 0 0
      name addbuiltin nothing 0 0
      seq nothing 0 0
        . nothing 0 0
          . nothing 0 0
            name c nothing 0 0
            name env nothing 0 0
          name sbuiltins nothing 0 0
        seq nothing 0 0
          name name nothing 0 0
          seq nothing 0 0
            name mod nothing 0 0
typecheck tree: 
fn(){} fn(c: self ref Context, name: string, mod: Shellbuiltin) 0 0
  . fn(c: self ref Context, name: string, mod: Shellbuiltin) 0 0
    name Context Context 0 0
    name removesbuiltin nothing 0 0
  seq nothing 0 0
    call nothing 0 0
      name removebuiltin nothing 0 0
      seq nothing 0 0
        . nothing 0 0
          . nothing 0 0
            name c nothing 0 0
            name env nothing 0 0
          name sbuiltins nothing 0 0
        seq nothing 0 0
          name name nothing 0 0
          seq nothing 0 0
            name mod nothing 0 0
typecheck tree: 
fn(){} fn(e: ref Localenv, name: string): ref Var 0 0
  name varfind fn(e: ref Localenv, name: string): ref Var 0 0
  seq nothing 0 0
    := nothing 0 0
      name idx nothing 0 0
      call nothing 0 0
        name hashfn nothing 0 0
        seq nothing 0 0
          name name nothing 0 0
          seq nothing 0 0
            len nothing 0 0
              . nothing 0 0
                name e nothing 0 0
                name vars nothing 0 0
    seq nothing 0 0
      for nothing 0 0
        != nothing 0 0
          name e nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          seq nothing 0 0
            := nothing 0 0
              name vl nothing 0 0
              index nothing 0 0
                . nothing 0 0
                  name e nothing 0 0
                  name vars nothing 0 0
                name idx nothing 0 0
            for nothing 0 0
              != nothing 0 0
                name vl nothing 0 0
                name nil polymorphic type 0 0
              seq nothing 0 0
                if nothing 0 0
                  == nothing 0 0
                    . nothing 0 0
                      hd nothing 0 0
                        name vl nothing 0 0
                      name name nothing 0 0
                    name name nothing 0 0
                  seq nothing 0 0
                    return nothing 0 0
                      hd nothing 0 0
                        name vl nothing 0 0
                = nothing 0 0
                  name vl nothing 0 0
                  tl nothing 0 0
                    name vl nothing 0 0
          = nothing 0 0
            name e nothing 0 0
            . nothing 0 0
              name e nothing 0 0
              name pushed nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          name nil polymorphic type 0 0
typecheck tree: 
fn(){} fn(ctxt: self ref Context, ename: string, err: string) 0 0
  . fn(c: self ref Context, ename: string, msg: string) 0 0
    name Context Context 0 0
    name fail nothing 0 0
  seq nothing 0 0
    if nothing 0 0
      & nothing 0 0
        call nothing 0 0
          . nothing 0 0
            name ctxt nothing 0 0
            name options nothing 0 0
        . nothing 0 0
          name Context nothing 0 0
          name VERBOSE nothing 0 0
      seq nothing 0 0
        call nothing 0 0
          -> nothing 0 0
            name sys nothing 0 0
            name fprint nothing 0 0
          seq nothing 0 0
            call nothing 0 0
              name stderr nothing 0 0
            seq nothing 0 0
              const %s
 string 0 0
              seq nothing 0 0
                name err nothing 0 0
    seq nothing 0 0
      raise nothing 0 0
        + nothing 0 0
          const fail: string 0 0
          name ename nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: self ref Context, flags: int, on: int): int 0 0
  . fn(c: self ref Context, flags: int, on: int): int 0 0
    name Context Context 0 0
    name setoptions nothing 0 0
  seq nothing 0 0
    := nothing 0 0
      name old nothing 0 0
      . nothing 0 0
        . nothing 0 0
          . nothing 0 0
            name ctxt nothing 0 0
            name env nothing 0 0
          name localenv nothing 0 0
        name flags nothing 0 0
    seq nothing 0 0
      if nothing 0 0
        name on nothing 0 0
        seq nothing 0 0
          |= nothing 0 0
            . nothing 0 0
              . nothing 0 0
                . nothing 0 0
                  name ctxt nothing 0 0
                  name env nothing 0 0
                name localenv nothing 0 0
              name flags nothing 0 0
            name flags nothing 0 0
          &= nothing 0 0
            . nothing 0 0
              . nothing 0 0
                . nothing 0 0
                  name ctxt nothing 0 0
                  name env nothing 0 0
                name localenv nothing 0 0
              name flags nothing 0 0
            ~ nothing 0 0
              name flags nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          name old nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: self ref Context): int 0 0
  . fn(c: self ref Context): int 0 0
    name Context Context 0 0
    name options nothing 0 0
  seq nothing 0 0
    return nothing 0 0
      . nothing 0 0
        . nothing 0 0
          . nothing 0 0
            name ctxt nothing 0 0
            name env nothing 0 0
          name localenv nothing 0 0
        name flags nothing 0 0
typecheck tree: 
fn(){} fn(s: string, n: int): int 0 0
  name hashfn fn(s: string, n: int): int 0 0
  seq nothing 0 0
    := nothing 0 0
      name h nothing 0 0
      const (0) int 0 0
    seq nothing 0 0
      := nothing 0 0
        name m nothing 0 0
        len nothing 0 0
          name s nothing 0 0
      seq nothing 0 0
        seq nothing 0 0
          := nothing 0 0
            name i nothing 0 0
            const (0) int 0 0
          for nothing 0 0
            < nothing 0 0
              name i nothing 0 0
              name m nothing 0 0
            seq nothing 0 0
              scope nothing 0 0
                seq nothing 0 0
                  = nothing 0 0
                    name h nothing 0 0
                    + nothing 0 0
                      * nothing 0 0
                        const (65599) int 0 0
                        name h nothing 0 0
                      index nothing 0 0
                        name s nothing 0 0
                        name i nothing 0 0
              ++ nothing 0 0
                name i nothing 0 0
        seq nothing 0 0
          return nothing 0 0
            % nothing 0 0
              & nothing 0 0
                name h nothing 0 0
                const (2147483647) int 0 0
              name n nothing 0 0
typecheck tree: 
fn(){} fn(ht: array of list of ref Var, idx: int, n: string): ref Var 0 0
  name hashfind fn(ht: array of list of ref Var, idx: int, n: string): ref Var 0 0
  seq nothing 0 0
    := nothing 0 0
      name ent nothing 0 0
      index nothing 0 0
        name ht nothing 0 0
        name idx nothing 0 0
    seq nothing 0 0
      for nothing 0 0
        != nothing 0 0
          name ent nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          if nothing 0 0
            == nothing 0 0
              . nothing 0 0
                hd nothing 0 0
                  name ent nothing 0 0
                name name nothing 0 0
              name n nothing 0 0
            seq nothing 0 0
              return nothing 0 0
                hd nothing 0 0
                  name ent nothing 0 0
          = nothing 0 0
            name ent nothing 0 0
            tl nothing 0 0
              name ent nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          name nil polymorphic type 0 0
typecheck tree: 
fn(){} fn(ht: array of list of ref Var, idx: int, v: ref Var) 0 0
  name hashadd fn(ht: array of list of ref Var, idx: int, v: ref Var) 0 0
  seq nothing 0 0
    = nothing 0 0
      index nothing 0 0
        name ht nothing 0 0
        name idx nothing 0 0
      :: nothing 0 0
        name v nothing 0 0
        index nothing 0 0
          name ht nothing 0 0
          name idx nothing 0 0
typecheck tree: 
fn(){} fn(e: ref Localenv): ref Localenv 0 0
  name copylocalenv fn(e: ref Localenv): ref Localenv 0 0
  seq nothing 0 0
    := nothing 0 0
      name nvars nothing 0 0
      array array of list of ref Var 0 0
        len nothing 0 0
          . nothing 0 0
            name e nothing 0 0
            name vars nothing 0 0
    seq nothing 0 0
      := nothing 0 0
        name flags nothing 0 0
        . nothing 0 0
          name e nothing 0 0
          name flags nothing 0 0
      seq nothing 0 0
        for nothing 0 0
          != nothing 0 0
            name e nothing 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            seq nothing 0 0
              := nothing 0 0
                name i nothing 0 0
                const (0) int 0 0
              for nothing 0 0
                < nothing 0 0
                  name i nothing 0 0
                  len nothing 0 0
                    name nvars nothing 0 0
                seq nothing 0 0
                  seq nothing 0 0
                    := nothing 0 0
                      name vl nothing 0 0
                      index nothing 0 0
                        . nothing 0 0
                          name e nothing 0 0
                          name vars nothing 0 0
                        name i nothing 0 0
                    for nothing 0 0
                      != nothing 0 0
                        name vl nothing 0 0
                        name nil polymorphic type 0 0
                      seq nothing 0 0
                        scope nothing 0 0
                          seq nothing 0 0
                            := nothing 0 0
                              name idx nothing 0 0
                              call nothing 0 0
                                name hashfn nothing 0 0
                                seq nothing 0 0
                                  . nothing 0 0
                                    hd nothing 0 0
                                      name vl nothing 0 0
                                    name name nothing 0 0
                                  seq nothing 0 0
                                    len nothing 0 0
                                      name nvars nothing 0 0
                            seq nothing 0 0
                              if nothing 0 0
                                == nothing 0 0
                                  call nothing 0 0
                                    name hashfind nothing 0 0
                                    seq nothing 0 0
                                      name nvars nothing 0 0
                                      seq nothing 0 0
                                        name idx nothing 0 0
                                        seq nothing 0 0
                                          . nothing 0 0
                                            hd nothing 0 0
                                              name vl nothing 0 0
                                            name name nothing 0 0
                                  name nil polymorphic type 0 0
                                seq nothing 0 0
                                  call nothing 0 0
                                    name hashadd nothing 0 0
                                    seq nothing 0 0
                                      name nvars nothing 0 0
                                      seq nothing 0 0
                                        name idx nothing 0 0
                                        seq nothing 0 0
                                          ref nothing 0 0
                                            * nothing 0 0
                                              hd nothing 0 0
                                                name vl nothing 0 0
                        = nothing 0 0
                          name vl nothing 0 0
                          tl nothing 0 0
                            name vl nothing 0 0
                  ++ nothing 0 0
                    name i nothing 0 0
            = nothing 0 0
              name e nothing 0 0
              . nothing 0 0
       
typecheck tree: 
fn(){} fn(pushed: ref Localenv): ref Localenv 0 0
  name newlocalenv fn(pushed: ref Localenv): ref Localenv 0 0
  seq nothing 0 0
    := nothing 0 0
      name e nothing 0 0
      ref nothing 0 0
        call nothing 0 0
          name Localenv nothing 0 0
          seq nothing 0 0
            array array of list of ref Var 0 0
              name ENVHASHSIZE nothing 0 0
            seq nothing 0 0
              name pushed nothing 0 0
              seq nothing 0 0
                const (0) int 0 0
    seq nothing 0 0
      if nothing 0 0
        && nothing 0 0
          == nothing 0 0
            name pushed nothing 0 0
            name nil polymorphic type 0 0
          != nothing 0 0
            name env nothing 0 0
            name nil polymorphic type 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              := nothing 0 0
                name vl nothing 0 0
                call nothing 0 0
                  -> nothing 0 0
                    name env nothing 0 0
                    name getall nothing 0 0
              seq nothing 0 0
                for nothing 0 0
                  != nothing 0 0
                    name vl nothing 0 0
                    name nil polymorphic type 0 0
                  seq nothing 0 0
                    scope nothing 0 0
                      seq nothing 0 0
                        := nothing 0 0
                          tuple nothing 0 0
                            seq nothing 0 0
                              name name nothing 0 0
                              seq nothing 0 0
                                name val nothing 0 0
                          hd nothing 0 0
                            name vl nothing 0 0
                        seq nothing 0 0
                          call nothing 0 0
                            name hashadd nothing 0 0
                            seq nothing 0 0
                              . nothing 0 0
                                name e nothing 0 0
                                name vars nothing 0 0
                              seq nothing 0 0
                                call nothing 0 0
                                  name hashfn nothing 0 0
                                  seq nothing 0 0
                                    name name nothing 0 0
                                    seq nothing 0 0
                                      len nothing 0 0
                                        . nothing 0 0
                                          name e nothing 0 0
                                          name vars nothing 0 0
                                seq nothing 0 0
                                  ref nothing 0 0
                                    call nothing 0 0
                                      name Var nothing 0 0
                                      seq nothing 0 0
                                        name name nothing 0 0
                                        seq nothing 0 0
                                          call nothing 0 0
                                            name envstringtoval nothing 0 0
                                            seq nothing 0 0
                                              name val nothing 0 0
                                          seq nothing 0 0
                                            const (0) int 0 0
                    = nothing 0 0
                      name vl nothing 0 0
                      tl nothing 0 0
                        name vl nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          != nothing 0 0
            name pushed nothing 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            = nothing 0 0
              . nothing 0 0
                name e nothing 0 0
                name flags nothing 0 0
              . nothing 0 0
                name pushed nothing 0 0
                name flags nothing 0 0
        seq nothing 0 0
          return nothing 0 0
            name e nothing 0 0
typecheck tree: 
fn(){} fn(b: ref Builtins): ref Builtins 0 0
  name copybuiltins fn(b: ref Builtins): ref Builtins 0 0
  seq nothing 0 0
    := nothing 0 0
      name nb nothing 0 0
      ref nothing 0 0
        call nothing 0 0
          name Builtins nothing 0 0
          seq nothing 0 0
            array array of (string, list of Shellbuiltin) 0 0
              . nothing 0 0
                name b nothing 0 0
                name n nothing 0 0
            seq nothing 0 0
              . nothing 0 0
                name b nothing 0 0
                name n nothing 0 0
    seq nothing 0 0
      = nothing 0 0
        slice nothing 0 0
          . nothing 0 0
            name nb nothing 0 0
            name ba nothing 0 0
          seq nothing 0 0
            const (0) int 0 0
            nothing nothing 0 0
        slice nothing 0 0
          . nothing 0 0
            name b nothing 0 0
            name ba nothing 0 0
          seq nothing 0 0
            const (0) int 0 0
            . nothing 0 0
              name b nothing 0 0
              name n nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          name nb nothing 0 0
typecheck tree: 
fn(){} fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 0 0
  name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 0 0
  seq nothing 0 0
    := nothing 0 0
      name lo nothing 0 0
      const (0) int 0 0
    seq nothing 0 0
      := nothing 0 0
        name hi nothing 0 0
        - nothing 0 0
          . nothing 0 0
            name b nothing 0 0
            name n nothing 0 0
          const (1) int 0 0
      seq nothing 0 0
        for nothing 0 0
          <= nothing 0 0
            name lo nothing 0 0
            name hi nothing 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                := nothing 0 0
                  name mid nothing 0 0
                  / nothing 0 0
                    + nothing 0 0
                      name lo nothing 0 0
                      name hi nothing 0 0
                    const (2) int 0 0
                seq nothing 0 0
                  := nothing 0 0
                    tuple nothing 0 0
                      seq nothing 0 0
                        name bname nothing 0 0
                        seq nothing 0 0
                          name bmod nothing 0 0
                    index nothing 0 0
                      . nothing 0 0
                        name b nothing 0 0
                        name ba nothing 0 0
                      name mid nothing 0 0
                  seq nothing 0 0
                    if nothing 0 0
                      < nothing 0 0
                        name name nothing 0 0
                        name bname nothing 0 0
                      seq nothing 0 0
                        = nothing 0 0
                          name hi nothing 0 0
                          - nothing 0 0
                            name mid nothing 0 0
                            const (1) int 0 0
                        if nothing 0 0
                          > nothing 0 0
                            name name nothing 0 0
                            name bname nothing 0 0
                          seq nothing 0 0
                            = nothing 0 0
                              name lo nothing 0 0
                              + nothing 0 0
                                name mid nothing 0 0
                                const (1) int 0 0
                            return nothing 0 0
                              tuple nothing 0 0
                                seq nothing 0 0
                                  name mid nothing 0 0
                                  seq nothing 0 0
                                    name bmod nothing 0 0
        seq nothing 0 0
          return nothing 0 0
            tuple nothing 0 0
              seq nothing 0 0
                name lo nothing 0 0
                seq nothing 0 0
                  name nil polymorphic type 0 0
typecheck tree: 
fn(){} fn(b: ref Builtins, name: string, mod: Shellbuiltin) 0 0
  name removebuiltin fn(b: ref Builtins, name: string, mod: Shellbuiltin) 0 0
  seq nothing 0 0
    := nothing 0 0
      tuple nothing 0 0
        seq nothing 0 0
          name n nothing 0 0
          seq nothing 0 0
            name bmods nothing 0 0
      call nothing 0 0
        name findbuiltin nothing 0 0
        seq nothing 0 0
          name b nothing 0 0
          seq nothing 0 0
            name name nothing 0 0
    seq nothing 0 0
      if nothing 0 0
        == nothing 0 0
          name bmods nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          return nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          == nothing 0 0
            hd nothing 0 0
              name bmods nothing 0 0
            name mod nothing 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  != nothing 0 0
                    tl nothing 0 0
                      name bmods nothing 0 0
                    name nil polymorphic type 0 0
                  seq nothing 0 0
                    = nothing 0 0
                      index nothing 0 0
                        . nothing 0 0
                          name b nothing 0 0
                          name ba nothing 0 0
                        name n nothing 0 0
                      tuple nothing 0 0
                        seq nothing 0 0
                          name name nothing 0 0
                          seq nothing 0 0
                            tl nothing 0 0
                              name bmods nothing 0 0
                    scope nothing 0 0
                      seq nothing 0 0
                        = nothing 0 0
                          slice nothing 0 0
                            . nothing 0 0
                              name b nothing 0 0
                              name ba nothing 0 0
                            seq nothing 0 0
                              name n nothing 0 0
                              nothing nothing 0 0
                          slice nothing 0 0
                            . nothing 0 0
                              name b nothing 0 0
                              name ba nothing 0 0
                            seq nothing 0 0
                              + nothing 0 0
                                name n nothing 0 0
                                const (1) int 0 0
                              . nothing 0 0
                                name b nothing 0 0
                                name n nothing 0 0
                        seq nothing 0 0
                          = nothing 0 0
                            index nothing 0 0
                              . nothing 0 0
                                name b nothing 0 0
                                name ba nothing 0 0
                              -- nothing 0 0
                                . nothing 0 0
                                  name b nothing 0 0
                                  name n nothing 0 0
                            tuple nothing 0 0
                              seq nothing 0 0
                                name nil polymorphic type 0 0
                                seq nothing 0 0
                                  name nil polymorphic type 0 0
typecheck tree: 
fn(){} fn(b: ref Builtins, name: string, mod: Shellbuiltin) 0 0
  name addbuiltin fn(b: ref Builtins, name: string, mod: Shellbuiltin) 0 0
  seq nothing 0 0
    if nothing 0 0
      || nothing 0 0
        == nothing 0 0
          name mod nothing 0 0
          name nil polymorphic type 0 0
        && nothing 0 0
          == nothing 0 0
            name name nothing 0 0
            const builtin string 0 0
          != nothing 0 0
            name mod nothing 0 0
            name myselfbuiltin nothing 0 0
      seq nothing 0 0
        return nothing 0 0
    seq nothing 0 0
      := nothing 0 0
        tuple nothing 0 0
          seq nothing 0 0
            name n nothing 0 0
            seq nothing 0 0
              name bmods nothing 0 0
        call nothing 0 0
          name findbuiltin nothing 0 0
          seq nothing 0 0
            name b nothing 0 0
            seq nothing 0 0
              name name nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          != nothing 0 0
            name bmods nothing 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  == nothing 0 0
                    hd nothing 0 0
                      name bmods nothing 0 0
                    name myselfbuiltin nothing 0 0
                  seq nothing 0 0
                    = nothing 0 0
                      index nothing 0 0
                        . nothing 0 0
                          name b nothing 0 0
                          name ba nothing 0 0
                        name n nothing 0 0
                      tuple nothing 0 0
                        seq nothing 0 0
                          name name nothing 0 0
                          seq nothing 0 0
                            :: nothing 0 0
                              name mod nothing 0 0
                              name bmods nothing 0 0
                    = nothing 0 0
                      index nothing 0 0
                        . nothing 0 0
                          name b nothing 0 0
                          name ba nothing 0 0
                        name n nothing 0 0
                      tuple nothing 0 0
                        seq nothing 0 0
                          name name nothing 0 0
                          seq nothing 0 0
                            :: nothing 0 0
                              name mod nothing 0 0
                              name nil polymorphic type 0 0
            scope nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  == nothing 0 0
                    . nothing 0 0
                      name b nothing 0 0
                      name n nothing 0 0
                    len nothing 0 0
                      . nothing 0 0
                        name b nothing 0 0
                        name ba nothing 0 0
                  seq nothing 0 0
                    scope nothing 0 0
                      seq nothing 0 0
                        := nothing 0 0
                          name nb nothing 0 0
                          array array of (string, list of Shellbuiltin) 0 0
                            + nothing 0 0
                              . nothing 0 0
                                name b nothing 0 0
                                name n nothing 0 0
                              const (10) int 0 0
                        seq nothing 0 0
                          = nothing 0 0
                            slice nothing 0 0
                              name nb nothing 0 0
                              seq nothing 0 0
                                const (0) int 0 0
                                nothing nothing 0 0
                            slice nothing 0 0
                              . nothing 0 0
                                name b nothing 0 0
                                name ba nothing 0 0
                              seq nothing 0 0
                                const (0) int 0 0
                                . nothing 0 0
typecheck tree: 
fn(){} fn(b: ref Builtins, mod: Shellbuiltin) 0 0
  name removebuiltinmod fn(b: ref Builtins, mod: Shellbuiltin) 0 0
  seq nothing 0 0
    := nothing 0 0
      name j nothing 0 0
      const (0) int 0 0
    seq nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name i nothing 0 0
          const (0) int 0 0
        for nothing 0 0
          < nothing 0 0
            name i nothing 0 0
            . nothing 0 0
              name b nothing 0 0
              name n nothing 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                := nothing 0 0
                  tuple nothing 0 0
                    seq nothing 0 0
                      name name nothing 0 0
                      seq nothing 0 0
                        name bmods nothing 0 0
                  index nothing 0 0
                    . nothing 0 0
                      name b nothing 0 0
                      name ba nothing 0 0
                    name i nothing 0 0
                seq nothing 0 0
                  if nothing 0 0
                    == nothing 0 0
                      hd nothing 0 0
                        name bmods nothing 0 0
                      name mod nothing 0 0
                    seq nothing 0 0
                      = nothing 0 0
                        name bmods nothing 0 0
                        tl nothing 0 0
                          name bmods nothing 0 0
                  seq nothing 0 0
                    if nothing 0 0
                      != nothing 0 0
                        name bmods nothing 0 0
                        name nil polymorphic type 0 0
                      seq nothing 0 0
                        = nothing 0 0
                          index nothing 0 0
                            . nothing 0 0
                              name b nothing 0 0
                              name ba nothing 0 0
                            ++ nothing 0 0
                              name j nothing 0 0
                          tuple nothing 0 0
                            seq nothing 0 0
                              name name nothing 0 0
                              seq nothing 0 0
                                name bmods nothing 0 0
            ++ nothing 0 0
              name i nothing 0 0
      seq nothing 0 0
        = nothing 0 0
          . nothing 0 0
            name b nothing 0 0
            name n nothing 0 0
          name j nothing 0 0
        seq nothing 0 0
          for nothing 0 0
            < nothing 0 0
              name j nothing 0 0
              name i nothing 0 0
            seq nothing 0 0
              = nothing 0 0
                index nothing 0 0
                  . nothing 0 0
                    name b nothing 0 0
                    name ba nothing 0 0
                  name j nothing 0 0
                tuple nothing 0 0
                  seq nothing 0 0
                    name nil polymorphic type 0 0
                    seq nothing 0 0
                      name nil polymorphic type 0 0
              ++ nothing 0 0
                name j nothing 0 0
typecheck tree: 
fn(){} fn(e: ref Localenv) 0 0
  name export fn(e: ref Localenv) 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        name env nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
    seq nothing 0 0
      if nothing 0 0
        != nothing 0 0
          . nothing 0 0
            name e nothing 0 0
            name pushed nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          call nothing 0 0
            name export nothing 0 0
            seq nothing 0 0
              . nothing 0 0
                name e nothing 0 0
                name pushed nothing 0 0
      seq nothing 0 0
        seq nothing 0 0
          := nothing 0 0
            name i nothing 0 0
            const (0) int 0 0
          for nothing 0 0
            < nothing 0 0
              name i nothing 0 0
              len nothing 0 0
                . nothing 0 0
                  name e nothing 0 0
                  name vars nothing 0 0
            seq nothing 0 0
              scope nothing 0 0
                seq nothing 0 0
                  := nothing 0 0
                    name vl nothing 0 0
                    index nothing 0 0
                      . nothing 0 0
                        name e nothing 0 0
                        name vars nothing 0 0
                      name i nothing 0 0
                  seq nothing 0 0
                    for nothing 0 0
                      != nothing 0 0
                        name vl nothing 0 0
                        name nil polymorphic type 0 0
                      seq nothing 0 0
                        scope nothing 0 0
                          seq nothing 0 0
                            := nothing 0 0
                              name v nothing 0 0
                              hd nothing 0 0
                                name vl nothing 0 0
                            seq nothing 0 0
                              if nothing 0 0
                                && nothing 0 0
                                  & nothing 0 0
                                    . nothing 0 0
                                      name v nothing 0 0
                                      name flags nothing 0 0
                                    . nothing 0 0
                                      name Var nothing 0 0
                                      name CHANGED nothing 0 0
                                  ! nothing 0 0
                                    & nothing 0 0
                                      . nothing 0 0
                                        name v nothing 0 0
                                        name flags nothing 0 0
                                      . nothing 0 0
                                        name Var nothing 0 0
                                        name NOEXPORT nothing 0 0
                                seq nothing 0 0
                                  scope nothing 0 0
                                    seq nothing 0 0
                                      call nothing 0 0
                                        name setenv nothing 0 0
                                        seq nothing 0 0
                                          . nothing 0 0
                                            name v nothing 0 0
                                            name name nothing 0 0
                                          seq nothing 0 0
                                            . nothing 0 0
                                              name v nothing 0 0
                                              name val nothing 0 0
                                      seq nothing 0 0
                                        &= nothing 0 0
                                          . nothing 0 0
                                            name v nothing 0 0
                                            name flags nothing 0 0
                                          ~ nothing 0 0
                                            . nothing 0 0
                                              name Var 
typecheck tree: 
fn(){} fn(name: string): int 0 0
  name noexport fn(name: string): int 0 0
  seq nothing 0 0
    case nothing 0 0
      name name nothing 0 0
      seq nothing 0 0
        label nothing 0 0
          seq nothing 0 0
            const 0 string 0 0
            seq nothing 0 0
              const * string 0 0
              seq nothing 0 0
                const status string 0 0
          scope nothing 0 0
            return nothing 0 0
              const (1) int 0 0
    seq nothing 0 0
      return nothing 0 0
        const (0) int 0 0
typecheck tree: 
fn(){} fn(val: list of ref Listnode, k: int): list of ref Listnode 0 0
  name index fn(val: list of ref Listnode, k: int): list of ref Listnode 0 0
  seq nothing 0 0
    for nothing 0 0
      && nothing 0 0
        > nothing 0 0
          name k nothing 0 0
          const (0) int 0 0
        != nothing 0 0
          name val nothing 0 0
          name nil polymorphic type 0 0
      seq nothing 0 0
        = nothing 0 0
          name val nothing 0 0
          tl nothing 0 0
            name val nothing 0 0
        -- nothing 0 0
          name k nothing 0 0
    seq nothing 0 0
      if nothing 0 0
        != nothing 0 0
          name val nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          = nothing 0 0
            name val nothing 0 0
            :: nothing 0 0
              hd nothing 0 0
                name val nothing 0 0
              name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          name val nothing 0 0
typecheck tree: 
fn(){} fn(name: string): list of ref Listnode 0 0
  name getenv fn(name: string): list of ref Listnode 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        name env nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          name nil polymorphic type 0 0
    seq nothing 0 0
      return nothing 0 0
        call nothing 0 0
          name envstringtoval nothing 0 0
          seq nothing 0 0
            call nothing 0 0
              -> nothing 0 0
                name env nothing 0 0
                name getenv nothing 0 0
              seq nothing 0 0
                name name nothing 0 0
typecheck tree: 
fn(){} fn(v: string): list of ref Listnode 0 0
  name envstringtoval fn(v: string): list of ref Listnode 0 0
  seq nothing 0 0
    return nothing 0 0
      call nothing 0 0
        name stringlist2list nothing 0 0
        seq nothing 0 0
          call nothing 0 0
            -> nothing 0 0
              name str nothing 0 0
              name unquoted nothing 0 0
            seq nothing 0 0
              name v nothing 0 0
typecheck tree: 
fn(){} fn(v: string): list of ref Listnode 0 0
  name XXXenvstringtoval fn(v: string): list of ref Listnode 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        len nothing 0 0
          name v nothing 0 0
        const (0) int 0 0
      seq nothing 0 0
        return nothing 0 0
          name nil polymorphic type 0 0
    seq nothing 0 0
      := nothing 0 0
        name start nothing 0 0
        len nothing 0 0
          name v nothing 0 0
      seq nothing 0 0
        vardecl list of ref Listnode 0 0
          seq nothing 0 0
        seq nothing 0 0
          seq nothing 0 0
            := nothing 0 0
              name i nothing 0 0
              - nothing 0 0
                name start nothing 0 0
                const (1) int 0 0
            for nothing 0 0
              >= nothing 0 0
                name i nothing 0 0
                const (0) int 0 0
              seq nothing 0 0
                scope nothing 0 0
                  seq nothing 0 0
                    if nothing 0 0
                      == nothing 0 0
                        index nothing 0 0
                          name v nothing 0 0
                          name i nothing 0 0
                        name ENVSEP nothing 0 0
                      seq nothing 0 0
                        scope nothing 0 0
                          seq nothing 0 0
                            = nothing 0 0
                              name val nothing 0 0
                              :: nothing 0 0
                                ref nothing 0 0
                                  call nothing 0 0
                                    name Listnode nothing 0 0
                                    seq nothing 0 0
                                      name nil polymorphic type 0 0
                                      seq nothing 0 0
                                        slice nothing 0 0
                                          name v nothing 0 0
                                          seq nothing 0 0
                                            + nothing 0 0
                                              name i nothing 0 0
                                              const (1) int 0 0
                                            name start nothing 0 0
                                name val nothing 0 0
                            seq nothing 0 0
                              = nothing 0 0
                                name start nothing 0 0
                                name i nothing 0 0
                -- nothing 0 0
                  name i nothing 0 0
          seq nothing 0 0
            return nothing 0 0
              :: nothing 0 0
                ref nothing 0 0
                  call nothing 0 0
                    name Listnode nothing 0 0
                    seq nothing 0 0
                      name nil polymorphic type 0 0
                      seq nothing 0 0
                        slice nothing 0 0
                          name v nothing 0 0
                          seq nothing 0 0
                            const (0) int 0 0
                            name start nothing 0 0
                name val nothing 0 0
typecheck tree: 
fn(){} fn(name: string, val: list of ref Listnode) 0 0
  name setenv fn(name: string, val: list of ref Listnode) 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        name env nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
    seq nothing 0 0
      call nothing 0 0
        -> nothing 0 0
          name env nothing 0 0
          name setenv nothing 0 0
        seq nothing 0 0
          name name nothing 0 0
          seq nothing 0 0
            call nothing 0 0
              name quoted nothing 0 0
              seq nothing 0 0
                name val nothing 0 0
                seq nothing 0 0
                  const (1) int 0 0
typecheck tree: 
fn(){} fn(s: string): int 0 0
  name containswildchar fn(s: string): int 0 0
  seq nothing 0 0
    := nothing 0 0
      name i nothing 0 0
      const (0) int 0 0
    seq nothing 0 0
      for nothing 0 0
        < nothing 0 0
          name i nothing 0 0
          len nothing 0 0
            name s nothing 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              if nothing 0 0
                && nothing 0 0
                  == nothing 0 0
                    index nothing 0 0
                      name s nothing 0 0
                      name i nothing 0 0
                    name GLOB nothing 0 0
                  < nothing 0 0
                    name i nothing 0 0
                    - nothing 0 0
                      len nothing 0 0
                        name s nothing 0 0
                      const (1) int 0 0
                seq nothing 0 0
                  scope nothing 0 0
                    seq nothing 0 0
                      case nothing 0 0
                        index nothing 0 0
                          name s nothing 0 0
                          + nothing 0 0
                            name i nothing 0 0
                            const (1) int 0 0
                        seq nothing 0 0
                          label nothing 0 0
                            seq nothing 0 0
                              const (42) int 0 0
                              seq nothing 0 0
                                const (91) int 0 0
                                seq nothing 0 0
                                  const (63) int 0 0
                                  seq nothing 0 0
                                    name GLOB nothing 0 0
                            scope nothing 0 0
                              return nothing 0 0
                                const (1) int 0 0
          ++ nothing 0 0
            name i nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          const (0) int 0 0
typecheck tree: 
fn(){} fn(word: string): string 0 0
  name patquote fn(word: string): string 0 0
  seq nothing 0 0
    := nothing 0 0
      name outword nothing 0 0
      const  string 0 0
    seq nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name i nothing 0 0
          const (0) int 0 0
        for nothing 0 0
          < nothing 0 0
            name i nothing 0 0
            len nothing 0 0
              name word nothing 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                case nothing 0 0
                  index nothing 0 0
                    name word nothing 0 0
                    name i nothing 0 0
                  seq nothing 0 0
                    label nothing 0 0
                      seq nothing 0 0
                        const (91) int 0 0
                        seq nothing 0 0
                          const (42) int 0 0
                          seq nothing 0 0
                            const (63) int 0 0
                            seq nothing 0 0
                              const (92) int 0 0
                      scope nothing 0 0
                        = nothing 0 0
                          index nothing 0 0
                            name outword nothing 0 0
                            len nothing 0 0
                              name outword nothing 0 0
                          const (92) int 0 0
                    seq nothing 0 0
                      label nothing 0 0
                        seq nothing 0 0
                          name GLOB nothing 0 0
                        scope nothing 0 0
                          seq nothing 0 0
                            seq nothing 0 0
                              ++ nothing 0 0
                                name i nothing 0 0
                              if nothing 0 0
                                >= nothing 0 0
                                  name i nothing 0 0
                                  len nothing 0 0
                                    name word nothing 0 0
                                seq nothing 0 0
                                  return nothing 0 0
                                    name outword nothing 0 0
                            if nothing 0 0
                              && nothing 0 0
                                && nothing 0 0
                                  == nothing 0 0
                                    index nothing 0 0
                                      name word nothing 0 0
                                      name i nothing 0 0
                                    const (91) int 0 0
                                  < nothing 0 0
                                    name i nothing 0 0
                                    - nothing 0 0
                                      len nothing 0 0
                                        name word nothing 0 0
                                      const (1) int 0 0
                                == nothing 0 0
                                  index nothing 0 0
                                    name word nothing 0 0
                                    + nothing 0 0
                                      name i nothing 0 0
                                      const (1) int 0 0
                                  const (126) int 0 0
                              seq nothing 0 0
                                = nothing 0 0
                                  index nothing 0 0
                                    name word nothing 0 0
                                    + nothing 0 0
                                      name i nothing 0 0
                                      const (1) int 0 0
                                  const (94) int 0 0
                seq nothing 0 0
                  = nothing 0 0
                    index nothing 0 0
                      name outword nothing 0 0
                      len nothing 0 0
                        name outword nothing 0 0
                    index nothing 0 0
                      name word nothing 0 0
                      name i noth
typecheck tree: 
fn(){} fn(s: string): string 0 0
  name deglob fn(s: string): string 0 0
  seq nothing 0 0
    := nothing 0 0
      name j nothing 0 0
      const (0) int 0 0
    seq nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name i nothing 0 0
          const (0) int 0 0
        for nothing 0 0
          < nothing 0 0
            name i nothing 0 0
            len nothing 0 0
              name s nothing 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  != nothing 0 0
                    index nothing 0 0
                      name s nothing 0 0
                      name i nothing 0 0
                    name GLOB nothing 0 0
                  seq nothing 0 0
                    scope nothing 0 0
                      seq nothing 0 0
                        if nothing 0 0
                          != nothing 0 0
                            name i nothing 0 0
                            name j nothing 0 0
                          seq nothing 0 0
                            = nothing 0 0
                              index nothing 0 0
                                name s nothing 0 0
                                name j nothing 0 0
                              index nothing 0 0
                                name s nothing 0 0
                                name i nothing 0 0
                        seq nothing 0 0
                          ++ nothing 0 0
                            name j nothing 0 0
            ++ nothing 0 0
              name i nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          == nothing 0 0
            name i nothing 0 0
            name j nothing 0 0
          seq nothing 0 0
            return nothing 0 0
              name s nothing 0 0
        seq nothing 0 0
          return nothing 0 0
            slice nothing 0 0
              name s nothing 0 0
              seq nothing 0 0
                const (0) int 0 0
                name j nothing 0 0
typecheck tree: 
fn(){} fn(nl: list of ref Listnode): list of ref Listnode 0 0
  name glob fn(nl: list of ref Listnode): list of ref Listnode 0 0
  seq nothing 0 0
    vardecl list of ref Listnode 0 0
      seq nothing 0 0
    seq nothing 0 0
      for nothing 0 0
        != nothing 0 0
          name nl nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              := nothing 0 0
                name n nothing 0 0
                hd nothing 0 0
                  name nl nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  call nothing 0 0
                    name containswildchar nothing 0 0
                    seq nothing 0 0
                      . nothing 0 0
                        name n nothing 0 0
                        name word nothing 0 0
                  seq nothing 0 0
                    scope nothing 0 0
                      seq nothing 0 0
                        := nothing 0 0
                          name qword nothing 0 0
                          call nothing 0 0
                            name patquote nothing 0 0
                            seq nothing 0 0
                              . nothing 0 0
                                name n nothing 0 0
                                name word nothing 0 0
                        seq nothing 0 0
                          := nothing 0 0
                            name files nothing 0 0
                            call nothing 0 0
                              -> nothing 0 0
                                name filepat nothing 0 0
                                name expand nothing 0 0
                              seq nothing 0 0
                                name qword nothing 0 0
                          seq nothing 0 0
                            if nothing 0 0
                              == nothing 0 0
                                name files nothing 0 0
                                name nil polymorphic type 0 0
                              seq nothing 0 0
                                = nothing 0 0
                                  name files nothing 0 0
                                  :: nothing 0 0
                                    call nothing 0 0
                                      name deglob nothing 0 0
                                      seq nothing 0 0
                                        . nothing 0 0
                                          name n nothing 0 0
                                          name word nothing 0 0
                                    name nil polymorphic type 0 0
                            seq nothing 0 0
                              for nothing 0 0
                                != nothing 0 0
                                  name files nothing 0 0
                                  name nil polymorphic type 0 0
                                seq nothing 0 0
                                  scope nothing 0 0
                                    seq nothing 0 0
                                      = nothing 0 0
                                        name new nothing 0 0
                                        :: nothing 0 0
                                          ref nothing 0 0
                                            call nothing 0 0
                                              name Listnode nothing 0 0
                                              seq nothing 0 0
                                                name nil polymorphic type 0 0
                                                seq nothing 0 0
                                                  hd nothing 0 0
                                                    name files nothing 0 0
                                          name new nothing 0 0
                                      seq nothing 0 0
                                        = nothing 0 0
                                          name files nothing 0 0
                                          tl nothing 0 0
                                        
typecheck tree: 
fn(){} fn(nl: list of ref Listnode): list of string 0 0
  name list2stringlist fn(nl: list of ref Listnode): list of string 0 0
  seq nothing 0 0
    vardecli nothing 0 0
      vardecl list of string 0 0
        seq nothing 0 0
      = nothing 0 0
        name ret nothing 0 0
        name nil polymorphic type 0 0
    seq nothing 0 0
      for nothing 0 0
        != nothing 0 0
          name nl nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              vardecl string 0 0
                seq nothing 0 0
              seq nothing 0 0
                := nothing 0 0
                  name el nothing 0 0
                  hd nothing 0 0
                    name nl nothing 0 0
                seq nothing 0 0
                  if nothing 0 0
                    || nothing 0 0
                      != nothing 0 0
                        . nothing 0 0
                          name el nothing 0 0
                          name word nothing 0 0
                        name nil polymorphic type 0 0
                      == nothing 0 0
                        . nothing 0 0
                          name el nothing 0 0
                          name cmd nothing 0 0
                        name nil polymorphic type 0 0
                    seq nothing 0 0
                      = nothing 0 0
                        name newel nothing 0 0
                        . nothing 0 0
                          name el nothing 0 0
                          name word nothing 0 0
                      = nothing 0 0
                        . nothing 0 0
                          name el nothing 0 0
                          name word nothing 0 0
                        = nothing 0 0
                          name newel nothing 0 0
                          call nothing 0 0
                            name cmd2string nothing 0 0
                            seq nothing 0 0
                              . nothing 0 0
                                name el nothing 0 0
                                name cmd nothing 0 0
                  seq nothing 0 0
                    = nothing 0 0
                      name ret nothing 0 0
                      :: nothing 0 0
                        name newel nothing 0 0
                        name ret nothing 0 0
                    seq nothing 0 0
                      = nothing 0 0
                        name nl nothing 0 0
                        tl nothing 0 0
                          name nl nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name sl nothing 0 0
          call nothing 0 0
            name revstringlist nothing 0 0
            seq nothing 0 0
              name ret nothing 0 0
        seq nothing 0 0
          return nothing 0 0
            name sl nothing 0 0
typecheck tree: 
fn(){} fn(sl: list of string): list of ref Listnode 0 0
  name stringlist2list fn(sl: list of string): list of ref Listnode 0 0
  seq nothing 0 0
    vardecl list of ref Listnode 0 0
      seq nothing 0 0
    seq nothing 0 0
      for nothing 0 0
        != nothing 0 0
          name sl nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              = nothing 0 0
                name ret nothing 0 0
                :: nothing 0 0
                  ref nothing 0 0
                    call nothing 0 0
                      name Listnode nothing 0 0
                      seq nothing 0 0
                        name nil polymorphic type 0 0
                        seq nothing 0 0
                          hd nothing 0 0
                            name sl nothing 0 0
                  name ret nothing 0 0
              seq nothing 0 0
                = nothing 0 0
                  name sl nothing 0 0
                  tl nothing 0 0
                    name sl nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          call nothing 0 0
            name revlist nothing 0 0
            seq nothing 0 0
              name ret nothing 0 0
typecheck tree: 
fn(){} fn(l: list of string): list of string 0 0
  name revstringlist fn(l: list of string): list of string 0 0
  seq nothing 0 0
    vardecl list of string 0 0
      seq nothing 0 0
    seq nothing 0 0
      for nothing 0 0
        != nothing 0 0
          name l nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              = nothing 0 0
                name t nothing 0 0
                :: nothing 0 0
                  hd nothing 0 0
                    name l nothing 0 0
                  name t nothing 0 0
              seq nothing 0 0
                = nothing 0 0
                  name l nothing 0 0
                  tl nothing 0 0
                    name l nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          name t nothing 0 0
typecheck tree: 
fn(){} fn(l: list of ref Listnode): list of ref Listnode 0 0
  name revlist fn(l: list of ref Listnode): list of ref Listnode 0 0
  seq nothing 0 0
    vardecl list of ref Listnode 0 0
      seq nothing 0 0
    seq nothing 0 0
      for nothing 0 0
        != nothing 0 0
          name l nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              = nothing 0 0
                name t nothing 0 0
                :: nothing 0 0
                  hd nothing 0 0
                    name l nothing 0 0
                  name t nothing 0 0
              seq nothing 0 0
                = nothing 0 0
                  name l nothing 0 0
                  tl nothing 0 0
                    name l nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          name t nothing 0 0
typecheck tree: 
fn(){} fn(isassign: int, redir: ref Redir): string 0 0
  name fdassignstr fn(isassign: int, redir: ref Redir): string 0 0
  seq nothing 0 0
    vardecli nothing 0 0
      vardecl string 0 0
        seq nothing 0 0
      = nothing 0 0
        name l nothing 0 0
        name nil polymorphic type 0 0
    seq nothing 0 0
      if nothing 0 0
        >= nothing 0 0
          . nothing 0 0
            name redir nothing 0 0
            name fd1 nothing 0 0
          const (0) int 0 0
        seq nothing 0 0
          = nothing 0 0
            name l nothing 0 0
            cast string 0 0
              . nothing 0 0
                name redir nothing 0 0
                name fd1 nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          name isassign nothing 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                vardecli nothing 0 0
                  vardecl string 0 0
                    seq nothing 0 0
                  = nothing 0 0
                    name r nothing 0 0
                    name nil polymorphic type 0 0
                seq nothing 0 0
                  if nothing 0 0
                    >= nothing 0 0
                      . nothing 0 0
                        name redir nothing 0 0
                        name fd2 nothing 0 0
                      const (0) int 0 0
                    seq nothing 0 0
                      = nothing 0 0
                        name r nothing 0 0
                        cast string 0 0
                          . nothing 0 0
                            name redir nothing 0 0
                            name fd2 nothing 0 0
                  seq nothing 0 0
                    return nothing 0 0
                      + nothing 0 0
                        + nothing 0 0
                          + nothing 0 0
                            + nothing 0 0
                              const [ string 0 0
                              name l nothing 0 0
                            const = string 0 0
                          name r nothing 0 0
                        const ] string 0 0
        seq nothing 0 0
          return nothing 0 0
            + nothing 0 0
              + nothing 0 0
                const [ string 0 0
                name l nothing 0 0
              const ] string 0 0
typecheck tree: 
fn(){} fn(rtype: int): string 0 0
  name redirstr fn(rtype: int): string 0 0
  seq nothing 0 0
    case nothing 0 0
      name rtype nothing 0 0
      seq nothing 0 0
        label nothing 0 0
          seq nothing 0 0
            * nothing 0 0
            seq nothing 0 0
              -> nothing 0 0
                name Sys nothing 0 0
                name OREAD nothing 0 0
          scope nothing 0 0
            return nothing 0 0
              const < string 0 0
        seq nothing 0 0
          label nothing 0 0
            seq nothing 0 0
              -> nothing 0 0
                name Sys nothing 0 0
                name OWRITE nothing 0 0
            scope nothing 0 0
              return nothing 0 0
                const > string 0 0
          seq nothing 0 0
            label nothing 0 0
              seq nothing 0 0
                | nothing 0 0
                  -> nothing 0 0
                    name Sys nothing 0 0
                    name OWRITE nothing 0 0
                  name OAPPEND nothing 0 0
              scope nothing 0 0
                return nothing 0 0
                  const >> string 0 0
            seq nothing 0 0
              label nothing 0 0
                seq nothing 0 0
                  -> nothing 0 0
                    name Sys nothing 0 0
                    name ORDWR nothing 0 0
                scope nothing 0 0
                  return nothing 0 0
                    const <> string 0 0
typecheck tree: 
fn(){} fn(n: ref Node): string 0 0
  name cmd2string fn(c: ref Node): string 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        name n nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          const  string 0 0
    seq nothing 0 0
      vardecl string 0 0
        seq nothing 0 0
      seq nothing 0 0
        case nothing 0 0
          . nothing 0 0
            name n nothing 0 0
            name ntype nothing 0 0
          seq nothing 0 0
            label nothing 0 0
              seq nothing 0 0
                name n_BLOCK nothing 0 0
              scope nothing 0 0
                = nothing 0 0
                  name s nothing 0 0
                  + nothing 0 0
                    + nothing 0 0
                      const { string 0 0
                      call nothing 0 0
                        name cmd2string nothing 0 0
                        seq nothing 0 0
                          . nothing 0 0
                            name n nothing 0 0
                            name left nothing 0 0
                    const } string 0 0
            seq nothing 0 0
              label nothing 0 0
                seq nothing 0 0
                  name n_VAR nothing 0 0
                scope nothing 0 0
                  seq nothing 0 0
                    = nothing 0 0
                      name s nothing 0 0
                      + nothing 0 0
                        const $ string 0 0
                        call nothing 0 0
                          name cmd2string nothing 0 0
                          seq nothing 0 0
                            . nothing 0 0
                              name n nothing 0 0
                              name left nothing 0 0
                    if nothing 0 0
                      != nothing 0 0
                        . nothing 0 0
                          name n nothing 0 0
                          name right nothing 0 0
                        name nil polymorphic type 0 0
                      seq nothing 0 0
                        += nothing 0 0
                          name s nothing 0 0
                          + nothing 0 0
                            + nothing 0 0
                              const ( string 0 0
                              call nothing 0 0
                                name cmd2string nothing 0 0
                                seq nothing 0 0
                                  . nothing 0 0
                                    name n nothing 0 0
                                    name right nothing 0 0
                            const ) string 0 0
              seq nothing 0 0
                label nothing 0 0
                  seq nothing 0 0
                    name n_SQUASH nothing 0 0
                  scope nothing 0 0
                    = nothing 0 0
                      name s nothing 0 0
                      + nothing 0 0
                        const $" string 0 0
                        call nothing 0 0
                          name cmd2string nothing 0 0
                          seq nothing 0 0
                            . nothing 0 0
                              name n nothing 0 0
                              name left nothing 0 0
                seq nothing 0 0
                  label nothing 0 0
                    seq nothing 0 0
                      name n_COUNT nothing 0 0
                    scope nothing 0 0
                      = nothing 0 0
                        name s nothing 0 0
                        + nothing 0 0
                          const $# string 0 0
                          call nothing 0 0
                            name cmd2string nothing 0 0
                            seq nothing 0 0
                              . nothing 0 0
                                name n nothing 0 0
                                name left nothing 0 0
                  seq nothing 0 0
                    label nothing 0 0
                      seq nothing 0 0
                        name n_BQ nothing 0 0
                      scope nothing 0 0
  
typecheck tree: 
fn(){} fn(s: string, glob: int): string 0 0
  name quote fn(s: string, glob: int): string 0 0
  seq nothing 0 0
    := nothing 0 0
      name needquote nothing 0 0
      const (0) int 0 0
    seq nothing 0 0
      := nothing 0 0
        name t nothing 0 0
        const  string 0 0
      seq nothing 0 0
        seq nothing 0 0
          := nothing 0 0
            name i nothing 0 0
            const (0) int 0 0
          for nothing 0 0
            < nothing 0 0
              name i nothing 0 0
              len nothing 0 0
                name s nothing 0 0
            seq nothing 0 0
              scope nothing 0 0
                seq nothing 0 0
                  case nothing 0 0
                    index nothing 0 0
                      name s nothing 0 0
                      name i nothing 0 0
                    seq nothing 0 0
                      label nothing 0 0
                        seq nothing 0 0
                          const (123) int 0 0
                          seq nothing 0 0
                            const (125) int 0 0
                            seq nothing 0 0
                              const (40) int 0 0
                              seq nothing 0 0
                                const (41) int 0 0
                                seq nothing 0 0
                                  const (96) int 0 0
                                  seq nothing 0 0
                                    const (38) int 0 0
                                    seq nothing 0 0
                                      const (59) int 0 0
                                      seq nothing 0 0
                                        const (61) int 0 0
                                        seq nothing 0 0
                                          const (62) int 0 0
                                          seq nothing 0 0
                                            const (60) int 0 0
                                            seq nothing 0 0
                                              const (35) int 0 0
                                              seq nothing 0 0
                                                const (124) int 0 0
                                                seq nothing 0 0
                                                  const (42) int 0 0
                                                  seq nothing 0 0
                                                    const (91) int 0 0
                                                    seq nothing 0 0
                                                      const (63) int 0 0
                                                      seq nothing 0 0
                                                        const (36) int 0 0
                                                        seq nothing 0 0
                                                          const (94) int 0 0
                                                          seq nothing 0 0
                                                            const (32) int 0 0
                                                            seq nothing 0 0
                                                              const (9) int 0 0
                                                              seq nothing 0 0
                                                                const (10) int 0 0
                                                                seq nothing 0 0
                                                                  const (13) int 0 0
                        scope nothing 0 0
                          = nothing 0 0
                            name needquote nothing 0 0
                            const (1) int 0 0
                      seq nothing 0 0
                        label nothing 0 0
                          seq nothing 0 0
                            const (39) int 0 0
                          scope nothing 0 0
                            seq nothing 0 0
                              = nothing 0 0
                                index nothing 0 0
                                  name t nothi
typecheck tree: 
fn(){} fn(l: list of string, sep: string): string 0 0
  name squash fn(l: list of string, sep: string): string 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        name l nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          name nil polymorphic type 0 0
    seq nothing 0 0
      := nothing 0 0
        name s nothing 0 0
        hd nothing 0 0
          name l nothing 0 0
      seq nothing 0 0
        seq nothing 0 0
          = nothing 0 0
            name l nothing 0 0
            tl nothing 0 0
              name l nothing 0 0
          for nothing 0 0
            != nothing 0 0
              name l nothing 0 0
              name nil polymorphic type 0 0
            seq nothing 0 0
              += nothing 0 0
                name s nothing 0 0
                + nothing 0 0
                  name sep nothing 0 0
                  hd nothing 0 0
                    name l nothing 0 0
              = nothing 0 0
                name l nothing 0 0
                tl nothing 0 0
                  name l nothing 0 0
        seq nothing 0 0
          return nothing 0 0
            name s nothing 0 0
typecheck tree: 
fn(){} fn(s: string) 0 0
  name debug fn(s: string) 0 0
  seq nothing 0 0
    if nothing 0 0
      name DEBUG nothing 0 0
      seq nothing 0 0
        call nothing 0 0
          -> nothing 0 0
            name sys nothing 0 0
            name fprint nothing 0 0
          seq nothing 0 0
            call nothing 0 0
              name stderr nothing 0 0
            seq nothing 0 0
              const %s
 string 0 0
              seq nothing 0 0
                + nothing 0 0
                  + nothing 0 0
                    cast string 0 0
                      call nothing 0 0
                        -> nothing 0 0
                          name sys nothing 0 0
                          name pctl nothing 0 0
                        seq nothing 0 0
                          const (0) int 0 0
                          seq nothing 0 0
                            name nil polymorphic type 0 0
                    const :  string 0 0
                  name s nothing 0 0
typecheck tree: 
fn(){} fn(c: ref Context, nil: Sh): string 0 0
  name initbuiltin fn(c: ref Context, sh: Sh): string 0 0
  seq nothing 0 0
    := nothing 0 0
      name names nothing 0 0
      array nothing 0 0
        nothing nothing 0 0
        seq nothing 0 0
          elem nothing 0 0
            const load string 0 0
          seq nothing 0 0
            elem nothing 0 0
              const unload string 0 0
            seq nothing 0 0
              elem nothing 0 0
                const loaded string 0 0
              seq nothing 0 0
                elem nothing 0 0
                  const builtin string 0 0
                seq nothing 0 0
                  elem nothing 0 0
                    const syncenv string 0 0
                  seq nothing 0 0
                    elem nothing 0 0
                      const whatis string 0 0
                    seq nothing 0 0
                      elem nothing 0 0
                        const run string 0 0
                      seq nothing 0 0
                        elem nothing 0 0
                          const exit string 0 0
                        seq nothing 0 0
                          elem nothing 0 0
                            const @ string 0 0
    seq nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name i nothing 0 0
          const (0) int 0 0
        for nothing 0 0
          < nothing 0 0
            name i nothing 0 0
            len nothing 0 0
              name names nothing 0 0
          seq nothing 0 0
            call nothing 0 0
              . nothing 0 0
                name c nothing 0 0
                name addbuiltin nothing 0 0
              seq nothing 0 0
                index nothing 0 0
                  name names nothing 0 0
                  name i nothing 0 0
                seq nothing 0 0
                  name myselfbuiltin nothing 0 0
            ++ nothing 0 0
              name i nothing 0 0
      seq nothing 0 0
        call nothing 0 0
          . nothing 0 0
            name c nothing 0 0
            name addsbuiltin nothing 0 0
          seq nothing 0 0
            const loaded string 0 0
            seq nothing 0 0
              name myselfbuiltin nothing 0 0
        seq nothing 0 0
          call nothing 0 0
            . nothing 0 0
              name c nothing 0 0
              name addsbuiltin nothing 0 0
            seq nothing 0 0
              const quote string 0 0
              seq nothing 0 0
                name myselfbuiltin nothing 0 0
          seq nothing 0 0
            call nothing 0 0
              . nothing 0 0
                name c nothing 0 0
                name addsbuiltin nothing 0 0
              seq nothing 0 0
                const bquote string 0 0
                seq nothing 0 0
                  name myselfbuiltin nothing 0 0
            seq nothing 0 0
              call nothing 0 0
                . nothing 0 0
                  name c nothing 0 0
                  name addsbuiltin nothing 0 0
                seq nothing 0 0
                  const unquote string 0 0
                  seq nothing 0 0
                    name myselfbuiltin nothing 0 0
              seq nothing 0 0
                call nothing 0 0
                  . nothing 0 0
                    name c nothing 0 0
                    name addsbuiltin nothing 0 0
                  seq nothing 0 0
                    const builtin string 0 0
                    seq nothing 0 0
                      name myselfbuiltin nothing 0 0
                seq nothing 0 0
                  return nothing 0 0
                    name nil polymorphic type 0 0
typecheck tree: 
fn(){} fn(nil: ref Context, nil: Sh, nil: string, nil: int): string 0 0
  name whatis fn(nil: ref Context, nil: Sh, nil: string, nil: int): string 0 0
  seq nothing 0 0
    return nothing 0 0
      name nil polymorphic type 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, nil: Sh, argv: list of ref Listnode): list of ref Listnode 0 0
  name runsbuiltin fn(c: ref Context, sh: Sh, cmd: list of ref Listnode): list of ref Listnode 0 0
  seq nothing 0 0
    case nothing 0 0
      . nothing 0 0
        hd nothing 0 0
          name argv nothing 0 0
        name word nothing 0 0
      seq nothing 0 0
        label nothing 0 0
          seq nothing 0 0
            const loaded string 0 0
          scope nothing 0 0
            return nothing 0 0
              call nothing 0 0
                name sbuiltin_loaded nothing 0 0
                seq nothing 0 0
                  name ctxt nothing 0 0
                  seq nothing 0 0
                    name argv nothing 0 0
        seq nothing 0 0
          label nothing 0 0
            seq nothing 0 0
              const bquote string 0 0
            scope nothing 0 0
              return nothing 0 0
                call nothing 0 0
                  name sbuiltin_quote nothing 0 0
                  seq nothing 0 0
                    name ctxt nothing 0 0
                    seq nothing 0 0
                      name argv nothing 0 0
                      seq nothing 0 0
                        const (0) int 0 0
          seq nothing 0 0
            label nothing 0 0
              seq nothing 0 0
                const quote string 0 0
              scope nothing 0 0
                return nothing 0 0
                  call nothing 0 0
                    name sbuiltin_quote nothing 0 0
                    seq nothing 0 0
                      name ctxt nothing 0 0
                      seq nothing 0 0
                        name argv nothing 0 0
                        seq nothing 0 0
                          const (1) int 0 0
            seq nothing 0 0
              label nothing 0 0
                seq nothing 0 0
                  const unquote string 0 0
                scope nothing 0 0
                  return nothing 0 0
                    call nothing 0 0
                      name sbuiltin_unquote nothing 0 0
                      seq nothing 0 0
                        name ctxt nothing 0 0
                        seq nothing 0 0
                          name argv nothing 0 0
              seq nothing 0 0
                label nothing 0 0
                  seq nothing 0 0
                    const builtin string 0 0
                  scope nothing 0 0
                    return nothing 0 0
                      call nothing 0 0
                        name sbuiltin_builtin nothing 0 0
                        seq nothing 0 0
                          name ctxt nothing 0 0
                          seq nothing 0 0
                            name argv nothing 0 0
    seq nothing 0 0
      return nothing 0 0
        name nil polymorphic type 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, nil: Sh, args: list of ref Listnode, lseq: int): string 0 0
  name runbuiltin fn(c: ref Context, sh: Sh, cmd: list of ref Listnode, last: int): string 0 0
  seq nothing 0 0
    := nothing 0 0
      name status nothing 0 0
      const  string 0 0
    seq nothing 0 0
      := nothing 0 0
        name name nothing 0 0
        . nothing 0 0
          hd nothing 0 0
            name args nothing 0 0
          name word nothing 0 0
      seq nothing 0 0
        case nothing 0 0
          name name nothing 0 0
          seq nothing 0 0
            label nothing 0 0
              seq nothing 0 0
                const load string 0 0
              scope nothing 0 0
                = nothing 0 0
                  name status nothing 0 0
                  call nothing 0 0
                    name builtin_load nothing 0 0
                    seq nothing 0 0
                      name ctxt nothing 0 0
                      seq nothing 0 0
                        name args nothing 0 0
                        seq nothing 0 0
                          name lseq nothing 0 0
            seq nothing 0 0
              label nothing 0 0
                seq nothing 0 0
                  const loaded string 0 0
                scope nothing 0 0
                  = nothing 0 0
                    name status nothing 0 0
                    call nothing 0 0
                      name builtin_loaded nothing 0 0
                      seq nothing 0 0
                        name ctxt nothing 0 0
                        seq nothing 0 0
                          name args nothing 0 0
                          seq nothing 0 0
                            name lseq nothing 0 0
              seq nothing 0 0
                label nothing 0 0
                  seq nothing 0 0
                    const unload string 0 0
                  scope nothing 0 0
                    = nothing 0 0
                      name status nothing 0 0
                      call nothing 0 0
                        name builtin_unload nothing 0 0
                        seq nothing 0 0
                          name ctxt nothing 0 0
                          seq nothing 0 0
                            name args nothing 0 0
                            seq nothing 0 0
                              name lseq nothing 0 0
                seq nothing 0 0
                  label nothing 0 0
                    seq nothing 0 0
                      const builtin string 0 0
                    scope nothing 0 0
                      = nothing 0 0
                        name status nothing 0 0
                        call nothing 0 0
                          name builtin_builtin nothing 0 0
                          seq nothing 0 0
                            name ctxt nothing 0 0
                            seq nothing 0 0
                              name args nothing 0 0
                              seq nothing 0 0
                                name lseq nothing 0 0
                  seq nothing 0 0
                    label nothing 0 0
                      seq nothing 0 0
                        const whatis string 0 0
                      scope nothing 0 0
                        = nothing 0 0
                          name status nothing 0 0
                          call nothing 0 0
                            name builtin_whatis nothing 0 0
                            seq nothing 0 0
                              name ctxt nothing 0 0
                              seq nothing 0 0
                                name args nothing 0 0
                                seq nothing 0 0
                                  name lseq nothing 0 0
                    seq nothing 0 0
                      label nothing 0 0
                        seq nothing 0 0
                          const run string 0 0
                        scope nothing 0 0
                          = nothing 0 0
                            name status nothing 0 0
                            call nothing 0 0
                              name builtin_run nothing 0 0
            
typecheck tree: 
fn(){} fn(ctxt: ref Context, nil: list of ref Listnode): list of ref Listnode 0 0
  name sbuiltin_loaded fn(ctxt: ref Context, nil: list of ref Listnode): list of ref Listnode 0 0
  seq nothing 0 0
    vardecl list of ref Listnode 0 0
      seq nothing 0 0
    seq nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name bl nothing 0 0
          . nothing 0 0
            . nothing 0 0
              name ctxt nothing 0 0
              name env nothing 0 0
            name bmods nothing 0 0
        for nothing 0 0
          != nothing 0 0
            name bl nothing 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                := nothing 0 0
                  tuple nothing 0 0
                    seq nothing 0 0
                      name name nothing 0 0
                      seq nothing 0 0
                        name nil polymorphic type 0 0
                  hd nothing 0 0
                    name bl nothing 0 0
                seq nothing 0 0
                  = nothing 0 0
                    name v nothing 0 0
                    :: nothing 0 0
                      ref nothing 0 0
                        call nothing 0 0
                          name Listnode nothing 0 0
                          seq nothing 0 0
                            name nil polymorphic type 0 0
                            seq nothing 0 0
                              name name nothing 0 0
                      name v nothing 0 0
            = nothing 0 0
              name bl nothing 0 0
              tl nothing 0 0
                name bl nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          name v nothing 0 0
typecheck tree: 
fn(){} fn(nil: ref Context, argv: list of ref Listnode, quoteblocks: int): list of ref Listnode 0 0
  name sbuiltin_quote fn(nil: ref Context, argv: list of ref Listnode, quoteblocks: int): list of ref Listnode 0 0
  seq nothing 0 0
    return nothing 0 0
      :: nothing 0 0
        ref nothing 0 0
          call nothing 0 0
            name Listnode nothing 0 0
            seq nothing 0 0
              name nil polymorphic type 0 0
              seq nothing 0 0
                call nothing 0 0
                  name quoted nothing 0 0
                  seq nothing 0 0
                    tl nothing 0 0
                      name argv nothing 0 0
                    seq nothing 0 0
                      name quoteblocks nothing 0 0
        name nil polymorphic type 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, args: list of ref Listnode): list of ref Listnode 0 0
  name sbuiltin_builtin fn(ctxt: ref Context, args: list of ref Listnode): list of ref Listnode 0 0
  seq nothing 0 0
    if nothing 0 0
      || nothing 0 0
        == nothing 0 0
          name args nothing 0 0
          name nil polymorphic type 0 0
        == nothing 0 0
          tl nothing 0 0
            name args nothing 0 0
          name nil polymorphic type 0 0
      seq nothing 0 0
        call nothing 0 0
          name builtinusage nothing 0 0
          seq nothing 0 0
            name ctxt nothing 0 0
            seq nothing 0 0
              const builtin command [args ...] string 0 0
    seq nothing 0 0
      := nothing 0 0
        name name nothing 0 0
        . nothing 0 0
          hd nothing 0 0
            tl nothing 0 0
              name args nothing 0 0
          name word nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          tuple nothing 0 0
            seq nothing 0 0
              name nil polymorphic type 0 0
              seq nothing 0 0
                name mods nothing 0 0
          call nothing 0 0
            name findbuiltin nothing 0 0
            seq nothing 0 0
              . nothing 0 0
                . nothing 0 0
                  name ctxt nothing 0 0
                  name env nothing 0 0
                name sbuiltins nothing 0 0
              seq nothing 0 0
                name name nothing 0 0
        seq nothing 0 0
          for nothing 0 0
            != nothing 0 0
              name mods nothing 0 0
              name nil polymorphic type 0 0
            seq nothing 0 0
              if nothing 0 0
                == nothing 0 0
                  hd nothing 0 0
                    name mods nothing 0 0
                  name myselfbuiltin nothing 0 0
                seq nothing 0 0
                  return nothing 0 0
                    call nothing 0 0
                      -> nothing 0 0
                        hd nothing 0 0
                          name mods nothing 0 0
                        name runsbuiltin nothing 0 0
                      seq nothing 0 0
                        name ctxt nothing 0 0
                        seq nothing 0 0
                          name myself nothing 0 0
                          seq nothing 0 0
                            tl nothing 0 0
                              name args nothing 0 0
              = nothing 0 0
                name mods nothing 0 0
                tl nothing 0 0
                  name mods nothing 0 0
          seq nothing 0 0
            call nothing 0 0
              . nothing 0 0
                name ctxt nothing 0 0
                name fail nothing 0 0
              seq nothing 0 0
                const builtin not found string 0 0
                seq nothing 0 0
                  call nothing 0 0
                    -> nothing 0 0
                      name sys nothing 0 0
                      name sprint nothing 0 0
                    seq nothing 0 0
                      const sh: builtin %s not found string 0 0
                      seq nothing 0 0
                        name name nothing 0 0
            seq nothing 0 0
              return nothing 0 0
                name nil polymorphic type 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, argv: list of ref Listnode): list of ref Listnode 0 0
  name sbuiltin_unquote fn(ctxt: ref Context, argv: list of ref Listnode): list of ref Listnode 0 0
  seq nothing 0 0
    = nothing 0 0
      name argv nothing 0 0
      tl nothing 0 0
        name argv nothing 0 0
    seq nothing 0 0
      if nothing 0 0
        || nothing 0 0
          == nothing 0 0
            name argv nothing 0 0
            name nil polymorphic type 0 0
          != nothing 0 0
            tl nothing 0 0
              name argv nothing 0 0
            name nil polymorphic type 0 0
        seq nothing 0 0
          call nothing 0 0
            name builtinusage nothing 0 0
            seq nothing 0 0
              name ctxt nothing 0 0
              seq nothing 0 0
                const unquote arg string 0 0
      seq nothing 0 0
        := nothing 0 0
          name arg nothing 0 0
          . nothing 0 0
            hd nothing 0 0
              name argv nothing 0 0
            name word nothing 0 0
        seq nothing 0 0
          if nothing 0 0
            && nothing 0 0
              == nothing 0 0
                name arg nothing 0 0
                name nil polymorphic type 0 0
              != nothing 0 0
                . nothing 0 0
                  hd nothing 0 0
                    name argv nothing 0 0
                  name cmd nothing 0 0
                name nil polymorphic type 0 0
            seq nothing 0 0
              = nothing 0 0
                name arg nothing 0 0
                call nothing 0 0
                  name cmd2string nothing 0 0
                  seq nothing 0 0
                    . nothing 0 0
                      hd nothing 0 0
                        name argv nothing 0 0
                      name cmd nothing 0 0
          seq nothing 0 0
            return nothing 0 0
              call nothing 0 0
                name stringlist2list nothing 0 0
                seq nothing 0 0
                  call nothing 0 0
                    -> nothing 0 0
                      name str nothing 0 0
                      name unquoted nothing 0 0
                    seq nothing 0 0
                      name arg nothing 0 0
typecheck tree: 
fn(){} fn(): Shellbuiltin 0 0
  name getself fn(): Shellbuiltin 0 0
  seq nothing 0 0
    return nothing 0 0
      name myselfbuiltin nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, s: string) 0 0
  name builtinusage fn(ctxt: ref Context, s: string) 0 0
  seq nothing 0 0
    call nothing 0 0
      . nothing 0 0
        name ctxt nothing 0 0
        name fail nothing 0 0
      seq nothing 0 0
        const usage string 0 0
        seq nothing 0 0
          + nothing 0 0
            const sh: usage:  string 0 0
            name s nothing 0 0
typecheck tree: 
fn(){} fn(nil: ref Context, nil: list of ref Listnode, nil: int): string 0 0
  name builtin_exit fn(nil: ref Context, nil: list of ref Listnode, nil: int): string 0 0
  seq nothing 0 0
    exit nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 0 0
  name builtin_subsh fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        tl nothing 0 0
          name args nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          name nil polymorphic type 0 0
    seq nothing 0 0
      := nothing 0 0
        name startchan nothing 0 0
        chan chan of (int, ref Expropagate) 0 0
      seq nothing 0 0
        spawn nothing 0 0
          call nothing 0 0
            name runasync nothing 0 0
            seq nothing 0 0
              name ctxt nothing 0 0
              seq nothing 0 0
                const (0) int 0 0
                seq nothing 0 0
                  tl nothing 0 0
                    name args nothing 0 0
                  seq nothing 0 0
                    ref nothing 0 0
                      name Redirlist nothing 0 0
                    seq nothing 0 0
                      name startchan nothing 0 0
        seq nothing 0 0
          := nothing 0 0
            tuple nothing 0 0
              seq nothing 0 0
                name exepid nothing 0 0
                seq nothing 0 0
                  name exprop nothing 0 0
            <- nothing 0 0
              name startchan nothing 0 0
          seq nothing 0 0
            := nothing 0 0
              name status nothing 0 0
              call nothing 0 0
                name waitfor nothing 0 0
                seq nothing 0 0
                  name ctxt nothing 0 0
                  seq nothing 0 0
                    :: nothing 0 0
                      name exepid nothing 0 0
                      name nil polymorphic type 0 0
            seq nothing 0 0
              if nothing 0 0
                != nothing 0 0
                  . nothing 0 0
                    name exprop nothing 0 0
                    name name nothing 0 0
                  name nil polymorphic type 0 0
                seq nothing 0 0
                  raise nothing 0 0
                    . nothing 0 0
                      name exprop nothing 0 0
                      name name nothing 0 0
              seq nothing 0 0
                return nothing 0 0
                  name status nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, nil: list of ref Listnode, nil: int): string 0 0
  name builtin_loaded fn(ctxt: ref Context, nil: list of ref Listnode, nil: int): string 0 0
  seq nothing 0 0
    := nothing 0 0
      name b nothing 0 0
      . nothing 0 0
        . nothing 0 0
          name ctxt nothing 0 0
          name env nothing 0 0
        name builtins nothing 0 0
    seq nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name i nothing 0 0
          const (0) int 0 0
        for nothing 0 0
          < nothing 0 0
            name i nothing 0 0
            . nothing 0 0
              name b nothing 0 0
              name n nothing 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                := nothing 0 0
                  tuple nothing 0 0
                    seq nothing 0 0
                      name name nothing 0 0
                      seq nothing 0 0
                        name bmods nothing 0 0
                  index nothing 0 0
                    . nothing 0 0
                      name b nothing 0 0
                      name ba nothing 0 0
                    name i nothing 0 0
                seq nothing 0 0
                  call nothing 0 0
                    -> nothing 0 0
                      name sys nothing 0 0
                      name print nothing 0 0
                    seq nothing 0 0
                      const %s	%s
 string 0 0
                      seq nothing 0 0
                        name name nothing 0 0
                        seq nothing 0 0
                          call nothing 0 0
                            name modname nothing 0 0
                            seq nothing 0 0
                              name ctxt nothing 0 0
                              seq nothing 0 0
                                hd nothing 0 0
                                  name bmods nothing 0 0
            ++ nothing 0 0
              name i nothing 0 0
      seq nothing 0 0
        = nothing 0 0
          name b nothing 0 0
          . nothing 0 0
            . nothing 0 0
              name ctxt nothing 0 0
              name env nothing 0 0
            name sbuiltins nothing 0 0
        seq nothing 0 0
          seq nothing 0 0
            = nothing 0 0
              name i nothing 0 0
              const (0) int 0 0
            for nothing 0 0
              < nothing 0 0
                name i nothing 0 0
                . nothing 0 0
                  name b nothing 0 0
                  name n nothing 0 0
              seq nothing 0 0
                scope nothing 0 0
                  seq nothing 0 0
                    := nothing 0 0
                      tuple nothing 0 0
                        seq nothing 0 0
                          name name nothing 0 0
                          seq nothing 0 0
                            name bmods nothing 0 0
                      index nothing 0 0
                        . nothing 0 0
                          name b nothing 0 0
                          name ba nothing 0 0
                        name i nothing 0 0
                    seq nothing 0 0
                      call nothing 0 0
                        -> nothing 0 0
                          name sys nothing 0 0
                          name print nothing 0 0
                        seq nothing 0 0
                          const ${%s}	%s
 string 0 0
                          seq nothing 0 0
                            name name nothing 0 0
                            seq nothing 0 0
                              call nothing 0 0
                                name modname nothing 0 0
                                seq nothing 0 0
                                  name ctxt nothing 0 0
                                  seq nothing 0 0
                                    hd nothing 0 0
                                      name bmods nothing 0 0
                ++ nothing 0 0
                  name i nothing 0 0
          seq nothing 0 0
            return nothing 0 0
              name nil polymorphic type 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 0 0
  name builtin_load fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 0 0
  seq nothing 0 0
    if nothing 0 0
      || nothing 0 0
        == nothing 0 0
          tl nothing 0 0
            name args nothing 0 0
          name nil polymorphic type 0 0
        == nothing 0 0
          . nothing 0 0
            hd nothing 0 0
              tl nothing 0 0
                name args nothing 0 0
            name word nothing 0 0
          name nil polymorphic type 0 0
      seq nothing 0 0
        call nothing 0 0
          name builtinusage nothing 0 0
          seq nothing 0 0
            name ctxt nothing 0 0
            seq nothing 0 0
              const load path... string 0 0
    seq nothing 0 0
      = nothing 0 0
        name args nothing 0 0
        tl nothing 0 0
          name args nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          == nothing 0 0
            name args nothing 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            call nothing 0 0
              name builtinusage nothing 0 0
              seq nothing 0 0
                name ctxt nothing 0 0
                seq nothing 0 0
                  const load path... string 0 0
        seq nothing 0 0
          for nothing 0 0
            != nothing 0 0
              name args nothing 0 0
              name nil polymorphic type 0 0
            seq nothing 0 0
              scope nothing 0 0
                seq nothing 0 0
                  := nothing 0 0
                    name s nothing 0 0
                    call nothing 0 0
                      name loadmodule nothing 0 0
                      seq nothing 0 0
                        name ctxt nothing 0 0
                        seq nothing 0 0
                          . nothing 0 0
                            hd nothing 0 0
                              name args nothing 0 0
                            name word nothing 0 0
                  seq nothing 0 0
                    if nothing 0 0
                      != nothing 0 0
                        name s nothing 0 0
                        name nil polymorphic type 0 0
                      seq nothing 0 0
                        raise nothing 0 0
                          + nothing 0 0
                            const fail: string 0 0
                            name s nothing 0 0
              = nothing 0 0
                name args nothing 0 0
                tl nothing 0 0
                  name args nothing 0 0
          seq nothing 0 0
            return nothing 0 0
              name nil polymorphic type 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 0 0
  name builtin_unload fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        tl nothing 0 0
          name args nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        call nothing 0 0
          name builtinusage nothing 0 0
          seq nothing 0 0
            name ctxt nothing 0 0
            seq nothing 0 0
              const unload path... string 0 0
    seq nothing 0 0
      := nothing 0 0
        name status nothing 0 0
        const  string 0 0
      seq nothing 0 0
        seq nothing 0 0
          = nothing 0 0
            name args nothing 0 0
            tl nothing 0 0
              name args nothing 0 0
          for nothing 0 0
            != nothing 0 0
              name args nothing 0 0
              name nil polymorphic type 0 0
            seq nothing 0 0
              if nothing 0 0
                != nothing 0 0
                  := nothing 0 0
                    name s nothing 0 0
                    call nothing 0 0
                      name unloadmodule nothing 0 0
                      seq nothing 0 0
                        name ctxt nothing 0 0
                        seq nothing 0 0
                          . nothing 0 0
                            hd nothing 0 0
                              name args nothing 0 0
                            name word nothing 0 0
                  name nil polymorphic type 0 0
                seq nothing 0 0
                  = nothing 0 0
                    name status nothing 0 0
                    name s nothing 0 0
              = nothing 0 0
                name args nothing 0 0
                tl nothing 0 0
                  name args nothing 0 0
        seq nothing 0 0
          return nothing 0 0
            name status nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 0 0
  name builtin_run fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 0 0
  seq nothing 0 0
    if nothing 0 0
      || nothing 0 0
        == nothing 0 0
          tl nothing 0 0
            name args nothing 0 0
          name nil polymorphic type 0 0
        == nothing 0 0
          . nothing 0 0
            hd nothing 0 0
              tl nothing 0 0
                name args nothing 0 0
            name word nothing 0 0
          name nil polymorphic type 0 0
      seq nothing 0 0
        call nothing 0 0
          name builtinusage nothing 0 0
          seq nothing 0 0
            name ctxt nothing 0 0
            seq nothing 0 0
              const run path string 0 0
    seq nothing 0 0
      call nothing 0 0
        . nothing 0 0
          name ctxt nothing 0 0
          name push nothing 0 0
      seq nothing 0 0
        exstat nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              call nothing 0 0
                . nothing 0 0
                  name ctxt nothing 0 0
                  name setoptions nothing 0 0
                seq nothing 0 0
                  . nothing 0 0
                    name ctxt nothing 0 0
                    name INTERACTIVE nothing 0 0
                  seq nothing 0 0
                    const (0) int 0 0
              seq nothing 0 0
                call nothing 0 0
                  name runscript nothing 0 0
                  seq nothing 0 0
                    name ctxt nothing 0 0
                    seq nothing 0 0
                      . nothing 0 0
                        hd nothing 0 0
                          tl nothing 0 0
                            name args nothing 0 0
                        name word nothing 0 0
                      seq nothing 0 0
                        tl nothing 0 0
                          tl nothing 0 0
                            name args nothing 0 0
                        seq nothing 0 0
                          const (1) int 0 0
                seq nothing 0 0
                  call nothing 0 0
                    . nothing 0 0
                      name ctxt nothing 0 0
                      name pop nothing 0 0
                  seq nothing 0 0
                    return nothing 0 0
                      name nil polymorphic type 0 0
          except nothing 0 0
            name e nothing 0 0
            seq nothing 0 0
              label nothing 0 0
                seq nothing 0 0
                  const fail:* string 0 0
                scope nothing 0 0
                  seq nothing 0 0
                    call nothing 0 0
                      . nothing 0 0
                        name ctxt nothing 0 0
                        name pop nothing 0 0
                    return nothing 0 0
                      call nothing 0 0
                        name failurestatus nothing 0 0
                        seq nothing 0 0
                          name e nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 0 0
  name builtin_whatis fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 0 0
  seq nothing 0 0
    if nothing 0 0
      < nothing 0 0
        len nothing 0 0
          name args nothing 0 0
        const (2) int 0 0
      seq nothing 0 0
        call nothing 0 0
          name builtinusage nothing 0 0
          seq nothing 0 0
            name ctxt nothing 0 0
            seq nothing 0 0
              const whatis name ... string 0 0
    seq nothing 0 0
      := nothing 0 0
        name err nothing 0 0
        const  string 0 0
      seq nothing 0 0
        seq nothing 0 0
          = nothing 0 0
            name args nothing 0 0
            tl nothing 0 0
              name args nothing 0 0
          for nothing 0 0
            != nothing 0 0
              name args nothing 0 0
              name nil polymorphic type 0 0
            seq nothing 0 0
              if nothing 0 0
                != nothing 0 0
                  := nothing 0 0
                    name e nothing 0 0
                    call nothing 0 0
                      name whatisit nothing 0 0
                      seq nothing 0 0
                        name ctxt nothing 0 0
                        seq nothing 0 0
                          hd nothing 0 0
                            name args nothing 0 0
                  name nil polymorphic type 0 0
                seq nothing 0 0
                  = nothing 0 0
                    name err nothing 0 0
                    name e nothing 0 0
              = nothing 0 0
                name args nothing 0 0
                tl nothing 0 0
                  name args nothing 0 0
        seq nothing 0 0
          return nothing 0 0
            name err nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, el: ref Listnode): string 0 0
  name whatisit fn(ctxt: ref Context, el: ref Listnode): string 0 0
  seq nothing 0 0
    if nothing 0 0
      != nothing 0 0
        . nothing 0 0
          name el nothing 0 0
          name cmd nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        scope nothing 0 0
          seq nothing 0 0
            call nothing 0 0
              -> nothing 0 0
                name sys nothing 0 0
                name print nothing 0 0
              seq nothing 0 0
                const %s
 string 0 0
                seq nothing 0 0
                  call nothing 0 0
                    name cmd2string nothing 0 0
                    seq nothing 0 0
                      . nothing 0 0
                        name el nothing 0 0
                        name cmd nothing 0 0
            seq nothing 0 0
              return nothing 0 0
                name nil polymorphic type 0 0
    seq nothing 0 0
      := nothing 0 0
        name found nothing 0 0
        const (0) int 0 0
      seq nothing 0 0
        := nothing 0 0
          name name nothing 0 0
          . nothing 0 0
            name el nothing 0 0
            name word nothing 0 0
        seq nothing 0 0
          if nothing 0 0
            && nothing 0 0
              != nothing 0 0
                name name nothing 0 0
                name nil polymorphic type 0 0
              == nothing 0 0
                index nothing 0 0
                  name name nothing 0 0
                  const (0) int 0 0
                const (123) int 0 0
            seq nothing 0 0
              scope nothing 0 0
                seq nothing 0 0
                  call nothing 0 0
                    -> nothing 0 0
                      name sys nothing 0 0
                      name print nothing 0 0
                    seq nothing 0 0
                      const %s
 string 0 0
                      seq nothing 0 0
                        name name nothing 0 0
                  seq nothing 0 0
                    return nothing 0 0
                      name nil polymorphic type 0 0
                    seq nothing 0 0
                      nothing nothing 0 0
          seq nothing 0 0
            if nothing 0 0
              == nothing 0 0
                name name nothing 0 0
                name nil polymorphic type 0 0
              seq nothing 0 0
                return nothing 0 0
                  name nil polymorphic type 0 0
            seq nothing 0 0
              vardecl string 0 0
                seq nothing 0 0
              seq nothing 0 0
                := nothing 0 0
                  name val nothing 0 0
                  call nothing 0 0
                    . nothing 0 0
                      name ctxt nothing 0 0
                      name get nothing 0 0
                    seq nothing 0 0
                      name name nothing 0 0
                seq nothing 0 0
                  if nothing 0 0
                    != nothing 0 0
                      name val nothing 0 0
                      name nil polymorphic type 0 0
                    seq nothing 0 0
                      scope nothing 0 0
                        seq nothing 0 0
                          ++ nothing 0 0
                            name found nothing 0 0
                          seq nothing 0 0
                            += nothing 0 0
                              name w nothing 0 0
                              call nothing 0 0
                                -> nothing 0 0
                                  name sys nothing 0 0
                                  name sprint nothing 0 0
                                seq nothing 0 0
                                  const %s=%s
 string 0 0
                                  seq nothing 0 0
                                    call nothing 0 0
                                      name quote nothing 0 0
                                      seq nothing 0 0
                                        name name nothing 0 0
                                        seq not
typecheck tree: 
fn(){} fn(ctxt: ref Context, args: list of ref Listnode, last: int): string 0 0
  name builtin_builtin fn(ctxt: ref Context, args: list of ref Listnode, last: int): string 0 0
  seq nothing 0 0
    if nothing 0 0
      < nothing 0 0
        len nothing 0 0
          name args nothing 0 0
        const (2) int 0 0
      seq nothing 0 0
        call nothing 0 0
          name builtinusage nothing 0 0
          seq nothing 0 0
            name ctxt nothing 0 0
            seq nothing 0 0
              const builtin command [args ...] string 0 0
    seq nothing 0 0
      := nothing 0 0
        name name nothing 0 0
        . nothing 0 0
          hd nothing 0 0
            tl nothing 0 0
              name args nothing 0 0
          name word nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          || nothing 0 0
            == nothing 0 0
              name name nothing 0 0
              name nil polymorphic type 0 0
            == nothing 0 0
              index nothing 0 0
                name name nothing 0 0
                const (0) int 0 0
              const (123) int 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                call nothing 0 0
                  name diagnostic nothing 0 0
                  seq nothing 0 0
                    name ctxt nothing 0 0
                    seq nothing 0 0
                      + nothing 0 0
                        name name nothing 0 0
                        const  not found string 0 0
                seq nothing 0 0
                  return nothing 0 0
                    const not found string 0 0
        seq nothing 0 0
          := nothing 0 0
            tuple nothing 0 0
              seq nothing 0 0
                name nil polymorphic type 0 0
                seq nothing 0 0
                  name mods nothing 0 0
            call nothing 0 0
              name findbuiltin nothing 0 0
              seq nothing 0 0
                . nothing 0 0
                  . nothing 0 0
                    name ctxt nothing 0 0
                    name env nothing 0 0
                  name builtins nothing 0 0
                seq nothing 0 0
                  name name nothing 0 0
          seq nothing 0 0
            for nothing 0 0
              != nothing 0 0
                name mods nothing 0 0
                name nil polymorphic type 0 0
              seq nothing 0 0
                if nothing 0 0
                  == nothing 0 0
                    hd nothing 0 0
                      name mods nothing 0 0
                    name myselfbuiltin nothing 0 0
                  seq nothing 0 0
                    return nothing 0 0
                      call nothing 0 0
                        -> nothing 0 0
                          hd nothing 0 0
                            name mods nothing 0 0
                          name runbuiltin nothing 0 0
                        seq nothing 0 0
                          name ctxt nothing 0 0
                          seq nothing 0 0
                            name myself nothing 0 0
                            seq nothing 0 0
                              tl nothing 0 0
                                name args nothing 0 0
                              seq nothing 0 0
                                name last nothing 0 0
                = nothing 0 0
                  name mods nothing 0 0
                  tl nothing 0 0
                    name mods nothing 0 0
            seq nothing 0 0
              if nothing 0 0
                & nothing 0 0
                  call nothing 0 0
                    . nothing 0 0
                      name ctxt nothing 0 0
                      name options nothing 0 0
                  . nothing 0 0
                    name ctxt nothing 0 0
                    name EXECPRINT nothing 0 0
                seq nothing 0 0
                  call nothing 0 0
                    -> nothing 0 0
                      name sys nothing 0 0
                      name fprint nothing 0 0
                    seq nothing 0 0
                      
typecheck tree: 
fn(){} fn(ctxt: ref Context, mod: Shellbuiltin): string 0 0
  name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 0 0
  seq nothing 0 0
    := nothing 0 0
      name ml nothing 0 0
      . nothing 0 0
        . nothing 0 0
          name ctxt nothing 0 0
          name env nothing 0 0
        name bmods nothing 0 0
    seq nothing 0 0
      for nothing 0 0
        != nothing 0 0
          name ml nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              := nothing 0 0
                tuple nothing 0 0
                  seq nothing 0 0
                    name bname nothing 0 0
                    seq nothing 0 0
                      name bmod nothing 0 0
                hd nothing 0 0
                  name ml nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  == nothing 0 0
                    name bmod nothing 0 0
                    name mod nothing 0 0
                  seq nothing 0 0
                    return nothing 0 0
                      name bname nothing 0 0
          = nothing 0 0
            name ml nothing 0 0
            tl nothing 0 0
              name ml nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          const builtin string 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, name: string): string 0 0
  name loadmodule fn(ctxt: ref Context, name: string): string 0 0
  seq nothing 0 0
    := nothing 0 0
      name bl nothing 0 0
      . nothing 0 0
        . nothing 0 0
          name ctxt nothing 0 0
          name env nothing 0 0
        name bmods nothing 0 0
    seq nothing 0 0
      for nothing 0 0
        != nothing 0 0
          name bl nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              := nothing 0 0
                tuple nothing 0 0
                  seq nothing 0 0
                    name bname nothing 0 0
                    seq nothing 0 0
                      name nil polymorphic type 0 0
                hd nothing 0 0
                  name bl nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  == nothing 0 0
                    name bname nothing 0 0
                    name name nothing 0 0
                  seq nothing 0 0
                    return nothing 0 0
                      name nil polymorphic type 0 0
          = nothing 0 0
            name bl nothing 0 0
            tl nothing 0 0
              name bl nothing 0 0
      seq nothing 0 0
        := nothing 0 0
          name path nothing 0 0
          name name nothing 0 0
        seq nothing 0 0
          if nothing 0 0
            || nothing 0 0
              < nothing 0 0
                len nothing 0 0
                  name path nothing 0 0
                const (4) int 0 0
              != nothing 0 0
                slice nothing 0 0
                  name path nothing 0 0
                  seq nothing 0 0
                    - nothing 0 0
                      len nothing 0 0
                        name path nothing 0 0
                      const (4) int 0 0
                    nothing nothing 0 0
                const .dis string 0 0
            seq nothing 0 0
              += nothing 0 0
                name path nothing 0 0
                const .dis string 0 0
          seq nothing 0 0
            if nothing 0 0
              && nothing 0 0
                != nothing 0 0
                  index nothing 0 0
                    name path nothing 0 0
                    const (0) int 0 0
                  const (47) int 0 0
                != nothing 0 0
                  slice nothing 0 0
                    name path nothing 0 0
                    seq nothing 0 0
                      const (0) int 0 0
                      const (2) int 0 0
                  const ./ string 0 0
              seq nothing 0 0
                = nothing 0 0
                  name path nothing 0 0
                  + nothing 0 0
                    + nothing 0 0
                      name BUILTINPATH nothing 0 0
                      const / string 0 0
                    name path nothing 0 0
            seq nothing 0 0
              := nothing 0 0
                name mod nothing 0 0
                load Shellbuiltin 0 0
                  name path nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  == nothing 0 0
                    name mod nothing 0 0
                    name nil polymorphic type 0 0
                  seq nothing 0 0
                    scope nothing 0 0
                      seq nothing 0 0
                        call nothing 0 0
                          name diagnostic nothing 0 0
                          seq nothing 0 0
                            name ctxt nothing 0 0
                            seq nothing 0 0
                              call nothing 0 0
                                -> nothing 0 0
                                  name sys nothing 0 0
                                  name sprint nothing 0 0
                                seq nothing 0 0
                                  const load: cannot load %s: %r string 0 0
                                  seq nothing 0 0
                                    name path nothing 0 0
                        seq nothing 0 0
          
typecheck tree: 
fn(){} fn(ctxt: ref Context, name: string): string 0 0
  name unloadmodule fn(ctxt: ref Context, name: string): string 0 0
  seq nothing 0 0
    vardecl list of (string, Shellbuiltin) 0 0
      seq nothing 0 0
    seq nothing 0 0
      vardecl Shellbuiltin 0 0
        seq nothing 0 0
      seq nothing 0 0
        seq nothing 0 0
          := nothing 0 0
            name cl nothing 0 0
            . nothing 0 0
              . nothing 0 0
                name ctxt nothing 0 0
                name env nothing 0 0
              name bmods nothing 0 0
          for nothing 0 0
            != nothing 0 0
              name cl nothing 0 0
              name nil polymorphic type 0 0
            seq nothing 0 0
              scope nothing 0 0
                seq nothing 0 0
                  := nothing 0 0
                    tuple nothing 0 0
                      seq nothing 0 0
                        name bname nothing 0 0
                        seq nothing 0 0
                          name bmod nothing 0 0
                    hd nothing 0 0
                      name cl nothing 0 0
                  seq nothing 0 0
                    if nothing 0 0
                      == nothing 0 0
                        name bname nothing 0 0
                        name name nothing 0 0
                      seq nothing 0 0
                        = nothing 0 0
                          name mod nothing 0 0
                          name bmod nothing 0 0
                        = nothing 0 0
                          name bl nothing 0 0
                          :: nothing 0 0
                            hd nothing 0 0
                              name cl nothing 0 0
                            name bl nothing 0 0
              = nothing 0 0
                name cl nothing 0 0
                tl nothing 0 0
                  name cl nothing 0 0
        seq nothing 0 0
          if nothing 0 0
            == nothing 0 0
              name mod nothing 0 0
              name nil polymorphic type 0 0
            seq nothing 0 0
              scope nothing 0 0
                seq nothing 0 0
                  call nothing 0 0
                    name diagnostic nothing 0 0
                    seq nothing 0 0
                      name ctxt nothing 0 0
                      seq nothing 0 0
                        call nothing 0 0
                          -> nothing 0 0
                            name sys nothing 0 0
                            name sprint nothing 0 0
                          seq nothing 0 0
                            const module %s not found string 0 0
                            seq nothing 0 0
                              name name nothing 0 0
                  seq nothing 0 0
                    return nothing 0 0
                      const not found string 0 0
          seq nothing 0 0
            seq nothing 0 0
              = nothing 0 0
                . nothing 0 0
                  . nothing 0 0
                    name ctxt nothing 0 0
                    name env nothing 0 0
                  name bmods nothing 0 0
                name nil polymorphic type 0 0
              for nothing 0 0
                != nothing 0 0
                  name bl nothing 0 0
                  name nil polymorphic type 0 0
                seq nothing 0 0
                  = nothing 0 0
                    . nothing 0 0
                      . nothing 0 0
                        name ctxt nothing 0 0
                        name env nothing 0 0
                      name bmods nothing 0 0
                    :: nothing 0 0
                      hd nothing 0 0
                        name bl nothing 0 0
                      . nothing 0 0
                        . nothing 0 0
                          name ctxt nothing 0 0
                          name env nothing 0 0
                        name bmods nothing 0 0
                  = nothing 0 0
                    name bl nothing 0 0
                    tl nothing 0 0
                      name bl nothing 0 0
            seq nothing 0 0
              call nothing 0 0

typecheck tree: 
fn(){} fn(s: (int, Sys->Dir), mode: int): int 0 0
  name executable fn(s: (int, Sys->Dir), mode: int): int 0 0
  seq nothing 0 0
    := nothing 0 0
      tuple nothing 0 0
        seq nothing 0 0
          name ok nothing 0 0
          seq nothing 0 0
            name info nothing 0 0
      name s nothing 0 0
    seq nothing 0 0
      return nothing 0 0
        && nothing 0 0
          && nothing 0 0
            != nothing 0 0
              name ok nothing 0 0
              - nothing 0 0
                const (1) int 0 0
            == nothing 0 0
              & nothing 0 0
                . nothing 0 0
                  name info nothing 0 0
                  name mode nothing 0 0
                -> nothing 0 0
                  name Sys nothing 0 0
                  name DMDIR nothing 0 0
              const (0) int 0 0
          != nothing 0 0
            & nothing 0 0
              . nothing 0 0
                name info nothing 0 0
                name mode nothing 0 0
              name mode nothing 0 0
            const (0) int 0 0
typecheck tree: 
fn(){} fn(val: list of ref Listnode, quoteblocks: int): string 0 0
  name quoted fn(val: list of ref Listnode, quoteblocks: int): string 0 0
  seq nothing 0 0
    := nothing 0 0
      name s nothing 0 0
      const  string 0 0
    seq nothing 0 0
      for nothing 0 0
        != nothing 0 0
          name val nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              := nothing 0 0
                name el nothing 0 0
                hd nothing 0 0
                  name val nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  || nothing 0 0
                    == nothing 0 0
                      . nothing 0 0
                        name el nothing 0 0
                        name cmd nothing 0 0
                      name nil polymorphic type 0 0
                    && nothing 0 0
                      name quoteblocks nothing 0 0
                      != nothing 0 0
                        . nothing 0 0
                          name el nothing 0 0
                          name word nothing 0 0
                        name nil polymorphic type 0 0
                  seq nothing 0 0
                    += nothing 0 0
                      name s nothing 0 0
                      call nothing 0 0
                        name quote nothing 0 0
                        seq nothing 0 0
                          . nothing 0 0
                            name el nothing 0 0
                            name word nothing 0 0
                          seq nothing 0 0
                            const (0) int 0 0
                    scope nothing 0 0
                      seq nothing 0 0
                        := nothing 0 0
                          name cmd nothing 0 0
                          call nothing 0 0
                            name cmd2string nothing 0 0
                            seq nothing 0 0
                              . nothing 0 0
                                name el nothing 0 0
                                name cmd nothing 0 0
                        seq nothing 0 0
                          if nothing 0 0
                            name quoteblocks nothing 0 0
                            seq nothing 0 0
                              = nothing 0 0
                                name cmd nothing 0 0
                                call nothing 0 0
                                  name quote nothing 0 0
                                  seq nothing 0 0
                                    name cmd nothing 0 0
                                    seq nothing 0 0
                                      const (0) int 0 0
                          seq nothing 0 0
                            += nothing 0 0
                              name s nothing 0 0
                              name cmd nothing 0 0
                seq nothing 0 0
                  if nothing 0 0
                    != nothing 0 0
                      tl nothing 0 0
                        name val nothing 0 0
                      name nil polymorphic type 0 0
                    seq nothing 0 0
                      = nothing 0 0
                        index nothing 0 0
                          name s nothing 0 0
                          len nothing 0 0
                            name s nothing 0 0
                        const (32) int 0 0
          = nothing 0 0
            name val nothing 0 0
            tl nothing 0 0
              name val nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          name s nothing 0 0
typecheck tree: 
fn(){} fn(ctxt: ref Context, val: string): string 0 0
  name setstatus fn(ctxt: ref Context, val: string): string 0 0
  seq nothing 0 0
    call nothing 0 0
      . nothing 0 0
        name ctxt nothing 0 0
        name setlocal nothing 0 0
      seq nothing 0 0
        const status string 0 0
        seq nothing 0 0
          :: nothing 0 0
            ref nothing 0 0
              call nothing 0 0
                name Listnode nothing 0 0
                seq nothing 0 0
                  name nil polymorphic type 0 0
                  seq nothing 0 0
                    name val nothing 0 0
            name nil polymorphic type 0 0
    seq nothing 0 0
      return nothing 0 0
        name val nothing 0 0
typecheck tree: 
fn(){} fn(l: ref YYLEX, prompt: string, showline: int): (ref Node, string) 0 0
  name doparse fn(l: ref YYLEX, prompt: string, showline: int): (ref Node, string) 0 0
  seq nothing 0 0
    = nothing 0 0
      . nothing 0 0
        name l nothing 0 0
        name prompt nothing 0 0
      name prompt nothing 0 0
    seq nothing 0 0
      = nothing 0 0
        . nothing 0 0
          name l nothing 0 0
          name err nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        = nothing 0 0
          . nothing 0 0
            . nothing 0 0
              name l nothing 0 0
              name lval nothing 0 0
            name node nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          call nothing 0 0
            name yyparse nothing 0 0
            seq nothing 0 0
              name l nothing 0 0
          seq nothing 0 0
            = nothing 0 0
              . nothing 0 0
                name l nothing 0 0
                name lastnl nothing 0 0
              const (0) int 0 0
            seq nothing 0 0
              if nothing 0 0
                != nothing 0 0
                  . nothing 0 0
                    name l nothing 0 0
                    name err nothing 0 0
                  name nil polymorphic type 0 0
                seq nothing 0 0
                  scope nothing 0 0
                    seq nothing 0 0
                      vardecl string 0 0
                        seq nothing 0 0
                      seq nothing 0 0
                        if nothing 0 0
                          == nothing 0 0
                            . nothing 0 0
                              name l nothing 0 0
                              name err nothing 0 0
                            name nil polymorphic type 0 0
                          seq nothing 0 0
                            = nothing 0 0
                              . nothing 0 0
                                name l nothing 0 0
                                name err nothing 0 0
                              const unknown error string 0 0
                        seq nothing 0 0
                          if nothing 0 0
                            && nothing 0 0
                              > nothing 0 0
                                . nothing 0 0
                                  name l nothing 0 0
                                  name errline nothing 0 0
                                const (0) int 0 0
                              name showline nothing 0 0
                            seq nothing 0 0
                              = nothing 0 0
                                name s nothing 0 0
                                call nothing 0 0
                                  -> nothing 0 0
                                    name sys nothing 0 0
                                    name sprint nothing 0 0
                                  seq nothing 0 0
                                    const %s:%d: %s string 0 0
                                    seq nothing 0 0
                                      . nothing 0 0
                                        name l nothing 0 0
                                        name path nothing 0 0
                                      seq nothing 0 0
                                        . nothing 0 0
                                          name l nothing 0 0
                                          name errline nothing 0 0
                                        seq nothing 0 0
                                          . nothing 0 0
                                            name l nothing 0 0
                                            name err nothing 0 0
                              = nothing 0 0
                                name s nothing 0 0
                                + nothing 0 0
                                  + nothing 0 0
                                    . nothing 0 0
                                      name l nothing 0 0
                                      name path nothing 0 0
                                    const : parse 
typecheck tree: 
fn(){} fn(s: string): ref YYLEX 0 0
  . fn(s: string): ref YYLEX 0 0
    name YYLEX YYLEX 0 0
    name initstring nothing 0 0
  seq nothing 0 0
    := nothing 0 0
      name ret nothing 0 0
      ref nothing 0 0
        name blanklex nothing 0 0
    seq nothing 0 0
      = nothing 0 0
        . nothing 0 0
          name ret nothing 0 0
          name s nothing 0 0
        name s nothing 0 0
      seq nothing 0 0
        = nothing 0 0
          . nothing 0 0
            name ret nothing 0 0
            name path nothing 0 0
          const internal string 0 0
        seq nothing 0 0
          = nothing 0 0
            . nothing 0 0
              name ret nothing 0 0
              name strpos nothing 0 0
            const (0) int 0 0
          seq nothing 0 0
            return nothing 0 0
              name ret nothing 0 0
typecheck tree: 
fn(){} fn(fd: ref Sys->FD, path: string): ref YYLEX 0 0
  . fn(fd: ref Sys->FD, path: string): ref YYLEX 0 0
    name YYLEX YYLEX 0 0
    name initfile nothing 0 0
  seq nothing 0 0
    := nothing 0 0
      name lex nothing 0 0
      ref nothing 0 0
        name blanklex nothing 0 0
    seq nothing 0 0
      = nothing 0 0
        . nothing 0 0
          name lex nothing 0 0
          name f nothing 0 0
        call nothing 0 0
          -> nothing 0 0
            name bufio nothing 0 0
            name fopen nothing 0 0
          seq nothing 0 0
            name fd nothing 0 0
            seq nothing 0 0
              -> nothing 0 0
                name bufio nothing 0 0
                name OREAD nothing 0 0
      seq nothing 0 0
        = nothing 0 0
          . nothing 0 0
            name lex nothing 0 0
            name path nothing 0 0
          name path nothing 0 0
        seq nothing 0 0
          = nothing 0 0
            . nothing 0 0
              name lex nothing 0 0
              name cbuf nothing 0 0
            array array of int 0 0
              const (2) int 0 0
          seq nothing 0 0
            = nothing 0 0
              . nothing 0 0
                name lex nothing 0 0
                name linenum nothing 0 0
              const (1) int 0 0
            seq nothing 0 0
              = nothing 0 0
                . nothing 0 0
                  name lex nothing 0 0
                  name prompt nothing 0 0
                const  string 0 0
              seq nothing 0 0
                return nothing 0 0
                  name lex nothing 0 0
typecheck tree: 
fn(){} fn(l: self ref YYLEX, s: string) 0 0
  . fn(l: self ref YYLEX, err: string) 0 0
    name YYLEX YYLEX 0 0
    name error nothing 0 0
  seq nothing 0 0
    if nothing 0 0
      == nothing 0 0
        . nothing 0 0
          name l nothing 0 0
          name err nothing 0 0
        name nil polymorphic type 0 0
      seq nothing 0 0
        scope nothing 0 0
          seq nothing 0 0
            = nothing 0 0
              . nothing 0 0
                name l nothing 0 0
                name err nothing 0 0
              name s nothing 0 0
            seq nothing 0 0
              = nothing 0 0
                . nothing 0 0
                  name l nothing 0 0
                  name errline nothing 0 0
                . nothing 0 0
                  name l nothing 0 0
                  name linenum nothing 0 0
typecheck tree: 
fn(){} fn(l: self ref YYLEX): int 0 0
  . fn(l: self ref YYLEX): int 0 0
    name YYLEX YYLEX 0 0
    name lex nothing 0 0
  seq nothing 0 0
    := nothing 0 0
      name endword nothing 0 0
      const (0) int 0 0
    seq nothing 0 0
      := nothing 0 0
        name wasdollar nothing 0 0
        const (0) int 0 0
      seq nothing 0 0
        := nothing 0 0
          name tok nothing 0 0
          name NOTOKEN nothing 0 0
        seq nothing 0 0
          for nothing 0 0
            == nothing 0 0
              name tok nothing 0 0
              name NOTOKEN nothing 0 0
            seq nothing 0 0
              scope nothing 0 0
                seq nothing 0 0
                  case nothing 0 0
                    := nothing 0 0
                      name c nothing 0 0
                      call nothing 0 0
                        . nothing 0 0
                          name l nothing 0 0
                          name getc nothing 0 0
                    seq nothing 0 0
                      label nothing 0 0
                        seq nothing 0 0
                          . nothing 0 0
                            name l nothing 0 0
                            name EOF nothing 0 0
                        scope nothing 0 0
                          = nothing 0 0
                            name tok nothing 0 0
                            name END nothing 0 0
                      seq nothing 0 0
                        label nothing 0 0
                          seq nothing 0 0
                            const (10) int 0 0
                          scope nothing 0 0
                            = nothing 0 0
                              name tok nothing 0 0
                              const (10) int 0 0
                        seq nothing 0 0
                          label nothing 0 0
                            seq nothing 0 0
                              const (13) int 0 0
                              seq nothing 0 0
                                const (9) int 0 0
                                seq nothing 0 0
                                  const (32) int 0 0
                            scope nothing 0 0
                              nothing nothing 0 0
                          seq nothing 0 0
                            label nothing 0 0
                              seq nothing 0 0
                                const (35) int 0 0
                              scope nothing 0 0
                                seq nothing 0 0
                                  for nothing 0 0
                                    && nothing 0 0
                                      != nothing 0 0
                                        = nothing 0 0
                                          name c nothing 0 0
                                          call nothing 0 0
                                            . nothing 0 0
                                              name l nothing 0 0
                                              name getc nothing 0 0
                                        const (10) int 0 0
                                      != nothing 0 0
                                        name c nothing 0 0
                                        . nothing 0 0
                                          name l nothing 0 0
                                          name EOF nothing 0 0
                                    seq nothing 0 0
                                      nothing nothing 0 0
                                  call nothing 0 0
                                    . nothing 0 0
                                      name l nothing 0 0
                                      name ungetc nothing 0 0
                            seq nothing 0 0
                              label nothing 0 0
                                seq nothing 0 0
                                  const (59) int 0 0
                                scope nothing 0 0
                                  = nothing 0 0
                                    name tok nothing 0 0
                                    const (59) int 0 0
   
typecheck tree: 
fn(){} fn(t: int): string 0 0
  name tokstr fn(t: int): string 0 0
  seq nothing 0 0
    vardecl string 0 0
      seq nothing 0 0
    seq nothing 0 0
      case nothing 0 0
        name t nothing 0 0
        seq nothing 0 0
          label nothing 0 0
            seq nothing 0 0
              const (10) int 0 0
            scope nothing 0 0
              = nothing 0 0
                name s nothing 0 0
                const '\n' string 0 0
          seq nothing 0 0
            label nothing 0 0
              seq nothing 0 0
                range nothing 0 0
                  const (33) int 0 0
                  const (127) int 0 0
              scope nothing 0 0
                = nothing 0 0
                  name s nothing 0 0
                  call nothing 0 0
                    name sprint nothing 0 0
                    seq nothing 0 0
                      const '%c' string 0 0
                      seq nothing 0 0
                        name t nothing 0 0
            seq nothing 0 0
              label nothing 0 0
                seq nothing 0 0
                  name DUP nothing 0 0
                scope nothing 0 0
                  = nothing 0 0
                    name s nothing 0 0
                    const DUP string 0 0
              seq nothing 0 0
                label nothing 0 0
                  seq nothing 0 0
                    name REDIR nothing 0 0
                  scope nothing 0 0
                    = nothing 0 0
                      name s nothing 0 0
                      const REDIR string 0 0
                seq nothing 0 0
                  label nothing 0 0
                    seq nothing 0 0
                      name WORD nothing 0 0
                    scope nothing 0 0
                      = nothing 0 0
                        name s nothing 0 0
                        const WORD string 0 0
                  seq nothing 0 0
                    label nothing 0 0
                      seq nothing 0 0
                        name OP nothing 0 0
                      scope nothing 0 0
                        = nothing 0 0
                          name s nothing 0 0
                          const OP string 0 0
                    seq nothing 0 0
                      label nothing 0 0
                        seq nothing 0 0
                          name END nothing 0 0
                        scope nothing 0 0
                          = nothing 0 0
                            name s nothing 0 0
                            const END string 0 0
                      seq nothing 0 0
                        label nothing 0 0
                          seq nothing 0 0
                            name ERROR nothing 0 0
                          scope nothing 0 0
                            = nothing 0 0
                              name s nothing 0 0
                              const ERROR string 0 0
                        seq nothing 0 0
                          label nothing 0 0
                            seq nothing 0 0
                              * nothing 0 0
                            scope nothing 0 0
                              = nothing 0 0
                                name s nothing 0 0
                                + nothing 0 0
                                  + nothing 0 0
                                    const <unknowntok string 0 0
                                    cast string 0 0
                                      name t nothing 0 0
                                  const > string 0 0
      seq nothing 0 0
        return nothing 0 0
          name s nothing 0 0
typecheck tree: 
fn(){} fn(lex: self ref YYLEX) 0 0
  . fn(l: self ref YYLEX) 0 0
    name YYLEX YYLEX 0 0
    name ungetc nothing 0 0
  seq nothing 0 0
    -- nothing 0 0
      . nothing 0 0
        name lex nothing 0 0
        name strpos nothing 0 0
    seq nothing 0 0
      if nothing 0 0
        != nothing 0 0
          . nothing 0 0
            name lex nothing 0 0
            name f nothing 0 0
          name nil polymorphic type 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              ++ nothing 0 0
                . nothing 0 0
                  name lex nothing 0 0
                  name ncbuf nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  < nothing 0 0
                    . nothing 0 0
                      name lex nothing 0 0
                      name strpos nothing 0 0
                    const (0) int 0 0
                  seq nothing 0 0
                    = nothing 0 0
                      . nothing 0 0
                        name lex nothing 0 0
                        name strpos nothing 0 0
                      - nothing 0 0
                        len nothing 0 0
                          . nothing 0 0
                            name lex nothing 0 0
                            name cbuf nothing 0 0
                        const (1) int 0 0
typecheck tree: 
fn(){} fn(lex: self ref YYLEX): int 0 0
  . fn(l: self ref YYLEX): int 0 0
    name YYLEX YYLEX 0 0
    name getc nothing 0 0
  seq nothing 0 0
    if nothing 0 0
      . nothing 0 0
        name lex nothing 0 0
        name eof nothing 0 0
      seq nothing 0 0
        return nothing 0 0
          . nothing 0 0
            name lex nothing 0 0
            name EOF nothing 0 0
    seq nothing 0 0
      vardecl int 0 0
        seq nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          != nothing 0 0
            . nothing 0 0
              name lex nothing 0 0
              name f nothing 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            scope nothing 0 0
              seq nothing 0 0
                if nothing 0 0
                  > nothing 0 0
                    . nothing 0 0
                      name lex nothing 0 0
                      name ncbuf nothing 0 0
                    const (0) int 0 0
                  seq nothing 0 0
                    scope nothing 0 0
                      seq nothing 0 0
                        = nothing 0 0
                          name c nothing 0 0
                          index nothing 0 0
                            . nothing 0 0
                              name lex nothing 0 0
                              name cbuf nothing 0 0
                            ++ nothing 0 0
                              . nothing 0 0
                                name lex nothing 0 0
                                name strpos nothing 0 0
                        seq nothing 0 0
                          if nothing 0 0
                            >= nothing 0 0
                              . nothing 0 0
                                name lex nothing 0 0
                                name strpos nothing 0 0
                              len nothing 0 0
                                . nothing 0 0
                                  name lex nothing 0 0
                                  name cbuf nothing 0 0
                            seq nothing 0 0
                              = nothing 0 0
                                . nothing 0 0
                                  name lex nothing 0 0
                                  name strpos nothing 0 0
                                const (0) int 0 0
                          seq nothing 0 0
                            -- nothing 0 0
                              . nothing 0 0
                                name lex nothing 0 0
                                name ncbuf nothing 0 0
                    scope nothing 0 0
                      seq nothing 0 0
                        if nothing 0 0
                          && nothing 0 0
                            . nothing 0 0
                              name lex nothing 0 0
                              name lastnl nothing 0 0
                            != nothing 0 0
                              . nothing 0 0
                                name lex nothing 0 0
                                name prompt nothing 0 0
                              name nil polymorphic type 0 0
                          seq nothing 0 0
                            call nothing 0 0
                              -> nothing 0 0
                                name sys nothing 0 0
                                name fprint nothing 0 0
                              seq nothing 0 0
                                call nothing 0 0
                                  name stderr nothing 0 0
                                seq nothing 0 0
                                  const %s string 0 0
                                  seq nothing 0 0
                                    . nothing 0 0
                                      name lex nothing 0 0
                                      name prompt nothing 0 0
                        seq nothing 0 0
                          = nothing 0 0
                            name c nothing 0 0
                            call nothing 0 0
                              -> nothing 0 0
                                name bufio nothi
typecheck tree: 
fn(){} fn(lex: ref YYLEX): int 0 0
  name readnum fn(lex: ref YYLEX): int 0 0
  seq nothing 0 0
    := nothing 0 0
      name sum nothing 0 0
      := nothing 0 0
        name nc nothing 0 0
        const (0) int 0 0
    seq nothing 0 0
      for nothing 0 0
        && nothing 0 0
          >= nothing 0 0
            := nothing 0 0
              name c nothing 0 0
              call nothing 0 0
                . nothing 0 0
                  name lex nothing 0 0
                  name getc nothing 0 0
            const (48) int 0 0
          <= nothing 0 0
            name c nothing 0 0
            const (57) int 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              = nothing 0 0
                name sum nothing 0 0
                + nothing 0 0
                  * nothing 0 0
                    name sum nothing 0 0
                    const (10) int 0 0
                  - nothing 0 0
                    name c nothing 0 0
                    const (48) int 0 0
              seq nothing 0 0
                ++ nothing 0 0
                  name nc nothing 0 0
      seq nothing 0 0
        call nothing 0 0
          . nothing 0 0
            name lex nothing 0 0
            name ungetc nothing 0 0
        seq nothing 0 0
          if nothing 0 0
            == nothing 0 0
              name nc nothing 0 0
              const (0) int 0 0
            seq nothing 0 0
              return nothing 0 0
                - nothing 0 0
                  const (1) int 0 0
          seq nothing 0 0
            return nothing 0 0
              name sum nothing 0 0
typecheck tree: 
fn(){} fn(lex: ref YYLEX): (int, ref Redir) 0 0
  name readfdassign fn(lex: ref YYLEX): (int, ref Redir) 0 0
  seq nothing 0 0
    := nothing 0 0
      name n1 nothing 0 0
      call nothing 0 0
        name readnum nothing 0 0
        seq nothing 0 0
          name lex nothing 0 0
    seq nothing 0 0
      if nothing 0 0
        != nothing 0 0
          := nothing 0 0
            name c nothing 0 0
            call nothing 0 0
              . nothing 0 0
                name lex nothing 0 0
                name getc nothing 0 0
          const (61) int 0 0
        seq nothing 0 0
          scope nothing 0 0
            seq nothing 0 0
              if nothing 0 0
                == nothing 0 0
                  name c nothing 0 0
                  const (93) int 0 0
                seq nothing 0 0
                  return nothing 0 0
                    tuple nothing 0 0
                      seq nothing 0 0
                        name REDIR nothing 0 0
                        seq nothing 0 0
                          ref nothing 0 0
                            call nothing 0 0
                              name Redir nothing 0 0
                              seq nothing 0 0
                                - nothing 0 0
                                  const (1) int 0 0
                                seq nothing 0 0
                                  name n1 nothing 0 0
                                  seq nothing 0 0
                                    - nothing 0 0
                                      const (1) int 0 0
              seq nothing 0 0
                return nothing 0 0
                  tuple nothing 0 0
                    seq nothing 0 0
                      name ERROR nothing 0 0
                      seq nothing 0 0
                        name nil polymorphic type 0 0
      seq nothing 0 0
        := nothing 0 0
          name n2 nothing 0 0
          call nothing 0 0
            name readnum nothing 0 0
            seq nothing 0 0
              name lex nothing 0 0
        seq nothing 0 0
          if nothing 0 0
            != nothing 0 0
              call nothing 0 0
                . nothing 0 0
                  name lex nothing 0 0
                  name getc nothing 0 0
              const (93) int 0 0
            seq nothing 0 0
              return nothing 0 0
                tuple nothing 0 0
                  seq nothing 0 0
                    name ERROR nothing 0 0
                    seq nothing 0 0
                      name nil polymorphic type 0 0
          seq nothing 0 0
            return nothing 0 0
              tuple nothing 0 0
                seq nothing 0 0
                  name DUP nothing 0 0
                  seq nothing 0 0
                    ref nothing 0 0
                      call nothing 0 0
                        name Redir nothing 0 0
                        seq nothing 0 0
                          - nothing 0 0
                            const (1) int 0 0
                          seq nothing 0 0
                            name n1 nothing 0 0
                            seq nothing 0 0
                              name n2 nothing 0 0
typecheck tree: 
fn(){} fn(left: ref Node, right: ref Node): ref Node 0 0
  name mkseq fn(left: ref Node, right: ref Node): ref Node 0 0
  seq nothing 0 0
    if nothing 0 0
      && nothing 0 0
        != nothing 0 0
          name left nothing 0 0
          name nil polymorphic type 0 0
        != nothing 0 0
          name right nothing 0 0
          name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          call nothing 0 0
            name mk nothing 0 0
            seq nothing 0 0
              name n_SEQ nothing 0 0
              seq nothing 0 0
                name left nothing 0 0
                seq nothing 0 0
                  name right nothing 0 0
        if nothing 0 0
          == nothing 0 0
            name left nothing 0 0
            name nil polymorphic type 0 0
          seq nothing 0 0
            return nothing 0 0
              name right nothing 0 0
    seq nothing 0 0
      return nothing 0 0
        name left nothing 0 0
typecheck tree: 
fn(){} fn(ntype: int, left: ref Node, right: ref Node): ref Node 0 0
  name mk fn(ntype: int, left: ref Node, right: ref Node): ref Node 0 0
  seq nothing 0 0
    return nothing 0 0
      ref nothing 0 0
        call nothing 0 0
          name Node nothing 0 0
          seq nothing 0 0
            name ntype nothing 0 0
            seq nothing 0 0
              name left nothing 0 0
              seq nothing 0 0
                name right nothing 0 0
                seq nothing 0 0
                  name nil polymorphic type 0 0
                  seq nothing 0 0
                    name nil polymorphic type 0 0
typecheck tree: 
fn(){} fn(): ref Sys->FD 0 0
  name stderr fn(): ref Sys->FD 0 0
  seq nothing 0 0
    return nothing 0 0
      call nothing 0 0
        -> nothing 0 0
          name sys nothing 0 0
          name fildes nothing 0 0
        seq nothing 0 0
          const (2) int 0 0
typecheck tree: 
fn(){} fn(yyc: int): string 0 0
  name yytokname fn(yyc: int): string 0 0
  seq nothing 0 0
    if nothing 0 0
      && nothing 0 0
        && nothing 0 0
          > nothing 0 0
            name yyc nothing 0 0
            const (0) int 0 0
          <= nothing 0 0
            name yyc nothing 0 0
            len nothing 0 0
              name yytoknames nothing 0 0
        != nothing 0 0
          index nothing 0 0
            name yytoknames nothing 0 0
            - nothing 0 0
              name yyc nothing 0 0
              const (1) int 0 0
          name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          index nothing 0 0
            name yytoknames nothing 0 0
            - nothing 0 0
              name yyc nothing 0 0
              const (1) int 0 0
    seq nothing 0 0
      return nothing 0 0
        + nothing 0 0
          + nothing 0 0
            const < string 0 0
            cast string 0 0
              name yyc nothing 0 0
          const > string 0 0
typecheck tree: 
fn(){} fn(yys: int): string 0 0
  name yystatname fn(yys: int): string 0 0
  seq nothing 0 0
    if nothing 0 0
      && nothing 0 0
        && nothing 0 0
          >= nothing 0 0
            name yys nothing 0 0
            const (0) int 0 0
          < nothing 0 0
            name yys nothing 0 0
            len nothing 0 0
              name yystates nothing 0 0
        != nothing 0 0
          index nothing 0 0
            name yystates nothing 0 0
            name yys nothing 0 0
          name nil polymorphic type 0 0
      seq nothing 0 0
        return nothing 0 0
          index nothing 0 0
            name yystates nothing 0 0
            name yys nothing 0 0
    seq nothing 0 0
      return nothing 0 0
        + nothing 0 0
          + nothing 0 0
            const < string 0 0
            cast string 0 0
              name yys nothing 0 0
          const >
 string 0 0
typecheck tree: 
fn(){} fn(yylex: ref YYLEX): int 0 0
  name yylex1 fn(yylex: ref YYLEX): int 0 0
  seq nothing 0 0
    vardecl int 0 0
      seq nothing 0 0
    seq nothing 0 0
      := nothing 0 0
        name yychar nothing 0 0
        call nothing 0 0
          . nothing 0 0
            name yylex nothing 0 0
            name lex nothing 0 0
      seq nothing 0 0
        if nothing 0 0
          <= nothing 0 0
            name yychar nothing 0 0
            const (0) int 0 0
          seq nothing 0 0
            = nothing 0 0
              name c nothing 0 0
              index nothing 0 0
                name yytok1 nothing 0 0
                const (0) int 0 0
            if nothing 0 0
              < nothing 0 0
                name yychar nothing 0 0
                len nothing 0 0
                  name yytok1 nothing 0 0
              seq nothing 0 0
                = nothing 0 0
                  name c nothing 0 0
                  index nothing 0 0
                    name yytok1 nothing 0 0
                    name yychar nothing 0 0
                if nothing 0 0
                  && nothing 0 0
                    >= nothing 0 0
                      name yychar nothing 0 0
                      name YYPRIVATE nothing 0 0
                    < nothing 0 0
                      name yychar nothing 0 0
                      + nothing 0 0
                        name YYPRIVATE nothing 0 0
                        len nothing 0 0
                          name yytok2 nothing 0 0
                  seq nothing 0 0
                    = nothing 0 0
                      name c nothing 0 0
                      index nothing 0 0
                        name yytok2 nothing 0 0
                        - nothing 0 0
                          name yychar nothing 0 0
                          name YYPRIVATE nothing 0 0
                    scope nothing 0 0
                      seq nothing 0 0
                        := nothing 0 0
                          name n nothing 0 0
                          len nothing 0 0
                            name yytok3 nothing 0 0
                        seq nothing 0 0
                          = nothing 0 0
                            name c nothing 0 0
                            const (0) int 0 0
                          seq nothing 0 0
                            seq nothing 0 0
                              := nothing 0 0
                                name i nothing 0 0
                                const (0) int 0 0
                              for nothing 0 0
                                < nothing 0 0
                                  name i nothing 0 0
                                  name n nothing 0 0
                                seq nothing 0 0
                                  scope nothing 0 0
                                    seq nothing 0 0
                                      if nothing 0 0
                                        == nothing 0 0
                                          index nothing 0 0
                                            name yytok3 nothing 0 0
                                            + nothing 0 0
                                              name i nothing 0 0
                                              const (0) int 0 0
                                          name yychar nothing 0 0
                                        seq nothing 0 0
                                          scope nothing 0 0
                                            seq nothing 0 0
                                              = nothing 0 0
                                                name c nothing 0 0
                                                index nothing 0 0
                                                  name yytok3 nothing 0 0
                                                  + nothing 0 0
                                                    name i nothing 0 0
                                                    const (1) int 0 0
                                              seq nothing 0 0
                                                b
typecheck tree: 
fn(){} fn(yylex: ref YYLEX): int 0 0
  name yyparse fn(yylex: ref YYLEX): int 0 0
  seq nothing 0 0
    if nothing 0 0
      && nothing 0 0
        >= nothing 0 0
          name yydebug nothing 0 0
          const (1) int 0 0
        == nothing 0 0
          name yysys nothing 0 0
          name nil polymorphic type 0 0
      seq nothing 0 0
        scope nothing 0 0
          seq nothing 0 0
            = nothing 0 0
              name yysys nothing 0 0
              load YYSys 0 0
                const $Sys string 0 0
            seq nothing 0 0
              = nothing 0 0
                name yystderr nothing 0 0
                call nothing 0 0
                  -> nothing 0 0
                    name yysys nothing 0 0
                    name fildes nothing 0 0
                  seq nothing 0 0
                    const (2) int 0 0
    seq nothing 0 0
      := nothing 0 0
        name yys nothing 0 0
        array array of YYS 0 0
          name YYMAXDEPTH nothing 0 0
      seq nothing 0 0
        vardecl YYSTYPE 0 0
          seq nothing 0 0
        seq nothing 0 0
          := nothing 0 0
            name yystate nothing 0 0
            const (0) int 0 0
          seq nothing 0 0
            := nothing 0 0
              name yychar nothing 0 0
              - nothing 0 0
                const (1) int 0 0
            seq nothing 0 0
              := nothing 0 0
                name yynerrs nothing 0 0
                const (0) int 0 0
              seq nothing 0 0
                := nothing 0 0
                  name yyerrflag nothing 0 0
                  const (0) int 0 0
                seq nothing 0 0
                  := nothing 0 0
                    name yyp nothing 0 0
                    - nothing 0 0
                      const (1) int 0 0
                  seq nothing 0 0
                    := nothing 0 0
                      name yyn nothing 0 0
                      const (0) int 0 0
                    seq nothing 0 0
                      for nothing 0 0
                        nothing nothing 0 0
                        seq nothing 0 0
                          scope nothing 0 0
                            seq nothing 0 0
                              if nothing 0 0
                                >= nothing 0 0
                                  name yydebug nothing 0 0
                                  const (4) int 0 0
                                seq nothing 0 0
                                  call nothing 0 0
                                    -> nothing 0 0
                                      name yysys nothing 0 0
                                      name fprint nothing 0 0
                                    seq nothing 0 0
                                      name yystderr nothing 0 0
                                      seq nothing 0 0
                                        const char %s in %s string 0 0
                                        seq nothing 0 0
                                          call nothing 0 0
                                            name yytokname nothing 0 0
                                            seq nothing 0 0
                                              name yychar nothing 0 0
                                          seq nothing 0 0
                                            call nothing 0 0
                                              name yystatname nothing 0 0
                                              seq nothing 0 0
                                                name yystate nothing 0 0
                              seq nothing 0 0
                                ++ nothing 0 0
                                  name yyp nothing 0 0
                                seq nothing 0 0
                                  if nothing 0 0
                                    >= nothing 0 0
                                      name yyp nothing 0 0
                                      len nothing 0 0
                                        name yys nothing 0 0
                                    seq nothing 0 0
                          
fncom: usage 2 417ba8
ecom: 
used int 10 2
  call int 10 2
    -> fn(fd: ref Sys->FD, s: string, *): int 12 1
      name sys Sys 1 0
      name fprint nothing 11 1
    seq no type 10 2
      call ref Sys->FD 10 2
        -> fn(fd: int): ref Sys->FD 12 1
          name sys Sys 1 0
          name fildes nothing 11 1
        seq no type 10 1
          const (2) int 6 0
      seq no type 10 1
        const usage: sh [-ilexn] [-c command] [file [arg...]]
 string 1 0
ecom: 
call int 10 2
  -> fn(fd: ref Sys->FD, s: string, *): int 12 1
    name sys Sys 1 0
    name fprint nothing 11 1
  seq no type 10 2
    call ref Sys->FD 10 2
      -> fn(fd: int): ref Sys->FD 12 1
        name sys Sys 1 0
        name fildes nothing 11 1
      seq no type 10 1
        const (2) int 6 0
    seq no type 10 1
      const usage: sh [-ilexn] [-c command] [file [arg...]]
 string 1 0
ecom to: 
name .t0 int 0 0
generate desc for Sys->fprint
descmap offset 0
descmap fd type ref Sys->FD offset 64 (d->offset=64 start=0) returns 64
descmap s type string offset 72 (d->offset=72 start=0) returns 72
generate desc for big
generate desc for big
	desc	$-1,8,""
ecom: 
call ref Sys->FD 10 2
  -> fn(fd: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name fildes nothing 11 1
  seq no type 10 1
    const (2) int 6 0
ecom to: 
name .t2 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b3 big 0 0
    const (64) int 6 0
ecom: 
name .t2 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b1 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .t2 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t2 ref Sys->FD 0 0
ecom: 
const usage: sh [-ilexn] [-c command] [file [arg...]]
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b1 big 0 0
    const (72) int 6 0
ecom: 
raise nothing 10 1
  const fail:usage string 1 0
fn: usage
64: local .t0 int ref 1
72: local .b1 big ref 1
80: local .b3 big ref 1
88: local .t2 ref Sys->FD ref 1
generate desc for usage
descmap offset 0
descmap .t0 type int offset 64 (d->offset=64 start=0) returns -1
descmap .b1 type big offset 72 (d->offset=72 start=0) returns -1
descmap .b3 type big offset 80 (d->offset=80 start=0) returns -1
descmap .t2 type ref Sys->FD offset 88 (d->offset=88 start=0) returns 88
fncom: badmodule 6 417c68
ecom: 
used int 10 2
  call int 10 2
    -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name fprint nothing 11 1
    seq no type 10 2
      call ref Sys->FD 10 2
        -> fn(fd: int): ref Sys->FD 12 1
          name sys Sys 1 0
          name fildes nothing 11 1
        seq no type 10 1
          const (2) int 6 0
      seq no type 10 1
        const sh: cannot load %s: %r
 string 1 0
        seq no type 10 1
          name path string 0 0
ecom: 
call int 10 2
  -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name fprint nothing 11 1
  seq no type 10 2
    call ref Sys->FD 10 2
      -> fn(fd: int): ref Sys->FD 12 1
        name sys Sys 1 0
        name fildes nothing 11 1
      seq no type 10 1
        const (2) int 6 0
    seq no type 10 1
      const sh: cannot load %s: %r
 string 1 0
      seq no type 10 1
        name path string 0 0
ecom to: 
name .t4 int 0 0
generate desc for Sys->fprint
descmap offset 0
descmap fd type ref Sys->FD offset 64 (d->offset=64 start=0) returns 64
descmap s type string offset 72 (d->offset=72 start=0) returns 72
descmap type string offset 80 returns 80
generate desc for big
ecom: 
call ref Sys->FD 10 2
  -> fn(fd: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name fildes nothing 11 1
  seq no type 10 1
    const (2) int 6 0
ecom to: 
name .t6 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b7 big 0 0
    const (64) int 6 0
ecom: 
name .t6 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b5 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .t6 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t6 ref Sys->FD 0 0
ecom: 
const sh: cannot load %s: %r
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b5 big 0 0
    const (72) int 6 0
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b5 big 0 0
    const (80) int 6 0
ecom: 
raise nothing 10 1
  const fail:bad module string 1 0
fn: badmodule
64: argument path string ref 1
72: local .t4 int ref 1
80: local .b5 big ref 1
88: local .b7 big ref 1
96: local .t6 ref Sys->FD ref 1
generate desc for badmodule
descmap offset 0
descmap path type string offset 64 (d->offset=64 start=0) returns 64
descmap .t4 type int offset 72 (d->offset=72 start=0) returns -1
descmap .b5 type big offset 80 (d->offset=80 start=0) returns -1
descmap .b7 type big offset 88 (d->offset=88 start=0) returns -1
descmap .t6 type ref Sys->FD offset 96 (d->offset=96 start=0) returns 96
fncom: initialise 7 4b6b60
ecom: 
= Sys 10 1
  name sys Sys 1 0
  load Sys 10 1
    const $Sys string 1 0
    name .m.Sys Sys 17 1
ecom: 
load Sys 10 1
  const $Sys string 1 0
  name .m.Sys Sys 17 1
ecom to: 
name sys Sys 1 0
ecom: 
= Filepat 10 1
  name filepat Filepat 1 0
  load Filepat 10 1
    const /dis/lib/filepat.dis string 1 0
    name .m.Filepat Filepat 17 1
ecom: 
load Filepat 10 1
  const /dis/lib/filepat.dis string 1 0
  name .m.Filepat Filepat 17 1
ecom to: 
name filepat Filepat 1 0
ecom: 
call no type 10 2
  name badmodule fn(path: string) 11 1
  seq no type 10 1
    const /dis/lib/filepat.dis string 1 0
generate desc for big
ecom: 
const /dis/lib/filepat.dis string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b9 big 0 0
    const (64) int 6 0
ecom: 
= String 10 1
  name str String 1 0
  load String 10 1
    const /dis/lib/string.dis string 1 0
    name .m.String String 17 1
ecom: 
load String 10 1
  const /dis/lib/string.dis string 1 0
  name .m.String String 17 1
ecom to: 
name str String 1 0
ecom: 
call no type 10 2
  name badmodule fn(path: string) 11 1
  seq no type 10 1
    const /dis/lib/string.dis string 1 0
generate desc for big
ecom: 
const /dis/lib/string.dis string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b9 big 0 0
    const (64) int 6 0
ecom: 
= Bufio 10 1
  name bufio Bufio 1 0
  load Bufio 10 1
    const /dis/lib/bufio.dis string 1 0
    name .m.Bufio Bufio 17 1
ecom: 
load Bufio 10 1
  const /dis/lib/bufio.dis string 1 0
  name .m.Bufio Bufio 17 1
ecom to: 
name bufio Bufio 1 0
ecom: 
call no type 10 2
  name badmodule fn(path: string) 11 1
  seq no type 10 1
    const /dis/lib/bufio.dis string 1 0
generate desc for big
ecom: 
const /dis/lib/bufio.dis string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b9 big 0 0
    const (64) int 6 0
ecom: 
= Sh 10 1
  name myself Sh 1 0
  load Sh 10 1
    const $self string 1 0
    name .m.Sh Sh 17 1
ecom: 
load Sh 10 1
  const $self string 1 0
  name .m.Sh Sh 17 1
ecom to: 
name myself Sh 1 0
ecom: 
call no type 10 2
  name badmodule fn(path: string) 11 1
  seq no type 10 1
    const $self(Sh) string 1 0
generate desc for big
ecom: 
const $self(Sh) string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b9 big 0 0
    const (64) int 6 0
ecom: 
= Shellbuiltin 10 1
  name myselfbuiltin Shellbuiltin 1 0
  load Shellbuiltin 10 1
    const $self string 1 0
    name .m.Shellbuiltin Shellbuiltin 17 1
ecom: 
load Shellbuiltin 10 1
  const $self string 1 0
  name .m.Shellbuiltin Shellbuiltin 17 1
ecom to: 
name myselfbuiltin Shellbuiltin 1 0
ecom: 
call no type 10 2
  name badmodule fn(path: string) 11 1
  seq no type 10 1
    const $self(Shellbuiltin) string 1 0
generate desc for big
ecom: 
const $self(Shellbuiltin) string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b9 big 0 0
    const (64) int 6 0
ecom: 
= Env 10 1
  name env Env 1 0
  load Env 10 1
    const /dis/lib/env.dis string 1 0
    name .m.Env Env 17 1
ecom: 
load Env 10 1
  const /dis/lib/env.dis string 1 0
  name .m.Env Env 17 1
ecom to: 
name env Env 1 0
fn: initialise
64: local .t8 int ref 1
72: local .b9 big ref 5
generate desc for initialise
descmap offset 0
descmap .t8 type int offset 64 (d->offset=64 start=0) returns -1
descmap .b9 type big offset 72 (d->offset=72 start=0) returns -1
fncom: init 2 4b6d80
ecom: 
call no type 10 1
  name initialise fn() 11 1
generate desc for big
ecom: 
= Options 10 1
  name opts Options 0 0
  name blankopts Options 1 0
ecom: 
name blankopts Options 1 0
ecom to: 
name opts Options 0 0
generate desc for Options
descmap adt offset 0
descmap offset 0
descmap lflag type int offset 0 (d->offset=0 start=0) returns -1
descmap nflag type int offset 4 (d->offset=4 start=0) returns -1
descmap ctxtflags type int offset 8 (d->offset=8 start=0) returns -1
descmap carg type string offset 16 (d->offset=16 start=0) returns 16
generate desc for Options
	desc	$-1,24,"20"
eacom: 
inds int 10 1
  hd string 10 1
    name argv list of string 0 0
  const (0) int 6 0
ecom: 
inds int 10 1
  hd string 10 1
    name argv list of string 0 0
  const (0) int 6 0
ecom to: 
name .t11 int 0 0
eacom: 
hd string 10 1
  name argv list of string 0 0
ecom: 
hd string 10 1
  name argv list of string 0 0
ecom to: 
name .t12 string 0 0
ecom: 
= string 10 1
  name .t12 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t12 string 0 0
ecom: 
++ int 10 1
  * int 0 0
    adr int 13 1
      name opts Options 0 0
  const (1) int 6 0
ecom: 
= list of string 10 1
  name argv list of string 0 0
  tl list of string 10 1
    name argv list of string 0 0
ecom: 
tl list of string 10 1
  name argv list of string 0 0
ecom to: 
name argv list of string 0 0
ecom: 
= int 10 1
  name interactive int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name interactive int 0 0
eacom: 
hd string 10 1
  name argv list of string 0 0
ecom: 
hd string 10 1
  name argv list of string 0 0
ecom to: 
name .t12 string 0 0
ecom: 
= string 10 1
  name .t12 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t12 string 0 0
eacom: 
inds int 10 1
  hd string 10 1
    name argv list of string 0 0
  const (0) int 6 0
ecom: 
inds int 10 1
  hd string 10 1
    name argv list of string 0 0
  const (0) int 6 0
ecom to: 
name .t11 int 0 0
eacom: 
hd string 10 1
  name argv list of string 0 0
ecom: 
hd string 10 1
  name argv list of string 0 0
ecom to: 
name .t12 string 0 0
ecom: 
= string 10 1
  name .t12 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t12 string 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
name i int 0 0
eacom: 
len int 10 1
  hd string 10 1
    name argv list of string 0 0
ecom: 
len int 10 1
  hd string 10 1
    name argv list of string 0 0
ecom to: 
name .t11 int 0 0
eacom: 
hd string 10 1
  name argv list of string 0 0
ecom: 
hd string 10 1
  name argv list of string 0 0
ecom to: 
name .t12 string 0 0
ecom: 
= string 10 1
  name .t12 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t12 string 0 0
ecom: 
= int 10 1
  name c int 0 0
  inds int 10 1
    hd string 10 1
      name argv list of string 0 0
    name i int 0 0
ecom: 
inds int 10 1
  hd string 10 1
    name argv list of string 0 0
  name i int 0 0
ecom to: 
name c int 0 0
eacom: 
hd string 10 1
  name argv list of string 0 0
ecom: 
hd string 10 1
  name argv list of string 0 0
ecom to: 
name .t12 string 0 0
ecom: 
= string 10 1
  name .t12 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t12 string 0 0
ecom: 
= int 10 1
  name interactive int 0 0
  const INTERACTIVE (1) int 6 0
ecom: 
const INTERACTIVE (1) int 6 0
ecom to: 
name interactive int 0 0
ecom: 
++ int 10 1
  * int 0 0
    adr int 13 1
      name opts Options 0 0
  const (1) int 6 0
ecom: 
++ int 10 1
  * int 0 0
    + int 13 1
      adr int 13 1
        name opts Options 0 0
      const nflag (4) int 6 0
  const (1) int 6 0
ecom: 
|= int 10 1
  * int 0 0
    + int 13 1
      adr int 13 1
        name opts Options 0 0
      const ctxtflags (8) int 6 0
  const ERROREXIT (8) int 6 0
ecom: 
|= int 10 1
  * int 0 0
    + int 13 1
      adr int 13 1
        name opts Options 0 0
      const ctxtflags (8) int 6 0
  const EXECPRINT (4) int 6 0
eacom: 
- int 10 1
  len int 10 1
    hd string 10 1
      name argv list of string 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  len int 10 1
    hd string 10 1
      name argv list of string 0 0
  const (1) int 6 0
ecom to: 
name .t11 int 0 0
ecom: 
len int 10 1
  hd string 10 1
    name argv list of string 0 0
ecom to: 
name .t11 int 0 0
eacom: 
hd string 10 1
  name argv list of string 0 0
ecom: 
hd string 10 1
  name argv list of string 0 0
ecom to: 
name .t12 string 0 0
ecom: 
= string 10 1
  name .t12 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t12 string 0 0
ecom: 
= string 10 2
  name arg string 0 0
  slice string 10 2
    hd string 10 1
      name argv list of string 0 0
    seq no type 10 2
      + int 15 1
        name i int 0 0
        const (1) int 6 0
      nothing no type 10 1
ecom: 
slice string 10 2
  hd string 10 1
    name argv list of string 0 0
  seq no type 10 2
    + int 15 1
      name i int 0 0
      const (1) int 6 0
    nothing no type 10 1
ecom to: 
name arg string 0 0
eacom: 
hd string 10 1
  name argv list of string 0 0
ecom: 
hd string 10 1
  name argv list of string 0 0
ecom to: 
name .t12 string 0 0
ecom: 
len int 10 1
  name .t12 string 0 0
ecom to: 
name .t11 int 0 0
eacom: 
+ int 15 1
  name i int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name i int 0 0
  const (1) int 6 0
ecom to: 
name .t13 int 0 0
ecom: 
name .t12 string 0 0
ecom to: 
name arg string 0 0
ecom: 
= string 10 1
  name .t12 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t12 string 0 0
eacom: 
tl list of string 10 1
  name argv list of string 0 0
ecom: 
tl list of string 10 1
  name argv list of string 0 0
ecom to: 
name .t12 list of string 0 0
ecom: 
= list of string 10 1
  name .t12 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t12 list of string 0 0
eacom: 
hd string 10 1
  tl list of string 10 1
    name argv list of string 0 0
ecom: 
hd string 10 1
  tl list of string 10 1
    name argv list of string 0 0
ecom to: 
name .t12 string 0 0
eacom: 
tl list of string 10 1
  name argv list of string 0 0
ecom: 
tl list of string 10 1
  name argv list of string 0 0
ecom to: 
name .t12 list of string 0 0
ecom: 
= string 10 1
  name .t12 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t12 string 0 0
ecom: 
call no type 10 1
  name usage fn() 11 1
generate desc for big
ecom: 
= string 10 1
  name arg string 0 0
  hd string 10 1
    tl list of string 10 1
      name argv list of string 0 0
ecom: 
hd string 10 1
  tl list of string 10 1
    name argv list of string 0 0
ecom to: 
name arg string 0 0
eacom: 
tl list of string 10 1
  name argv list of string 0 0
ecom: 
tl list of string 10 1
  name argv list of string 0 0
ecom to: 
name .t12 list of string 0 0
ecom: 
= list of string 10 1
  name .t12 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t12 list of string 0 0
ecom: 
= list of string 10 1
  name argv list of string 0 0
  tl list of string 10 1
    name argv list of string 0 0
ecom: 
tl list of string 10 1
  name argv list of string 0 0
ecom to: 
name argv list of string 0 0
ecom: 
= list of string 10 1
  name argv list of string 0 0
  tl list of string 10 1
    name argv list of string 0 0
ecom: 
tl list of string 10 1
  name argv list of string 0 0
ecom to: 
name argv list of string 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name opts Options 0 0
      const carg (16) int 6 0
  name arg string 0 0
ecom: 
name arg string 0 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name opts Options 0 0
    const carg (16) int 6 0
ecom: 
= string 10 1
  name arg string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name arg string 0 0
ecom: 
= string 10 1
  name arg string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name arg string 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
= list of string 10 1
  name argv list of string 0 0
  tl list of string 10 1
    name argv list of string 0 0
ecom: 
tl list of string 10 1
  name argv list of string 0 0
ecom to: 
name argv list of string 0 0
ecom: 
used int 10 2
  call int 10 2
    -> fn(flags: int, movefd: list of int): int 12 1
      name sys Sys 1 0
      name pctl nothing 11 1
    seq no type 10 1
      const FORKFD (2) int 6 0
      seq no type 10 1
        name nil list of int 1 0
ecom: 
call int 10 2
  -> fn(flags: int, movefd: list of int): int 12 1
    name sys Sys 1 0
    name pctl nothing 11 1
  seq no type 10 1
    const FORKFD (2) int 6 0
    seq no type 10 1
      name nil list of int 1 0
ecom to: 
name .t13 int 0 0
generate desc for big
ecom: 
const FORKFD (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b10 big 0 0
    const (64) int 6 0
ecom: 
name nil list of int 1 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b10 big 0 0
    const (72) int 6 0
ecom: 
used int 10 2
  call int 10 2
    -> fn(flags: int, movefd: list of int): int 12 1
      name sys Sys 1 0
      name pctl nothing 11 1
    seq no type 10 1
      const FORKNS (8) int 6 0
      seq no type 10 1
        name nil list of int 1 0
ecom: 
call int 10 2
  -> fn(flags: int, movefd: list of int): int 12 1
    name sys Sys 1 0
    name pctl nothing 11 1
  seq no type 10 1
    const FORKNS (8) int 6 0
    seq no type 10 1
      name nil list of int 1 0
ecom to: 
name .t13 int 0 0
generate desc for big
ecom: 
const FORKNS (8) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b10 big 0 0
    const (64) int 6 0
ecom: 
name nil list of int 1 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b10 big 0 0
    const (72) int 6 0
ecom: 
= ref Context 10 2
  name ctxt ref Context 0 0
  call ref Context 10 2
    name new fn(drawcontext: ref Draw->Context): ref Context 11 1
    seq no type 10 1
      name drawcontext ref Draw->Context 0 0
ecom: 
call ref Context 10 2
  name new fn(drawcontext: ref Draw->Context): ref Context 11 1
  seq no type 10 1
    name drawcontext ref Draw->Context 0 0
ecom to: 
name ctxt ref Context 0 0
generate desc for big
ecom: 
name drawcontext ref Draw->Context 0 0
ecom to: 
* ref Draw->Context 8 0
  + int 15 0
    name .b10 big 0 0
    const (64) int 6 0
ecom: 
used int 10 2
  call int 10 2
    name setoptions fn(ctxt: self ref Context, flags: int, on: int): int 11 1
    seq nothing 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        * int 0 0
          + int 13 1
            adr int 13 1
              name opts Options 0 0
            const ctxtflags (8) int 6 0
        seq no type 10 1
          const (1) int 6 0
ecom: 
call int 10 2
  name setoptions fn(ctxt: self ref Context, flags: int, on: int): int 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * int 0 0
        + int 13 1
          adr int 13 1
            name opts Options 0 0
          const ctxtflags (8) int 6 0
      seq no type 10 1
        const (1) int 6 0
ecom to: 
name .t13 int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b10 big 0 0
    const (64) int 6 0
ecom: 
* int 0 0
  + int 13 1
    adr int 13 1
      name opts Options 0 0
    const ctxtflags (8) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b10 big 0 0
    const (72) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b10 big 0 0
    const (76) int 6 0
ecom: 
call no type 10 2
  name runscript fn(ctxt: ref Context, path: string, args: list of ref Listnode, reporterr: int) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const /lib/sh/profile string 1 0
      seq no type 10 1
        name nil list of ref Listnode 1 0
        seq no type 10 1
          const (0) int 6 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b10 big 0 0
    const (64) int 6 0
ecom: 
const /lib/sh/profile string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b10 big 0 0
    const (72) int 6 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b10 big 0 0
    const (80) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b10 big 0 0
    const (88) int 6 0
ecom: 
= string 10 2
  name status string 0 0
  call string 10 2
    name run fn(ctxt: self ref Context, args: list of ref Listnode, last: int): string 11 1
    seq nothing 10 2
      name ctxt ref Context 0 0
      seq no type 10 2
        call list of ref Listnode 10 2
          name stringlist2list fn(sl: list of string): list of ref Listnode 11 1
          seq no type 10 1
            :: list of string 10 1
              + string 10 1
                + string 10 1
                  const { string 1 0
                  * string 0 0
                    + int 13 1
                      adr int 13 1
                        name opts Options 0 0
                      const carg (16) int 6 0
                const } string 1 0
              name argv list of string 0 0
        seq no type 10 1
          ! int 10 1
            name interactive int 0 0
ecom: 
call string 10 2
  name run fn(ctxt: self ref Context, args: list of ref Listnode, last: int): string 11 1
  seq nothing 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      call list of ref Listnode 10 2
        name stringlist2list fn(sl: list of string): list of ref Listnode 11 1
        seq no type 10 1
          :: list of string 10 1
            + string 10 1
              + string 10 1
                const { string 1 0
                * string 0 0
                  + int 13 1
                    adr int 13 1
                      name opts Options 0 0
                    const carg (16) int 6 0
              const } string 1 0
            name argv list of string 0 0
      seq no type 10 1
        ! int 10 1
          name interactive int 0 0
ecom to: 
name status string 0 0
generate desc for big
ecom: 
call list of ref Listnode 10 2
  name stringlist2list fn(sl: list of string): list of ref Listnode 11 1
  seq no type 10 1
    :: list of string 10 1
      + string 10 1
        + string 10 1
          const { string 1 0
          * string 0 0
            + int 13 1
              adr int 13 1
                name opts Options 0 0
              const carg (16) int 6 0
        const } string 1 0
      name argv list of string 0 0
ecom to: 
name .t12 list of ref Listnode 0 0
generate desc for big
ecom: 
:: list of string 10 1
  + string 10 1
    + string 10 1
      const { string 1 0
      * string 0 0
        + int 13 1
          adr int 13 1
            name opts Options 0 0
          const carg (16) int 6 0
    const } string 1 0
  name argv list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b14 big 0 0
    const (64) int 6 0
eacom: 
+ string 10 1
  + string 10 1
    const { string 1 0
    * string 0 0
      + int 13 1
        adr int 13 1
          name opts Options 0 0
        const carg (16) int 6 0
  const } string 1 0
ecom: 
+ string 10 1
  + string 10 1
    const { string 1 0
    * string 0 0
      + int 13 1
        adr int 13 1
          name opts Options 0 0
        const carg (16) int 6 0
  const } string 1 0
ecom to: 
name .t15 string 0 0
ecom: 
+ string 10 1
  const { string 1 0
  * string 0 0
    + int 13 1
      adr int 13 1
        name opts Options 0 0
      const carg (16) int 6 0
ecom to: 
name .t15 string 0 0
ecom: 
name argv list of string 0 0
ecom to: 
name .t16 list of string 0 0
ecom: 
= string 10 1
  name .t15 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t15 string 0 0
ecom: 
= list of string 10 1
  name .t16 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t16 list of string 0 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b10 big 0 0
    const (64) int 6 0
ecom: 
name .t12 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b10 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t12 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t12 list of ref Listnode 0 0
ecom: 
! int 10 1
  name interactive int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b10 big 0 0
    const (80) int 6 0
ecom: 
raise nothing 10 1
  + string 10 1
    const fail: string 1 0
    name status string 0 0
eacom: 
+ string 10 1
  const fail: string 1 0
  name status string 0 0
ecom: 
+ string 10 1
  const fail: string 1 0
  name status string 0 0
ecom to: 
name .t16 string 0 0
ecom: 
= string 10 1
  name .t16 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t16 string 0 0
ecom: 
used string 10 2
  call string 10 2
    name setstatus fn(ctxt: ref Context, val: string): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name status string 0 0
ecom: 
call string 10 2
  name setstatus fn(ctxt: ref Context, val: string): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name status string 0 0
ecom to: 
name .t16 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b14 big 0 0
    const (64) int 6 0
ecom: 
name status string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b14 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t16 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t16 string 0 0
ecom: 
= string 10 1
  name status string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name status string 0 0
eacom: 
call int 10 2
  name isconsole fn(fd: ref Sys->FD): int 11 1
  seq no type 10 2
    call ref Sys->FD 10 2
      -> fn(fd: int): ref Sys->FD 12 1
        name sys Sys 1 0
        name fildes nothing 11 1
      seq no type 10 1
        const (0) int 6 0
ecom: 
call int 10 2
  name isconsole fn(fd: ref Sys->FD): int 11 1
  seq no type 10 2
    call ref Sys->FD 10 2
      -> fn(fd: int): ref Sys->FD 12 1
        name sys Sys 1 0
        name fildes nothing 11 1
      seq no type 10 1
        const (0) int 6 0
ecom to: 
name .t13 int 0 0
generate desc for big
ecom: 
call ref Sys->FD 10 2
  -> fn(fd: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name fildes nothing 11 1
  seq no type 10 1
    const (0) int 6 0
ecom to: 
name .t16 ref Sys->FD 0 0
generate desc for big
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b10 big 0 0
    const (64) int 6 0
ecom: 
name .t16 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b14 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .t16 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t16 ref Sys->FD 0 0
ecom: 
|= int 10 1
  name interactive int 0 0
  const INTERACTIVE (1) int 6 0
ecom: 
used int 10 2
  call int 10 2
    name setoptions fn(ctxt: self ref Context, flags: int, on: int): int 11 1
    seq nothing 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name interactive int 0 0
        seq no type 10 1
          const (1) int 6 0
ecom: 
call int 10 2
  name setoptions fn(ctxt: self ref Context, flags: int, on: int): int 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name interactive int 0 0
      seq no type 10 1
        const (1) int 6 0
ecom to: 
name .t13 int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b14 big 0 0
    const (64) int 6 0
ecom: 
name interactive int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b14 big 0 0
    const (72) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b14 big 0 0
    const (76) int 6 0
ecom: 
call no type 10 2
  name runfile fn(ctxt: ref Context, fd: ref Sys->FD, path: string, args: list of ref Listnode) 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      call ref Sys->FD 10 2
        -> fn(fd: int): ref Sys->FD 12 1
          name sys Sys 1 0
          name fildes nothing 11 1
        seq no type 10 1
          const (0) int 6 0
      seq no type 10 1
        const stdin string 1 0
        seq no type 10 1
          name nil list of ref Listnode 1 0
generate desc for big
ecom: 
call ref Sys->FD 10 2
  -> fn(fd: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name fildes nothing 11 1
  seq no type 10 1
    const (0) int 6 0
ecom to: 
name .t16 ref Sys->FD 0 0
generate desc for big
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b10 big 0 0
    const (64) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b14 big 0 0
    const (64) int 6 0
ecom: 
name .t16 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b14 big 0 0
    const (72) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .t16 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t16 ref Sys->FD 0 0
ecom: 
const stdin string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b14 big 0 0
    const (80) int 6 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b14 big 0 0
    const (88) int 6 0
ecom: 
used int 10 2
  call int 10 2
    name setoptions fn(ctxt: self ref Context, flags: int, on: int): int 11 1
    seq nothing 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name interactive int 0 0
        seq no type 10 1
          const (1) int 6 0
ecom: 
call int 10 2
  name setoptions fn(ctxt: self ref Context, flags: int, on: int): int 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name interactive int 0 0
      seq no type 10 1
        const (1) int 6 0
ecom to: 
name .t13 int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b14 big 0 0
    const (64) int 6 0
ecom: 
name interactive int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b14 big 0 0
    const (72) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b14 big 0 0
    const (76) int 6 0
ecom: 
call no type 10 2
  name runscript fn(ctxt: ref Context, path: string, args: list of ref Listnode, reporterr: int) 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      hd string 10 1
        name argv list of string 0 0
      seq no type 10 2
        call list of ref Listnode 10 2
          name stringlist2list fn(sl: list of string): list of ref Listnode 11 1
          seq no type 10 1
            tl list of string 10 1
              name argv list of string 0 0
        seq no type 10 1
          const (1) int 6 0
generate desc for big
ecom: 
call list of ref Listnode 10 2
  name stringlist2list fn(sl: list of string): list of ref Listnode 11 1
  seq no type 10 1
    tl list of string 10 1
      name argv list of string 0 0
ecom to: 
name .t16 list of ref Listnode 0 0
generate desc for big
ecom: 
tl list of string 10 1
  name argv list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b10 big 0 0
    const (64) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b14 big 0 0
    const (64) int 6 0
ecom: 
hd string 10 1
  name argv list of string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b14 big 0 0
    const (72) int 6 0
ecom: 
name .t16 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b14 big 0 0
    const (80) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t16 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t16 list of ref Listnode 0 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b14 big 0 0
    const (88) int 6 0
fn: init
64: argument drawcontext ref Draw->Context ref 1
72: argument argv list of string ref 24
80: local interactive int ref 7
84: local i int ref 6
88: local c int ref 2
92: local .t11 int ref 1
96: local .t13 int ref 1
104: local opts Options ref 12
128: local .b10 big ref 11
136: local ctxt ref Context ref 10
144: local .b14 big ref 7
152: local status string ref 4
160: local arg string ref 3
168: local .t12 string ref 1
176: local .t15 string ref 1
184: local .t16 list of string ref 1
generate desc for init
descmap offset 0
descmap drawcontext type ref Draw->Context offset 64 (d->offset=64 start=0) returns 64
descmap argv type list of string offset 72 (d->offset=72 start=0) returns 72
descmap interactive type int offset 80 (d->offset=80 start=0) returns -1
descmap i type int offset 84 (d->offset=84 start=0) returns -1
descmap c type int offset 88 (d->offset=88 start=0) returns -1
descmap .t11 type int offset 92 (d->offset=92 start=0) returns -1
descmap .t13 type int offset 96 (d->offset=96 start=0) returns -1
descmap adt offset 104
descmap offset 104
descmap lflag type int offset 104 (d->offset=0 start=104) returns -1
descmap nflag type int offset 108 (d->offset=4 start=104) returns -1
descmap ctxtflags type int offset 112 (d->offset=8 start=104) returns -1
descmap carg type string offset 120 (d->offset=16 start=104) returns 120
descmap opts type Options offset 104 (d->offset=104 start=0) returns 120
descmap .b10 type big offset 128 (d->offset=128 start=0) returns -1
descmap ctxt type ref Context offset 136 (d->offset=136 start=0) returns 136
descmap .b14 type big offset 144 (d->offset=144 start=0) returns -1
descmap status type string offset 152 (d->offset=152 start=0) returns 152
descmap arg type string offset 160 (d->offset=160 start=0) returns 160
descmap .t12 type string offset 168 (d->offset=168 start=0) returns 168
descmap .t15 type string offset 176 (d->offset=176 start=0) returns 176
descmap .t16 type list of string offset 184 (d->offset=184 start=0) returns 184
fncom: parse 3 4b8580
ecom: 
call no type 10 1
  name initialise fn() 11 1
generate desc for big
ecom: 
= ref YYLEX 10 2
  name lex ref YYLEX 0 0
  call ref YYLEX 10 2
    name initstring fn(s: string): ref YYLEX 11 1
    seq no type 10 1
      name s string 0 0
ecom: 
call ref YYLEX 10 2
  name initstring fn(s: string): ref YYLEX 11 1
  seq no type 10 1
    name s string 0 0
ecom to: 
name lex ref YYLEX 0 0
generate desc for big
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b17 big 0 0
    const (64) int 6 0
ecom: 
call (ref Node, string) 10 2
  name doparse fn(l: ref YYLEX, prompt: string, showline: int): (ref Node, string) 11 1
  seq no type 10 1
    name lex ref YYLEX 0 0
    seq no type 10 1
      const  string 1 0
      seq no type 10 1
        const (0) int 6 0
ecom to: 
* (ref Node, string) 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name lex ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b17 big 0 0
    const (64) int 6 0
ecom: 
const  string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b17 big 0 0
    const (72) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b17 big 0 0
    const (80) int 6 0
fn: parse
64: argument s string ref 1
72: local .b17 big ref 3
80: local lex ref YYLEX ref 2
generate desc for parse
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap .b17 type big offset 72 (d->offset=72 start=0) returns -1
descmap lex type ref YYLEX offset 80 (d->offset=80 start=0) returns 80
fncom: system 2 4b74e0
ecom: 
call no type 10 1
  name initialise fn() 11 1
generate desc for big
ecom: 
= (ref Node, string) 10 2
  tuple (ref Node, string) 10 1
    seq nothing 10 1
      name n ref Node 0 0
      seq nothing 10 1
        name err string 0 0
  call (ref Node, string) 10 2
    name parse fn(s: string): (ref Node, string) 11 1
    seq no type 10 1
      name cmd string 0 0
ecom: 
call (ref Node, string) 10 2
  name parse fn(s: string): (ref Node, string) 11 1
  seq no type 10 1
    name cmd string 0 0
ecom to: 
name n (ref Node, string) 0 0
generate desc for big
ecom: 
name cmd string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b18 big 0 0
    const (64) int 6 0
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
call string 10 3
  name run fn(ctxt: self ref Context, args: list of ref Listnode, last: int): string 11 1
  seq nothing 10 3
    call ref Context 10 2
      name new fn(drawcontext: ref Draw->Context): ref Context 11 1
      seq no type 10 1
        name drawctxt ref Draw->Context 0 0
    seq no type 10 2
      :: list of ref Listnode 10 1
        ref ref Listnode 10 1
          tuple Listnode 10 1
            seq no type 10 1
              name n ref Node 0 0
              seq no type 10 1
                name nil polymorphic type 1 0
        name nil polymorphic type 1 0
      seq no type 10 1
        const (0) int 6 0
ecom to: 
* string 8 0
  name .ret int 0 0
generate desc for big
ecom: 
call ref Context 10 2
  name new fn(drawcontext: ref Draw->Context): ref Context 11 1
  seq no type 10 1
    name drawctxt ref Draw->Context 0 0
ecom to: 
name .t19 ref Context 0 0
generate desc for big
ecom: 
name drawctxt ref Draw->Context 0 0
ecom to: 
* ref Draw->Context 8 0
  + int 15 0
    name .b20 big 0 0
    const (64) int 6 0
ecom: 
name .t19 ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b18 big 0 0
    const (64) int 6 0
ecom: 
= ref Context 10 1
  name .t19 ref Context 0 0
  name nil ref Context 1 0
ecom: 
name nil ref Context 1 0
ecom to: 
name .t19 ref Context 0 0
ecom: 
:: list of ref Listnode 10 1
  ref ref Listnode 10 1
    tuple Listnode 10 1
      seq no type 10 1
        name n ref Node 0 0
        seq no type 10 1
          name nil polymorphic type 1 0
  name nil polymorphic type 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b18 big 0 0
    const (72) int 6 0
eacom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name n ref Node 0 0
      seq no type 10 1
        name nil polymorphic type 1 0
ecom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name n ref Node 0 0
      seq no type 10 1
        name nil polymorphic type 1 0
ecom to: 
name .t19 ref Listnode 0 0
generate desc for Listnode
descmap adt offset 0
descmap offset 0
descmap cmd type ref Node offset 0 (d->offset=0 start=0) returns 0
descmap word type string offset 8 (d->offset=8 start=0) returns 8
generate desc for Listnode
	desc	$-1,16,"c0"
ecom: 
tuple Listnode 10 1
  seq no type 10 1
    name n ref Node 0 0
    seq no type 10 1
      name nil polymorphic type 1 0
ecom to: 
* Listnode 8 0
  name .t19 ref Listnode 0 0
ecom: 
name n ref Node 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t19 ref Listnode 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t19 ref Listnode 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t21 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t19 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t19 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t21 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t21 list of ref Listnode 0 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b18 big 0 0
    const (80) int 6 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name n (ref Node, string) 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name n (ref Node, string) 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name n (ref Node, string) 0 0
      const t1 (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name n (ref Node, string) 0 0
    const t1 (8) int 6 0
ecom: 
= string 10 1
  name err string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name err string 0 0
ecom: 
call string 10 2
  name failurestatus fn(e: string): string 11 1
  seq no type 10 1
    name e string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name e string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b20 big 0 0
    const (64) int 6 0
fn: system
64: argument drawctxt ref Draw->Context ref 1
72: argument cmd string ref 1
80: local e ref exception ref 2
88: local .b18 big ref 3
96: local n ref Node ref 3
104: local err string ref 3
112: local .b20 big ref 2
120: local .t19 ref Context ref 1
128: local .t21 list of ref Listnode ref 1
generate desc for system
descmap offset 0
descmap drawctxt type ref Draw->Context offset 64 (d->offset=64 start=0) returns 64
descmap cmd type string offset 72 (d->offset=72 start=0) returns 72
descmap e type ref exception offset 80 (d->offset=80 start=0) returns 80
descmap .b18 type big offset 88 (d->offset=88 start=0) returns -1
descmap n type ref Node offset 96 (d->offset=96 start=0) returns 96
descmap err type string offset 104 (d->offset=104 start=0) returns 104
descmap .b20 type big offset 112 (d->offset=112 start=0) returns -1
descmap .t19 type ref Context offset 120 (d->offset=120 start=0) returns 120
descmap .t21 type list of ref Listnode offset 128 (d->offset=128 start=0) returns 128
generate desc for e
descmap offset 0
descmap n type ref Node offset 96 (d->offset=96 start=0) returns 96
descmap err type string offset 104 (d->offset=104 start=0) returns 104
fncom: run 2 4b7d80
ecom: 
call no type 10 1
  name initialise fn() 11 1
generate desc for big
ecom: 
call string 10 3
  name run fn(ctxt: self ref Context, args: list of ref Listnode, last: int): string 11 1
  seq nothing 10 3
    call ref Context 10 2
      name new fn(drawcontext: ref Draw->Context): ref Context 11 1
      seq no type 10 1
        name drawctxt ref Draw->Context 0 0
    seq no type 10 2
      call list of ref Listnode 10 2
        name stringlist2list fn(sl: list of string): list of ref Listnode 11 1
        seq no type 10 1
          name argv list of string 0 0
      seq no type 10 1
        const (0) int 6 0
ecom to: 
* string 8 0
  name .ret int 0 0
generate desc for big
ecom: 
call ref Context 10 2
  name new fn(drawcontext: ref Draw->Context): ref Context 11 1
  seq no type 10 1
    name drawctxt ref Draw->Context 0 0
ecom to: 
name .t23 ref Context 0 0
generate desc for big
ecom: 
name drawctxt ref Draw->Context 0 0
ecom to: 
* ref Draw->Context 8 0
  + int 15 0
    name .b24 big 0 0
    const (64) int 6 0
ecom: 
call list of ref Listnode 10 2
  name stringlist2list fn(sl: list of string): list of ref Listnode 11 1
  seq no type 10 1
    name argv list of string 0 0
ecom to: 
name .t25 list of ref Listnode 0 0
generate desc for big
ecom: 
name argv list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b24 big 0 0
    const (64) int 6 0
ecom: 
name .t23 ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b22 big 0 0
    const (64) int 6 0
ecom: 
= ref Context 10 1
  name .t23 ref Context 0 0
  name nil ref Context 1 0
ecom: 
name nil ref Context 1 0
ecom to: 
name .t23 ref Context 0 0
ecom: 
name .t25 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b22 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t25 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t25 list of ref Listnode 0 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b22 big 0 0
    const (80) int 6 0
ecom: 
call string 10 2
  name failurestatus fn(e: string): string 11 1
  seq no type 10 1
    name e string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name e string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b24 big 0 0
    const (64) int 6 0
fn: run
64: argument drawctxt ref Draw->Context ref 1
72: argument argv list of string ref 1
80: local e ref exception ref 2
88: local .b24 big ref 3
96: local .b22 big ref 2
104: local .t23 ref Context ref 1
112: local .t25 list of ref Listnode ref 1
generate desc for run
descmap offset 0
descmap drawctxt type ref Draw->Context offset 64 (d->offset=64 start=0) returns 64
descmap argv type list of string offset 72 (d->offset=72 start=0) returns 72
descmap e type ref exception offset 80 (d->offset=80 start=0) returns 80
descmap .b24 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b22 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t23 type ref Context offset 104 (d->offset=104 start=0) returns 104
descmap .t25 type list of ref Listnode offset 112 (d->offset=112 start=0) returns 112
fncom: isconsole 2 417d28
ecom: 
= (int, Sys->Dir) 10 2
  tuple (int, Sys->Dir) 10 1
    seq nothing 10 1
      name ok1 int 0 0
      seq nothing 10 1
        name d1 Sys->Dir 0 0
  call (int, Sys->Dir) 10 2
    -> fn(fd: ref Sys->FD): (int, Sys->Dir) 12 1
      name sys Sys 1 0
      name fstat nothing 11 1
    seq no type 10 1
      name fd ref Sys->FD 0 0
ecom: 
call (int, Sys->Dir) 10 2
  -> fn(fd: ref Sys->FD): (int, Sys->Dir) 12 1
    name sys Sys 1 0
    name fstat nothing 11 1
  seq no type 10 1
    name fd ref Sys->FD 0 0
ecom to: 
name ok1 (int, Sys->Dir) 0 0
generate desc for big
ecom: 
name fd ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b26 big 0 0
    const (64) int 6 0
ecom: 
= (int, Sys->Dir) 10 2
  tuple (int, Sys->Dir) 10 1
    seq nothing 10 1
      name ok2 int 0 0
      seq nothing 10 1
        name d2 Sys->Dir 0 0
  call (int, Sys->Dir) 10 2
    -> fn(s: string): (int, Sys->Dir) 12 1
      name sys Sys 1 0
      name stat nothing 11 1
    seq no type 10 1
      const /dev/cons string 1 0
ecom: 
call (int, Sys->Dir) 10 2
  -> fn(s: string): (int, Sys->Dir) 12 1
    name sys Sys 1 0
    name stat nothing 11 1
  seq no type 10 1
    const /dev/cons string 1 0
ecom to: 
name ok2 (int, Sys->Dir) 0 0
generate desc for big
ecom: 
const /dev/cons string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b26 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
ecom: 
&& int 10 2
  == int 10 1
    * int 0 0
      + int 13 1
        adr int 13 1
          name d1 Sys->Dir 0 0
        const dtype (72) int 6 0
    * int 0 0
      + int 13 1
        adr int 13 1
          name d2 Sys->Dir 0 0
        const dtype (72) int 6 0
  == int 10 1
    * big 0 0
      + int 13 1
        adr int 13 1
          name d1 Sys->Dir 0 0
        const (32) int 6 0
    * big 0 0
      + int 13 1
        adr int 13 1
          name d2 Sys->Dir 0 0
        const (32) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
fn: isconsole
64: argument fd ref Sys->FD ref 1
72: local ok1 int ref 2
80: local d1 Sys->Dir ref 3
160: local ok2 int ref 2
168: local d2 Sys->Dir ref 3
248: local .b26 big ref 2
generate desc for isconsole
descmap offset 0
descmap fd type ref Sys->FD offset 64 (d->offset=64 start=0) returns 64
descmap ok1 type int offset 72 (d->offset=72 start=0) returns -1
descmap adt offset 80
descmap offset 80
descmap name type string offset 80 (d->offset=0 start=80) returns 80
descmap uid type string offset 88 (d->offset=8 start=80) returns 88
descmap gid type string offset 96 (d->offset=16 start=80) returns 96
descmap muid type string offset 104 (d->offset=24 start=80) returns 104
descmap adt offset 112
descmap offset 112
descmap path type big offset 112 (d->offset=0 start=112) returns -1
descmap vers type int offset 120 (d->offset=8 start=112) returns -1
descmap qtype type int offset 124 (d->offset=12 start=112) returns -1
descmap qid type Sys->Qid offset 112 (d->offset=32 start=80) returns -1
descmap mode type int offset 128 (d->offset=48 start=80) returns -1
descmap atime type int offset 132 (d->offset=52 start=80) returns -1
descmap mtime type int offset 136 (d->offset=56 start=80) returns -1
descmap length type big offset 144 (d->offset=64 start=80) returns -1
descmap dtype type int offset 152 (d->offset=72 start=80) returns -1
descmap dev type int offset 156 (d->offset=76 start=80) returns -1
descmap d1 type Sys->Dir offset 80 (d->offset=80 start=0) returns 104
descmap ok2 type int offset 160 (d->offset=160 start=0) returns -1
descmap adt offset 168
descmap offset 168
descmap name type string offset 168 (d->offset=0 start=168) returns 168
descmap uid type string offset 176 (d->offset=8 start=168) returns 176
descmap gid type string offset 184 (d->offset=16 start=168) returns 184
descmap muid type string offset 192 (d->offset=24 start=168) returns 192
descmap adt offset 200
descmap offset 200
descmap path type big offset 200 (d->offset=0 start=200) returns -1
descmap vers type int offset 208 (d->offset=8 start=200) returns -1
descmap qtype type int offset 212 (d->offset=12 start=200) returns -1
descmap qid type Sys->Qid offset 200 (d->offset=32 start=168) returns -1
descmap mode type int offset 216 (d->offset=48 start=168) returns -1
descmap atime type int offset 220 (d->offset=52 start=168) returns -1
descmap mtime type int offset 224 (d->offset=56 start=168) returns -1
descmap length type big offset 232 (d->offset=64 start=168) returns -1
descmap dtype type int offset 240 (d->offset=72 start=168) returns -1
descmap dev type int offset 244 (d->offset=76 start=168) returns -1
descmap d2 type Sys->Dir offset 168 (d->offset=168 start=0) returns 192
descmap .b26 type big offset 248 (d->offset=248 start=0) returns -1
fncom: runscript 4 417de8
ecom: 
= ref Sys->FD 10 2
  name fd ref Sys->FD 0 0
  call ref Sys->FD 10 2
    -> fn(s: string, mode: int): ref Sys->FD 12 1
      name sys Sys 1 0
      name open nothing 11 1
    seq no type 10 1
      name path string 0 0
      seq no type 10 1
        const OREAD (0) int 6 0
ecom: 
call ref Sys->FD 10 2
  -> fn(s: string, mode: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name open nothing 11 1
  seq no type 10 1
    name path string 0 0
    seq no type 10 1
      const OREAD (0) int 6 0
ecom to: 
name fd ref Sys->FD 0 0
generate desc for big
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b27 big 0 0
    const (64) int 6 0
ecom: 
const OREAD (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b27 big 0 0
    const (72) int 6 0
ecom: 
call no type 10 2
  name runfile fn(ctxt: ref Context, fd: ref Sys->FD, path: string, args: list of ref Listnode) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name fd ref Sys->FD 0 0
      seq no type 10 1
        name path string 0 0
        seq no type 10 1
          name args list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b27 big 0 0
    const (64) int 6 0
ecom: 
name fd ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b27 big 0 0
    const (72) int 6 0
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b27 big 0 0
    const (80) int 6 0
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b27 big 0 0
    const (88) int 6 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      const bad script path string 1 0
      seq no type 10 2
        call string 10 2
          -> fn(s: string, nil: string, *): string 12 1
            name sys Sys 1 0
            name sprint nothing 11 1
          seq no type 10 1
            const sh: cannot open %s: %r string 1 0
            seq no type 10 1
              name path string 0 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, nil: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const sh: cannot open %s: %r string 1 0
    seq no type 10 1
      name path string 0 0
ecom to: 
name .t28 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
generate desc for big
ecom: 
const sh: cannot open %s: %r string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b29 big 0 0
    const (64) int 6 0
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b29 big 0 0
    const (72) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b27 big 0 0
    const (64) int 6 0
ecom: 
const bad script path string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b27 big 0 0
    const (72) int 6 0
ecom: 
name .t28 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b27 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t28 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t28 string 0 0
ecom: 
= ref Sys->FD 10 1
  name fd ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name fd ref Sys->FD 0 0
ecom: 
raise nothing 10 1
  name .ex0 exception 0 0
fn: runscript
64: argument ctxt ref Context ref 2
72: argument path string ref 3
80: argument args list of ref Listnode ref 1
88: argument reporterr int ref 2
92: local .ex0 ref exception ref 1
96: local .b27 big ref 3
104: local fd ref Sys->FD ref 3
112: local .b29 big ref 1
120: local .t28 string ref 1
generate desc for runscript
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap path type string offset 72 (d->offset=72 start=0) returns 72
descmap args type list of ref Listnode offset 80 (d->offset=80 start=0) returns 80
descmap reporterr type int offset 88 (d->offset=88 start=0) returns -1
descmap .ex0 type ref exception offset 92 (d->offset=92 start=0) returns 96
descmap .b27 type big offset 96 (d->offset=96 start=0) returns -1
descmap fd type ref Sys->FD offset 104 (d->offset=104 start=0) returns 104
descmap .b29 type big offset 112 (d->offset=112 start=0) returns -1
descmap .t28 type string offset 120 (d->offset=120 start=0) returns 120
generate desc for .ex0
descmap offset 0
descmap fd type ref Sys->FD offset 104 (d->offset=104 start=0) returns 104
fncom: runfile 3 417ea8
ecom: 
call no type 10 2
  name push fn(ctxt: self ref Context) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b30 big 0 0
    const (64) int 6 0
ecom: 
call no type 10 2
  name setlocal fn(ctxt: self ref Context, name: string, val: list of ref Listnode) 11 1
  seq nothing 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      const 0 string 1 0
      seq no type 10 2
        call list of ref Listnode 10 2
          name stringlist2list fn(sl: list of string): list of ref Listnode 11 1
          seq no type 10 1
            :: list of string 10 1
              name path string 0 0
              name nil polymorphic type 1 0
generate desc for big
ecom: 
call list of ref Listnode 10 2
  name stringlist2list fn(sl: list of string): list of ref Listnode 11 1
  seq no type 10 1
    :: list of string 10 1
      name path string 0 0
      name nil polymorphic type 1 0
ecom to: 
name .t31 list of ref Listnode 0 0
generate desc for big
ecom: 
:: list of string 10 1
  name path string 0 0
  name nil polymorphic type 1 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b32 big 0 0
    const (64) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t33 list of string 0 0
ecom: 
= list of string 10 1
  name .t33 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t33 list of string 0 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b30 big 0 0
    const (64) int 6 0
ecom: 
const 0 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b30 big 0 0
    const (72) int 6 0
ecom: 
name .t31 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b30 big 0 0
    const (80) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t31 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t31 list of ref Listnode 0 0
ecom: 
call no type 10 2
  name setlocal fn(ctxt: self ref Context, name: string, val: list of ref Listnode) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const * string 1 0
      seq no type 10 1
        name args list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b32 big 0 0
    const (64) int 6 0
ecom: 
const * string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b32 big 0 0
    const (72) int 6 0
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b32 big 0 0
    const (80) int 6 0
ecom: 
= ref YYLEX 10 2
  name lex ref YYLEX 0 0
  call ref YYLEX 10 2
    name initfile fn(fd: ref Sys->FD, path: string): ref YYLEX 11 1
    seq no type 10 1
      name fd ref Sys->FD 0 0
      seq no type 10 1
        name path string 0 0
ecom: 
call ref YYLEX 10 2
  name initfile fn(fd: ref Sys->FD, path: string): ref YYLEX 11 1
  seq no type 10 1
    name fd ref Sys->FD 0 0
    seq no type 10 1
      name path string 0 0
ecom to: 
name lex ref YYLEX 0 0
generate desc for big
ecom: 
name fd ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b32 big 0 0
    const (64) int 6 0
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b32 big 0 0
    const (72) int 6 0
ecom: 
= list of string 10 1
  name prompt list of string 0 0
    name lex ref YYLEX 0 0
  :: list of string 10 1
    const  string 1 0
    :: list of string 10 1
      const  string 1 0
      name nil polymorphic type 1 0
ecom: 
:: list of string 10 1
  const  string 1 0
  :: list of string 10 1
    const  string 1 0
    name nil polymorphic type 1 0
ecom to: 
name prompt list of string 0 0
  name lex ref YYLEX 0 0
ecom: 
:: list of string 10 1
  const  string 1 0
  name nil polymorphic type 1 0
ecom to: 
name .t33 list of string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t33 list of string 0 0
ecom: 
= list of string 10 1
  name .t33 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t33 list of string 0 0
ecom: 
= int 10 1
  name interactive int 0 0
  & int 10 1
    * int 10 1
      + int 10 1
        * ref Localenv 10 1
          + int 10 1
            * ref Environment 8 0
              name ctxt ref Context 0 0
            const localenv (24) int 6 0
        const flags (16) int 6 0
    const INTERACTIVE (1) int 6 0
ecom: 
& int 10 1
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  const INTERACTIVE (1) int 6 0
ecom to: 
name interactive int 0 0
eacom: 
* int 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const flags (16) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name .t33 ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t33 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .t33 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t33 ref Localenv 0 0
ecom: 
= list of string 10 2
  name prompt list of string 0 0
  call list of string 10 2
    name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
    seq no type 10 2
      call list of ref Listnode 10 2
        name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
        seq nothing 10 1
          name ctxt ref Context 0 0
          seq no type 10 1
            const prompt string 1 0
ecom: 
call list of string 10 2
  name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
  seq no type 10 2
    call list of ref Listnode 10 2
      name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
      seq nothing 10 1
        name ctxt ref Context 0 0
        seq no type 10 1
          const prompt string 1 0
ecom to: 
name prompt list of string 0 0
generate desc for big
ecom: 
call list of ref Listnode 10 2
  name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const prompt string 1 0
ecom to: 
name .t33 list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b30 big 0 0
    const (64) int 6 0
ecom: 
const prompt string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b30 big 0 0
    const (72) int 6 0
ecom: 
name .t33 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b32 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t33 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t33 list of ref Listnode 0 0
ecom: 
= list of string 10 1
  name prompt list of string 0 0
  :: list of string 10 1
    const ;  string 1 0
    :: list of string 10 1
      const  string 1 0
      name nil polymorphic type 1 0
ecom: 
:: list of string 10 1
  const ;  string 1 0
  :: list of string 10 1
    const  string 1 0
    name nil polymorphic type 1 0
ecom to: 
name prompt list of string 0 0
ecom: 
:: list of string 10 1
  const  string 1 0
  name nil polymorphic type 1 0
ecom to: 
name .t33 list of string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t33 list of string 0 0
ecom: 
= list of string 10 1
  name .t33 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t33 list of string 0 0
ecom: 
used int 10 2
  call int 10 2
    -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name fprint nothing 11 1
    seq no type 10 2
      call ref Sys->FD 10 2
        -> fn(fd: int): ref Sys->FD 12 1
          name sys Sys 1 0
          name fildes nothing 11 1
        seq no type 10 1
          const (2) int 6 0
      seq no type 10 1
        const %s string 1 0
        seq no type 10 1
          hd string 10 1
            name prompt list of string 0 0
ecom: 
call int 10 2
  -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name fprint nothing 11 1
  seq no type 10 2
    call ref Sys->FD 10 2
      -> fn(fd: int): ref Sys->FD 12 1
        name sys Sys 1 0
        name fildes nothing 11 1
      seq no type 10 1
        const (2) int 6 0
    seq no type 10 1
      const %s string 1 0
      seq no type 10 1
        hd string 10 1
          name prompt list of string 0 0
ecom to: 
name .t34 int 0 0
generate desc for Sys->fprint
descmap offset 0
descmap fd type ref Sys->FD offset 64 (d->offset=64 start=0) returns 64
descmap s type string offset 72 (d->offset=72 start=0) returns 72
descmap type string offset 80 returns 80
generate desc for big
ecom: 
call ref Sys->FD 10 2
  -> fn(fd: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name fildes nothing 11 1
  seq no type 10 1
    const (2) int 6 0
ecom to: 
name .t33 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b30 big 0 0
    const (64) int 6 0
ecom: 
name .t33 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b32 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .t33 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t33 ref Sys->FD 0 0
ecom: 
const %s string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b32 big 0 0
    const (72) int 6 0
ecom: 
hd string 10 1
  name prompt list of string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b32 big 0 0
    const (80) int 6 0
eacom: 
tl list of string 10 1
  name prompt list of string 0 0
ecom: 
tl list of string 10 1
  name prompt list of string 0 0
ecom to: 
name .t33 list of string 0 0
ecom: 
= list of string 10 1
  name .t33 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t33 list of string 0 0
ecom: 
= list of string 10 2
  name prompt list of string 0 0
  :: list of string 10 2
    hd string 10 1
      name prompt list of string 0 0
    :: list of string 10 1
      const  string 1 0
      name nil polymorphic type 1 0
ecom: 
:: list of string 10 2
  hd string 10 1
    name prompt list of string 0 0
  :: list of string 10 1
    const  string 1 0
    name nil polymorphic type 1 0
ecom to: 
name prompt list of string 0 0
eacom: 
hd string 10 1
  name prompt list of string 0 0
ecom: 
hd string 10 1
  name prompt list of string 0 0
ecom to: 
name .t33 string 0 0
ecom: 
:: list of string 10 1
  const  string 1 0
  name nil polymorphic type 1 0
ecom to: 
name .t31 list of string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t31 list of string 0 0
ecom: 
= string 10 1
  name .t33 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t33 string 0 0
ecom: 
= list of string 10 1
  name .t31 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t31 list of string 0 0
ecom: 
= (ref Node, string) 10 2
  tuple (ref Node, string) 10 1
    seq nothing 10 1
      name n ref Node 0 0
      seq nothing 10 1
        name err string 0 0
  call (ref Node, string) 10 2
    name doparse fn(l: ref YYLEX, prompt: string, showline: int): (ref Node, string) 11 1
    seq no type 10 2
      name lex ref YYLEX 0 0
      seq no type 10 2
        hd string 10 1
          tl list of string 10 1
            name prompt list of string 0 0
        seq no type 10 1
          ! int 10 1
            name interactive int 0 0
ecom: 
call (ref Node, string) 10 2
  name doparse fn(l: ref YYLEX, prompt: string, showline: int): (ref Node, string) 11 1
  seq no type 10 2
    name lex ref YYLEX 0 0
    seq no type 10 2
      hd string 10 1
        tl list of string 10 1
          name prompt list of string 0 0
      seq no type 10 1
        ! int 10 1
          name interactive int 0 0
ecom to: 
name n (ref Node, string) 0 0
generate desc for big
ecom: 
name lex ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b32 big 0 0
    const (64) int 6 0
ecom: 
hd string 10 1
  tl list of string 10 1
    name prompt list of string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b32 big 0 0
    const (72) int 6 0
eacom: 
tl list of string 10 1
  name prompt list of string 0 0
ecom: 
tl list of string 10 1
  name prompt list of string 0 0
ecom to: 
name .t33 list of string 0 0
ecom: 
= list of string 10 1
  name .t33 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t33 list of string 0 0
ecom: 
! int 10 1
  name interactive int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b32 big 0 0
    const (80) int 6 0
ecom: 
used int 10 2
  call int 10 2
    -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name fprint nothing 11 1
    seq no type 10 2
      call ref Sys->FD 10 2
        -> fn(fd: int): ref Sys->FD 12 1
          name sys Sys 1 0
          name fildes nothing 11 1
        seq no type 10 1
          const (2) int 6 0
      seq no type 10 1
        const sh: %s
 string 1 0
        seq no type 10 1
          name err string 0 0
ecom: 
call int 10 2
  -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name fprint nothing 11 1
  seq no type 10 2
    call ref Sys->FD 10 2
      -> fn(fd: int): ref Sys->FD 12 1
        name sys Sys 1 0
        name fildes nothing 11 1
      seq no type 10 1
        const (2) int 6 0
    seq no type 10 1
      const sh: %s
 string 1 0
      seq no type 10 1
        name err string 0 0
ecom to: 
name .t34 int 0 0
generate desc for Sys->fprint
descmap offset 0
descmap fd type ref Sys->FD offset 64 (d->offset=64 start=0) returns 64
descmap s type string offset 72 (d->offset=72 start=0) returns 72
descmap type string offset 80 returns 80
generate desc for big
ecom: 
call ref Sys->FD 10 2
  -> fn(fd: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name fildes nothing 11 1
  seq no type 10 1
    const (2) int 6 0
ecom to: 
name .t33 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b30 big 0 0
    const (64) int 6 0
ecom: 
name .t33 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b32 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .t33 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t33 ref Sys->FD 0 0
ecom: 
const sh: %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b32 big 0 0
    const (72) int 6 0
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b32 big 0 0
    const (80) int 6 0
ecom: 
raise nothing 10 1
  const fail:parse error string 1 0
ecom: 
= string 10 2
  name laststatus string 0 0
  call string 10 2
    name walk fn(ctxt: ref Context, n: ref Node, last: int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name n ref Node 0 0
        seq no type 10 1
          const (0) int 6 0
ecom: 
call string 10 2
  name walk fn(ctxt: ref Context, n: ref Node, last: int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name n ref Node 0 0
      seq no type 10 1
        const (0) int 6 0
ecom to: 
name laststatus string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b32 big 0 0
    const (64) int 6 0
ecom: 
name n ref Node 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b32 big 0 0
    const (72) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b32 big 0 0
    const (80) int 6 0
ecom: 
= string 10 2
  name laststatus string 0 0
  call string 10 2
    name failurestatus fn(e: string): string 11 1
    seq no type 10 1
      name e2 string 0 0
ecom: 
call string 10 2
  name failurestatus fn(e: string): string 11 1
  seq no type 10 1
    name e2 string 0 0
ecom to: 
name laststatus string 0 0
generate desc for big
ecom: 
name e2 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b32 big 0 0
    const (64) int 6 0
ecom: 
= string 10 2
  name laststatus string 0 0
  call string 10 2
    name walk fn(ctxt: ref Context, n: ref Node, last: int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name n ref Node 0 0
        seq no type 10 1
          const (0) int 6 0
ecom: 
call string 10 2
  name walk fn(ctxt: ref Context, n: ref Node, last: int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name n ref Node 0 0
      seq no type 10 1
        const (0) int 6 0
ecom to: 
name laststatus string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b32 big 0 0
    const (64) int 6 0
ecom: 
name n ref Node 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b32 big 0 0
    const (72) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b32 big 0 0
    const (80) int 6 0
ecom: 
used string 10 2
  call string 10 2
    name setstatus fn(ctxt: ref Context, val: string): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name laststatus string 0 0
ecom: 
call string 10 2
  name setstatus fn(ctxt: ref Context, val: string): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name laststatus string 0 0
ecom to: 
name .t33 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b32 big 0 0
    const (64) int 6 0
ecom: 
name laststatus string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b32 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t33 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t33 string 0 0
eacom: 
& int 10 1
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  const ERROREXIT (8) int 6 0
ecom: 
& int 10 1
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  const ERROREXIT (8) int 6 0
ecom to: 
name .t34 int 0 0
eacom: 
* int 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const flags (16) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name .t33 ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t33 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .t33 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t33 ref Localenv 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name n (ref Node, string) 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name n (ref Node, string) 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name n (ref Node, string) 0 0
      const t1 (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name n (ref Node, string) 0 0
    const t1 (8) int 6 0
ecom: 
= string 10 1
  name err string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name err string 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name n (ref Node, string) 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name n (ref Node, string) 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name n (ref Node, string) 0 0
      const t1 (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name n (ref Node, string) 0 0
    const t1 (8) int 6 0
ecom: 
= string 10 1
  name err string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name err string 0 0
ecom: 
raise nothing 10 1
  + string 10 1
    const fail: string 1 0
    name laststatus string 0 0
eacom: 
+ string 10 1
  const fail: string 1 0
  name laststatus string 0 0
ecom: 
+ string 10 1
  const fail: string 1 0
  name laststatus string 0 0
ecom to: 
name .t33 string 0 0
ecom: 
= string 10 1
  name .t33 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t33 string 0 0
ecom: 
call no type 10 2
  name pop fn(ctxt: self ref Context) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b32 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name laststatus string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name laststatus string 0 0
ecom: 
= list of string 10 1
  name prompt list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name prompt list of string 0 0
ecom: 
= ref YYLEX 10 1
  name lex ref YYLEX 0 0
  name nil ref YYLEX 1 0
ecom: 
name nil ref YYLEX 1 0
ecom to: 
name lex ref YYLEX 0 0
ecom: 
call no type 10 2
  name pop fn(ctxt: self ref Context) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b32 big 0 0
    const (64) int 6 0
ecom: 
raise nothing 10 1
  name .ex1 exception 0 0
fn: runfile
64: argument ctxt ref Context ref 15
72: argument fd ref Sys->FD ref 1
80: argument path string ref 2
88: argument args list of ref Listnode ref 1
96: local interactive int ref 5
100: local e2 ref exception ref 2
104: local .ex1 ref exception ref 1
108: local .t34 int ref 1
112: local .b32 big ref 13
120: local prompt list of string ref 9
128: local laststatus string ref 7
136: local .b30 big ref 5
144: local n ref Node ref 4
152: local err string ref 3
160: local lex ref YYLEX ref 3
168: local .t31 list of ref Listnode ref 1
176: local .t33 list of string ref 1
generate desc for runfile
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap fd type ref Sys->FD offset 72 (d->offset=72 start=0) returns 72
descmap path type string offset 80 (d->offset=80 start=0) returns 80
descmap args type list of ref Listnode offset 88 (d->offset=88 start=0) returns 88
descmap interactive type int offset 96 (d->offset=96 start=0) returns -1
descmap e2 type ref exception offset 100 (d->offset=100 start=0) returns 104
descmap .ex1 type ref exception offset 104 (d->offset=104 start=0) returns 104
descmap .t34 type int offset 108 (d->offset=108 start=0) returns -1
descmap .b32 type big offset 112 (d->offset=112 start=0) returns -1
descmap prompt type list of string offset 120 (d->offset=120 start=0) returns 120
descmap laststatus type string offset 128 (d->offset=128 start=0) returns 128
descmap .b30 type big offset 136 (d->offset=136 start=0) returns -1
descmap n type ref Node offset 144 (d->offset=144 start=0) returns 144
descmap err type string offset 152 (d->offset=152 start=0) returns 152
descmap lex type ref YYLEX offset 160 (d->offset=160 start=0) returns 160
descmap .t31 type list of ref Listnode offset 168 (d->offset=168 start=0) returns 168
descmap .t33 type list of string offset 176 (d->offset=176 start=0) returns 176
generate desc for .ex1
descmap offset 0
descmap n type ref Node offset 144 (d->offset=144 start=0) returns 144
descmap err type string offset 152 (d->offset=152 start=0) returns 152
descmap laststatus type string offset 128 (d->offset=128 start=0) returns 128
descmap prompt type list of string offset 120 (d->offset=120 start=0) returns 120
descmap lex type ref YYLEX offset 160 (d->offset=160 start=0) returns 160
fncom: nonexistent 5 417f68
ecom: 
= array of string 10 2
  name errs array of string 0 0
  array array of string 10 2
    const (2) int 6 0
    seq array initializers 10 2
      elem string 10 1
        seq nothing 10 1
          const (0) int 6 0
        const does not exist string 1 0
      seq no type 10 1
        elem string 10 1
          seq nothing 10 1
            const (1) int 6 0
          const directory entry not found string 1 0
ecom: 
array array of string 10 2
  const (2) int 6 0
  seq array initializers 10 2
    elem string 10 1
      seq nothing 10 1
        const (0) int 6 0
      const does not exist string 1 0
    seq no type 10 1
      elem string 10 1
        seq nothing 10 1
          const (1) int 6 0
        const directory entry not found string 1 0
ecom to: 
name errs array of string 0 0
generate desc for string
generate desc for string
	desc	$-1,8,"80"
generate desc for big
ecom: 
indx big 10 0
  name errs array of string 0 0
  const (0) int 6 0
ecom to: 
name .b35 big 0 0
ecom: 
const does not exist string 1 0
ecom to: 
* string 8 0
  name .b35 big 0 0
ecom: 
indx big 10 0
  name errs array of string 0 0
  const (1) int 6 0
ecom to: 
name .b35 big 0 0
ecom: 
const directory entry not found string 1 0
ecom to: 
* string 8 0
  name .b35 big 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
eacom: 
len int 10 1
  name errs array of string 0 0
ecom: 
len int 10 1
  name errs array of string 0 0
ecom to: 
name .t36 int 0 0
ecom: 
= int 10 1
  name j int 0 0
  len int 10 1
    * string 10 1
      indx big 10 1
        name errs array of string 0 0
        name i int 0 0
ecom: 
len int 10 1
  * string 10 1
    indx big 10 1
      name errs array of string 0 0
      name i int 0 0
ecom to: 
name j int 0 0
eacom: 
* string 10 1
  indx big 10 1
    name errs array of string 0 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  name errs array of string 0 0
  name i int 0 0
ecom to: 
name .b35 big 0 0
eacom: 
len int 10 1
  name e string 0 0
ecom: 
len int 10 1
  name e string 0 0
ecom to: 
name .t36 int 0 0
eacom: 
slice string 10 2
  name e string 0 0
  seq no type 10 2
    - int 10 1
      len int 10 1
        name e string 0 0
      name j int 0 0
    nothing no type 10 1
ecom: 
slice string 10 2
  name e string 0 0
  seq no type 10 2
    - int 10 1
      len int 10 1
        name e string 0 0
      name j int 0 0
    nothing no type 10 1
ecom to: 
name .t37 string 0 0
ecom: 
len int 10 1
  name e string 0 0
ecom to: 
name .t36 int 0 0
eacom: 
- int 10 1
  len int 10 1
    name e string 0 0
  name j int 0 0
ecom: 
- int 10 1
  len int 10 1
    name e string 0 0
  name j int 0 0
ecom to: 
name .t38 int 0 0
ecom: 
len int 10 1
  name e string 0 0
ecom to: 
name .t38 int 0 0
ecom: 
name e string 0 0
ecom to: 
name .t37 string 0 0
ecom: 
* string 10 1
  indx big 10 1
    name errs array of string 0 0
    name i int 0 0
ecom to: 
name .t39 string 0 0
eacom: 
* string 10 1
  indx big 10 1
    name errs array of string 0 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  name errs array of string 0 0
  name i int 0 0
ecom to: 
name .b35 big 0 0
ecom: 
= string 10 1
  name .t37 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t37 string 0 0
ecom: 
= string 10 1
  name .t39 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t39 string 0 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
fn: nonexistent
64: argument e string ref 3
72: local i int ref 5
76: local j int ref 3
80: local .t36 int ref 1
84: local .t38 int ref 1
88: local errs array of string ref 4
96: local .b35 big ref 3
104: local .t37 string ref 1
112: local .t39 string ref 1
generate desc for nonexistent
descmap offset 0
descmap e type string offset 64 (d->offset=64 start=0) returns 64
descmap i type int offset 72 (d->offset=72 start=0) returns -1
descmap j type int offset 76 (d->offset=76 start=0) returns -1
descmap .t36 type int offset 80 (d->offset=80 start=0) returns -1
descmap .t38 type int offset 84 (d->offset=84 start=0) returns -1
descmap errs type array of string offset 88 (d->offset=88 start=0) returns 88
descmap .b35 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t37 type string offset 104 (d->offset=104 start=0) returns 104
descmap .t39 type string offset 112 (d->offset=112 start=0) returns 112
fncom: pipe2cmd 2 418028
fncom: walk 5 4180e8
ecom: 
= string 10 2
  name status string 0 0
  call string 10 2
    name walk fn(ctxt: ref Context, n: ref Node, last: int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
        seq no type 10 1
          const (0) int 6 0
ecom: 
call string 10 2
  name walk fn(ctxt: ref Context, n: ref Node, last: int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
      seq no type 10 1
        const (0) int 6 0
ecom to: 
name status string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b40 big 0 0
    const (64) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b40 big 0 0
    const (72) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b40 big 0 0
    const (80) int 6 0
eacom: 
& int 10 1
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  const ERROREXIT (8) int 6 0
ecom: 
& int 10 1
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  const ERROREXIT (8) int 6 0
ecom to: 
name .t41 int 0 0
eacom: 
* int 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const flags (16) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name .t42 ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t42 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .t42 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t42 ref Localenv 0 0
ecom: 
raise nothing 10 1
  + string 10 1
    const fail: string 1 0
    name status string 0 0
eacom: 
+ string 10 1
  const fail: string 1 0
  name status string 0 0
ecom: 
+ string 10 1
  const fail: string 1 0
  name status string 0 0
ecom to: 
name .t42 string 0 0
ecom: 
= string 10 1
  name .t42 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t42 string 0 0
ecom: 
used string 10 2
  call string 10 2
    name setstatus fn(ctxt: ref Context, val: string): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name status string 0 0
ecom: 
call string 10 2
  name setstatus fn(ctxt: ref Context, val: string): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name status string 0 0
ecom to: 
name .t42 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b40 big 0 0
    const (64) int 6 0
ecom: 
name status string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b40 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t42 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t42 string 0 0
ecom: 
= ref Node 10 1
  name n ref Node 0 0
  * ref Node 8 0
    + int 15 1
      name n ref Node 0 0
      const right (16) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
name n ref Node 0 0
ecom: 
= string 10 1
  name status string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name status string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
call string 10 2
  name waitfor fn(ctxt: ref Context, pids: list of int): string 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      call list of int 10 2
        name walkpipeline fn(ctxt: ref Context, n: ref Node, wrpipe: ref Sys->FD, wfdno: int): list of int 11 1
        seq no type 10 1
          name ctxt ref Context 0 0
          seq no type 10 1
            name n ref Node 0 0
            seq no type 10 1
              name nil ref Sys->FD 1 0
              seq no type 10 1
                const (-1) int 6 0
ecom to: 
* string 8 0
  name .ret int 0 0
generate desc for big
ecom: 
call list of int 10 2
  name walkpipeline fn(ctxt: ref Context, n: ref Node, wrpipe: ref Sys->FD, wfdno: int): list of int 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name n ref Node 0 0
      seq no type 10 1
        name nil ref Sys->FD 1 0
        seq no type 10 1
          const (-1) int 6 0
ecom to: 
name .t42 list of int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b43 big 0 0
    const (64) int 6 0
ecom: 
name n ref Node 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b43 big 0 0
    const (72) int 6 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b43 big 0 0
    const (80) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b43 big 0 0
    const (88) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b40 big 0 0
    const (64) int 6 0
ecom: 
name .t42 list of int 0 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b40 big 0 0
    const (72) int 6 0
ecom: 
= list of int 10 1
  name .t42 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t42 list of int 0 0
ecom: 
used list of ref Listnode 10 2
  call list of ref Listnode 10 2
    name assign fn(ctxt: ref Context, n: ref Node): list of ref Listnode 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name n ref Node 0 0
ecom: 
call list of ref Listnode 10 2
  name assign fn(ctxt: ref Context, n: ref Node): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name n ref Node 0 0
ecom to: 
name .t42 list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b43 big 0 0
    const (64) int 6 0
ecom: 
name n ref Node 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b43 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t42 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t42 list of ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
= int 10 1
  name bg int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name bg int 0 0
ecom: 
= int 10 1
  name bg int 0 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
name bg int 0 0
ecom: 
= ref Node 10 3
  name n ref Node 0 0
  if ref Node 10 3
    || int 10 2
      == int 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
        name nil ref Node 1 0
      != int 10 1
        * int 10 1
          * ref Node 8 0
            + int 15 1
              name n ref Node 0 0
              const left (8) int 6 0
        const n_PIPE (9) int 6 0
    seq ref Node 10 2
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
      ref ref Node 10 2
        tuple Node 10 2
          seq no type 10 2
            const n_ADJ (10) int 6 0
            seq no type 10 2
              ref ref Node 10 1
                tuple Node 10 1
                  seq no type 10 1
                    const n_BLOCK (0) int 6 0
                    seq no type 10 1
                      * ref Node 8 0
                        + int 15 1
                          name n ref Node 0 0
                          const left (8) int 6 0
                      seq no type 10 1
                        name nil ref Node 1 0
                        seq no type 10 1
                          name nil polymorphic type 1 0
                          seq no type 10 1
                            name nil polymorphic type 1 0
              seq no type 10 2
                ref ref Node 10 2
                  tuple Node 10 2
                    seq no type 10 2
                      const n_VAR (1) int 6 0
                      seq no type 10 2
                        ref ref Node 10 1
                          tuple Node 10 1
                            seq no type 10 1
                              const n_WORD (11) int 6 0
                              seq no type 10 1
                                name nil polymorphic type 1 0
                                seq no type 10 1
                                  name nil polymorphic type 1 0
                                  seq no type 10 1
                                    const * string 1 0
                                    seq no type 10 1
                                      name nil polymorphic type 1 0
                        seq no type 10 1
                          name nil ref Node 1 0
                          seq no type 10 1
                            name nil polymorphic type 1 0
                            seq no type 10 1
                              name nil polymorphic type 1 0
                seq no type 10 1
                  name nil polymorphic type 1 0
                  seq no type 10 1
                    name nil polymorphic type 1 0
ecom: 
if ref Node 10 3
  || int 10 2
    == int 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
      name nil ref Node 1 0
    != int 10 1
      * int 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
      const n_PIPE (9) int 6 0
  seq ref Node 10 2
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
    ref ref Node 10 2
      tuple Node 10 2
        seq no type 10 2
          const n_ADJ (10) int 6 0
          seq no type 10 2
            ref ref Node 10 1
              tuple Node 10 1
                seq no type 10 1
                  const n_BLOCK (0) int 6 0
                  seq no type 10 1
                    * ref Node 8 0
                      + int 15 1
                        name n ref Node 0 0
                        const left (8) int 6 0
                    seq no type 10 1
                      name nil ref Node 1 0
                      seq no type 10 1
                        name nil polymorphic type 1 0
                        seq no type 10 1
                          name nil polymorphic type 1 0
            seq no type 10 2
              ref ref Node 10 2
                tuple Node 10 2
                  seq no type 10 2
                    const n_VAR (1) int 6 0
                    seq no type 10 2
                      ref ref Node 10 1
                        tuple Node 10 1
                          seq no type 10 1
                            const n_WORD (11) int 6 0
                            seq no type 10 1
                              name nil polymorphic type 1 0
                              seq no type 10 1
                                name nil polymorphic type 1 0
                                seq no type 10 1
                                  const * string 1 0
                                  seq no type 10 1
                                    name nil polymorphic type 1 0
                      seq no type 10 1
                        name nil ref Node 1 0
                        seq no type 10 1
                          name nil polymorphic type 1 0
                          seq no type 10 1
                            name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
                seq no type 10 1
                  name nil polymorphic type 1 0
ecom to: 
name n ref Node 0 0
eacom: 
* int 10 1
  * ref Node 8 0
    + int 15 1
      name n ref Node 0 0
      const left (8) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
name .t42 ref Node 0 0
ecom: 
= ref Node 10 1
  name .t42 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t42 ref Node 0 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
name n ref Node 0 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_ADJ (10) int 6 0
      seq no type 10 2
        ref ref Node 10 1
          tuple Node 10 1
            seq no type 10 1
              const n_BLOCK (0) int 6 0
              seq no type 10 1
                * ref Node 8 0
                  + int 15 1
                    name n ref Node 0 0
                    const left (8) int 6 0
                seq no type 10 1
                  name nil ref Node 1 0
                  seq no type 10 1
                    name nil polymorphic type 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
        seq no type 10 2
          ref ref Node 10 2
            tuple Node 10 2
              seq no type 10 2
                const n_VAR (1) int 6 0
                seq no type 10 2
                  ref ref Node 10 1
                    tuple Node 10 1
                      seq no type 10 1
                        const n_WORD (11) int 6 0
                        seq no type 10 1
                          name nil polymorphic type 1 0
                          seq no type 10 1
                            name nil polymorphic type 1 0
                            seq no type 10 1
                              const * string 1 0
                              seq no type 10 1
                                name nil polymorphic type 1 0
                  seq no type 10 1
                    name nil ref Node 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
                      seq no type 10 1
                        name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
name n ref Node 0 0
generate desc for Node
descmap adt offset 0
descmap offset 0
descmap ntype type int offset 0 (d->offset=0 start=0) returns -1
descmap left type ref Node offset 8 (d->offset=8 start=0) returns 8
descmap right type ref Node offset 16 (d->offset=16 start=0) returns 16
descmap word type string offset 24 (d->offset=24 start=0) returns 24
descmap redir type ref Redir offset 32 (d->offset=32 start=0) returns 32
generate desc for Node
	desc	$-1,40,"78"
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_ADJ (10) int 6 0
    seq no type 10 2
      ref ref Node 10 1
        tuple Node 10 1
          seq no type 10 1
            const n_BLOCK (0) int 6 0
            seq no type 10 1
              * ref Node 8 0
                + int 15 1
                  name n ref Node 0 0
                  const left (8) int 6 0
              seq no type 10 1
                name nil ref Node 1 0
                seq no type 10 1
                  name nil polymorphic type 1 0
                  seq no type 10 1
                    name nil polymorphic type 1 0
      seq no type 10 2
        ref ref Node 10 2
          tuple Node 10 2
            seq no type 10 2
              const n_VAR (1) int 6 0
              seq no type 10 2
                ref ref Node 10 1
                  tuple Node 10 1
                    seq no type 10 1
                      const n_WORD (11) int 6 0
                      seq no type 10 1
                        name nil polymorphic type 1 0
                        seq no type 10 1
                          name nil polymorphic type 1 0
                          seq no type 10 1
                            const * string 1 0
                            seq no type 10 1
                              name nil polymorphic type 1 0
                seq no type 10 1
                  name nil ref Node 1 0
                  seq no type 10 1
                    name nil polymorphic type 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t42 ref Node 0 0
ecom: 
const n_ADJ (10) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t42 ref Node 0 0
    const (0) int 6 0
ecom: 
ref ref Node 10 1
  tuple Node 10 1
    seq no type 10 1
      const n_BLOCK (0) int 6 0
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
        seq no type 10 1
          name nil ref Node 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t42 ref Node 0 0
    const (8) int 6 0
generate desc for Node
ecom: 
tuple Node 10 1
  seq no type 10 1
    const n_BLOCK (0) int 6 0
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
      seq no type 10 1
        name nil ref Node 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t44 ref Node 0 0
ecom: 
const n_BLOCK (0) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t44 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t44 ref Node 0 0
    const (8) int 6 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t44 ref Node 0 0
    const (16) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t44 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t44 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t44 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t44 ref Node 0 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_VAR (1) int 6 0
      seq no type 10 2
        ref ref Node 10 1
          tuple Node 10 1
            seq no type 10 1
              const n_WORD (11) int 6 0
              seq no type 10 1
                name nil polymorphic type 1 0
                seq no type 10 1
                  name nil polymorphic type 1 0
                  seq no type 10 1
                    const * string 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
        seq no type 10 1
          name nil ref Node 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t42 ref Node 0 0
    const (16) int 6 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_VAR (1) int 6 0
    seq no type 10 2
      ref ref Node 10 1
        tuple Node 10 1
          seq no type 10 1
            const n_WORD (11) int 6 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
                seq no type 10 1
                  const * string 1 0
                  seq no type 10 1
                    name nil polymorphic type 1 0
      seq no type 10 1
        name nil ref Node 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t44 ref Node 0 0
ecom: 
const n_VAR (1) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t44 ref Node 0 0
    const (0) int 6 0
ecom: 
ref ref Node 10 1
  tuple Node 10 1
    seq no type 10 1
      const n_WORD (11) int 6 0
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            const * string 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t44 ref Node 0 0
    const (8) int 6 0
generate desc for Node
ecom: 
tuple Node 10 1
  seq no type 10 1
    const n_WORD (11) int 6 0
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          const * string 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t45 ref Node 0 0
ecom: 
const n_WORD (11) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t45 ref Node 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t45 ref Node 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t45 ref Node 0 0
    const (16) int 6 0
ecom: 
const * string 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t45 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t45 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t45 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t45 ref Node 0 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t44 ref Node 0 0
    const (16) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t44 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t44 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t44 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t44 ref Node 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t42 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t42 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t42 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t42 ref Node 0 0
ecom: 
= ref Redirlist 10 1
  name redirs ref Redirlist 0 0
  ref ref Redirlist 10 1
    tuple Redirlist 10 1
      seq no type 10 1
        name nil polymorphic type 1 0
ecom: 
ref ref Redirlist 10 1
  tuple Redirlist 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
ecom to: 
name redirs ref Redirlist 0 0
generate desc for Redirlist
descmap adt offset 0
descmap offset 0
descmap r type list of Redirword offset 0 (d->offset=0 start=0) returns 0
generate desc for Redirlist
	desc	$-1,8,"80"
ecom: 
tuple Redirlist 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
ecom to: 
* Redirlist 8 0
  name .t45 ref Redirlist 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* list of Redirword 8 0
  + int 15 1
    adr int 15 1
      * Redirlist 8 0
        name .t45 ref Redirlist 0 0
    const (0) int 6 0
ecom: 
= ref Redirlist 10 1
  name .t45 ref Redirlist 0 0
  name nil ref Redirlist 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name .t45 ref Redirlist 0 0
ecom: 
= list of ref Listnode 10 2
  name line list of ref Listnode 0 0
    name redirs ref Redirlist 0 0
  call list of ref Listnode 10 2
    name glob fn(nl: list of ref Listnode): list of ref Listnode 11 1
    seq no type 10 2
      call list of ref Listnode 10 2
        name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
        seq no type 10 1
          name ctxt ref Context 0 0
          seq no type 10 1
            name n ref Node 0 0
            seq no type 10 1
              name redirs ref Redirlist 0 0
              seq no type 10 1
                name nil list of ref Listnode 1 0
ecom: 
call list of ref Listnode 10 2
  name glob fn(nl: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 2
    call list of ref Listnode 10 2
      name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
      seq no type 10 1
        name ctxt ref Context 0 0
        seq no type 10 1
          name n ref Node 0 0
          seq no type 10 1
            name redirs ref Redirlist 0 0
            seq no type 10 1
              name nil list of ref Listnode 1 0
ecom to: 
name line list of ref Listnode 0 0
  name redirs ref Redirlist 0 0
generate desc for big
ecom: 
call list of ref Listnode 10 2
  name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name n ref Node 0 0
      seq no type 10 1
        name redirs ref Redirlist 0 0
        seq no type 10 1
          name nil list of ref Listnode 1 0
ecom to: 
name .t45 list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b40 big 0 0
    const (64) int 6 0
ecom: 
name n ref Node 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b40 big 0 0
    const (72) int 6 0
ecom: 
name redirs ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b40 big 0 0
    const (80) int 6 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b40 big 0 0
    const (88) int 6 0
ecom: 
name .t45 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b43 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t45 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t45 list of ref Listnode 0 0
ecom: 
= chan of (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
  chan chan of (int, ref Expropagate) 10 1
    const (0) int 6 0
ecom: 
chan chan of (int, ref Expropagate) 10 1
  const (0) int 6 0
ecom to: 
name startchan chan of (int, ref Expropagate) 0 0
generate desc for (int, ref Expropagate)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap t1 type ref Expropagate offset 8 (d->offset=8 start=0) returns 8
generate desc for (int, ref Expropagate)
	desc	$-1,16,"40"
ecom: 
spawn nothing 10 2
  call no type 10 2
    name runasync fn(ctxt: ref Context, copyenv: int, argv: list of ref Listnode, redirs: ref Redirlist, startchan: chan of (int, ref Expropagate)) 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        const (1) int 6 0
        seq no type 10 1
          name line list of ref Listnode 0 0
          seq no type 10 1
            name redirs ref Redirlist 0 0
            seq no type 10 1
              name startchan chan of (int, ref Expropagate) 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b43 big 0 0
    const (64) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b43 big 0 0
    const (72) int 6 0
ecom: 
name line list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b43 big 0 0
    const (80) int 6 0
ecom: 
name redirs ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b43 big 0 0
    const (88) int 6 0
ecom: 
name startchan chan of (int, ref Expropagate) 0 0
ecom to: 
* chan of (int, ref Expropagate) 8 0
  + int 15 0
    name .b43 big 0 0
    const (96) int 6 0
ecom: 
= (int, ref Expropagate) 10 2
  tuple (int, ref Expropagate) 10 1
    seq nothing 10 1
      name pid int 0 0
      seq nothing 10 1
        name nil polymorphic type 1 0
    name startchan chan of (int, ref Expropagate) 0 0
  <- (int, ref Expropagate) 10 1
    name startchan chan of (int, ref Expropagate) 0 0
generate desc for (int, ref Expropagate)
ecom: 
<- (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
ecom to: 
name .b46 (int, ref Expropagate) 0 0
ecom: 
= ref Expropagate 10 1
  * ref Expropagate 0 0
    + int 13 1
      adr int 13 1
        name .b46 (int, ref Expropagate) 0 0
      const t1 (8) int 6 0
  name nil ref Expropagate 1 0
ecom: 
name nil ref Expropagate 1 0
ecom to: 
* ref Expropagate 0 0
  + int 13 1
    adr int 13 1
      name .b46 (int, ref Expropagate) 0 0
    const t1 (8) int 6 0
ecom: 
= ref Redirlist 10 1
  name redirs ref Redirlist 0 0
  name nil polymorphic type 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name redirs ref Redirlist 0 0
ecom: 
call no type 10 2
  name set fn(ctxt: self ref Context, name: string, val: list of ref Listnode) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const apid string 1 0
      seq no type 10 1
        :: list of ref Listnode 10 1
          ref ref Listnode 10 1
            tuple Listnode 10 1
              seq no type 10 1
                name nil polymorphic type 1 0
                seq no type 10 1
                  cast string 10 1
                    name pid int 0 0
          name nil polymorphic type 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b43 big 0 0
    const (64) int 6 0
ecom: 
const apid string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b43 big 0 0
    const (72) int 6 0
ecom: 
:: list of ref Listnode 10 1
  ref ref Listnode 10 1
    tuple Listnode 10 1
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          cast string 10 1
            name pid int 0 0
  name nil polymorphic type 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b43 big 0 0
    const (80) int 6 0
eacom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        cast string 10 1
          name pid int 0 0
ecom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        cast string 10 1
          name pid int 0 0
ecom to: 
name .t45 ref Listnode 0 0
generate desc for Listnode
ecom: 
tuple Listnode 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      cast string 10 1
        name pid int 0 0
ecom to: 
* Listnode 8 0
  name .t45 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t45 ref Listnode 0 0
    const (0) int 6 0
ecom: 
cast string 10 1
  name pid int 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t45 ref Listnode 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t44 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t45 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t45 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t44 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t44 list of ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
= chan of (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
  name nil chan of (int, ref Expropagate) 1 0
ecom: 
name nil chan of (int, ref Expropagate) 1 0
ecom to: 
name startchan chan of (int, ref Expropagate) 0 0
ecom: 
call string 10 2
  name runsync fn(ctxt: ref Context, argv: list of ref Listnode, redirs: ref Redirlist, last: int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name line list of ref Listnode 0 0
      seq no type 10 1
        name redirs ref Redirlist 0 0
        seq no type 10 1
          name last int 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b43 big 0 0
    const (64) int 6 0
ecom: 
name line list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b43 big 0 0
    const (72) int 6 0
ecom: 
name redirs ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b43 big 0 0
    const (80) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b43 big 0 0
    const (88) int 6 0
ecom: 
= list of ref Listnode 10 1
  name line list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name line list of ref Listnode 0 0
ecom: 
= ref Redirlist 10 1
  name redirs ref Redirlist 0 0
  name nil ref Redirlist 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name redirs ref Redirlist 0 0
fn: walk
64: argument ctxt ref Context ref 11
72: argument n ref Node ref 14
80: argument last int ref 1
84: local bg int ref 3
88: local pid int ref 3
92: local .t41 int ref 1
96: local .b43 big ref 6
104: local redirs ref Redirlist ref 5
112: local .b40 big ref 4
120: local status string ref 4
128: local line list of ref Listnode ref 3
136: local startchan chan of (int, ref Expropagate) ref 3
144: local .t42 ref Localenv ref 1
152: local .t44 ref Node ref 1
160: local .t45 ref Node ref 1
168: local .b46 (int, ref Expropagate) ref 1
generate desc for walk
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap n type ref Node offset 72 (d->offset=72 start=0) returns 72
descmap last type int offset 80 (d->offset=80 start=0) returns -1
descmap bg type int offset 84 (d->offset=84 start=0) returns -1
descmap pid type int offset 88 (d->offset=88 start=0) returns -1
descmap .t41 type int offset 92 (d->offset=92 start=0) returns -1
descmap .b43 type big offset 96 (d->offset=96 start=0) returns -1
descmap redirs type ref Redirlist offset 104 (d->offset=104 start=0) returns 104
descmap .b40 type big offset 112 (d->offset=112 start=0) returns -1
descmap status type string offset 120 (d->offset=120 start=0) returns 120
descmap line type list of ref Listnode offset 128 (d->offset=128 start=0) returns 128
descmap startchan type chan of (int, ref Expropagate) offset 136 (d->offset=136 start=0) returns 136
descmap .t42 type ref Localenv offset 144 (d->offset=144 start=0) returns 144
descmap .t44 type ref Node offset 152 (d->offset=152 start=0) returns 152
descmap .t45 type ref Node offset 160 (d->offset=160 start=0) returns 160
descmap adt offset 168
descmap offset 168
descmap t0 type int offset 168 (d->offset=0 start=168) returns -1
descmap t1 type ref Expropagate offset 176 (d->offset=8 start=168) returns 176
descmap .b46 type (int, ref Expropagate) offset 168 (d->offset=168 start=0) returns 176
fncom: assign 3 4181a8
ecom: 
= ref Redirlist 10 1
  name redirs ref Redirlist 0 0
  ref ref Redirlist 10 1
    name Redirlist Redirlist 10 1
ecom: 
ref ref Redirlist 10 1
  name Redirlist Redirlist 10 1
ecom to: 
name redirs ref Redirlist 0 0
generate desc for Redirlist
eacom: 
* int 10 1
  * ref Node 8 0
    + int 15 1
      name n ref Node 0 0
      const right (16) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
name .t47 ref Node 0 0
ecom: 
= ref Node 10 1
  name .t47 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t47 ref Node 0 0
eacom: 
* int 10 1
  * ref Node 8 0
    + int 15 1
      name n ref Node 0 0
      const right (16) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
name .t47 ref Node 0 0
ecom: 
= ref Node 10 1
  name .t47 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t47 ref Node 0 0
ecom: 
= list of ref Listnode 10 2
  name val list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name assign fn(ctxt: ref Context, n: ref Node): list of ref Listnode 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const right (16) int 6 0
ecom: 
call list of ref Listnode 10 2
  name assign fn(ctxt: ref Context, n: ref Node): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const right (16) int 6 0
ecom to: 
name val list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b48 big 0 0
    const (64) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b48 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 2
  name val list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name glob fn(nl: list of ref Listnode): list of ref Listnode 11 1
    seq no type 10 2
      call list of ref Listnode 10 2
        name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
        seq no type 10 1
          name ctxt ref Context 0 0
          seq no type 10 1
            * ref Node 8 0
              + int 15 1
                name n ref Node 0 0
                const right (16) int 6 0
            seq no type 10 1
              name redirs ref Redirlist 0 0
              seq no type 10 1
                name nil list of ref Listnode 1 0
ecom: 
call list of ref Listnode 10 2
  name glob fn(nl: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 2
    call list of ref Listnode 10 2
      name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
      seq no type 10 1
        name ctxt ref Context 0 0
        seq no type 10 1
          * ref Node 8 0
            + int 15 1
              name n ref Node 0 0
              const right (16) int 6 0
          seq no type 10 1
            name redirs ref Redirlist 0 0
            seq no type 10 1
              name nil list of ref Listnode 1 0
ecom to: 
name val list of ref Listnode 0 0
generate desc for big
ecom: 
call list of ref Listnode 10 2
  name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const right (16) int 6 0
      seq no type 10 1
        name redirs ref Redirlist 0 0
        seq no type 10 1
          name nil list of ref Listnode 1 0
ecom to: 
name .t47 list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b49 big 0 0
    const (64) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b49 big 0 0
    const (72) int 6 0
ecom: 
name redirs ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b49 big 0 0
    const (80) int 6 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b49 big 0 0
    const (88) int 6 0
ecom: 
name .t47 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b48 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t47 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t47 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 2
  name vars list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
        seq no type 10 1
          name redirs ref Redirlist 0 0
          seq no type 10 1
            name nil list of ref Listnode 1 0
ecom: 
call list of ref Listnode 10 2
  name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
      seq no type 10 1
        name redirs ref Redirlist 0 0
        seq no type 10 1
          name nil list of ref Listnode 1 0
ecom to: 
name vars list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b49 big 0 0
    const (64) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b49 big 0 0
    const (72) int 6 0
ecom: 
name redirs ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b49 big 0 0
    const (80) int 6 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b49 big 0 0
    const (88) int 6 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const bad assign string 1 0
      seq no type 10 1
        const sh: nil variable name string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b49 big 0 0
    const (64) int 6 0
ecom: 
const bad assign string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b49 big 0 0
    const (72) int 6 0
ecom: 
const sh: nil variable name string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b49 big 0 0
    const (80) int 6 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const bad assign string 1 0
      seq no type 10 1
        const sh: redirections not allowed in assignment string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b49 big 0 0
    const (64) int 6 0
ecom: 
const bad assign string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b49 big 0 0
    const (72) int 6 0
ecom: 
const sh: redirections not allowed in assignment string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b49 big 0 0
    const (80) int 6 0
ecom: 
= list of ref Listnode 10 1
  name tval list of ref Listnode 0 0
  name val list of ref Listnode 0 0
ecom: 
name val list of ref Listnode 0 0
ecom to: 
name tval list of ref Listnode 0 0
ecom: 
= string 10 2
  name vname string 0 0
  call string 10 2
    name deglob fn(s: string): string 11 1
    seq no type 10 1
      * string 10 1
        + int 10 1
          hd ref Listnode 10 1
            name vars list of ref Listnode 0 0
          const word (8) int 6 0
ecom: 
call string 10 2
  name deglob fn(s: string): string 11 1
  seq no type 10 1
    * string 10 1
      + int 10 1
        hd ref Listnode 10 1
          name vars list of ref Listnode 0 0
        const word (8) int 6 0
ecom to: 
name vname string 0 0
generate desc for big
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name vars list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b49 big 0 0
    const (64) int 6 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name vars list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name vars list of ref Listnode 0 0
ecom to: 
name .t47 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t47 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t47 ref Listnode 0 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const bad assign string 1 0
      seq no type 10 1
        const sh: bad variable name string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b49 big 0 0
    const (64) int 6 0
ecom: 
const bad assign string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b49 big 0 0
    const (72) int 6 0
ecom: 
const sh: bad variable name string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b49 big 0 0
    const (80) int 6 0
ecom: 
= list of ref Listnode 10 1
  name v list of ref Listnode 0 0
  name nil polymorphic type 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name v list of ref Listnode 0 0
eacom: 
tl list of ref Listnode 10 1
  name vars list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name vars list of ref Listnode 0 0
ecom to: 
name .t47 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t47 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t47 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name v list of ref Listnode 0 0
  name tval list of ref Listnode 0 0
ecom: 
name tval list of ref Listnode 0 0
ecom to: 
name v list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name v list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    hd ref Listnode 10 1
      name tval list of ref Listnode 0 0
    name nil polymorphic type 1 0
ecom: 
:: list of ref Listnode 10 1
  hd ref Listnode 10 1
    name tval list of ref Listnode 0 0
  name nil polymorphic type 1 0
ecom to: 
name v list of ref Listnode 0 0
eacom: 
hd ref Listnode 10 1
  name tval list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name tval list of ref Listnode 0 0
ecom to: 
name .t47 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t50 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t47 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t47 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t50 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t50 list of ref Listnode 0 0
ecom: 
call no type 10 2
  name set fn(ctxt: self ref Context, name: string, val: list of ref Listnode) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name vname string 0 0
      seq no type 10 1
        name v list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b49 big 0 0
    const (64) int 6 0
ecom: 
name vname string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b49 big 0 0
    const (72) int 6 0
ecom: 
name v list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b49 big 0 0
    const (80) int 6 0
ecom: 
call no type 10 2
  name setlocal fn(ctxt: self ref Context, name: string, val: list of ref Listnode) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name vname string 0 0
      seq no type 10 1
        name v list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b49 big 0 0
    const (64) int 6 0
ecom: 
name vname string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b49 big 0 0
    const (72) int 6 0
ecom: 
name v list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b49 big 0 0
    const (80) int 6 0
ecom: 
= list of ref Listnode 10 1
  name tval list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name tval list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name tval list of ref Listnode 0 0
ecom to: 
name tval list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name v list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name v list of ref Listnode 0 0
ecom: 
= string 10 1
  name vname string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name vname string 0 0
ecom: 
= list of ref Listnode 10 1
  name vars list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name vars list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name vars list of ref Listnode 0 0
ecom to: 
name vars list of ref Listnode 0 0
ecom: 
name val list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
fn: assign
64: argument ctxt ref Context ref 8
72: argument n ref Node ref 7
80: local .b49 big ref 8
88: local tval list of ref Listnode ref 7
96: local vars list of ref Listnode ref 7
104: local v list of ref Listnode ref 5
112: local redirs ref Redirlist ref 4
120: local val list of ref Listnode ref 4
128: local vname string ref 4
136: local .b48 big ref 2
144: local .t47 ref Node ref 1
152: local .t50 list of ref Listnode ref 1
generate desc for assign
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap n type ref Node offset 72 (d->offset=72 start=0) returns 72
descmap .b49 type big offset 80 (d->offset=80 start=0) returns -1
descmap tval type list of ref Listnode offset 88 (d->offset=88 start=0) returns 88
descmap vars type list of ref Listnode offset 96 (d->offset=96 start=0) returns 96
descmap v type list of ref Listnode offset 104 (d->offset=104 start=0) returns 104
descmap redirs type ref Redirlist offset 112 (d->offset=112 start=0) returns 112
descmap val type list of ref Listnode offset 120 (d->offset=120 start=0) returns 120
descmap vname type string offset 128 (d->offset=128 start=0) returns 128
descmap .b48 type big offset 136 (d->offset=136 start=0) returns -1
descmap .t47 type ref Node offset 144 (d->offset=144 start=0) returns 144
descmap .t50 type list of ref Listnode offset 152 (d->offset=152 start=0) returns 152
fncom: walkpipeline 3 418268
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
= array of ref Sys->FD 10 1
  name fds array of ref Sys->FD 0 0
  array array of ref Sys->FD 10 1
    const (2) int 6 0
ecom: 
array array of ref Sys->FD 10 1
  const (2) int 6 0
ecom to: 
name fds array of ref Sys->FD 0 0
generate desc for ref Sys->FD
generate desc for ref Sys->FD
	desc	$-1,8,"80"
ecom: 
= int 10 1
  name rfdno int 0 0
  const (-1) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
name rfdno int 0 0
eacom: 
call int 10 2
  -> fn(fds: array of ref Sys->FD): int 12 1
    name sys Sys 1 0
    name pipe nothing 11 1
  seq no type 10 1
    name fds array of ref Sys->FD 0 0
ecom: 
call int 10 2
  -> fn(fds: array of ref Sys->FD): int 12 1
    name sys Sys 1 0
    name pipe nothing 11 1
  seq no type 10 1
    name fds array of ref Sys->FD 0 0
ecom to: 
name .t51 int 0 0
generate desc for big
ecom: 
name fds array of ref Sys->FD 0 0
ecom to: 
* array of ref Sys->FD 8 0
  + int 15 0
    name .b52 big 0 0
    const (64) int 6 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      const no pipe string 1 0
      seq no type 10 2
        call string 10 2
          -> fn(s: string, *): string 12 1
            name sys Sys 1 0
            name sprint nothing 11 1
          seq no type 10 1
            const sh: cannot make pipe: %r string 1 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const sh: cannot make pipe: %r string 1 0
ecom to: 
name .t53 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
generate desc for big
ecom: 
const sh: cannot make pipe: %r string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b54 big 0 0
    const (64) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b52 big 0 0
    const (64) int 6 0
ecom: 
const no pipe string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b52 big 0 0
    const (72) int 6 0
ecom: 
name .t53 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b52 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t53 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t53 string 0 0
ecom: 
= int 10 1
  name nwfdno int 0 0
  const (-1) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
name nwfdno int 0 0
ecom: 
= (int, int) 10 2
  tuple (int, int) 10 1
    seq nothing 10 1
      name fd1 int 0 0
      seq nothing 10 1
        name fd2 int 0 0
  tuple (int, int) 10 2
    seq no type 10 2
      * int 10 1
        + int 10 1
          * ref Redir 8 0
            + int 15 1
              name n ref Node 0 0
              const redir (32) int 6 0
          const fd2 (8) int 6 0
      seq no type 10 1
        * int 10 1
          + int 10 1
            * ref Redir 8 0
              + int 15 1
                name n ref Node 0 0
                const redir (32) int 6 0
            const fd1 (4) int 6 0
ecom: 
tuple (int, int) 10 2
  seq no type 10 2
    * int 10 1
      + int 10 1
        * ref Redir 8 0
          + int 15 1
            name n ref Node 0 0
            const redir (32) int 6 0
        const fd2 (8) int 6 0
    seq no type 10 1
      * int 10 1
        + int 10 1
          * ref Redir 8 0
            + int 15 1
              name n ref Node 0 0
              const redir (32) int 6 0
          const fd1 (4) int 6 0
ecom to: 
name fd1 (int, int) 0 0
ecom: 
* int 10 1
  + int 10 1
    * ref Redir 8 0
      + int 15 1
        name n ref Node 0 0
        const redir (32) int 6 0
    const fd2 (8) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      name fd1 (int, int) 0 0
    const (0) int 6 0
eacom: 
* int 10 1
  + int 10 1
    * ref Redir 8 0
      + int 15 1
        name n ref Node 0 0
        const redir (32) int 6 0
    const fd2 (8) int 6 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .t53 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .t53 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .t53 ref Redir 0 0
ecom: 
* int 10 1
  + int 10 1
    * ref Redir 8 0
      + int 15 1
        name n ref Node 0 0
        const redir (32) int 6 0
    const fd1 (4) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      name fd1 (int, int) 0 0
    const (4) int 6 0
eacom: 
* int 10 1
  + int 10 1
    * ref Redir 8 0
      + int 15 1
        name n ref Node 0 0
        const redir (32) int 6 0
    const fd1 (4) int 6 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .t53 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .t53 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .t53 ref Redir 0 0
ecom: 
= (int, int) 10 2
  tuple (int, int) 10 1
    seq no type 10 1
      name fd1 int 0 0
      seq no type 10 1
        name fd2 int 0 0
  tuple (int, int) 10 1
    seq no type 10 1
      name fd2 int 0 0
      seq no type 10 1
        name fd1 int 0 0
generate desc for (int, int)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap t1 type int offset 4 (d->offset=4 start=0) returns -1
generate desc for (int, int)
	desc	$-1,8,""
ecom: 
tuple (int, int) 10 1
  seq no type 10 1
    name fd2 int 0 0
    seq no type 10 1
      name fd1 int 0 0
ecom to: 
name .b55 (int, int) 0 0
ecom: 
name fd2 int 0 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      name .b55 (int, int) 0 0
    const (0) int 6 0
ecom: 
name fd1 int 0 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      name .b55 (int, int) 0 0
    const (4) int 6 0
ecom: 
= (int, int) 10 2
  tuple (int, int) 10 1
    seq no type 10 1
      name nwfdno int 0 0
      seq no type 10 1
        name rfdno int 0 0
  tuple (int, int) 10 1
    seq no type 10 1
      name fd2 int 0 0
      seq no type 10 1
        name fd1 int 0 0
ecom: 
= int 10 1
  name nwfdno int 0 0
  name fd2 int 0 0
ecom: 
name fd2 int 0 0
ecom to: 
name nwfdno int 0 0
ecom: 
= int 10 1
  name rfdno int 0 0
  name fd1 int 0 0
ecom: 
name fd1 int 0 0
ecom to: 
name rfdno int 0 0
ecom: 
= list of int 10 2
  name pids list of int 0 0
  call list of int 10 2
    name walkpipeline fn(ctxt: ref Context, n: ref Node, wrpipe: ref Sys->FD, wfdno: int): list of int 11 1
    seq no type 10 2
      name ctxt ref Context 0 0
      seq no type 10 2
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
        seq no type 10 2
          * ref Sys->FD 10 1
            indx big 10 1
              name fds array of ref Sys->FD 0 0
              const (1) int 6 0
          seq no type 10 1
            name nwfdno int 0 0
ecom: 
call list of int 10 2
  name walkpipeline fn(ctxt: ref Context, n: ref Node, wrpipe: ref Sys->FD, wfdno: int): list of int 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
      seq no type 10 2
        * ref Sys->FD 10 1
          indx big 10 1
            name fds array of ref Sys->FD 0 0
            const (1) int 6 0
        seq no type 10 1
          name nwfdno int 0 0
ecom to: 
name pids list of int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b54 big 0 0
    const (64) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b54 big 0 0
    const (72) int 6 0
ecom: 
* ref Sys->FD 10 1
  indx big 10 1
    name fds array of ref Sys->FD 0 0
    const (1) int 6 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b54 big 0 0
    const (80) int 6 0
eacom: 
* ref Sys->FD 10 1
  indx big 10 1
    name fds array of ref Sys->FD 0 0
    const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name fds array of ref Sys->FD 0 0
  const (1) int 6 0
ecom to: 
name .b52 big 0 0
ecom: 
name nwfdno int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b54 big 0 0
    const (88) int 6 0
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 10 1
    indx big 10 1
      name fds array of ref Sys->FD 0 0
      const (1) int 6 0
  name nil polymorphic type 1 0
eacom: 
* ref Sys->FD 10 1
  indx big 10 1
    name fds array of ref Sys->FD 0 0
    const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name fds array of ref Sys->FD 0 0
  const (1) int 6 0
ecom to: 
name .b54 big 0 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 8 1
  name .b54 big 0 0
ecom: 
= ref Node 10 1
  name n ref Node 0 0
  * ref Node 8 0
    + int 15 1
      name n ref Node 0 0
      const right (16) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
name n ref Node 0 0
ecom: 
= ref Redirlist 10 1
  name r ref Redirlist 0 0
  ref ref Redirlist 10 1
    tuple Redirlist 10 1
      seq no type 10 1
        name nil polymorphic type 1 0
ecom: 
ref ref Redirlist 10 1
  tuple Redirlist 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
ecom to: 
name r ref Redirlist 0 0
generate desc for Redirlist
ecom: 
tuple Redirlist 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
ecom to: 
* Redirlist 8 0
  name .t53 ref Redirlist 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* list of Redirword 8 0
  + int 15 1
    adr int 15 1
      * Redirlist 8 0
        name .t53 ref Redirlist 0 0
    const (0) int 6 0
ecom: 
= ref Redirlist 10 1
  name .t53 ref Redirlist 0 0
  name nil ref Redirlist 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name .t53 ref Redirlist 0 0
ecom: 
= list of ref Listnode 10 2
  name rlist list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name glob fn(nl: list of ref Listnode): list of ref Listnode 11 1
    seq no type 10 2
      call list of ref Listnode 10 2
        name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
        seq no type 10 1
          name ctxt ref Context 0 0
          seq no type 10 1
            name n ref Node 0 0
            seq no type 10 1
              name r ref Redirlist 0 0
              seq no type 10 1
                name nil list of ref Listnode 1 0
ecom: 
call list of ref Listnode 10 2
  name glob fn(nl: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 2
    call list of ref Listnode 10 2
      name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
      seq no type 10 1
        name ctxt ref Context 0 0
        seq no type 10 1
          name n ref Node 0 0
          seq no type 10 1
            name r ref Redirlist 0 0
            seq no type 10 1
              name nil list of ref Listnode 1 0
ecom to: 
name rlist list of ref Listnode 0 0
generate desc for big
ecom: 
call list of ref Listnode 10 2
  name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name n ref Node 0 0
      seq no type 10 1
        name r ref Redirlist 0 0
        seq no type 10 1
          name nil list of ref Listnode 1 0
ecom to: 
name .t53 list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b52 big 0 0
    const (64) int 6 0
ecom: 
name n ref Node 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b52 big 0 0
    const (72) int 6 0
ecom: 
name r ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b52 big 0 0
    const (80) int 6 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b52 big 0 0
    const (88) int 6 0
ecom: 
name .t53 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b54 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t53 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t53 list of ref Listnode 0 0
eacom: 
* ref Sys->FD 10 1
  indx big 10 1
    name fds array of ref Sys->FD 0 0
    const (0) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name fds array of ref Sys->FD 0 0
  const (0) int 6 0
ecom to: 
name .b54 big 0 0
ecom: 
= int 10 1
  name rfdno int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name rfdno int 0 0
ecom: 
= list of Redirword 10 2
  * list of Redirword 8 0
    name r ref Redirlist 0 0
  :: list of Redirword 10 2
    tuple Redirword 10 2
      seq no type 10 2
        * ref Sys->FD 10 1
          indx big 10 1
            name fds array of ref Sys->FD 0 0
            const (0) int 6 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            tuple Redir 10 1
              seq no type 10 1
                const OREAD (0) int 6 0
                seq no type 10 1
                  name rfdno int 0 0
                  seq no type 10 1
                    const (-1) int 6 0
    * list of Redirword 8 0
      name r ref Redirlist 0 0
ecom: 
:: list of Redirword 10 2
  tuple Redirword 10 2
    seq no type 10 2
      * ref Sys->FD 10 1
        indx big 10 1
          name fds array of ref Sys->FD 0 0
          const (0) int 6 0
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          tuple Redir 10 1
            seq no type 10 1
              const OREAD (0) int 6 0
              seq no type 10 1
                name rfdno int 0 0
                seq no type 10 1
                  const (-1) int 6 0
  * list of Redirword 8 0
    name r ref Redirlist 0 0
ecom to: 
* list of Redirword 8 0
  name r ref Redirlist 0 0
eacom: 
tuple Redirword 10 2
  seq no type 10 2
    * ref Sys->FD 10 1
      indx big 10 1
        name fds array of ref Sys->FD 0 0
        const (0) int 6 0
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        tuple Redir 10 1
          seq no type 10 1
            const OREAD (0) int 6 0
            seq no type 10 1
              name rfdno int 0 0
              seq no type 10 1
                const (-1) int 6 0
generate desc for Redirword
descmap adt offset 0
descmap offset 0
descmap fd type ref Sys->FD offset 0 (d->offset=0 start=0) returns 0
descmap w type string offset 8 (d->offset=8 start=0) returns 8
descmap adt offset 16
descmap offset 16
descmap rtype type int offset 16 (d->offset=0 start=16) returns -1
descmap fd1 type int offset 20 (d->offset=4 start=16) returns -1
descmap fd2 type int offset 24 (d->offset=8 start=16) returns -1
descmap r type Redir offset 16 (d->offset=16 start=0) returns -1
generate desc for Redirword
	desc	$-1,32,"c0"
ecom: 
tuple Redirword 10 2
  seq no type 10 2
    * ref Sys->FD 10 1
      indx big 10 1
        name fds array of ref Sys->FD 0 0
        const (0) int 6 0
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        tuple Redir 10 1
          seq no type 10 1
            const OREAD (0) int 6 0
            seq no type 10 1
              name rfdno int 0 0
              seq no type 10 1
                const (-1) int 6 0
ecom to: 
name .b56 Redirword 0 0
ecom: 
* ref Sys->FD 10 1
  indx big 10 1
    name fds array of ref Sys->FD 0 0
    const (0) int 6 0
ecom to: 
* ref Sys->FD 0 0
  + int 13 1
    adr int 13 1
      name .b56 Redirword 0 0
    const (0) int 6 0
eacom: 
* ref Sys->FD 10 1
  indx big 10 1
    name fds array of ref Sys->FD 0 0
    const (0) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name fds array of ref Sys->FD 0 0
  const (0) int 6 0
ecom to: 
name .b54 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b56 Redirword 0 0
    const (8) int 6 0
ecom: 
tuple Redir 10 1
  seq no type 10 1
    const OREAD (0) int 6 0
    seq no type 10 1
      name rfdno int 0 0
      seq no type 10 1
        const (-1) int 6 0
ecom to: 
* Redir 0 0
  + int 13 1
    adr int 13 1
      name .b56 Redirword 0 0
    const (16) int 6 0
ecom: 
const OREAD (0) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      * Redir 0 0
        + int 13 1
          adr int 13 1
            name .b56 Redirword 0 0
          const (16) int 6 0
    const (0) int 6 0
ecom: 
name rfdno int 0 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      * Redir 0 0
        + int 13 1
          adr int 13 1
            name .b56 Redirword 0 0
          const (16) int 6 0
    const (4) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      * Redir 0 0
        + int 13 1
          adr int 13 1
            name .b56 Redirword 0 0
          const (16) int 6 0
    const (8) int 6 0
generate desc for Redirword
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 0 0
    adr int 13 1
      name .b56 Redirword 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 0 0
  adr int 13 1
    name .b56 Redirword 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b56 Redirword 0 0
      const w (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b56 Redirword 0 0
    const w (8) int 6 0
ecom: 
= int 10 1
  name wfdno int 0 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
name wfdno int 0 0
ecom: 
= list of Redirword 10 1
  * list of Redirword 8 0
    name r ref Redirlist 0 0
  :: list of Redirword 10 1
    tuple Redirword 10 1
      seq no type 10 1
        name wrpipe ref Sys->FD 0 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            tuple Redir 10 1
              seq no type 10 1
                const OWRITE (1) int 6 0
                seq no type 10 1
                  name wfdno int 0 0
                  seq no type 10 1
                    const (-1) int 6 0
    * list of Redirword 8 0
      name r ref Redirlist 0 0
ecom: 
:: list of Redirword 10 1
  tuple Redirword 10 1
    seq no type 10 1
      name wrpipe ref Sys->FD 0 0
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          tuple Redir 10 1
            seq no type 10 1
              const OWRITE (1) int 6 0
              seq no type 10 1
                name wfdno int 0 0
                seq no type 10 1
                  const (-1) int 6 0
  * list of Redirword 8 0
    name r ref Redirlist 0 0
ecom to: 
* list of Redirword 8 0
  name r ref Redirlist 0 0
eacom: 
tuple Redirword 10 1
  seq no type 10 1
    name wrpipe ref Sys->FD 0 0
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        tuple Redir 10 1
          seq no type 10 1
            const OWRITE (1) int 6 0
            seq no type 10 1
              name wfdno int 0 0
              seq no type 10 1
                const (-1) int 6 0
generate desc for Redirword
ecom: 
tuple Redirword 10 1
  seq no type 10 1
    name wrpipe ref Sys->FD 0 0
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        tuple Redir 10 1
          seq no type 10 1
            const OWRITE (1) int 6 0
            seq no type 10 1
              name wfdno int 0 0
              seq no type 10 1
                const (-1) int 6 0
ecom to: 
name .b56 Redirword 0 0
ecom: 
name wrpipe ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 0 0
  + int 13 1
    adr int 13 1
      name .b56 Redirword 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b56 Redirword 0 0
    const (8) int 6 0
ecom: 
tuple Redir 10 1
  seq no type 10 1
    const OWRITE (1) int 6 0
    seq no type 10 1
      name wfdno int 0 0
      seq no type 10 1
        const (-1) int 6 0
ecom to: 
* Redir 0 0
  + int 13 1
    adr int 13 1
      name .b56 Redirword 0 0
    const (16) int 6 0
ecom: 
const OWRITE (1) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      * Redir 0 0
        + int 13 1
          adr int 13 1
            name .b56 Redirword 0 0
          const (16) int 6 0
    const (0) int 6 0
ecom: 
name wfdno int 0 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      * Redir 0 0
        + int 13 1
          adr int 13 1
            name .b56 Redirword 0 0
          const (16) int 6 0
    const (4) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      * Redir 0 0
        + int 13 1
          adr int 13 1
            name .b56 Redirword 0 0
          const (16) int 6 0
    const (8) int 6 0
generate desc for Redirword
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 0 0
    adr int 13 1
      name .b56 Redirword 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 0 0
  adr int 13 1
    name .b56 Redirword 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b56 Redirword 0 0
      const w (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b56 Redirword 0 0
    const w (8) int 6 0
ecom: 
= chan of (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
  chan chan of (int, ref Expropagate) 10 1
    const (0) int 6 0
ecom: 
chan chan of (int, ref Expropagate) 10 1
  const (0) int 6 0
ecom to: 
name startchan chan of (int, ref Expropagate) 0 0
generate desc for (int, ref Expropagate)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap t1 type ref Expropagate offset 8 (d->offset=8 start=0) returns 8
generate desc for (int, ref Expropagate)
	desc	$-1,16,"40"
ecom: 
spawn nothing 10 2
  call no type 10 2
    name runasync fn(ctxt: ref Context, copyenv: int, argv: list of ref Listnode, redirs: ref Redirlist, startchan: chan of (int, ref Expropagate)) 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        const (1) int 6 0
        seq no type 10 1
          name rlist list of ref Listnode 0 0
          seq no type 10 1
            name r ref Redirlist 0 0
            seq no type 10 1
              name startchan chan of (int, ref Expropagate) 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b54 big 0 0
    const (64) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b54 big 0 0
    const (72) int 6 0
ecom: 
name rlist list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b54 big 0 0
    const (80) int 6 0
ecom: 
name r ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b54 big 0 0
    const (88) int 6 0
ecom: 
name startchan chan of (int, ref Expropagate) 0 0
ecom to: 
* chan of (int, ref Expropagate) 8 0
  + int 15 0
    name .b54 big 0 0
    const (96) int 6 0
ecom: 
= (int, ref Expropagate) 10 2
  tuple (int, ref Expropagate) 10 1
    seq nothing 10 1
      name pid int 0 0
      seq nothing 10 1
        name nil polymorphic type 1 0
  <- (int, ref Expropagate) 10 1
    name startchan chan of (int, ref Expropagate) 0 0
generate desc for (int, ref Expropagate)
ecom: 
<- (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
ecom to: 
name .b57 (int, ref Expropagate) 0 0
ecom: 
= ref Expropagate 10 1
  * ref Expropagate 0 0
    + int 13 1
      adr int 13 1
        name .b57 (int, ref Expropagate) 0 0
      const t1 (8) int 6 0
  name nil ref Expropagate 1 0
ecom: 
name nil ref Expropagate 1 0
ecom to: 
* ref Expropagate 0 0
  + int 13 1
    adr int 13 1
      name .b57 (int, ref Expropagate) 0 0
    const t1 (8) int 6 0
ecom: 
:: list of int 10 1
  name pid int 0 0
  name pids list of int 0 0
ecom to: 
* list of int 8 0
  name .ret int 0 0
ecom: 
name pids list of int 0 0
ecom to: 
name .t53 list of int 0 0
ecom: 
= list of int 10 1
  name .t53 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t53 list of int 0 0
fn: walkpipeline
64: argument ctxt ref Context ref 4
72: argument n ref Node ref 9
80: argument wrpipe ref Sys->FD ref 2
88: argument wfdno int ref 3
92: local rfdno int ref 5
96: local fd1 int ref 4
100: local fd2 int ref 5
104: local nwfdno int ref 3
108: local .t51 int ref 1
112: local .b54 big ref 7
120: local r ref Redirlist ref 7
128: local fds array of ref Sys->FD ref 6
136: local .b52 big ref 4
144: local startchan chan of (int, ref Expropagate) ref 3
152: local pids list of int ref 2
160: local rlist list of ref Listnode ref 2
168: local .b56 Redirword ref 2
200: local .b55 (int, int) ref 1
208: local .t53 string ref 1
216: local .b57 (int, ref Expropagate) ref 1
104: local pid int ref 3
generate desc for walkpipeline
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap n type ref Node offset 72 (d->offset=72 start=0) returns 72
descmap wrpipe type ref Sys->FD offset 80 (d->offset=80 start=0) returns 80
descmap wfdno type int offset 88 (d->offset=88 start=0) returns -1
descmap rfdno type int offset 92 (d->offset=92 start=0) returns -1
descmap fd1 type int offset 96 (d->offset=96 start=0) returns -1
descmap fd2 type int offset 100 (d->offset=100 start=0) returns -1
descmap nwfdno type int offset 104 (d->offset=104 start=0) returns -1
descmap .t51 type int offset 108 (d->offset=108 start=0) returns -1
descmap .b54 type big offset 112 (d->offset=112 start=0) returns -1
descmap r type ref Redirlist offset 120 (d->offset=120 start=0) returns 120
descmap fds type array of ref Sys->FD offset 128 (d->offset=128 start=0) returns 128
descmap .b52 type big offset 136 (d->offset=136 start=0) returns -1
descmap startchan type chan of (int, ref Expropagate) offset 144 (d->offset=144 start=0) returns 144
descmap pids type list of int offset 152 (d->offset=152 start=0) returns 152
descmap rlist type list of ref Listnode offset 160 (d->offset=160 start=0) returns 160
descmap adt offset 168
descmap offset 168
descmap fd type ref Sys->FD offset 168 (d->offset=0 start=168) returns 168
descmap w type string offset 176 (d->offset=8 start=168) returns 176
descmap adt offset 184
descmap offset 184
descmap rtype type int offset 184 (d->offset=0 start=184) returns -1
descmap fd1 type int offset 188 (d->offset=4 start=184) returns -1
descmap fd2 type int offset 192 (d->offset=8 start=184) returns -1
descmap r type Redir offset 184 (d->offset=16 start=168) returns -1
descmap .b56 type Redirword offset 168 (d->offset=168 start=0) returns 176
descmap adt offset 200
descmap offset 200
descmap t0 type int offset 200 (d->offset=0 start=200) returns -1
descmap t1 type int offset 204 (d->offset=4 start=200) returns -1
descmap .b55 type (int, int) offset 200 (d->offset=200 start=0) returns -1
descmap .t53 type string offset 208 (d->offset=208 start=0) returns 208
descmap adt offset 216
descmap offset 216
descmap t0 type int offset 216 (d->offset=0 start=216) returns -1
descmap t1 type ref Expropagate offset 224 (d->offset=8 start=216) returns 224
descmap .b57 type (int, ref Expropagate) offset 216 (d->offset=216 start=0) returns 224
fncom: makeredir 1 418328
fncom: glom 14 4183e8
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
call list of ref Listnode 10 2
  name listjoin fn(left: list of ref Listnode, right: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 2
    call list of ref Listnode 10 2
      name glomoperation fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist): list of ref Listnode 11 1
      seq no type 10 1
        name ctxt ref Context 0 0
        seq no type 10 1
          name n ref Node 0 0
          seq no type 10 1
            name redirs ref Redirlist 0 0
    seq no type 10 1
      name onto list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
generate desc for big
ecom: 
call list of ref Listnode 10 2
  name glomoperation fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name n ref Node 0 0
      seq no type 10 1
        name redirs ref Redirlist 0 0
ecom to: 
name .t59 list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b60 big 0 0
    const (64) int 6 0
ecom: 
name n ref Node 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b60 big 0 0
    const (72) int 6 0
ecom: 
name redirs ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b60 big 0 0
    const (80) int 6 0
ecom: 
name .t59 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b58 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t59 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t59 list of ref Listnode 0 0
ecom: 
name onto list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b58 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 2
  name nlist list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const right (16) int 6 0
        seq no type 10 1
          name redirs ref Redirlist 0 0
          seq no type 10 1
            name onto list of ref Listnode 0 0
ecom: 
call list of ref Listnode 10 2
  name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const right (16) int 6 0
      seq no type 10 1
        name redirs ref Redirlist 0 0
        seq no type 10 1
          name onto list of ref Listnode 0 0
ecom to: 
name nlist list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b60 big 0 0
    const (64) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b60 big 0 0
    const (72) int 6 0
ecom: 
name redirs ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b60 big 0 0
    const (80) int 6 0
ecom: 
name onto list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b60 big 0 0
    const (88) int 6 0
eacom: 
* int 10 1
  * ref Node 8 0
    + int 15 1
      name n ref Node 0 0
      const left (8) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
name .t59 ref Node 0 0
ecom: 
= ref Node 10 1
  name .t59 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t59 ref Node 0 0
ecom: 
= list of ref Listnode 10 2
  name nlist list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name listjoin fn(left: list of ref Listnode, right: list of ref Listnode): list of ref Listnode 11 1
    seq no type 10 2
      call list of ref Listnode 10 2
        name glomoperation fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist): list of ref Listnode 11 1
        seq no type 10 1
          name ctxt ref Context 0 0
          seq no type 10 1
            * ref Node 8 0
              + int 15 1
                name n ref Node 0 0
                const left (8) int 6 0
            seq no type 10 1
              name redirs ref Redirlist 0 0
      seq no type 10 1
        name nlist list of ref Listnode 0 0
ecom: 
call list of ref Listnode 10 2
  name listjoin fn(left: list of ref Listnode, right: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 2
    call list of ref Listnode 10 2
      name glomoperation fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist): list of ref Listnode 11 1
      seq no type 10 1
        name ctxt ref Context 0 0
        seq no type 10 1
          * ref Node 8 0
            + int 15 1
              name n ref Node 0 0
              const left (8) int 6 0
          seq no type 10 1
            name redirs ref Redirlist 0 0
    seq no type 10 1
      name nlist list of ref Listnode 0 0
ecom to: 
name nlist list of ref Listnode 0 0
generate desc for big
ecom: 
call list of ref Listnode 10 2
  name glomoperation fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
      seq no type 10 1
        name redirs ref Redirlist 0 0
ecom to: 
name .t59 list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b58 big 0 0
    const (64) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b58 big 0 0
    const (72) int 6 0
ecom: 
name redirs ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b58 big 0 0
    const (80) int 6 0
ecom: 
name .t59 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b60 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t59 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t59 list of ref Listnode 0 0
ecom: 
name nlist list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b60 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 2
  name nlist list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
        seq no type 10 1
          name redirs ref Redirlist 0 0
          seq no type 10 1
            name nlist list of ref Listnode 0 0
ecom: 
call list of ref Listnode 10 2
  name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
      seq no type 10 1
        name redirs ref Redirlist 0 0
        seq no type 10 1
          name nlist list of ref Listnode 0 0
ecom to: 
name nlist list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b60 big 0 0
    const (64) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b60 big 0 0
    const (72) int 6 0
ecom: 
name redirs ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b60 big 0 0
    const (80) int 6 0
ecom: 
name nlist list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b60 big 0 0
    const (88) int 6 0
ecom: 
name nlist list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
fn: glom
64: argument ctxt ref Context ref 4
72: argument n ref Node ref 7
80: argument redirs ref Redirlist ref 4
88: argument onto list of ref Listnode ref 2
96: local nlist list of ref Listnode ref 6
104: local .b60 big ref 4
112: local .b58 big ref 2
120: local .t59 list of ref Listnode ref 1
generate desc for glom
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap n type ref Node offset 72 (d->offset=72 start=0) returns 72
descmap redirs type ref Redirlist offset 80 (d->offset=80 start=0) returns 80
descmap onto type list of ref Listnode offset 88 (d->offset=88 start=0) returns 88
descmap nlist type list of ref Listnode offset 96 (d->offset=96 start=0) returns 96
descmap .b60 type big offset 104 (d->offset=104 start=0) returns -1
descmap .b58 type big offset 112 (d->offset=112 start=0) returns -1
descmap .t59 type list of ref Listnode offset 120 (d->offset=120 start=0) returns 120
fncom: listjoin 3 4184a8
ecom: 
= list of ref Listnode 10 1
  name l list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    hd ref Listnode 10 1
      name left list of ref Listnode 0 0
    name l list of ref Listnode 0 0
ecom: 
:: list of ref Listnode 10 1
  hd ref Listnode 10 1
    name left list of ref Listnode 0 0
  name l list of ref Listnode 0 0
ecom to: 
name l list of ref Listnode 0 0
eacom: 
hd ref Listnode 10 1
  name left list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name left list of ref Listnode 0 0
ecom to: 
name .t61 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t61 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t61 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name left list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name left list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name left list of ref Listnode 0 0
ecom to: 
name left list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name right list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    hd ref Listnode 10 1
      name l list of ref Listnode 0 0
    name right list of ref Listnode 0 0
ecom: 
:: list of ref Listnode 10 1
  hd ref Listnode 10 1
    name l list of ref Listnode 0 0
  name right list of ref Listnode 0 0
ecom to: 
name right list of ref Listnode 0 0
eacom: 
hd ref Listnode 10 1
  name l list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name l list of ref Listnode 0 0
ecom to: 
name .t61 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t61 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t61 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name l list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name l list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name l list of ref Listnode 0 0
ecom to: 
name l list of ref Listnode 0 0
ecom: 
name right list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
fn: listjoin
64: argument left list of ref Listnode ref 4
72: argument right list of ref Listnode ref 3
80: local l list of ref Listnode ref 6
88: local .t61 ref Listnode ref 1
generate desc for listjoin
descmap offset 0
descmap left type list of ref Listnode offset 64 (d->offset=64 start=0) returns 64
descmap right type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap l type list of ref Listnode offset 80 (d->offset=80 start=0) returns 80
descmap .t61 type ref Listnode offset 88 (d->offset=88 start=0) returns 88
fncom: pipecmd 2 418568
eacom: 
& int 10 1
  * int 8 0
    name redir ref Redir 0 0
  const OAPPEND (524288) int 6 0
ecom: 
& int 10 1
  * int 8 0
    name redir ref Redir 0 0
  const OAPPEND (524288) int 6 0
ecom to: 
name .t62 int 0 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const bad redir string 1 0
      seq no type 10 1
        const sh: bad redirection string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b63 big 0 0
    const (64) int 6 0
ecom: 
const bad redir string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b63 big 0 0
    const (72) int 6 0
ecom: 
const sh: bad redirection string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b63 big 0 0
    const (80) int 6 0
ecom: 
= Redir 10 1
  name r Redir 0 0
  * Redir 8 0
    name redir ref Redir 0 0
ecom: 
* Redir 8 0
  name redir ref Redir 0 0
ecom to: 
name r Redir 0 0
generate desc for Redir
descmap adt offset 0
descmap offset 0
descmap rtype type int offset 0 (d->offset=0 start=0) returns -1
descmap fd1 type int offset 4 (d->offset=4 start=0) returns -1
descmap fd2 type int offset 8 (d->offset=8 start=0) returns -1
generate desc for Redir
	desc	$-1,12,""
ecom: 
= int 10 1
  * int 0 0
    adr int 13 1
      name r Redir 0 0
  const OWRITE (1) int 6 0
ecom: 
const OWRITE (1) int 6 0
ecom to: 
* int 0 0
  adr int 13 1
    name r Redir 0 0
ecom: 
= int 10 1
  * int 0 0
    adr int 13 1
      name r Redir 0 0
  const OREAD (0) int 6 0
ecom: 
const OREAD (0) int 6 0
ecom to: 
* int 0 0
  adr int 13 1
    name r Redir 0 0
ecom: 
= array of ref Sys->FD 10 1
  name p array of ref Sys->FD 0 0
  array array of ref Sys->FD 10 1
    const (2) int 6 0
ecom: 
array array of ref Sys->FD 10 1
  const (2) int 6 0
ecom to: 
name p array of ref Sys->FD 0 0
generate desc for ref Sys->FD
generate desc for ref Sys->FD
	desc	$-1,8,"80"
eacom: 
call int 10 2
  -> fn(fds: array of ref Sys->FD): int 12 1
    name sys Sys 1 0
    name pipe nothing 11 1
  seq no type 10 1
    name p array of ref Sys->FD 0 0
ecom: 
call int 10 2
  -> fn(fds: array of ref Sys->FD): int 12 1
    name sys Sys 1 0
    name pipe nothing 11 1
  seq no type 10 1
    name p array of ref Sys->FD 0 0
ecom to: 
name .t62 int 0 0
generate desc for big
ecom: 
name p array of ref Sys->FD 0 0
ecom to: 
* array of ref Sys->FD 8 0
  + int 15 0
    name .b63 big 0 0
    const (64) int 6 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      const no pipe string 1 0
      seq no type 10 2
        call string 10 2
          -> fn(s: string, *): string 12 1
            name sys Sys 1 0
            name sprint nothing 11 1
          seq no type 10 1
            const sh: cannot make pipe: %r string 1 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const sh: cannot make pipe: %r string 1 0
ecom to: 
name .t64 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
generate desc for big
ecom: 
const sh: cannot make pipe: %r string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b65 big 0 0
    const (64) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b63 big 0 0
    const (64) int 6 0
ecom: 
const no pipe string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b63 big 0 0
    const (72) int 6 0
ecom: 
name .t64 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b63 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t64 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t64 string 0 0
ecom: 
= chan of (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
  chan chan of (int, ref Expropagate) 10 1
    const (0) int 6 0
ecom: 
chan chan of (int, ref Expropagate) 10 1
  const (0) int 6 0
ecom to: 
name startchan chan of (int, ref Expropagate) 0 0
generate desc for (int, ref Expropagate)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap t1 type ref Expropagate offset 8 (d->offset=8 start=0) returns 8
generate desc for (int, ref Expropagate)
	desc	$-1,16,"40"
ecom: 
spawn nothing 10 2
  call no type 10 2
    name runasync fn(ctxt: ref Context, copyenv: int, argv: list of ref Listnode, redirs: ref Redirlist, startchan: chan of (int, ref Expropagate)) 11 1
    seq no type 10 2
      name ctxt ref Context 0 0
      seq no type 10 2
        const (1) int 6 0
        seq no type 10 2
          name cmd list of ref Listnode 0 0
          seq no type 10 2
            ref ref Redirlist 10 2
              tuple Redirlist 10 2
                seq no type 10 2
                  :: list of (ref Sys->FD, polymorphic type, Redir) 10 2
                    tuple (ref Sys->FD, polymorphic type, Redir) 10 2
                      seq no type 10 2
                        * ref Sys->FD 10 1
                          indx big 10 1
                            name p array of ref Sys->FD 0 0
                            const (1) int 6 0
                        seq no type 10 1
                          name nil polymorphic type 1 0
                          seq no type 10 1
                            name r Redir 0 0
                    name nil polymorphic type 1 0
            seq no type 10 1
              name startchan chan of (int, ref Expropagate) 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b65 big 0 0
    const (64) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b65 big 0 0
    const (72) int 6 0
ecom: 
name cmd list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b65 big 0 0
    const (80) int 6 0
ecom: 
ref ref Redirlist 10 2
  tuple Redirlist 10 2
    seq no type 10 2
      :: list of (ref Sys->FD, polymorphic type, Redir) 10 2
        tuple (ref Sys->FD, polymorphic type, Redir) 10 2
          seq no type 10 2
            * ref Sys->FD 10 1
              indx big 10 1
                name p array of ref Sys->FD 0 0
                const (1) int 6 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name r Redir 0 0
        name nil polymorphic type 1 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b65 big 0 0
    const (88) int 6 0
generate desc for Redirlist
ecom: 
tuple Redirlist 10 2
  seq no type 10 2
    :: list of (ref Sys->FD, polymorphic type, Redir) 10 2
      tuple (ref Sys->FD, polymorphic type, Redir) 10 2
        seq no type 10 2
          * ref Sys->FD 10 1
            indx big 10 1
              name p array of ref Sys->FD 0 0
              const (1) int 6 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name r Redir 0 0
      name nil polymorphic type 1 0
ecom to: 
* Redirlist 8 0
  name .t64 ref Redirlist 0 0
ecom: 
:: list of (ref Sys->FD, polymorphic type, Redir) 10 2
  tuple (ref Sys->FD, polymorphic type, Redir) 10 2
    seq no type 10 2
      * ref Sys->FD 10 1
        indx big 10 1
          name p array of ref Sys->FD 0 0
          const (1) int 6 0
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          name r Redir 0 0
  name nil polymorphic type 1 0
ecom to: 
* list of Redirword 8 0
  + int 15 1
    adr int 15 1
      * Redirlist 8 0
        name .t64 ref Redirlist 0 0
    const (0) int 6 0
eacom: 
tuple (ref Sys->FD, polymorphic type, Redir) 10 2
  seq no type 10 2
    * ref Sys->FD 10 1
      indx big 10 1
        name p array of ref Sys->FD 0 0
        const (1) int 6 0
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name r Redir 0 0
generate desc for (ref Sys->FD, polymorphic type, Redir)
descmap adt offset 0
descmap offset 0
descmap t0 type ref Sys->FD offset 0 (d->offset=0 start=0) returns 0
descmap t1 type polymorphic type offset 8 (d->offset=8 start=0) returns 8
descmap adt offset 16
descmap offset 16
descmap rtype type int offset 16 (d->offset=0 start=16) returns -1
descmap fd1 type int offset 20 (d->offset=4 start=16) returns -1
descmap fd2 type int offset 24 (d->offset=8 start=16) returns -1
descmap t2 type Redir offset 16 (d->offset=16 start=0) returns -1
generate desc for (ref Sys->FD, polymorphic type, Redir)
	desc	$-1,32,"c0"
ecom: 
tuple (ref Sys->FD, polymorphic type, Redir) 10 2
  seq no type 10 2
    * ref Sys->FD 10 1
      indx big 10 1
        name p array of ref Sys->FD 0 0
        const (1) int 6 0
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name r Redir 0 0
ecom to: 
name .b66 (ref Sys->FD, polymorphic type, Redir) 0 0
ecom: 
* ref Sys->FD 10 1
  indx big 10 1
    name p array of ref Sys->FD 0 0
    const (1) int 6 0
ecom to: 
* ref Sys->FD 0 0
  + int 13 1
    adr int 13 1
      name .b66 (ref Sys->FD, polymorphic type, Redir) 0 0
    const (0) int 6 0
eacom: 
* ref Sys->FD 10 1
  indx big 10 1
    name p array of ref Sys->FD 0 0
    const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name p array of ref Sys->FD 0 0
  const (1) int 6 0
ecom to: 
name .b63 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 0 0
  + int 13 1
    adr int 13 1
      name .b66 (ref Sys->FD, polymorphic type, Redir) 0 0
    const (8) int 6 0
ecom: 
name r Redir 0 0
ecom to: 
* Redir 0 0
  + int 13 1
    adr int 13 1
      name .b66 (ref Sys->FD, polymorphic type, Redir) 0 0
    const (16) int 6 0
generate desc for Redir
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t67 list of (ref Sys->FD, polymorphic type, Redir) 0 0
generate desc for (ref Sys->FD, polymorphic type, Redir)
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 0 0
    adr int 13 1
      name .b66 (ref Sys->FD, polymorphic type, Redir) 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 0 0
  adr int 13 1
    name .b66 (ref Sys->FD, polymorphic type, Redir) 0 0
ecom: 
= polymorphic type 10 1
  * polymorphic type 0 0
    + int 13 1
      adr int 13 1
        name .b66 (ref Sys->FD, polymorphic type, Redir) 0 0
      const t1 (8) int 6 0
  name nil polymorphic type 1 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 0 0
  + int 13 1
    adr int 13 1
      name .b66 (ref Sys->FD, polymorphic type, Redir) 0 0
    const t1 (8) int 6 0
ecom: 
= list of (ref Sys->FD, polymorphic type, Redir) 10 1
  name .t67 list of (ref Sys->FD, polymorphic type, Redir) 0 0
  name nil list of (ref Sys->FD, polymorphic type, Redir) 1 0
ecom: 
name nil list of (ref Sys->FD, polymorphic type, Redir) 1 0
ecom to: 
name .t67 list of (ref Sys->FD, polymorphic type, Redir) 0 0
ecom: 
= ref Redirlist 10 1
  name .t64 ref Redirlist 0 0
  name nil ref Redirlist 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name .t64 ref Redirlist 0 0
ecom: 
name startchan chan of (int, ref Expropagate) 0 0
ecom to: 
* chan of (int, ref Expropagate) 8 0
  + int 15 0
    name .b65 big 0 0
    const (96) int 6 0
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 10 1
    indx big 10 1
      name p array of ref Sys->FD 0 0
      const (1) int 6 0
  name nil polymorphic type 1 0
eacom: 
* ref Sys->FD 10 1
  indx big 10 1
    name p array of ref Sys->FD 0 0
    const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name p array of ref Sys->FD 0 0
  const (1) int 6 0
ecom to: 
name .b65 big 0 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 8 1
  name .b65 big 0 0
ecom: 
<- (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
generate desc for (int, ref Expropagate)
ecom: 
<- (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
ecom to: 
name .b68 (int, ref Expropagate) 0 0
ecom: 
= ref Expropagate 10 1
  * ref Expropagate 0 0
    + int 13 1
      adr int 13 1
        name .b68 (int, ref Expropagate) 0 0
      const t1 (8) int 6 0
  name nil ref Expropagate 1 0
ecom: 
name nil ref Expropagate 1 0
ecom to: 
* ref Expropagate 0 0
  + int 13 1
    adr int 13 1
      name .b68 (int, ref Expropagate) 0 0
    const t1 (8) int 6 0
ecom: 
* ref Sys->FD 10 1
  indx big 10 1
    name p array of ref Sys->FD 0 0
    const (0) int 6 0
ecom to: 
* ref Sys->FD 8 0
  name .ret int 0 0
eacom: 
* ref Sys->FD 10 1
  indx big 10 1
    name p array of ref Sys->FD 0 0
    const (0) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name p array of ref Sys->FD 0 0
  const (0) int 6 0
ecom to: 
name .b65 big 0 0
fn: pipecmd
64: argument ctxt ref Context ref 3
72: argument cmd list of ref Listnode ref 1
80: argument redir ref Redir ref 4
88: local .t62 int ref 1
96: local p array of ref Sys->FD ref 5
104: local .b63 big ref 4
112: local .b65 big ref 4
120: local r Redir ref 4
136: local startchan chan of (int, ref Expropagate) ref 3
144: local .t64 string ref 1
152: local .t67 list of (ref Sys->FD, polymorphic type, Redir) ref 1
160: local .b68 (int, ref Expropagate) ref 1
176: local .b66 (ref Sys->FD, polymorphic type, Redir) ref 1
generate desc for pipecmd
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap cmd type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap redir type ref Redir offset 80 (d->offset=80 start=0) returns 80
descmap .t62 type int offset 88 (d->offset=88 start=0) returns -1
descmap p type array of ref Sys->FD offset 96 (d->offset=96 start=0) returns 96
descmap .b63 type big offset 104 (d->offset=104 start=0) returns -1
descmap .b65 type big offset 112 (d->offset=112 start=0) returns -1
descmap adt offset 120
descmap offset 120
descmap rtype type int offset 120 (d->offset=0 start=120) returns -1
descmap fd1 type int offset 124 (d->offset=4 start=120) returns -1
descmap fd2 type int offset 128 (d->offset=8 start=120) returns -1
descmap r type Redir offset 120 (d->offset=120 start=0) returns -1
descmap startchan type chan of (int, ref Expropagate) offset 136 (d->offset=136 start=0) returns 136
descmap .t64 type string offset 144 (d->offset=144 start=0) returns 144
descmap .t67 type list of (ref Sys->FD, polymorphic type, Redir) offset 152 (d->offset=152 start=0) returns 152
descmap adt offset 160
descmap offset 160
descmap t0 type int offset 160 (d->offset=0 start=160) returns -1
descmap t1 type ref Expropagate offset 168 (d->offset=8 start=160) returns 168
descmap .b68 type (int, ref Expropagate) offset 160 (d->offset=160 start=0) returns 168
descmap adt offset 176
descmap offset 176
descmap t0 type ref Sys->FD offset 176 (d->offset=0 start=176) returns 176
descmap t1 type polymorphic type offset 184 (d->offset=8 start=176) returns 184
descmap adt offset 192
descmap offset 192
descmap rtype type int offset 192 (d->offset=0 start=192) returns -1
descmap fd1 type int offset 196 (d->offset=4 start=192) returns -1
descmap fd2 type int offset 200 (d->offset=8 start=192) returns -1
descmap t2 type Redir offset 192 (d->offset=16 start=176) returns -1
descmap .b66 type (ref Sys->FD, polymorphic type, Redir) offset 176 (d->offset=176 start=0) returns 184
fncom: glomoperation 3 418628
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
= list of ref Listnode 10 1
  name nlist list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    ref ref Listnode 10 1
      tuple Listnode 10 1
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            * string 8 0
              + int 15 1
                name n ref Node 0 0
                const word (24) int 6 0
    name nil polymorphic type 1 0
ecom: 
:: list of ref Listnode 10 1
  ref ref Listnode 10 1
    tuple Listnode 10 1
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          * string 8 0
            + int 15 1
              name n ref Node 0 0
              const word (24) int 6 0
  name nil polymorphic type 1 0
ecom to: 
name nlist list of ref Listnode 0 0
eacom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        * string 8 0
          + int 15 1
            name n ref Node 0 0
            const word (24) int 6 0
ecom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        * string 8 0
          + int 15 1
            name n ref Node 0 0
            const word (24) int 6 0
ecom to: 
name .t69 ref Listnode 0 0
generate desc for Listnode
ecom: 
tuple Listnode 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      * string 8 0
        + int 15 1
          name n ref Node 0 0
          const word (24) int 6 0
ecom to: 
* Listnode 8 0
  name .t69 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t69 ref Listnode 0 0
    const (0) int 6 0
ecom: 
* string 8 0
  + int 15 1
    name n ref Node 0 0
    const word (24) int 6 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t69 ref Listnode 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t70 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t69 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t69 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t70 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t70 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 2
  name wlist list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name glob fn(nl: list of ref Listnode): list of ref Listnode 11 1
    seq no type 10 2
      call list of ref Listnode 10 2
        name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
        seq no type 10 2
          name ctxt ref Context 0 0
          seq no type 10 2
            * ref Node 8 0
              + int 15 1
                name n ref Node 0 0
                const left (8) int 6 0
            seq no type 10 2
              ref ref Redirlist 10 1
                tuple Redirlist 10 1
                  seq no type 10 1
                    name nil polymorphic type 1 0
              seq no type 10 1
                name nil list of ref Listnode 1 0
ecom: 
call list of ref Listnode 10 2
  name glob fn(nl: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 2
    call list of ref Listnode 10 2
      name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
      seq no type 10 2
        name ctxt ref Context 0 0
        seq no type 10 2
          * ref Node 8 0
            + int 15 1
              name n ref Node 0 0
              const left (8) int 6 0
          seq no type 10 2
            ref ref Redirlist 10 1
              tuple Redirlist 10 1
                seq no type 10 1
                  name nil polymorphic type 1 0
            seq no type 10 1
              name nil list of ref Listnode 1 0
ecom to: 
name wlist list of ref Listnode 0 0
generate desc for big
ecom: 
call list of ref Listnode 10 2
  name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
      seq no type 10 2
        ref ref Redirlist 10 1
          tuple Redirlist 10 1
            seq no type 10 1
              name nil polymorphic type 1 0
        seq no type 10 1
          name nil list of ref Listnode 1 0
ecom to: 
name .t70 list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b72 big 0 0
    const (64) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b72 big 0 0
    const (72) int 6 0
ecom: 
ref ref Redirlist 10 1
  tuple Redirlist 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b72 big 0 0
    const (80) int 6 0
generate desc for Redirlist
ecom: 
tuple Redirlist 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
ecom to: 
* Redirlist 8 0
  name .t69 ref Redirlist 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* list of Redirword 8 0
  + int 15 1
    adr int 15 1
      * Redirlist 8 0
        name .t69 ref Redirlist 0 0
    const (0) int 6 0
ecom: 
= ref Redirlist 10 1
  name .t69 ref Redirlist 0 0
  name nil ref Redirlist 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name .t69 ref Redirlist 0 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b72 big 0 0
    const (88) int 6 0
ecom: 
name .t70 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b71 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t70 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t70 list of ref Listnode 0 0
eacom: 
len int 10 1
  name wlist list of ref Listnode 0 0
ecom: 
len int 10 1
  name wlist list of ref Listnode 0 0
ecom to: 
name .t73 int 0 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const bad redir string 1 0
      seq no type 10 1
        const sh: single redirection operand required string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b72 big 0 0
    const (64) int 6 0
ecom: 
const bad redir string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b72 big 0 0
    const (72) int 6 0
ecom: 
const sh: single redirection operand required string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b72 big 0 0
    const (80) int 6 0
eacom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name wlist list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name wlist list of ref Listnode 0 0
ecom to: 
name .t70 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t70 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t70 ref Listnode 0 0
ecom: 
= ref Sys->FD 10 2
  name fd ref Sys->FD 0 0
  call ref Sys->FD 10 2
    name pipecmd fn(ctxt: ref Context, cmd: list of ref Listnode, redir: ref Redir): ref Sys->FD 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name wlist list of ref Listnode 0 0
        seq no type 10 1
          * ref Redir 8 0
            + int 15 1
              name n ref Node 0 0
              const redir (32) int 6 0
ecom: 
call ref Sys->FD 10 2
  name pipecmd fn(ctxt: ref Context, cmd: list of ref Listnode, redir: ref Redir): ref Sys->FD 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name wlist list of ref Listnode 0 0
      seq no type 10 1
        * ref Redir 8 0
          + int 15 1
            name n ref Node 0 0
            const redir (32) int 6 0
ecom to: 
name fd ref Sys->FD 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b72 big 0 0
    const (64) int 6 0
ecom: 
name wlist list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b72 big 0 0
    const (72) int 6 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
* ref Redir 8 0
  + int 15 0
    name .b72 big 0 0
    const (80) int 6 0
ecom: 
= list of Redirword 10 2
  * list of Redirword 8 0
    name redirs ref Redirlist 0 0
  :: list of Redirword 10 2
    tuple Redirword 10 2
      seq no type 10 2
        name fd ref Sys->FD 0 0
        seq no type 10 2
          name nil polymorphic type 1 0
          seq no type 10 2
            tuple (int, int, int) 10 2
              seq no type 10 2
                * int 10 1
                  * ref Redir 8 0
                    + int 15 1
                      name n ref Node 0 0
                      const redir (32) int 6 0
                seq no type 10 1
                  * int 8 0
                    name fd ref Sys->FD 0 0
                  seq no type 10 1
                    const (-1) int 6 0
    * list of Redirword 8 0
      name redirs ref Redirlist 0 0
ecom: 
:: list of Redirword 10 2
  tuple Redirword 10 2
    seq no type 10 2
      name fd ref Sys->FD 0 0
      seq no type 10 2
        name nil polymorphic type 1 0
        seq no type 10 2
          tuple (int, int, int) 10 2
            seq no type 10 2
              * int 10 1
                * ref Redir 8 0
                  + int 15 1
                    name n ref Node 0 0
                    const redir (32) int 6 0
              seq no type 10 1
                * int 8 0
                  name fd ref Sys->FD 0 0
                seq no type 10 1
                  const (-1) int 6 0
  * list of Redirword 8 0
    name redirs ref Redirlist 0 0
ecom to: 
* list of Redirword 8 0
  name redirs ref Redirlist 0 0
eacom: 
tuple Redirword 10 2
  seq no type 10 2
    name fd ref Sys->FD 0 0
    seq no type 10 2
      name nil polymorphic type 1 0
      seq no type 10 2
        tuple (int, int, int) 10 2
          seq no type 10 2
            * int 10 1
              * ref Redir 8 0
                + int 15 1
                  name n ref Node 0 0
                  const redir (32) int 6 0
            seq no type 10 1
              * int 8 0
                name fd ref Sys->FD 0 0
              seq no type 10 1
                const (-1) int 6 0
generate desc for Redirword
ecom: 
tuple Redirword 10 2
  seq no type 10 2
    name fd ref Sys->FD 0 0
    seq no type 10 2
      name nil polymorphic type 1 0
      seq no type 10 2
        tuple (int, int, int) 10 2
          seq no type 10 2
            * int 10 1
              * ref Redir 8 0
                + int 15 1
                  name n ref Node 0 0
                  const redir (32) int 6 0
            seq no type 10 1
              * int 8 0
                name fd ref Sys->FD 0 0
              seq no type 10 1
                const (-1) int 6 0
ecom to: 
name .b74 Redirword 0 0
ecom: 
name fd ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 0 0
  + int 13 1
    adr int 13 1
      name .b74 Redirword 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b74 Redirword 0 0
    const (8) int 6 0
ecom: 
tuple (int, int, int) 10 2
  seq no type 10 2
    * int 10 1
      * ref Redir 8 0
        + int 15 1
          name n ref Node 0 0
          const redir (32) int 6 0
    seq no type 10 1
      * int 8 0
        name fd ref Sys->FD 0 0
      seq no type 10 1
        const (-1) int 6 0
ecom to: 
* Redir 0 0
  + int 13 1
    adr int 13 1
      name .b74 Redirword 0 0
    const (16) int 6 0
ecom: 
* int 10 1
  * ref Redir 8 0
    + int 15 1
      name n ref Node 0 0
      const redir (32) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      * Redir 0 0
        + int 13 1
          adr int 13 1
            name .b74 Redirword 0 0
          const (16) int 6 0
    const (0) int 6 0
eacom: 
* int 10 1
  * ref Redir 8 0
    + int 15 1
      name n ref Node 0 0
      const redir (32) int 6 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .t70 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .t70 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .t70 ref Redir 0 0
ecom: 
* int 8 0
  name fd ref Sys->FD 0 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      * Redir 0 0
        + int 13 1
          adr int 13 1
            name .b74 Redirword 0 0
          const (16) int 6 0
    const (4) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      * Redir 0 0
        + int 13 1
          adr int 13 1
            name .b74 Redirword 0 0
          const (16) int 6 0
    const (8) int 6 0
generate desc for Redirword
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 0 0
    adr int 13 1
      name .b74 Redirword 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 0 0
  adr int 13 1
    name .b74 Redirword 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b74 Redirword 0 0
      const w (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b74 Redirword 0 0
    const w (8) int 6 0
ecom: 
= list of ref Listnode 10 1
  name nlist list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    ref ref Listnode 10 1
      tuple Listnode 10 1
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            + string 10 1
              const /fd/ string 1 0
              cast string 10 1
                * int 8 0
                  name fd ref Sys->FD 0 0
    name nil polymorphic type 1 0
ecom: 
:: list of ref Listnode 10 1
  ref ref Listnode 10 1
    tuple Listnode 10 1
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          + string 10 1
            const /fd/ string 1 0
            cast string 10 1
              * int 8 0
                name fd ref Sys->FD 0 0
  name nil polymorphic type 1 0
ecom to: 
name nlist list of ref Listnode 0 0
eacom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        + string 10 1
          const /fd/ string 1 0
          cast string 10 1
            * int 8 0
              name fd ref Sys->FD 0 0
ecom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        + string 10 1
          const /fd/ string 1 0
          cast string 10 1
            * int 8 0
              name fd ref Sys->FD 0 0
ecom to: 
name .t70 ref Listnode 0 0
generate desc for Listnode
ecom: 
tuple Listnode 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      + string 10 1
        const /fd/ string 1 0
        cast string 10 1
          * int 8 0
            name fd ref Sys->FD 0 0
ecom to: 
* Listnode 8 0
  name .t70 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t70 ref Listnode 0 0
    const (0) int 6 0
ecom: 
+ string 10 1
  const /fd/ string 1 0
  cast string 10 1
    * int 8 0
      name fd ref Sys->FD 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t70 ref Listnode 0 0
    const (8) int 6 0
eacom: 
cast string 10 1
  * int 8 0
    name fd ref Sys->FD 0 0
ecom: 
cast string 10 1
  * int 8 0
    name fd ref Sys->FD 0 0
ecom to: 
name .t69 string 0 0
ecom: 
= string 10 1
  name .t69 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t69 string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t69 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t70 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t70 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t69 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t69 list of ref Listnode 0 0
ecom: 
= ref Sys->FD 10 1
  name fd ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name fd ref Sys->FD 0 0
ecom: 
= list of Redirword 10 2
  * list of Redirword 8 0
    name redirs ref Redirlist 0 0
  :: list of Redirword 10 2
    tuple Redirword 10 2
      seq no type 10 2
        name nil polymorphic type 1 0
        seq no type 10 2
          * string 10 1
            + int 10 1
              hd ref Listnode 10 1
                name wlist list of ref Listnode 0 0
              const word (8) int 6 0
          seq no type 10 1
            * Redir 10 1
              * ref Redir 8 0
                + int 15 1
                  name n ref Node 0 0
                  const redir (32) int 6 0
    * list of Redirword 8 0
      name redirs ref Redirlist 0 0
ecom: 
:: list of Redirword 10 2
  tuple Redirword 10 2
    seq no type 10 2
      name nil polymorphic type 1 0
      seq no type 10 2
        * string 10 1
          + int 10 1
            hd ref Listnode 10 1
              name wlist list of ref Listnode 0 0
            const word (8) int 6 0
        seq no type 10 1
          * Redir 10 1
            * ref Redir 8 0
              + int 15 1
                name n ref Node 0 0
                const redir (32) int 6 0
  * list of Redirword 8 0
    name redirs ref Redirlist 0 0
ecom to: 
* list of Redirword 8 0
  name redirs ref Redirlist 0 0
eacom: 
tuple Redirword 10 2
  seq no type 10 2
    name nil polymorphic type 1 0
    seq no type 10 2
      * string 10 1
        + int 10 1
          hd ref Listnode 10 1
            name wlist list of ref Listnode 0 0
          const word (8) int 6 0
      seq no type 10 1
        * Redir 10 1
          * ref Redir 8 0
            + int 15 1
              name n ref Node 0 0
              const redir (32) int 6 0
generate desc for Redirword
ecom: 
tuple Redirword 10 2
  seq no type 10 2
    name nil polymorphic type 1 0
    seq no type 10 2
      * string 10 1
        + int 10 1
          hd ref Listnode 10 1
            name wlist list of ref Listnode 0 0
          const word (8) int 6 0
      seq no type 10 1
        * Redir 10 1
          * ref Redir 8 0
            + int 15 1
              name n ref Node 0 0
              const redir (32) int 6 0
ecom to: 
name .b74 Redirword 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Sys->FD 0 0
  + int 13 1
    adr int 13 1
      name .b74 Redirword 0 0
    const (0) int 6 0
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name wlist list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b74 Redirword 0 0
    const (8) int 6 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name wlist list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name wlist list of ref Listnode 0 0
ecom to: 
name .t70 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t70 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t70 ref Listnode 0 0
ecom: 
* Redir 10 1
  * ref Redir 8 0
    + int 15 1
      name n ref Node 0 0
      const redir (32) int 6 0
ecom to: 
* Redir 0 0
  + int 13 1
    adr int 13 1
      name .b74 Redirword 0 0
    const (16) int 6 0
eacom: 
* Redir 10 1
  * ref Redir 8 0
    + int 15 1
      name n ref Node 0 0
      const redir (32) int 6 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .t70 ref Redir 0 0
generate desc for Redir
ecom: 
= ref Redir 10 1
  name .t70 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .t70 ref Redir 0 0
generate desc for Redirword
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 0 0
    adr int 13 1
      name .b74 Redirword 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 0 0
  adr int 13 1
    name .b74 Redirword 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b74 Redirword 0 0
      const w (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b74 Redirword 0 0
    const w (8) int 6 0
ecom: 
= list of ref Listnode 10 1
  name wlist list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name wlist list of ref Listnode 0 0
ecom: 
= list of Redirword 10 1
  * list of Redirword 8 0
    name redirs ref Redirlist 0 0
  :: list of Redirword 10 1
    tuple Redirword 10 1
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          const  string 1 0
          seq no type 10 1
            * Redir 10 1
              * ref Redir 8 0
                + int 15 1
                  name n ref Node 0 0
                  const redir (32) int 6 0
    * list of Redirword 8 0
      name redirs ref Redirlist 0 0
ecom: 
:: list of Redirword 10 1
  tuple Redirword 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        const  string 1 0
        seq no type 10 1
          * Redir 10 1
            * ref Redir 8 0
              + int 15 1
                name n ref Node 0 0
                const redir (32) int 6 0
  * list of Redirword 8 0
    name redirs ref Redirlist 0 0
ecom to: 
* list of Redirword 8 0
  name redirs ref Redirlist 0 0
eacom: 
tuple Redirword 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      const  string 1 0
      seq no type 10 1
        * Redir 10 1
          * ref Redir 8 0
            + int 15 1
              name n ref Node 0 0
              const redir (32) int 6 0
generate desc for Redirword
ecom: 
tuple Redirword 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      const  string 1 0
      seq no type 10 1
        * Redir 10 1
          * ref Redir 8 0
            + int 15 1
              name n ref Node 0 0
              const redir (32) int 6 0
ecom to: 
name .b74 Redirword 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Sys->FD 0 0
  + int 13 1
    adr int 13 1
      name .b74 Redirword 0 0
    const (0) int 6 0
ecom: 
const  string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b74 Redirword 0 0
    const (8) int 6 0
ecom: 
* Redir 10 1
  * ref Redir 8 0
    + int 15 1
      name n ref Node 0 0
      const redir (32) int 6 0
ecom to: 
* Redir 0 0
  + int 13 1
    adr int 13 1
      name .b74 Redirword 0 0
    const (16) int 6 0
eacom: 
* Redir 10 1
  * ref Redir 8 0
    + int 15 1
      name n ref Node 0 0
      const redir (32) int 6 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .t70 ref Redir 0 0
generate desc for Redir
ecom: 
= ref Redir 10 1
  name .t70 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .t70 ref Redir 0 0
generate desc for Redirword
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 0 0
    adr int 13 1
      name .b74 Redirword 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 0 0
  adr int 13 1
    name .b74 Redirword 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b74 Redirword 0 0
      const w (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b74 Redirword 0 0
    const w (8) int 6 0
ecom: 
= list of ref Listnode 10 2
  name nlist list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
        seq no type 10 1
          name redirs ref Redirlist 0 0
          seq no type 10 1
            name nil list of ref Listnode 1 0
ecom: 
call list of ref Listnode 10 2
  name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
      seq no type 10 1
        name redirs ref Redirlist 0 0
        seq no type 10 1
          name nil list of ref Listnode 1 0
ecom to: 
name nlist list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b72 big 0 0
    const (64) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b72 big 0 0
    const (72) int 6 0
ecom: 
name redirs ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b72 big 0 0
    const (80) int 6 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b72 big 0 0
    const (88) int 6 0
ecom: 
= list of ref Listnode 10 3
  name nlist list of ref Listnode 0 0
  call list of ref Listnode 10 3
    name concat fn(ctxt: ref Context, nl1: list of ref Listnode, nl2: list of ref Listnode): list of ref Listnode 11 1
    seq no type 10 3
      name ctxt ref Context 0 0
      seq no type 10 3
        call list of ref Listnode 10 2
          name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
          seq no type 10 1
            name ctxt ref Context 0 0
            seq no type 10 1
              * ref Node 8 0
                + int 15 1
                  name n ref Node 0 0
                  const left (8) int 6 0
              seq no type 10 1
                name redirs ref Redirlist 0 0
                seq no type 10 1
                  name nil list of ref Listnode 1 0
        seq no type 10 2
          call list of ref Listnode 10 2
            name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
            seq no type 10 1
              name ctxt ref Context 0 0
              seq no type 10 1
                * ref Node 8 0
                  + int 15 1
                    name n ref Node 0 0
                    const right (16) int 6 0
                seq no type 10 1
                  name redirs ref Redirlist 0 0
                  seq no type 10 1
                    name nil list of ref Listnode 1 0
ecom: 
call list of ref Listnode 10 3
  name concat fn(ctxt: ref Context, nl1: list of ref Listnode, nl2: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 3
    name ctxt ref Context 0 0
    seq no type 10 3
      call list of ref Listnode 10 2
        name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
        seq no type 10 1
          name ctxt ref Context 0 0
          seq no type 10 1
            * ref Node 8 0
              + int 15 1
                name n ref Node 0 0
                const left (8) int 6 0
            seq no type 10 1
              name redirs ref Redirlist 0 0
              seq no type 10 1
                name nil list of ref Listnode 1 0
      seq no type 10 2
        call list of ref Listnode 10 2
          name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
          seq no type 10 1
            name ctxt ref Context 0 0
            seq no type 10 1
              * ref Node 8 0
                + int 15 1
                  name n ref Node 0 0
                  const right (16) int 6 0
              seq no type 10 1
                name redirs ref Redirlist 0 0
                seq no type 10 1
                  name nil list of ref Listnode 1 0
ecom to: 
name nlist list of ref Listnode 0 0
generate desc for big
ecom: 
call list of ref Listnode 10 2
  name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
      seq no type 10 1
        name redirs ref Redirlist 0 0
        seq no type 10 1
          name nil list of ref Listnode 1 0
ecom to: 
name .t70 list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b71 big 0 0
    const (64) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b71 big 0 0
    const (72) int 6 0
ecom: 
name redirs ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b71 big 0 0
    const (80) int 6 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b71 big 0 0
    const (88) int 6 0
ecom: 
call list of ref Listnode 10 2
  name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const right (16) int 6 0
      seq no type 10 1
        name redirs ref Redirlist 0 0
        seq no type 10 1
          name nil list of ref Listnode 1 0
ecom to: 
name .t69 list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b71 big 0 0
    const (64) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b71 big 0 0
    const (72) int 6 0
ecom: 
name redirs ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b71 big 0 0
    const (80) int 6 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b71 big 0 0
    const (88) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b72 big 0 0
    const (64) int 6 0
ecom: 
name .t70 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b72 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t70 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t70 list of ref Listnode 0 0
ecom: 
name .t69 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b72 big 0 0
    const (80) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t69 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t69 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 2
  name arg list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
    seq no type 10 2
      name ctxt ref Context 0 0
      seq no type 10 2
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
        seq no type 10 2
          ref ref Redirlist 10 1
            tuple Redirlist 10 1
              seq no type 10 1
                name nil polymorphic type 1 0
          seq no type 10 1
            name nil list of ref Listnode 1 0
ecom: 
call list of ref Listnode 10 2
  name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
      seq no type 10 2
        ref ref Redirlist 10 1
          tuple Redirlist 10 1
            seq no type 10 1
              name nil polymorphic type 1 0
        seq no type 10 1
          name nil list of ref Listnode 1 0
ecom to: 
name arg list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b72 big 0 0
    const (64) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b72 big 0 0
    const (72) int 6 0
ecom: 
ref ref Redirlist 10 1
  tuple Redirlist 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b72 big 0 0
    const (80) int 6 0
generate desc for Redirlist
ecom: 
tuple Redirlist 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
ecom to: 
* Redirlist 8 0
  name .t70 ref Redirlist 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* list of Redirword 8 0
  + int 15 1
    adr int 15 1
      * Redirlist 8 0
        name .t70 ref Redirlist 0 0
    const (0) int 6 0
ecom: 
= ref Redirlist 10 1
  name .t70 ref Redirlist 0 0
  name nil ref Redirlist 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name .t70 ref Redirlist 0 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b72 big 0 0
    const (88) int 6 0
eacom: 
len int 10 1
  name arg list of ref Listnode 0 0
ecom: 
len int 10 1
  name arg list of ref Listnode 0 0
ecom to: 
name .t73 int 0 0
eacom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name arg list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name arg list of ref Listnode 0 0
ecom to: 
name .t70 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t70 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t70 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 2
  name nlist list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name subsbuiltin fn(ctxt: ref Context, n: ref Node): list of ref Listnode 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        * ref Node 10 1
          + int 10 1
            * ref Node 10 1
              hd ref Listnode 10 1
                name arg list of ref Listnode 0 0
            const left (8) int 6 0
ecom: 
call list of ref Listnode 10 2
  name subsbuiltin fn(ctxt: ref Context, n: ref Node): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * ref Node 10 1
        + int 10 1
          * ref Node 10 1
            hd ref Listnode 10 1
              name arg list of ref Listnode 0 0
          const left (8) int 6 0
ecom to: 
name nlist list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b72 big 0 0
    const (64) int 6 0
ecom: 
* ref Node 10 1
  + int 10 1
    * ref Node 10 1
      hd ref Listnode 10 1
        name arg list of ref Listnode 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b72 big 0 0
    const (72) int 6 0
eacom: 
* ref Node 10 1
  + int 10 1
    * ref Node 10 1
      hd ref Listnode 10 1
        name arg list of ref Listnode 0 0
    const left (8) int 6 0
ecom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name arg list of ref Listnode 0 0
ecom to: 
name .t70 ref Node 0 0
eacom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name arg list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name arg list of ref Listnode 0 0
ecom to: 
name .t70 ref Listnode 0 0
ecom: 
= ref Node 10 1
  name .t70 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t70 ref Node 0 0
eacom: 
len int 10 1
  name arg list of ref Listnode 0 0
ecom: 
len int 10 1
  name arg list of ref Listnode 0 0
ecom to: 
name .t73 int 0 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name arg list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name arg list of ref Listnode 0 0
ecom to: 
name .t70 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t70 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t70 ref Listnode 0 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const bad $ arg string 1 0
      seq no type 10 1
        const sh: bad variable name string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b72 big 0 0
    const (64) int 6 0
ecom: 
const bad $ arg string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b72 big 0 0
    const (72) int 6 0
ecom: 
const sh: bad variable name string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b72 big 0 0
    const (80) int 6 0
ecom: 
= list of ref Listnode 10 2
  name nlist list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
    seq nothing 10 2
      name ctxt ref Context 0 0
      seq no type 10 2
        call string 10 2
          name deglob fn(s: string): string 11 1
          seq no type 10 1
            * string 10 1
              + int 10 1
                hd ref Listnode 10 1
                  name arg list of ref Listnode 0 0
                const word (8) int 6 0
ecom: 
call list of ref Listnode 10 2
  name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
  seq nothing 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      call string 10 2
        name deglob fn(s: string): string 11 1
        seq no type 10 1
          * string 10 1
            + int 10 1
              hd ref Listnode 10 1
                name arg list of ref Listnode 0 0
              const word (8) int 6 0
ecom to: 
name nlist list of ref Listnode 0 0
generate desc for big
ecom: 
call string 10 2
  name deglob fn(s: string): string 11 1
  seq no type 10 1
    * string 10 1
      + int 10 1
        hd ref Listnode 10 1
          name arg list of ref Listnode 0 0
        const word (8) int 6 0
ecom to: 
name .t70 string 0 0
generate desc for big
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name arg list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b71 big 0 0
    const (64) int 6 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name arg list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name arg list of ref Listnode 0 0
ecom to: 
name .t69 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t69 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t69 ref Listnode 0 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b72 big 0 0
    const (64) int 6 0
ecom: 
name .t70 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b72 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t70 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t70 string 0 0
ecom: 
= list of ref Listnode 10 1
  name nlist list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    ref ref Listnode 10 1
      tuple Listnode 10 1
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            cast string 10 1
              len int 10 1
                name nlist list of ref Listnode 0 0
    name nil polymorphic type 1 0
ecom: 
:: list of ref Listnode 10 1
  ref ref Listnode 10 1
    tuple Listnode 10 1
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          cast string 10 1
            len int 10 1
              name nlist list of ref Listnode 0 0
  name nil polymorphic type 1 0
ecom to: 
name nlist list of ref Listnode 0 0
eacom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        cast string 10 1
          len int 10 1
            name nlist list of ref Listnode 0 0
ecom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        cast string 10 1
          len int 10 1
            name nlist list of ref Listnode 0 0
ecom to: 
name .t70 ref Listnode 0 0
generate desc for Listnode
ecom: 
tuple Listnode 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      cast string 10 1
        len int 10 1
          name nlist list of ref Listnode 0 0
ecom to: 
* Listnode 8 0
  name .t70 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t70 ref Listnode 0 0
    const (0) int 6 0
ecom: 
cast string 10 1
  len int 10 1
    name nlist list of ref Listnode 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t70 ref Listnode 0 0
    const (8) int 6 0
eacom: 
len int 10 1
  name nlist list of ref Listnode 0 0
ecom: 
len int 10 1
  name nlist list of ref Listnode 0 0
ecom to: 
name .t73 int 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t69 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t70 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t70 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t69 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t69 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 2
  name nlist list of ref Listnode 0 0
  :: list of ref Listnode 10 2
    ref ref Listnode 10 2
      tuple Listnode 10 2
        seq no type 10 2
          name nil polymorphic type 1 0
          seq no type 10 2
            call string 10 2
              name squash fn(l: list of string, sep: string): string 11 1
              seq no type 10 2
                call list of string 10 2
                  name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
                  seq no type 10 1
                    name nlist list of ref Listnode 0 0
                seq no type 10 1
                  const   string 1 0
    name nil polymorphic type 1 0
ecom: 
:: list of ref Listnode 10 2
  ref ref Listnode 10 2
    tuple Listnode 10 2
      seq no type 10 2
        name nil polymorphic type 1 0
        seq no type 10 2
          call string 10 2
            name squash fn(l: list of string, sep: string): string 11 1
            seq no type 10 2
              call list of string 10 2
                name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
                seq no type 10 1
                  name nlist list of ref Listnode 0 0
              seq no type 10 1
                const   string 1 0
  name nil polymorphic type 1 0
ecom to: 
name nlist list of ref Listnode 0 0
eacom: 
ref ref Listnode 10 2
  tuple Listnode 10 2
    seq no type 10 2
      name nil polymorphic type 1 0
      seq no type 10 2
        call string 10 2
          name squash fn(l: list of string, sep: string): string 11 1
          seq no type 10 2
            call list of string 10 2
              name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
              seq no type 10 1
                name nlist list of ref Listnode 0 0
            seq no type 10 1
              const   string 1 0
ecom: 
ref ref Listnode 10 2
  tuple Listnode 10 2
    seq no type 10 2
      name nil polymorphic type 1 0
      seq no type 10 2
        call string 10 2
          name squash fn(l: list of string, sep: string): string 11 1
          seq no type 10 2
            call list of string 10 2
              name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
              seq no type 10 1
                name nlist list of ref Listnode 0 0
            seq no type 10 1
              const   string 1 0
ecom to: 
name .t70 ref Listnode 0 0
generate desc for Listnode
ecom: 
tuple Listnode 10 2
  seq no type 10 2
    name nil polymorphic type 1 0
    seq no type 10 2
      call string 10 2
        name squash fn(l: list of string, sep: string): string 11 1
        seq no type 10 2
          call list of string 10 2
            name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
            seq no type 10 1
              name nlist list of ref Listnode 0 0
          seq no type 10 1
            const   string 1 0
ecom to: 
* Listnode 8 0
  name .t70 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t70 ref Listnode 0 0
    const (0) int 6 0
ecom: 
call string 10 2
  name squash fn(l: list of string, sep: string): string 11 1
  seq no type 10 2
    call list of string 10 2
      name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
      seq no type 10 1
        name nlist list of ref Listnode 0 0
    seq no type 10 1
      const   string 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t70 ref Listnode 0 0
    const (8) int 6 0
generate desc for big
ecom: 
call list of string 10 2
  name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
  seq no type 10 1
    name nlist list of ref Listnode 0 0
ecom to: 
name .t69 list of string 0 0
generate desc for big
ecom: 
name nlist list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b71 big 0 0
    const (64) int 6 0
ecom: 
name .t69 list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b72 big 0 0
    const (64) int 6 0
ecom: 
= list of string 10 1
  name .t69 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t69 list of string 0 0
ecom: 
const   string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b72 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t69 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t70 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t70 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t69 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t69 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name arg list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name arg list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 2
  name arg list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
    seq no type 10 2
      name ctxt ref Context 0 0
      seq no type 10 2
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
        seq no type 10 2
          ref ref Redirlist 10 1
            tuple Redirlist 10 1
              seq no type 10 1
                name nil polymorphic type 1 0
          seq no type 10 1
            name nil list of ref Listnode 1 0
ecom: 
call list of ref Listnode 10 2
  name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
      seq no type 10 2
        ref ref Redirlist 10 1
          tuple Redirlist 10 1
            seq no type 10 1
              name nil polymorphic type 1 0
        seq no type 10 1
          name nil list of ref Listnode 1 0
ecom to: 
name arg list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b72 big 0 0
    const (64) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b72 big 0 0
    const (72) int 6 0
ecom: 
ref ref Redirlist 10 1
  tuple Redirlist 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b72 big 0 0
    const (80) int 6 0
generate desc for Redirlist
ecom: 
tuple Redirlist 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
ecom to: 
* Redirlist 8 0
  name .t70 ref Redirlist 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* list of Redirword 8 0
  + int 15 1
    adr int 15 1
      * Redirlist 8 0
        name .t70 ref Redirlist 0 0
    const (0) int 6 0
ecom: 
= ref Redirlist 10 1
  name .t70 ref Redirlist 0 0
  name nil ref Redirlist 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name .t70 ref Redirlist 0 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b72 big 0 0
    const (88) int 6 0
ecom: 
= string 10 1
  name seps string 0 0
    name arg list of ref Listnode 0 0
  const  string 1 0
ecom: 
const  string 1 0
ecom to: 
name seps string 0 0
  name arg list of ref Listnode 0 0
ecom: 
= string 10 2
  name seps string 0 0
  call string 10 2
    name squash fn(l: list of string, sep: string): string 11 1
    seq no type 10 2
      call list of string 10 2
        name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
        seq no type 10 2
          call list of ref Listnode 10 2
            name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
            seq nothing 10 1
              name ctxt ref Context 0 0
              seq no type 10 1
                const ifs string 1 0
      seq no type 10 1
        const  string 1 0
ecom: 
call string 10 2
  name squash fn(l: list of string, sep: string): string 11 1
  seq no type 10 2
    call list of string 10 2
      name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
      seq no type 10 2
        call list of ref Listnode 10 2
          name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
          seq nothing 10 1
            name ctxt ref Context 0 0
            seq no type 10 1
              const ifs string 1 0
    seq no type 10 1
      const  string 1 0
ecom to: 
name seps string 0 0
generate desc for big
ecom: 
call list of string 10 2
  name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
  seq no type 10 2
    call list of ref Listnode 10 2
      name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
      seq nothing 10 1
        name ctxt ref Context 0 0
        seq no type 10 1
          const ifs string 1 0
ecom to: 
name .t70 list of string 0 0
generate desc for big
ecom: 
call list of ref Listnode 10 2
  name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const ifs string 1 0
ecom to: 
name .t69 list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b75 big 0 0
    const (64) int 6 0
ecom: 
const ifs string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b75 big 0 0
    const (72) int 6 0
ecom: 
name .t69 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b71 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t69 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t69 list of ref Listnode 0 0
ecom: 
name .t70 list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b72 big 0 0
    const (64) int 6 0
ecom: 
= list of string 10 1
  name .t70 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t70 list of string 0 0
ecom: 
const  string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b72 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name seps string 0 0
  const  	

 string 1 0
ecom: 
const  	

 string 1 0
ecom to: 
name seps string 0 0
ecom: 
= (list of ref Listnode, string) 10 2
  tuple (list of ref Listnode, string) 10 1
    seq no type 10 1
      name nlist list of ref Listnode 0 0
      seq no type 10 1
        name nil polymorphic type 1 0
  call (list of ref Listnode, string) 10 2
    name bq fn(ctxt: ref Context, cmd: list of ref Listnode, seps: string): (list of ref Listnode, string) 11 1
    seq no type 10 2
      name ctxt ref Context 0 0
      seq no type 10 2
        call list of ref Listnode 10 2
          name glob fn(nl: list of ref Listnode): list of ref Listnode 11 1
          seq no type 10 1
            name arg list of ref Listnode 0 0
        seq no type 10 1
          name seps string 0 0
generate desc for (list of ref Listnode, string)
descmap adt offset 0
descmap offset 0
descmap t0 type list of ref Listnode offset 0 (d->offset=0 start=0) returns 0
descmap t1 type string offset 8 (d->offset=8 start=0) returns 8
generate desc for (list of ref Listnode, string)
	desc	$-1,16,"c0"
ecom: 
call (list of ref Listnode, string) 10 2
  name bq fn(ctxt: ref Context, cmd: list of ref Listnode, seps: string): (list of ref Listnode, string) 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      call list of ref Listnode 10 2
        name glob fn(nl: list of ref Listnode): list of ref Listnode 11 1
        seq no type 10 1
          name arg list of ref Listnode 0 0
      seq no type 10 1
        name seps string 0 0
ecom to: 
name .b76 (list of ref Listnode, string) 0 0
generate desc for big
ecom: 
call list of ref Listnode 10 2
  name glob fn(nl: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name arg list of ref Listnode 0 0
ecom to: 
name .t70 list of ref Listnode 0 0
generate desc for big
ecom: 
name arg list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b72 big 0 0
    const (64) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b75 big 0 0
    const (64) int 6 0
ecom: 
name .t70 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b75 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t70 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t70 list of ref Listnode 0 0
ecom: 
name seps string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b75 big 0 0
    const (80) int 6 0
ecom: 
= list of ref Listnode 10 1
  * list of ref Listnode 0 0
    adr int 13 1
      name .b76 (list of ref Listnode, string) 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 0 0
  adr int 13 1
    name .b76 (list of ref Listnode, string) 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b76 (list of ref Listnode, string) 0 0
      const t1 (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b76 (list of ref Listnode, string) 0 0
    const t1 (8) int 6 0
ecom: 
= string 10 1
  name seps string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name seps string 0 0
ecom: 
= list of ref Listnode 10 1
  name arg list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name arg list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name nlist list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    ref ref Listnode 10 1
      tuple Listnode 10 1
        seq no type 10 1
          name n ref Node 0 0
          seq no type 10 1
            const  string 1 0
    name nil polymorphic type 1 0
ecom: 
:: list of ref Listnode 10 1
  ref ref Listnode 10 1
    tuple Listnode 10 1
      seq no type 10 1
        name n ref Node 0 0
        seq no type 10 1
          const  string 1 0
  name nil polymorphic type 1 0
ecom to: 
name nlist list of ref Listnode 0 0
eacom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name n ref Node 0 0
      seq no type 10 1
        const  string 1 0
ecom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name n ref Node 0 0
      seq no type 10 1
        const  string 1 0
ecom to: 
name .t70 ref Listnode 0 0
generate desc for Listnode
ecom: 
tuple Listnode 10 1
  seq no type 10 1
    name n ref Node 0 0
    seq no type 10 1
      const  string 1 0
ecom to: 
* Listnode 8 0
  name .t70 ref Listnode 0 0
ecom: 
name n ref Node 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t70 ref Listnode 0 0
    const (0) int 6 0
ecom: 
const  string 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t70 ref Listnode 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t69 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t70 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t70 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t69 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t69 list of ref Listnode 0 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const bad assign string 1 0
      seq no type 10 1
        const sh: assignment in invalid context string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b75 big 0 0
    const (64) int 6 0
ecom: 
const bad assign string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b75 big 0 0
    const (72) int 6 0
ecom: 
const sh: assignment in invalid context string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b75 big 0 0
    const (80) int 6 0
ecom: 
call no type 10 2
  name panic fn(s: string) 11 1
  seq no type 10 1
    + string 10 1
      + string 10 1
        const bad node type  string 1 0
        cast string 10 1
          * int 8 0
            name n ref Node 0 0
      const  in glomop string 1 0
generate desc for big
ecom: 
+ string 10 1
  + string 10 1
    const bad node type  string 1 0
    cast string 10 1
      * int 8 0
        name n ref Node 0 0
  const  in glomop string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b75 big 0 0
    const (64) int 6 0
ecom: 
+ string 10 1
  const bad node type  string 1 0
  cast string 10 1
    * int 8 0
      name n ref Node 0 0
ecom to: 
name .t70 string 0 0
eacom: 
cast string 10 1
  * int 8 0
    name n ref Node 0 0
ecom: 
cast string 10 1
  * int 8 0
    name n ref Node 0 0
ecom to: 
name .t70 string 0 0
ecom: 
= string 10 1
  name .t70 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t70 string 0 0
ecom: 
name nlist list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
fn: glomoperation
64: argument ctxt ref Context ref 15
72: argument n ref Node ref 17
80: argument redirs ref Redirlist ref 9
88: local .t73 int ref 1
96: local .b72 big ref 13
104: local nlist list of ref Listnode ref 13
112: local arg list of ref Listnode ref 7
120: local .b71 big ref 6
128: local seps string ref 5
136: local wlist list of ref Listnode ref 5
144: local .b75 big ref 4
152: local fd ref Sys->FD ref 4
160: local .b74 Redirword ref 3
192: local arg list of ref Listnode ref 2
200: local .t69 ref Listnode ref 1
208: local .t70 list of ref Listnode ref 1
216: local .b76 (list of ref Listnode, string) ref 1
generate desc for glomoperation
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap n type ref Node offset 72 (d->offset=72 start=0) returns 72
descmap redirs type ref Redirlist offset 80 (d->offset=80 start=0) returns 80
descmap .t73 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b72 type big offset 96 (d->offset=96 start=0) returns -1
descmap nlist type list of ref Listnode offset 104 (d->offset=104 start=0) returns 104
descmap arg type list of ref Listnode offset 112 (d->offset=112 start=0) returns 112
descmap .b71 type big offset 120 (d->offset=120 start=0) returns -1
descmap seps type string offset 128 (d->offset=128 start=0) returns 128
descmap wlist type list of ref Listnode offset 136 (d->offset=136 start=0) returns 136
descmap .b75 type big offset 144 (d->offset=144 start=0) returns -1
descmap fd type ref Sys->FD offset 152 (d->offset=152 start=0) returns 152
descmap adt offset 160
descmap offset 160
descmap fd type ref Sys->FD offset 160 (d->offset=0 start=160) returns 160
descmap w type string offset 168 (d->offset=8 start=160) returns 168
descmap adt offset 176
descmap offset 176
descmap rtype type int offset 176 (d->offset=0 start=176) returns -1
descmap fd1 type int offset 180 (d->offset=4 start=176) returns -1
descmap fd2 type int offset 184 (d->offset=8 start=176) returns -1
descmap r type Redir offset 176 (d->offset=16 start=160) returns -1
descmap .b74 type Redirword offset 160 (d->offset=160 start=0) returns 168
descmap arg type list of ref Listnode offset 192 (d->offset=192 start=0) returns 192
descmap .t69 type ref Listnode offset 200 (d->offset=200 start=0) returns 200
descmap .t70 type list of ref Listnode offset 208 (d->offset=208 start=0) returns 208
descmap adt offset 216
descmap offset 216
descmap t0 type list of ref Listnode offset 216 (d->offset=0 start=216) returns 216
descmap t1 type string offset 224 (d->offset=8 start=216) returns 224
descmap .b76 type (list of ref Listnode, string) offset 216 (d->offset=216 start=0) returns 224
fncom: subsbuiltin 2 4186e8
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const bad $ arg string 1 0
      seq no type 10 1
        const sh: invalid argument to ${} operator string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b77 big 0 0
    const (64) int 6 0
ecom: 
const bad $ arg string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b77 big 0 0
    const (72) int 6 0
ecom: 
const sh: invalid argument to ${} operator string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b77 big 0 0
    const (80) int 6 0
ecom: 
= ref Redirlist 10 1
  name r ref Redirlist 0 0
  ref ref Redirlist 10 1
    name Redirlist Redirlist 10 1
ecom: 
ref ref Redirlist 10 1
  name Redirlist Redirlist 10 1
ecom to: 
name r ref Redirlist 0 0
generate desc for Redirlist
ecom: 
= list of ref Listnode 10 2
  name cmd list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name glob fn(nl: list of ref Listnode): list of ref Listnode 11 1
    seq no type 10 2
      call list of ref Listnode 10 2
        name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
        seq no type 10 1
          name ctxt ref Context 0 0
          seq no type 10 1
            name n ref Node 0 0
            seq no type 10 1
              name r ref Redirlist 0 0
              seq no type 10 1
                name nil list of ref Listnode 1 0
ecom: 
call list of ref Listnode 10 2
  name glob fn(nl: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 2
    call list of ref Listnode 10 2
      name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
      seq no type 10 1
        name ctxt ref Context 0 0
        seq no type 10 1
          name n ref Node 0 0
          seq no type 10 1
            name r ref Redirlist 0 0
            seq no type 10 1
              name nil list of ref Listnode 1 0
ecom to: 
name cmd list of ref Listnode 0 0
generate desc for big
ecom: 
call list of ref Listnode 10 2
  name glom fn(ctxt: ref Context, n: ref Node, redirs: ref Redirlist, onto: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name n ref Node 0 0
      seq no type 10 1
        name r ref Redirlist 0 0
        seq no type 10 1
          name nil list of ref Listnode 1 0
ecom to: 
name .t78 list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b79 big 0 0
    const (64) int 6 0
ecom: 
name n ref Node 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b79 big 0 0
    const (72) int 6 0
ecom: 
name r ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b79 big 0 0
    const (80) int 6 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b79 big 0 0
    const (88) int 6 0
ecom: 
name .t78 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b77 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t78 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t78 list of ref Listnode 0 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const bad $ arg string 1 0
      seq no type 10 1
        const sh: redirection not allowed in substitution string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b79 big 0 0
    const (64) int 6 0
ecom: 
const bad $ arg string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b79 big 0 0
    const (72) int 6 0
ecom: 
const sh: redirection not allowed in substitution string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b79 big 0 0
    const (80) int 6 0
ecom: 
= ref Redirlist 10 1
  name r ref Redirlist 0 0
  name nil polymorphic type 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name r ref Redirlist 0 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name cmd list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name cmd list of ref Listnode 0 0
ecom to: 
name .t78 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t78 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t78 ref Listnode 0 0
eacom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name cmd list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name cmd list of ref Listnode 0 0
ecom to: 
name .t78 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t78 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t78 ref Listnode 0 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const bad $ arg string 1 0
      seq no type 10 1
        const sh: bad builtin name string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b79 big 0 0
    const (64) int 6 0
ecom: 
const bad $ arg string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b79 big 0 0
    const (72) int 6 0
ecom: 
const sh: bad builtin name string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b79 big 0 0
    const (80) int 6 0
ecom: 
= (int, list of Shellbuiltin) 10 2
  tuple (int, list of Shellbuiltin) 10 1
    seq nothing 10 1
      name nil polymorphic type 1 0
      seq nothing 10 1
        name bmods list of Shellbuiltin 0 0
  call (int, list of Shellbuiltin) 10 2
    name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
    seq no type 10 2
      * ref Builtins 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
      seq no type 10 1
        * string 10 1
          + int 10 1
            hd ref Listnode 10 1
              name cmd list of ref Listnode 0 0
            const word (8) int 6 0
generate desc for (int, list of Shellbuiltin)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap t1 type list of Shellbuiltin offset 8 (d->offset=8 start=0) returns 8
generate desc for (int, list of Shellbuiltin)
	desc	$-1,16,"40"
ecom: 
call (int, list of Shellbuiltin) 10 2
  name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
  seq no type 10 2
    * ref Builtins 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
    seq no type 10 1
      * string 10 1
        + int 10 1
          hd ref Listnode 10 1
            name cmd list of ref Listnode 0 0
          const word (8) int 6 0
ecom to: 
name .b80 (int, list of Shellbuiltin) 0 0
generate desc for big
ecom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b79 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t78 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t78 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t78 ref Environment 0 0
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name cmd list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b79 big 0 0
    const (72) int 6 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name cmd list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name cmd list of ref Listnode 0 0
ecom to: 
name .t78 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t78 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t78 ref Listnode 0 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b80 (int, list of Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b80 (int, list of Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      const builtin not found string 1 0
      seq no type 10 2
        call string 10 2
          -> fn(s: string, nil: string, *): string 12 1
            name sys Sys 1 0
            name sprint nothing 11 1
          seq no type 10 1
            const sh: builtin %s not found string 1 0
            seq no type 10 1
              * string 10 1
                + int 10 1
                  hd ref Listnode 10 1
                    name cmd list of ref Listnode 0 0
                  const word (8) int 6 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, nil: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const sh: builtin %s not found string 1 0
    seq no type 10 1
      * string 10 1
        + int 10 1
          hd ref Listnode 10 1
            name cmd list of ref Listnode 0 0
          const word (8) int 6 0
ecom to: 
name .t78 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
generate desc for big
ecom: 
const sh: builtin %s not found string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b77 big 0 0
    const (64) int 6 0
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name cmd list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b77 big 0 0
    const (72) int 6 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name cmd list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name cmd list of ref Listnode 0 0
ecom to: 
name .t81 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t81 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t81 ref Listnode 0 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b79 big 0 0
    const (64) int 6 0
ecom: 
const builtin not found string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b79 big 0 0
    const (72) int 6 0
ecom: 
name .t78 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b79 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t78 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t78 string 0 0
ecom: 
call list of ref Listnode 10 2
  -> fn(c: ref Context, sh: Sh, cmd: list of ref Listnode): list of ref Listnode 12 2
    hd Shellbuiltin 10 1
      name bmods list of Shellbuiltin 0 0
    name runsbuiltin nothing 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name myself Sh 1 0
      seq no type 10 1
        name cmd list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
generate desc for big
eacom: 
hd Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom: 
hd Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom to: 
name .t81 Shellbuiltin 0 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b79 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b79 big 0 0
    const (72) int 6 0
ecom: 
name cmd list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b79 big 0 0
    const (80) int 6 0
ecom: 
= Shellbuiltin 10 1
  name .t81 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t81 Shellbuiltin 0 0
fn: subsbuiltin
64: argument ctxt ref Context ref 7
72: argument n ref Node ref 5
80: local cmd list of ref Listnode ref 7
88: local .b79 big ref 6
96: local r ref Redirlist ref 4
104: local .b77 big ref 3
112: local bmods list of Shellbuiltin ref 3
120: local .t78 list of ref Listnode ref 1
128: local .t81 ref Listnode ref 1
136: local .b80 (int, list of Shellbuiltin) ref 1
generate desc for subsbuiltin
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap n type ref Node offset 72 (d->offset=72 start=0) returns 72
descmap cmd type list of ref Listnode offset 80 (d->offset=80 start=0) returns 80
descmap .b79 type big offset 88 (d->offset=88 start=0) returns -1
descmap r type ref Redirlist offset 96 (d->offset=96 start=0) returns 96
descmap .b77 type big offset 104 (d->offset=104 start=0) returns -1
descmap bmods type list of Shellbuiltin offset 112 (d->offset=112 start=0) returns 112
descmap .t78 type list of ref Listnode offset 120 (d->offset=120 start=0) returns 120
descmap .t81 type ref Listnode offset 128 (d->offset=128 start=0) returns 128
descmap adt offset 136
descmap offset 136
descmap t0 type int offset 136 (d->offset=0 start=136) returns -1
descmap t1 type list of Shellbuiltin offset 144 (d->offset=8 start=136) returns 144
descmap .b80 type (int, list of Shellbuiltin) offset 136 (d->offset=136 start=0) returns 144
fncom: getbq 2 4187a8
ecom: 
= array of byte 10 1
  name buf array of byte 0 0
  array array of byte 10 1
    const ATOMICIO (8192) int 6 0
ecom: 
array array of byte 10 1
  const ATOMICIO (8192) int 6 0
ecom to: 
name buf array of byte 0 0
generate desc for byte
generate desc for byte
	desc	$-1,1,""
ecom: 
= int 10 1
  name buflen int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name buflen int 0 0
eacom: 
= int 10 2
  name n int 0 0
  call int 10 2
    -> fn(fd: ref Sys->FD, buf: array of byte, n: int): int 12 1
      name sys Sys 1 0
      name read nothing 11 1
    seq no type 10 2
      name fd ref Sys->FD 0 0
      seq no type 10 2
        slice array of byte 10 1
          name buf array of byte 0 0
          seq no type 10 1
            name buflen int 0 0
            nothing no type 10 1
        seq no type 10 1
          - int 10 1
            len int 10 1
              name buf array of byte 0 0
            name buflen int 0 0
ecom: 
= int 10 2
  name n int 0 0
  call int 10 2
    -> fn(fd: ref Sys->FD, buf: array of byte, n: int): int 12 1
      name sys Sys 1 0
      name read nothing 11 1
    seq no type 10 2
      name fd ref Sys->FD 0 0
      seq no type 10 2
        slice array of byte 10 1
          name buf array of byte 0 0
          seq no type 10 1
            name buflen int 0 0
            nothing no type 10 1
        seq no type 10 1
          - int 10 1
            len int 10 1
              name buf array of byte 0 0
            name buflen int 0 0
ecom to: 
name .t82 int 0 0
ecom: 
call int 10 2
  -> fn(fd: ref Sys->FD, buf: array of byte, n: int): int 12 1
    name sys Sys 1 0
    name read nothing 11 1
  seq no type 10 2
    name fd ref Sys->FD 0 0
    seq no type 10 2
      slice array of byte 10 1
        name buf array of byte 0 0
        seq no type 10 1
          name buflen int 0 0
          nothing no type 10 1
      seq no type 10 1
        - int 10 1
          len int 10 1
            name buf array of byte 0 0
          name buflen int 0 0
ecom to: 
name n int 0 0
generate desc for big
ecom: 
name fd ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b83 big 0 0
    const (64) int 6 0
ecom: 
slice array of byte 10 1
  name buf array of byte 0 0
  seq no type 10 1
    name buflen int 0 0
    nothing no type 10 1
ecom to: 
* array of byte 8 0
  + int 15 0
    name .b83 big 0 0
    const (72) int 6 0
ecom: 
len int 10 1
  name buf array of byte 0 0
ecom to: 
name .t84 int 0 0
ecom: 
name buf array of byte 0 0
ecom to: 
* array of byte 8 0
  + int 15 0
    name .b83 big 0 0
    const (72) int 6 0
ecom: 
- int 10 1
  len int 10 1
    name buf array of byte 0 0
  name buflen int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b83 big 0 0
    const (80) int 6 0
ecom: 
len int 10 1
  name buf array of byte 0 0
ecom to: 
name .t84 int 0 0
ecom: 
+= int 10 1
  name buflen int 0 0
  name n int 0 0
eacom: 
len int 10 1
  name buf array of byte 0 0
ecom: 
len int 10 1
  name buf array of byte 0 0
ecom to: 
name .t84 int 0 0
ecom: 
= array of byte 10 1
  name nbuf array of byte 0 0
  array array of byte 10 1
    * int 10 1
      name buflen int 0 0
      const (2) int 6 0
ecom: 
array array of byte 10 1
  * int 10 1
    name buflen int 0 0
    const (2) int 6 0
ecom to: 
name nbuf array of byte 0 0
eacom: 
* int 10 1
  name buflen int 0 0
  const (2) int 6 0
ecom: 
* int 10 1
  name buflen int 0 0
  const (2) int 6 0
ecom to: 
name .t84 int 0 0
generate desc for byte
ecom: 
= array of byte 10 2
  slice array of byte 10 1
    name nbuf array of byte 0 0
    seq no type 10 1
      const (0) int 6 0
      nothing no type 10 1
  slice array of byte 10 1
    name buf array of byte 0 0
    seq no type 10 1
      const (0) int 6 0
      nothing no type 10 1
eacom: 
slice array of byte 10 1
  name buf array of byte 0 0
  seq no type 10 1
    const (0) int 6 0
    nothing no type 10 1
ecom: 
slice array of byte 10 1
  name buf array of byte 0 0
  seq no type 10 1
    const (0) int 6 0
    nothing no type 10 1
ecom to: 
name .t85 array of byte 0 0
ecom: 
len int 10 1
  name buf array of byte 0 0
ecom to: 
name .t84 int 0 0
ecom: 
name buf array of byte 0 0
ecom to: 
name .t85 array of byte 0 0
ecom: 
= array of byte 10 1
  name .t85 array of byte 0 0
  name nil array of byte 1 0
ecom: 
name nil array of byte 1 0
ecom to: 
name .t85 array of byte 0 0
ecom: 
= array of byte 10 1
  name buf array of byte 0 0
  name nbuf array of byte 0 0
ecom: 
name nbuf array of byte 0 0
ecom to: 
name buf array of byte 0 0
ecom: 
= array of byte 10 1
  name nbuf array of byte 0 0
  name nil array of byte 1 0
ecom: 
name nil array of byte 1 0
ecom to: 
name nbuf array of byte 0 0
ecom: 
= (int, list of string) 10 2
  tuple (int, list of string) 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name l list of string 0 0
  call (int, list of string) 10 2
    -> fn(s: string, delim: string): (int, list of string) 12 1
      name sys Sys 1 0
      name tokenize nothing 11 1
    seq no type 10 2
      cast string 10 1
        slice array of byte 10 1
          name buf array of byte 0 0
          seq no type 10 1
            const (0) int 6 0
            name buflen int 0 0
      seq no type 10 1
        name seps string 0 0
generate desc for (int, list of string)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap t1 type list of string offset 8 (d->offset=8 start=0) returns 8
generate desc for (int, list of string)
	desc	$-1,16,"40"
ecom: 
call (int, list of string) 10 2
  -> fn(s: string, delim: string): (int, list of string) 12 1
    name sys Sys 1 0
    name tokenize nothing 11 1
  seq no type 10 2
    cast string 10 1
      slice array of byte 10 1
        name buf array of byte 0 0
        seq no type 10 1
          const (0) int 6 0
          name buflen int 0 0
    seq no type 10 1
      name seps string 0 0
ecom to: 
name .b86 (int, list of string) 0 0
generate desc for big
ecom: 
cast string 10 1
  slice array of byte 10 1
    name buf array of byte 0 0
    seq no type 10 1
      const (0) int 6 0
      name buflen int 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b83 big 0 0
    const (64) int 6 0
eacom: 
slice array of byte 10 1
  name buf array of byte 0 0
  seq no type 10 1
    const (0) int 6 0
    name buflen int 0 0
ecom: 
slice array of byte 10 1
  name buf array of byte 0 0
  seq no type 10 1
    const (0) int 6 0
    name buflen int 0 0
ecom to: 
name .t85 array of byte 0 0
ecom: 
name buf array of byte 0 0
ecom to: 
name .t85 array of byte 0 0
ecom: 
= array of byte 10 1
  name .t85 array of byte 0 0
  name nil array of byte 1 0
ecom: 
name nil array of byte 1 0
ecom to: 
name .t85 array of byte 0 0
ecom: 
name seps string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b83 big 0 0
    const (72) int 6 0
ecom: 
= list of string 10 1
  * list of string 0 0
    + int 13 1
      adr int 13 1
        name .b86 (int, list of string) 0 0
      const t1 (8) int 6 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
* list of string 0 0
  + int 13 1
    adr int 13 1
      name .b86 (int, list of string) 0 0
    const t1 (8) int 6 0
ecom: 
= list of string 10 1
  name l list of string 0 0
  :: list of string 10 1
    cast string 10 1
      slice array of byte 10 1
        name buf array of byte 0 0
        seq no type 10 1
          const (0) int 6 0
          name buflen int 0 0
    name nil polymorphic type 1 0
ecom: 
:: list of string 10 1
  cast string 10 1
    slice array of byte 10 1
      name buf array of byte 0 0
      seq no type 10 1
        const (0) int 6 0
        name buflen int 0 0
  name nil polymorphic type 1 0
ecom to: 
name l list of string 0 0
eacom: 
cast string 10 1
  slice array of byte 10 1
    name buf array of byte 0 0
    seq no type 10 1
      const (0) int 6 0
      name buflen int 0 0
ecom: 
cast string 10 1
  slice array of byte 10 1
    name buf array of byte 0 0
    seq no type 10 1
      const (0) int 6 0
      name buflen int 0 0
ecom to: 
name .t85 string 0 0
eacom: 
slice array of byte 10 1
  name buf array of byte 0 0
  seq no type 10 1
    const (0) int 6 0
    name buflen int 0 0
ecom: 
slice array of byte 10 1
  name buf array of byte 0 0
  seq no type 10 1
    const (0) int 6 0
    name buflen int 0 0
ecom to: 
name .t85 array of byte 0 0
ecom: 
name buf array of byte 0 0
ecom to: 
name .t85 array of byte 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t87 list of string 0 0
ecom: 
= string 10 1
  name .t85 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t85 string 0 0
ecom: 
= list of string 10 1
  name .t87 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t87 list of string 0 0
ecom: 
= array of byte 10 1
  name buf array of byte 0 0
  name nil polymorphic type 1 0
ecom: 
name nil array of byte 1 0
ecom to: 
name buf array of byte 0 0
ecom: 
call list of ref Listnode 10 2
  name stringlist2list fn(sl: list of string): list of ref Listnode 11 1
  seq no type 10 1
    name l list of string 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name l list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b83 big 0 0
    const (64) int 6 0
fn: getbq
64: argument <nil> ref Context ref 0
72: argument fd ref Sys->FD ref 1
80: argument seps string ref 2
88: local buflen int ref 8
92: local n int ref 2
96: local .t82 int ref 1
100: local .t84 int ref 1
104: local buf array of byte ref 9
112: local .b83 big ref 3
120: local l list of string ref 3
128: local nbuf array of byte ref 3
136: local .t85 array of byte ref 1
144: local .t87 list of string ref 1
152: local .b86 (int, list of string) ref 1
generate desc for getbq
descmap offset 0
descmap type ref Context offset 64 returns 64
descmap fd type ref Sys->FD offset 72 (d->offset=72 start=0) returns 72
descmap seps type string offset 80 (d->offset=80 start=0) returns 80
descmap buflen type int offset 88 (d->offset=88 start=0) returns -1
descmap n type int offset 92 (d->offset=92 start=0) returns -1
descmap .t82 type int offset 96 (d->offset=96 start=0) returns -1
descmap .t84 type int offset 100 (d->offset=100 start=0) returns -1
descmap buf type array of byte offset 104 (d->offset=104 start=0) returns 104
descmap .b83 type big offset 112 (d->offset=112 start=0) returns -1
descmap l type list of string offset 120 (d->offset=120 start=0) returns 120
descmap nbuf type array of byte offset 128 (d->offset=128 start=0) returns 128
descmap .t85 type array of byte offset 136 (d->offset=136 start=0) returns 136
descmap .t87 type list of string offset 144 (d->offset=144 start=0) returns 144
descmap adt offset 152
descmap offset 152
descmap t0 type int offset 152 (d->offset=0 start=152) returns -1
descmap t1 type list of string offset 160 (d->offset=8 start=152) returns 160
descmap .b86 type (int, list of string) offset 152 (d->offset=152 start=0) returns 160
fncom: bq 2 418868
ecom: 
= array of ref Sys->FD 10 1
  name fds array of ref Sys->FD 0 0
  array array of ref Sys->FD 10 1
    const (2) int 6 0
ecom: 
array array of ref Sys->FD 10 1
  const (2) int 6 0
ecom to: 
name fds array of ref Sys->FD 0 0
generate desc for ref Sys->FD
generate desc for ref Sys->FD
	desc	$-1,8,"80"
eacom: 
call int 10 2
  -> fn(fds: array of ref Sys->FD): int 12 1
    name sys Sys 1 0
    name pipe nothing 11 1
  seq no type 10 1
    name fds array of ref Sys->FD 0 0
ecom: 
call int 10 2
  -> fn(fds: array of ref Sys->FD): int 12 1
    name sys Sys 1 0
    name pipe nothing 11 1
  seq no type 10 1
    name fds array of ref Sys->FD 0 0
ecom to: 
name .t88 int 0 0
generate desc for big
ecom: 
name fds array of ref Sys->FD 0 0
ecom to: 
* array of ref Sys->FD 8 0
  + int 15 0
    name .b89 big 0 0
    const (64) int 6 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      const no pipe string 1 0
      seq no type 10 2
        call string 10 2
          -> fn(s: string, *): string 12 1
            name sys Sys 1 0
            name sprint nothing 11 1
          seq no type 10 1
            const sh: cannot make pipe: %r string 1 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const sh: cannot make pipe: %r string 1 0
ecom to: 
name .t90 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
generate desc for big
ecom: 
const sh: cannot make pipe: %r string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b91 big 0 0
    const (64) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b89 big 0 0
    const (64) int 6 0
ecom: 
const no pipe string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b89 big 0 0
    const (72) int 6 0
ecom: 
name .t90 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b89 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t90 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t90 string 0 0
ecom: 
= ref Redirlist 10 2
  name r ref Redirlist 0 0
  ref ref Redirlist 10 2
    tuple Redirlist 10 2
      seq no type 10 2
        :: list of Redirword 10 2
          tuple Redirword 10 2
            seq no type 10 2
              * ref Sys->FD 10 1
                indx big 10 1
                  name fds array of ref Sys->FD 0 0
                  const (1) int 6 0
              seq no type 10 1
                name nil polymorphic type 1 0
                seq no type 10 1
                  tuple Redir 10 1
                    seq no type 10 1
                      const OWRITE (1) int 6 0
                      seq no type 10 1
                        const (1) int 6 0
                        seq no type 10 1
                          const (-1) int 6 0
          name nil polymorphic type 1 0
ecom: 
ref ref Redirlist 10 2
  tuple Redirlist 10 2
    seq no type 10 2
      :: list of Redirword 10 2
        tuple Redirword 10 2
          seq no type 10 2
            * ref Sys->FD 10 1
              indx big 10 1
                name fds array of ref Sys->FD 0 0
                const (1) int 6 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                tuple Redir 10 1
                  seq no type 10 1
                    const OWRITE (1) int 6 0
                    seq no type 10 1
                      const (1) int 6 0
                      seq no type 10 1
                        const (-1) int 6 0
        name nil polymorphic type 1 0
ecom to: 
name r ref Redirlist 0 0
generate desc for Redirlist
ecom: 
tuple Redirlist 10 2
  seq no type 10 2
    :: list of Redirword 10 2
      tuple Redirword 10 2
        seq no type 10 2
          * ref Sys->FD 10 1
            indx big 10 1
              name fds array of ref Sys->FD 0 0
              const (1) int 6 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              tuple Redir 10 1
                seq no type 10 1
                  const OWRITE (1) int 6 0
                  seq no type 10 1
                    const (1) int 6 0
                    seq no type 10 1
                      const (-1) int 6 0
      name nil polymorphic type 1 0
ecom to: 
* Redirlist 8 0
  name .t90 ref Redirlist 0 0
ecom: 
:: list of Redirword 10 2
  tuple Redirword 10 2
    seq no type 10 2
      * ref Sys->FD 10 1
        indx big 10 1
          name fds array of ref Sys->FD 0 0
          const (1) int 6 0
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          tuple Redir 10 1
            seq no type 10 1
              const OWRITE (1) int 6 0
              seq no type 10 1
                const (1) int 6 0
                seq no type 10 1
                  const (-1) int 6 0
  name nil polymorphic type 1 0
ecom to: 
* list of Redirword 8 0
  + int 15 1
    adr int 15 1
      * Redirlist 8 0
        name .t90 ref Redirlist 0 0
    const (0) int 6 0
eacom: 
tuple Redirword 10 2
  seq no type 10 2
    * ref Sys->FD 10 1
      indx big 10 1
        name fds array of ref Sys->FD 0 0
        const (1) int 6 0
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        tuple Redir 10 1
          seq no type 10 1
            const OWRITE (1) int 6 0
            seq no type 10 1
              const (1) int 6 0
              seq no type 10 1
                const (-1) int 6 0
generate desc for Redirword
ecom: 
tuple Redirword 10 2
  seq no type 10 2
    * ref Sys->FD 10 1
      indx big 10 1
        name fds array of ref Sys->FD 0 0
        const (1) int 6 0
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        tuple Redir 10 1
          seq no type 10 1
            const OWRITE (1) int 6 0
            seq no type 10 1
              const (1) int 6 0
              seq no type 10 1
                const (-1) int 6 0
ecom to: 
name .b92 Redirword 0 0
ecom: 
* ref Sys->FD 10 1
  indx big 10 1
    name fds array of ref Sys->FD 0 0
    const (1) int 6 0
ecom to: 
* ref Sys->FD 0 0
  + int 13 1
    adr int 13 1
      name .b92 Redirword 0 0
    const (0) int 6 0
eacom: 
* ref Sys->FD 10 1
  indx big 10 1
    name fds array of ref Sys->FD 0 0
    const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name fds array of ref Sys->FD 0 0
  const (1) int 6 0
ecom to: 
name .b91 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b92 Redirword 0 0
    const (8) int 6 0
ecom: 
tuple Redir 10 1
  seq no type 10 1
    const OWRITE (1) int 6 0
    seq no type 10 1
      const (1) int 6 0
      seq no type 10 1
        const (-1) int 6 0
ecom to: 
* Redir 0 0
  + int 13 1
    adr int 13 1
      name .b92 Redirword 0 0
    const (16) int 6 0
ecom: 
const OWRITE (1) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      * Redir 0 0
        + int 13 1
          adr int 13 1
            name .b92 Redirword 0 0
          const (16) int 6 0
    const (0) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      * Redir 0 0
        + int 13 1
          adr int 13 1
            name .b92 Redirword 0 0
          const (16) int 6 0
    const (4) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      * Redir 0 0
        + int 13 1
          adr int 13 1
            name .b92 Redirword 0 0
          const (16) int 6 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t93 list of Redirword 0 0
generate desc for Redirword
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 0 0
    adr int 13 1
      name .b92 Redirword 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 0 0
  adr int 13 1
    name .b92 Redirword 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b92 Redirword 0 0
      const w (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b92 Redirword 0 0
    const w (8) int 6 0
ecom: 
= list of Redirword 10 1
  name .t93 list of Redirword 0 0
  name nil list of Redirword 1 0
ecom: 
name nil list of Redirword 1 0
ecom to: 
name .t93 list of Redirword 0 0
ecom: 
= ref Redirlist 10 1
  name .t90 ref Redirlist 0 0
  name nil ref Redirlist 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name .t90 ref Redirlist 0 0
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 10 1
    indx big 10 1
      name fds array of ref Sys->FD 0 0
      const (1) int 6 0
  name nil polymorphic type 1 0
eacom: 
* ref Sys->FD 10 1
  indx big 10 1
    name fds array of ref Sys->FD 0 0
    const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name fds array of ref Sys->FD 0 0
  const (1) int 6 0
ecom to: 
name .b91 big 0 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 8 1
  name .b91 big 0 0
ecom: 
= chan of (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
  chan chan of (int, ref Expropagate) 10 1
    const (0) int 6 0
ecom: 
chan chan of (int, ref Expropagate) 10 1
  const (0) int 6 0
ecom to: 
name startchan chan of (int, ref Expropagate) 0 0
generate desc for (int, ref Expropagate)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap t1 type ref Expropagate offset 8 (d->offset=8 start=0) returns 8
generate desc for (int, ref Expropagate)
	desc	$-1,16,"40"
ecom: 
spawn nothing 10 2
  call no type 10 2
    name runasync fn(ctxt: ref Context, copyenv: int, argv: list of ref Listnode, redirs: ref Redirlist, startchan: chan of (int, ref Expropagate)) 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        const (0) int 6 0
        seq no type 10 1
          name cmd list of ref Listnode 0 0
          seq no type 10 1
            name r ref Redirlist 0 0
            seq no type 10 1
              name startchan chan of (int, ref Expropagate) 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b91 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b91 big 0 0
    const (72) int 6 0
ecom: 
name cmd list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b91 big 0 0
    const (80) int 6 0
ecom: 
name r ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b91 big 0 0
    const (88) int 6 0
ecom: 
name startchan chan of (int, ref Expropagate) 0 0
ecom to: 
* chan of (int, ref Expropagate) 8 0
  + int 15 0
    name .b91 big 0 0
    const (96) int 6 0
ecom: 
= (int, ref Expropagate) 10 2
  tuple (int, ref Expropagate) 10 1
    seq nothing 10 1
      name exepid int 0 0
      seq nothing 10 1
        name exprop ref Expropagate 0 0
  <- (int, ref Expropagate) 10 1
    name startchan chan of (int, ref Expropagate) 0 0
ecom: 
<- (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
ecom to: 
name exepid (int, ref Expropagate) 0 0
ecom: 
= ref Redirlist 10 1
  name r ref Redirlist 0 0
  name nil polymorphic type 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name r ref Redirlist 0 0
ecom: 
= list of ref Listnode 10 2
  name bqlist list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name getbq fn(nil: ref Context, fd: ref Sys->FD, seps: string): list of ref Listnode 11 1
    seq no type 10 2
      name ctxt ref Context 0 0
      seq no type 10 2
        * ref Sys->FD 10 1
          indx big 10 1
            name fds array of ref Sys->FD 0 0
            const (0) int 6 0
        seq no type 10 1
          name seps string 0 0
ecom: 
call list of ref Listnode 10 2
  name getbq fn(nil: ref Context, fd: ref Sys->FD, seps: string): list of ref Listnode 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      * ref Sys->FD 10 1
        indx big 10 1
          name fds array of ref Sys->FD 0 0
          const (0) int 6 0
      seq no type 10 1
        name seps string 0 0
ecom to: 
name bqlist list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b91 big 0 0
    const (64) int 6 0
ecom: 
* ref Sys->FD 10 1
  indx big 10 1
    name fds array of ref Sys->FD 0 0
    const (0) int 6 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b91 big 0 0
    const (72) int 6 0
eacom: 
* ref Sys->FD 10 1
  indx big 10 1
    name fds array of ref Sys->FD 0 0
    const (0) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name fds array of ref Sys->FD 0 0
  const (0) int 6 0
ecom to: 
name .b89 big 0 0
ecom: 
name seps string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b91 big 0 0
    const (80) int 6 0
ecom: 
used string 10 2
  call string 10 2
    name waitfor fn(ctxt: ref Context, pids: list of int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        :: list of int 10 1
          name exepid int 0 0
          name nil polymorphic type 1 0
ecom: 
call string 10 2
  name waitfor fn(ctxt: ref Context, pids: list of int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      :: list of int 10 1
        name exepid int 0 0
        name nil polymorphic type 1 0
ecom to: 
name .t93 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b91 big 0 0
    const (64) int 6 0
ecom: 
:: list of int 10 1
  name exepid int 0 0
  name nil polymorphic type 1 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b91 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t90 list of int 0 0
ecom: 
= list of int 10 1
  name .t90 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t90 list of int 0 0
ecom: 
= string 10 1
  name .t93 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t93 string 0 0
ecom: 
raise nothing 10 1
  * string 8 0
    name exprop ref Expropagate 0 0
ecom: 
tuple (list of ref Listnode, polymorphic type) 10 1
  seq no type 10 1
    name bqlist list of ref Listnode 0 0
    seq no type 10 1
      name nil polymorphic type 1 0
ecom to: 
* (list of ref Listnode, polymorphic type) 8 0
  name .ret int 0 0
ecom: 
name bqlist list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 1
    adr int 15 1
      * (list of ref Listnode, polymorphic type) 8 0
        name .ret int 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  + int 15 1
    adr int 15 1
      * (list of ref Listnode, polymorphic type) 8 0
        name .ret int 0 0
    const (8) int 6 0
fn: bq
64: argument ctxt ref Context ref 4
72: argument cmd list of ref Listnode ref 1
80: argument seps string ref 1
88: local exepid int ref 2
96: local exprop ref Expropagate ref 3
104: local .t88 int ref 1
112: local .b91 big ref 6
120: local fds array of ref Sys->FD ref 5
128: local .b89 big ref 3
136: local r ref Redirlist ref 3
144: local startchan chan of (int, ref Expropagate) ref 3
152: local bqlist list of ref Listnode ref 2
160: local .t90 string ref 1
168: local .t93 list of Redirword ref 1
176: local .b92 Redirword ref 1
generate desc for bq
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap cmd type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap seps type string offset 80 (d->offset=80 start=0) returns 80
descmap exepid type int offset 88 (d->offset=88 start=0) returns -1
descmap exprop type ref Expropagate offset 96 (d->offset=96 start=0) returns 96
descmap .t88 type int offset 104 (d->offset=104 start=0) returns -1
descmap .b91 type big offset 112 (d->offset=112 start=0) returns -1
descmap fds type array of ref Sys->FD offset 120 (d->offset=120 start=0) returns 120
descmap .b89 type big offset 128 (d->offset=128 start=0) returns -1
descmap r type ref Redirlist offset 136 (d->offset=136 start=0) returns 136
descmap startchan type chan of (int, ref Expropagate) offset 144 (d->offset=144 start=0) returns 144
descmap bqlist type list of ref Listnode offset 152 (d->offset=152 start=0) returns 152
descmap .t90 type string offset 160 (d->offset=160 start=0) returns 160
descmap .t93 type list of Redirword offset 168 (d->offset=168 start=0) returns 168
descmap adt offset 176
descmap offset 176
descmap fd type ref Sys->FD offset 176 (d->offset=0 start=176) returns 176
descmap w type string offset 184 (d->offset=8 start=176) returns 184
descmap adt offset 192
descmap offset 192
descmap rtype type int offset 192 (d->offset=0 start=192) returns -1
descmap fd1 type int offset 196 (d->offset=4 start=192) returns -1
descmap fd2 type int offset 200 (d->offset=8 start=192) returns -1
descmap r type Redir offset 192 (d->offset=16 start=176) returns -1
descmap .b92 type Redirword offset 176 (d->offset=176 start=0) returns 184
fncom: rdir 2 418928
fncom: concatwords 3 4189e8
ecom: 
= string 10 2
  * string 8 0
    + int 15 1
      name p1 ref Listnode 0 0
      const word (8) int 6 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        name p1 ref Listnode 0 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      name p1 ref Listnode 0 0
ecom to: 
* string 8 0
  + int 15 1
    name p1 ref Listnode 0 0
    const word (8) int 6 0
generate desc for big
ecom: 
* ref Node 8 0
  name p1 ref Listnode 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b94 big 0 0
    const (64) int 6 0
ecom: 
= string 10 2
  * string 8 0
    + int 15 1
      name p2 ref Listnode 0 0
      const word (8) int 6 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        name p2 ref Listnode 0 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      name p2 ref Listnode 0 0
ecom to: 
* string 8 0
  + int 15 1
    name p2 ref Listnode 0 0
    const word (8) int 6 0
generate desc for big
ecom: 
* ref Node 8 0
  name p2 ref Listnode 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b94 big 0 0
    const (64) int 6 0
ecom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        + string 10 1
          * string 8 0
            + int 15 1
              name p1 ref Listnode 0 0
              const word (8) int 6 0
          * string 8 0
            + int 15 1
              name p2 ref Listnode 0 0
              const word (8) int 6 0
ecom to: 
* ref Listnode 8 0
  name .ret int 0 0
generate desc for Listnode
ecom: 
tuple Listnode 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      + string 10 1
        * string 8 0
          + int 15 1
            name p1 ref Listnode 0 0
            const word (8) int 6 0
        * string 8 0
          + int 15 1
            name p2 ref Listnode 0 0
            const word (8) int 6 0
ecom to: 
* Listnode 8 0
  name .t95 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t95 ref Listnode 0 0
    const (0) int 6 0
ecom: 
+ string 10 1
  * string 8 0
    + int 15 1
      name p1 ref Listnode 0 0
      const word (8) int 6 0
  * string 8 0
    + int 15 1
      name p2 ref Listnode 0 0
      const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t95 ref Listnode 0 0
    const (8) int 6 0
ecom: 
* string 8 0
  + int 15 1
    name p1 ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
name .t96 string 0 0
ecom: 
= string 10 1
  name .t96 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t96 string 0 0
ecom: 
= ref Listnode 10 1
  name .t95 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t95 ref Listnode 0 0
fn: concatwords
64: argument p1 ref Listnode ref 5
72: argument p2 ref Listnode ref 5
80: local .b94 big ref 2
88: local .t95 ref Listnode ref 1
96: local .t96 string ref 1
generate desc for concatwords
descmap offset 0
descmap p1 type ref Listnode offset 64 (d->offset=64 start=0) returns 64
descmap p2 type ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap .b94 type big offset 80 (d->offset=80 start=0) returns -1
descmap .t95 type ref Listnode offset 88 (d->offset=88 start=0) returns 88
descmap .t96 type string offset 96 (d->offset=96 start=0) returns 96
fncom: concat 2 418aa8
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const bad concatenation string 1 0
      seq no type 10 1
        const sh: null list in concatenation string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b97 big 0 0
    const (64) int 6 0
ecom: 
const bad concatenation string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b97 big 0 0
    const (72) int 6 0
ecom: 
const sh: null list in concatenation string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b97 big 0 0
    const (80) int 6 0
eacom: 
tl list of ref Listnode 10 1
  name nl1 list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name nl1 list of ref Listnode 0 0
ecom to: 
name .t98 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t98 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t98 list of ref Listnode 0 0
eacom: 
tl list of ref Listnode 10 1
  name nl2 list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name nl2 list of ref Listnode 0 0
ecom to: 
name .t98 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t98 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t98 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name p1 list of ref Listnode 0 0
  name nl1 list of ref Listnode 0 0
ecom: 
name nl1 list of ref Listnode 0 0
ecom to: 
name p1 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name p2 list of ref Listnode 0 0
    name p1 list of ref Listnode 0 0
  name nl2 list of ref Listnode 0 0
ecom: 
name nl2 list of ref Listnode 0 0
ecom to: 
name p2 list of ref Listnode 0 0
  name p1 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 2
  name ret list of ref Listnode 0 0
  :: list of ref Listnode 10 2
    call ref Listnode 10 2
      name concatwords fn(p1: ref Listnode, p2: ref Listnode): ref Listnode 11 1
      seq no type 10 2
        hd ref Listnode 10 1
          name p1 list of ref Listnode 0 0
        seq no type 10 1
          hd ref Listnode 10 1
            name p2 list of ref Listnode 0 0
    name ret list of ref Listnode 0 0
ecom: 
:: list of ref Listnode 10 2
  call ref Listnode 10 2
    name concatwords fn(p1: ref Listnode, p2: ref Listnode): ref Listnode 11 1
    seq no type 10 2
      hd ref Listnode 10 1
        name p1 list of ref Listnode 0 0
      seq no type 10 1
        hd ref Listnode 10 1
          name p2 list of ref Listnode 0 0
  name ret list of ref Listnode 0 0
ecom to: 
name ret list of ref Listnode 0 0
eacom: 
call ref Listnode 10 2
  name concatwords fn(p1: ref Listnode, p2: ref Listnode): ref Listnode 11 1
  seq no type 10 2
    hd ref Listnode 10 1
      name p1 list of ref Listnode 0 0
    seq no type 10 1
      hd ref Listnode 10 1
        name p2 list of ref Listnode 0 0
ecom: 
call ref Listnode 10 2
  name concatwords fn(p1: ref Listnode, p2: ref Listnode): ref Listnode 11 1
  seq no type 10 2
    hd ref Listnode 10 1
      name p1 list of ref Listnode 0 0
    seq no type 10 1
      hd ref Listnode 10 1
        name p2 list of ref Listnode 0 0
ecom to: 
name .t98 ref Listnode 0 0
generate desc for big
ecom: 
hd ref Listnode 10 1
  name p1 list of ref Listnode 0 0
ecom to: 
* ref Listnode 8 0
  + int 15 0
    name .b97 big 0 0
    const (64) int 6 0
ecom: 
hd ref Listnode 10 1
  name p2 list of ref Listnode 0 0
ecom to: 
* ref Listnode 8 0
  + int 15 0
    name .b97 big 0 0
    const (72) int 6 0
ecom: 
= ref Listnode 10 1
  name .t98 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t98 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name p2 list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name p2 list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name p2 list of ref Listnode 0 0
ecom to: 
name p2 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name p1 list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name p1 list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name p1 list of ref Listnode 0 0
ecom to: 
name p1 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name p2 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name p2 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name p1 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name p1 list of ref Listnode 0 0
ecom: 
len int 10 1
  name nl2 list of ref Listnode 0 0
ecom to: 
name .t99 int 0 0
eacom: 
len int 10 1
  name nl1 list of ref Listnode 0 0
ecom: 
len int 10 1
  name nl1 list of ref Listnode 0 0
ecom to: 
name .t100 int 0 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const bad concatenation string 1 0
      seq no type 10 1
        const sh: lists of differing sizes can't be concatenated string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b97 big 0 0
    const (64) int 6 0
ecom: 
const bad concatenation string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b97 big 0 0
    const (72) int 6 0
ecom: 
const sh: lists of differing sizes can't be concatenated string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b97 big 0 0
    const (80) int 6 0
ecom: 
= list of ref Listnode 10 2
  name ret list of ref Listnode 0 0
  :: list of ref Listnode 10 2
    call ref Listnode 10 2
      name concatwords fn(p1: ref Listnode, p2: ref Listnode): ref Listnode 11 1
      seq no type 10 2
        hd ref Listnode 10 1
          name nl1 list of ref Listnode 0 0
        seq no type 10 1
          hd ref Listnode 10 1
            name nl2 list of ref Listnode 0 0
    name ret list of ref Listnode 0 0
ecom: 
:: list of ref Listnode 10 2
  call ref Listnode 10 2
    name concatwords fn(p1: ref Listnode, p2: ref Listnode): ref Listnode 11 1
    seq no type 10 2
      hd ref Listnode 10 1
        name nl1 list of ref Listnode 0 0
      seq no type 10 1
        hd ref Listnode 10 1
          name nl2 list of ref Listnode 0 0
  name ret list of ref Listnode 0 0
ecom to: 
name ret list of ref Listnode 0 0
eacom: 
call ref Listnode 10 2
  name concatwords fn(p1: ref Listnode, p2: ref Listnode): ref Listnode 11 1
  seq no type 10 2
    hd ref Listnode 10 1
      name nl1 list of ref Listnode 0 0
    seq no type 10 1
      hd ref Listnode 10 1
        name nl2 list of ref Listnode 0 0
ecom: 
call ref Listnode 10 2
  name concatwords fn(p1: ref Listnode, p2: ref Listnode): ref Listnode 11 1
  seq no type 10 2
    hd ref Listnode 10 1
      name nl1 list of ref Listnode 0 0
    seq no type 10 1
      hd ref Listnode 10 1
        name nl2 list of ref Listnode 0 0
ecom to: 
name .t98 ref Listnode 0 0
generate desc for big
ecom: 
hd ref Listnode 10 1
  name nl1 list of ref Listnode 0 0
ecom to: 
* ref Listnode 8 0
  + int 15 0
    name .b97 big 0 0
    const (64) int 6 0
ecom: 
hd ref Listnode 10 1
  name nl2 list of ref Listnode 0 0
ecom to: 
* ref Listnode 8 0
  + int 15 0
    name .b97 big 0 0
    const (72) int 6 0
ecom: 
= ref Listnode 10 1
  name .t98 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t98 ref Listnode 0 0
ecom: 
= (list of ref Listnode, list of ref Listnode) 10 2
  tuple (list of ref Listnode, list of ref Listnode) 10 1
    seq no type 10 1
      name nl1 list of ref Listnode 0 0
      seq no type 10 1
        name nl2 list of ref Listnode 0 0
  tuple (list of ref Listnode, list of ref Listnode) 10 2
    seq no type 10 2
      tl list of ref Listnode 10 1
        name nl1 list of ref Listnode 0 0
      seq no type 10 1
        tl list of ref Listnode 10 1
          name nl2 list of ref Listnode 0 0
generate desc for (list of ref Listnode, list of ref Listnode)
descmap adt offset 0
descmap offset 0
descmap t0 type list of ref Listnode offset 0 (d->offset=0 start=0) returns 0
descmap t1 type list of ref Listnode offset 8 (d->offset=8 start=0) returns 8
generate desc for (list of ref Listnode, list of ref Listnode)
	desc	$-1,16,"c0"
ecom: 
tuple (list of ref Listnode, list of ref Listnode) 10 2
  seq no type 10 2
    tl list of ref Listnode 10 1
      name nl1 list of ref Listnode 0 0
    seq no type 10 1
      tl list of ref Listnode 10 1
        name nl2 list of ref Listnode 0 0
ecom to: 
name .b101 (list of ref Listnode, list of ref Listnode) 0 0
ecom: 
tl list of ref Listnode 10 1
  name nl1 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 0 0
  + int 13 1
    adr int 13 1
      name .b101 (list of ref Listnode, list of ref Listnode) 0 0
    const (0) int 6 0
ecom: 
tl list of ref Listnode 10 1
  name nl2 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 0 0
  + int 13 1
    adr int 13 1
      name .b101 (list of ref Listnode, list of ref Listnode) 0 0
    const (8) int 6 0
ecom: 
= list of ref Listnode 10 1
  * list of ref Listnode 0 0
    adr int 13 1
      name .b101 (list of ref Listnode, list of ref Listnode) 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 0 0
  adr int 13 1
    name .b101 (list of ref Listnode, list of ref Listnode) 0 0
ecom: 
= list of ref Listnode 10 1
  * list of ref Listnode 0 0
    + int 13 1
      adr int 13 1
        name .b101 (list of ref Listnode, list of ref Listnode) 0 0
      const t1 (8) int 6 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 0 0
  + int 13 1
    adr int 13 1
      name .b101 (list of ref Listnode, list of ref Listnode) 0 0
    const t1 (8) int 6 0
ecom: 
call list of ref Listnode 10 2
  name revlist fn(l: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name ret list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name ret list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b97 big 0 0
    const (64) int 6 0
fn: concat
64: argument ctxt ref Context ref 2
72: argument nl1 list of ref Listnode ref 9
80: argument nl2 list of ref Listnode ref 8
88: local .t100 int ref 1
92: local .t99 int ref 1
96: local .b97 big ref 5
104: local p1 list of ref Listnode ref 5
112: local p2 list of ref Listnode ref 5
120: local ret list of ref Listnode ref 5
128: local .t98 list of ref Listnode ref 1
136: local .b101 (list of ref Listnode, list of ref Listnode) ref 1
generate desc for concat
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap nl1 type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap nl2 type list of ref Listnode offset 80 (d->offset=80 start=0) returns 80
descmap .t100 type int offset 88 (d->offset=88 start=0) returns -1
descmap .t99 type int offset 92 (d->offset=92 start=0) returns -1
descmap .b97 type big offset 96 (d->offset=96 start=0) returns -1
descmap p1 type list of ref Listnode offset 104 (d->offset=104 start=0) returns 104
descmap p2 type list of ref Listnode offset 112 (d->offset=112 start=0) returns 112
descmap ret type list of ref Listnode offset 120 (d->offset=120 start=0) returns 120
descmap .t98 type list of ref Listnode offset 128 (d->offset=128 start=0) returns 128
descmap adt offset 136
descmap offset 136
descmap t0 type list of ref Listnode offset 136 (d->offset=0 start=136) returns 136
descmap t1 type list of ref Listnode offset 144 (d->offset=8 start=136) returns 144
descmap .b101 type (list of ref Listnode, list of ref Listnode) offset 136 (d->offset=136 start=0) returns 144
fncom: runasync 7 418b68
ecom: 
= int 10 2
  name pid int 0 0
  call int 10 2
    -> fn(flags: int, movefd: list of int): int 12 1
      name sys Sys 1 0
      name pctl nothing 11 1
    seq no type 10 1
      const FORKFD (2) int 6 0
      seq no type 10 1
        name nil list of int 1 0
ecom: 
call int 10 2
  -> fn(flags: int, movefd: list of int): int 12 1
    name sys Sys 1 0
    name pctl nothing 11 1
  seq no type 10 1
    const FORKFD (2) int 6 0
    seq no type 10 1
      name nil list of int 1 0
ecom to: 
name pid int 0 0
generate desc for big
ecom: 
const FORKFD (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b102 big 0 0
    const (64) int 6 0
ecom: 
name nil list of int 1 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b102 big 0 0
    const (72) int 6 0
ecom: 
= ref Context 10 2
  name ctxt ref Context 0 0
  call ref Context 10 2
    name copy fn(ctxt: self ref Context, copyenv: int): ref Context 11 1
    seq nothing 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name copyenv int 0 0
ecom: 
call ref Context 10 2
  name copy fn(ctxt: self ref Context, copyenv: int): ref Context 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name copyenv int 0 0
ecom to: 
name ctxt ref Context 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b102 big 0 0
    const (64) int 6 0
ecom: 
name copyenv int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b102 big 0 0
    const (72) int 6 0
ecom: 
= ref Expropagate 10 1
  name exprop ref Expropagate 0 0
  ref ref Expropagate 10 1
    name Expropagate Expropagate 10 1
ecom: 
ref ref Expropagate 10 1
  name Expropagate Expropagate 10 1
ecom to: 
name exprop ref Expropagate 0 0
generate desc for Expropagate
descmap adt offset 0
descmap offset 0
descmap name type string offset 0 (d->offset=0 start=0) returns 0
generate desc for Expropagate
	desc	$-1,8,"80"
ecom: 
= list of int 10 2
  name newfdl list of int 0 0
  call list of int 10 2
    name doredirs fn(ctxt: ref Context, redirs: ref Redirlist): list of int 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name redirs ref Redirlist 0 0
ecom: 
call list of int 10 2
  name doredirs fn(ctxt: ref Context, redirs: ref Redirlist): list of int 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name redirs ref Redirlist 0 0
ecom to: 
name newfdl list of int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b102 big 0 0
    const (64) int 6 0
ecom: 
name redirs ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b102 big 0 0
    const (72) int 6 0
ecom: 
= ref Redirlist 10 1
  name redirs ref Redirlist 0 0
  name nil polymorphic type 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name redirs ref Redirlist 0 0
ecom: 
used int 10 2
  call int 10 2
    -> fn(flags: int, movefd: list of int): int 12 1
      name sys Sys 1 0
      name pctl nothing 11 1
    seq no type 10 1
      const NEWFD (1) int 6 0
      seq no type 10 1
        name newfdl list of int 0 0
ecom: 
call int 10 2
  -> fn(flags: int, movefd: list of int): int 12 1
    name sys Sys 1 0
    name pctl nothing 11 1
  seq no type 10 1
    const NEWFD (1) int 6 0
    seq no type 10 1
      name newfdl list of int 0 0
ecom to: 
name .t103 int 0 0
generate desc for big
ecom: 
const NEWFD (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b102 big 0 0
    const (64) int 6 0
ecom: 
name newfdl list of int 0 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b102 big 0 0
    const (72) int 6 0
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 8 0
    + int 15 1
      name ctxt ref Context 0 0
      const waitfd (8) int 6 0
  call ref Sys->FD 10 1
    name waitfd fn(): ref Sys->FD 11 1
ecom: 
call ref Sys->FD 10 1
  name waitfd fn(): ref Sys->FD 11 1
ecom to: 
* ref Sys->FD 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const waitfd (8) int 6 0
generate desc for big
ecom: 
<-= (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
  tuple (int, ref Expropagate) 10 1
    seq no type 10 1
      name pid int 0 0
      seq no type 10 1
        name exprop ref Expropagate 0 0
eacom: 
tuple (int, ref Expropagate) 10 1
  seq no type 10 1
    name pid int 0 0
    seq no type 10 1
      name exprop ref Expropagate 0 0
generate desc for (int, ref Expropagate)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap t1 type ref Expropagate offset 8 (d->offset=8 start=0) returns 8
generate desc for (int, ref Expropagate)
	desc	$-1,16,"40"
ecom: 
tuple (int, ref Expropagate) 10 1
  seq no type 10 1
    name pid int 0 0
    seq no type 10 1
      name exprop ref Expropagate 0 0
ecom to: 
name .b104 (int, ref Expropagate) 0 0
ecom: 
name pid int 0 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      name .b104 (int, ref Expropagate) 0 0
    const (0) int 6 0
ecom: 
name exprop ref Expropagate 0 0
ecom to: 
* ref Expropagate 0 0
  + int 13 1
    adr int 13 1
      name .b104 (int, ref Expropagate) 0 0
    const (8) int 6 0
ecom: 
= ref Expropagate 10 1
  * ref Expropagate 0 0
    + int 13 1
      adr int 13 1
        name .b104 (int, ref Expropagate) 0 0
      const t1 (8) int 6 0
  name nil ref Expropagate 1 0
ecom: 
name nil ref Expropagate 1 0
ecom to: 
* ref Expropagate 0 0
  + int 13 1
    adr int 13 1
      name .b104 (int, ref Expropagate) 0 0
    const t1 (8) int 6 0
ecom: 
= chan of (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
  name nil polymorphic type 1 0
ecom: 
name nil chan of (int, ref Expropagate) 1 0
ecom to: 
name startchan chan of (int, ref Expropagate) 0 0
ecom: 
= string 10 2
  name status string 0 0
  call string 10 2
    name run fn(ctxt: self ref Context, args: list of ref Listnode, last: int): string 11 1
    seq nothing 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name argv list of ref Listnode 0 0
        seq no type 10 1
          name copyenv int 0 0
ecom: 
call string 10 2
  name run fn(ctxt: self ref Context, args: list of ref Listnode, last: int): string 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name argv list of ref Listnode 0 0
      seq no type 10 1
        name copyenv int 0 0
ecom to: 
name status string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b102 big 0 0
    const (64) int 6 0
ecom: 
name argv list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b102 big 0 0
    const (72) int 6 0
ecom: 
name copyenv int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b102 big 0 0
    const (80) int 6 0
ecom: 
= list of int 10 1
  name newfdl list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name newfdl list of int 0 0
ecom: 
= string 10 1
  * string 8 0
    name exprop ref Expropagate 0 0
  name e string 0 0
ecom: 
name e string 0 0
ecom to: 
* string 8 0
  name exprop ref Expropagate 0 0
ecom: 
<-= (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
  tuple (int, ref Expropagate) 10 1
    seq no type 10 1
      name pid int 0 0
      seq no type 10 1
        name exprop ref Expropagate 0 0
eacom: 
tuple (int, ref Expropagate) 10 1
  seq no type 10 1
    name pid int 0 0
    seq no type 10 1
      name exprop ref Expropagate 0 0
generate desc for (int, ref Expropagate)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap t1 type ref Expropagate offset 8 (d->offset=8 start=0) returns 8
generate desc for (int, ref Expropagate)
	desc	$-1,16,"40"
ecom: 
tuple (int, ref Expropagate) 10 1
  seq no type 10 1
    name pid int 0 0
    seq no type 10 1
      name exprop ref Expropagate 0 0
ecom to: 
name .b104 (int, ref Expropagate) 0 0
ecom: 
name pid int 0 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      name .b104 (int, ref Expropagate) 0 0
    const (0) int 6 0
ecom: 
name exprop ref Expropagate 0 0
ecom to: 
* ref Expropagate 0 0
  + int 13 1
    adr int 13 1
      name .b104 (int, ref Expropagate) 0 0
    const (8) int 6 0
ecom: 
= ref Expropagate 10 1
  * ref Expropagate 0 0
    + int 13 1
      adr int 13 1
        name .b104 (int, ref Expropagate) 0 0
      const t1 (8) int 6 0
  name nil ref Expropagate 1 0
ecom: 
name nil ref Expropagate 1 0
ecom to: 
* ref Expropagate 0 0
  + int 13 1
    adr int 13 1
      name .b104 (int, ref Expropagate) 0 0
    const t1 (8) int 6 0
ecom: 
raise nothing 10 1
  name e string 0 0
ecom: 
raise nothing 10 1
  + string 10 1
    const fail: string 1 0
    name status string 0 0
eacom: 
+ string 10 1
  const fail: string 1 0
  name status string 0 0
ecom: 
+ string 10 1
  const fail: string 1 0
  name status string 0 0
ecom to: 
name .t105 string 0 0
ecom: 
= string 10 1
  name .t105 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t105 string 0 0
fn: runasync
64: argument ctxt ref Context ref 5
72: argument copyenv int ref 2
80: argument argv list of ref Listnode ref 1
88: argument redirs ref Redirlist ref 3
96: argument startchan chan of (int, ref Expropagate) ref 4
104: local e ref exception ref 3
108: local pid int ref 3
112: local .t103 int ref 1
120: local .b102 big ref 6
128: local exprop ref Expropagate ref 4
136: local newfdl list of int ref 3
144: local status string ref 3
152: local .b104 (int, ref Expropagate) ref 2
168: local .t105 string ref 1
generate desc for runasync
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap copyenv type int offset 72 (d->offset=72 start=0) returns -1
descmap argv type list of ref Listnode offset 80 (d->offset=80 start=0) returns 80
descmap redirs type ref Redirlist offset 88 (d->offset=88 start=0) returns 88
descmap startchan type chan of (int, ref Expropagate) offset 96 (d->offset=96 start=0) returns 96
descmap e type ref exception offset 104 (d->offset=104 start=0) returns 104
descmap pid type int offset 108 (d->offset=108 start=0) returns -1
descmap .t103 type int offset 112 (d->offset=112 start=0) returns -1
descmap .b102 type big offset 120 (d->offset=120 start=0) returns -1
descmap exprop type ref Expropagate offset 128 (d->offset=128 start=0) returns 128
descmap newfdl type list of int offset 136 (d->offset=136 start=0) returns 136
descmap status type string offset 144 (d->offset=144 start=0) returns 144
descmap adt offset 152
descmap offset 152
descmap t0 type int offset 152 (d->offset=0 start=152) returns -1
descmap t1 type ref Expropagate offset 160 (d->offset=8 start=152) returns 160
descmap .b104 type (int, ref Expropagate) offset 152 (d->offset=152 start=0) returns 160
descmap .t105 type string offset 168 (d->offset=168 start=0) returns 168
generate desc for e
descmap offset 0
descmap newfdl type list of int offset 136 (d->offset=136 start=0) returns 136
fncom: runsync 2 418c28
ecom: 
= chan of (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
  chan chan of (int, ref Expropagate) 10 1
    const (0) int 6 0
ecom: 
chan chan of (int, ref Expropagate) 10 1
  const (0) int 6 0
ecom to: 
name startchan chan of (int, ref Expropagate) 0 0
generate desc for (int, ref Expropagate)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap t1 type ref Expropagate offset 8 (d->offset=8 start=0) returns 8
generate desc for (int, ref Expropagate)
	desc	$-1,16,"40"
ecom: 
spawn nothing 10 2
  call no type 10 2
    name runasync fn(ctxt: ref Context, copyenv: int, argv: list of ref Listnode, redirs: ref Redirlist, startchan: chan of (int, ref Expropagate)) 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        const (0) int 6 0
        seq no type 10 1
          name argv list of ref Listnode 0 0
          seq no type 10 1
            name redirs ref Redirlist 0 0
            seq no type 10 1
              name startchan chan of (int, ref Expropagate) 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b106 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b106 big 0 0
    const (72) int 6 0
ecom: 
name argv list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b106 big 0 0
    const (80) int 6 0
ecom: 
name redirs ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b106 big 0 0
    const (88) int 6 0
ecom: 
name startchan chan of (int, ref Expropagate) 0 0
ecom to: 
* chan of (int, ref Expropagate) 8 0
  + int 15 0
    name .b106 big 0 0
    const (96) int 6 0
ecom: 
= (int, ref Expropagate) 10 2
  tuple (int, ref Expropagate) 10 1
    seq nothing 10 1
      name pid int 0 0
      seq nothing 10 1
        name exprop ref Expropagate 0 0
    name startchan chan of (int, ref Expropagate) 0 0
  <- (int, ref Expropagate) 10 1
    name startchan chan of (int, ref Expropagate) 0 0
generate desc for (int, ref Expropagate)
ecom: 
<- (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
ecom to: 
name .b107 (int, ref Expropagate) 0 0
ecom: 
= ref Expropagate 10 1
  * ref Expropagate 0 0
    + int 13 1
      adr int 13 1
        name .b107 (int, ref Expropagate) 0 0
      const t1 (8) int 6 0
  name nil ref Expropagate 1 0
ecom: 
name nil ref Expropagate 1 0
ecom to: 
* ref Expropagate 0 0
  + int 13 1
    adr int 13 1
      name .b107 (int, ref Expropagate) 0 0
    const t1 (8) int 6 0
ecom: 
= ref Redirlist 10 1
  name redirs ref Redirlist 0 0
  name nil polymorphic type 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name redirs ref Redirlist 0 0
ecom: 
= string 10 2
  name r string 0 0
    tuple (int, ref Expropagate) 10 1
      seq nothing 10 1
        name pid int 0 0
        seq nothing 10 1
          name exprop ref Expropagate 0 0
      name startchan chan of (int, ref Expropagate) 0 0
  call string 10 2
    name waitfor fn(ctxt: ref Context, pids: list of int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        :: list of int 10 1
          name pid int 0 0
          name nil polymorphic type 1 0
ecom: 
call string 10 2
  name waitfor fn(ctxt: ref Context, pids: list of int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      :: list of int 10 1
        name pid int 0 0
        name nil polymorphic type 1 0
ecom to: 
name r string 0 0
  tuple (int, ref Expropagate) 10 1
    seq nothing 10 1
      name pid int 0 0
      seq nothing 10 1
        name exprop ref Expropagate 0 0
    name startchan chan of (int, ref Expropagate) 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b106 big 0 0
    const (64) int 6 0
ecom: 
:: list of int 10 1
  name pid int 0 0
  name nil polymorphic type 1 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b106 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t108 list of int 0 0
ecom: 
= list of int 10 1
  name .t108 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t108 list of int 0 0
ecom: 
raise nothing 10 1
  * string 8 0
    name exprop ref Expropagate 0 0
ecom: 
name r string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
= string 10 1
  name r string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name r string 0 0
ecom: 
= ref Expropagate 10 1
  name exprop ref Expropagate 0 0
  name nil ref Expropagate 1 0
ecom: 
name nil ref Expropagate 1 0
ecom to: 
name exprop ref Expropagate 0 0
ecom: 
= chan of (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
  name nil chan of (int, ref Expropagate) 1 0
ecom: 
name nil chan of (int, ref Expropagate) 1 0
ecom to: 
name startchan chan of (int, ref Expropagate) 0 0
ecom: 
= list of int 10 2
  name newfdl list of int 0 0
  call list of int 10 2
    name doredirs fn(ctxt: ref Context, redirs: ref Redirlist): list of int 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name redirs ref Redirlist 0 0
ecom: 
call list of int 10 2
  name doredirs fn(ctxt: ref Context, redirs: ref Redirlist): list of int 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name redirs ref Redirlist 0 0
ecom to: 
name newfdl list of int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b106 big 0 0
    const (64) int 6 0
ecom: 
name redirs ref Redirlist 0 0
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b106 big 0 0
    const (72) int 6 0
ecom: 
= ref Redirlist 10 1
  name redirs ref Redirlist 0 0
  name nil polymorphic type 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name redirs ref Redirlist 0 0
ecom: 
used int 10 2
  call int 10 2
    -> fn(flags: int, movefd: list of int): int 12 1
      name sys Sys 1 0
      name pctl nothing 11 1
    seq no type 10 1
      const NEWFD (1) int 6 0
      seq no type 10 1
        name newfdl list of int 0 0
ecom: 
call int 10 2
  -> fn(flags: int, movefd: list of int): int 12 1
    name sys Sys 1 0
    name pctl nothing 11 1
  seq no type 10 1
    const NEWFD (1) int 6 0
    seq no type 10 1
      name newfdl list of int 0 0
ecom to: 
name .t109 int 0 0
generate desc for big
ecom: 
const NEWFD (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b106 big 0 0
    const (64) int 6 0
ecom: 
name newfdl list of int 0 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b106 big 0 0
    const (72) int 6 0
ecom: 
call string 10 2
  name run fn(ctxt: self ref Context, args: list of ref Listnode, last: int): string 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name argv list of ref Listnode 0 0
      seq no type 10 1
        name last int 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b106 big 0 0
    const (64) int 6 0
ecom: 
name argv list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b106 big 0 0
    const (72) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b106 big 0 0
    const (80) int 6 0
ecom: 
= list of int 10 1
  name newfdl list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name newfdl list of int 0 0
fn: runsync
64: argument ctxt ref Context ref 4
72: argument argv list of ref Listnode ref 2
80: argument redirs ref Redirlist ref 6
88: argument last int ref 3
96: local pid int ref 2
104: local exprop ref Expropagate ref 3
112: local .t109 int ref 1
120: local .b106 big ref 5
128: local newfdl list of int ref 3
136: local startchan chan of (int, ref Expropagate) ref 3
144: local r string ref 2
152: local .t108 list of int ref 1
160: local .b107 (int, ref Expropagate) ref 1
generate desc for runsync
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap argv type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap redirs type ref Redirlist offset 80 (d->offset=80 start=0) returns 80
descmap last type int offset 88 (d->offset=88 start=0) returns -1
descmap pid type int offset 96 (d->offset=96 start=0) returns -1
descmap exprop type ref Expropagate offset 104 (d->offset=104 start=0) returns 104
descmap .t109 type int offset 112 (d->offset=112 start=0) returns -1
descmap .b106 type big offset 120 (d->offset=120 start=0) returns -1
descmap newfdl type list of int offset 128 (d->offset=128 start=0) returns 128
descmap startchan type chan of (int, ref Expropagate) offset 136 (d->offset=136 start=0) returns 136
descmap r type string offset 144 (d->offset=144 start=0) returns 144
descmap .t108 type list of int offset 152 (d->offset=152 start=0) returns 152
descmap adt offset 160
descmap offset 160
descmap t0 type int offset 160 (d->offset=0 start=160) returns -1
descmap t1 type ref Expropagate offset 168 (d->offset=8 start=160) returns 168
descmap .b107 type (int, ref Expropagate) offset 160 (d->offset=160 start=0) returns 168
fncom: absolute 2 418ce8
eacom: 
len int 10 1
  name p string 0 0
ecom: 
len int 10 1
  name p string 0 0
ecom to: 
name .t110 int 0 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
eacom: 
inds int 10 1
  name p string 0 0
  const (0) int 6 0
ecom: 
inds int 10 1
  name p string 0 0
  const (0) int 6 0
ecom to: 
name .t110 int 0 0
eacom: 
inds int 10 1
  name p string 0 0
  const (0) int 6 0
ecom: 
inds int 10 1
  name p string 0 0
  const (0) int 6 0
ecom to: 
name .t110 int 0 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
eacom: 
len int 10 1
  name p string 0 0
ecom: 
len int 10 1
  name p string 0 0
ecom to: 
name .t110 int 0 0
eacom: 
inds int 10 1
  name p string 0 0
  const (0) int 6 0
ecom: 
inds int 10 1
  name p string 0 0
  const (0) int 6 0
ecom to: 
name .t110 int 0 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
eacom: 
inds int 10 1
  name p string 0 0
  const (1) int 6 0
ecom: 
inds int 10 1
  name p string 0 0
  const (1) int 6 0
ecom to: 
name .t110 int 0 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
eacom: 
inds int 10 1
  name p string 0 0
  const (1) int 6 0
ecom: 
inds int 10 1
  name p string 0 0
  const (1) int 6 0
ecom to: 
name .t110 int 0 0
eacom: 
inds int 10 1
  name p string 0 0
  const (2) int 6 0
ecom: 
inds int 10 1
  name p string 0 0
  const (2) int 6 0
ecom to: 
name .t110 int 0 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
fn: absolute
64: argument p string ref 8
72: local .t110 int ref 1
generate desc for absolute
descmap offset 0
descmap p type string offset 64 (d->offset=64 start=0) returns 64
descmap .t110 type int offset 72 (d->offset=72 start=0) returns -1
fncom: runexternal 4 418da8
ecom: 
= string 10 1
  name progname string 0 0
  * string 10 1
    + int 10 1
      hd ref Listnode 10 1
        name args list of ref Listnode 0 0
      const word (8) int 6 0
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
name progname string 0 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t111 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t111 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t111 ref Listnode 0 0
ecom: 
= int 10 1
  name disfile int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name disfile int 0 0
eacom: 
len int 10 1
  name progname string 0 0
ecom: 
len int 10 1
  name progname string 0 0
ecom to: 
name .t112 int 0 0
eacom: 
slice string 10 2
  name progname string 0 0
  seq no type 10 2
    - int 10 1
      len int 10 1
        name progname string 0 0
      const (4) int 6 0
    nothing no type 10 1
ecom: 
slice string 10 2
  name progname string 0 0
  seq no type 10 2
    - int 10 1
      len int 10 1
        name progname string 0 0
      const (4) int 6 0
    nothing no type 10 1
ecom to: 
name .t111 string 0 0
ecom: 
len int 10 1
  name progname string 0 0
ecom to: 
name .t112 int 0 0
eacom: 
- int 10 1
  len int 10 1
    name progname string 0 0
  const (4) int 6 0
ecom: 
- int 10 1
  len int 10 1
    name progname string 0 0
  const (4) int 6 0
ecom to: 
name .t113 int 0 0
ecom: 
len int 10 1
  name progname string 0 0
ecom to: 
name .t113 int 0 0
ecom: 
name progname string 0 0
ecom to: 
name .t111 string 0 0
ecom: 
= string 10 1
  name .t111 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t111 string 0 0
ecom: 
= int 10 1
  name disfile int 0 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
name disfile int 0 0
eacom: 
call int 10 2
  name absolute fn(p: string): int 11 1
  seq no type 10 1
    name progname string 0 0
ecom: 
call int 10 2
  name absolute fn(p: string): int 11 1
  seq no type 10 1
    name progname string 0 0
ecom to: 
name .t113 int 0 0
generate desc for big
ecom: 
name progname string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
ecom: 
= list of string 10 1
  name pathlist list of string 0 0
  :: list of string 10 1
    const  string 1 0
    name nil polymorphic type 1 0
ecom: 
:: list of string 10 1
  const  string 1 0
  name nil polymorphic type 1 0
ecom to: 
name pathlist list of string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t111 list of string 0 0
ecom: 
= list of string 10 1
  name .t111 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t111 list of string 0 0
eacom: 
= list of ref Listnode 10 2
  name pl list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
    seq nothing 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        const path string 1 0
ecom: 
= list of ref Listnode 10 2
  name pl list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
    seq nothing 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        const path string 1 0
ecom to: 
name .t111 list of ref Listnode 0 0
ecom: 
call list of ref Listnode 10 2
  name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const path string 1 0
ecom to: 
name pl list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
ecom: 
const path string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b114 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t111 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t111 list of ref Listnode 0 0
ecom: 
= list of string 10 2
  name pathlist list of string 0 0
  call list of string 10 2
    name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
    seq no type 10 1
      name pl list of ref Listnode 0 0
ecom: 
call list of string 10 2
  name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
  seq no type 10 1
    name pl list of ref Listnode 0 0
ecom to: 
name pathlist list of string 0 0
generate desc for big
ecom: 
name pl list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
ecom: 
= list of string 10 1
  name pathlist list of string 0 0
  :: list of string 10 1
    const /dis string 1 0
    :: list of string 10 1
      const . string 1 0
      name nil polymorphic type 1 0
ecom: 
:: list of string 10 1
  const /dis string 1 0
  :: list of string 10 1
    const . string 1 0
    name nil polymorphic type 1 0
ecom to: 
name pathlist list of string 0 0
ecom: 
:: list of string 10 1
  const . string 1 0
  name nil polymorphic type 1 0
ecom to: 
name .t111 list of string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t111 list of string 0 0
ecom: 
= list of string 10 1
  name .t111 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t111 list of string 0 0
ecom: 
= string 10 1
  name err string 0 0
  const  string 1 0
ecom: 
const  string 1 0
ecom to: 
name err string 0 0
eacom: 
hd string 10 1
  name pathlist list of string 0 0
ecom: 
hd string 10 1
  name pathlist list of string 0 0
ecom to: 
name .t111 string 0 0
ecom: 
= string 10 1
  name .t111 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t111 string 0 0
ecom: 
= string 10 1
  name path string 0 0
  + string 10 1
    + string 10 1
      hd string 10 1
        name pathlist list of string 0 0
      const / string 1 0
    name progname string 0 0
ecom: 
+ string 10 1
  + string 10 1
    hd string 10 1
      name pathlist list of string 0 0
    const / string 1 0
  name progname string 0 0
ecom to: 
name path string 0 0
ecom: 
+ string 10 1
  hd string 10 1
    name pathlist list of string 0 0
  const / string 1 0
ecom to: 
name .t111 string 0 0
ecom: 
hd string 10 1
  name pathlist list of string 0 0
ecom to: 
name .t111 string 0 0
ecom: 
= string 10 1
  name .t111 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t111 string 0 0
ecom: 
= string 10 1
  name path string 0 0
  name progname string 0 0
ecom: 
name progname string 0 0
ecom to: 
name path string 0 0
ecom: 
= string 10 1
  name npath string 0 0
    vardecl string 10 1
      seq nothing 10 1
  name path string 0 0
ecom: 
name path string 0 0
ecom to: 
name npath string 0 0
  vardecl string 10 1
    seq nothing 10 1
ecom: 
+= string 10 1
  name npath string 0 0
  const .dis string 1 0
ecom: 
= Command 10 1
  name mod Command 0 0
    name npath string 0 0
      vardecl string 10 1
        seq nothing 10 1
  load Command 10 1
    name npath string 0 0
    name .m.Command Command 17 1
ecom: 
load Command 10 1
  name npath string 0 0
  name .m.Command Command 17 1
ecom to: 
name mod Command 0 0
  name npath string 0 0
    vardecl string 10 1
      seq nothing 10 1
ecom: 
= list of string 10 2
  name argv list of string 0 0
  call list of string 10 2
    name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
    seq no type 10 1
      name args list of ref Listnode 0 0
ecom: 
call list of string 10 2
  name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
  seq no type 10 1
    name args list of ref Listnode 0 0
ecom to: 
name argv list of string 0 0
generate desc for big
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
ecom: 
call no type 10 2
  name export fn(e: ref Localenv) 11 1
  seq no type 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
generate desc for big
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
* ref Localenv 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t111 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t111 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t111 ref Environment 0 0
ecom: 
used int 10 2
  call int 10 2
    -> fn(flags: int, movefd: list of int): int 12 1
      name sys Sys 1 0
      name pctl nothing 11 1
    seq no type 10 1
      const NEWFD (1) int 6 0
      seq no type 10 1
        * list of int 8 0
          + int 15 1
            name ctxt ref Context 0 0
            const keepfds (24) int 6 0
ecom: 
call int 10 2
  -> fn(flags: int, movefd: list of int): int 12 1
    name sys Sys 1 0
    name pctl nothing 11 1
  seq no type 10 1
    const NEWFD (1) int 6 0
    seq no type 10 1
      * list of int 8 0
        + int 15 1
          name ctxt ref Context 0 0
          const keepfds (24) int 6 0
ecom to: 
name .t113 int 0 0
generate desc for big
ecom: 
const NEWFD (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
ecom: 
* list of int 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const keepfds (24) int 6 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b114 big 0 0
    const (72) int 6 0
ecom: 
call no type 10 2
  -> fn(ctxt: ref Draw->Context, argv: list of string) 12 1
    name mod Command 0 0
    name init nothing 11 1
  seq no type 10 1
    * ref Draw->Context 8 0
      + int 15 1
        name ctxt ref Context 0 0
        const drawcontext (16) int 6 0
    seq no type 10 1
      name argv list of string 0 0
generate desc for big
ecom: 
* ref Draw->Context 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const drawcontext (16) int 6 0
ecom to: 
* ref Draw->Context 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
ecom: 
name argv list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b114 big 0 0
    const (72) int 6 0
ecom: 
const write on closed pipe string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
call string 10 2
  name failurestatus fn(e: string): string 11 1
  seq no type 10 1
    name e string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name e string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
ecom: 
= chan of int 10 1
  name extstart chan of int 0 0
    name argv list of string 0 0
  chan chan of int 10 1
    const (0) int 6 0
ecom: 
chan chan of int 10 1
  const (0) int 6 0
ecom to: 
name extstart chan of int 0 0
  name argv list of string 0 0
ecom: 
spawn nothing 10 2
  call no type 10 2
    name externalexec fn(mod: Command, drawcontext: ref Draw->Context, argv: list of string, startchan: chan of int, keepfds: list of int) 11 1
    seq no type 10 1
      name mod Command 0 0
      seq no type 10 1
        * ref Draw->Context 8 0
          + int 15 1
            name ctxt ref Context 0 0
            const drawcontext (16) int 6 0
        seq no type 10 1
          name argv list of string 0 0
          seq no type 10 1
            name extstart chan of int 0 0
            seq no type 10 1
              * list of int 8 0
                + int 15 1
                  name ctxt ref Context 0 0
                  const keepfds (24) int 6 0
generate desc for big
ecom: 
name mod Command 0 0
ecom to: 
* Command 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
ecom: 
* ref Draw->Context 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const drawcontext (16) int 6 0
ecom to: 
* ref Draw->Context 8 0
  + int 15 0
    name .b114 big 0 0
    const (72) int 6 0
ecom: 
name argv list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b114 big 0 0
    const (80) int 6 0
ecom: 
name extstart chan of int 0 0
ecom to: 
* chan of int 8 0
  + int 15 0
    name .b114 big 0 0
    const (88) int 6 0
ecom: 
* list of int 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const keepfds (24) int 6 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b114 big 0 0
    const (96) int 6 0
ecom: 
= int 10 1
  name pid int 0 0
  <- int 10 1
    name extstart chan of int 0 0
ecom: 
<- int 10 1
  name extstart chan of int 0 0
ecom to: 
name pid int 0 0
ecom: 
call string 10 2
  name waitfor fn(ctxt: ref Context, pids: list of int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      :: list of int 10 1
        name pid int 0 0
        name nil polymorphic type 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
ecom: 
:: list of int 10 1
  name pid int 0 0
  name nil polymorphic type 1 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b114 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t111 list of int 0 0
ecom: 
= list of int 10 1
  name .t111 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t111 list of int 0 0
ecom: 
= chan of int 10 1
  name extstart chan of int 0 0
  name nil chan of int 1 0
ecom: 
name nil chan of int 1 0
ecom to: 
name extstart chan of int 0 0
ecom: 
= list of string 10 1
  name argv list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name argv list of string 0 0
ecom: 
= string 10 2
  name err string 0 0
  call string 10 2
    -> fn(s: string, *): string 12 1
      name sys Sys 1 0
      name sprint nothing 11 1
    seq no type 10 1
      const %r string 1 0
ecom: 
call string 10 2
  -> fn(s: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const %r string 1 0
ecom to: 
name err string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
generate desc for big
ecom: 
const %r string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
eacom: 
call int 10 2
  name nonexistent fn(e: string): int 11 1
  seq no type 10 1
    name err string 0 0
ecom: 
call int 10 2
  name nonexistent fn(e: string): int 11 1
  seq no type 10 1
    name err string 0 0
ecom to: 
name .t113 int 0 0
generate desc for big
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
eacom: 
= ref Sys->FD 10 2
  name fd ref Sys->FD 0 0
  call ref Sys->FD 10 2
    -> fn(s: string, mode: int): ref Sys->FD 12 1
      name sys Sys 1 0
      name open nothing 11 1
    seq no type 10 1
      name path string 0 0
      seq no type 10 1
        const OREAD (0) int 6 0
ecom: 
= ref Sys->FD 10 2
  name fd ref Sys->FD 0 0
  call ref Sys->FD 10 2
    -> fn(s: string, mode: int): ref Sys->FD 12 1
      name sys Sys 1 0
      name open nothing 11 1
    seq no type 10 1
      name path string 0 0
      seq no type 10 1
        const OREAD (0) int 6 0
ecom to: 
name .t111 ref Sys->FD 0 0
ecom: 
call ref Sys->FD 10 2
  -> fn(s: string, mode: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name open nothing 11 1
  seq no type 10 1
    name path string 0 0
    seq no type 10 1
      const OREAD (0) int 6 0
ecom to: 
name fd ref Sys->FD 0 0
generate desc for big
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
ecom: 
const OREAD (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b114 big 0 0
    const (72) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .t111 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t111 ref Sys->FD 0 0
ecom: 
= (int, Sys->Dir) 10 2
  tuple (int, Sys->Dir) 10 1
    seq nothing 10 1
      name ok int 0 0
      seq nothing 10 1
        name info Sys->Dir 0 0
  call (int, Sys->Dir) 10 2
    -> fn(fd: ref Sys->FD): (int, Sys->Dir) 12 1
      name sys Sys 1 0
      name fstat nothing 11 1
    seq no type 10 1
      name fd ref Sys->FD 0 0
ecom: 
call (int, Sys->Dir) 10 2
  -> fn(fd: ref Sys->FD): (int, Sys->Dir) 12 1
    name sys Sys 1 0
    name fstat nothing 11 1
  seq no type 10 1
    name fd ref Sys->FD 0 0
ecom to: 
name ok (int, Sys->Dir) 0 0
generate desc for big
ecom: 
name fd ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
eacom: 
& int 10 1
  * int 0 0
    + int 13 1
      adr int 13 1
        name info Sys->Dir 0 0
      const mode (48) int 6 0
  const .i.80000000 (-2147483648) int 1 0
ecom: 
& int 10 1
  * int 0 0
    + int 13 1
      adr int 13 1
        name info Sys->Dir 0 0
      const mode (48) int 6 0
  const .i.80000000 (-2147483648) int 1 0
ecom to: 
name .t113 int 0 0
eacom: 
& int 10 1
  * int 0 0
    + int 13 1
      adr int 13 1
        name info Sys->Dir 0 0
      const mode (48) int 6 0
  const (73) int 6 0
ecom: 
& int 10 1
  * int 0 0
    + int 13 1
      adr int 13 1
        name info Sys->Dir 0 0
      const mode (48) int 6 0
  const (73) int 6 0
ecom to: 
name .t113 int 0 0
ecom: 
call string 10 2
  name runhashpling fn(ctxt: ref Context, fd: ref Sys->FD, path: string, argv: list of ref Listnode, last: int): string 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      name fd ref Sys->FD 0 0
      seq no type 10 2
        name path string 0 0
        seq no type 10 2
          tl list of ref Listnode 10 1
            name args list of ref Listnode 0 0
          seq no type 10 1
            name last int 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
ecom: 
name fd ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b114 big 0 0
    const (72) int 6 0
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b114 big 0 0
    const (80) int 6 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b114 big 0 0
    const (88) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b114 big 0 0
    const (96) int 6 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name ok (int, Sys->Dir) 0 0
      const (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name ok (int, Sys->Dir) 0 0
    const (8) int 6 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name ok (int, Sys->Dir) 0 0
      const (16) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name ok (int, Sys->Dir) 0 0
    const (16) int 6 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name ok (int, Sys->Dir) 0 0
      const (24) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name ok (int, Sys->Dir) 0 0
    const (24) int 6 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name ok (int, Sys->Dir) 0 0
      const (32) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name ok (int, Sys->Dir) 0 0
    const (32) int 6 0
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name info Sys->Dir 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name info Sys->Dir 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name info Sys->Dir 0 0
      const uid (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name info Sys->Dir 0 0
    const uid (8) int 6 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name info Sys->Dir 0 0
      const gid (16) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name info Sys->Dir 0 0
    const gid (16) int 6 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name info Sys->Dir 0 0
      const muid (24) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name info Sys->Dir 0 0
    const muid (24) int 6 0
ecom: 
= string 10 2
  name err string 0 0
  call string 10 2
    -> fn(s: string, *): string 12 1
      name sys Sys 1 0
      name sprint nothing 11 1
    seq no type 10 1
      const %r string 1 0
ecom: 
call string 10 2
  -> fn(s: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const %r string 1 0
ecom to: 
name err string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
generate desc for big
ecom: 
const %r string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name fd ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name fd ref Sys->FD 0 0
ecom: 
= list of string 10 1
  name pathlist list of string 0 0
  tl list of string 10 1
    name pathlist list of string 0 0
ecom: 
tl list of string 10 1
  name pathlist list of string 0 0
ecom to: 
name pathlist list of string 0 0
ecom: 
= Command 10 1
  name mod Command 0 0
  name nil Command 1 0
ecom: 
name nil Command 1 0
ecom to: 
name mod Command 0 0
ecom: 
= string 10 1
  name npath string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name npath string 0 0
ecom: 
= string 10 1
  name path string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name path string 0 0
eacom: 
call int 10 2
  name nonexistent fn(e: string): int 11 1
  seq no type 10 1
    name err string 0 0
ecom: 
call int 10 2
  name nonexistent fn(e: string): int 11 1
  seq no type 10 1
    name err string 0 0
ecom to: 
name .t113 int 0 0
generate desc for big
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
ecom: 
call no type 10 2
  name diagnostic fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      call string 10 2
        -> fn(s: string, nil: string, nil: string, *): string 12 1
          name sys Sys 1 0
          name sprint nothing 11 1
        seq no type 10 1
          const %s: %s string 1 0
          seq no type 10 1
            name progname string 0 0
            seq no type 10 1
              name err string 0 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, nil: string, nil: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const %s: %s string 1 0
    seq no type 10 1
      name progname string 0 0
      seq no type 10 1
        name err string 0 0
ecom to: 
name .t111 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
descmap type string offset 80 returns 80
generate desc for big
ecom: 
const %s: %s string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b115 big 0 0
    const (64) int 6 0
ecom: 
name progname string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b115 big 0 0
    const (72) int 6 0
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b115 big 0 0
    const (80) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b114 big 0 0
    const (64) int 6 0
ecom: 
name .t111 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b114 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t111 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t111 string 0 0
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: runexternal
64: argument ctxt ref Context ref 9
72: argument args list of ref Listnode ref 3
80: argument last int ref 2
84: local disfile int ref 4
88: local pid int ref 3
92: local e ref exception ref 2
96: local ok int ref 2
104: local info Sys->Dir ref 3
184: local .t112 int ref 1
188: local .t113 int ref 1
192: local .b114 big ref 18
200: local pathlist list of string ref 8
208: local progname string ref 8
216: local err string ref 7
224: local path string ref 5
232: local mod Command ref 4
240: local argv list of string ref 3
248: local extstart chan of int ref 3
256: local fd ref Sys->FD ref 3
264: local npath string ref 3
272: local pl list of ref Listnode ref 2
280: local .b115 big ref 1
288: local .t111 ref Listnode ref 1
generate desc for runexternal
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap args type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap last type int offset 80 (d->offset=80 start=0) returns -1
descmap disfile type int offset 84 (d->offset=84 start=0) returns -1
descmap pid type int offset 88 (d->offset=88 start=0) returns -1
descmap e type ref exception offset 92 (d->offset=92 start=0) returns 96
descmap ok type int offset 96 (d->offset=96 start=0) returns -1
descmap adt offset 104
descmap offset 104
descmap name type string offset 104 (d->offset=0 start=104) returns 104
descmap uid type string offset 112 (d->offset=8 start=104) returns 112
descmap gid type string offset 120 (d->offset=16 start=104) returns 120
descmap muid type string offset 128 (d->offset=24 start=104) returns 128
descmap adt offset 136
descmap offset 136
descmap path type big offset 136 (d->offset=0 start=136) returns -1
descmap vers type int offset 144 (d->offset=8 start=136) returns -1
descmap qtype type int offset 148 (d->offset=12 start=136) returns -1
descmap qid type Sys->Qid offset 136 (d->offset=32 start=104) returns -1
descmap mode type int offset 152 (d->offset=48 start=104) returns -1
descmap atime type int offset 156 (d->offset=52 start=104) returns -1
descmap mtime type int offset 160 (d->offset=56 start=104) returns -1
descmap length type big offset 168 (d->offset=64 start=104) returns -1
descmap dtype type int offset 176 (d->offset=72 start=104) returns -1
descmap dev type int offset 180 (d->offset=76 start=104) returns -1
descmap info type Sys->Dir offset 104 (d->offset=104 start=0) returns 128
descmap .t112 type int offset 184 (d->offset=184 start=0) returns -1
descmap .t113 type int offset 188 (d->offset=188 start=0) returns -1
descmap .b114 type big offset 192 (d->offset=192 start=0) returns -1
descmap pathlist type list of string offset 200 (d->offset=200 start=0) returns 200
descmap progname type string offset 208 (d->offset=208 start=0) returns 208
descmap err type string offset 216 (d->offset=216 start=0) returns 216
descmap path type string offset 224 (d->offset=224 start=0) returns 224
descmap mod type Command offset 232 (d->offset=232 start=0) returns 232
descmap argv type list of string offset 240 (d->offset=240 start=0) returns 240
descmap extstart type chan of int offset 248 (d->offset=248 start=0) returns 248
descmap fd type ref Sys->FD offset 256 (d->offset=256 start=0) returns 256
descmap npath type string offset 264 (d->offset=264 start=0) returns 264
descmap pl type list of ref Listnode offset 272 (d->offset=272 start=0) returns 272
descmap .b115 type big offset 280 (d->offset=280 start=0) returns -1
descmap .t111 type ref Listnode offset 288 (d->offset=288 start=0) returns 288
fncom: failurestatus 7 418e68
ecom: 
= string 10 1
  name s string 0 0
  slice string 10 1
    name e string 0 0
    seq no type 10 1
      const (5) int 6 0
      nothing no type 10 1
ecom: 
slice string 10 1
  name e string 0 0
  seq no type 10 1
    const (5) int 6 0
    nothing no type 10 1
ecom to: 
name s string 0 0
ecom: 
len int 10 1
  name e string 0 0
ecom to: 
name .t116 int 0 0
ecom: 
name e string 0 0
ecom to: 
name s string 0 0
eacom: 
inds int 10 1
  name s string 0 0
  const (0) int 6 0
ecom: 
inds int 10 1
  name s string 0 0
  const (0) int 6 0
ecom to: 
name .t116 int 0 0
eacom: 
inds int 10 1
  name s string 0 0
  const (0) int 6 0
ecom: 
inds int 10 1
  name s string 0 0
  const (0) int 6 0
ecom to: 
name .t116 int 0 0
ecom: 
= string 10 1
  name s string 0 0
  slice string 10 1
    name s string 0 0
    seq no type 10 1
      const (1) int 6 0
      nothing no type 10 1
ecom: 
slice string 10 1
  name s string 0 0
  seq no type 10 1
    const (1) int 6 0
    nothing no type 10 1
ecom to: 
name s string 0 0
ecom: 
len int 10 1
  name s string 0 0
ecom to: 
name .t116 int 0 0
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
const failed string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: failurestatus
64: argument e string ref 1
72: local .t116 int ref 1
80: local s string ref 8
generate desc for failurestatus
descmap offset 0
descmap e type string offset 64 (d->offset=64 start=0) returns 64
descmap .t116 type int offset 72 (d->offset=72 start=0) returns -1
descmap s type string offset 80 (d->offset=80 start=0) returns 80
fncom: runhashpling 2 418f28
ecom: 
= array of byte 10 1
  name header array of byte 0 0
  array array of byte 10 1
    const (1024) int 6 0
ecom: 
array array of byte 10 1
  const (1024) int 6 0
ecom to: 
name header array of byte 0 0
generate desc for byte
ecom: 
= int 10 2
  name n int 0 0
  call int 10 2
    -> fn(fd: ref Sys->FD, buf: array of byte, n: int): int 12 1
      name sys Sys 1 0
      name read nothing 11 1
    seq no type 10 1
      name fd ref Sys->FD 0 0
      seq no type 10 1
        name header array of byte 0 0
        seq no type 10 1
          len int 10 1
            name header array of byte 0 0
ecom: 
call int 10 2
  -> fn(fd: ref Sys->FD, buf: array of byte, n: int): int 12 1
    name sys Sys 1 0
    name read nothing 11 1
  seq no type 10 1
    name fd ref Sys->FD 0 0
    seq no type 10 1
      name header array of byte 0 0
      seq no type 10 1
        len int 10 1
          name header array of byte 0 0
ecom to: 
name n int 0 0
generate desc for big
ecom: 
name fd ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b117 big 0 0
    const (64) int 6 0
ecom: 
name header array of byte 0 0
ecom to: 
* array of byte 8 0
  + int 15 0
    name .b117 big 0 0
    const (72) int 6 0
ecom: 
len int 10 1
  name header array of byte 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b117 big 0 0
    const (80) int 6 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
eacom: 
* byte 10 1
  indx big 10 1
    name header array of byte 0 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  name header array of byte 0 0
  name i int 0 0
ecom to: 
name .b117 big 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
eacom: 
* byte 10 1
  indx big 10 1
    name header array of byte 0 0
    const (0) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name header array of byte 0 0
  const (0) int 6 0
ecom to: 
name .b117 big 0 0
eacom: 
* byte 10 1
  indx big 10 1
    name header array of byte 0 0
    const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name header array of byte 0 0
  const (1) int 6 0
ecom to: 
name .b117 big 0 0
ecom: 
call no type 10 2
  name diagnostic fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      + string 10 1
        const bad script header on  string 1 0
        name path string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b117 big 0 0
    const (64) int 6 0
ecom: 
+ string 10 1
  const bad script header on  string 1 0
  name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b117 big 0 0
    const (72) int 6 0
ecom: 
const bad header string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
= (int, list of string) 10 2
  tuple (int, list of string) 10 1
    seq nothing 10 1
      name nil polymorphic type 1 0
      seq nothing 10 1
        name args list of string 0 0
  call (int, list of string) 10 2
    -> fn(s: string, delim: string): (int, list of string) 12 1
      name sys Sys 1 0
      name tokenize nothing 11 1
    seq no type 10 2
      cast string 10 1
        slice array of byte 10 1
          name header array of byte 0 0
          seq no type 10 1
            const (2) int 6 0
            name i int 0 0
      seq no type 10 1
        const  	 string 1 0
generate desc for (int, list of string)
ecom: 
call (int, list of string) 10 2
  -> fn(s: string, delim: string): (int, list of string) 12 1
    name sys Sys 1 0
    name tokenize nothing 11 1
  seq no type 10 2
    cast string 10 1
      slice array of byte 10 1
        name header array of byte 0 0
        seq no type 10 1
          const (2) int 6 0
          name i int 0 0
    seq no type 10 1
      const  	 string 1 0
ecom to: 
name .b118 (int, list of string) 0 0
generate desc for big
ecom: 
cast string 10 1
  slice array of byte 10 1
    name header array of byte 0 0
    seq no type 10 1
      const (2) int 6 0
      name i int 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b117 big 0 0
    const (64) int 6 0
eacom: 
slice array of byte 10 1
  name header array of byte 0 0
  seq no type 10 1
    const (2) int 6 0
    name i int 0 0
ecom: 
slice array of byte 10 1
  name header array of byte 0 0
  seq no type 10 1
    const (2) int 6 0
    name i int 0 0
ecom to: 
name .t119 array of byte 0 0
ecom: 
name header array of byte 0 0
ecom to: 
name .t119 array of byte 0 0
ecom: 
= array of byte 10 1
  name .t119 array of byte 0 0
  name nil array of byte 1 0
ecom: 
name nil array of byte 1 0
ecom to: 
name .t119 array of byte 0 0
ecom: 
const  	 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b117 big 0 0
    const (72) int 6 0
ecom: 
= list of string 10 1
  * list of string 0 0
    + int 13 1
      adr int 13 1
        name .b118 (int, list of string) 0 0
      const t1 (8) int 6 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
* list of string 0 0
  + int 13 1
    adr int 13 1
      name .b118 (int, list of string) 0 0
    const t1 (8) int 6 0
ecom: 
call no type 10 2
  name diagnostic fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      + string 10 1
        const empty header on  string 1 0
        name path string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b117 big 0 0
    const (64) int 6 0
ecom: 
+ string 10 1
  const empty header on  string 1 0
  name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b117 big 0 0
    const (72) int 6 0
ecom: 
const bad header string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
= array of byte 10 1
  name header array of byte 0 0
  name nil polymorphic type 1 0
ecom: 
name nil array of byte 1 0
ecom to: 
name header array of byte 0 0
ecom: 
= ref Sys->FD 10 1
  name fd ref Sys->FD 0 0
  name nil polymorphic type 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name fd ref Sys->FD 0 0
ecom: 
= list of ref Listnode 10 1
  name nargs list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    ref ref Listnode 10 1
      tuple Listnode 10 1
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            hd string 10 1
              name args list of string 0 0
    name nargs list of ref Listnode 0 0
ecom: 
:: list of ref Listnode 10 1
  ref ref Listnode 10 1
    tuple Listnode 10 1
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          hd string 10 1
            name args list of string 0 0
  name nargs list of ref Listnode 0 0
ecom to: 
name nargs list of ref Listnode 0 0
eacom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        hd string 10 1
          name args list of string 0 0
ecom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        hd string 10 1
          name args list of string 0 0
ecom to: 
name .t119 ref Listnode 0 0
generate desc for Listnode
ecom: 
tuple Listnode 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      hd string 10 1
        name args list of string 0 0
ecom to: 
* Listnode 8 0
  name .t119 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t119 ref Listnode 0 0
    const (0) int 6 0
ecom: 
hd string 10 1
  name args list of string 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t119 ref Listnode 0 0
    const (8) int 6 0
ecom: 
= ref Listnode 10 1
  name .t119 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t119 ref Listnode 0 0
ecom: 
= list of string 10 1
  name args list of string 0 0
  tl list of string 10 1
    name args list of string 0 0
ecom: 
tl list of string 10 1
  name args list of string 0 0
ecom to: 
name args list of string 0 0
ecom: 
= list of ref Listnode 10 1
  name nargs list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    ref ref Listnode 10 1
      tuple Listnode 10 1
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name path string 0 0
    name nargs list of ref Listnode 0 0
ecom: 
:: list of ref Listnode 10 1
  ref ref Listnode 10 1
    tuple Listnode 10 1
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          name path string 0 0
  name nargs list of ref Listnode 0 0
ecom to: 
name nargs list of ref Listnode 0 0
eacom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name path string 0 0
ecom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name path string 0 0
ecom to: 
name .t119 ref Listnode 0 0
generate desc for Listnode
ecom: 
tuple Listnode 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      name path string 0 0
ecom to: 
* Listnode 8 0
  name .t119 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t119 ref Listnode 0 0
    const (0) int 6 0
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t119 ref Listnode 0 0
    const (8) int 6 0
ecom: 
= ref Listnode 10 1
  name .t119 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t119 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name nargs list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    hd ref Listnode 10 1
      name argv list of ref Listnode 0 0
    name nargs list of ref Listnode 0 0
ecom: 
:: list of ref Listnode 10 1
  hd ref Listnode 10 1
    name argv list of ref Listnode 0 0
  name nargs list of ref Listnode 0 0
ecom to: 
name nargs list of ref Listnode 0 0
eacom: 
hd ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom to: 
name .t119 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t119 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t119 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name argv list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name argv list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom to: 
name argv list of ref Listnode 0 0
ecom: 
call string 10 2
  name runexternal fn(ctxt: ref Context, args: list of ref Listnode, last: int): string 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      call list of ref Listnode 10 2
        name revlist fn(l: list of ref Listnode): list of ref Listnode 11 1
        seq no type 10 1
          name nargs list of ref Listnode 0 0
      seq no type 10 1
        name last int 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
generate desc for big
ecom: 
call list of ref Listnode 10 2
  name revlist fn(l: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name nargs list of ref Listnode 0 0
ecom to: 
name .t119 list of ref Listnode 0 0
generate desc for big
ecom: 
name nargs list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b120 big 0 0
    const (64) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b117 big 0 0
    const (64) int 6 0
ecom: 
name .t119 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b117 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t119 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t119 list of ref Listnode 0 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b117 big 0 0
    const (80) int 6 0
fn: runhashpling
64: argument ctxt ref Context ref 3
72: argument fd ref Sys->FD ref 2
80: argument path string ref 3
88: argument argv list of ref Listnode ref 4
96: argument last int ref 1
100: local i int ref 7
104: local n int ref 3
112: local .b117 big ref 8
120: local header array of byte ref 8
128: local nargs list of ref Listnode ref 7
136: local args list of string ref 6
144: local .b120 big ref 1
152: local .t119 array of byte ref 1
160: local .b118 (int, list of string) ref 1
generate desc for runhashpling
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap fd type ref Sys->FD offset 72 (d->offset=72 start=0) returns 72
descmap path type string offset 80 (d->offset=80 start=0) returns 80
descmap argv type list of ref Listnode offset 88 (d->offset=88 start=0) returns 88
descmap last type int offset 96 (d->offset=96 start=0) returns -1
descmap i type int offset 100 (d->offset=100 start=0) returns -1
descmap n type int offset 104 (d->offset=104 start=0) returns -1
descmap .b117 type big offset 112 (d->offset=112 start=0) returns -1
descmap header type array of byte offset 120 (d->offset=120 start=0) returns 120
descmap nargs type list of ref Listnode offset 128 (d->offset=128 start=0) returns 128
descmap args type list of string offset 136 (d->offset=136 start=0) returns 136
descmap .b120 type big offset 144 (d->offset=144 start=0) returns -1
descmap .t119 type array of byte offset 152 (d->offset=152 start=0) returns 152
descmap adt offset 160
descmap offset 160
descmap t0 type int offset 160 (d->offset=0 start=160) returns -1
descmap t1 type list of string offset 168 (d->offset=8 start=160) returns 168
descmap .b118 type (int, list of string) offset 160 (d->offset=160 start=0) returns 168
fncom: runblock 2 418fe8
ecom: 
= ref Node 10 1
  name cmd ref Node 0 0
  * ref Node 10 1
    hd ref Listnode 10 1
      name args list of ref Listnode 0 0
ecom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom to: 
name cmd ref Node 0 0
eacom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t121 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t121 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t121 ref Listnode 0 0
ecom: 
= ref YYLEX 10 2
  name lex ref YYLEX 0 0
  call ref YYLEX 10 2
    name initstring fn(s: string): ref YYLEX 11 1
    seq no type 10 1
      * string 10 1
        + int 10 1
          hd ref Listnode 10 1
            name args list of ref Listnode 0 0
          const word (8) int 6 0
ecom: 
call ref YYLEX 10 2
  name initstring fn(s: string): ref YYLEX 11 1
  seq no type 10 1
    * string 10 1
      + int 10 1
        hd ref Listnode 10 1
          name args list of ref Listnode 0 0
        const word (8) int 6 0
ecom to: 
name lex ref YYLEX 0 0
generate desc for big
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b122 big 0 0
    const (64) int 6 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t121 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t121 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t121 ref Listnode 0 0
ecom: 
= (ref Node, string) 10 2
  tuple (ref Node, string) 10 1
    seq no type 10 1
      name cmd ref Node 0 0
      seq no type 10 1
        name err string 0 0
  call (ref Node, string) 10 2
    name doparse fn(l: ref YYLEX, prompt: string, showline: int): (ref Node, string) 11 1
    seq no type 10 1
      name lex ref YYLEX 0 0
      seq no type 10 1
        const  string 1 0
        seq no type 10 1
          const (0) int 6 0
generate desc for (ref Node, string)
descmap adt offset 0
descmap offset 0
descmap t0 type ref Node offset 0 (d->offset=0 start=0) returns 0
descmap t1 type string offset 8 (d->offset=8 start=0) returns 8
generate desc for (ref Node, string)
	desc	$-1,16,"c0"
ecom: 
call (ref Node, string) 10 2
  name doparse fn(l: ref YYLEX, prompt: string, showline: int): (ref Node, string) 11 1
  seq no type 10 1
    name lex ref YYLEX 0 0
    seq no type 10 1
      const  string 1 0
      seq no type 10 1
        const (0) int 6 0
ecom to: 
name .b123 (ref Node, string) 0 0
generate desc for big
ecom: 
name lex ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b122 big 0 0
    const (64) int 6 0
ecom: 
const  string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b122 big 0 0
    const (72) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b122 big 0 0
    const (80) int 6 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name .b123 (ref Node, string) 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name .b123 (ref Node, string) 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b123 (ref Node, string) 0 0
      const t1 (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b123 (ref Node, string) 0 0
    const t1 (8) int 6 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const parse error string 1 0
      seq no type 10 1
        + string 10 1
          const sh:  string 1 0
          name err string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b122 big 0 0
    const (64) int 6 0
ecom: 
const parse error string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b122 big 0 0
    const (72) int 6 0
ecom: 
+ string 10 1
  const sh:  string 1 0
  name err string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b122 big 0 0
    const (80) int 6 0
ecom: 
= ref Node 10 1
  * ref Node 10 1
    hd ref Listnode 10 1
      name args list of ref Listnode 0 0
  name cmd ref Node 0 0
eacom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t121 ref Listnode 0 0
ecom: 
name cmd ref Node 0 0
ecom to: 
* ref Node 8 1
  name .t121 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t121 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t121 ref Listnode 0 0
ecom: 
= string 10 1
  name err string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name err string 0 0
ecom: 
= ref YYLEX 10 1
  name lex ref YYLEX 0 0
  name nil ref YYLEX 1 0
ecom: 
name nil ref YYLEX 1 0
ecom to: 
name lex ref YYLEX 0 0
ecom: 
call no type 10 2
  name push fn(ctxt: self ref Context) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b122 big 0 0
    const (64) int 6 0
ecom: 
call no type 10 2
  name setlocal fn(ctxt: self ref Context, name: string, val: list of ref Listnode) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const 0 string 1 0
      seq no type 10 1
        :: list of ref Listnode 10 1
          hd ref Listnode 10 1
            name args list of ref Listnode 0 0
          name nil polymorphic type 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b122 big 0 0
    const (64) int 6 0
ecom: 
const 0 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b122 big 0 0
    const (72) int 6 0
ecom: 
:: list of ref Listnode 10 1
  hd ref Listnode 10 1
    name args list of ref Listnode 0 0
  name nil polymorphic type 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b122 big 0 0
    const (80) int 6 0
eacom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t121 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t124 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t121 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t121 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t124 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t124 list of ref Listnode 0 0
ecom: 
call no type 10 2
  name setlocal fn(ctxt: self ref Context, name: string, val: list of ref Listnode) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const * string 1 0
      seq no type 10 1
        tl list of ref Listnode 10 1
          name args list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b122 big 0 0
    const (64) int 6 0
ecom: 
const * string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b122 big 0 0
    const (72) int 6 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b122 big 0 0
    const (80) int 6 0
ecom: 
= ref Node 10 1
  name cmd ref Node 0 0
  * ref Node 8 0
    + int 15 1
      name cmd ref Node 0 0
      const left (8) int 6 0
ecom: 
* ref Node 8 0
  + int 15 1
    name cmd ref Node 0 0
    const left (8) int 6 0
ecom to: 
name cmd ref Node 0 0
ecom: 
= string 10 2
  name status string 0 0
  call string 10 2
    name walk fn(ctxt: ref Context, n: ref Node, last: int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name cmd ref Node 0 0
        seq no type 10 1
          name last int 0 0
ecom: 
call string 10 2
  name walk fn(ctxt: ref Context, n: ref Node, last: int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name cmd ref Node 0 0
      seq no type 10 1
        name last int 0 0
ecom to: 
name status string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b122 big 0 0
    const (64) int 6 0
ecom: 
name cmd ref Node 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b122 big 0 0
    const (72) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b122 big 0 0
    const (80) int 6 0
ecom: 
call no type 10 2
  name pop fn(ctxt: self ref Context) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b122 big 0 0
    const (64) int 6 0
ecom: 
name status string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
= string 10 1
  name status string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name status string 0 0
ecom: 
call no type 10 2
  name pop fn(ctxt: self ref Context) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b122 big 0 0
    const (64) int 6 0
ecom: 
raise nothing 10 1
  name .ex2 exception 0 0
fn: runblock
64: argument ctxt ref Context ref 7
72: argument args list of ref Listnode ref 5
80: argument last int ref 1
84: local .ex2 ref exception ref 1
88: local cmd ref Node ref 10
96: local .b122 big ref 9
104: local err string ref 2
112: local lex ref YYLEX ref 2
120: local status string ref 2
128: local .t121 ref Listnode ref 1
136: local .t124 list of ref Listnode ref 1
144: local .b123 (ref Node, string) ref 1
generate desc for runblock
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap args type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap last type int offset 80 (d->offset=80 start=0) returns -1
descmap .ex2 type ref exception offset 84 (d->offset=84 start=0) returns 88
descmap cmd type ref Node offset 88 (d->offset=88 start=0) returns 88
descmap .b122 type big offset 96 (d->offset=96 start=0) returns -1
descmap err type string offset 104 (d->offset=104 start=0) returns 104
descmap lex type ref YYLEX offset 112 (d->offset=112 start=0) returns 112
descmap status type string offset 120 (d->offset=120 start=0) returns 120
descmap .t121 type ref Listnode offset 128 (d->offset=128 start=0) returns 128
descmap .t124 type list of ref Listnode offset 136 (d->offset=136 start=0) returns 136
descmap adt offset 144
descmap offset 144
descmap t0 type ref Node offset 144 (d->offset=0 start=144) returns 144
descmap t1 type string offset 152 (d->offset=8 start=144) returns 152
descmap .b123 type (ref Node, string) offset 144 (d->offset=144 start=0) returns 152
generate desc for .ex2
descmap offset 0
descmap status type string offset 120 (d->offset=120 start=0) returns 120
fncom: trybuiltin 2 4190a8
ecom: 
= (int, list of Shellbuiltin) 10 2
  tuple (int, list of Shellbuiltin) 10 1
    seq nothing 10 1
      name nil polymorphic type 1 0
      seq nothing 10 1
        name bmods list of Shellbuiltin 0 0
  call (int, list of Shellbuiltin) 10 2
    name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
    seq no type 10 2
      * ref Builtins 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const builtins (8) int 6 0
      seq no type 10 1
        * string 10 1
          + int 10 1
            hd ref Listnode 10 1
              name args list of ref Listnode 0 0
            const word (8) int 6 0
generate desc for (int, list of Shellbuiltin)
ecom: 
call (int, list of Shellbuiltin) 10 2
  name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
  seq no type 10 2
    * ref Builtins 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const builtins (8) int 6 0
    seq no type 10 1
      * string 10 1
        + int 10 1
          hd ref Listnode 10 1
            name args list of ref Listnode 0 0
          const word (8) int 6 0
ecom to: 
name .b125 (int, list of Shellbuiltin) 0 0
generate desc for big
ecom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const builtins (8) int 6 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b126 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const builtins (8) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t127 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t127 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t127 ref Environment 0 0
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b126 big 0 0
    const (72) int 6 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t127 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t127 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t127 ref Listnode 0 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b125 (int, list of Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b125 (int, list of Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
tuple (int, polymorphic type) 10 1
  seq no type 10 1
    const (0) int 6 0
    seq no type 10 1
      name nil polymorphic type 1 0
ecom to: 
* (int, polymorphic type) 8 0
  name .ret int 0 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * (int, polymorphic type) 8 0
        name .ret int 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  + int 15 1
    adr int 15 1
      * (int, polymorphic type) 8 0
        name .ret int 0 0
    const (8) int 6 0
ecom: 
tuple (int, string) 10 2
  seq no type 10 2
    const (1) int 6 0
    seq no type 10 2
      call string 10 2
        -> fn(c: ref Context, sh: Sh, cmd: list of ref Listnode, last: int): string 12 2
          hd Shellbuiltin 10 1
            name bmods list of Shellbuiltin 0 0
          name runbuiltin nothing 11 1
        seq no type 10 1
          name ctxt ref Context 0 0
          seq no type 10 1
            name myself Sh 1 0
            seq no type 10 1
              name args list of ref Listnode 0 0
              seq no type 10 1
                name lseq int 0 0
ecom to: 
* (int, string) 8 0
  name .ret int 0 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * (int, string) 8 0
        name .ret int 0 0
    const (0) int 6 0
ecom: 
call string 10 2
  -> fn(c: ref Context, sh: Sh, cmd: list of ref Listnode, last: int): string 12 2
    hd Shellbuiltin 10 1
      name bmods list of Shellbuiltin 0 0
    name runbuiltin nothing 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name myself Sh 1 0
      seq no type 10 1
        name args list of ref Listnode 0 0
        seq no type 10 1
          name lseq int 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * (int, string) 8 0
        name .ret int 0 0
    const (8) int 6 0
generate desc for big
eacom: 
hd Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom: 
hd Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom to: 
name .t127 Shellbuiltin 0 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b126 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b126 big 0 0
    const (72) int 6 0
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b126 big 0 0
    const (80) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b126 big 0 0
    const (88) int 6 0
ecom: 
= Shellbuiltin 10 1
  name .t127 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t127 Shellbuiltin 0 0
fn: trybuiltin
64: argument ctxt ref Context ref 2
72: argument args list of ref Listnode ref 2
80: argument lseq int ref 1
88: local bmods list of Shellbuiltin ref 3
96: local .b126 big ref 2
104: local .t127 ref Environment ref 1
112: local .b125 (int, list of Shellbuiltin) ref 1
generate desc for trybuiltin
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap args type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap lseq type int offset 80 (d->offset=80 start=0) returns -1
descmap bmods type list of Shellbuiltin offset 88 (d->offset=88 start=0) returns 88
descmap .b126 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t127 type ref Environment offset 104 (d->offset=104 start=0) returns 104
descmap adt offset 112
descmap offset 112
descmap t0 type int offset 112 (d->offset=0 start=112) returns -1
descmap t1 type list of Shellbuiltin offset 120 (d->offset=8 start=112) returns 120
descmap .b125 type (int, list of Shellbuiltin) offset 112 (d->offset=112 start=0) returns 120
fncom: keepfdstr 1 419168
fncom: externalexec 2 419228
ecom: 
used int 10 2
  call int 10 2
    -> fn(flags: int, movefd: list of int): int 12 1
      name sys Sys 1 0
      name pctl nothing 11 1
    seq no type 10 1
      const NEWFD (1) int 6 0
      seq no type 10 1
        name keepfds list of int 0 0
ecom: 
call int 10 2
  -> fn(flags: int, movefd: list of int): int 12 1
    name sys Sys 1 0
    name pctl nothing 11 1
  seq no type 10 1
    const NEWFD (1) int 6 0
    seq no type 10 1
      name keepfds list of int 0 0
ecom to: 
name .t128 int 0 0
generate desc for big
ecom: 
const NEWFD (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b129 big 0 0
    const (64) int 6 0
ecom: 
name keepfds list of int 0 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b129 big 0 0
    const (72) int 6 0
ecom: 
<-= int 10 2
  name startchan chan of int 0 0
  call int 10 2
    -> fn(flags: int, movefd: list of int): int 12 1
      name sys Sys 1 0
      name pctl nothing 11 1
    seq no type 10 1
      const (0) int 6 0
      seq no type 10 1
        name nil list of int 1 0
eacom: 
call int 10 2
  -> fn(flags: int, movefd: list of int): int 12 1
    name sys Sys 1 0
    name pctl nothing 11 1
  seq no type 10 1
    const (0) int 6 0
    seq no type 10 1
      name nil list of int 1 0
ecom: 
call int 10 2
  -> fn(flags: int, movefd: list of int): int 12 1
    name sys Sys 1 0
    name pctl nothing 11 1
  seq no type 10 1
    const (0) int 6 0
    seq no type 10 1
      name nil list of int 1 0
ecom to: 
name .t128 int 0 0
generate desc for big
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b129 big 0 0
    const (64) int 6 0
ecom: 
name nil list of int 1 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b129 big 0 0
    const (72) int 6 0
ecom: 
call no type 10 2
  -> fn(ctxt: ref Draw->Context, argv: list of string) 12 1
    name mod Command 0 0
    name init nothing 11 1
  seq no type 10 1
    name drawcontext ref Draw->Context 0 0
    seq no type 10 1
      name argv list of string 0 0
generate desc for big
ecom: 
name drawcontext ref Draw->Context 0 0
ecom to: 
* ref Draw->Context 8 0
  + int 15 0
    name .b129 big 0 0
    const (64) int 6 0
ecom: 
name argv list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b129 big 0 0
    const (72) int 6 0
ecom: 
raise nothing 10 1
  const fail:write on closed pipe string 1 0
fn: externalexec
64: argument mod Command ref 1
72: argument drawcontext ref Draw->Context ref 1
80: argument argv list of string ref 3
88: argument startchan chan of int ref 1
96: argument keepfds list of int ref 1
104: local .ex3 ref exception ref 1
108: local .t128 int ref 1
112: local .b129 big ref 3
generate desc for externalexec
descmap offset 0
descmap mod type Command offset 64 (d->offset=64 start=0) returns 64
descmap drawcontext type ref Draw->Context offset 72 (d->offset=72 start=0) returns 72
descmap argv type list of string offset 80 (d->offset=80 start=0) returns 80
descmap startchan type chan of int offset 88 (d->offset=88 start=0) returns 88
descmap keepfds type list of int offset 96 (d->offset=96 start=0) returns 96
descmap .ex3 type ref exception offset 104 (d->offset=104 start=0) returns 104
descmap .t128 type int offset 108 (d->offset=108 start=0) returns -1
descmap .b129 type big offset 112 (d->offset=112 start=0) returns -1
fncom: dup 3 4192e8
eacom: 
* int 10 1
  * ref Sys->FD 8 0
    + int 15 1
      name ctxt ref Context 0 0
      const waitfd (8) int 6 0
ecom: 
* ref Sys->FD 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const waitfd (8) int 6 0
ecom to: 
name .t130 ref Sys->FD 0 0
ecom: 
= ref Sys->FD 10 1
  name .t130 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t130 ref Sys->FD 0 0
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 8 0
    + int 15 1
      name ctxt ref Context 0 0
      const waitfd (8) int 6 0
  call ref Sys->FD 10 1
    name waitfd fn(): ref Sys->FD 11 1
ecom: 
call ref Sys->FD 10 1
  name waitfd fn(): ref Sys->FD 11 1
ecom to: 
* ref Sys->FD 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const waitfd (8) int 6 0
generate desc for big
eacom: 
* int 10 1
  * ref Sys->FD 8 0
    + int 15 1
      name ctxt ref Context 0 0
      const waitfd (8) int 6 0
ecom: 
* ref Sys->FD 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const waitfd (8) int 6 0
ecom to: 
name .t130 ref Sys->FD 0 0
ecom: 
= ref Sys->FD 10 1
  name .t130 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t130 ref Sys->FD 0 0
ecom: 
call no type 10 2
  name panic fn(s: string) 11 1
  seq no type 10 2
    call string 10 2
      -> fn(s: string, nil: int, *): string 12 1
        name sys Sys 1 0
        name sprint nothing 11 1
      seq no type 10 1
        const reopen of waitfd gave same fd (%d) string 1 0
        seq no type 10 1
          * int 10 1
            * ref Sys->FD 8 0
              + int 15 1
                name ctxt ref Context 0 0
                const waitfd (8) int 6 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, nil: int, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const reopen of waitfd gave same fd (%d) string 1 0
    seq no type 10 1
      * int 10 1
        * ref Sys->FD 8 0
          + int 15 1
            name ctxt ref Context 0 0
            const waitfd (8) int 6 0
ecom to: 
name .t130 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type int offset 72 returns -1
generate desc for big
ecom: 
const reopen of waitfd gave same fd (%d) string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b132 big 0 0
    const (64) int 6 0
ecom: 
* int 10 1
  * ref Sys->FD 8 0
    + int 15 1
      name ctxt ref Context 0 0
      const waitfd (8) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b132 big 0 0
    const (72) int 6 0
eacom: 
* int 10 1
  * ref Sys->FD 8 0
    + int 15 1
      name ctxt ref Context 0 0
      const waitfd (8) int 6 0
ecom: 
* ref Sys->FD 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const waitfd (8) int 6 0
ecom to: 
name .t133 ref Sys->FD 0 0
ecom: 
= ref Sys->FD 10 1
  name .t133 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t133 ref Sys->FD 0 0
ecom: 
name .t130 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b131 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t130 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t130 string 0 0
ecom: 
call int 10 2
  -> fn(old: int, new: int): int 12 1
    name sys Sys 1 0
    name dup nothing 11 1
  seq no type 10 1
    name fd1 int 0 0
    seq no type 10 1
      name fd2 int 0 0
ecom to: 
* int 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name fd1 int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b132 big 0 0
    const (64) int 6 0
ecom: 
name fd2 int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b132 big 0 0
    const (68) int 6 0
fn: dup
64: argument ctxt ref Context ref 4
72: argument fd1 int ref 1
76: argument fd2 int ref 3
80: local .b131 big ref 2
88: local .b132 big ref 2
96: local .t130 ref Sys->FD ref 1
104: local .t133 ref Sys->FD ref 1
generate desc for dup
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap fd1 type int offset 72 (d->offset=72 start=0) returns -1
descmap fd2 type int offset 76 (d->offset=76 start=0) returns -1
descmap .b131 type big offset 80 (d->offset=80 start=0) returns -1
descmap .b132 type big offset 88 (d->offset=88 start=0) returns -1
descmap .t130 type ref Sys->FD offset 96 (d->offset=96 start=0) returns 96
descmap .t133 type ref Sys->FD offset 104 (d->offset=104 start=0) returns 104
fncom: doredirs 3 4193a8
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
= list of int 10 1
  name keepfds list of int 0 0
  * list of int 8 0
    + int 15 1
      name ctxt ref Context 0 0
      const keepfds (24) int 6 0
ecom: 
* list of int 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const keepfds (24) int 6 0
ecom to: 
name keepfds list of int 0 0
ecom: 
= list of Redirword 10 1
  name rl list of Redirword 0 0
  * list of Redirword 8 0
    name redirs ref Redirlist 0 0
ecom: 
* list of Redirword 8 0
  name redirs ref Redirlist 0 0
ecom to: 
name rl list of Redirword 0 0
ecom: 
= ref Redirlist 10 1
  name redirs ref Redirlist 0 0
  name nil polymorphic type 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name redirs ref Redirlist 0 0
ecom: 
= Redirword 10 2
  tuple Redirword 10 1
    seq nothing 10 1
      name rfd ref Sys->FD 0 0
      seq nothing 10 1
        name path string 0 0
        seq nothing 10 1
          tuple Redir 10 1
            seq nothing 10 1
              name mode int 0 0
              seq nothing 10 1
                name fd1 int 0 0
                seq nothing 10 1
                  name fd2 int 0 0
  hd Redirword 10 1
    name rl list of Redirword 0 0
ecom: 
hd Redirword 10 1
  name rl list of Redirword 0 0
ecom to: 
name rfd Redirword 0 0
generate desc for Redirword
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const bad redir string 1 0
      seq no type 10 1
        const sh: invalid dup string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b134 big 0 0
    const (64) int 6 0
ecom: 
const bad redir string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b134 big 0 0
    const (72) int 6 0
ecom: 
const sh: invalid dup string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b134 big 0 0
    const (80) int 6 0
eacom: 
call int 10 2
  name dup fn(ctxt: ref Context, fd1: int, fd2: int): int 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name fd2 int 0 0
      seq no type 10 1
        name fd1 int 0 0
ecom: 
call int 10 2
  name dup fn(ctxt: ref Context, fd1: int, fd2: int): int 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name fd2 int 0 0
      seq no type 10 1
        name fd1 int 0 0
ecom to: 
name .t135 int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b134 big 0 0
    const (64) int 6 0
ecom: 
name fd2 int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b134 big 0 0
    const (72) int 6 0
ecom: 
name fd1 int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b134 big 0 0
    const (76) int 6 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      const bad redir string 1 0
      seq no type 10 2
        call string 10 2
          -> fn(s: string, *): string 12 1
            name sys Sys 1 0
            name sprint nothing 11 1
          seq no type 10 1
            const sh: cannot dup: %r string 1 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const sh: cannot dup: %r string 1 0
ecom to: 
name .t136 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
generate desc for big
ecom: 
const sh: cannot dup: %r string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b137 big 0 0
    const (64) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b134 big 0 0
    const (64) int 6 0
ecom: 
const bad redir string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b134 big 0 0
    const (72) int 6 0
ecom: 
name .t136 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b134 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t136 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t136 string 0 0
ecom: 
= list of int 10 1
  name keepfds list of int 0 0
  :: list of int 10 1
    name fd1 int 0 0
    name keepfds list of int 0 0
ecom: 
:: list of int 10 1
  name fd1 int 0 0
  name keepfds list of int 0 0
ecom to: 
name keepfds list of int 0 0
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 0 0
    adr int 13 1
      name rfd Redirword 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 0 0
  adr int 13 1
    name rfd Redirword 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name rfd Redirword 0 0
      const w (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name rfd Redirword 0 0
    const w (8) int 6 0
ecom: 
= string 10 1
  name path string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name path string 0 0
eacom: 
& int 10 1
  name mode int 0 0
  const OMASK (7) int 6 0
ecom: 
& int 10 1
  name mode int 0 0
  const OMASK (7) int 6 0
ecom to: 
name .t135 int 0 0
ecom: 
= int 10 1
  name fd1 int 0 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
name fd1 int 0 0
ecom: 
= int 10 1
  name fd1 int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name fd1 int 0 0
ecom: 
= (int, int) 10 2
  tuple (int, int) 10 1
    seq nothing 10 1
      name append int 0 0
      seq nothing 10 1
        name omode int 0 0
  tuple (int, int) 10 2
    seq no type 10 2
      & int 10 1
        name mode int 0 0
        const OAPPEND (524288) int 6 0
      seq no type 10 1
        & int 10 1
          name mode int 0 0
          const (-524289) int 6 0
ecom: 
tuple (int, int) 10 2
  seq no type 10 2
    & int 10 1
      name mode int 0 0
      const OAPPEND (524288) int 6 0
    seq no type 10 1
      & int 10 1
        name mode int 0 0
        const (-524289) int 6 0
ecom to: 
name append (int, int) 0 0
ecom: 
& int 10 1
  name mode int 0 0
  const OAPPEND (524288) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      name append (int, int) 0 0
    const (0) int 6 0
ecom: 
& int 10 1
  name mode int 0 0
  const (-524289) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      name append (int, int) 0 0
    const (4) int 6 0
ecom: 
= string 10 1
  name err string 0 0
  const  string 1 0
ecom: 
const  string 1 0
ecom to: 
name err string 0 0
ecom: 
= ref Sys->FD 10 2
  name rfd ref Sys->FD 0 0
  call ref Sys->FD 10 2
    -> fn(s: string, mode: int): ref Sys->FD 12 1
      name sys Sys 1 0
      name open nothing 11 1
    seq no type 10 1
      name path string 0 0
      seq no type 10 1
        name omode int 0 0
ecom: 
call ref Sys->FD 10 2
  -> fn(s: string, mode: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name open nothing 11 1
  seq no type 10 1
    name path string 0 0
    seq no type 10 1
      name omode int 0 0
ecom to: 
name rfd ref Sys->FD 0 0
generate desc for big
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b137 big 0 0
    const (64) int 6 0
ecom: 
name omode int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b137 big 0 0
    const (72) int 6 0
ecom: 
= ref Sys->FD 10 2
  name rfd ref Sys->FD 0 0
  call ref Sys->FD 10 2
    -> fn(s: string, mode: int): ref Sys->FD 12 1
      name sys Sys 1 0
      name open nothing 11 1
    seq no type 10 1
      name path string 0 0
      seq no type 10 1
        name omode int 0 0
ecom: 
call ref Sys->FD 10 2
  -> fn(s: string, mode: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name open nothing 11 1
  seq no type 10 1
    name path string 0 0
    seq no type 10 1
      name omode int 0 0
ecom to: 
name rfd ref Sys->FD 0 0
generate desc for big
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b137 big 0 0
    const (64) int 6 0
ecom: 
name omode int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b137 big 0 0
    const (72) int 6 0
ecom: 
= string 10 2
  name err string 0 0
  call string 10 2
    -> fn(s: string, *): string 12 1
      name sys Sys 1 0
      name sprint fn(s: string, *): string 11 1
    seq no type 10 1
      const %r string 1 0
ecom: 
call string 10 2
  -> fn(s: string, *): string 12 1
    name sys Sys 1 0
    name sprint fn(s: string, *): string 11 1
  seq no type 10 1
    const %r string 1 0
ecom to: 
name err string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
generate desc for big
ecom: 
const %r string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b137 big 0 0
    const (64) int 6 0
eacom: 
call int 10 2
  name nonexistent fn(e: string): int 11 1
  seq no type 10 1
    name err string 0 0
ecom: 
call int 10 2
  name nonexistent fn(e: string): int 11 1
  seq no type 10 1
    name err string 0 0
ecom to: 
name .t135 int 0 0
generate desc for big
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b137 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 2
  name rfd ref Sys->FD 0 0
  call ref Sys->FD 10 2
    -> fn(s: string, mode: int, perm: int): ref Sys->FD 12 1
      name sys Sys 1 0
      name create nothing 11 1
    seq no type 10 1
      name path string 0 0
      seq no type 10 1
        name omode int 0 0
        seq no type 10 1
          const (438) int 6 0
ecom: 
call ref Sys->FD 10 2
  -> fn(s: string, mode: int, perm: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name create nothing 11 1
  seq no type 10 1
    name path string 0 0
    seq no type 10 1
      name omode int 0 0
      seq no type 10 1
        const (438) int 6 0
ecom to: 
name rfd ref Sys->FD 0 0
generate desc for big
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b137 big 0 0
    const (64) int 6 0
ecom: 
name omode int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b137 big 0 0
    const (72) int 6 0
ecom: 
const (438) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b137 big 0 0
    const (76) int 6 0
ecom: 
= string 10 1
  name err string 0 0
  name nil polymorphic type 1 0
ecom: 
name nil string 1 0
ecom to: 
name err string 0 0
ecom: 
= ref Sys->FD 10 2
  name rfd ref Sys->FD 0 0
  call ref Sys->FD 10 2
    -> fn(s: string, mode: int, perm: int): ref Sys->FD 12 1
      name sys Sys 1 0
      name create nothing 11 1
    seq no type 10 1
      name path string 0 0
      seq no type 10 1
        name omode int 0 0
        seq no type 10 1
          const (438) int 6 0
ecom: 
call ref Sys->FD 10 2
  -> fn(s: string, mode: int, perm: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name create nothing 11 1
  seq no type 10 1
    name path string 0 0
    seq no type 10 1
      name omode int 0 0
      seq no type 10 1
        const (438) int 6 0
ecom to: 
name rfd ref Sys->FD 0 0
generate desc for big
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b137 big 0 0
    const (64) int 6 0
ecom: 
name omode int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b137 big 0 0
    const (72) int 6 0
ecom: 
const (438) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b137 big 0 0
    const (76) int 6 0
ecom: 
= string 10 2
  name err string 0 0
  call string 10 2
    -> fn(s: string, *): string 12 1
      name sys Sys 1 0
      name sprint fn(s: string, *): string 11 1
    seq no type 10 1
      const %r string 1 0
ecom: 
call string 10 2
  -> fn(s: string, *): string 12 1
    name sys Sys 1 0
    name sprint fn(s: string, *): string 11 1
  seq no type 10 1
    const %r string 1 0
ecom to: 
name err string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
generate desc for big
ecom: 
const %r string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b137 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 2
  name rfd ref Sys->FD 0 0
  call ref Sys->FD 10 2
    -> fn(s: string, mode: int): ref Sys->FD 12 1
      name sys Sys 1 0
      name open nothing 11 1
    seq no type 10 1
      name path string 0 0
      seq no type 10 1
        name omode int 0 0
ecom: 
call ref Sys->FD 10 2
  -> fn(s: string, mode: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name open nothing 11 1
  seq no type 10 1
    name path string 0 0
    seq no type 10 1
      name omode int 0 0
ecom to: 
name rfd ref Sys->FD 0 0
generate desc for big
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b137 big 0 0
    const (64) int 6 0
ecom: 
name omode int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b137 big 0 0
    const (72) int 6 0
ecom: 
= string 10 2
  name nerr string 0 0
  call string 10 2
    -> fn(s: string, *): string 12 1
      name sys Sys 1 0
      name sprint fn(s: string, *): string 11 1
    seq no type 10 1
      const %r string 1 0
ecom: 
call string 10 2
  -> fn(s: string, *): string 12 1
    name sys Sys 1 0
    name sprint fn(s: string, *): string 11 1
  seq no type 10 1
    const %r string 1 0
ecom to: 
name nerr string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
generate desc for big
ecom: 
const %r string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b137 big 0 0
    const (64) int 6 0
eacom: 
call int 10 2
  name nonexistent fn(e: string): int 11 1
  seq no type 10 1
    name nerr string 0 0
ecom: 
call int 10 2
  name nonexistent fn(e: string): int 11 1
  seq no type 10 1
    name nerr string 0 0
ecom to: 
name .t135 int 0 0
generate desc for big
ecom: 
name nerr string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b137 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name err string 0 0
  name nerr string 0 0
ecom: 
name nerr string 0 0
ecom to: 
name err string 0 0
ecom: 
= string 10 1
  name nerr string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name nerr string 0 0
ecom: 
= string 10 2
  name err string 0 0
  call string 10 2
    -> fn(s: string, *): string 12 1
      name sys Sys 1 0
      name sprint fn(s: string, *): string 11 1
    seq no type 10 1
      const %r string 1 0
ecom: 
call string 10 2
  -> fn(s: string, *): string 12 1
    name sys Sys 1 0
    name sprint fn(s: string, *): string 11 1
  seq no type 10 1
    const %r string 1 0
ecom to: 
name err string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
generate desc for big
ecom: 
const %r string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b137 big 0 0
    const (64) int 6 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      const bad redir string 1 0
      seq no type 10 2
        call string 10 2
          -> fn(s: string, nil: string, nil: string, *): string 12 1
            name sys Sys 1 0
            name sprint nothing 11 1
          seq no type 10 1
            const sh: cannot open %s: %s string 1 0
            seq no type 10 1
              name path string 0 0
              seq no type 10 1
                name err string 0 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, nil: string, nil: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const sh: cannot open %s: %s string 1 0
    seq no type 10 1
      name path string 0 0
      seq no type 10 1
        name err string 0 0
ecom to: 
name .t136 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
descmap type string offset 80 returns 80
generate desc for big
ecom: 
const sh: cannot open %s: %s string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b134 big 0 0
    const (64) int 6 0
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b134 big 0 0
    const (72) int 6 0
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b134 big 0 0
    const (80) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b137 big 0 0
    const (64) int 6 0
ecom: 
const bad redir string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b137 big 0 0
    const (72) int 6 0
ecom: 
name .t136 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b137 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t136 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t136 string 0 0
ecom: 
used big 10 2
  call big 10 2
    -> fn(fd: ref Sys->FD, off: big, start: int): big 12 1
      name sys Sys 1 0
      name seek nothing 11 1
    seq no type 10 1
      name rfd ref Sys->FD 0 0
      seq no type 10 1
        const .B.00000000.       0 (0) big 1 0
        seq no type 10 1
          const SEEKEND (2) int 6 0
generate desc for big
ecom: 
call big 10 2
  -> fn(fd: ref Sys->FD, off: big, start: int): big 12 1
    name sys Sys 1 0
    name seek nothing 11 1
  seq no type 10 1
    name rfd ref Sys->FD 0 0
    seq no type 10 1
      const .B.00000000.       0 (0) big 1 0
      seq no type 10 1
        const SEEKEND (2) int 6 0
ecom to: 
name .b137 big 0 0
generate desc for big
ecom: 
name rfd ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b134 big 0 0
    const (64) int 6 0
ecom: 
const .B.00000000.       0 (0) big 1 0
ecom to: 
* big 8 0
  + int 15 0
    name .b134 big 0 0
    const (72) int 6 0
ecom: 
const SEEKEND (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b134 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name err string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name err string 0 0
ecom: 
used int 10 2
  call int 10 2
    name dup fn(ctxt: ref Context, fd1: int, fd2: int): int 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        * int 8 0
          name rfd ref Sys->FD 0 0
        seq no type 10 1
          name fd1 int 0 0
ecom: 
call int 10 2
  name dup fn(ctxt: ref Context, fd1: int, fd2: int): int 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * int 8 0
        name rfd ref Sys->FD 0 0
      seq no type 10 1
        name fd1 int 0 0
ecom to: 
name .t135 int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b137 big 0 0
    const (64) int 6 0
ecom: 
* int 8 0
  name rfd ref Sys->FD 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b137 big 0 0
    const (72) int 6 0
ecom: 
name fd1 int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b137 big 0 0
    const (76) int 6 0
ecom: 
= list of int 10 1
  name keepfds list of int 0 0
  :: list of int 10 1
    name fd1 int 0 0
    name keepfds list of int 0 0
ecom: 
:: list of int 10 1
  name fd1 int 0 0
  name keepfds list of int 0 0
ecom to: 
name keepfds list of int 0 0
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 0 0
    adr int 13 1
      name rfd Redirword 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 0 0
  adr int 13 1
    name rfd Redirword 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name rfd Redirword 0 0
      const w (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name rfd Redirword 0 0
    const w (8) int 6 0
ecom: 
= string 10 1
  name path string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name path string 0 0
ecom: 
= list of Redirword 10 1
  name rl list of Redirword 0 0
  tl list of Redirword 10 1
    name rl list of Redirword 0 0
ecom: 
tl list of Redirword 10 1
  name rl list of Redirword 0 0
ecom to: 
name rl list of Redirword 0 0
ecom: 
= list of int 10 1
  * list of int 8 0
    + int 15 1
      name ctxt ref Context 0 0
      const keepfds (24) int 6 0
  name keepfds list of int 0 0
ecom: 
name keepfds list of int 0 0
ecom to: 
* list of int 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const keepfds (24) int 6 0
ecom: 
:: list of int 10 1
  * int 10 1
    * ref Sys->FD 8 0
      + int 15 1
        name ctxt ref Context 0 0
        const waitfd (8) int 6 0
  name keepfds list of int 0 0
ecom to: 
* list of int 8 0
  name .ret int 0 0
eacom: 
* int 10 1
  * ref Sys->FD 8 0
    + int 15 1
      name ctxt ref Context 0 0
      const waitfd (8) int 6 0
ecom: 
* ref Sys->FD 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const waitfd (8) int 6 0
ecom to: 
name .t136 ref Sys->FD 0 0
ecom: 
name keepfds list of int 0 0
ecom to: 
name .t138 list of int 0 0
ecom: 
= ref Sys->FD 10 1
  name .t136 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t136 ref Sys->FD 0 0
ecom: 
= list of int 10 1
  name .t138 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t138 list of int 0 0
fn: doredirs
64: argument ctxt ref Context ref 8
72: argument redirs ref Redirlist ref 3
80: local append int ref 2
84: local omode int ref 6
88: local .t135 int ref 1
96: local .b137 big ref 15
104: local rfd ref Sys->FD ref 13
112: local path string ref 8
120: local mode int ref 5
124: local fd1 int ref 9
128: local fd2 int ref 3
136: local err string ref 10
144: local keepfds list of int ref 7
152: local .b134 big ref 5
160: local rl list of Redirword ref 5
168: local nerr string ref 3
176: local .t136 string ref 1
184: local .t138 list of int ref 1
generate desc for doredirs
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap redirs type ref Redirlist offset 72 (d->offset=72 start=0) returns 72
descmap append type int offset 80 (d->offset=80 start=0) returns -1
descmap omode type int offset 84 (d->offset=84 start=0) returns -1
descmap .t135 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b137 type big offset 96 (d->offset=96 start=0) returns -1
descmap rfd type ref Sys->FD offset 104 (d->offset=104 start=0) returns 104
descmap path type string offset 112 (d->offset=112 start=0) returns 112
descmap mode type int offset 120 (d->offset=120 start=0) returns -1
descmap fd1 type int offset 124 (d->offset=124 start=0) returns -1
descmap fd2 type int offset 128 (d->offset=128 start=0) returns -1
descmap err type string offset 136 (d->offset=136 start=0) returns 136
descmap keepfds type list of int offset 144 (d->offset=144 start=0) returns 144
descmap .b134 type big offset 152 (d->offset=152 start=0) returns -1
descmap rl type list of Redirword offset 160 (d->offset=160 start=0) returns 160
descmap nerr type string offset 168 (d->offset=168 start=0) returns 168
descmap .t136 type string offset 176 (d->offset=176 start=0) returns 176
descmap .t138 type list of int offset 184 (d->offset=184 start=0) returns 184
fncom: waitfd 5 419468
ecom: 
= string 10 2
  name wf string 0 0
  + string 10 2
    cast string 10 2
      call int 10 2
        -> fn(flags: int, movefd: list of int): int 12 1
          name sys Sys 1 0
          name pctl nothing 11 1
        seq no type 10 1
          const (0) int 6 0
          seq no type 10 1
            name nil list of int 1 0
    const /wait string 1 0
ecom: 
+ string 10 2
  cast string 10 2
    call int 10 2
      -> fn(flags: int, movefd: list of int): int 12 1
        name sys Sys 1 0
        name pctl nothing 11 1
      seq no type 10 1
        const (0) int 6 0
        seq no type 10 1
          name nil list of int 1 0
  const /wait string 1 0
ecom to: 
name wf string 0 0
ecom: 
cast string 10 2
  call int 10 2
    -> fn(flags: int, movefd: list of int): int 12 1
      name sys Sys 1 0
      name pctl nothing 11 1
    seq no type 10 1
      const (0) int 6 0
      seq no type 10 1
        name nil list of int 1 0
ecom to: 
name .t139 string 0 0
eacom: 
call int 10 2
  -> fn(flags: int, movefd: list of int): int 12 1
    name sys Sys 1 0
    name pctl nothing 11 1
  seq no type 10 1
    const (0) int 6 0
    seq no type 10 1
      name nil list of int 1 0
ecom: 
call int 10 2
  -> fn(flags: int, movefd: list of int): int 12 1
    name sys Sys 1 0
    name pctl nothing 11 1
  seq no type 10 1
    const (0) int 6 0
    seq no type 10 1
      name nil list of int 1 0
ecom to: 
name .t140 int 0 0
generate desc for big
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b141 big 0 0
    const (64) int 6 0
ecom: 
name nil list of int 1 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b141 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t139 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t139 string 0 0
ecom: 
= ref Sys->FD 10 2
  name waitfd ref Sys->FD 0 0
  call ref Sys->FD 10 2
    -> fn(s: string, mode: int): ref Sys->FD 12 1
      name sys Sys 1 0
      name open nothing 11 1
    seq no type 10 2
      + string 10 1
        const #p/ string 1 0
        name wf string 0 0
      seq no type 10 1
        const OREAD (0) int 6 0
ecom: 
call ref Sys->FD 10 2
  -> fn(s: string, mode: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name open nothing 11 1
  seq no type 10 2
    + string 10 1
      const #p/ string 1 0
      name wf string 0 0
    seq no type 10 1
      const OREAD (0) int 6 0
ecom to: 
name waitfd ref Sys->FD 0 0
generate desc for big
ecom: 
+ string 10 1
  const #p/ string 1 0
  name wf string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b141 big 0 0
    const (64) int 6 0
ecom: 
const OREAD (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b141 big 0 0
    const (72) int 6 0
ecom: 
= ref Sys->FD 10 2
  name waitfd ref Sys->FD 0 0
  call ref Sys->FD 10 2
    -> fn(s: string, mode: int): ref Sys->FD 12 1
      name sys Sys 1 0
      name open nothing 11 1
    seq no type 10 2
      + string 10 1
        const /prog/ string 1 0
        name wf string 0 0
      seq no type 10 1
        const OREAD (0) int 6 0
ecom: 
call ref Sys->FD 10 2
  -> fn(s: string, mode: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name open nothing 11 1
  seq no type 10 2
    + string 10 1
      const /prog/ string 1 0
      name wf string 0 0
    seq no type 10 1
      const OREAD (0) int 6 0
ecom to: 
name waitfd ref Sys->FD 0 0
generate desc for big
ecom: 
+ string 10 1
  const /prog/ string 1 0
  name wf string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b141 big 0 0
    const (64) int 6 0
ecom: 
const OREAD (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b141 big 0 0
    const (72) int 6 0
ecom: 
call no type 10 2
  name panic fn(s: string) 11 1
  seq no type 10 2
    call string 10 2
      -> fn(s: string, *): string 12 1
        name sys Sys 1 0
        name sprint nothing 11 1
      seq no type 10 1
        const cannot open wait file: %r string 1 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const cannot open wait file: %r string 1 0
ecom to: 
name .t139 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
generate desc for big
ecom: 
const cannot open wait file: %r string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b142 big 0 0
    const (64) int 6 0
ecom: 
name .t139 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b141 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t139 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t139 string 0 0
ecom: 
name waitfd ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  name .ret int 0 0
fn: waitfd
64: local .t140 int ref 1
72: local waitfd ref Sys->FD ref 5
80: local .b141 big ref 4
88: local wf string ref 3
96: local .b142 big ref 1
104: local .t139 string ref 1
generate desc for waitfd
descmap offset 0
descmap .t140 type int offset 64 (d->offset=64 start=0) returns -1
descmap waitfd type ref Sys->FD offset 72 (d->offset=72 start=0) returns 72
descmap .b141 type big offset 80 (d->offset=80 start=0) returns -1
descmap wf type string offset 88 (d->offset=88 start=0) returns 88
descmap .b142 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t139 type string offset 104 (d->offset=104 start=0) returns 104
fncom: waitfor 6 419528
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
= array of string 10 1
  name status array of string 0 0
  array array of string 10 1
    len int 10 1
      name pids list of int 0 0
ecom: 
array array of string 10 1
  len int 10 1
    name pids list of int 0 0
ecom to: 
name status array of string 0 0
eacom: 
len int 10 1
  name pids list of int 0 0
ecom: 
len int 10 1
  name pids list of int 0 0
ecom to: 
name .t143 int 0 0
generate desc for string
ecom: 
= int 10 1
  name wcount int 0 0
  len int 10 1
    name status array of string 0 0
ecom: 
len int 10 1
  name status array of string 0 0
ecom to: 
name wcount int 0 0
ecom: 
= array of byte 10 1
  name buf array of byte 0 0
  array array of byte 10 1
    const WAITLEN (192) int 6 0
ecom: 
array array of byte 10 1
  const WAITLEN (192) int 6 0
ecom to: 
name buf array of byte 0 0
generate desc for byte
ecom: 
= int 10 1
  name onebad int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name onebad int 0 0
ecom: 
= int 10 2
  name n int 0 0
  call int 10 2
    -> fn(fd: ref Sys->FD, buf: array of byte, n: int): int 12 1
      name sys Sys 1 0
      name read nothing 11 1
    seq no type 10 1
      * ref Sys->FD 8 0
        + int 15 1
          name ctxt ref Context 0 0
          const waitfd (8) int 6 0
      seq no type 10 1
        name buf array of byte 0 0
        seq no type 10 1
          len int 10 1
            name buf array of byte 0 0
ecom: 
call int 10 2
  -> fn(fd: ref Sys->FD, buf: array of byte, n: int): int 12 1
    name sys Sys 1 0
    name read nothing 11 1
  seq no type 10 1
    * ref Sys->FD 8 0
      + int 15 1
        name ctxt ref Context 0 0
        const waitfd (8) int 6 0
    seq no type 10 1
      name buf array of byte 0 0
      seq no type 10 1
        len int 10 1
          name buf array of byte 0 0
ecom to: 
name n int 0 0
generate desc for big
ecom: 
* ref Sys->FD 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const waitfd (8) int 6 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b144 big 0 0
    const (64) int 6 0
ecom: 
name buf array of byte 0 0
ecom to: 
* array of byte 8 0
  + int 15 0
    name .b144 big 0 0
    const (72) int 6 0
ecom: 
len int 10 1
  name buf array of byte 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b144 big 0 0
    const (80) int 6 0
ecom: 
call no type 10 2
  name panic fn(s: string) 11 1
  seq no type 10 2
    call string 10 2
      -> fn(s: string, *): string 12 1
        name sys Sys 1 0
        name sprint nothing 11 1
      seq no type 10 1
        const error on wait read: %r string 1 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const error on wait read: %r string 1 0
ecom to: 
name .t145 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
generate desc for big
ecom: 
const error on wait read: %r string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b146 big 0 0
    const (64) int 6 0
ecom: 
name .t145 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b144 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t145 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t145 string 0 0
ecom: 
= (int, string, string) 10 2
  tuple (int, string, string) 10 1
    seq nothing 10 1
      name who int 0 0
      seq nothing 10 1
        name line string 0 0
        seq nothing 10 1
          name s string 0 0
  call (int, string, string) 10 2
    name parsewaitstatus fn(ctxt: ref Context, status: string): (int, string, string) 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        cast string 10 1
          slice array of byte 10 1
            name buf array of byte 0 0
            seq no type 10 1
              const (0) int 6 0
              name n int 0 0
ecom: 
call (int, string, string) 10 2
  name parsewaitstatus fn(ctxt: ref Context, status: string): (int, string, string) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      cast string 10 1
        slice array of byte 10 1
          name buf array of byte 0 0
          seq no type 10 1
            const (0) int 6 0
            name n int 0 0
ecom to: 
name who (int, string, string) 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b146 big 0 0
    const (64) int 6 0
ecom: 
cast string 10 1
  slice array of byte 10 1
    name buf array of byte 0 0
    seq no type 10 1
      const (0) int 6 0
      name n int 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b146 big 0 0
    const (72) int 6 0
eacom: 
slice array of byte 10 1
  name buf array of byte 0 0
  seq no type 10 1
    const (0) int 6 0
    name n int 0 0
ecom: 
slice array of byte 10 1
  name buf array of byte 0 0
  seq no type 10 1
    const (0) int 6 0
    name n int 0 0
ecom to: 
name .t145 array of byte 0 0
ecom: 
name buf array of byte 0 0
ecom to: 
name .t145 array of byte 0 0
ecom: 
= array of byte 10 1
  name .t145 array of byte 0 0
  name nil array of byte 1 0
ecom: 
name nil array of byte 1 0
ecom to: 
name .t145 array of byte 0 0
eacom: 
len int 10 1
  name s string 0 0
ecom: 
len int 10 1
  name s string 0 0
ecom to: 
name .t143 int 0 0
eacom: 
slice string 10 1
  name s string 0 0
  seq no type 10 1
    const (0) int 6 0
    const (5) int 6 0
ecom: 
slice string 10 1
  name s string 0 0
  seq no type 10 1
    const (0) int 6 0
    const (5) int 6 0
ecom to: 
name .t145 string 0 0
ecom: 
name s string 0 0
ecom to: 
name .t145 string 0 0
ecom: 
= string 10 1
  name .t145 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t145 string 0 0
ecom: 
= string 10 2
  name s string 0 0
  call string 10 2
    name failurestatus fn(e: string): string 11 1
    seq no type 10 1
      name s string 0 0
ecom: 
call string 10 2
  name failurestatus fn(e: string): string 11 1
  seq no type 10 1
    name s string 0 0
ecom to: 
name s string 0 0
generate desc for big
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b146 big 0 0
    const (64) int 6 0
ecom: 
call no type 10 2
  name diagnostic fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name line string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b146 big 0 0
    const (64) int 6 0
ecom: 
name line string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b146 big 0 0
    const (72) int 6 0
ecom: 
= (int, list of int) 10 2
  tuple (int, list of int) 10 2
    seq nothing 10 1
      name i int 0 0
      seq nothing 10 1
        name pl list of int 0 0
    tuple (int, string, string) 10 1
      seq nothing 10 1
        name who (int, string, string) 0 0
        seq nothing 10 1
          name line string 0 0
          seq nothing 10 1
            name s string 0 0
  tuple (int, list of int) 10 1
    seq no type 10 1
      const (0) int 6 0
      seq no type 10 1
        name pids list of int 0 0
ecom: 
tuple (int, list of int) 10 1
  seq no type 10 1
    const (0) int 6 0
    seq no type 10 1
      name pids list of int 0 0
ecom to: 
name i (int, list of int) 0 0
ecom: 
const (0) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      name i (int, list of int) 0 0
    const (0) int 6 0
ecom: 
name pids list of int 0 0
ecom to: 
* list of int 0 0
  + int 13 1
    adr int 13 1
      name i (int, list of int) 0 0
    const (8) int 6 0
eacom: 
hd int 10 1
  name pl list of int 0 0
ecom: 
hd int 10 1
  name pl list of int 0 0
ecom to: 
name .t143 int 0 0
ecom: 
= (int, list of int) 10 2
  tuple (int, list of int) 10 1
    seq no type 10 1
      name i int 0 0
      seq no type 10 1
        name pl list of int 0 0
  tuple (int, list of int) 10 2
    seq no type 10 2
      + int 15 1
        name i int 0 0
        const (1) int 6 0
      seq no type 10 1
        tl list of int 10 1
          name pl list of int 0 0
generate desc for (int, list of int)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap t1 type list of int offset 8 (d->offset=8 start=0) returns 8
generate desc for (int, list of int)
	desc	$-1,16,"40"
ecom: 
tuple (int, list of int) 10 2
  seq no type 10 2
    + int 15 1
      name i int 0 0
      const (1) int 6 0
    seq no type 10 1
      tl list of int 10 1
        name pl list of int 0 0
ecom to: 
name .b147 (int, list of int) 0 0
ecom: 
+ int 15 1
  name i int 0 0
  const (1) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      name .b147 (int, list of int) 0 0
    const (0) int 6 0
ecom: 
tl list of int 10 1
  name pl list of int 0 0
ecom to: 
* list of int 0 0
  + int 13 1
    adr int 13 1
      name .b147 (int, list of int) 0 0
    const (8) int 6 0
ecom: 
= list of int 10 1
  * list of int 0 0
    + int 13 1
      adr int 13 1
        name .b147 (int, list of int) 0 0
      const t1 (8) int 6 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
* list of int 0 0
  + int 13 1
    adr int 13 1
      name .b147 (int, list of int) 0 0
    const t1 (8) int 6 0
eacom: 
len int 10 1
  name status array of string 0 0
ecom: 
len int 10 1
  name status array of string 0 0
ecom to: 
name .t143 int 0 0
eacom: 
* string 10 1
  indx big 10 1
    name status array of string 0 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  name status array of string 0 0
  name i int 0 0
ecom to: 
name .b146 big 0 0
ecom: 
+= int 10 1
  name onebad int 0 0
  != int 10 1
    name s string 0 0
    name nil string 1 0
eacom: 
!= int 10 1
  name s string 0 0
  name nil string 1 0
ecom: 
!= int 10 1
  name s string 0 0
  name nil string 1 0
ecom to: 
name .t143 int 0 0
ecom: 
= string 10 1
  * string 10 1
    indx big 10 1
      name status array of string 0 0
      name i int 0 0
  name s string 0 0
eacom: 
* string 10 1
  indx big 10 1
    name status array of string 0 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  name status array of string 0 0
  name i int 0 0
ecom to: 
name .b146 big 0 0
ecom: 
name s string 0 0
ecom to: 
* string 8 1
  name .b146 big 0 0
eacom: 
-- int 10 1
  name wcount int 0 0
  const (1) int 6 0
ecom: 
-- int 10 1
  name wcount int 0 0
  const (1) int 6 0
ecom to: 
name .t143 int 0 0
ecom: 
= list of int 10 1
  * list of int 0 0
    + int 13 1
      adr int 13 1
        name i (int, list of int) 0 0
      const t1 (8) int 6 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
* list of int 0 0
  + int 13 1
    adr int 13 1
      name i (int, list of int) 0 0
    const t1 (8) int 6 0
ecom: 
= list of int 10 1
  name pl list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name pl list of int 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name who (int, string, string) 0 0
      const t1 (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name who (int, string, string) 0 0
    const t1 (8) int 6 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name who (int, string, string) 0 0
      const t2 (16) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name who (int, string, string) 0 0
    const t2 (16) int 6 0
ecom: 
= string 10 1
  name line string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name line string 0 0
ecom: 
= string 10 1
  name s string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name s string 0 0
ecom: 
= list of int 10 1
  * list of int 0 0
    + int 13 1
      adr int 13 1
        name i (int, list of int) 0 0
      const t1 (8) int 6 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
* list of int 0 0
  + int 13 1
    adr int 13 1
      name i (int, list of int) 0 0
    const t1 (8) int 6 0
ecom: 
= list of int 10 1
  name pl list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name pl list of int 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name who (int, string, string) 0 0
      const t1 (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name who (int, string, string) 0 0
    const t1 (8) int 6 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name who (int, string, string) 0 0
      const t2 (16) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name who (int, string, string) 0 0
    const t2 (16) int 6 0
ecom: 
= string 10 1
  name line string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name line string 0 0
ecom: 
= string 10 1
  name s string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name s string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
= string 10 1
  name r string 0 0
  * string 10 1
    indx big 10 1
      name status array of string 0 0
      - int 10 1
        len int 10 1
          name status array of string 0 0
        const (1) int 6 0
ecom: 
* string 10 1
  indx big 10 1
    name status array of string 0 0
    - int 10 1
      len int 10 1
        name status array of string 0 0
      const (1) int 6 0
ecom to: 
name r string 0 0
eacom: 
* string 10 1
  indx big 10 1
    name status array of string 0 0
    - int 10 1
      len int 10 1
        name status array of string 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name status array of string 0 0
  - int 10 1
    len int 10 1
      name status array of string 0 0
    const (1) int 6 0
ecom to: 
name .b146 big 0 0
eacom: 
- int 10 1
  len int 10 1
    name status array of string 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  len int 10 1
    name status array of string 0 0
  const (1) int 6 0
ecom to: 
name .t143 int 0 0
ecom: 
len int 10 1
  name status array of string 0 0
ecom to: 
name .t143 int 0 0
ecom: 
= int 10 1
  name i int 0 0
  - int 10 1
    len int 10 1
      name status array of string 0 0
    const (2) int 6 0
ecom: 
- int 10 1
  len int 10 1
    name status array of string 0 0
  const (2) int 6 0
ecom to: 
name i int 0 0
ecom: 
len int 10 1
  name status array of string 0 0
ecom to: 
name .t143 int 0 0
ecom: 
+= string 10 1
  name r string 0 0
  + string 10 1
    const | string 1 0
    * string 10 1
      indx big 10 1
        name status array of string 0 0
        name i int 0 0
eacom: 
+ string 10 1
  const | string 1 0
  * string 10 1
    indx big 10 1
      name status array of string 0 0
      name i int 0 0
ecom: 
+ string 10 1
  const | string 1 0
  * string 10 1
    indx big 10 1
      name status array of string 0 0
      name i int 0 0
ecom to: 
name .t145 string 0 0
eacom: 
* string 10 1
  indx big 10 1
    name status array of string 0 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  name status array of string 0 0
  name i int 0 0
ecom to: 
name .b146 big 0 0
ecom: 
= string 10 1
  name .t145 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t145 string 0 0
ecom: 
-- int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
name r string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: waitfor
64: argument ctxt ref Context ref 3
72: argument pids list of int ref 3
80: local i int ref 6
88: local pl list of int ref 5
96: local n int ref 3
100: local onebad int ref 3
104: local wcount int ref 2
112: local who int ref 2
120: local line string ref 2
128: local s string ref 9
136: local .t143 int ref 1
144: local status array of string ref 9
152: local .b146 big ref 8
160: local buf array of byte ref 4
168: local r string ref 3
176: local .b144 big ref 2
184: local .t145 string ref 1
192: local .b147 (int, list of int) ref 1
96: local i int ref 4
generate desc for waitfor
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap pids type list of int offset 72 (d->offset=72 start=0) returns 72
descmap i type int offset 80 (d->offset=80 start=0) returns -1
descmap pl type list of int offset 88 (d->offset=88 start=0) returns 88
descmap n type int offset 96 (d->offset=96 start=0) returns -1
descmap onebad type int offset 100 (d->offset=100 start=0) returns -1
descmap wcount type int offset 104 (d->offset=104 start=0) returns -1
descmap who type int offset 112 (d->offset=112 start=0) returns -1
descmap line type string offset 120 (d->offset=120 start=0) returns 120
descmap s type string offset 128 (d->offset=128 start=0) returns 128
descmap .t143 type int offset 136 (d->offset=136 start=0) returns -1
descmap status type array of string offset 144 (d->offset=144 start=0) returns 144
descmap .b146 type big offset 152 (d->offset=152 start=0) returns -1
descmap buf type array of byte offset 160 (d->offset=160 start=0) returns 160
descmap r type string offset 168 (d->offset=168 start=0) returns 168
descmap .b144 type big offset 176 (d->offset=176 start=0) returns -1
descmap .t145 type string offset 184 (d->offset=184 start=0) returns 184
descmap adt offset 192
descmap offset 192
descmap t0 type int offset 192 (d->offset=0 start=192) returns -1
descmap t1 type list of int offset 200 (d->offset=8 start=192) returns 200
descmap .b147 type (int, list of int) offset 192 (d->offset=192 start=0) returns 200
fncom: parsewaitstatus 2 4195e8
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
eacom: 
len int 10 1
  name status string 0 0
ecom: 
len int 10 1
  name status string 0 0
ecom to: 
name .t148 int 0 0
eacom: 
inds int 10 1
  name status string 0 0
  name i int 0 0
ecom: 
inds int 10 1
  name status string 0 0
  name i int 0 0
ecom to: 
name .t148 int 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
eacom: 
- int 10 1
  len int 10 1
    name status string 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  len int 10 1
    name status string 0 0
  const (1) int 6 0
ecom to: 
name .t148 int 0 0
ecom: 
len int 10 1
  name status string 0 0
ecom to: 
name .t148 int 0 0
eacom: 
inds int 10 1
  name status string 0 0
  + int 15 1
    name i int 0 0
    const (1) int 6 0
ecom: 
inds int 10 1
  name status string 0 0
  + int 15 1
    name i int 0 0
    const (1) int 6 0
ecom to: 
name .t148 int 0 0
ecom: 
+ int 15 1
  name i int 0 0
  const (1) int 6 0
ecom to: 
name .t149 int 0 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      const bad wait read string 1 0
      seq no type 10 2
        call string 10 2
          -> fn(s: string, nil: string, *): string 12 1
            name sys Sys 1 0
            name sprint nothing 11 1
          seq no type 10 1
            const sh: bad exit status '%s' string 1 0
            seq no type 10 1
              name status string 0 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, nil: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const sh: bad exit status '%s' string 1 0
    seq no type 10 1
      name status string 0 0
ecom to: 
name .t151 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
generate desc for big
ecom: 
const sh: bad exit status '%s' string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b152 big 0 0
    const (64) int 6 0
ecom: 
name status string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b152 big 0 0
    const (72) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b150 big 0 0
    const (64) int 6 0
ecom: 
const bad wait read string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b150 big 0 0
    const (72) int 6 0
ecom: 
name .t151 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b150 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t151 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t151 string 0 0
ecom: 
+= int 10 1
  name i int 0 0
  const (2) int 6 0
eacom: 
len int 10 1
  name status string 0 0
ecom: 
len int 10 1
  name status string 0 0
ecom to: 
name .t149 int 0 0
eacom: 
inds int 10 1
  name status string 0 0
  name i int 0 0
ecom: 
inds int 10 1
  name status string 0 0
  name i int 0 0
ecom to: 
name .t149 int 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
eacom: 
- int 10 1
  len int 10 1
    name status string 0 0
  const (2) int 6 0
ecom: 
- int 10 1
  len int 10 1
    name status string 0 0
  const (2) int 6 0
ecom to: 
name .t149 int 0 0
ecom: 
len int 10 1
  name status string 0 0
ecom to: 
name .t149 int 0 0
eacom: 
inds int 10 1
  name status string 0 0
  + int 15 1
    name i int 0 0
    const (1) int 6 0
ecom: 
inds int 10 1
  name status string 0 0
  + int 15 1
    name i int 0 0
    const (1) int 6 0
ecom to: 
name .t149 int 0 0
ecom: 
+ int 15 1
  name i int 0 0
  const (1) int 6 0
ecom to: 
name .t148 int 0 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      const bad wait read string 1 0
      seq no type 10 2
        call string 10 2
          -> fn(s: string, nil: string, *): string 12 1
            name sys Sys 1 0
            name sprint nothing 11 1
          seq no type 10 1
            const sh: bad exit status '%s' string 1 0
            seq no type 10 1
              name status string 0 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, nil: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const sh: bad exit status '%s' string 1 0
    seq no type 10 1
      name status string 0 0
ecom to: 
name .t151 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
generate desc for big
ecom: 
const sh: bad exit status '%s' string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b150 big 0 0
    const (64) int 6 0
ecom: 
name status string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b150 big 0 0
    const (72) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b152 big 0 0
    const (64) int 6 0
ecom: 
const bad wait read string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b152 big 0 0
    const (72) int 6 0
ecom: 
name .t151 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b152 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t151 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t151 string 0 0
ecom: 
tuple (int, string, string) 10 2
  seq no type 10 2
    cast int 10 1
      name status string 0 0
    seq no type 10 2
      name status string 0 0
      seq no type 10 2
        slice string 10 2
          name status string 0 0
          seq no type 10 2
            + int 15 1
              name i int 0 0
              const (2) int 6 0
            nothing no type 10 1
ecom to: 
* (int, string, string) 8 0
  name .ret int 0 0
ecom: 
cast int 10 1
  name status string 0 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * (int, string, string) 8 0
        name .ret int 0 0
    const (0) int 6 0
ecom: 
name status string 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * (int, string, string) 8 0
        name .ret int 0 0
    const (8) int 6 0
ecom: 
slice string 10 2
  name status string 0 0
  seq no type 10 2
    + int 15 1
      name i int 0 0
      const (2) int 6 0
    nothing no type 10 1
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * (int, string, string) 8 0
        name .ret int 0 0
    const (16) int 6 0
ecom: 
len int 10 1
  name status string 0 0
ecom to: 
name .t149 int 0 0
eacom: 
+ int 15 1
  name i int 0 0
  const (2) int 6 0
ecom: 
+ int 15 1
  name i int 0 0
  const (2) int 6 0
ecom to: 
name .t148 int 0 0
ecom: 
name status string 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * (int, string, string) 8 0
        name .ret int 0 0
    const (16) int 6 0
fn: parsewaitstatus
64: argument ctxt ref Context ref 2
72: argument status string ref 13
80: local i int ref 13
84: local .t148 int ref 1
88: local .t149 int ref 1
96: local .b150 big ref 2
104: local .b152 big ref 2
112: local .t151 string ref 1
generate desc for parsewaitstatus
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap status type string offset 72 (d->offset=72 start=0) returns 72
descmap i type int offset 80 (d->offset=80 start=0) returns -1
descmap .t148 type int offset 84 (d->offset=84 start=0) returns -1
descmap .t149 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b150 type big offset 96 (d->offset=96 start=0) returns -1
descmap .b152 type big offset 104 (d->offset=104 start=0) returns -1
descmap .t151 type string offset 112 (d->offset=112 start=0) returns 112
fncom: panic 6 4196a8
ecom: 
used int 10 2
  call int 10 2
    -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name fprint nothing 11 1
    seq no type 10 2
      call ref Sys->FD 10 2
        -> fn(fd: int): ref Sys->FD 12 1
          name sys Sys 1 0
          name fildes nothing 11 1
        seq no type 10 1
          const (2) int 6 0
      seq no type 10 1
        const sh panic: %s
 string 1 0
        seq no type 10 1
          name s string 0 0
ecom: 
call int 10 2
  -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name fprint nothing 11 1
  seq no type 10 2
    call ref Sys->FD 10 2
      -> fn(fd: int): ref Sys->FD 12 1
        name sys Sys 1 0
        name fildes nothing 11 1
      seq no type 10 1
        const (2) int 6 0
    seq no type 10 1
      const sh panic: %s
 string 1 0
      seq no type 10 1
        name s string 0 0
ecom to: 
name .t153 int 0 0
generate desc for Sys->fprint
descmap offset 0
descmap fd type ref Sys->FD offset 64 (d->offset=64 start=0) returns 64
descmap s type string offset 72 (d->offset=72 start=0) returns 72
descmap type string offset 80 returns 80
generate desc for big
ecom: 
call ref Sys->FD 10 2
  -> fn(fd: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name fildes nothing 11 1
  seq no type 10 1
    const (2) int 6 0
ecom to: 
name .t155 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b156 big 0 0
    const (64) int 6 0
ecom: 
name .t155 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b154 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .t155 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t155 ref Sys->FD 0 0
ecom: 
const sh panic: %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b154 big 0 0
    const (72) int 6 0
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b154 big 0 0
    const (80) int 6 0
ecom: 
raise nothing 10 1
  const panic string 1 0
fn: panic
64: argument s string ref 1
72: local .t153 int ref 1
80: local .b154 big ref 1
88: local .b156 big ref 1
96: local .t155 ref Sys->FD ref 1
generate desc for panic
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap .t153 type int offset 72 (d->offset=72 start=0) returns -1
descmap .b154 type big offset 80 (d->offset=80 start=0) returns -1
descmap .b156 type big offset 88 (d->offset=88 start=0) returns -1
descmap .t155 type ref Sys->FD offset 96 (d->offset=96 start=0) returns 96
fncom: diagnostic 9 419768
eacom: 
& int 10 1
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  const VERBOSE (2) int 6 0
ecom: 
& int 10 1
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  const VERBOSE (2) int 6 0
ecom to: 
name .t157 int 0 0
eacom: 
* int 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const flags (16) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name .t158 ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t158 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .t158 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t158 ref Localenv 0 0
ecom: 
used int 10 2
  call int 10 2
    -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name fprint nothing 11 1
    seq no type 10 2
      call ref Sys->FD 10 2
        -> fn(fd: int): ref Sys->FD 12 1
          name sys Sys 1 0
          name fildes nothing 11 1
        seq no type 10 1
          const (2) int 6 0
      seq no type 10 1
        const sh: %s
 string 1 0
        seq no type 10 1
          name s string 0 0
ecom: 
call int 10 2
  -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name fprint nothing 11 1
  seq no type 10 2
    call ref Sys->FD 10 2
      -> fn(fd: int): ref Sys->FD 12 1
        name sys Sys 1 0
        name fildes nothing 11 1
      seq no type 10 1
        const (2) int 6 0
    seq no type 10 1
      const sh: %s
 string 1 0
      seq no type 10 1
        name s string 0 0
ecom to: 
name .t157 int 0 0
generate desc for Sys->fprint
descmap offset 0
descmap fd type ref Sys->FD offset 64 (d->offset=64 start=0) returns 64
descmap s type string offset 72 (d->offset=72 start=0) returns 72
descmap type string offset 80 returns 80
generate desc for big
ecom: 
call ref Sys->FD 10 2
  -> fn(fd: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name fildes nothing 11 1
  seq no type 10 1
    const (2) int 6 0
ecom to: 
name .t158 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b160 big 0 0
    const (64) int 6 0
ecom: 
name .t158 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b159 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .t158 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t158 ref Sys->FD 0 0
ecom: 
const sh: %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b159 big 0 0
    const (72) int 6 0
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b159 big 0 0
    const (80) int 6 0
fn: diagnostic
64: argument ctxt ref Context ref 1
72: argument s string ref 1
80: local .t157 int ref 1
88: local .b159 big ref 1
96: local .b160 big ref 1
104: local .t158 ref Localenv ref 1
generate desc for diagnostic
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap s type string offset 72 (d->offset=72 start=0) returns 72
descmap .t157 type int offset 80 (d->offset=80 start=0) returns -1
descmap .b159 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b160 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t158 type ref Localenv offset 104 (d->offset=104 start=0) returns 104
fncom: new 5 4b9480
ecom: 
call no type 10 1
  name initialise fn() 11 1
generate desc for big
ecom: 
used int 10 1
  call int 10 1
    -> fn(): int 12 1
      name env Env 1 0
      name clone nothing 11 1
ecom: 
call int 10 1
  -> fn(): int 12 1
    name env Env 1 0
    name clone nothing 11 1
ecom to: 
name .t162 int 0 0
generate desc for big
ecom: 
= ref Context 10 3
  name ctxt ref Context 0 0
  ref ref Context 10 3
    tuple Context 10 3
      seq no type 10 3
        ref ref Environment 10 2
          tuple Environment 10 2
            seq no type 10 2
              ref ref Builtins 10 1
                tuple Builtins 10 1
                  seq no type 10 1
                    name nil polymorphic type 1 0
                    seq no type 10 1
                      const (0) int 6 0
              seq no type 10 2
                ref ref Builtins 10 1
                  tuple Builtins 10 1
                    seq no type 10 1
                      name nil polymorphic type 1 0
                      seq no type 10 1
                        const (0) int 6 0
                seq no type 10 2
                  name nil polymorphic type 1 0
                  seq no type 10 2
                    call ref Localenv 10 2
                      name newlocalenv fn(pushed: ref Localenv): ref Localenv 11 1
                      seq no type 10 1
                        name nil ref Localenv 1 0
        seq no type 10 2
          call ref Sys->FD 10 1
            name waitfd fn(): ref Sys->FD 11 1
          seq no type 10 1
            name drawcontext ref Draw->Context 0 0
            seq no type 10 1
              :: list of int 10 1
                const (0) int 6 0
                :: list of int 10 1
                  const (1) int 6 0
                  :: list of int 10 1
                    const (2) int 6 0
                    name nil polymorphic type 1 0
ecom: 
ref ref Context 10 3
  tuple Context 10 3
    seq no type 10 3
      ref ref Environment 10 2
        tuple Environment 10 2
          seq no type 10 2
            ref ref Builtins 10 1
              tuple Builtins 10 1
                seq no type 10 1
                  name nil polymorphic type 1 0
                  seq no type 10 1
                    const (0) int 6 0
            seq no type 10 2
              ref ref Builtins 10 1
                tuple Builtins 10 1
                  seq no type 10 1
                    name nil polymorphic type 1 0
                    seq no type 10 1
                      const (0) int 6 0
              seq no type 10 2
                name nil polymorphic type 1 0
                seq no type 10 2
                  call ref Localenv 10 2
                    name newlocalenv fn(pushed: ref Localenv): ref Localenv 11 1
                    seq no type 10 1
                      name nil ref Localenv 1 0
      seq no type 10 2
        call ref Sys->FD 10 1
          name waitfd fn(): ref Sys->FD 11 1
        seq no type 10 1
          name drawcontext ref Draw->Context 0 0
          seq no type 10 1
            :: list of int 10 1
              const (0) int 6 0
              :: list of int 10 1
                const (1) int 6 0
                :: list of int 10 1
                  const (2) int 6 0
                  name nil polymorphic type 1 0
ecom to: 
name ctxt ref Context 0 0
generate desc for Context
descmap adt offset 0
descmap offset 0
descmap env type ref Environment offset 0 (d->offset=0 start=0) returns 0
descmap waitfd type ref Sys->FD offset 8 (d->offset=8 start=0) returns 8
descmap drawcontext type ref Draw->Context offset 16 (d->offset=16 start=0) returns 16
descmap keepfds type list of int offset 24 (d->offset=24 start=0) returns 24
generate desc for Context
	desc	$-1,32,"f0"
ecom: 
tuple Context 10 3
  seq no type 10 3
    ref ref Environment 10 2
      tuple Environment 10 2
        seq no type 10 2
          ref ref Builtins 10 1
            tuple Builtins 10 1
              seq no type 10 1
                name nil polymorphic type 1 0
                seq no type 10 1
                  const (0) int 6 0
          seq no type 10 2
            ref ref Builtins 10 1
              tuple Builtins 10 1
                seq no type 10 1
                  name nil polymorphic type 1 0
                  seq no type 10 1
                    const (0) int 6 0
            seq no type 10 2
              name nil polymorphic type 1 0
              seq no type 10 2
                call ref Localenv 10 2
                  name newlocalenv fn(pushed: ref Localenv): ref Localenv 11 1
                  seq no type 10 1
                    name nil ref Localenv 1 0
    seq no type 10 2
      call ref Sys->FD 10 1
        name waitfd fn(): ref Sys->FD 11 1
      seq no type 10 1
        name drawcontext ref Draw->Context 0 0
        seq no type 10 1
          :: list of int 10 1
            const (0) int 6 0
            :: list of int 10 1
              const (1) int 6 0
              :: list of int 10 1
                const (2) int 6 0
                name nil polymorphic type 1 0
ecom to: 
* Context 8 0
  name .t163 ref Context 0 0
ecom: 
ref ref Environment 10 2
  tuple Environment 10 2
    seq no type 10 2
      ref ref Builtins 10 1
        tuple Builtins 10 1
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              const (0) int 6 0
      seq no type 10 2
        ref ref Builtins 10 1
          tuple Builtins 10 1
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                const (0) int 6 0
        seq no type 10 2
          name nil polymorphic type 1 0
          seq no type 10 2
            call ref Localenv 10 2
              name newlocalenv fn(pushed: ref Localenv): ref Localenv 11 1
              seq no type 10 1
                name nil ref Localenv 1 0
ecom to: 
* ref Environment 8 0
  + int 15 1
    adr int 15 1
      * Context 8 0
        name .t163 ref Context 0 0
    const (0) int 6 0
generate desc for Environment
descmap adt offset 0
descmap offset 0
descmap sbuiltins type ref Builtins offset 0 (d->offset=0 start=0) returns 0
descmap builtins type ref Builtins offset 8 (d->offset=8 start=0) returns 8
descmap bmods type list of (string, Shellbuiltin) offset 16 (d->offset=16 start=0) returns 16
descmap localenv type ref Localenv offset 24 (d->offset=24 start=0) returns 24
generate desc for Environment
	desc	$-1,32,"f0"
ecom: 
tuple Environment 10 2
  seq no type 10 2
    ref ref Builtins 10 1
      tuple Builtins 10 1
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            const (0) int 6 0
    seq no type 10 2
      ref ref Builtins 10 1
        tuple Builtins 10 1
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              const (0) int 6 0
      seq no type 10 2
        name nil polymorphic type 1 0
        seq no type 10 2
          call ref Localenv 10 2
            name newlocalenv fn(pushed: ref Localenv): ref Localenv 11 1
            seq no type 10 1
              name nil ref Localenv 1 0
ecom to: 
* Environment 8 0
  name .t164 ref Environment 0 0
ecom: 
ref ref Builtins 10 1
  tuple Builtins 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        const (0) int 6 0
ecom to: 
* ref Builtins 8 0
  + int 15 1
    adr int 15 1
      * Environment 8 0
        name .t164 ref Environment 0 0
    const (0) int 6 0
generate desc for Builtins
descmap adt offset 0
descmap offset 0
descmap ba type array of (string, list of Shellbuiltin) offset 0 (d->offset=0 start=0) returns 0
descmap n type int offset 8 (d->offset=8 start=0) returns -1
generate desc for Builtins
	desc	$-1,16,"80"
ecom: 
tuple Builtins 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      const (0) int 6 0
ecom to: 
* Builtins 8 0
  name .t165 ref Builtins 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* array of (string, list of Shellbuiltin) 8 0
  + int 15 1
    adr int 15 1
      * Builtins 8 0
        name .t165 ref Builtins 0 0
    const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Builtins 8 0
        name .t165 ref Builtins 0 0
    const (8) int 6 0
ecom: 
= ref Builtins 10 1
  name .t165 ref Builtins 0 0
  name nil ref Builtins 1 0
ecom: 
name nil ref Builtins 1 0
ecom to: 
name .t165 ref Builtins 0 0
ecom: 
ref ref Builtins 10 1
  tuple Builtins 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        const (0) int 6 0
ecom to: 
* ref Builtins 8 0
  + int 15 1
    adr int 15 1
      * Environment 8 0
        name .t164 ref Environment 0 0
    const (8) int 6 0
generate desc for Builtins
ecom: 
tuple Builtins 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      const (0) int 6 0
ecom to: 
* Builtins 8 0
  name .t165 ref Builtins 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* array of (string, list of Shellbuiltin) 8 0
  + int 15 1
    adr int 15 1
      * Builtins 8 0
        name .t165 ref Builtins 0 0
    const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Builtins 8 0
        name .t165 ref Builtins 0 0
    const (8) int 6 0
ecom: 
= ref Builtins 10 1
  name .t165 ref Builtins 0 0
  name nil ref Builtins 1 0
ecom: 
name nil ref Builtins 1 0
ecom to: 
name .t165 ref Builtins 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* list of (string, Shellbuiltin) 8 0
  + int 15 1
    adr int 15 1
      * Environment 8 0
        name .t164 ref Environment 0 0
    const (16) int 6 0
ecom: 
call ref Localenv 10 2
  name newlocalenv fn(pushed: ref Localenv): ref Localenv 11 1
  seq no type 10 1
    name nil ref Localenv 1 0
ecom to: 
* ref Localenv 8 0
  + int 15 1
    adr int 15 1
      * Environment 8 0
        name .t164 ref Environment 0 0
    const (24) int 6 0
generate desc for big
ecom: 
name nil ref Localenv 1 0
ecom to: 
* ref Localenv 8 0
  + int 15 0
    name .b161 big 0 0
    const (64) int 6 0
ecom: 
= ref Environment 10 1
  name .t164 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t164 ref Environment 0 0
ecom: 
call ref Sys->FD 10 1
  name waitfd fn(): ref Sys->FD 11 1
ecom to: 
* ref Sys->FD 8 0
  + int 15 1
    adr int 15 1
      * Context 8 0
        name .t163 ref Context 0 0
    const (8) int 6 0
generate desc for big
ecom: 
name drawcontext ref Draw->Context 0 0
ecom to: 
* ref Draw->Context 8 0
  + int 15 1
    adr int 15 1
      * Context 8 0
        name .t163 ref Context 0 0
    const (16) int 6 0
ecom: 
:: list of int 10 1
  const (0) int 6 0
  :: list of int 10 1
    const (1) int 6 0
    :: list of int 10 1
      const (2) int 6 0
      name nil polymorphic type 1 0
ecom to: 
* list of int 8 0
  + int 15 1
    adr int 15 1
      * Context 8 0
        name .t163 ref Context 0 0
    const (24) int 6 0
ecom: 
:: list of int 10 1
  const (1) int 6 0
  :: list of int 10 1
    const (2) int 6 0
    name nil polymorphic type 1 0
ecom to: 
name .t165 list of int 0 0
ecom: 
:: list of int 10 1
  const (2) int 6 0
  name nil polymorphic type 1 0
ecom to: 
name .t165 list of int 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t165 list of int 0 0
ecom: 
= list of int 10 1
  name .t165 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t165 list of int 0 0
ecom: 
= ref Context 10 1
  name .t163 ref Context 0 0
  name nil ref Context 1 0
ecom: 
name nil ref Context 1 0
ecom to: 
name .t163 ref Context 0 0
ecom: 
used string 10 2
  call string 10 2
    -> fn(c: ref Context, sh: Sh): string 12 1
      name myselfbuiltin Shellbuiltin 1 0
      name initbuiltin nothing 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name myself Sh 1 0
ecom: 
call string 10 2
  -> fn(c: ref Context, sh: Sh): string 12 1
    name myselfbuiltin Shellbuiltin 1 0
    name initbuiltin nothing 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name myself Sh 1 0
ecom to: 
name .t165 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b161 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b161 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t165 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t165 string 0 0
ecom: 
= int 10 1
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  const VERBOSE (2) int 6 0
eacom: 
* int 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const flags (16) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name .t165 ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t165 ref Environment 0 0
ecom: 
const VERBOSE (2) int 6 0
ecom to: 
* int 8 1
  + int 15 1
    name .t165 ref Localenv 0 0
    const flags (16) int 6 0
ecom: 
= ref Localenv 10 1
  name .t165 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t165 ref Localenv 0 0
ecom: 
= list of ref Listnode 10 2
  name vl list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
    seq nothing 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        const autoload string 1 0
ecom: 
call list of ref Listnode 10 2
  name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const autoload string 1 0
ecom to: 
name vl list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b161 big 0 0
    const (64) int 6 0
ecom: 
const autoload string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b161 big 0 0
    const (72) int 6 0
eacom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name vl list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name vl list of ref Listnode 0 0
ecom to: 
name .t165 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t165 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t165 ref Listnode 0 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name vl list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name vl list of ref Listnode 0 0
ecom to: 
name .t165 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t165 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t165 ref Listnode 0 0
ecom: 
used string 10 2
  call string 10 2
    name loadmodule fn(ctxt: ref Context, name: string): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        * string 10 1
          + int 10 1
            hd ref Listnode 10 1
              name vl list of ref Listnode 0 0
            const word (8) int 6 0
ecom: 
call string 10 2
  name loadmodule fn(ctxt: ref Context, name: string): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * string 10 1
        + int 10 1
          hd ref Listnode 10 1
            name vl list of ref Listnode 0 0
          const word (8) int 6 0
ecom to: 
name .t165 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b161 big 0 0
    const (64) int 6 0
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name vl list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b161 big 0 0
    const (72) int 6 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name vl list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name vl list of ref Listnode 0 0
ecom to: 
name .t164 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t164 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t164 ref Listnode 0 0
ecom: 
= string 10 1
  name .t165 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t165 string 0 0
ecom: 
= list of ref Listnode 10 1
  name vl list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name vl list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name vl list of ref Listnode 0 0
ecom to: 
name vl list of ref Listnode 0 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  name .ret int 0 0
fn: new
64: argument drawcontext ref Draw->Context ref 1
72: local .t162 int ref 1
80: local .b161 big ref 7
88: local ctxt ref Context ref 7
96: local vl list of ref Listnode ref 7
104: local .t163 ref Context ref 1
112: local .t164 ref Environment ref 1
120: local .t165 ref Builtins ref 1
generate desc for Context.new
descmap offset 0
descmap drawcontext type ref Draw->Context offset 64 (d->offset=64 start=0) returns 64
descmap .t162 type int offset 72 (d->offset=72 start=0) returns -1
descmap .b161 type big offset 80 (d->offset=80 start=0) returns -1
descmap ctxt type ref Context offset 88 (d->offset=88 start=0) returns 88
descmap vl type list of ref Listnode offset 96 (d->offset=96 start=0) returns 96
descmap .t163 type ref Context offset 104 (d->offset=104 start=0) returns 104
descmap .t164 type ref Environment offset 112 (d->offset=112 start=0) returns 112
descmap .t165 type ref Builtins offset 120 (d->offset=120 start=0) returns 120
fncom: copy 3 4bc9d0
ecom: 
= ref Context 10 2
  name nctxt ref Context 0 0
  ref ref Context 10 2
    tuple Context 10 2
      seq no type 10 2
        * ref Environment 8 0
          name ctxt ref Context 0 0
        seq no type 10 2
          call ref Sys->FD 10 1
            name waitfd fn(): ref Sys->FD 11 1
          seq no type 10 1
            * ref Draw->Context 8 0
              + int 15 1
                name ctxt ref Context 0 0
                const drawcontext (16) int 6 0
            seq no type 10 1
              * list of int 8 0
                + int 15 1
                  name ctxt ref Context 0 0
                  const keepfds (24) int 6 0
ecom: 
ref ref Context 10 2
  tuple Context 10 2
    seq no type 10 2
      * ref Environment 8 0
        name ctxt ref Context 0 0
      seq no type 10 2
        call ref Sys->FD 10 1
          name waitfd fn(): ref Sys->FD 11 1
        seq no type 10 1
          * ref Draw->Context 8 0
            + int 15 1
              name ctxt ref Context 0 0
              const drawcontext (16) int 6 0
          seq no type 10 1
            * list of int 8 0
              + int 15 1
                name ctxt ref Context 0 0
                const keepfds (24) int 6 0
ecom to: 
name nctxt ref Context 0 0
generate desc for Context
ecom: 
tuple Context 10 2
  seq no type 10 2
    * ref Environment 8 0
      name ctxt ref Context 0 0
    seq no type 10 2
      call ref Sys->FD 10 1
        name waitfd fn(): ref Sys->FD 11 1
      seq no type 10 1
        * ref Draw->Context 8 0
          + int 15 1
            name ctxt ref Context 0 0
            const drawcontext (16) int 6 0
        seq no type 10 1
          * list of int 8 0
            + int 15 1
              name ctxt ref Context 0 0
              const keepfds (24) int 6 0
ecom to: 
* Context 8 0
  name .t166 ref Context 0 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
* ref Environment 8 0
  + int 15 1
    adr int 15 1
      * Context 8 0
        name .t166 ref Context 0 0
    const (0) int 6 0
ecom: 
call ref Sys->FD 10 1
  name waitfd fn(): ref Sys->FD 11 1
ecom to: 
* ref Sys->FD 8 0
  + int 15 1
    adr int 15 1
      * Context 8 0
        name .t166 ref Context 0 0
    const (8) int 6 0
generate desc for big
ecom: 
* ref Draw->Context 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const drawcontext (16) int 6 0
ecom to: 
* ref Draw->Context 8 0
  + int 15 1
    adr int 15 1
      * Context 8 0
        name .t166 ref Context 0 0
    const (16) int 6 0
ecom: 
* list of int 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const keepfds (24) int 6 0
ecom to: 
* list of int 8 0
  + int 15 1
    adr int 15 1
      * Context 8 0
        name .t166 ref Context 0 0
    const (24) int 6 0
ecom: 
= ref Context 10 1
  name .t166 ref Context 0 0
  name nil ref Context 1 0
ecom: 
name nil ref Context 1 0
ecom to: 
name .t166 ref Context 0 0
ecom: 
used int 10 1
  call int 10 1
    -> fn(): int 12 1
      name env Env 1 0
      name clone nothing 11 1
ecom: 
call int 10 1
  -> fn(): int 12 1
    name env Env 1 0
    name clone nothing 11 1
ecom to: 
name .t168 int 0 0
generate desc for big
ecom: 
= ref Environment 10 3
  * ref Environment 8 0
    name nctxt ref Context 0 0
  ref ref Environment 10 3
    tuple Environment 10 3
      seq no type 10 3
        call ref Builtins 10 2
          name copybuiltins fn(b: ref Builtins): ref Builtins 11 1
          seq no type 10 1
            * ref Builtins 10 1
              * ref Environment 8 0
                name ctxt ref Context 0 0
        seq no type 10 3
          call ref Builtins 10 2
            name copybuiltins fn(b: ref Builtins): ref Builtins 11 1
            seq no type 10 1
              * ref Builtins 10 1
                + int 10 1
                  * ref Environment 8 0
                    name ctxt ref Context 0 0
                  const builtins (8) int 6 0
          seq no type 10 2
            * list of (string, Shellbuiltin) 10 1
              + int 10 1
                * ref Environment 8 0
                  name ctxt ref Context 0 0
                const bmods (16) int 6 0
            seq no type 10 2
              call ref Localenv 10 2
                name copylocalenv fn(e: ref Localenv): ref Localenv 11 1
                seq no type 10 1
                  * ref Localenv 10 1
                    + int 10 1
                      * ref Environment 8 0
                        name ctxt ref Context 0 0
                      const localenv (24) int 6 0
ecom: 
ref ref Environment 10 3
  tuple Environment 10 3
    seq no type 10 3
      call ref Builtins 10 2
        name copybuiltins fn(b: ref Builtins): ref Builtins 11 1
        seq no type 10 1
          * ref Builtins 10 1
            * ref Environment 8 0
              name ctxt ref Context 0 0
      seq no type 10 3
        call ref Builtins 10 2
          name copybuiltins fn(b: ref Builtins): ref Builtins 11 1
          seq no type 10 1
            * ref Builtins 10 1
              + int 10 1
                * ref Environment 8 0
                  name ctxt ref Context 0 0
                const builtins (8) int 6 0
        seq no type 10 2
          * list of (string, Shellbuiltin) 10 1
            + int 10 1
              * ref Environment 8 0
                name ctxt ref Context 0 0
              const bmods (16) int 6 0
          seq no type 10 2
            call ref Localenv 10 2
              name copylocalenv fn(e: ref Localenv): ref Localenv 11 1
              seq no type 10 1
                * ref Localenv 10 1
                  + int 10 1
                    * ref Environment 8 0
                      name ctxt ref Context 0 0
                    const localenv (24) int 6 0
ecom to: 
* ref Environment 8 0
  name nctxt ref Context 0 0
generate desc for Environment
ecom: 
tuple Environment 10 3
  seq no type 10 3
    call ref Builtins 10 2
      name copybuiltins fn(b: ref Builtins): ref Builtins 11 1
      seq no type 10 1
        * ref Builtins 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
    seq no type 10 3
      call ref Builtins 10 2
        name copybuiltins fn(b: ref Builtins): ref Builtins 11 1
        seq no type 10 1
          * ref Builtins 10 1
            + int 10 1
              * ref Environment 8 0
                name ctxt ref Context 0 0
              const builtins (8) int 6 0
      seq no type 10 2
        * list of (string, Shellbuiltin) 10 1
          + int 10 1
            * ref Environment 8 0
              name ctxt ref Context 0 0
            const bmods (16) int 6 0
        seq no type 10 2
          call ref Localenv 10 2
            name copylocalenv fn(e: ref Localenv): ref Localenv 11 1
            seq no type 10 1
              * ref Localenv 10 1
                + int 10 1
                  * ref Environment 8 0
                    name ctxt ref Context 0 0
                  const localenv (24) int 6 0
ecom to: 
* Environment 8 0
  name .t166 ref Environment 0 0
ecom: 
call ref Builtins 10 2
  name copybuiltins fn(b: ref Builtins): ref Builtins 11 1
  seq no type 10 1
    * ref Builtins 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
ecom to: 
* ref Builtins 8 0
  + int 15 1
    adr int 15 1
      * Environment 8 0
        name .t166 ref Environment 0 0
    const (0) int 6 0
generate desc for big
ecom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b167 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t169 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t169 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t169 ref Environment 0 0
ecom: 
call ref Builtins 10 2
  name copybuiltins fn(b: ref Builtins): ref Builtins 11 1
  seq no type 10 1
    * ref Builtins 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const builtins (8) int 6 0
ecom to: 
* ref Builtins 8 0
  + int 15 1
    adr int 15 1
      * Environment 8 0
        name .t166 ref Environment 0 0
    const (8) int 6 0
generate desc for big
ecom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const builtins (8) int 6 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b167 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const builtins (8) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t169 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t169 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t169 ref Environment 0 0
ecom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom to: 
* list of (string, Shellbuiltin) 8 0
  + int 15 1
    adr int 15 1
      * Environment 8 0
        name .t166 ref Environment 0 0
    const (16) int 6 0
eacom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t169 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t169 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t169 ref Environment 0 0
ecom: 
call ref Localenv 10 2
  name copylocalenv fn(e: ref Localenv): ref Localenv 11 1
  seq no type 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
ecom to: 
* ref Localenv 8 0
  + int 15 1
    adr int 15 1
      * Environment 8 0
        name .t166 ref Environment 0 0
    const (24) int 6 0
generate desc for big
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
* ref Localenv 8 0
  + int 15 0
    name .b167 big 0 0
    const (64) int 6 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t169 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t169 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t169 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t166 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t166 ref Environment 0 0
ecom: 
name nctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  name .ret int 0 0
fn: copy
64: argument ctxt ref Context ref 7
72: argument copyenv int ref 1
76: local .t168 int ref 1
80: local .b167 big ref 5
88: local nctxt ref Context ref 3
96: local .t166 ref Context ref 1
104: local .t169 ref Environment ref 1
generate desc for Context.copy
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap copyenv type int offset 72 (d->offset=72 start=0) returns -1
descmap .t168 type int offset 76 (d->offset=76 start=0) returns -1
descmap .b167 type big offset 80 (d->offset=80 start=0) returns -1
descmap nctxt type ref Context offset 88 (d->offset=88 start=0) returns 88
descmap .t166 type ref Context offset 96 (d->offset=96 start=0) returns 96
descmap .t169 type ref Environment offset 104 (d->offset=104 start=0) returns 104
fncom: set 5 4ba4c0
ecom: 
= ref Localenv 10 1
  name e ref Localenv 0 0
  * ref Localenv 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const localenv (24) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name e ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t170 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t170 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t170 ref Environment 0 0
ecom: 
= int 10 2
  name idx int 0 0
  call int 10 2
    name hashfn fn(s: string, n: int): int 11 1
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        len int 10 1
          * array of list of ref Var 8 0
            name e ref Localenv 0 0
ecom: 
call int 10 2
  name hashfn fn(s: string, n: int): int 11 1
  seq no type 10 1
    name name string 0 0
    seq no type 10 1
      len int 10 1
        * array of list of ref Var 8 0
          name e ref Localenv 0 0
ecom to: 
name idx int 0 0
generate desc for big
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b171 big 0 0
    const (64) int 6 0
ecom: 
len int 10 1
  * array of list of ref Var 8 0
    name e ref Localenv 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b171 big 0 0
    const (72) int 6 0
ecom: 
= ref Var 10 2
  name v ref Var 0 0
  call ref Var 10 2
    name hashfind fn(ht: array of list of ref Var, idx: int, n: string): ref Var 11 1
    seq no type 10 1
      * array of list of ref Var 8 0
        name e ref Localenv 0 0
      seq no type 10 1
        name idx int 0 0
        seq no type 10 1
          name name string 0 0
ecom: 
call ref Var 10 2
  name hashfind fn(ht: array of list of ref Var, idx: int, n: string): ref Var 11 1
  seq no type 10 1
    * array of list of ref Var 8 0
      name e ref Localenv 0 0
    seq no type 10 1
      name idx int 0 0
      seq no type 10 1
        name name string 0 0
ecom to: 
name v ref Var 0 0
generate desc for big
ecom: 
* array of list of ref Var 8 0
  name e ref Localenv 0 0
ecom to: 
* array of list of ref Var 8 0
  + int 15 0
    name .b171 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b171 big 0 0
    const (72) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b171 big 0 0
    const (80) int 6 0
ecom: 
= int 10 1
  name flags int 0 0
  const CHANGED (1) int 6 0
ecom: 
const CHANGED (1) int 6 0
ecom to: 
name flags int 0 0
eacom: 
call int 10 2
  name noexport fn(name: string): int 11 1
  seq no type 10 1
    name name string 0 0
ecom: 
call int 10 2
  name noexport fn(name: string): int 11 1
  seq no type 10 1
    name name string 0 0
ecom to: 
name .t172 int 0 0
generate desc for big
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b171 big 0 0
    const (64) int 6 0
ecom: 
|= int 10 1
  name flags int 0 0
  const NOEXPORT (2) int 6 0
ecom: 
call no type 10 2
  name hashadd fn(ht: array of list of ref Var, idx: int, v: ref Var) 11 1
  seq no type 10 1
    * array of list of ref Var 8 0
      name e ref Localenv 0 0
    seq no type 10 1
      name idx int 0 0
      seq no type 10 1
        ref ref Var 10 1
          tuple Var 10 1
            seq no type 10 1
              name name string 0 0
              seq no type 10 1
                name val list of ref Listnode 0 0
                seq no type 10 1
                  name flags int 0 0
generate desc for big
ecom: 
* array of list of ref Var 8 0
  name e ref Localenv 0 0
ecom to: 
* array of list of ref Var 8 0
  + int 15 0
    name .b171 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b171 big 0 0
    const (72) int 6 0
ecom: 
ref ref Var 10 1
  tuple Var 10 1
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        name val list of ref Listnode 0 0
        seq no type 10 1
          name flags int 0 0
ecom to: 
* ref Var 8 0
  + int 15 0
    name .b171 big 0 0
    const (80) int 6 0
generate desc for Var
descmap adt offset 0
descmap offset 0
descmap name type string offset 0 (d->offset=0 start=0) returns 0
descmap val type list of ref Listnode offset 8 (d->offset=8 start=0) returns 8
descmap flags type int offset 16 (d->offset=16 start=0) returns -1
generate desc for Var
	desc	$-1,24,"c0"
ecom: 
tuple Var 10 1
  seq no type 10 1
    name name string 0 0
    seq no type 10 1
      name val list of ref Listnode 0 0
      seq no type 10 1
        name flags int 0 0
ecom to: 
* Var 8 0
  name .t170 ref Var 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Var 8 0
        name .t170 ref Var 0 0
    const (0) int 6 0
ecom: 
name val list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 1
    adr int 15 1
      * Var 8 0
        name .t170 ref Var 0 0
    const (8) int 6 0
ecom: 
name flags int 0 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Var 8 0
        name .t170 ref Var 0 0
    const (16) int 6 0
ecom: 
= ref Var 10 1
  name .t170 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .t170 ref Var 0 0
ecom: 
= list of ref Listnode 10 1
  * list of ref Listnode 8 0
    + int 15 1
      name v ref Var 0 0
      const val (8) int 6 0
  name val list of ref Listnode 0 0
ecom: 
name val list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 1
    name v ref Var 0 0
    const val (8) int 6 0
ecom: 
|= int 10 1
  * int 8 0
    + int 15 1
      name v ref Var 0 0
      const flags (16) int 6 0
  const CHANGED (1) int 6 0
ecom: 
= ref Localenv 10 1
  name e ref Localenv 0 0
  * ref Localenv 8 0
    + int 15 1
      name e ref Localenv 0 0
      const pushed (8) int 6 0
ecom: 
* ref Localenv 8 0
  + int 15 1
    name e ref Localenv 0 0
    const pushed (8) int 6 0
ecom to: 
name e ref Localenv 0 0
ecom: 
= ref Var 10 1
  name v ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name v ref Var 0 0
fn: set
64: argument ctxt ref Context ref 1
72: argument name string ref 4
80: argument val list of ref Listnode ref 2
88: local flags int ref 3
92: local idx int ref 3
96: local .t172 int ref 1
104: local e ref Localenv ref 7
112: local .b171 big ref 4
120: local v ref Var ref 4
128: local .t170 ref Environment ref 1
generate desc for Context.set
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap name type string offset 72 (d->offset=72 start=0) returns 72
descmap val type list of ref Listnode offset 80 (d->offset=80 start=0) returns 80
descmap flags type int offset 88 (d->offset=88 start=0) returns -1
descmap idx type int offset 92 (d->offset=92 start=0) returns -1
descmap .t172 type int offset 96 (d->offset=96 start=0) returns -1
descmap e type ref Localenv offset 104 (d->offset=104 start=0) returns 104
descmap .b171 type big offset 112 (d->offset=112 start=0) returns -1
descmap v type ref Var offset 120 (d->offset=120 start=0) returns 120
descmap .t170 type ref Environment offset 128 (d->offset=128 start=0) returns 128
fncom: get 9 4b9b60
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
= int 10 1
  name idx int 0 0
  const (-1) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
name idx int 0 0
eacom: 
inds int 10 1
  name name string 0 0
  const (0) int 6 0
ecom: 
inds int 10 1
  name name string 0 0
  const (0) int 6 0
ecom to: 
name .t173 int 0 0
eacom: 
inds int 10 1
  name name string 0 0
  const (0) int 6 0
ecom: 
inds int 10 1
  name name string 0 0
  const (0) int 6 0
ecom to: 
name .t173 int 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
eacom: 
len int 10 1
  name name string 0 0
ecom: 
len int 10 1
  name name string 0 0
ecom to: 
name .t173 int 0 0
eacom: 
inds int 10 1
  name name string 0 0
  name i int 0 0
ecom: 
inds int 10 1
  name name string 0 0
  name i int 0 0
ecom to: 
name .t173 int 0 0
eacom: 
inds int 10 1
  name name string 0 0
  name i int 0 0
ecom: 
inds int 10 1
  name name string 0 0
  name i int 0 0
ecom to: 
name .t173 int 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
eacom: 
len int 10 1
  name name string 0 0
ecom: 
len int 10 1
  name name string 0 0
ecom to: 
name .t173 int 0 0
ecom: 
= int 10 1
  name idx int 0 0
  - int 10 1
    cast int 10 1
      name name string 0 0
    const (1) int 6 0
ecom: 
- int 10 1
  cast int 10 1
    name name string 0 0
  const (1) int 6 0
ecom to: 
name idx int 0 0
ecom: 
cast int 10 1
  name name string 0 0
ecom to: 
name .t173 int 0 0
ecom: 
= string 10 1
  name name string 0 0
  const * string 1 0
ecom: 
const * string 1 0
ecom to: 
name name string 0 0
ecom: 
= ref Var 10 2
  name v ref Var 0 0
  call ref Var 10 2
    name varfind fn(e: ref Localenv, name: string): ref Var 11 1
    seq no type 10 2
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      seq no type 10 1
        name name string 0 0
ecom: 
call ref Var 10 2
  name varfind fn(e: ref Localenv, name: string): ref Var 11 1
  seq no type 10 2
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    seq no type 10 1
      name name string 0 0
ecom to: 
name v ref Var 0 0
generate desc for big
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
* ref Localenv 8 0
  + int 15 0
    name .b174 big 0 0
    const (64) int 6 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t175 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t175 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t175 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b174 big 0 0
    const (72) int 6 0
ecom: 
call list of ref Listnode 10 2
  name index fn(val: list of ref Listnode, k: int): list of ref Listnode 11 1
  seq no type 10 1
    * list of ref Listnode 8 0
      + int 15 1
        name v ref Var 0 0
        const val (8) int 6 0
    seq no type 10 1
      name idx int 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
generate desc for big
ecom: 
* list of ref Listnode 8 0
  + int 15 1
    name v ref Var 0 0
    const val (8) int 6 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b174 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b174 big 0 0
    const (72) int 6 0
ecom: 
* list of ref Listnode 8 0
  + int 15 1
    name v ref Var 0 0
    const val (8) int 6 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
fn: get
64: argument ctxt ref Context ref 1
72: argument name string ref 10
80: local i int ref 6
84: local idx int ref 4
88: local .t173 int ref 1
96: local v ref Var ref 4
104: local .b174 big ref 2
112: local .t175 ref Environment ref 1
generate desc for Context.get
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap name type string offset 72 (d->offset=72 start=0) returns 72
descmap i type int offset 80 (d->offset=80 start=0) returns -1
descmap idx type int offset 84 (d->offset=84 start=0) returns -1
descmap .t173 type int offset 88 (d->offset=88 start=0) returns -1
descmap v type ref Var offset 96 (d->offset=96 start=0) returns 96
descmap .b174 type big offset 104 (d->offset=104 start=0) returns -1
descmap .t175 type ref Environment offset 112 (d->offset=112 start=0) returns 112
fncom: envlist 2 4bb650
ecom: 
= array of list of ref Var 10 1
  name t array of list of ref Var 0 0
  array array of list of ref Var 10 1
    const ENVHASHSIZE (7) int 6 0
ecom: 
array array of list of ref Var 10 1
  const ENVHASHSIZE (7) int 6 0
ecom to: 
name t array of list of ref Var 0 0
generate desc for list of ref Var
generate desc for list of ref Var
	desc	$-1,8,"80"
ecom: 
= ref Localenv 10 1
  name e ref Localenv 0 0
  * ref Localenv 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const localenv (24) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name e ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t176 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t176 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t176 ref Environment 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
eacom: 
len int 10 1
  * array of list of ref Var 8 0
    name e ref Localenv 0 0
ecom: 
len int 10 1
  * array of list of ref Var 8 0
    name e ref Localenv 0 0
ecom to: 
name .t177 int 0 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  * list of ref Var 10 1
    indx big 10 1
      * array of list of ref Var 8 0
        name e ref Localenv 0 0
      name i int 0 0
ecom: 
* list of ref Var 10 1
  indx big 10 1
    * array of list of ref Var 8 0
      name e ref Localenv 0 0
    name i int 0 0
ecom to: 
name vl list of ref Var 0 0
eacom: 
* list of ref Var 10 1
  indx big 10 1
    * array of list of ref Var 8 0
      name e ref Localenv 0 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  * array of list of ref Var 8 0
    name e ref Localenv 0 0
  name i int 0 0
ecom to: 
name .b178 big 0 0
ecom: 
= ref Var 10 1
  name v ref Var 0 0
  hd ref Var 10 1
    name vl list of ref Var 0 0
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name v ref Var 0 0
ecom: 
= int 10 2
  name idx int 0 0
  call int 10 2
    name hashfn fn(s: string, n: int): int 11 1
    seq no type 10 1
      * string 8 0
        name v ref Var 0 0
      seq no type 10 1
        len int 10 1
          * array of list of ref Var 8 0
            name e ref Localenv 0 0
ecom: 
call int 10 2
  name hashfn fn(s: string, n: int): int 11 1
  seq no type 10 1
    * string 8 0
      name v ref Var 0 0
    seq no type 10 1
      len int 10 1
        * array of list of ref Var 8 0
          name e ref Localenv 0 0
ecom to: 
name idx int 0 0
generate desc for big
ecom: 
* string 8 0
  name v ref Var 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b178 big 0 0
    const (64) int 6 0
ecom: 
len int 10 1
  * array of list of ref Var 8 0
    name e ref Localenv 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b178 big 0 0
    const (72) int 6 0
eacom: 
call ref Var 10 2
  name hashfind fn(ht: array of list of ref Var, idx: int, n: string): ref Var 11 1
  seq no type 10 1
    name t array of list of ref Var 0 0
    seq no type 10 1
      name idx int 0 0
      seq no type 10 1
        * string 8 0
          name v ref Var 0 0
ecom: 
call ref Var 10 2
  name hashfind fn(ht: array of list of ref Var, idx: int, n: string): ref Var 11 1
  seq no type 10 1
    name t array of list of ref Var 0 0
    seq no type 10 1
      name idx int 0 0
      seq no type 10 1
        * string 8 0
          name v ref Var 0 0
ecom to: 
name .t176 ref Var 0 0
generate desc for big
ecom: 
name t array of list of ref Var 0 0
ecom to: 
* array of list of ref Var 8 0
  + int 15 0
    name .b178 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b178 big 0 0
    const (72) int 6 0
ecom: 
* string 8 0
  name v ref Var 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b178 big 0 0
    const (80) int 6 0
ecom: 
= ref Var 10 1
  name .t176 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .t176 ref Var 0 0
ecom: 
call no type 10 2
  name hashadd fn(ht: array of list of ref Var, idx: int, v: ref Var) 11 1
  seq no type 10 1
    name t array of list of ref Var 0 0
    seq no type 10 1
      name idx int 0 0
      seq no type 10 1
        name v ref Var 0 0
generate desc for big
ecom: 
name t array of list of ref Var 0 0
ecom to: 
* array of list of ref Var 8 0
  + int 15 0
    name .b178 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b178 big 0 0
    const (72) int 6 0
ecom: 
name v ref Var 0 0
ecom to: 
* ref Var 8 0
  + int 15 0
    name .b178 big 0 0
    const (80) int 6 0
ecom: 
= ref Var 10 1
  name v ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name v ref Var 0 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  tl list of ref Var 10 1
    name vl list of ref Var 0 0
ecom: 
tl list of ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name vl list of ref Var 0 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  name nil list of ref Var 1 0
ecom: 
name nil list of ref Var 1 0
ecom to: 
name vl list of ref Var 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
= ref Localenv 10 1
  name e ref Localenv 0 0
  * ref Localenv 8 0
    + int 15 1
      name e ref Localenv 0 0
      const pushed (8) int 6 0
ecom: 
* ref Localenv 8 0
  + int 15 1
    name e ref Localenv 0 0
    const pushed (8) int 6 0
ecom to: 
name e ref Localenv 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  * list of ref Var 10 1
    indx big 10 1
      name t array of list of ref Var 0 0
      name i int 0 0
ecom: 
* list of ref Var 10 1
  indx big 10 1
    name t array of list of ref Var 0 0
    name i int 0 0
ecom to: 
name vl list of ref Var 0 0
eacom: 
* list of ref Var 10 1
  indx big 10 1
    name t array of list of ref Var 0 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  name t array of list of ref Var 0 0
  name i int 0 0
ecom to: 
name .b178 big 0 0
ecom: 
= ref Var 10 1
  name v ref Var 0 0
  hd ref Var 10 1
    name vl list of ref Var 0 0
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name v ref Var 0 0
ecom: 
= list of (string, list of ref Listnode) 10 1
  name l list of (string, list of ref Listnode) 0 0
  :: list of (string, list of ref Listnode) 10 1
    tuple (string, list of ref Listnode) 10 1
      seq no type 10 1
        * string 8 0
          name v ref Var 0 0
        seq no type 10 1
          * list of ref Listnode 8 0
            + int 15 1
              name v ref Var 0 0
              const val (8) int 6 0
    name l list of (string, list of ref Listnode) 0 0
ecom: 
:: list of (string, list of ref Listnode) 10 1
  tuple (string, list of ref Listnode) 10 1
    seq no type 10 1
      * string 8 0
        name v ref Var 0 0
      seq no type 10 1
        * list of ref Listnode 8 0
          + int 15 1
            name v ref Var 0 0
            const val (8) int 6 0
  name l list of (string, list of ref Listnode) 0 0
ecom to: 
name l list of (string, list of ref Listnode) 0 0
eacom: 
tuple (string, list of ref Listnode) 10 1
  seq no type 10 1
    * string 8 0
      name v ref Var 0 0
    seq no type 10 1
      * list of ref Listnode 8 0
        + int 15 1
          name v ref Var 0 0
          const val (8) int 6 0
generate desc for (string, list of ref Listnode)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type list of ref Listnode offset 8 (d->offset=8 start=0) returns 8
generate desc for (string, list of ref Listnode)
	desc	$-1,16,"c0"
ecom: 
tuple (string, list of ref Listnode) 10 1
  seq no type 10 1
    * string 8 0
      name v ref Var 0 0
    seq no type 10 1
      * list of ref Listnode 8 0
        + int 15 1
          name v ref Var 0 0
          const val (8) int 6 0
ecom to: 
name .b179 (string, list of ref Listnode) 0 0
ecom: 
* string 8 0
  name v ref Var 0 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b179 (string, list of ref Listnode) 0 0
    const (0) int 6 0
ecom: 
* list of ref Listnode 8 0
  + int 15 1
    name v ref Var 0 0
    const val (8) int 6 0
ecom to: 
* list of ref Listnode 0 0
  + int 13 1
    adr int 13 1
      name .b179 (string, list of ref Listnode) 0 0
    const (8) int 6 0
generate desc for (string, list of ref Listnode)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b179 (string, list of ref Listnode) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name .b179 (string, list of ref Listnode) 0 0
ecom: 
= list of ref Listnode 10 1
  * list of ref Listnode 0 0
    + int 13 1
      adr int 13 1
        name .b179 (string, list of ref Listnode) 0 0
      const t1 (8) int 6 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 0 0
  + int 13 1
    adr int 13 1
      name .b179 (string, list of ref Listnode) 0 0
    const t1 (8) int 6 0
ecom: 
= ref Var 10 1
  name v ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name v ref Var 0 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  tl list of ref Var 10 1
    name vl list of ref Var 0 0
ecom: 
tl list of ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name vl list of ref Var 0 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  name nil list of ref Var 1 0
ecom: 
name nil list of ref Var 1 0
ecom to: 
name vl list of ref Var 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
name l list of (string, list of ref Listnode) 0 0
ecom to: 
* list of (string, list of ref Listnode) 8 0
  name .ret int 0 0
fn: envlist
64: argument ctxt ref Context ref 1
72: local i int ref 4
76: local idx int ref 3
80: local .t177 int ref 1
88: local e ref Localenv ref 7
96: local .b178 big ref 5
104: local vl list of ref Var ref 5
112: local vl list of ref Var ref 5
120: local t array of list of ref Var ref 4
128: local v ref Var ref 4
136: local l list of (string, list of ref Listnode) ref 3
144: local v ref Var ref 3
152: local .t176 ref Environment ref 1
160: local .b179 (string, list of ref Listnode) ref 1
76: local i int ref 4
generate desc for Context.envlist
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap i type int offset 72 (d->offset=72 start=0) returns -1
descmap idx type int offset 76 (d->offset=76 start=0) returns -1
descmap .t177 type int offset 80 (d->offset=80 start=0) returns -1
descmap e type ref Localenv offset 88 (d->offset=88 start=0) returns 88
descmap .b178 type big offset 96 (d->offset=96 start=0) returns -1
descmap vl type list of ref Var offset 104 (d->offset=104 start=0) returns 104
descmap vl type list of ref Var offset 112 (d->offset=112 start=0) returns 112
descmap t type array of list of ref Var offset 120 (d->offset=120 start=0) returns 120
descmap v type ref Var offset 128 (d->offset=128 start=0) returns 128
descmap l type list of (string, list of ref Listnode) offset 136 (d->offset=136 start=0) returns 136
descmap v type ref Var offset 144 (d->offset=144 start=0) returns 144
descmap .t176 type ref Environment offset 152 (d->offset=152 start=0) returns 152
descmap adt offset 160
descmap offset 160
descmap t0 type string offset 160 (d->offset=0 start=160) returns 160
descmap t1 type list of ref Listnode offset 168 (d->offset=8 start=160) returns 168
descmap .b179 type (string, list of ref Listnode) offset 160 (d->offset=160 start=0) returns 168
fncom: setlocal 8 4bad90
ecom: 
= ref Localenv 10 1
  name e ref Localenv 0 0
  * ref Localenv 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const localenv (24) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name e ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t180 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t180 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t180 ref Environment 0 0
ecom: 
= int 10 2
  name idx int 0 0
  call int 10 2
    name hashfn fn(s: string, n: int): int 11 1
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        len int 10 1
          * array of list of ref Var 8 0
            name e ref Localenv 0 0
ecom: 
call int 10 2
  name hashfn fn(s: string, n: int): int 11 1
  seq no type 10 1
    name name string 0 0
    seq no type 10 1
      len int 10 1
        * array of list of ref Var 8 0
          name e ref Localenv 0 0
ecom to: 
name idx int 0 0
generate desc for big
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b181 big 0 0
    const (64) int 6 0
ecom: 
len int 10 1
  * array of list of ref Var 8 0
    name e ref Localenv 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b181 big 0 0
    const (72) int 6 0
ecom: 
= ref Var 10 2
  name v ref Var 0 0
  call ref Var 10 2
    name hashfind fn(ht: array of list of ref Var, idx: int, n: string): ref Var 11 1
    seq no type 10 1
      * array of list of ref Var 8 0
        name e ref Localenv 0 0
      seq no type 10 1
        name idx int 0 0
        seq no type 10 1
          name name string 0 0
ecom: 
call ref Var 10 2
  name hashfind fn(ht: array of list of ref Var, idx: int, n: string): ref Var 11 1
  seq no type 10 1
    * array of list of ref Var 8 0
      name e ref Localenv 0 0
    seq no type 10 1
      name idx int 0 0
      seq no type 10 1
        name name string 0 0
ecom to: 
name v ref Var 0 0
generate desc for big
ecom: 
* array of list of ref Var 8 0
  name e ref Localenv 0 0
ecom to: 
* array of list of ref Var 8 0
  + int 15 0
    name .b181 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b181 big 0 0
    const (72) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b181 big 0 0
    const (80) int 6 0
ecom: 
= int 10 1
  name flags int 0 0
  const CHANGED (1) int 6 0
ecom: 
const CHANGED (1) int 6 0
ecom to: 
name flags int 0 0
eacom: 
call int 10 2
  name noexport fn(name: string): int 11 1
  seq no type 10 1
    name name string 0 0
ecom: 
call int 10 2
  name noexport fn(name: string): int 11 1
  seq no type 10 1
    name name string 0 0
ecom to: 
name .t182 int 0 0
generate desc for big
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b181 big 0 0
    const (64) int 6 0
ecom: 
|= int 10 1
  name flags int 0 0
  const NOEXPORT (2) int 6 0
ecom: 
call no type 10 2
  name hashadd fn(ht: array of list of ref Var, idx: int, v: ref Var) 11 1
  seq no type 10 1
    * array of list of ref Var 8 0
      name e ref Localenv 0 0
    seq no type 10 1
      name idx int 0 0
      seq no type 10 1
        ref ref Var 10 1
          tuple Var 10 1
            seq no type 10 1
              name name string 0 0
              seq no type 10 1
                name val list of ref Listnode 0 0
                seq no type 10 1
                  name flags int 0 0
generate desc for big
ecom: 
* array of list of ref Var 8 0
  name e ref Localenv 0 0
ecom to: 
* array of list of ref Var 8 0
  + int 15 0
    name .b181 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b181 big 0 0
    const (72) int 6 0
ecom: 
ref ref Var 10 1
  tuple Var 10 1
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        name val list of ref Listnode 0 0
        seq no type 10 1
          name flags int 0 0
ecom to: 
* ref Var 8 0
  + int 15 0
    name .b181 big 0 0
    const (80) int 6 0
generate desc for Var
ecom: 
tuple Var 10 1
  seq no type 10 1
    name name string 0 0
    seq no type 10 1
      name val list of ref Listnode 0 0
      seq no type 10 1
        name flags int 0 0
ecom to: 
* Var 8 0
  name .t180 ref Var 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Var 8 0
        name .t180 ref Var 0 0
    const (0) int 6 0
ecom: 
name val list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 1
    adr int 15 1
      * Var 8 0
        name .t180 ref Var 0 0
    const (8) int 6 0
ecom: 
name flags int 0 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Var 8 0
        name .t180 ref Var 0 0
    const (16) int 6 0
ecom: 
= ref Var 10 1
  name .t180 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .t180 ref Var 0 0
ecom: 
= list of ref Listnode 10 1
  * list of ref Listnode 8 0
    + int 15 1
      name v ref Var 0 0
      const val (8) int 6 0
  name val list of ref Listnode 0 0
ecom: 
name val list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 1
    name v ref Var 0 0
    const val (8) int 6 0
ecom: 
|= int 10 1
  * int 8 0
    + int 15 1
      name v ref Var 0 0
      const flags (16) int 6 0
  const CHANGED (1) int 6 0
fn: setlocal
64: argument ctxt ref Context ref 1
72: argument name string ref 4
80: argument val list of ref Listnode ref 2
88: local flags int ref 3
92: local idx int ref 3
96: local .t182 int ref 1
104: local .b181 big ref 4
112: local e ref Localenv ref 4
120: local v ref Var ref 4
128: local .t180 ref Environment ref 1
generate desc for Context.setlocal
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap name type string offset 72 (d->offset=72 start=0) returns 72
descmap val type list of ref Listnode offset 80 (d->offset=80 start=0) returns 80
descmap flags type int offset 88 (d->offset=88 start=0) returns -1
descmap idx type int offset 92 (d->offset=92 start=0) returns -1
descmap .t182 type int offset 96 (d->offset=96 start=0) returns -1
descmap .b181 type big offset 104 (d->offset=104 start=0) returns -1
descmap e type ref Localenv offset 112 (d->offset=112 start=0) returns 112
descmap v type ref Var offset 120 (d->offset=120 start=0) returns 120
descmap .t180 type ref Environment offset 128 (d->offset=128 start=0) returns 128
fncom: push 5 4bc050
ecom: 
= ref Localenv 10 2
  * ref Localenv 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const localenv (24) int 6 0
  call ref Localenv 10 2
    name newlocalenv fn(pushed: ref Localenv): ref Localenv 11 1
    seq no type 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t183 ref Environment 0 0
ecom: 
call ref Localenv 10 2
  name newlocalenv fn(pushed: ref Localenv): ref Localenv 11 1
  seq no type 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
ecom to: 
* ref Localenv 8 1
  + int 15 1
    name .t183 ref Environment 0 0
    const localenv (24) int 6 0
generate desc for big
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
* ref Localenv 8 0
  + int 15 0
    name .b184 big 0 0
    const (64) int 6 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t185 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t185 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t185 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t183 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t183 ref Environment 0 0
fn: push
64: argument ctxt ref Context ref 2
72: local .b184 big ref 1
80: local .t183 ref Environment ref 1
88: local .t185 ref Environment ref 1
generate desc for Context.push
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap .b184 type big offset 72 (d->offset=72 start=0) returns -1
descmap .t183 type ref Environment offset 80 (d->offset=80 start=0) returns 80
descmap .t185 type ref Environment offset 88 (d->offset=88 start=0) returns 88
fncom: pop 8 4bc510
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const pushed (8) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name .t186 ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t186 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .t186 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t186 ref Localenv 0 0
ecom: 
call no type 10 2
  name panic fn(s: string) 11 1
  seq no type 10 1
    const unbalanced contexts in shell environment string 1 0
generate desc for big
ecom: 
const unbalanced contexts in shell environment string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b187 big 0 0
    const (64) int 6 0
ecom: 
= array of list of ref Var 10 1
  name oldv array of list of ref Var 0 0
  * array of list of ref Var 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
ecom: 
* array of list of ref Var 10 1
  * ref Localenv 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const localenv (24) int 6 0
ecom to: 
name oldv array of list of ref Var 0 0
eacom: 
* array of list of ref Var 10 1
  * ref Localenv 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const localenv (24) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name .t186 ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t186 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .t186 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t186 ref Localenv 0 0
ecom: 
= ref Localenv 10 2
  * ref Localenv 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const localenv (24) int 6 0
  * ref Localenv 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const pushed (8) int 6 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t186 ref Environment 0 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const pushed (8) int 6 0
ecom to: 
* ref Localenv 8 1
  + int 15 1
    name .t186 ref Environment 0 0
    const localenv (24) int 6 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const pushed (8) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name .t188 ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t188 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .t188 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t188 ref Localenv 0 0
ecom: 
= ref Environment 10 1
  name .t186 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t186 ref Environment 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
eacom: 
len int 10 1
  name oldv array of list of ref Var 0 0
ecom: 
len int 10 1
  name oldv array of list of ref Var 0 0
ecom to: 
name .t189 int 0 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  * list of ref Var 10 1
    indx big 10 1
      name oldv array of list of ref Var 0 0
      name i int 0 0
ecom: 
* list of ref Var 10 1
  indx big 10 1
    name oldv array of list of ref Var 0 0
    name i int 0 0
ecom to: 
name vl list of ref Var 0 0
eacom: 
* list of ref Var 10 1
  indx big 10 1
    name oldv array of list of ref Var 0 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  name oldv array of list of ref Var 0 0
  name i int 0 0
ecom to: 
name .b187 big 0 0
eacom: 
= ref Var 10 2
  name v ref Var 0 0
  call ref Var 10 2
    name varfind fn(e: ref Localenv, name: string): ref Var 11 1
    seq no type 10 2
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      seq no type 10 1
        * string 10 1
          hd ref Var 10 1
            name vl list of ref Var 0 0
ecom: 
= ref Var 10 2
  name v ref Var 0 0
  call ref Var 10 2
    name varfind fn(e: ref Localenv, name: string): ref Var 11 1
    seq no type 10 2
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      seq no type 10 1
        * string 10 1
          hd ref Var 10 1
            name vl list of ref Var 0 0
ecom to: 
name .t188 ref Var 0 0
ecom: 
call ref Var 10 2
  name varfind fn(e: ref Localenv, name: string): ref Var 11 1
  seq no type 10 2
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    seq no type 10 1
      * string 10 1
        hd ref Var 10 1
          name vl list of ref Var 0 0
ecom to: 
name v ref Var 0 0
generate desc for big
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
* ref Localenv 8 0
  + int 15 0
    name .b187 big 0 0
    const (64) int 6 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t186 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t186 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t186 ref Environment 0 0
ecom: 
* string 10 1
  hd ref Var 10 1
    name vl list of ref Var 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b187 big 0 0
    const (72) int 6 0
eacom: 
* string 10 1
  hd ref Var 10 1
    name vl list of ref Var 0 0
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name .t186 ref Var 0 0
ecom: 
= ref Var 10 1
  name .t186 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .t186 ref Var 0 0
ecom: 
= ref Var 10 1
  name .t188 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .t188 ref Var 0 0
ecom: 
|= int 10 1
  * int 8 0
    + int 15 1
      name v ref Var 0 0
      const flags (16) int 6 0
  const CHANGED (1) int 6 0
ecom: 
call no type 10 2
  name set fn(ctxt: self ref Context, name: string, val: list of ref Listnode) 11 1
  seq nothing 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      * string 10 1
        hd ref Var 10 1
          name vl list of ref Var 0 0
      seq no type 10 1
        name nil list of ref Listnode 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b187 big 0 0
    const (64) int 6 0
ecom: 
* string 10 1
  hd ref Var 10 1
    name vl list of ref Var 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b187 big 0 0
    const (72) int 6 0
eacom: 
* string 10 1
  hd ref Var 10 1
    name vl list of ref Var 0 0
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name .t188 ref Var 0 0
ecom: 
= ref Var 10 1
  name .t188 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .t188 ref Var 0 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b187 big 0 0
    const (80) int 6 0
ecom: 
= ref Var 10 1
  name v ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name v ref Var 0 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  tl list of ref Var 10 1
    name vl list of ref Var 0 0
ecom: 
tl list of ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name vl list of ref Var 0 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  name nil list of ref Var 1 0
ecom: 
name nil list of ref Var 1 0
ecom to: 
name vl list of ref Var 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
= array of list of ref Var 10 1
  name oldv array of list of ref Var 0 0
  name nil array of list of ref Var 1 0
ecom: 
name nil array of list of ref Var 1 0
ecom to: 
name oldv array of list of ref Var 0 0
fn: pop
64: argument ctxt ref Context ref 6
72: local i int ref 4
76: local .t189 int ref 1
80: local vl list of ref Var ref 6
88: local .b187 big ref 4
96: local oldv array of list of ref Var ref 3
104: local v ref Var ref 2
112: local .t186 ref Localenv ref 1
120: local .t188 ref Localenv ref 1
generate desc for Context.pop
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap i type int offset 72 (d->offset=72 start=0) returns -1
descmap .t189 type int offset 76 (d->offset=76 start=0) returns -1
descmap vl type list of ref Var offset 80 (d->offset=80 start=0) returns 80
descmap .b187 type big offset 88 (d->offset=88 start=0) returns -1
descmap oldv type array of list of ref Var offset 96 (d->offset=96 start=0) returns 96
descmap v type ref Var offset 104 (d->offset=104 start=0) returns 104
descmap .t186 type ref Localenv offset 112 (d->offset=112 start=0) returns 112
descmap .t188 type ref Localenv offset 120 (d->offset=120 start=0) returns 120
fncom: run 7 4bd140
eacom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t190 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t190 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t190 ref Listnode 0 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t190 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t190 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t190 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
= ref Listnode 10 1
  name cmd ref Listnode 0 0
  hd ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name cmd ref Listnode 0 0
eacom: 
inds int 10 1
  * string 8 0
    + int 15 1
      name cmd ref Listnode 0 0
      const word (8) int 6 0
  const (0) int 6 0
ecom: 
inds int 10 1
  * string 8 0
    + int 15 1
      name cmd ref Listnode 0 0
      const word (8) int 6 0
  const (0) int 6 0
ecom to: 
name .t191 int 0 0
ecom: 
call string 10 2
  name runblock fn(ctxt: ref Context, args: list of ref Listnode, last: int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name args list of ref Listnode 0 0
      seq no type 10 1
        name last int 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b192 big 0 0
    const (64) int 6 0
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b192 big 0 0
    const (72) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b192 big 0 0
    const (80) int 6 0
eacom: 
& int 10 1
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  const EXECPRINT (4) int 6 0
ecom: 
& int 10 1
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  const EXECPRINT (4) int 6 0
ecom to: 
name .t191 int 0 0
eacom: 
* int 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const flags (16) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name .t190 ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t190 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .t190 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t190 ref Localenv 0 0
ecom: 
used int 10 3
  call int 10 3
    -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name fprint nothing 11 1
    seq no type 10 3
      call ref Sys->FD 10 2
        -> fn(fd: int): ref Sys->FD 12 1
          name sys Sys 1 0
          name fildes nothing 11 1
        seq no type 10 1
          const (2) int 6 0
      seq no type 10 2
        const %s
 string 1 0
        seq no type 10 2
          call string 10 2
            name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
            seq no type 10 1
              name args list of ref Listnode 0 0
              seq no type 10 1
                const (0) int 6 0
ecom: 
call int 10 3
  -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name fprint nothing 11 1
  seq no type 10 3
    call ref Sys->FD 10 2
      -> fn(fd: int): ref Sys->FD 12 1
        name sys Sys 1 0
        name fildes nothing 11 1
      seq no type 10 1
        const (2) int 6 0
    seq no type 10 2
      const %s
 string 1 0
      seq no type 10 2
        call string 10 2
          name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
          seq no type 10 1
            name args list of ref Listnode 0 0
            seq no type 10 1
              const (0) int 6 0
ecom to: 
name .t191 int 0 0
generate desc for Sys->fprint
descmap offset 0
descmap fd type ref Sys->FD offset 64 (d->offset=64 start=0) returns 64
descmap s type string offset 72 (d->offset=72 start=0) returns 72
descmap type string offset 80 returns 80
generate desc for big
ecom: 
call ref Sys->FD 10 2
  -> fn(fd: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name fildes nothing 11 1
  seq no type 10 1
    const (2) int 6 0
ecom to: 
name .t190 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b193 big 0 0
    const (64) int 6 0
ecom: 
call string 10 2
  name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
  seq no type 10 1
    name args list of ref Listnode 0 0
    seq no type 10 1
      const (0) int 6 0
ecom to: 
name .t194 string 0 0
generate desc for big
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b193 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b193 big 0 0
    const (72) int 6 0
ecom: 
name .t190 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b192 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .t190 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t190 ref Sys->FD 0 0
ecom: 
const %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b192 big 0 0
    const (72) int 6 0
ecom: 
name .t194 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b192 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t194 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t194 string 0 0
ecom: 
= (int, string) 10 2
  tuple (int, string) 10 1
    seq nothing 10 1
      name doneit int 0 0
      seq nothing 10 1
        name status string 0 0
  call (int, string) 10 2
    name trybuiltin fn(ctxt: ref Context, args: list of ref Listnode, lseq: int): (int, string) 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name args list of ref Listnode 0 0
        seq no type 10 1
          name last int 0 0
ecom: 
call (int, string) 10 2
  name trybuiltin fn(ctxt: ref Context, args: list of ref Listnode, lseq: int): (int, string) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name args list of ref Listnode 0 0
      seq no type 10 1
        name last int 0 0
ecom to: 
name doneit (int, string) 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b193 big 0 0
    const (64) int 6 0
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b193 big 0 0
    const (72) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b193 big 0 0
    const (80) int 6 0
ecom: 
= string 10 2
  name status string 0 0
  call string 10 2
    name runexternal fn(ctxt: ref Context, args: list of ref Listnode, last: int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name args list of ref Listnode 0 0
        seq no type 10 1
          name last int 0 0
ecom: 
call string 10 2
  name runexternal fn(ctxt: ref Context, args: list of ref Listnode, last: int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name args list of ref Listnode 0 0
      seq no type 10 1
        name last int 0 0
ecom to: 
name status string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b193 big 0 0
    const (64) int 6 0
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b193 big 0 0
    const (72) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b193 big 0 0
    const (80) int 6 0
ecom: 
name status string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: run
64: argument ctxt ref Context ref 5
72: argument args list of ref Listnode ref 8
80: argument last int ref 3
88: local doneit int ref 2
96: local status string ref 3
104: local .t191 int ref 1
112: local .b193 big ref 4
120: local cmd ref Listnode ref 3
128: local .b192 big ref 2
136: local .t190 ref Listnode ref 1
144: local .t194 string ref 1
generate desc for Context.run
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap args type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap last type int offset 80 (d->offset=80 start=0) returns -1
descmap doneit type int offset 88 (d->offset=88 start=0) returns -1
descmap status type string offset 96 (d->offset=96 start=0) returns 96
descmap .t191 type int offset 104 (d->offset=104 start=0) returns -1
descmap .b193 type big offset 112 (d->offset=112 start=0) returns -1
descmap cmd type ref Listnode offset 120 (d->offset=120 start=0) returns 120
descmap .b192 type big offset 128 (d->offset=128 start=0) returns -1
descmap .t190 type ref Listnode offset 136 (d->offset=136 start=0) returns 136
descmap .t194 type string offset 144 (d->offset=144 start=0) returns 144
fncom: addmodule 2 4bdb40
ecom: 
used string 10 2
  call string 10 2
    -> fn(c: ref Context, sh: Sh): string 12 1
      name mod Shellbuiltin 0 0
      name initbuiltin nothing 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name myself Sh 1 0
ecom: 
call string 10 2
  -> fn(c: ref Context, sh: Sh): string 12 1
    name mod Shellbuiltin 0 0
    name initbuiltin nothing 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name myself Sh 1 0
ecom to: 
name .t195 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b196 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b196 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t195 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t195 string 0 0
ecom: 
= list of (string, Shellbuiltin) 10 2
  * list of (string, Shellbuiltin) 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const bmods (16) int 6 0
  :: list of (string, Shellbuiltin) 10 2
    tuple (string, Shellbuiltin) 10 1
      seq no type 10 1
        name name string 0 0
        seq no type 10 1
          call Shellbuiltin 10 1
            -> fn(): Shellbuiltin 12 1
              name mod Shellbuiltin 0 0
              name getself nothing 11 1
    * list of (string, Shellbuiltin) 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const bmods (16) int 6 0
eacom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t195 ref Environment 0 0
ecom: 
:: list of (string, Shellbuiltin) 10 2
  tuple (string, Shellbuiltin) 10 1
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        call Shellbuiltin 10 1
          -> fn(): Shellbuiltin 12 1
            name mod Shellbuiltin 0 0
            name getself nothing 11 1
  * list of (string, Shellbuiltin) 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const bmods (16) int 6 0
ecom to: 
* list of (string, Shellbuiltin) 8 1
  + int 15 1
    name .t195 ref Environment 0 0
    const bmods (16) int 6 0
eacom: 
tuple (string, Shellbuiltin) 10 1
  seq no type 10 1
    name name string 0 0
    seq no type 10 1
      call Shellbuiltin 10 1
        -> fn(): Shellbuiltin 12 1
          name mod Shellbuiltin 0 0
          name getself nothing 11 1
generate desc for (string, Shellbuiltin)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type Shellbuiltin offset 8 (d->offset=8 start=0) returns 8
generate desc for (string, Shellbuiltin)
	desc	$-1,16,"c0"
ecom: 
tuple (string, Shellbuiltin) 10 1
  seq no type 10 1
    name name string 0 0
    seq no type 10 1
      call Shellbuiltin 10 1
        -> fn(): Shellbuiltin 12 1
          name mod Shellbuiltin 0 0
          name getself nothing 11 1
ecom to: 
name .b197 (string, Shellbuiltin) 0 0
ecom: 
name name string 0 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b197 (string, Shellbuiltin) 0 0
    const (0) int 6 0
ecom: 
call Shellbuiltin 10 1
  -> fn(): Shellbuiltin 12 1
    name mod Shellbuiltin 0 0
    name getself nothing 11 1
ecom to: 
* Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b197 (string, Shellbuiltin) 0 0
    const (8) int 6 0
generate desc for big
ecom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom to: 
name .t198 list of (string, Shellbuiltin) 0 0
eacom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t198 ref Environment 0 0
generate desc for (string, Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b197 (string, Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name .b197 (string, Shellbuiltin) 0 0
ecom: 
= Shellbuiltin 10 1
  * Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b197 (string, Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b197 (string, Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= list of (string, Shellbuiltin) 10 1
  name .t198 list of (string, Shellbuiltin) 0 0
  name nil list of (string, Shellbuiltin) 1 0
ecom: 
name nil list of (string, Shellbuiltin) 1 0
ecom to: 
name .t198 list of (string, Shellbuiltin) 0 0
ecom: 
= ref Environment 10 1
  name .t195 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t195 ref Environment 0 0
fn: addmodule
64: argument ctxt ref Context ref 3
72: argument name string ref 1
80: argument mod Shellbuiltin ref 2
88: local .b196 big ref 2
96: local .t195 string ref 1
104: local .t198 list of (string, Shellbuiltin) ref 1
112: local .b197 (string, Shellbuiltin) ref 1
generate desc for Context.addmodule
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap name type string offset 72 (d->offset=72 start=0) returns 72
descmap mod type Shellbuiltin offset 80 (d->offset=80 start=0) returns 80
descmap .b196 type big offset 88 (d->offset=88 start=0) returns -1
descmap .t195 type string offset 96 (d->offset=96 start=0) returns 96
descmap .t198 type list of (string, Shellbuiltin) offset 104 (d->offset=104 start=0) returns 104
descmap adt offset 112
descmap offset 112
descmap t0 type string offset 112 (d->offset=0 start=112) returns 112
descmap t1 type Shellbuiltin offset 120 (d->offset=8 start=112) returns 120
descmap .b197 type (string, Shellbuiltin) offset 112 (d->offset=112 start=0) returns 120
fncom: addbuiltin 3 4be4c0
ecom: 
call no type 10 2
  name addbuiltin fn(b: ref Builtins, name: string, mod: Shellbuiltin) 11 1
  seq no type 10 2
    * ref Builtins 10 1
      + int 10 1
        * ref Environment 8 0
          name c ref Context 0 0
        const builtins (8) int 6 0
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        name mod Shellbuiltin 0 0
generate desc for big
ecom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name c ref Context 0 0
    const builtins (8) int 6 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b199 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name c ref Context 0 0
    const builtins (8) int 6 0
ecom: 
* ref Environment 8 0
  name c ref Context 0 0
ecom to: 
name .t200 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t200 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t200 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b199 big 0 0
    const (72) int 6 0
ecom: 
name mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b199 big 0 0
    const (80) int 6 0
fn: addbuiltin
64: argument c ref Context ref 1
72: argument name string ref 1
80: argument mod Shellbuiltin ref 1
88: local .b199 big ref 1
96: local .t200 ref Environment ref 1
generate desc for Context.addbuiltin
descmap offset 0
descmap c type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap name type string offset 72 (d->offset=72 start=0) returns 72
descmap mod type Shellbuiltin offset 80 (d->offset=80 start=0) returns 80
descmap .b199 type big offset 88 (d->offset=88 start=0) returns -1
descmap .t200 type ref Environment offset 96 (d->offset=96 start=0) returns 96
fncom: removebuiltin 2 4bec50
ecom: 
call no type 10 2
  name removebuiltin fn(b: ref Builtins, name: string, mod: Shellbuiltin) 11 1
  seq no type 10 2
    * ref Builtins 10 1
      + int 10 1
        * ref Environment 8 0
          name c ref Context 0 0
        const builtins (8) int 6 0
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        name mod Shellbuiltin 0 0
generate desc for big
ecom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name c ref Context 0 0
    const builtins (8) int 6 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b201 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name c ref Context 0 0
    const builtins (8) int 6 0
ecom: 
* ref Environment 8 0
  name c ref Context 0 0
ecom to: 
name .t202 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t202 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t202 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b201 big 0 0
    const (72) int 6 0
ecom: 
name mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b201 big 0 0
    const (80) int 6 0
fn: removebuiltin
64: argument c ref Context ref 1
72: argument name string ref 1
80: argument mod Shellbuiltin ref 1
88: local .b201 big ref 1
96: local .t202 ref Environment ref 1
generate desc for Context.removebuiltin
descmap offset 0
descmap c type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap name type string offset 72 (d->offset=72 start=0) returns 72
descmap mod type Shellbuiltin offset 80 (d->offset=80 start=0) returns 80
descmap .b201 type big offset 88 (d->offset=88 start=0) returns -1
descmap .t202 type ref Environment offset 96 (d->offset=96 start=0) returns 96
fncom: addsbuiltin 7 4bf3d0
ecom: 
call no type 10 2
  name addbuiltin fn(b: ref Builtins, name: string, mod: Shellbuiltin) 11 1
  seq no type 10 2
    * ref Builtins 10 1
      * ref Environment 8 0
        name c ref Context 0 0
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        name mod Shellbuiltin 0 0
generate desc for big
ecom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name c ref Context 0 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b203 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name c ref Context 0 0
ecom: 
* ref Environment 8 0
  name c ref Context 0 0
ecom to: 
name .t204 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t204 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t204 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b203 big 0 0
    const (72) int 6 0
ecom: 
name mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b203 big 0 0
    const (80) int 6 0
fn: addsbuiltin
64: argument c ref Context ref 1
72: argument name string ref 1
80: argument mod Shellbuiltin ref 1
88: local .b203 big ref 1
96: local .t204 ref Environment ref 1
generate desc for Context.addsbuiltin
descmap offset 0
descmap c type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap name type string offset 72 (d->offset=72 start=0) returns 72
descmap mod type Shellbuiltin offset 80 (d->offset=80 start=0) returns 80
descmap .b203 type big offset 88 (d->offset=88 start=0) returns -1
descmap .t204 type ref Environment offset 96 (d->offset=96 start=0) returns 96
fncom: removesbuiltin 2 4bfb58
ecom: 
call no type 10 2
  name removebuiltin fn(b: ref Builtins, name: string, mod: Shellbuiltin) 11 1
  seq no type 10 2
    * ref Builtins 10 1
      * ref Environment 8 0
        name c ref Context 0 0
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        name mod Shellbuiltin 0 0
generate desc for big
ecom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name c ref Context 0 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b205 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name c ref Context 0 0
ecom: 
* ref Environment 8 0
  name c ref Context 0 0
ecom to: 
name .t206 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t206 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t206 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b205 big 0 0
    const (72) int 6 0
ecom: 
name mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b205 big 0 0
    const (80) int 6 0
fn: removesbuiltin
64: argument c ref Context ref 1
72: argument name string ref 1
80: argument mod Shellbuiltin ref 1
88: local .b205 big ref 1
96: local .t206 ref Environment ref 1
generate desc for Context.removesbuiltin
descmap offset 0
descmap c type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap name type string offset 72 (d->offset=72 start=0) returns 72
descmap mod type Shellbuiltin offset 80 (d->offset=80 start=0) returns 80
descmap .b205 type big offset 88 (d->offset=88 start=0) returns -1
descmap .t206 type ref Environment offset 96 (d->offset=96 start=0) returns 96
fncom: varfind 3 419828
ecom: 
= int 10 2
  name idx int 0 0
  call int 10 2
    name hashfn fn(s: string, n: int): int 11 1
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        len int 10 1
          * array of list of ref Var 8 0
            name e ref Localenv 0 0
ecom: 
call int 10 2
  name hashfn fn(s: string, n: int): int 11 1
  seq no type 10 1
    name name string 0 0
    seq no type 10 1
      len int 10 1
        * array of list of ref Var 8 0
          name e ref Localenv 0 0
ecom to: 
name idx int 0 0
generate desc for big
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b207 big 0 0
    const (64) int 6 0
ecom: 
len int 10 1
  * array of list of ref Var 8 0
    name e ref Localenv 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b207 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  * list of ref Var 10 1
    indx big 10 1
      * array of list of ref Var 8 0
        name e ref Localenv 0 0
      name idx int 0 0
ecom: 
* list of ref Var 10 1
  indx big 10 1
    * array of list of ref Var 8 0
      name e ref Localenv 0 0
    name idx int 0 0
ecom to: 
name vl list of ref Var 0 0
eacom: 
* list of ref Var 10 1
  indx big 10 1
    * array of list of ref Var 8 0
      name e ref Localenv 0 0
    name idx int 0 0
generate desc for big
ecom: 
indx big 10 1
  * array of list of ref Var 8 0
    name e ref Localenv 0 0
  name idx int 0 0
ecom to: 
name .b207 big 0 0
eacom: 
* string 10 1
  hd ref Var 10 1
    name vl list of ref Var 0 0
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name .t208 ref Var 0 0
ecom: 
= ref Var 10 1
  name .t208 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .t208 ref Var 0 0
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
* ref Var 8 0
  name .ret int 0 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  tl list of ref Var 10 1
    name vl list of ref Var 0 0
ecom: 
tl list of ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name vl list of ref Var 0 0
ecom: 
= ref Localenv 10 1
  name e ref Localenv 0 0
  * ref Localenv 8 0
    + int 15 1
      name e ref Localenv 0 0
      const pushed (8) int 6 0
ecom: 
* ref Localenv 8 0
  + int 15 1
    name e ref Localenv 0 0
    const pushed (8) int 6 0
ecom to: 
name e ref Localenv 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
fn: varfind
64: argument e ref Localenv ref 5
72: argument name string ref 2
80: local idx int ref 2
88: local vl list of ref Var ref 6
96: local .b207 big ref 2
104: local .t208 ref Var ref 1
generate desc for varfind
descmap offset 0
descmap e type ref Localenv offset 64 (d->offset=64 start=0) returns 64
descmap name type string offset 72 (d->offset=72 start=0) returns 72
descmap idx type int offset 80 (d->offset=80 start=0) returns -1
descmap vl type list of ref Var offset 88 (d->offset=88 start=0) returns 88
descmap .b207 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t208 type ref Var offset 104 (d->offset=104 start=0) returns 104
fncom: fail 27 4c02d8
eacom: 
& int 10 1
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  const VERBOSE (2) int 6 0
ecom: 
& int 10 1
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  const VERBOSE (2) int 6 0
ecom to: 
name .t209 int 0 0
eacom: 
* int 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const flags (16) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name .t210 ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t210 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .t210 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t210 ref Localenv 0 0
ecom: 
used int 10 2
  call int 10 2
    -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name fprint nothing 11 1
    seq no type 10 2
      call ref Sys->FD 10 2
        -> fn(fd: int): ref Sys->FD 12 1
          name sys Sys 1 0
          name fildes nothing 11 1
        seq no type 10 1
          const (2) int 6 0
      seq no type 10 1
        const %s
 string 1 0
        seq no type 10 1
          name err string 0 0
ecom: 
call int 10 2
  -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name fprint nothing 11 1
  seq no type 10 2
    call ref Sys->FD 10 2
      -> fn(fd: int): ref Sys->FD 12 1
        name sys Sys 1 0
        name fildes nothing 11 1
      seq no type 10 1
        const (2) int 6 0
    seq no type 10 1
      const %s
 string 1 0
      seq no type 10 1
        name err string 0 0
ecom to: 
name .t209 int 0 0
generate desc for Sys->fprint
descmap offset 0
descmap fd type ref Sys->FD offset 64 (d->offset=64 start=0) returns 64
descmap s type string offset 72 (d->offset=72 start=0) returns 72
descmap type string offset 80 returns 80
generate desc for big
ecom: 
call ref Sys->FD 10 2
  -> fn(fd: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name fildes nothing 11 1
  seq no type 10 1
    const (2) int 6 0
ecom to: 
name .t210 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b212 big 0 0
    const (64) int 6 0
ecom: 
name .t210 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b211 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .t210 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t210 ref Sys->FD 0 0
ecom: 
const %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b211 big 0 0
    const (72) int 6 0
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b211 big 0 0
    const (80) int 6 0
ecom: 
raise nothing 10 1
  + string 10 1
    const fail: string 1 0
    name ename string 0 0
eacom: 
+ string 10 1
  const fail: string 1 0
  name ename string 0 0
ecom: 
+ string 10 1
  const fail: string 1 0
  name ename string 0 0
ecom to: 
name .t210 string 0 0
ecom: 
= string 10 1
  name .t210 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t210 string 0 0
fn: fail
64: argument ctxt ref Context ref 1
72: argument ename string ref 1
80: argument err string ref 1
88: local .t209 int ref 1
96: local .b211 big ref 1
104: local .b212 big ref 1
112: local .t210 ref Localenv ref 1
generate desc for Context.fail
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap ename type string offset 72 (d->offset=72 start=0) returns 72
descmap err type string offset 80 (d->offset=80 start=0) returns 80
descmap .t209 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b211 type big offset 96 (d->offset=96 start=0) returns -1
descmap .b212 type big offset 104 (d->offset=104 start=0) returns -1
descmap .t210 type ref Localenv offset 112 (d->offset=112 start=0) returns 112
fncom: setoptions 6 4c1058
ecom: 
= int 10 1
  name old int 0 0
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
ecom: 
* int 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const flags (16) int 6 0
ecom to: 
name old int 0 0
eacom: 
* int 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const flags (16) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name .t213 ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t213 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .t213 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t213 ref Localenv 0 0
ecom: 
|= int 10 1
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  name flags int 0 0
eacom: 
* int 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const flags (16) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name .t213 ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t213 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .t213 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t213 ref Localenv 0 0
ecom: 
&= int 10 2
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  ^ int 10 1
    name flags int 0 0
    const (-1) int 6 0
eacom: 
* int 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const flags (16) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name .t213 ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t213 ref Environment 0 0
eacom: 
^ int 10 1
  name flags int 0 0
  const (-1) int 6 0
ecom: 
^ int 10 1
  name flags int 0 0
  const (-1) int 6 0
ecom to: 
name .t214 int 0 0
ecom: 
= ref Localenv 10 1
  name .t213 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t213 ref Localenv 0 0
ecom: 
name old int 0 0
ecom to: 
* int 8 0
  name .ret int 0 0
fn: setoptions
64: argument ctxt ref Context ref 3
72: argument flags int ref 2
76: argument on int ref 1
80: local old int ref 2
84: local .t214 int ref 1
88: local .t213 ref Localenv ref 1
generate desc for Context.setoptions
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap flags type int offset 72 (d->offset=72 start=0) returns -1
descmap on type int offset 76 (d->offset=76 start=0) returns -1
descmap old type int offset 80 (d->offset=80 start=0) returns -1
descmap .t214 type int offset 84 (d->offset=84 start=0) returns -1
descmap .t213 type ref Localenv offset 88 (d->offset=88 start=0) returns 88
fncom: options 10 4c0af8
ecom: 
* int 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const flags (16) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
eacom: 
* int 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const flags (16) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name .t215 ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t215 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .t215 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t215 ref Localenv 0 0
fn: options
64: argument ctxt ref Context ref 1
72: local .t215 ref Localenv ref 1
generate desc for Context.options
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap .t215 type ref Localenv offset 72 (d->offset=72 start=0) returns 72
fncom: hashfn 7 4198e8
ecom: 
= int 10 1
  name h int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name h int 0 0
ecom: 
= int 10 1
  name m int 0 0
  len int 10 1
    name s string 0 0
ecom: 
len int 10 1
  name s string 0 0
ecom to: 
name m int 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
ecom: 
= int 10 2
  name h int 0 0
  + int 10 2
    * int 10 1
      name h int 0 0
      const (65599) int 6 0
    inds int 10 1
      name s string 0 0
      name i int 0 0
ecom: 
+ int 10 2
  * int 10 1
    name h int 0 0
    const (65599) int 6 0
  inds int 10 1
    name s string 0 0
    name i int 0 0
ecom to: 
name h int 0 0
ecom: 
* int 10 1
  name h int 0 0
  const (65599) int 6 0
ecom to: 
name .t216 int 0 0
eacom: 
inds int 10 1
  name s string 0 0
  name i int 0 0
ecom: 
inds int 10 1
  name s string 0 0
  name i int 0 0
ecom to: 
name .t217 int 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
% int 10 1
  & int 10 1
    name h int 0 0
    const .i.7fffffff (2147483647) int 1 0
  name n int 0 0
ecom to: 
* int 8 0
  name .ret int 0 0
ecom: 
& int 10 1
  name h int 0 0
  const .i.7fffffff (2147483647) int 1 0
ecom to: 
name .t217 int 0 0
fn: hashfn
64: argument s string ref 2
72: argument n int ref 1
76: local h int ref 4
80: local i int ref 4
84: local m int ref 2
88: local .t216 int ref 1
92: local .t217 int ref 1
generate desc for hashfn
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap n type int offset 72 (d->offset=72 start=0) returns -1
descmap h type int offset 76 (d->offset=76 start=0) returns -1
descmap i type int offset 80 (d->offset=80 start=0) returns -1
descmap m type int offset 84 (d->offset=84 start=0) returns -1
descmap .t216 type int offset 88 (d->offset=88 start=0) returns -1
descmap .t217 type int offset 92 (d->offset=92 start=0) returns -1
fncom: hashfind 5 4199a8
ecom: 
= list of ref Var 10 1
  name ent list of ref Var 0 0
  * list of ref Var 10 1
    indx big 10 1
      name ht array of list of ref Var 0 0
      name idx int 0 0
ecom: 
* list of ref Var 10 1
  indx big 10 1
    name ht array of list of ref Var 0 0
    name idx int 0 0
ecom to: 
name ent list of ref Var 0 0
eacom: 
* list of ref Var 10 1
  indx big 10 1
    name ht array of list of ref Var 0 0
    name idx int 0 0
generate desc for big
ecom: 
indx big 10 1
  name ht array of list of ref Var 0 0
  name idx int 0 0
ecom to: 
name .b218 big 0 0
eacom: 
* string 10 1
  hd ref Var 10 1
    name ent list of ref Var 0 0
ecom: 
hd ref Var 10 1
  name ent list of ref Var 0 0
ecom to: 
name .t219 ref Var 0 0
ecom: 
= ref Var 10 1
  name .t219 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .t219 ref Var 0 0
ecom: 
hd ref Var 10 1
  name ent list of ref Var 0 0
ecom to: 
* ref Var 8 0
  name .ret int 0 0
ecom: 
= list of ref Var 10 1
  name ent list of ref Var 0 0
  tl list of ref Var 10 1
    name ent list of ref Var 0 0
ecom: 
tl list of ref Var 10 1
  name ent list of ref Var 0 0
ecom to: 
name ent list of ref Var 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
fn: hashfind
64: argument ht array of list of ref Var ref 1
72: argument idx int ref 1
80: argument n string ref 1
88: local ent list of ref Var ref 6
96: local .b218 big ref 1
104: local .t219 ref Var ref 1
generate desc for hashfind
descmap offset 0
descmap ht type array of list of ref Var offset 64 (d->offset=64 start=0) returns 64
descmap idx type int offset 72 (d->offset=72 start=0) returns -1
descmap n type string offset 80 (d->offset=80 start=0) returns 80
descmap ent type list of ref Var offset 88 (d->offset=88 start=0) returns 88
descmap .b218 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t219 type ref Var offset 104 (d->offset=104 start=0) returns 104
fncom: hashadd 6 419a68
ecom: 
= list of ref Var 10 2
  * list of ref Var 10 1
    indx big 10 1
      name ht array of list of ref Var 0 0
      name idx int 0 0
  :: list of ref Var 10 1
    name v ref Var 0 0
    * list of ref Var 10 1
      indx big 10 1
        name ht array of list of ref Var 0 0
        name idx int 0 0
eacom: 
* list of ref Var 10 1
  indx big 10 1
    name ht array of list of ref Var 0 0
    name idx int 0 0
generate desc for big
ecom: 
indx big 10 1
  name ht array of list of ref Var 0 0
  name idx int 0 0
ecom to: 
name .b220 big 0 0
ecom: 
:: list of ref Var 10 1
  name v ref Var 0 0
  * list of ref Var 10 1
    indx big 10 1
      name ht array of list of ref Var 0 0
      name idx int 0 0
ecom to: 
* list of ref Var 8 1
  name .b220 big 0 0
ecom: 
* list of ref Var 10 1
  indx big 10 1
    name ht array of list of ref Var 0 0
    name idx int 0 0
ecom to: 
name .t221 list of ref Var 0 0
eacom: 
* list of ref Var 10 1
  indx big 10 1
    name ht array of list of ref Var 0 0
    name idx int 0 0
generate desc for big
ecom: 
indx big 10 1
  name ht array of list of ref Var 0 0
  name idx int 0 0
ecom to: 
name .b222 big 0 0
ecom: 
= list of ref Var 10 1
  name .t221 list of ref Var 0 0
  name nil list of ref Var 1 0
ecom: 
name nil list of ref Var 1 0
ecom to: 
name .t221 list of ref Var 0 0
fn: hashadd
64: argument ht array of list of ref Var ref 2
72: argument idx int ref 2
80: argument v ref Var ref 1
88: local .b220 big ref 1
96: local .b222 big ref 1
104: local .t221 list of ref Var ref 1
generate desc for hashadd
descmap offset 0
descmap ht type array of list of ref Var offset 64 (d->offset=64 start=0) returns 64
descmap idx type int offset 72 (d->offset=72 start=0) returns -1
descmap v type ref Var offset 80 (d->offset=80 start=0) returns 80
descmap .b220 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b222 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t221 type list of ref Var offset 104 (d->offset=104 start=0) returns 104
fncom: copylocalenv 2 419b28
ecom: 
= array of list of ref Var 10 1
  name nvars array of list of ref Var 0 0
  array array of list of ref Var 10 1
    len int 10 1
      * array of list of ref Var 8 0
        name e ref Localenv 0 0
ecom: 
array array of list of ref Var 10 1
  len int 10 1
    * array of list of ref Var 8 0
      name e ref Localenv 0 0
ecom to: 
name nvars array of list of ref Var 0 0
eacom: 
len int 10 1
  * array of list of ref Var 8 0
    name e ref Localenv 0 0
ecom: 
len int 10 1
  * array of list of ref Var 8 0
    name e ref Localenv 0 0
ecom to: 
name .t223 int 0 0
generate desc for list of ref Var
generate desc for list of ref Var
	desc	$-1,8,"80"
ecom: 
= int 10 1
  name flags int 0 0
  * int 8 0
    + int 15 1
      name e ref Localenv 0 0
      const flags (16) int 6 0
ecom: 
* int 8 0
  + int 15 1
    name e ref Localenv 0 0
    const flags (16) int 6 0
ecom to: 
name flags int 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
eacom: 
len int 10 1
  name nvars array of list of ref Var 0 0
ecom: 
len int 10 1
  name nvars array of list of ref Var 0 0
ecom to: 
name .t223 int 0 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  * list of ref Var 10 1
    indx big 10 1
      * array of list of ref Var 8 0
        name e ref Localenv 0 0
      name i int 0 0
ecom: 
* list of ref Var 10 1
  indx big 10 1
    * array of list of ref Var 8 0
      name e ref Localenv 0 0
    name i int 0 0
ecom to: 
name vl list of ref Var 0 0
eacom: 
* list of ref Var 10 1
  indx big 10 1
    * array of list of ref Var 8 0
      name e ref Localenv 0 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  * array of list of ref Var 8 0
    name e ref Localenv 0 0
  name i int 0 0
ecom to: 
name .b224 big 0 0
ecom: 
= int 10 2
  name idx int 0 0
  call int 10 2
    name hashfn fn(s: string, n: int): int 11 1
    seq no type 10 2
      * string 10 1
        hd ref Var 10 1
          name vl list of ref Var 0 0
      seq no type 10 1
        len int 10 1
          name nvars array of list of ref Var 0 0
ecom: 
call int 10 2
  name hashfn fn(s: string, n: int): int 11 1
  seq no type 10 2
    * string 10 1
      hd ref Var 10 1
        name vl list of ref Var 0 0
    seq no type 10 1
      len int 10 1
        name nvars array of list of ref Var 0 0
ecom to: 
name idx int 0 0
generate desc for big
ecom: 
* string 10 1
  hd ref Var 10 1
    name vl list of ref Var 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b224 big 0 0
    const (64) int 6 0
eacom: 
* string 10 1
  hd ref Var 10 1
    name vl list of ref Var 0 0
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name .t225 ref Var 0 0
ecom: 
= ref Var 10 1
  name .t225 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .t225 ref Var 0 0
ecom: 
len int 10 1
  name nvars array of list of ref Var 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b224 big 0 0
    const (72) int 6 0
eacom: 
call ref Var 10 2
  name hashfind fn(ht: array of list of ref Var, idx: int, n: string): ref Var 11 1
  seq no type 10 1
    name nvars array of list of ref Var 0 0
    seq no type 10 1
      name idx int 0 0
      seq no type 10 1
        * string 10 1
          hd ref Var 10 1
            name vl list of ref Var 0 0
ecom: 
call ref Var 10 2
  name hashfind fn(ht: array of list of ref Var, idx: int, n: string): ref Var 11 1
  seq no type 10 1
    name nvars array of list of ref Var 0 0
    seq no type 10 1
      name idx int 0 0
      seq no type 10 1
        * string 10 1
          hd ref Var 10 1
            name vl list of ref Var 0 0
ecom to: 
name .t225 ref Var 0 0
generate desc for big
ecom: 
name nvars array of list of ref Var 0 0
ecom to: 
* array of list of ref Var 8 0
  + int 15 0
    name .b224 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b224 big 0 0
    const (72) int 6 0
ecom: 
* string 10 1
  hd ref Var 10 1
    name vl list of ref Var 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b224 big 0 0
    const (80) int 6 0
eacom: 
* string 10 1
  hd ref Var 10 1
    name vl list of ref Var 0 0
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name .t226 ref Var 0 0
ecom: 
= ref Var 10 1
  name .t226 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .t226 ref Var 0 0
ecom: 
= ref Var 10 1
  name .t225 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .t225 ref Var 0 0
ecom: 
call no type 10 2
  name hashadd fn(ht: array of list of ref Var, idx: int, v: ref Var) 11 1
  seq no type 10 1
    name nvars array of list of ref Var 0 0
    seq no type 10 1
      name idx int 0 0
      seq no type 10 1
        ref ref Var 10 1
          * Var 10 1
            hd ref Var 10 1
              name vl list of ref Var 0 0
generate desc for big
ecom: 
name nvars array of list of ref Var 0 0
ecom to: 
* array of list of ref Var 8 0
  + int 15 0
    name .b224 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b224 big 0 0
    const (72) int 6 0
ecom: 
ref ref Var 10 1
  * Var 10 1
    hd ref Var 10 1
      name vl list of ref Var 0 0
ecom to: 
* ref Var 8 0
  + int 15 0
    name .b224 big 0 0
    const (80) int 6 0
generate desc for Var
ecom: 
* Var 10 1
  hd ref Var 10 1
    name vl list of ref Var 0 0
ecom to: 
* Var 8 0
  name .t226 ref Var 0 0
eacom: 
* Var 10 1
  hd ref Var 10 1
    name vl list of ref Var 0 0
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name .t225 ref Var 0 0
generate desc for Var
ecom: 
= ref Var 10 1
  name .t225 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .t225 ref Var 0 0
ecom: 
= ref Var 10 1
  name .t226 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .t226 ref Var 0 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  tl list of ref Var 10 1
    name vl list of ref Var 0 0
ecom: 
tl list of ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name vl list of ref Var 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
= ref Localenv 10 1
  name e ref Localenv 0 0
  * ref Localenv 8 0
    + int 15 1
      name e ref Localenv 0 0
      const pushed (8) int 6 0
ecom: 
* ref Localenv 8 0
  + int 15 1
    name e ref Localenv 0 0
    const pushed (8) int 6 0
ecom to: 
name e ref Localenv 0 0
ecom: 
ref ref Localenv 10 1
  tuple Localenv 10 1
    seq no type 10 1
      name nvars array of list of ref Var 0 0
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          name flags int 0 0
ecom to: 
* ref Localenv 8 0
  name .ret int 0 0
generate desc for Localenv
descmap adt offset 0
descmap offset 0
descmap vars type array of list of ref Var offset 0 (d->offset=0 start=0) returns 0
descmap pushed type ref Localenv offset 8 (d->offset=8 start=0) returns 8
descmap flags type int offset 16 (d->offset=16 start=0) returns -1
generate desc for Localenv
	desc	$-1,24,"c0"
ecom: 
tuple Localenv 10 1
  seq no type 10 1
    name nvars array of list of ref Var 0 0
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name flags int 0 0
ecom to: 
* Localenv 8 0
  name .t226 ref Localenv 0 0
ecom: 
name nvars array of list of ref Var 0 0
ecom to: 
* array of list of ref Var 8 0
  + int 15 1
    adr int 15 1
      * Localenv 8 0
        name .t226 ref Localenv 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Localenv 8 0
  + int 15 1
    adr int 15 1
      * Localenv 8 0
        name .t226 ref Localenv 0 0
    const (8) int 6 0
ecom: 
name flags int 0 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Localenv 8 0
        name .t226 ref Localenv 0 0
    const (16) int 6 0
ecom: 
= ref Localenv 10 1
  name .t226 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t226 ref Localenv 0 0
fn: copylocalenv
64: argument e ref Localenv ref 6
72: local i int ref 4
76: local idx int ref 3
80: local flags int ref 2
84: local .t223 int ref 1
88: local vl list of ref Var ref 7
96: local nvars array of list of ref Var ref 6
104: local .b224 big ref 4
112: local .t225 ref Var ref 1
120: local .t226 ref Var ref 1
generate desc for copylocalenv
descmap offset 0
descmap e type ref Localenv offset 64 (d->offset=64 start=0) returns 64
descmap i type int offset 72 (d->offset=72 start=0) returns -1
descmap idx type int offset 76 (d->offset=76 start=0) returns -1
descmap flags type int offset 80 (d->offset=80 start=0) returns -1
descmap .t223 type int offset 84 (d->offset=84 start=0) returns -1
descmap vl type list of ref Var offset 88 (d->offset=88 start=0) returns 88
descmap nvars type array of list of ref Var offset 96 (d->offset=96 start=0) returns 96
descmap .b224 type big offset 104 (d->offset=104 start=0) returns -1
descmap .t225 type ref Var offset 112 (d->offset=112 start=0) returns 112
descmap .t226 type ref Var offset 120 (d->offset=120 start=0) returns 120
fncom: newlocalenv 3 419be8
ecom: 
= ref Localenv 10 2
  name e ref Localenv 0 0
  ref ref Localenv 10 2
    tuple Localenv 10 2
      seq no type 10 2
        array array of list of ref Var 10 1
          const ENVHASHSIZE (7) int 6 0
        seq no type 10 1
          name pushed ref Localenv 0 0
          seq no type 10 1
            const (0) int 6 0
ecom: 
ref ref Localenv 10 2
  tuple Localenv 10 2
    seq no type 10 2
      array array of list of ref Var 10 1
        const ENVHASHSIZE (7) int 6 0
      seq no type 10 1
        name pushed ref Localenv 0 0
        seq no type 10 1
          const (0) int 6 0
ecom to: 
name e ref Localenv 0 0
generate desc for Localenv
ecom: 
tuple Localenv 10 2
  seq no type 10 2
    array array of list of ref Var 10 1
      const ENVHASHSIZE (7) int 6 0
    seq no type 10 1
      name pushed ref Localenv 0 0
      seq no type 10 1
        const (0) int 6 0
ecom to: 
* Localenv 8 0
  name .t227 ref Localenv 0 0
ecom: 
array array of list of ref Var 10 1
  const ENVHASHSIZE (7) int 6 0
ecom to: 
* array of list of ref Var 8 0
  + int 15 1
    adr int 15 1
      * Localenv 8 0
        name .t227 ref Localenv 0 0
    const (0) int 6 0
generate desc for list of ref Var
generate desc for list of ref Var
	desc	$-1,8,"80"
ecom: 
name pushed ref Localenv 0 0
ecom to: 
* ref Localenv 8 0
  + int 15 1
    adr int 15 1
      * Localenv 8 0
        name .t227 ref Localenv 0 0
    const (8) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Localenv 8 0
        name .t227 ref Localenv 0 0
    const (16) int 6 0
ecom: 
= ref Localenv 10 1
  name .t227 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t227 ref Localenv 0 0
ecom: 
= list of (string, string) 10 1
  name vl list of (string, string) 0 0
  call list of (string, string) 10 1
    -> fn(): list of (string, string) 12 1
      name env Env 1 0
      name getall nothing 11 1
ecom: 
call list of (string, string) 10 1
  -> fn(): list of (string, string) 12 1
    name env Env 1 0
    name getall nothing 11 1
ecom to: 
name vl list of (string, string) 0 0
generate desc for big
ecom: 
= (string, string) 10 2
  tuple (string, string) 10 1
    seq nothing 10 1
      name name string 0 0
      seq nothing 10 1
        name val string 0 0
  hd (string, string) 10 1
    name vl list of (string, string) 0 0
ecom: 
hd (string, string) 10 1
  name vl list of (string, string) 0 0
ecom to: 
name name (string, string) 0 0
generate desc for (string, string)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type string offset 8 (d->offset=8 start=0) returns 8
generate desc for (string, string)
	desc	$-1,16,"c0"
ecom: 
call no type 10 3
  name hashadd fn(ht: array of list of ref Var, idx: int, v: ref Var) 11 1
  seq no type 10 3
    * array of list of ref Var 8 0
      name e ref Localenv 0 0
    seq no type 10 3
      call int 10 2
        name hashfn fn(s: string, n: int): int 11 1
        seq no type 10 1
          name name string 0 0
          seq no type 10 1
            len int 10 1
              * array of list of ref Var 8 0
                name e ref Localenv 0 0
      seq no type 10 2
        ref ref Var 10 2
          tuple Var 10 2
            seq no type 10 2
              name name string 0 0
              seq no type 10 2
                call list of ref Listnode 10 2
                  name stringlist2list fn(sl: list of string): list of ref Listnode 11 1
                  seq no type 10 2
                    call list of string 10 2
                      -> fn(args: string): list of string 12 1
                        name str String 1 0
                        name unquoted nothing 11 1
                      seq no type 10 1
                        name val string 0 0
                seq no type 10 1
                  const (0) int 6 0
generate desc for big
ecom: 
call int 10 2
  name hashfn fn(s: string, n: int): int 11 1
  seq no type 10 1
    name name string 0 0
    seq no type 10 1
      len int 10 1
        * array of list of ref Var 8 0
          name e ref Localenv 0 0
ecom to: 
name .t229 int 0 0
generate desc for big
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b230 big 0 0
    const (64) int 6 0
ecom: 
len int 10 1
  * array of list of ref Var 8 0
    name e ref Localenv 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b230 big 0 0
    const (72) int 6 0
ecom: 
ref ref Var 10 2
  tuple Var 10 2
    seq no type 10 2
      name name string 0 0
      seq no type 10 2
        call list of ref Listnode 10 2
          name stringlist2list fn(sl: list of string): list of ref Listnode 11 1
          seq no type 10 2
            call list of string 10 2
              -> fn(args: string): list of string 12 1
                name str String 1 0
                name unquoted nothing 11 1
              seq no type 10 1
                name val string 0 0
        seq no type 10 1
          const (0) int 6 0
ecom to: 
name .t227 ref Var 0 0
generate desc for Var
ecom: 
tuple Var 10 2
  seq no type 10 2
    name name string 0 0
    seq no type 10 2
      call list of ref Listnode 10 2
        name stringlist2list fn(sl: list of string): list of ref Listnode 11 1
        seq no type 10 2
          call list of string 10 2
            -> fn(args: string): list of string 12 1
              name str String 1 0
              name unquoted nothing 11 1
            seq no type 10 1
              name val string 0 0
      seq no type 10 1
        const (0) int 6 0
ecom to: 
* Var 8 0
  name .t227 ref Var 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Var 8 0
        name .t227 ref Var 0 0
    const (0) int 6 0
ecom: 
call list of ref Listnode 10 2
  name stringlist2list fn(sl: list of string): list of ref Listnode 11 1
  seq no type 10 2
    call list of string 10 2
      -> fn(args: string): list of string 12 1
        name str String 1 0
        name unquoted nothing 11 1
      seq no type 10 1
        name val string 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 1
    adr int 15 1
      * Var 8 0
        name .t227 ref Var 0 0
    const (8) int 6 0
generate desc for big
ecom: 
call list of string 10 2
  -> fn(args: string): list of string 12 1
    name str String 1 0
    name unquoted nothing 11 1
  seq no type 10 1
    name val string 0 0
ecom to: 
name .t231 list of string 0 0
generate desc for big
ecom: 
name val string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b232 big 0 0
    const (64) int 6 0
ecom: 
name .t231 list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b230 big 0 0
    const (64) int 6 0
ecom: 
= list of string 10 1
  name .t231 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t231 list of string 0 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Var 8 0
        name .t227 ref Var 0 0
    const (16) int 6 0
ecom: 
* array of list of ref Var 8 0
  name e ref Localenv 0 0
ecom to: 
* array of list of ref Var 8 0
  + int 15 0
    name .b228 big 0 0
    const (64) int 6 0
ecom: 
name .t229 int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b228 big 0 0
    const (72) int 6 0
ecom: 
name .t227 ref Var 0 0
ecom to: 
* ref Var 8 0
  + int 15 0
    name .b228 big 0 0
    const (80) int 6 0
ecom: 
= ref Var 10 1
  name .t227 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .t227 ref Var 0 0
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name name (string, string) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name name (string, string) 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name name (string, string) 0 0
      const t1 (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name name (string, string) 0 0
    const t1 (8) int 6 0
ecom: 
= string 10 1
  name val string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name val string 0 0
ecom: 
= list of (string, string) 10 1
  name vl list of (string, string) 0 0
  tl list of (string, string) 10 1
    name vl list of (string, string) 0 0
ecom: 
tl list of (string, string) 10 1
  name vl list of (string, string) 0 0
ecom to: 
name vl list of (string, string) 0 0
ecom: 
= list of (string, string) 10 1
  name vl list of (string, string) 0 0
  name nil list of (string, string) 1 0
ecom: 
name nil list of (string, string) 1 0
ecom to: 
name vl list of (string, string) 0 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name e ref Localenv 0 0
      const flags (16) int 6 0
  * int 8 0
    + int 15 1
      name pushed ref Localenv 0 0
      const flags (16) int 6 0
ecom: 
* int 8 0
  + int 15 1
    name pushed ref Localenv 0 0
    const flags (16) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name e ref Localenv 0 0
    const flags (16) int 6 0
ecom: 
name e ref Localenv 0 0
ecom to: 
* ref Localenv 8 0
  name .ret int 0 0
fn: newlocalenv
64: argument pushed ref Localenv ref 4
72: local .t229 int ref 1
80: local e ref Localenv ref 5
88: local vl list of (string, string) ref 5
96: local name string ref 3
104: local val string ref 2
112: local .b228 big ref 2
120: local .b230 big ref 2
128: local .b232 big ref 1
136: local .t227 ref Localenv ref 1
144: local .t231 list of string ref 1
generate desc for newlocalenv
descmap offset 0
descmap pushed type ref Localenv offset 64 (d->offset=64 start=0) returns 64
descmap .t229 type int offset 72 (d->offset=72 start=0) returns -1
descmap e type ref Localenv offset 80 (d->offset=80 start=0) returns 80
descmap vl type list of (string, string) offset 88 (d->offset=88 start=0) returns 88
descmap name type string offset 96 (d->offset=96 start=0) returns 96
descmap val type string offset 104 (d->offset=104 start=0) returns 104
descmap .b228 type big offset 112 (d->offset=112 start=0) returns -1
descmap .b230 type big offset 120 (d->offset=120 start=0) returns -1
descmap .b232 type big offset 128 (d->offset=128 start=0) returns -1
descmap .t227 type ref Localenv offset 136 (d->offset=136 start=0) returns 136
descmap .t231 type list of string offset 144 (d->offset=144 start=0) returns 144
fncom: copybuiltins 3 419ca8
ecom: 
= ref Builtins 10 2
  name nb ref Builtins 0 0
  ref ref Builtins 10 2
    tuple Builtins 10 2
      seq no type 10 2
        array array of (string, list of Shellbuiltin) 10 1
          * int 8 0
            + int 15 1
              name b ref Builtins 0 0
              const n (8) int 6 0
        seq no type 10 1
          * int 8 0
            + int 15 1
              name b ref Builtins 0 0
              const n (8) int 6 0
ecom: 
ref ref Builtins 10 2
  tuple Builtins 10 2
    seq no type 10 2
      array array of (string, list of Shellbuiltin) 10 1
        * int 8 0
          + int 15 1
            name b ref Builtins 0 0
            const n (8) int 6 0
      seq no type 10 1
        * int 8 0
          + int 15 1
            name b ref Builtins 0 0
            const n (8) int 6 0
ecom to: 
name nb ref Builtins 0 0
generate desc for Builtins
ecom: 
tuple Builtins 10 2
  seq no type 10 2
    array array of (string, list of Shellbuiltin) 10 1
      * int 8 0
        + int 15 1
          name b ref Builtins 0 0
          const n (8) int 6 0
    seq no type 10 1
      * int 8 0
        + int 15 1
          name b ref Builtins 0 0
          const n (8) int 6 0
ecom to: 
* Builtins 8 0
  name .t233 ref Builtins 0 0
ecom: 
array array of (string, list of Shellbuiltin) 10 1
  * int 8 0
    + int 15 1
      name b ref Builtins 0 0
      const n (8) int 6 0
ecom to: 
* array of (string, list of Shellbuiltin) 8 0
  + int 15 1
    adr int 15 1
      * Builtins 8 0
        name .t233 ref Builtins 0 0
    const (0) int 6 0
generate desc for (string, list of Shellbuiltin)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type list of Shellbuiltin offset 8 (d->offset=8 start=0) returns 8
generate desc for (string, list of Shellbuiltin)
	desc	$-1,16,"c0"
ecom: 
* int 8 0
  + int 15 1
    name b ref Builtins 0 0
    const n (8) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Builtins 8 0
        name .t233 ref Builtins 0 0
    const (8) int 6 0
ecom: 
= ref Builtins 10 1
  name .t233 ref Builtins 0 0
  name nil ref Builtins 1 0
ecom: 
name nil ref Builtins 1 0
ecom to: 
name .t233 ref Builtins 0 0
ecom: 
= array of (string, list of Shellbuiltin) 10 2
  slice array of (string, list of Shellbuiltin) 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name nb ref Builtins 0 0
    seq no type 10 1
      const (0) int 6 0
      nothing no type 10 1
  slice array of (string, list of Shellbuiltin) 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    seq no type 10 1
      const (0) int 6 0
      * int 8 0
        + int 15 1
          name b ref Builtins 0 0
          const n (8) int 6 0
eacom: 
slice array of (string, list of Shellbuiltin) 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  seq no type 10 1
    const (0) int 6 0
    * int 8 0
      + int 15 1
        name b ref Builtins 0 0
        const n (8) int 6 0
ecom: 
slice array of (string, list of Shellbuiltin) 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  seq no type 10 1
    const (0) int 6 0
    * int 8 0
      + int 15 1
        name b ref Builtins 0 0
        const n (8) int 6 0
ecom to: 
name .t233 array of (string, list of Shellbuiltin) 0 0
ecom: 
* int 8 0
  + int 15 1
    name b ref Builtins 0 0
    const n (8) int 6 0
ecom to: 
name .t234 int 0 0
ecom: 
* array of (string, list of Shellbuiltin) 8 0
  name b ref Builtins 0 0
ecom to: 
name .t233 array of (string, list of Shellbuiltin) 0 0
ecom: 
= array of (string, list of Shellbuiltin) 10 1
  name .t233 array of (string, list of Shellbuiltin) 0 0
  name nil array of (string, list of Shellbuiltin) 1 0
ecom: 
name nil array of (string, list of Shellbuiltin) 1 0
ecom to: 
name .t233 array of (string, list of Shellbuiltin) 0 0
ecom: 
name nb ref Builtins 0 0
ecom to: 
* ref Builtins 8 0
  name .ret int 0 0
fn: copybuiltins
64: argument b ref Builtins ref 4
72: local .t234 int ref 1
80: local nb ref Builtins ref 3
88: local .t233 ref Builtins ref 1
generate desc for copybuiltins
descmap offset 0
descmap b type ref Builtins offset 64 (d->offset=64 start=0) returns 64
descmap .t234 type int offset 72 (d->offset=72 start=0) returns -1
descmap nb type ref Builtins offset 80 (d->offset=80 start=0) returns 80
descmap .t233 type ref Builtins offset 88 (d->offset=88 start=0) returns 88
fncom: findbuiltin 9 419d68
ecom: 
= int 10 1
  name lo int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name lo int 0 0
ecom: 
= int 10 1
  name hi int 0 0
  - int 10 1
    * int 8 0
      + int 15 1
        name b ref Builtins 0 0
        const n (8) int 6 0
    const (1) int 6 0
ecom: 
- int 10 1
  * int 8 0
    + int 15 1
      name b ref Builtins 0 0
      const n (8) int 6 0
  const (1) int 6 0
ecom to: 
name hi int 0 0
ecom: 
* int 8 0
  + int 15 1
    name b ref Builtins 0 0
    const n (8) int 6 0
ecom to: 
name .t235 int 0 0
ecom: 
= int 10 1
  name mid int 0 0
  / int 10 1
    + int 10 1
      name lo int 0 0
      name hi int 0 0
    const (2) int 6 0
ecom: 
/ int 10 1
  + int 10 1
    name lo int 0 0
    name hi int 0 0
  const (2) int 6 0
ecom to: 
name mid int 0 0
ecom: 
+ int 10 1
  name lo int 0 0
  name hi int 0 0
ecom to: 
name .t235 int 0 0
ecom: 
= (string, list of Shellbuiltin) 10 2
  tuple (string, list of Shellbuiltin) 10 1
    seq nothing 10 1
      name bname string 0 0
      seq nothing 10 1
        name bmod list of Shellbuiltin 0 0
  * (string, list of Shellbuiltin) 10 1
    indx big 10 1
      * array of (string, list of Shellbuiltin) 8 0
        name b ref Builtins 0 0
      name mid int 0 0
ecom: 
* (string, list of Shellbuiltin) 10 1
  indx big 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    name mid int 0 0
ecom to: 
name bname (string, list of Shellbuiltin) 0 0
eacom: 
* (string, list of Shellbuiltin) 10 1
  indx big 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    name mid int 0 0
generate desc for big
ecom: 
indx big 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  name mid int 0 0
ecom to: 
name .b236 big 0 0
generate desc for (string, list of Shellbuiltin)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type list of Shellbuiltin offset 8 (d->offset=8 start=0) returns 8
generate desc for (string, list of Shellbuiltin)
	desc	$-1,16,"c0"
ecom: 
= int 10 1
  name hi int 0 0
  - int 10 1
    name mid int 0 0
    const (1) int 6 0
ecom: 
- int 10 1
  name mid int 0 0
  const (1) int 6 0
ecom to: 
name hi int 0 0
ecom: 
= int 10 1
  name lo int 0 0
  + int 15 1
    name mid int 0 0
    const (1) int 6 0
ecom: 
+ int 15 1
  name mid int 0 0
  const (1) int 6 0
ecom to: 
name lo int 0 0
ecom: 
tuple (int, list of Shellbuiltin) 10 1
  seq no type 10 1
    name mid int 0 0
    seq no type 10 1
      name bmod list of Shellbuiltin 0 0
ecom to: 
* (int, list of Shellbuiltin) 8 0
  name .ret int 0 0
ecom: 
name mid int 0 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * (int, list of Shellbuiltin) 8 0
        name .ret int 0 0
    const (0) int 6 0
ecom: 
name bmod list of Shellbuiltin 0 0
ecom to: 
* list of Shellbuiltin 8 0
  + int 15 1
    adr int 15 1
      * (int, list of Shellbuiltin) 8 0
        name .ret int 0 0
    const (8) int 6 0
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name bname (string, list of Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name bname (string, list of Shellbuiltin) 0 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name bname (string, list of Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name bname (string, list of Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= list of Shellbuiltin 10 1
  name bmod list of Shellbuiltin 0 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
name bmod list of Shellbuiltin 0 0
ecom: 
tuple (int, polymorphic type) 10 1
  seq no type 10 1
    name lo int 0 0
    seq no type 10 1
      name nil polymorphic type 1 0
ecom to: 
* (int, polymorphic type) 8 0
  name .ret int 0 0
ecom: 
name lo int 0 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * (int, polymorphic type) 8 0
        name .ret int 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  + int 15 1
    adr int 15 1
      * (int, polymorphic type) 8 0
        name .ret int 0 0
    const (8) int 6 0
fn: findbuiltin
64: argument b ref Builtins ref 2
72: argument name string ref 2
80: local lo int ref 5
84: local mid int ref 5
88: local hi int ref 4
92: local .t235 int ref 1
96: local bname string ref 3
104: local bmod list of Shellbuiltin ref 2
112: local .b236 big ref 1
generate desc for findbuiltin
descmap offset 0
descmap b type ref Builtins offset 64 (d->offset=64 start=0) returns 64
descmap name type string offset 72 (d->offset=72 start=0) returns 72
descmap lo type int offset 80 (d->offset=80 start=0) returns -1
descmap mid type int offset 84 (d->offset=84 start=0) returns -1
descmap hi type int offset 88 (d->offset=88 start=0) returns -1
descmap .t235 type int offset 92 (d->offset=92 start=0) returns -1
descmap bname type string offset 96 (d->offset=96 start=0) returns 96
descmap bmod type list of Shellbuiltin offset 104 (d->offset=104 start=0) returns 104
descmap .b236 type big offset 112 (d->offset=112 start=0) returns -1
fncom: removebuiltin 3 419e28
ecom: 
= (int, list of Shellbuiltin) 10 2
  tuple (int, list of Shellbuiltin) 10 1
    seq nothing 10 1
      name n int 0 0
      seq nothing 10 1
        name bmods list of Shellbuiltin 0 0
  call (int, list of Shellbuiltin) 10 2
    name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
    seq no type 10 1
      name b ref Builtins 0 0
      seq no type 10 1
        name name string 0 0
ecom: 
call (int, list of Shellbuiltin) 10 2
  name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
  seq no type 10 1
    name b ref Builtins 0 0
    seq no type 10 1
      name name string 0 0
ecom to: 
name n (int, list of Shellbuiltin) 0 0
generate desc for big
ecom: 
name b ref Builtins 0 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b237 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b237 big 0 0
    const (72) int 6 0
eacom: 
hd Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom: 
hd Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom to: 
name .t238 Shellbuiltin 0 0
ecom: 
= Shellbuiltin 10 1
  name .t238 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t238 Shellbuiltin 0 0
eacom: 
tl list of Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom: 
tl list of Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom to: 
name .t238 list of Shellbuiltin 0 0
ecom: 
= list of Shellbuiltin 10 1
  name .t238 list of Shellbuiltin 0 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
name .t238 list of Shellbuiltin 0 0
ecom: 
= (string, list of Shellbuiltin) 10 2
  * (string, list of Shellbuiltin) 10 1
    indx big 10 1
      * array of (string, list of Shellbuiltin) 8 0
        name b ref Builtins 0 0
      name n int 0 0
  tuple (string, list of Shellbuiltin) 10 1
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        tl list of Shellbuiltin 10 1
          name bmods list of Shellbuiltin 0 0
generate desc for (string, list of Shellbuiltin)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type list of Shellbuiltin offset 8 (d->offset=8 start=0) returns 8
generate desc for (string, list of Shellbuiltin)
	desc	$-1,16,"c0"
ecom: 
tuple (string, list of Shellbuiltin) 10 1
  seq no type 10 1
    name name string 0 0
    seq no type 10 1
      tl list of Shellbuiltin 10 1
        name bmods list of Shellbuiltin 0 0
ecom to: 
name .b239 (string, list of Shellbuiltin) 0 0
ecom: 
name name string 0 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b239 (string, list of Shellbuiltin) 0 0
    const (0) int 6 0
ecom: 
tl list of Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b239 (string, list of Shellbuiltin) 0 0
    const (8) int 6 0
eacom: 
* (string, list of Shellbuiltin) 10 1
  indx big 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    name n int 0 0
generate desc for big
ecom: 
indx big 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  name n int 0 0
ecom to: 
name .b237 big 0 0
ecom: 
name .b239 (string, list of Shellbuiltin) 0 0
ecom to: 
* (string, list of Shellbuiltin) 8 1
  name .b237 big 0 0
generate desc for (string, list of Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b239 (string, list of Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name .b239 (string, list of Shellbuiltin) 0 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b239 (string, list of Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b239 (string, list of Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= array of (string, list of Shellbuiltin) 10 2
  slice array of (string, list of Shellbuiltin) 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    seq no type 10 1
      name n int 0 0
      nothing no type 10 1
  slice array of (string, list of Shellbuiltin) 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    seq no type 10 1
      + int 15 1
        name n int 0 0
        const (1) int 6 0
      * int 8 0
        + int 15 1
          name b ref Builtins 0 0
          const n (8) int 6 0
eacom: 
slice array of (string, list of Shellbuiltin) 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  seq no type 10 1
    + int 15 1
      name n int 0 0
      const (1) int 6 0
    * int 8 0
      + int 15 1
        name b ref Builtins 0 0
        const n (8) int 6 0
ecom: 
slice array of (string, list of Shellbuiltin) 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  seq no type 10 1
    + int 15 1
      name n int 0 0
      const (1) int 6 0
    * int 8 0
      + int 15 1
        name b ref Builtins 0 0
        const n (8) int 6 0
ecom to: 
name .t238 array of (string, list of Shellbuiltin) 0 0
eacom: 
+ int 15 1
  name n int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name n int 0 0
  const (1) int 6 0
ecom to: 
name .t240 int 0 0
ecom: 
* int 8 0
  + int 15 1
    name b ref Builtins 0 0
    const n (8) int 6 0
ecom to: 
name .t241 int 0 0
ecom: 
* array of (string, list of Shellbuiltin) 8 0
  name b ref Builtins 0 0
ecom to: 
name .t238 array of (string, list of Shellbuiltin) 0 0
ecom: 
= array of (string, list of Shellbuiltin) 10 1
  name .t238 array of (string, list of Shellbuiltin) 0 0
  name nil array of (string, list of Shellbuiltin) 1 0
ecom: 
name nil array of (string, list of Shellbuiltin) 1 0
ecom to: 
name .t238 array of (string, list of Shellbuiltin) 0 0
ecom: 
= (polymorphic type, polymorphic type) 10 2
  * (polymorphic type, polymorphic type) 10 1
    indx big 10 1
      * array of (string, list of Shellbuiltin) 8 0
        name b ref Builtins 0 0
      -= int 10 1
        * int 8 0
          + int 15 1
            name b ref Builtins 0 0
            const n (8) int 6 0
        const (1) int 6 0
  tuple (polymorphic type, polymorphic type) 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name nil polymorphic type 1 0
generate desc for (polymorphic type, polymorphic type)
descmap adt offset 0
descmap offset 0
descmap t0 type polymorphic type offset 0 (d->offset=0 start=0) returns 0
descmap t1 type polymorphic type offset 8 (d->offset=8 start=0) returns 8
generate desc for (polymorphic type, polymorphic type)
	desc	$-1,16,"c0"
ecom: 
tuple (polymorphic type, polymorphic type) 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      name nil polymorphic type 1 0
ecom to: 
name .b239 (polymorphic type, polymorphic type) 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 0 0
  + int 13 1
    adr int 13 1
      name .b239 (polymorphic type, polymorphic type) 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 0 0
  + int 13 1
    adr int 13 1
      name .b239 (polymorphic type, polymorphic type) 0 0
    const (8) int 6 0
eacom: 
* (polymorphic type, polymorphic type) 10 1
  indx big 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    -= int 10 1
      * int 8 0
        + int 15 1
          name b ref Builtins 0 0
          const n (8) int 6 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  -= int 10 1
    * int 8 0
      + int 15 1
        name b ref Builtins 0 0
        const n (8) int 6 0
    const (1) int 6 0
ecom to: 
name .b237 big 0 0
eacom: 
-= int 10 1
  * int 8 0
    + int 15 1
      name b ref Builtins 0 0
      const n (8) int 6 0
  const (1) int 6 0
ecom: 
-= int 10 1
  * int 8 0
    + int 15 1
      name b ref Builtins 0 0
      const n (8) int 6 0
  const (1) int 6 0
ecom to: 
name .t241 int 0 0
ecom: 
name .b239 (polymorphic type, polymorphic type) 0 0
ecom to: 
* (polymorphic type, polymorphic type) 8 1
  name .b237 big 0 0
generate desc for (polymorphic type, polymorphic type)
ecom: 
= polymorphic type 10 1
  * polymorphic type 0 0
    adr int 13 1
      name .b239 (polymorphic type, polymorphic type) 0 0
  name nil polymorphic type 1 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 0 0
  adr int 13 1
    name .b239 (polymorphic type, polymorphic type) 0 0
ecom: 
= polymorphic type 10 1
  * polymorphic type 0 0
    + int 13 1
      adr int 13 1
        name .b239 (polymorphic type, polymorphic type) 0 0
      const t1 (8) int 6 0
  name nil polymorphic type 1 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 0 0
  + int 13 1
    adr int 13 1
      name .b239 (polymorphic type, polymorphic type) 0 0
    const t1 (8) int 6 0
fn: removebuiltin
64: argument b ref Builtins ref 7
72: argument name string ref 2
80: argument mod Shellbuiltin ref 1
88: local n int ref 4
96: local bmods list of Shellbuiltin ref 5
104: local .t240 int ref 1
108: local .t241 int ref 1
112: local .b237 big ref 3
120: local .b239 (string, list of Shellbuiltin) ref 2
136: local .t238 Shellbuiltin ref 1
generate desc for removebuiltin
descmap offset 0
descmap b type ref Builtins offset 64 (d->offset=64 start=0) returns 64
descmap name type string offset 72 (d->offset=72 start=0) returns 72
descmap mod type Shellbuiltin offset 80 (d->offset=80 start=0) returns 80
descmap n type int offset 88 (d->offset=88 start=0) returns -1
descmap bmods type list of Shellbuiltin offset 96 (d->offset=96 start=0) returns 96
descmap .t240 type int offset 104 (d->offset=104 start=0) returns -1
descmap .t241 type int offset 108 (d->offset=108 start=0) returns -1
descmap .b237 type big offset 112 (d->offset=112 start=0) returns -1
descmap adt offset 120
descmap offset 120
descmap t0 type string offset 120 (d->offset=0 start=120) returns 120
descmap t1 type list of Shellbuiltin offset 128 (d->offset=8 start=120) returns 128
descmap .b239 type (string, list of Shellbuiltin) offset 120 (d->offset=120 start=0) returns 128
descmap .t238 type Shellbuiltin offset 136 (d->offset=136 start=0) returns 136
fncom: addbuiltin 3 419ee8
ecom: 
= (int, list of Shellbuiltin) 10 2
  tuple (int, list of Shellbuiltin) 10 1
    seq nothing 10 1
      name n int 0 0
      seq nothing 10 1
        name bmods list of Shellbuiltin 0 0
  call (int, list of Shellbuiltin) 10 2
    name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
    seq no type 10 1
      name b ref Builtins 0 0
      seq no type 10 1
        name name string 0 0
ecom: 
call (int, list of Shellbuiltin) 10 2
  name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
  seq no type 10 1
    name b ref Builtins 0 0
    seq no type 10 1
      name name string 0 0
ecom to: 
name n (int, list of Shellbuiltin) 0 0
generate desc for big
ecom: 
name b ref Builtins 0 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b242 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b242 big 0 0
    const (72) int 6 0
eacom: 
hd Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom: 
hd Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom to: 
name .t243 Shellbuiltin 0 0
ecom: 
= Shellbuiltin 10 1
  name .t243 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t243 Shellbuiltin 0 0
ecom: 
= (string, list of Shellbuiltin) 10 2
  * (string, list of Shellbuiltin) 10 1
    indx big 10 1
      * array of (string, list of Shellbuiltin) 8 0
        name b ref Builtins 0 0
      name n int 0 0
  tuple (string, list of Shellbuiltin) 10 1
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        :: list of Shellbuiltin 10 1
          name mod Shellbuiltin 0 0
          name bmods list of Shellbuiltin 0 0
generate desc for (string, list of Shellbuiltin)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type list of Shellbuiltin offset 8 (d->offset=8 start=0) returns 8
generate desc for (string, list of Shellbuiltin)
	desc	$-1,16,"c0"
ecom: 
tuple (string, list of Shellbuiltin) 10 1
  seq no type 10 1
    name name string 0 0
    seq no type 10 1
      :: list of Shellbuiltin 10 1
        name mod Shellbuiltin 0 0
        name bmods list of Shellbuiltin 0 0
ecom to: 
name .b244 (string, list of Shellbuiltin) 0 0
ecom: 
name name string 0 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b244 (string, list of Shellbuiltin) 0 0
    const (0) int 6 0
ecom: 
:: list of Shellbuiltin 10 1
  name mod Shellbuiltin 0 0
  name bmods list of Shellbuiltin 0 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b244 (string, list of Shellbuiltin) 0 0
    const (8) int 6 0
ecom: 
name bmods list of Shellbuiltin 0 0
ecom to: 
name .t243 list of Shellbuiltin 0 0
ecom: 
= list of Shellbuiltin 10 1
  name .t243 list of Shellbuiltin 0 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
name .t243 list of Shellbuiltin 0 0
eacom: 
* (string, list of Shellbuiltin) 10 1
  indx big 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    name n int 0 0
generate desc for big
ecom: 
indx big 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  name n int 0 0
ecom to: 
name .b242 big 0 0
ecom: 
name .b244 (string, list of Shellbuiltin) 0 0
ecom to: 
* (string, list of Shellbuiltin) 8 1
  name .b242 big 0 0
generate desc for (string, list of Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b244 (string, list of Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name .b244 (string, list of Shellbuiltin) 0 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b244 (string, list of Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b244 (string, list of Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= (string, list of Shellbuiltin) 10 2
  * (string, list of Shellbuiltin) 10 1
    indx big 10 1
      * array of (string, list of Shellbuiltin) 8 0
        name b ref Builtins 0 0
      name n int 0 0
  tuple (string, list of Shellbuiltin) 10 1
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        :: list of Shellbuiltin 10 1
          name mod Shellbuiltin 0 0
          name nil polymorphic type 1 0
generate desc for (string, list of Shellbuiltin)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type list of Shellbuiltin offset 8 (d->offset=8 start=0) returns 8
generate desc for (string, list of Shellbuiltin)
	desc	$-1,16,"c0"
ecom: 
tuple (string, list of Shellbuiltin) 10 1
  seq no type 10 1
    name name string 0 0
    seq no type 10 1
      :: list of Shellbuiltin 10 1
        name mod Shellbuiltin 0 0
        name nil polymorphic type 1 0
ecom to: 
name .b244 (string, list of Shellbuiltin) 0 0
ecom: 
name name string 0 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b244 (string, list of Shellbuiltin) 0 0
    const (0) int 6 0
ecom: 
:: list of Shellbuiltin 10 1
  name mod Shellbuiltin 0 0
  name nil polymorphic type 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b244 (string, list of Shellbuiltin) 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t243 list of Shellbuiltin 0 0
ecom: 
= list of Shellbuiltin 10 1
  name .t243 list of Shellbuiltin 0 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
name .t243 list of Shellbuiltin 0 0
eacom: 
* (string, list of Shellbuiltin) 10 1
  indx big 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    name n int 0 0
generate desc for big
ecom: 
indx big 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  name n int 0 0
ecom to: 
name .b242 big 0 0
ecom: 
name .b244 (string, list of Shellbuiltin) 0 0
ecom to: 
* (string, list of Shellbuiltin) 8 1
  name .b242 big 0 0
generate desc for (string, list of Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b244 (string, list of Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name .b244 (string, list of Shellbuiltin) 0 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b244 (string, list of Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b244 (string, list of Shellbuiltin) 0 0
    const t1 (8) int 6 0
eacom: 
len int 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
ecom: 
len int 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
ecom to: 
name .t245 int 0 0
ecom: 
* int 8 0
  + int 15 1
    name b ref Builtins 0 0
    const n (8) int 6 0
ecom to: 
name .t246 int 0 0
ecom: 
= array of (string, list of Shellbuiltin) 10 1
  name nb array of (string, list of Shellbuiltin) 0 0
  array array of (string, list of Shellbuiltin) 10 1
    + int 10 1
      * int 8 0
        + int 15 1
          name b ref Builtins 0 0
          const n (8) int 6 0
      const (10) int 6 0
ecom: 
array array of (string, list of Shellbuiltin) 10 1
  + int 10 1
    * int 8 0
      + int 15 1
        name b ref Builtins 0 0
        const n (8) int 6 0
    const (10) int 6 0
ecom to: 
name nb array of (string, list of Shellbuiltin) 0 0
eacom: 
+ int 10 1
  * int 8 0
    + int 15 1
      name b ref Builtins 0 0
      const n (8) int 6 0
  const (10) int 6 0
ecom: 
+ int 10 1
  * int 8 0
    + int 15 1
      name b ref Builtins 0 0
      const n (8) int 6 0
  const (10) int 6 0
ecom to: 
name .t246 int 0 0
generate desc for (string, list of Shellbuiltin)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type list of Shellbuiltin offset 8 (d->offset=8 start=0) returns 8
generate desc for (string, list of Shellbuiltin)
	desc	$-1,16,"c0"
ecom: 
= array of (string, list of Shellbuiltin) 10 2
  slice array of (string, list of Shellbuiltin) 10 1
    name nb array of (string, list of Shellbuiltin) 0 0
    seq no type 10 1
      const (0) int 6 0
      nothing no type 10 1
  slice array of (string, list of Shellbuiltin) 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    seq no type 10 1
      const (0) int 6 0
      * int 8 0
        + int 15 1
          name b ref Builtins 0 0
          const n (8) int 6 0
eacom: 
slice array of (string, list of Shellbuiltin) 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  seq no type 10 1
    const (0) int 6 0
    * int 8 0
      + int 15 1
        name b ref Builtins 0 0
        const n (8) int 6 0
ecom: 
slice array of (string, list of Shellbuiltin) 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  seq no type 10 1
    const (0) int 6 0
    * int 8 0
      + int 15 1
        name b ref Builtins 0 0
        const n (8) int 6 0
ecom to: 
name .t243 array of (string, list of Shellbuiltin) 0 0
ecom: 
* int 8 0
  + int 15 1
    name b ref Builtins 0 0
    const n (8) int 6 0
ecom to: 
name .t246 int 0 0
ecom: 
* array of (string, list of Shellbuiltin) 8 0
  name b ref Builtins 0 0
ecom to: 
name .t243 array of (string, list of Shellbuiltin) 0 0
ecom: 
= array of (string, list of Shellbuiltin) 10 1
  name .t243 array of (string, list of Shellbuiltin) 0 0
  name nil array of (string, list of Shellbuiltin) 1 0
ecom: 
name nil array of (string, list of Shellbuiltin) 1 0
ecom to: 
name .t243 array of (string, list of Shellbuiltin) 0 0
ecom: 
= array of (string, list of Shellbuiltin) 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  name nb array of (string, list of Shellbuiltin) 0 0
ecom: 
name nb array of (string, list of Shellbuiltin) 0 0
ecom to: 
* array of (string, list of Shellbuiltin) 8 0
  name b ref Builtins 0 0
ecom: 
= array of (string, list of Shellbuiltin) 10 1
  name nb array of (string, list of Shellbuiltin) 0 0
  name nil array of (string, list of Shellbuiltin) 1 0
ecom: 
name nil array of (string, list of Shellbuiltin) 1 0
ecom to: 
name nb array of (string, list of Shellbuiltin) 0 0
ecom: 
= array of (string, list of Shellbuiltin) 10 2
  slice array of (string, list of Shellbuiltin) 10 2
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    seq no type 10 2
      + int 15 1
        name n int 0 0
        const (1) int 6 0
      nothing no type 10 1
  slice array of (string, list of Shellbuiltin) 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    seq no type 10 1
      name n int 0 0
      * int 8 0
        + int 15 1
          name b ref Builtins 0 0
          const n (8) int 6 0
ecom: 
+ int 15 1
  name n int 0 0
  const (1) int 6 0
ecom to: 
name .t246 int 0 0
eacom: 
slice array of (string, list of Shellbuiltin) 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  seq no type 10 1
    name n int 0 0
    * int 8 0
      + int 15 1
        name b ref Builtins 0 0
        const n (8) int 6 0
ecom: 
slice array of (string, list of Shellbuiltin) 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  seq no type 10 1
    name n int 0 0
    * int 8 0
      + int 15 1
        name b ref Builtins 0 0
        const n (8) int 6 0
ecom to: 
name .t243 array of (string, list of Shellbuiltin) 0 0
ecom: 
* int 8 0
  + int 15 1
    name b ref Builtins 0 0
    const n (8) int 6 0
ecom to: 
name .t245 int 0 0
ecom: 
* array of (string, list of Shellbuiltin) 8 0
  name b ref Builtins 0 0
ecom to: 
name .t243 array of (string, list of Shellbuiltin) 0 0
ecom: 
= array of (string, list of Shellbuiltin) 10 1
  name .t243 array of (string, list of Shellbuiltin) 0 0
  name nil array of (string, list of Shellbuiltin) 1 0
ecom: 
name nil array of (string, list of Shellbuiltin) 1 0
ecom to: 
name .t243 array of (string, list of Shellbuiltin) 0 0
ecom: 
= (string, list of Shellbuiltin) 10 2
  * (string, list of Shellbuiltin) 10 1
    indx big 10 1
      * array of (string, list of Shellbuiltin) 8 0
        name b ref Builtins 0 0
      name n int 0 0
  tuple (string, list of Shellbuiltin) 10 1
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        :: list of Shellbuiltin 10 1
          name mod Shellbuiltin 0 0
          name nil polymorphic type 1 0
generate desc for (string, list of Shellbuiltin)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type list of Shellbuiltin offset 8 (d->offset=8 start=0) returns 8
generate desc for (string, list of Shellbuiltin)
	desc	$-1,16,"c0"
ecom: 
tuple (string, list of Shellbuiltin) 10 1
  seq no type 10 1
    name name string 0 0
    seq no type 10 1
      :: list of Shellbuiltin 10 1
        name mod Shellbuiltin 0 0
        name nil polymorphic type 1 0
ecom to: 
name .b244 (string, list of Shellbuiltin) 0 0
ecom: 
name name string 0 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b244 (string, list of Shellbuiltin) 0 0
    const (0) int 6 0
ecom: 
:: list of Shellbuiltin 10 1
  name mod Shellbuiltin 0 0
  name nil polymorphic type 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b244 (string, list of Shellbuiltin) 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t243 list of Shellbuiltin 0 0
ecom: 
= list of Shellbuiltin 10 1
  name .t243 list of Shellbuiltin 0 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
name .t243 list of Shellbuiltin 0 0
eacom: 
* (string, list of Shellbuiltin) 10 1
  indx big 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    name n int 0 0
generate desc for big
ecom: 
indx big 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  name n int 0 0
ecom to: 
name .b242 big 0 0
ecom: 
name .b244 (string, list of Shellbuiltin) 0 0
ecom to: 
* (string, list of Shellbuiltin) 8 1
  name .b242 big 0 0
generate desc for (string, list of Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b244 (string, list of Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name .b244 (string, list of Shellbuiltin) 0 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b244 (string, list of Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b244 (string, list of Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
++ int 10 1
  * int 8 0
    + int 15 1
      name b ref Builtins 0 0
      const n (8) int 6 0
  const (1) int 6 0
fn: addbuiltin
64: argument b ref Builtins ref 14
72: argument name string ref 5
80: argument mod Shellbuiltin ref 5
88: local n int ref 6
96: local bmods list of Shellbuiltin ref 4
104: local .t245 int ref 1
108: local .t246 int ref 1
112: local .b242 big ref 4
120: local nb array of (string, list of Shellbuiltin) ref 3
128: local .b244 (string, list of Shellbuiltin) ref 3
144: local .t243 Shellbuiltin ref 1
generate desc for addbuiltin
descmap offset 0
descmap b type ref Builtins offset 64 (d->offset=64 start=0) returns 64
descmap name type string offset 72 (d->offset=72 start=0) returns 72
descmap mod type Shellbuiltin offset 80 (d->offset=80 start=0) returns 80
descmap n type int offset 88 (d->offset=88 start=0) returns -1
descmap bmods type list of Shellbuiltin offset 96 (d->offset=96 start=0) returns 96
descmap .t245 type int offset 104 (d->offset=104 start=0) returns -1
descmap .t246 type int offset 108 (d->offset=108 start=0) returns -1
descmap .b242 type big offset 112 (d->offset=112 start=0) returns -1
descmap nb type array of (string, list of Shellbuiltin) offset 120 (d->offset=120 start=0) returns 120
descmap adt offset 128
descmap offset 128
descmap t0 type string offset 128 (d->offset=0 start=128) returns 128
descmap t1 type list of Shellbuiltin offset 136 (d->offset=8 start=128) returns 136
descmap .b244 type (string, list of Shellbuiltin) offset 128 (d->offset=128 start=0) returns 136
descmap .t243 type Shellbuiltin offset 144 (d->offset=144 start=0) returns 144
fncom: removebuiltinmod 3 419fa8
ecom: 
= int 10 1
  name j int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name j int 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
ecom: 
= (string, list of Shellbuiltin) 10 2
  tuple (string, list of Shellbuiltin) 10 1
    seq nothing 10 1
      name name string 0 0
      seq nothing 10 1
        name bmods list of Shellbuiltin 0 0
  * (string, list of Shellbuiltin) 10 1
    indx big 10 1
      * array of (string, list of Shellbuiltin) 8 0
        name b ref Builtins 0 0
      name i int 0 0
ecom: 
* (string, list of Shellbuiltin) 10 1
  indx big 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    name i int 0 0
ecom to: 
name name (string, list of Shellbuiltin) 0 0
eacom: 
* (string, list of Shellbuiltin) 10 1
  indx big 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  name i int 0 0
ecom to: 
name .b247 big 0 0
generate desc for (string, list of Shellbuiltin)
eacom: 
hd Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom: 
hd Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom to: 
name .t248 Shellbuiltin 0 0
ecom: 
= Shellbuiltin 10 1
  name .t248 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t248 Shellbuiltin 0 0
ecom: 
= list of Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
  tl list of Shellbuiltin 10 1
    name bmods list of Shellbuiltin 0 0
ecom: 
tl list of Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom to: 
name bmods list of Shellbuiltin 0 0
ecom: 
= (string, list of Shellbuiltin) 10 2
  * (string, list of Shellbuiltin) 10 1
    indx big 10 1
      * array of (string, list of Shellbuiltin) 8 0
        name b ref Builtins 0 0
      ++ int 10 1
        name j int 0 0
        const (1) int 6 0
  tuple (string, list of Shellbuiltin) 10 1
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        name bmods list of Shellbuiltin 0 0
eacom: 
* (string, list of Shellbuiltin) 10 1
  indx big 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    ++ int 10 1
      name j int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  ++ int 10 1
    name j int 0 0
    const (1) int 6 0
ecom to: 
name .b247 big 0 0
eacom: 
++ int 10 1
  name j int 0 0
  const (1) int 6 0
ecom: 
++ int 10 1
  name j int 0 0
  const (1) int 6 0
ecom to: 
name .t249 int 0 0
ecom: 
name name (string, list of Shellbuiltin) 0 0
ecom to: 
* (string, list of Shellbuiltin) 8 1
  name .b247 big 0 0
generate desc for (string, list of Shellbuiltin)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type list of Shellbuiltin offset 8 (d->offset=8 start=0) returns 8
generate desc for (string, list of Shellbuiltin)
	desc	$-1,16,"c0"
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name name (string, list of Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name name (string, list of Shellbuiltin) 0 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name name (string, list of Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name name (string, list of Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= list of Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
name bmods list of Shellbuiltin 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name b ref Builtins 0 0
      const n (8) int 6 0
  name j int 0 0
ecom: 
name j int 0 0
ecom to: 
* int 8 0
  + int 15 1
    name b ref Builtins 0 0
    const n (8) int 6 0
ecom: 
= (polymorphic type, polymorphic type) 10 2
  * (polymorphic type, polymorphic type) 10 1
    indx big 10 1
      * array of (string, list of Shellbuiltin) 8 0
        name b ref Builtins 0 0
      name j int 0 0
  tuple (polymorphic type, polymorphic type) 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name nil polymorphic type 1 0
generate desc for (polymorphic type, polymorphic type)
descmap adt offset 0
descmap offset 0
descmap t0 type polymorphic type offset 0 (d->offset=0 start=0) returns 0
descmap t1 type polymorphic type offset 8 (d->offset=8 start=0) returns 8
generate desc for (polymorphic type, polymorphic type)
	desc	$-1,16,"c0"
ecom: 
tuple (polymorphic type, polymorphic type) 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      name nil polymorphic type 1 0
ecom to: 
name .b250 (polymorphic type, polymorphic type) 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 0 0
  + int 13 1
    adr int 13 1
      name .b250 (polymorphic type, polymorphic type) 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 0 0
  + int 13 1
    adr int 13 1
      name .b250 (polymorphic type, polymorphic type) 0 0
    const (8) int 6 0
eacom: 
* (polymorphic type, polymorphic type) 10 1
  indx big 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    name j int 0 0
generate desc for big
ecom: 
indx big 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  name j int 0 0
ecom to: 
name .b247 big 0 0
ecom: 
name .b250 (polymorphic type, polymorphic type) 0 0
ecom to: 
* (polymorphic type, polymorphic type) 8 1
  name .b247 big 0 0
generate desc for (polymorphic type, polymorphic type)
ecom: 
= polymorphic type 10 1
  * polymorphic type 0 0
    adr int 13 1
      name .b250 (polymorphic type, polymorphic type) 0 0
  name nil polymorphic type 1 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 0 0
  adr int 13 1
    name .b250 (polymorphic type, polymorphic type) 0 0
ecom: 
= polymorphic type 10 1
  * polymorphic type 0 0
    + int 13 1
      adr int 13 1
        name .b250 (polymorphic type, polymorphic type) 0 0
      const t1 (8) int 6 0
  name nil polymorphic type 1 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 0 0
  + int 13 1
    adr int 13 1
      name .b250 (polymorphic type, polymorphic type) 0 0
    const t1 (8) int 6 0
ecom: 
++ int 10 1
  name j int 0 0
  const (1) int 6 0
fn: removebuiltinmod
64: argument b ref Builtins ref 5
72: argument mod Shellbuiltin ref 1
80: local j int ref 6
84: local i int ref 5
88: local .t249 int ref 1
96: local .b247 big ref 3
104: local name string ref 2
112: local bmods list of Shellbuiltin ref 6
120: local .t248 Shellbuiltin ref 1
128: local .b250 (polymorphic type, polymorphic type) ref 1
generate desc for removebuiltinmod
descmap offset 0
descmap b type ref Builtins offset 64 (d->offset=64 start=0) returns 64
descmap mod type Shellbuiltin offset 72 (d->offset=72 start=0) returns 72
descmap j type int offset 80 (d->offset=80 start=0) returns -1
descmap i type int offset 84 (d->offset=84 start=0) returns -1
descmap .t249 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b247 type big offset 96 (d->offset=96 start=0) returns -1
descmap name type string offset 104 (d->offset=104 start=0) returns 104
descmap bmods type list of Shellbuiltin offset 112 (d->offset=112 start=0) returns 112
descmap .t248 type Shellbuiltin offset 120 (d->offset=120 start=0) returns 120
descmap adt offset 128
descmap offset 128
descmap t0 type polymorphic type offset 128 (d->offset=0 start=128) returns 128
descmap t1 type polymorphic type offset 136 (d->offset=8 start=128) returns 136
descmap .b250 type (polymorphic type, polymorphic type) offset 128 (d->offset=128 start=0) returns 136
fncom: export 4 6e80d0
ecom: 
call no type 10 2
  name export fn(e: ref Localenv) 11 1
  seq no type 10 1
    * ref Localenv 8 0
      + int 15 1
        name e ref Localenv 0 0
        const pushed (8) int 6 0
generate desc for big
ecom: 
* ref Localenv 8 0
  + int 15 1
    name e ref Localenv 0 0
    const pushed (8) int 6 0
ecom to: 
* ref Localenv 8 0
  + int 15 0
    name .b251 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
eacom: 
len int 10 1
  * array of list of ref Var 8 0
    name e ref Localenv 0 0
ecom: 
len int 10 1
  * array of list of ref Var 8 0
    name e ref Localenv 0 0
ecom to: 
name .t252 int 0 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  * list of ref Var 10 1
    indx big 10 1
      * array of list of ref Var 8 0
        name e ref Localenv 0 0
      name i int 0 0
ecom: 
* list of ref Var 10 1
  indx big 10 1
    * array of list of ref Var 8 0
      name e ref Localenv 0 0
    name i int 0 0
ecom to: 
name vl list of ref Var 0 0
eacom: 
* list of ref Var 10 1
  indx big 10 1
    * array of list of ref Var 8 0
      name e ref Localenv 0 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  * array of list of ref Var 8 0
    name e ref Localenv 0 0
  name i int 0 0
ecom to: 
name .b251 big 0 0
ecom: 
= ref Var 10 1
  name v ref Var 0 0
  hd ref Var 10 1
    name vl list of ref Var 0 0
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name v ref Var 0 0
eacom: 
& int 10 1
  * int 8 0
    + int 15 1
      name v ref Var 0 0
      const flags (16) int 6 0
  const CHANGED (1) int 6 0
ecom: 
& int 10 1
  * int 8 0
    + int 15 1
      name v ref Var 0 0
      const flags (16) int 6 0
  const CHANGED (1) int 6 0
ecom to: 
name .t252 int 0 0
eacom: 
& int 10 1
  * int 8 0
    + int 15 1
      name v ref Var 0 0
      const flags (16) int 6 0
  const NOEXPORT (2) int 6 0
ecom: 
& int 10 1
  * int 8 0
    + int 15 1
      name v ref Var 0 0
      const flags (16) int 6 0
  const NOEXPORT (2) int 6 0
ecom to: 
name .t252 int 0 0
ecom: 
call no type 10 2
  name setenv fn(name: string, val: list of ref Listnode) 11 1
  seq no type 10 1
    * string 8 0
      name v ref Var 0 0
    seq no type 10 1
      * list of ref Listnode 8 0
        + int 15 1
          name v ref Var 0 0
          const val (8) int 6 0
generate desc for big
ecom: 
* string 8 0
  name v ref Var 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b251 big 0 0
    const (64) int 6 0
ecom: 
* list of ref Listnode 8 0
  + int 15 1
    name v ref Var 0 0
    const val (8) int 6 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b251 big 0 0
    const (72) int 6 0
ecom: 
&= int 10 1
  * int 8 0
    + int 15 1
      name v ref Var 0 0
      const flags (16) int 6 0
  const (-2) int 6 0
ecom: 
= ref Var 10 1
  name v ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name v ref Var 0 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  tl list of ref Var 10 1
    name vl list of ref Var 0 0
ecom: 
tl list of ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name vl list of ref Var 0 0
ecom: 
= list of ref Var 10 1
  name vl list of ref Var 0 0
  name nil list of ref Var 1 0
ecom: 
name nil list of ref Var 1 0
ecom to: 
name vl list of ref Var 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
fn: export
64: argument e ref Localenv ref 4
72: local i int ref 4
76: local .t252 int ref 1
80: local v ref Var ref 6
88: local vl list of ref Var ref 5
96: local .b251 big ref 3
generate desc for export
descmap offset 0
descmap e type ref Localenv offset 64 (d->offset=64 start=0) returns 64
descmap i type int offset 72 (d->offset=72 start=0) returns -1
descmap .t252 type int offset 76 (d->offset=76 start=0) returns -1
descmap v type ref Var offset 80 (d->offset=80 start=0) returns 80
descmap vl type list of ref Var offset 88 (d->offset=88 start=0) returns 88
descmap .b251 type big offset 96 (d->offset=96 start=0) returns -1
fncom: noexport 3 6e8190
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
fn: noexport
64: argument name string ref 1
generate desc for noexport
descmap offset 0
descmap name type string offset 64 (d->offset=64 start=0) returns 64
fncom: index 2 6e8250
ecom: 
= list of ref Listnode 10 1
  name val list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name val list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name val list of ref Listnode 0 0
ecom to: 
name val list of ref Listnode 0 0
ecom: 
-- int 10 1
  name k int 0 0
  const (1) int 6 0
ecom: 
= list of ref Listnode 10 1
  name val list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    hd ref Listnode 10 1
      name val list of ref Listnode 0 0
    name nil polymorphic type 1 0
ecom: 
:: list of ref Listnode 10 1
  hd ref Listnode 10 1
    name val list of ref Listnode 0 0
  name nil polymorphic type 1 0
ecom to: 
name val list of ref Listnode 0 0
eacom: 
hd ref Listnode 10 1
  name val list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name val list of ref Listnode 0 0
ecom to: 
name .t253 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t254 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t253 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t253 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t254 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t254 list of ref Listnode 0 0
ecom: 
name val list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
fn: index
64: argument val list of ref Listnode ref 7
72: argument k int ref 2
80: local .t253 ref Listnode ref 1
88: local .t254 list of ref Listnode ref 1
generate desc for index
descmap offset 0
descmap val type list of ref Listnode offset 64 (d->offset=64 start=0) returns 64
descmap k type int offset 72 (d->offset=72 start=0) returns -1
descmap .t253 type ref Listnode offset 80 (d->offset=80 start=0) returns 80
descmap .t254 type list of ref Listnode offset 88 (d->offset=88 start=0) returns 88
fncom: getenv 1 6e8310
fncom: envstringtoval 3 6e83d0
fncom: XXXenvstringtoval 1 6e8490
fncom: setenv 2 6e8550
ecom: 
used int 10 2
  call int 10 2
    -> fn(var: string, val: string): int 12 1
      name env Env 1 0
      name setenv nothing 11 1
    seq no type 10 2
      name name string 0 0
      seq no type 10 2
        call string 10 2
          name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
          seq no type 10 1
            name val list of ref Listnode 0 0
            seq no type 10 1
              const (1) int 6 0
ecom: 
call int 10 2
  -> fn(var: string, val: string): int 12 1
    name env Env 1 0
    name setenv nothing 11 1
  seq no type 10 2
    name name string 0 0
    seq no type 10 2
      call string 10 2
        name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
        seq no type 10 1
          name val list of ref Listnode 0 0
          seq no type 10 1
            const (1) int 6 0
ecom to: 
name .t255 int 0 0
generate desc for big
ecom: 
call string 10 2
  name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
  seq no type 10 1
    name val list of ref Listnode 0 0
    seq no type 10 1
      const (1) int 6 0
ecom to: 
name .t257 string 0 0
generate desc for big
ecom: 
name val list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b258 big 0 0
    const (64) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b258 big 0 0
    const (72) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b256 big 0 0
    const (64) int 6 0
ecom: 
name .t257 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b256 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t257 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t257 string 0 0
fn: setenv
64: argument name string ref 1
72: argument val list of ref Listnode ref 1
80: local .t255 int ref 1
88: local .b256 big ref 1
96: local .b258 big ref 1
104: local .t257 string ref 1
generate desc for setenv
descmap offset 0
descmap name type string offset 64 (d->offset=64 start=0) returns 64
descmap val type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap .t255 type int offset 80 (d->offset=80 start=0) returns -1
descmap .b256 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b258 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t257 type string offset 104 (d->offset=104 start=0) returns 104
fncom: containswildchar 2 6e8610
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
eacom: 
len int 10 1
  name s string 0 0
ecom: 
len int 10 1
  name s string 0 0
ecom to: 
name .t259 int 0 0
eacom: 
inds int 10 1
  name s string 0 0
  name i int 0 0
ecom: 
inds int 10 1
  name s string 0 0
  name i int 0 0
ecom to: 
name .t259 int 0 0
eacom: 
- int 10 1
  len int 10 1
    name s string 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  len int 10 1
    name s string 0 0
  const (1) int 6 0
ecom to: 
name .t259 int 0 0
ecom: 
len int 10 1
  name s string 0 0
ecom to: 
name .t259 int 0 0
eacom: 
inds int 10 1
  name s string 0 0
  + int 15 1
    name i int 0 0
    const (1) int 6 0
ecom: 
inds int 10 1
  name s string 0 0
  + int 15 1
    name i int 0 0
    const (1) int 6 0
ecom to: 
name .t259 int 0 0
ecom: 
+ int 15 1
  name i int 0 0
  const (1) int 6 0
ecom to: 
name .t260 int 0 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
fn: containswildchar
64: argument s string ref 4
72: local i int ref 6
76: local .t259 int ref 1
80: local .t260 int ref 1
generate desc for containswildchar
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap i type int offset 72 (d->offset=72 start=0) returns -1
descmap .t259 type int offset 76 (d->offset=76 start=0) returns -1
descmap .t260 type int offset 80 (d->offset=80 start=0) returns -1
fncom: patquote 2 6e86d0
ecom: 
= string 10 1
  name outword string 0 0
  const  string 1 0
ecom: 
const  string 1 0
ecom to: 
name outword string 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
eacom: 
len int 10 1
  name word string 0 0
ecom: 
len int 10 1
  name word string 0 0
ecom to: 
name .t261 int 0 0
eacom: 
inds int 10 1
  name word string 0 0
  name i int 0 0
ecom: 
inds int 10 1
  name word string 0 0
  name i int 0 0
ecom to: 
name .t261 int 0 0
ecom: 
= int 10 1
  inds int 10 1
    name outword string 0 0
    len int 10 1
      name outword string 0 0
  const (92) int 6 0
ecom: 
len int 10 1
  name outword string 0 0
ecom to: 
name .t261 int 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
eacom: 
len int 10 1
  name word string 0 0
ecom: 
len int 10 1
  name word string 0 0
ecom to: 
name .t261 int 0 0
ecom: 
name outword string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
eacom: 
inds int 10 1
  name word string 0 0
  name i int 0 0
ecom: 
inds int 10 1
  name word string 0 0
  name i int 0 0
ecom to: 
name .t261 int 0 0
eacom: 
- int 10 1
  len int 10 1
    name word string 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  len int 10 1
    name word string 0 0
  const (1) int 6 0
ecom to: 
name .t261 int 0 0
ecom: 
len int 10 1
  name word string 0 0
ecom to: 
name .t261 int 0 0
eacom: 
inds int 10 1
  name word string 0 0
  + int 15 1
    name i int 0 0
    const (1) int 6 0
ecom: 
inds int 10 1
  name word string 0 0
  + int 15 1
    name i int 0 0
    const (1) int 6 0
ecom to: 
name .t261 int 0 0
ecom: 
+ int 15 1
  name i int 0 0
  const (1) int 6 0
ecom to: 
name .t262 int 0 0
ecom: 
= int 10 1
  inds int 10 1
    name word string 0 0
    + int 15 1
      name i int 0 0
      const (1) int 6 0
  const (94) int 6 0
ecom: 
+ int 15 1
  name i int 0 0
  const (1) int 6 0
ecom to: 
name .t262 int 0 0
ecom: 
= int 10 2
  inds int 10 1
    name outword string 0 0
    len int 10 1
      name outword string 0 0
  inds int 10 1
    name word string 0 0
    name i int 0 0
ecom: 
len int 10 1
  name outword string 0 0
ecom to: 
name .t262 int 0 0
eacom: 
inds int 10 1
  name word string 0 0
  name i int 0 0
ecom: 
inds int 10 1
  name word string 0 0
  name i int 0 0
ecom to: 
name .t261 int 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
name outword string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: patquote
64: argument word string ref 8
72: local i int ref 11
76: local .t261 int ref 1
80: local .t262 int ref 1
88: local outword string ref 7
generate desc for patquote
descmap offset 0
descmap word type string offset 64 (d->offset=64 start=0) returns 64
descmap i type int offset 72 (d->offset=72 start=0) returns -1
descmap .t261 type int offset 76 (d->offset=76 start=0) returns -1
descmap .t262 type int offset 80 (d->offset=80 start=0) returns -1
descmap outword type string offset 88 (d->offset=88 start=0) returns 88
fncom: deglob 4 6e8790
ecom: 
= int 10 1
  name j int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name j int 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
eacom: 
len int 10 1
  name s string 0 0
ecom: 
len int 10 1
  name s string 0 0
ecom to: 
name .t263 int 0 0
eacom: 
inds int 10 1
  name s string 0 0
  name i int 0 0
ecom: 
inds int 10 1
  name s string 0 0
  name i int 0 0
ecom to: 
name .t263 int 0 0
ecom: 
= int 10 2
  inds int 10 1
    name s string 0 0
    name j int 0 0
  inds int 10 1
    name s string 0 0
    name i int 0 0
eacom: 
inds int 10 1
  name s string 0 0
  name i int 0 0
ecom: 
inds int 10 1
  name s string 0 0
  name i int 0 0
ecom to: 
name .t263 int 0 0
ecom: 
++ int 10 1
  name j int 0 0
  const (1) int 6 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
slice string 10 1
  name s string 0 0
  seq no type 10 1
    const (0) int 6 0
    name j int 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: deglob
64: argument s string ref 6
72: local i int ref 7
76: local j int ref 6
80: local .t263 int ref 1
generate desc for deglob
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap i type int offset 72 (d->offset=72 start=0) returns -1
descmap j type int offset 76 (d->offset=76 start=0) returns -1
descmap .t263 type int offset 80 (d->offset=80 start=0) returns -1
fncom: glob 7 6e8850
ecom: 
= ref Listnode 10 1
  name n ref Listnode 0 0
  hd ref Listnode 10 1
    name nl list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name nl list of ref Listnode 0 0
ecom to: 
name n ref Listnode 0 0
eacom: 
call int 10 2
  name containswildchar fn(s: string): int 11 1
  seq no type 10 1
    * string 8 0
      + int 15 1
        name n ref Listnode 0 0
        const word (8) int 6 0
ecom: 
call int 10 2
  name containswildchar fn(s: string): int 11 1
  seq no type 10 1
    * string 8 0
      + int 15 1
        name n ref Listnode 0 0
        const word (8) int 6 0
ecom to: 
name .t264 int 0 0
generate desc for big
ecom: 
* string 8 0
  + int 15 1
    name n ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b265 big 0 0
    const (64) int 6 0
ecom: 
= string 10 2
  name qword string 0 0
  call string 10 2
    name patquote fn(word: string): string 11 1
    seq no type 10 1
      * string 8 0
        + int 15 1
          name n ref Listnode 0 0
          const word (8) int 6 0
ecom: 
call string 10 2
  name patquote fn(word: string): string 11 1
  seq no type 10 1
    * string 8 0
      + int 15 1
        name n ref Listnode 0 0
        const word (8) int 6 0
ecom to: 
name qword string 0 0
generate desc for big
ecom: 
* string 8 0
  + int 15 1
    name n ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b265 big 0 0
    const (64) int 6 0
ecom: 
= list of string 10 2
  name files list of string 0 0
    name qword string 0 0
  call list of string 10 2
    -> fn(pat: string): list of string 12 1
      name filepat Filepat 1 0
      name expand nothing 11 1
    seq no type 10 1
      name qword string 0 0
ecom: 
call list of string 10 2
  -> fn(pat: string): list of string 12 1
    name filepat Filepat 1 0
    name expand nothing 11 1
  seq no type 10 1
    name qword string 0 0
ecom to: 
name files list of string 0 0
  name qword string 0 0
generate desc for big
ecom: 
name qword string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b265 big 0 0
    const (64) int 6 0
ecom: 
= list of string 10 2
  name files list of string 0 0
  :: list of string 10 2
    call string 10 2
      name deglob fn(s: string): string 11 1
      seq no type 10 1
        * string 8 0
          + int 15 1
            name n ref Listnode 0 0
            const word (8) int 6 0
    name nil polymorphic type 1 0
ecom: 
:: list of string 10 2
  call string 10 2
    name deglob fn(s: string): string 11 1
    seq no type 10 1
      * string 8 0
        + int 15 1
          name n ref Listnode 0 0
          const word (8) int 6 0
  name nil polymorphic type 1 0
ecom to: 
name files list of string 0 0
eacom: 
call string 10 2
  name deglob fn(s: string): string 11 1
  seq no type 10 1
    * string 8 0
      + int 15 1
        name n ref Listnode 0 0
        const word (8) int 6 0
ecom: 
call string 10 2
  name deglob fn(s: string): string 11 1
  seq no type 10 1
    * string 8 0
      + int 15 1
        name n ref Listnode 0 0
        const word (8) int 6 0
ecom to: 
name .t266 string 0 0
generate desc for big
ecom: 
* string 8 0
  + int 15 1
    name n ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b265 big 0 0
    const (64) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t267 list of string 0 0
ecom: 
= string 10 1
  name .t266 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t266 string 0 0
ecom: 
= list of string 10 1
  name .t267 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t267 list of string 0 0
ecom: 
= list of ref Listnode 10 1
  name new list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    ref ref Listnode 10 1
      tuple Listnode 10 1
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            hd string 10 1
              name files list of string 0 0
    name new list of ref Listnode 0 0
ecom: 
:: list of ref Listnode 10 1
  ref ref Listnode 10 1
    tuple Listnode 10 1
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          hd string 10 1
            name files list of string 0 0
  name new list of ref Listnode 0 0
ecom to: 
name new list of ref Listnode 0 0
eacom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        hd string 10 1
          name files list of string 0 0
ecom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        hd string 10 1
          name files list of string 0 0
ecom to: 
name .t267 ref Listnode 0 0
generate desc for Listnode
ecom: 
tuple Listnode 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      hd string 10 1
        name files list of string 0 0
ecom to: 
* Listnode 8 0
  name .t267 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t267 ref Listnode 0 0
    const (0) int 6 0
ecom: 
hd string 10 1
  name files list of string 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t267 ref Listnode 0 0
    const (8) int 6 0
ecom: 
= ref Listnode 10 1
  name .t267 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t267 ref Listnode 0 0
ecom: 
= list of string 10 1
  name files list of string 0 0
  tl list of string 10 1
    name files list of string 0 0
ecom: 
tl list of string 10 1
  name files list of string 0 0
ecom to: 
name files list of string 0 0
ecom: 
= list of string 10 1
  name files list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name files list of string 0 0
ecom: 
= string 10 1
  name qword string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name qword string 0 0
ecom: 
= list of ref Listnode 10 1
  name new list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    name n ref Listnode 0 0
    name new list of ref Listnode 0 0
ecom: 
:: list of ref Listnode 10 1
  name n ref Listnode 0 0
  name new list of ref Listnode 0 0
ecom to: 
name new list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name nl list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name nl list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name nl list of ref Listnode 0 0
ecom to: 
name nl list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name n ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name n ref Listnode 0 0
ecom: 
= list of ref Listnode 10 2
  name ret list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name revlist fn(l: list of ref Listnode): list of ref Listnode 11 1
    seq no type 10 1
      name new list of ref Listnode 0 0
ecom: 
call list of ref Listnode 10 2
  name revlist fn(l: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name new list of ref Listnode 0 0
ecom to: 
name ret list of ref Listnode 0 0
generate desc for big
ecom: 
name new list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b265 big 0 0
    const (64) int 6 0
ecom: 
name ret list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
fn: glob
64: argument nl list of ref Listnode ref 4
72: local .t264 int ref 1
80: local files list of string ref 7
88: local .b265 big ref 5
96: local n ref Listnode ref 5
104: local new list of ref Listnode ref 5
112: local qword string ref 2
120: local ret list of ref Listnode ref 2
128: local .t266 string ref 1
136: local .t267 list of string ref 1
generate desc for glob
descmap offset 0
descmap nl type list of ref Listnode offset 64 (d->offset=64 start=0) returns 64
descmap .t264 type int offset 72 (d->offset=72 start=0) returns -1
descmap files type list of string offset 80 (d->offset=80 start=0) returns 80
descmap .b265 type big offset 88 (d->offset=88 start=0) returns -1
descmap n type ref Listnode offset 96 (d->offset=96 start=0) returns 96
descmap new type list of ref Listnode offset 104 (d->offset=104 start=0) returns 104
descmap qword type string offset 112 (d->offset=112 start=0) returns 112
descmap ret type list of ref Listnode offset 120 (d->offset=120 start=0) returns 120
descmap .t266 type string offset 128 (d->offset=128 start=0) returns 128
descmap .t267 type list of string offset 136 (d->offset=136 start=0) returns 136
fncom: list2stringlist 8 4c3048
ecom: 
= list of string 10 1
  name ret list of string 0 0
  name nil polymorphic type 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name ret list of string 0 0
ecom: 
= ref Listnode 10 1
  name el ref Listnode 0 0
    vardecl string 10 1
      seq nothing 10 1
  hd ref Listnode 10 1
    name nl list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name nl list of ref Listnode 0 0
ecom to: 
name el ref Listnode 0 0
  vardecl string 10 1
    seq nothing 10 1
ecom: 
= string 10 1
  name newel string 0 0
  * string 8 0
    + int 15 1
      name el ref Listnode 0 0
      const word (8) int 6 0
ecom: 
* string 8 0
  + int 15 1
    name el ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
name newel string 0 0
ecom: 
= string 10 2
  * string 8 0
    + int 15 1
      name el ref Listnode 0 0
      const word (8) int 6 0
  = string 10 2
    name newel string 0 0
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          name el ref Listnode 0 0
ecom: 
= string 10 2
  name newel string 0 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        name el ref Listnode 0 0
ecom to: 
* string 8 0
  + int 15 1
    name el ref Listnode 0 0
    const word (8) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      name el ref Listnode 0 0
ecom to: 
name newel string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  name el ref Listnode 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b268 big 0 0
    const (64) int 6 0
ecom: 
= list of string 10 1
  name ret list of string 0 0
  :: list of string 10 1
    name newel string 0 0
    name ret list of string 0 0
ecom: 
:: list of string 10 1
  name newel string 0 0
  name ret list of string 0 0
ecom to: 
name ret list of string 0 0
ecom: 
= list of ref Listnode 10 1
  name nl list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name nl list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name nl list of ref Listnode 0 0
ecom to: 
name nl list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name el ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name el ref Listnode 0 0
ecom: 
= string 10 1
  name newel string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name newel string 0 0
ecom: 
= list of string 10 2
  name sl list of string 0 0
  call list of string 10 2
    name revstringlist fn(l: list of string): list of string 11 1
    seq no type 10 1
      name ret list of string 0 0
ecom: 
call list of string 10 2
  name revstringlist fn(l: list of string): list of string 11 1
  seq no type 10 1
    name ret list of string 0 0
ecom to: 
name sl list of string 0 0
generate desc for big
ecom: 
name ret list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b268 big 0 0
    const (64) int 6 0
ecom: 
name sl list of string 0 0
ecom to: 
* list of string 8 0
  name .ret int 0 0
fn: list2stringlist
64: argument nl list of ref Listnode ref 4
72: local el ref Listnode ref 6
80: local ret list of string ref 4
88: local newel string ref 3
96: local .b268 big ref 2
104: local sl list of string ref 2
generate desc for list2stringlist
descmap offset 0
descmap nl type list of ref Listnode offset 64 (d->offset=64 start=0) returns 64
descmap el type ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap ret type list of string offset 80 (d->offset=80 start=0) returns 80
descmap newel type string offset 88 (d->offset=88 start=0) returns 88
descmap .b268 type big offset 96 (d->offset=96 start=0) returns -1
descmap sl type list of string offset 104 (d->offset=104 start=0) returns 104
fncom: stringlist2list 9 4c3788
ecom: 
= list of ref Listnode 10 1
  name ret list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    ref ref Listnode 10 1
      tuple Listnode 10 1
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            hd string 10 1
              name sl list of string 0 0
    name ret list of ref Listnode 0 0
ecom: 
:: list of ref Listnode 10 1
  ref ref Listnode 10 1
    tuple Listnode 10 1
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          hd string 10 1
            name sl list of string 0 0
  name ret list of ref Listnode 0 0
ecom to: 
name ret list of ref Listnode 0 0
eacom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        hd string 10 1
          name sl list of string 0 0
ecom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        hd string 10 1
          name sl list of string 0 0
ecom to: 
name .t269 ref Listnode 0 0
generate desc for Listnode
ecom: 
tuple Listnode 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      hd string 10 1
        name sl list of string 0 0
ecom to: 
* Listnode 8 0
  name .t269 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t269 ref Listnode 0 0
    const (0) int 6 0
ecom: 
hd string 10 1
  name sl list of string 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t269 ref Listnode 0 0
    const (8) int 6 0
ecom: 
= ref Listnode 10 1
  name .t269 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t269 ref Listnode 0 0
ecom: 
= list of string 10 1
  name sl list of string 0 0
  tl list of string 10 1
    name sl list of string 0 0
ecom: 
tl list of string 10 1
  name sl list of string 0 0
ecom to: 
name sl list of string 0 0
ecom: 
call list of ref Listnode 10 2
  name revlist fn(l: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name ret list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name ret list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b270 big 0 0
    const (64) int 6 0
fn: stringlist2list
64: argument sl list of string ref 4
72: local ret list of ref Listnode ref 3
80: local .b270 big ref 1
88: local .t269 ref Listnode ref 1
generate desc for stringlist2list
descmap offset 0
descmap sl type list of string offset 64 (d->offset=64 start=0) returns 64
descmap ret type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap .b270 type big offset 80 (d->offset=80 start=0) returns -1
descmap .t269 type ref Listnode offset 88 (d->offset=88 start=0) returns 88
fncom: revstringlist 2 6e8910
ecom: 
= list of string 10 1
  name t list of string 0 0
  :: list of string 10 1
    hd string 10 1
      name l list of string 0 0
    name t list of string 0 0
ecom: 
:: list of string 10 1
  hd string 10 1
    name l list of string 0 0
  name t list of string 0 0
ecom to: 
name t list of string 0 0
eacom: 
hd string 10 1
  name l list of string 0 0
ecom: 
hd string 10 1
  name l list of string 0 0
ecom to: 
name .t271 string 0 0
ecom: 
= string 10 1
  name .t271 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t271 string 0 0
ecom: 
= list of string 10 1
  name l list of string 0 0
  tl list of string 10 1
    name l list of string 0 0
ecom: 
tl list of string 10 1
  name l list of string 0 0
ecom to: 
name l list of string 0 0
ecom: 
name t list of string 0 0
ecom to: 
* list of string 8 0
  name .ret int 0 0
fn: revstringlist
64: argument l list of string ref 4
72: local t list of string ref 3
80: local .t271 string ref 1
generate desc for revstringlist
descmap offset 0
descmap l type list of string offset 64 (d->offset=64 start=0) returns 64
descmap t type list of string offset 72 (d->offset=72 start=0) returns 72
descmap .t271 type string offset 80 (d->offset=80 start=0) returns 80
fncom: revlist 5 6e89d0
ecom: 
= list of ref Listnode 10 1
  name t list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    hd ref Listnode 10 1
      name l list of ref Listnode 0 0
    name t list of ref Listnode 0 0
ecom: 
:: list of ref Listnode 10 1
  hd ref Listnode 10 1
    name l list of ref Listnode 0 0
  name t list of ref Listnode 0 0
ecom to: 
name t list of ref Listnode 0 0
eacom: 
hd ref Listnode 10 1
  name l list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name l list of ref Listnode 0 0
ecom to: 
name .t272 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t272 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t272 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name l list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name l list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name l list of ref Listnode 0 0
ecom to: 
name l list of ref Listnode 0 0
ecom: 
name t list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
fn: revlist
64: argument l list of ref Listnode ref 4
72: local t list of ref Listnode ref 3
80: local .t272 ref Listnode ref 1
generate desc for revlist
descmap offset 0
descmap l type list of ref Listnode offset 64 (d->offset=64 start=0) returns 64
descmap t type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap .t272 type ref Listnode offset 80 (d->offset=80 start=0) returns 80
fncom: fdassignstr 4 6e8a90
ecom: 
= string 10 1
  name l string 0 0
  name nil polymorphic type 1 0
ecom: 
name nil string 1 0
ecom to: 
name l string 0 0
ecom: 
= string 10 1
  name l string 0 0
  cast string 10 1
    * int 8 0
      + int 15 1
        name redir ref Redir 0 0
        const fd1 (4) int 6 0
ecom: 
cast string 10 1
  * int 8 0
    + int 15 1
      name redir ref Redir 0 0
      const fd1 (4) int 6 0
ecom to: 
name l string 0 0
ecom: 
= string 10 1
  name r string 0 0
  name nil polymorphic type 1 0
ecom: 
name nil string 1 0
ecom to: 
name r string 0 0
ecom: 
= string 10 1
  name r string 0 0
  cast string 10 1
    * int 8 0
      + int 15 1
        name redir ref Redir 0 0
        const fd2 (8) int 6 0
ecom: 
cast string 10 1
  * int 8 0
    + int 15 1
      name redir ref Redir 0 0
      const fd2 (8) int 6 0
ecom to: 
name r string 0 0
ecom: 
+ string 10 1
  + string 10 1
    + string 10 1
      + string 10 1
        const [ string 1 0
        name l string 0 0
      const = string 1 0
    name r string 0 0
  const ] string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
+ string 10 1
  + string 10 1
    + string 10 1
      const [ string 1 0
      name l string 0 0
    const = string 1 0
  name r string 0 0
ecom to: 
name .t273 string 0 0
ecom: 
+ string 10 1
  + string 10 1
    const [ string 1 0
    name l string 0 0
  const = string 1 0
ecom to: 
name .t273 string 0 0
ecom: 
+ string 10 1
  const [ string 1 0
  name l string 0 0
ecom to: 
name .t273 string 0 0
ecom: 
= string 10 1
  name .t273 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t273 string 0 0
ecom: 
= string 10 1
  name r string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name r string 0 0
ecom: 
+ string 10 1
  + string 10 1
    const [ string 1 0
    name l string 0 0
  const ] string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
+ string 10 1
  const [ string 1 0
  name l string 0 0
ecom to: 
name .t273 string 0 0
ecom: 
= string 10 1
  name .t273 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t273 string 0 0
fn: fdassignstr
64: argument isassign int ref 1
72: argument redir ref Redir ref 4
80: local l string ref 4
88: local r string ref 3
96: local .t273 string ref 1
generate desc for fdassignstr
descmap offset 0
descmap isassign type int offset 64 (d->offset=64 start=0) returns -1
descmap redir type ref Redir offset 72 (d->offset=72 start=0) returns 72
descmap l type string offset 80 (d->offset=80 start=0) returns 80
descmap r type string offset 88 (d->offset=88 start=0) returns 88
descmap .t273 type string offset 96 (d->offset=96 start=0) returns 96
fncom: redirstr 3 6e8b50
ecom: 
const < string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
const > string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
const >> string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
const <> string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: redirstr
64: argument rtype int ref 1
generate desc for redirstr
descmap offset 0
descmap rtype type int offset 64 (d->offset=64 start=0) returns -1
fncom: cmd2string 31 4b8f00
ecom: 
const  string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
= string 10 2
  name s string 0 0
  + string 10 2
    + string 10 2
      const { string 1 0
      call string 10 2
        name cmd2string fn(n: ref Node): string 11 1
        seq no type 10 1
          * ref Node 8 0
            + int 15 1
              name n ref Node 0 0
              const left (8) int 6 0
    const } string 1 0
ecom: 
+ string 10 2
  + string 10 2
    const { string 1 0
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
  const } string 1 0
ecom to: 
name s string 0 0
ecom: 
+ string 10 2
  const { string 1 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
ecom to: 
name .t274 string 0 0
eacom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom to: 
name .t274 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t274 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
= string 10 2
  name s string 0 0
  + string 10 2
    const $ string 1 0
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
ecom: 
+ string 10 2
  const $ string 1 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
ecom to: 
name s string 0 0
eacom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom to: 
name .t274 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t274 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
+= string 10 2
  name s string 0 0
  + string 10 2
    + string 10 2
      const ( string 1 0
      call string 10 2
        name cmd2string fn(n: ref Node): string 11 1
        seq no type 10 1
          * ref Node 8 0
            + int 15 1
              name n ref Node 0 0
              const right (16) int 6 0
    const ) string 1 0
eacom: 
+ string 10 2
  + string 10 2
    const ( string 1 0
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const right (16) int 6 0
  const ) string 1 0
ecom: 
+ string 10 2
  + string 10 2
    const ( string 1 0
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const right (16) int 6 0
  const ) string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
+ string 10 2
  const ( string 1 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const right (16) int 6 0
ecom to: 
name .t274 string 0 0
eacom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const right (16) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const right (16) int 6 0
ecom to: 
name .t274 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t274 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
= string 10 2
  name s string 0 0
  + string 10 2
    const $" string 1 0
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
ecom: 
+ string 10 2
  const $" string 1 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
ecom to: 
name s string 0 0
eacom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom to: 
name .t274 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t274 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
= string 10 2
  name s string 0 0
  + string 10 2
    const $# string 1 0
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
ecom: 
+ string 10 2
  const $# string 1 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
ecom to: 
name s string 0 0
eacom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom to: 
name .t274 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t274 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
= string 10 2
  name s string 0 0
  + string 10 2
    const ` string 1 0
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
ecom: 
+ string 10 2
  const ` string 1 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
ecom to: 
name s string 0 0
eacom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom to: 
name .t274 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t274 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
= string 10 2
  name s string 0 0
  + string 10 2
    const " string 1 0
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
ecom: 
+ string 10 2
  const " string 1 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
ecom to: 
name s string 0 0
eacom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom to: 
name .t274 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t274 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
= string 10 2
  name s string 0 0
  call string 10 2
    name redirstr fn(rtype: int): string 11 1
    seq no type 10 1
      * int 10 1
        * ref Redir 8 0
          + int 15 1
            name n ref Node 0 0
            const redir (32) int 6 0
ecom: 
call string 10 2
  name redirstr fn(rtype: int): string 11 1
  seq no type 10 1
    * int 10 1
      * ref Redir 8 0
        + int 15 1
          name n ref Node 0 0
          const redir (32) int 6 0
ecom to: 
name s string 0 0
generate desc for big
ecom: 
* int 10 1
  * ref Redir 8 0
    + int 15 1
      name n ref Node 0 0
      const redir (32) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
eacom: 
* int 10 1
  * ref Redir 8 0
    + int 15 1
      name n ref Node 0 0
      const redir (32) int 6 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .t274 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .t274 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .t274 ref Redir 0 0
eacom: 
* int 10 1
  + int 10 1
    * ref Redir 8 0
      + int 15 1
        name n ref Node 0 0
        const redir (32) int 6 0
    const fd1 (4) int 6 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .t274 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .t274 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .t274 ref Redir 0 0
ecom: 
+= string 10 2
  name s string 0 0
  call string 10 2
    name fdassignstr fn(isassign: int, redir: ref Redir): string 11 1
    seq no type 10 1
      const (0) int 6 0
      seq no type 10 1
        * ref Redir 8 0
          + int 15 1
            name n ref Node 0 0
            const redir (32) int 6 0
eacom: 
call string 10 2
  name fdassignstr fn(isassign: int, redir: ref Redir): string 11 1
  seq no type 10 1
    const (0) int 6 0
    seq no type 10 1
      * ref Redir 8 0
        + int 15 1
          name n ref Node 0 0
          const redir (32) int 6 0
ecom: 
call string 10 2
  name fdassignstr fn(isassign: int, redir: ref Redir): string 11 1
  seq no type 10 1
    const (0) int 6 0
    seq no type 10 1
      * ref Redir 8 0
        + int 15 1
          name n ref Node 0 0
          const redir (32) int 6 0
ecom to: 
name .t274 string 0 0
generate desc for big
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
* ref Redir 8 0
  + int 15 0
    name .b275 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t274 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
+= string 10 2
  name s string 0 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
eacom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom to: 
name .t274 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t274 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
= string 10 3
  name s string 0 0
  + string 10 3
    call string 10 2
      name redirstr fn(rtype: int): string 11 1
      seq no type 10 1
        * int 10 1
          * ref Redir 8 0
            + int 15 1
              name n ref Node 0 0
              const redir (32) int 6 0
    call string 10 2
      name fdassignstr fn(isassign: int, redir: ref Redir): string 11 1
      seq no type 10 1
        const (1) int 6 0
        seq no type 10 1
          * ref Redir 8 0
            + int 15 1
              name n ref Node 0 0
              const redir (32) int 6 0
ecom: 
+ string 10 3
  call string 10 2
    name redirstr fn(rtype: int): string 11 1
    seq no type 10 1
      * int 10 1
        * ref Redir 8 0
          + int 15 1
            name n ref Node 0 0
            const redir (32) int 6 0
  call string 10 2
    name fdassignstr fn(isassign: int, redir: ref Redir): string 11 1
    seq no type 10 1
      const (1) int 6 0
      seq no type 10 1
        * ref Redir 8 0
          + int 15 1
            name n ref Node 0 0
            const redir (32) int 6 0
ecom to: 
name s string 0 0
ecom: 
call string 10 2
  name redirstr fn(rtype: int): string 11 1
  seq no type 10 1
    * int 10 1
      * ref Redir 8 0
        + int 15 1
          name n ref Node 0 0
          const redir (32) int 6 0
ecom to: 
name .t274 string 0 0
generate desc for big
ecom: 
* int 10 1
  * ref Redir 8 0
    + int 15 1
      name n ref Node 0 0
      const redir (32) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
eacom: 
* int 10 1
  * ref Redir 8 0
    + int 15 1
      name n ref Node 0 0
      const redir (32) int 6 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .t276 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .t276 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .t276 ref Redir 0 0
eacom: 
call string 10 2
  name fdassignstr fn(isassign: int, redir: ref Redir): string 11 1
  seq no type 10 1
    const (1) int 6 0
    seq no type 10 1
      * ref Redir 8 0
        + int 15 1
          name n ref Node 0 0
          const redir (32) int 6 0
ecom: 
call string 10 2
  name fdassignstr fn(isassign: int, redir: ref Redir): string 11 1
  seq no type 10 1
    const (1) int 6 0
    seq no type 10 1
      * ref Redir 8 0
        + int 15 1
          name n ref Node 0 0
          const redir (32) int 6 0
ecom to: 
name .t276 string 0 0
generate desc for big
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
* ref Redir 8 0
  + int 15 0
    name .b275 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t274 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
= string 10 1
  name .t276 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t276 string 0 0
ecom: 
= string 10 2
  name s string 0 0
  + string 10 2
    + string 10 2
      const ( string 1 0
      call string 10 2
        name cmd2string fn(n: ref Node): string 11 1
        seq no type 10 1
          * ref Node 8 0
            + int 15 1
              name n ref Node 0 0
              const left (8) int 6 0
    const ) string 1 0
ecom: 
+ string 10 2
  + string 10 2
    const ( string 1 0
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
  const ) string 1 0
ecom to: 
name s string 0 0
ecom: 
+ string 10 2
  const ( string 1 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
ecom to: 
name .t276 string 0 0
eacom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom to: 
name .t276 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t276 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t276 string 0 0
ecom: 
= string 10 3
  name s string 0 0
  + string 10 3
    + string 10 2
      call string 10 2
        name cmd2string fn(n: ref Node): string 11 1
        seq no type 10 1
          * ref Node 8 0
            + int 15 1
              name n ref Node 0 0
              const left (8) int 6 0
      const ; string 1 0
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const right (16) int 6 0
ecom: 
+ string 10 3
  + string 10 2
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
    const ; string 1 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const right (16) int 6 0
ecom to: 
name s string 0 0
ecom: 
+ string 10 2
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
  const ; string 1 0
ecom to: 
name .t276 string 0 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom to: 
name .t276 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
eacom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const right (16) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const right (16) int 6 0
ecom to: 
name .t274 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t276 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t276 string 0 0
ecom: 
= string 10 1
  name .t274 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
= string 10 2
  name s string 0 0
  + string 10 2
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
    const & string 1 0
ecom: 
+ string 10 2
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
  const & string 1 0
ecom to: 
name s string 0 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom to: 
name .t276 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t276 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t276 string 0 0
ecom: 
= string 10 3
  name s string 0 0
  + string 10 3
    + string 10 2
      call string 10 2
        name cmd2string fn(n: ref Node): string 11 1
        seq no type 10 1
          * ref Node 8 0
            + int 15 1
              name n ref Node 0 0
              const left (8) int 6 0
      const ^ string 1 0
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const right (16) int 6 0
ecom: 
+ string 10 3
  + string 10 2
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
    const ^ string 1 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const right (16) int 6 0
ecom to: 
name s string 0 0
ecom: 
+ string 10 2
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
  const ^ string 1 0
ecom to: 
name .t276 string 0 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom to: 
name .t276 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
eacom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const right (16) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const right (16) int 6 0
ecom to: 
name .t274 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t276 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t276 string 0 0
ecom: 
= string 10 1
  name .t274 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
= string 10 2
  name s string 0 0
  + string 10 2
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
    const | string 1 0
ecom: 
+ string 10 2
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
  const | string 1 0
ecom to: 
name s string 0 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom to: 
name .t276 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t276 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t276 string 0 0
eacom: 
* int 10 1
  + int 10 1
    * ref Redir 8 0
      + int 15 1
        name n ref Node 0 0
        const redir (32) int 6 0
    const fd1 (4) int 6 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .t276 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .t276 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .t276 ref Redir 0 0
eacom: 
* int 10 1
  + int 10 1
    * ref Redir 8 0
      + int 15 1
        name n ref Node 0 0
        const redir (32) int 6 0
    const fd2 (8) int 6 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .t276 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .t276 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .t276 ref Redir 0 0
ecom: 
+= string 10 2
  name s string 0 0
  call string 10 2
    name fdassignstr fn(isassign: int, redir: ref Redir): string 11 1
    seq no type 10 2
      != int 10 1
        * int 10 1
          + int 10 1
            * ref Redir 8 0
              + int 15 1
                name n ref Node 0 0
                const redir (32) int 6 0
            const fd2 (8) int 6 0
        const (-1) int 6 0
      seq no type 10 1
        * ref Redir 8 0
          + int 15 1
            name n ref Node 0 0
            const redir (32) int 6 0
eacom: 
call string 10 2
  name fdassignstr fn(isassign: int, redir: ref Redir): string 11 1
  seq no type 10 2
    != int 10 1
      * int 10 1
        + int 10 1
          * ref Redir 8 0
            + int 15 1
              name n ref Node 0 0
              const redir (32) int 6 0
          const fd2 (8) int 6 0
      const (-1) int 6 0
    seq no type 10 1
      * ref Redir 8 0
        + int 15 1
          name n ref Node 0 0
          const redir (32) int 6 0
ecom: 
call string 10 2
  name fdassignstr fn(isassign: int, redir: ref Redir): string 11 1
  seq no type 10 2
    != int 10 1
      * int 10 1
        + int 10 1
          * ref Redir 8 0
            + int 15 1
              name n ref Node 0 0
              const redir (32) int 6 0
          const fd2 (8) int 6 0
      const (-1) int 6 0
    seq no type 10 1
      * ref Redir 8 0
        + int 15 1
          name n ref Node 0 0
          const redir (32) int 6 0
ecom to: 
name .t276 string 0 0
generate desc for big
ecom: 
!= int 10 1
  * int 10 1
    + int 10 1
      * ref Redir 8 0
        + int 15 1
          name n ref Node 0 0
          const redir (32) int 6 0
      const fd2 (8) int 6 0
  const (-1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
eacom: 
* int 10 1
  + int 10 1
    * ref Redir 8 0
      + int 15 1
        name n ref Node 0 0
        const redir (32) int 6 0
    const fd2 (8) int 6 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .t274 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .t274 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .t274 ref Redir 0 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
* ref Redir 8 0
  + int 15 0
    name .b275 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t276 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t276 string 0 0
ecom: 
+= string 10 2
  name s string 0 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const right (16) int 6 0
eacom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const right (16) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const right (16) int 6 0
ecom to: 
name .t276 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t276 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t276 string 0 0
ecom: 
= string 10 3
  name s string 0 0
  + string 10 3
    + string 10 2
      call string 10 2
        name cmd2string fn(n: ref Node): string 11 1
        seq no type 10 1
          * ref Node 8 0
            + int 15 1
              name n ref Node 0 0
              const left (8) int 6 0
      const = string 1 0
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const right (16) int 6 0
ecom: 
+ string 10 3
  + string 10 2
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
    const = string 1 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const right (16) int 6 0
ecom to: 
name s string 0 0
ecom: 
+ string 10 2
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
  const = string 1 0
ecom to: 
name .t276 string 0 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom to: 
name .t276 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
eacom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const right (16) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const right (16) int 6 0
ecom to: 
name .t274 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t276 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t276 string 0 0
ecom: 
= string 10 1
  name .t274 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
= string 10 3
  name s string 0 0
  + string 10 3
    + string 10 2
      call string 10 2
        name cmd2string fn(n: ref Node): string 11 1
        seq no type 10 1
          * ref Node 8 0
            + int 15 1
              name n ref Node 0 0
              const left (8) int 6 0
      const := string 1 0
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const right (16) int 6 0
ecom: 
+ string 10 3
  + string 10 2
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
    const := string 1 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const right (16) int 6 0
ecom to: 
name s string 0 0
ecom: 
+ string 10 2
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
  const := string 1 0
ecom to: 
name .t276 string 0 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom to: 
name .t276 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
eacom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const right (16) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const right (16) int 6 0
ecom to: 
name .t274 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t276 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t276 string 0 0
ecom: 
= string 10 1
  name .t274 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
= string 10 3
  name s string 0 0
  + string 10 3
    + string 10 2
      call string 10 2
        name cmd2string fn(n: ref Node): string 11 1
        seq no type 10 1
          * ref Node 8 0
            + int 15 1
              name n ref Node 0 0
              const left (8) int 6 0
      const   string 1 0
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const right (16) int 6 0
ecom: 
+ string 10 3
  + string 10 2
    call string 10 2
      name cmd2string fn(n: ref Node): string 11 1
      seq no type 10 1
        * ref Node 8 0
          + int 15 1
            name n ref Node 0 0
            const left (8) int 6 0
    const   string 1 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const right (16) int 6 0
ecom to: 
name s string 0 0
ecom: 
+ string 10 2
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        + int 15 1
          name n ref Node 0 0
          const left (8) int 6 0
  const   string 1 0
ecom to: 
name .t276 string 0 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const left (8) int 6 0
ecom to: 
name .t276 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
eacom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const right (16) int 6 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      + int 15 1
        name n ref Node 0 0
        const right (16) int 6 0
ecom to: 
name .t274 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t276 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t276 string 0 0
ecom: 
= string 10 1
  name .t274 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t274 string 0 0
ecom: 
= string 10 2
  name s string 0 0
  call string 10 2
    name quote fn(s: string, glob: int): string 11 1
    seq no type 10 1
      * string 8 0
        + int 15 1
          name n ref Node 0 0
          const word (24) int 6 0
      seq no type 10 1
        const (1) int 6 0
ecom: 
call string 10 2
  name quote fn(s: string, glob: int): string 11 1
  seq no type 10 1
    * string 8 0
      + int 15 1
        name n ref Node 0 0
        const word (24) int 6 0
    seq no type 10 1
      const (1) int 6 0
ecom to: 
name s string 0 0
generate desc for big
ecom: 
* string 8 0
  + int 15 1
    name n ref Node 0 0
    const word (24) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b275 big 0 0
    const (72) int 6 0
ecom: 
= string 10 2
  name s string 0 0
  call string 10 2
    -> fn(s: string, nil: int, *): string 12 1
      name sys Sys 1 0
      name sprint nothing 11 1
    seq no type 10 1
      const unknown%d string 1 0
      seq no type 10 1
        * int 8 0
          name n ref Node 0 0
ecom: 
call string 10 2
  -> fn(s: string, nil: int, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const unknown%d string 1 0
    seq no type 10 1
      * int 8 0
        name n ref Node 0 0
ecom to: 
name s string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type int offset 72 returns -1
generate desc for big
ecom: 
const unknown%d string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b275 big 0 0
    const (64) int 6 0
ecom: 
* int 8 0
  name n ref Node 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b275 big 0 0
    const (72) int 6 0
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: cmd2string
64: argument n ref Node ref 37
72: local .b275 big ref 29
80: local s string ref 24
88: local .t274 string ref 1
96: local .t276 ref Redir ref 1
generate desc for cmd2string
descmap offset 0
descmap n type ref Node offset 64 (d->offset=64 start=0) returns 64
descmap .b275 type big offset 72 (d->offset=72 start=0) returns -1
descmap s type string offset 80 (d->offset=80 start=0) returns 80
descmap .t274 type string offset 88 (d->offset=88 start=0) returns 88
descmap .t276 type ref Redir offset 96 (d->offset=96 start=0) returns 96
fncom: quote 5 6e8c10
ecom: 
= int 10 1
  name needquote int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name needquote int 0 0
ecom: 
= string 10 1
  name t string 0 0
  const  string 1 0
ecom: 
const  string 1 0
ecom to: 
name t string 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
eacom: 
len int 10 1
  name s string 0 0
ecom: 
len int 10 1
  name s string 0 0
ecom to: 
name .t277 int 0 0
eacom: 
inds int 10 1
  name s string 0 0
  name i int 0 0
ecom: 
inds int 10 1
  name s string 0 0
  name i int 0 0
ecom to: 
name .t277 int 0 0
ecom: 
= int 10 1
  name needquote int 0 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
name needquote int 0 0
ecom: 
= int 10 1
  inds int 10 1
    name t string 0 0
    len int 10 1
      name t string 0 0
  const (39) int 6 0
ecom: 
len int 10 1
  name t string 0 0
ecom to: 
name .t277 int 0 0
ecom: 
= int 10 1
  name needquote int 0 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
name needquote int 0 0
eacom: 
- int 10 1
  len int 10 1
    name s string 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  len int 10 1
    name s string 0 0
  const (1) int 6 0
ecom to: 
name .t277 int 0 0
ecom: 
len int 10 1
  name s string 0 0
ecom to: 
name .t277 int 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
= int 10 2
  inds int 10 1
    name t string 0 0
    len int 10 1
      name t string 0 0
  inds int 10 1
    name s string 0 0
    name i int 0 0
ecom: 
len int 10 1
  name t string 0 0
ecom to: 
name .t277 int 0 0
eacom: 
inds int 10 1
  name s string 0 0
  name i int 0 0
ecom: 
inds int 10 1
  name s string 0 0
  name i int 0 0
ecom to: 
name .t278 int 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
= string 10 1
  name t string 0 0
  + string 10 1
    + string 10 1
      const ' string 1 0
      name t string 0 0
    const ' string 1 0
ecom: 
+ string 10 1
  + string 10 1
    const ' string 1 0
    name t string 0 0
  const ' string 1 0
ecom to: 
name t string 0 0
ecom: 
+ string 10 1
  const ' string 1 0
  name t string 0 0
ecom to: 
name .t279 string 0 0
ecom: 
= string 10 1
  name .t279 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t279 string 0 0
ecom: 
name t string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: quote
64: argument s string ref 4
72: argument glob int ref 1
76: local i int ref 7
80: local needquote int ref 4
84: local .t277 int ref 1
88: local .t278 int ref 1
96: local t string ref 9
104: local .t279 string ref 1
generate desc for quote
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap glob type int offset 72 (d->offset=72 start=0) returns -1
descmap i type int offset 76 (d->offset=76 start=0) returns -1
descmap needquote type int offset 80 (d->offset=80 start=0) returns -1
descmap .t277 type int offset 84 (d->offset=84 start=0) returns -1
descmap .t278 type int offset 88 (d->offset=88 start=0) returns -1
descmap t type string offset 96 (d->offset=96 start=0) returns 96
descmap .t279 type string offset 104 (d->offset=104 start=0) returns 104
fncom: squash 3 6e8cd0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
= string 10 1
  name s string 0 0
  hd string 10 1
    name l list of string 0 0
ecom: 
hd string 10 1
  name l list of string 0 0
ecom to: 
name s string 0 0
ecom: 
= list of string 10 1
  name l list of string 0 0
  tl list of string 10 1
    name l list of string 0 0
ecom: 
tl list of string 10 1
  name l list of string 0 0
ecom to: 
name l list of string 0 0
ecom: 
+= string 10 1
  name s string 0 0
  + string 10 1
    name sep string 0 0
    hd string 10 1
      name l list of string 0 0
eacom: 
+ string 10 1
  name sep string 0 0
  hd string 10 1
    name l list of string 0 0
ecom: 
+ string 10 1
  name sep string 0 0
  hd string 10 1
    name l list of string 0 0
ecom to: 
name .t280 string 0 0
eacom: 
hd string 10 1
  name l list of string 0 0
ecom: 
hd string 10 1
  name l list of string 0 0
ecom to: 
name .t280 string 0 0
ecom: 
= string 10 1
  name .t280 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t280 string 0 0
ecom: 
= list of string 10 1
  name l list of string 0 0
  tl list of string 10 1
    name l list of string 0 0
ecom: 
tl list of string 10 1
  name l list of string 0 0
ecom to: 
name l list of string 0 0
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: squash
64: argument l list of string ref 8
72: argument sep string ref 1
80: local s string ref 3
88: local .t280 string ref 1
generate desc for squash
descmap offset 0
descmap l type list of string offset 64 (d->offset=64 start=0) returns 64
descmap sep type string offset 72 (d->offset=72 start=0) returns 72
descmap s type string offset 80 (d->offset=80 start=0) returns 80
descmap .t280 type string offset 88 (d->offset=88 start=0) returns 88
fncom: debug 9 6e8d90
fn: debug
64: argument s string ref 1
generate desc for debug
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
fncom: initbuiltin 2 4c4628
ecom: 
= array of string 10 2
  name names array of string 0 0
  array array of string 10 2
    const (9) int 6 0
    seq array initializers 10 2
      elem string 10 1
        seq nothing 10 1
          const (0) int 6 0
        const load string 1 0
      seq no type 10 2
        elem string 10 1
          seq nothing 10 1
            const (1) int 6 0
          const unload string 1 0
        seq no type 10 2
          elem string 10 1
            seq nothing 10 1
              const (2) int 6 0
            const loaded string 1 0
          seq no type 10 2
            elem string 10 1
              seq nothing 10 1
                const (3) int 6 0
              const builtin string 1 0
            seq no type 10 2
              elem string 10 1
                seq nothing 10 1
                  const (4) int 6 0
                const syncenv string 1 0
              seq no type 10 2
                elem string 10 1
                  seq nothing 10 1
                    const (5) int 6 0
                  const whatis string 1 0
                seq no type 10 2
                  elem string 10 1
                    seq nothing 10 1
                      const (6) int 6 0
                    const run string 1 0
                  seq no type 10 2
                    elem string 10 1
                      seq nothing 10 1
                        const (7) int 6 0
                      const exit string 1 0
                    seq no type 10 1
                      elem string 10 1
                        seq nothing 10 1
                          const (8) int 6 0
                        const @ string 1 0
ecom: 
array array of string 10 2
  const (9) int 6 0
  seq array initializers 10 2
    elem string 10 1
      seq nothing 10 1
        const (0) int 6 0
      const load string 1 0
    seq no type 10 2
      elem string 10 1
        seq nothing 10 1
          const (1) int 6 0
        const unload string 1 0
      seq no type 10 2
        elem string 10 1
          seq nothing 10 1
            const (2) int 6 0
          const loaded string 1 0
        seq no type 10 2
          elem string 10 1
            seq nothing 10 1
              const (3) int 6 0
            const builtin string 1 0
          seq no type 10 2
            elem string 10 1
              seq nothing 10 1
                const (4) int 6 0
              const syncenv string 1 0
            seq no type 10 2
              elem string 10 1
                seq nothing 10 1
                  const (5) int 6 0
                const whatis string 1 0
              seq no type 10 2
                elem string 10 1
                  seq nothing 10 1
                    const (6) int 6 0
                  const run string 1 0
                seq no type 10 2
                  elem string 10 1
                    seq nothing 10 1
                      const (7) int 6 0
                    const exit string 1 0
                  seq no type 10 1
                    elem string 10 1
                      seq nothing 10 1
                        const (8) int 6 0
                      const @ string 1 0
ecom to: 
name names array of string 0 0
generate desc for string
generate desc for big
ecom: 
indx big 10 0
  name names array of string 0 0
  const (0) int 6 0
ecom to: 
name .b281 big 0 0
ecom: 
const load string 1 0
ecom to: 
* string 8 0
  name .b281 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (1) int 6 0
ecom to: 
name .b281 big 0 0
ecom: 
const unload string 1 0
ecom to: 
* string 8 0
  name .b281 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (2) int 6 0
ecom to: 
name .b281 big 0 0
ecom: 
const loaded string 1 0
ecom to: 
* string 8 0
  name .b281 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (3) int 6 0
ecom to: 
name .b281 big 0 0
ecom: 
const builtin string 1 0
ecom to: 
* string 8 0
  name .b281 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (4) int 6 0
ecom to: 
name .b281 big 0 0
ecom: 
const syncenv string 1 0
ecom to: 
* string 8 0
  name .b281 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (5) int 6 0
ecom to: 
name .b281 big 0 0
ecom: 
const whatis string 1 0
ecom to: 
* string 8 0
  name .b281 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (6) int 6 0
ecom to: 
name .b281 big 0 0
ecom: 
const run string 1 0
ecom to: 
* string 8 0
  name .b281 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (7) int 6 0
ecom to: 
name .b281 big 0 0
ecom: 
const exit string 1 0
ecom to: 
* string 8 0
  name .b281 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (8) int 6 0
ecom to: 
name .b281 big 0 0
ecom: 
const @ string 1 0
ecom to: 
* string 8 0
  name .b281 big 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
eacom: 
len int 10 1
  name names array of string 0 0
ecom: 
len int 10 1
  name names array of string 0 0
ecom to: 
name .t282 int 0 0
ecom: 
call no type 10 2
  name addbuiltin fn(c: self ref Context, name: string, mod: Shellbuiltin) 11 1
  seq nothing 10 2
    name c ref Context 0 0
    seq no type 10 2
      * string 10 1
        indx big 10 1
          name names array of string 0 0
          name i int 0 0
      seq no type 10 1
        name myselfbuiltin Shellbuiltin 1 0
generate desc for big
ecom: 
name c ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b281 big 0 0
    const (64) int 6 0
ecom: 
* string 10 1
  indx big 10 1
    name names array of string 0 0
    name i int 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b281 big 0 0
    const (72) int 6 0
eacom: 
* string 10 1
  indx big 10 1
    name names array of string 0 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  name names array of string 0 0
  name i int 0 0
ecom to: 
name .b283 big 0 0
ecom: 
name myselfbuiltin Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b281 big 0 0
    const (80) int 6 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
call no type 10 2
  name addsbuiltin fn(c: self ref Context, name: string, mod: Shellbuiltin) 11 1
  seq nothing 10 1
    name c ref Context 0 0
    seq no type 10 1
      const loaded string 1 0
      seq no type 10 1
        name myselfbuiltin Shellbuiltin 1 0
generate desc for big
ecom: 
name c ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b283 big 0 0
    const (64) int 6 0
ecom: 
const loaded string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b283 big 0 0
    const (72) int 6 0
ecom: 
name myselfbuiltin Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b283 big 0 0
    const (80) int 6 0
ecom: 
call no type 10 2
  name addsbuiltin fn(c: self ref Context, name: string, mod: Shellbuiltin) 11 1
  seq nothing 10 1
    name c ref Context 0 0
    seq no type 10 1
      const quote string 1 0
      seq no type 10 1
        name myselfbuiltin Shellbuiltin 1 0
generate desc for big
ecom: 
name c ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b283 big 0 0
    const (64) int 6 0
ecom: 
const quote string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b283 big 0 0
    const (72) int 6 0
ecom: 
name myselfbuiltin Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b283 big 0 0
    const (80) int 6 0
ecom: 
call no type 10 2
  name addsbuiltin fn(c: self ref Context, name: string, mod: Shellbuiltin) 11 1
  seq nothing 10 1
    name c ref Context 0 0
    seq no type 10 1
      const bquote string 1 0
      seq no type 10 1
        name myselfbuiltin Shellbuiltin 1 0
generate desc for big
ecom: 
name c ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b283 big 0 0
    const (64) int 6 0
ecom: 
const bquote string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b283 big 0 0
    const (72) int 6 0
ecom: 
name myselfbuiltin Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b283 big 0 0
    const (80) int 6 0
ecom: 
call no type 10 2
  name addsbuiltin fn(c: self ref Context, name: string, mod: Shellbuiltin) 11 1
  seq nothing 10 1
    name c ref Context 0 0
    seq no type 10 1
      const unquote string 1 0
      seq no type 10 1
        name myselfbuiltin Shellbuiltin 1 0
generate desc for big
ecom: 
name c ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b283 big 0 0
    const (64) int 6 0
ecom: 
const unquote string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b283 big 0 0
    const (72) int 6 0
ecom: 
name myselfbuiltin Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b283 big 0 0
    const (80) int 6 0
ecom: 
call no type 10 2
  name addsbuiltin fn(c: self ref Context, name: string, mod: Shellbuiltin) 11 1
  seq nothing 10 1
    name c ref Context 0 0
    seq no type 10 1
      const builtin string 1 0
      seq no type 10 1
        name myselfbuiltin Shellbuiltin 1 0
generate desc for big
ecom: 
name c ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b283 big 0 0
    const (64) int 6 0
ecom: 
const builtin string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b283 big 0 0
    const (72) int 6 0
ecom: 
name myselfbuiltin Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b283 big 0 0
    const (80) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
fn: initbuiltin
64: argument c ref Context ref 6
72: argument <nil> Sh ref 0
80: local i int ref 4
84: local .t282 int ref 1
88: local .b283 big ref 6
96: local names array of string ref 3
104: local .b281 big ref 2
generate desc for initbuiltin
descmap offset 0
descmap c type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap type Sh offset 72 returns 72
descmap i type int offset 80 (d->offset=80 start=0) returns -1
descmap .t282 type int offset 84 (d->offset=84 start=0) returns -1
descmap .b283 type big offset 88 (d->offset=88 start=0) returns -1
descmap names type array of string offset 96 (d->offset=96 start=0) returns 96
descmap .b281 type big offset 104 (d->offset=104 start=0) returns -1
fncom: whatis 2 4c4e48
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
fn: whatis
64: argument <nil> ref Context ref 0
72: argument <nil> Sh ref 0
80: argument <nil> string ref 0
88: argument <nil> int ref 0
generate desc for whatis
descmap offset 0
descmap type ref Context offset 64 returns 64
descmap type Sh offset 72 returns 72
descmap type string offset 80 returns 80
descmap type int offset 88 returns -1
fncom: runsbuiltin 2 4c6328
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name argv list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom to: 
name .t284 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t284 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t284 ref Listnode 0 0
ecom: 
call list of ref Listnode 10 2
  name sbuiltin_loaded fn(ctxt: ref Context, nil: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name argv list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b285 big 0 0
    const (64) int 6 0
ecom: 
name argv list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b285 big 0 0
    const (72) int 6 0
ecom: 
:: list of ref Listnode 10 2
  ref ref Listnode 10 2
    tuple Listnode 10 2
      seq no type 10 2
        name nil polymorphic type 1 0
        seq no type 10 2
          call string 10 2
            name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
            seq no type 10 2
              tl list of ref Listnode 10 1
                name argv list of ref Listnode 0 0
              seq no type 10 1
                const (0) int 6 0
  name nil polymorphic type 1 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
eacom: 
ref ref Listnode 10 2
  tuple Listnode 10 2
    seq no type 10 2
      name nil polymorphic type 1 0
      seq no type 10 2
        call string 10 2
          name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
          seq no type 10 2
            tl list of ref Listnode 10 1
              name argv list of ref Listnode 0 0
            seq no type 10 1
              const (0) int 6 0
ecom: 
ref ref Listnode 10 2
  tuple Listnode 10 2
    seq no type 10 2
      name nil polymorphic type 1 0
      seq no type 10 2
        call string 10 2
          name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
          seq no type 10 2
            tl list of ref Listnode 10 1
              name argv list of ref Listnode 0 0
            seq no type 10 1
              const (0) int 6 0
ecom to: 
name .t284 ref Listnode 0 0
generate desc for Listnode
ecom: 
tuple Listnode 10 2
  seq no type 10 2
    name nil polymorphic type 1 0
    seq no type 10 2
      call string 10 2
        name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
        seq no type 10 2
          tl list of ref Listnode 10 1
            name argv list of ref Listnode 0 0
          seq no type 10 1
            const (0) int 6 0
ecom to: 
* Listnode 8 0
  name .t284 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t284 ref Listnode 0 0
    const (0) int 6 0
ecom: 
call string 10 2
  name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
  seq no type 10 2
    tl list of ref Listnode 10 1
      name argv list of ref Listnode 0 0
    seq no type 10 1
      const (0) int 6 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t284 ref Listnode 0 0
    const (8) int 6 0
generate desc for big
ecom: 
tl list of ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b285 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b285 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t286 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t284 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t284 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t286 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t286 list of ref Listnode 0 0
ecom: 
:: list of ref Listnode 10 2
  ref ref Listnode 10 2
    tuple Listnode 10 2
      seq no type 10 2
        name nil polymorphic type 1 0
        seq no type 10 2
          call string 10 2
            name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
            seq no type 10 2
              tl list of ref Listnode 10 1
                name argv list of ref Listnode 0 0
              seq no type 10 1
                const (1) int 6 0
  name nil polymorphic type 1 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
eacom: 
ref ref Listnode 10 2
  tuple Listnode 10 2
    seq no type 10 2
      name nil polymorphic type 1 0
      seq no type 10 2
        call string 10 2
          name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
          seq no type 10 2
            tl list of ref Listnode 10 1
              name argv list of ref Listnode 0 0
            seq no type 10 1
              const (1) int 6 0
ecom: 
ref ref Listnode 10 2
  tuple Listnode 10 2
    seq no type 10 2
      name nil polymorphic type 1 0
      seq no type 10 2
        call string 10 2
          name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
          seq no type 10 2
            tl list of ref Listnode 10 1
              name argv list of ref Listnode 0 0
            seq no type 10 1
              const (1) int 6 0
ecom to: 
name .t286 ref Listnode 0 0
generate desc for Listnode
ecom: 
tuple Listnode 10 2
  seq no type 10 2
    name nil polymorphic type 1 0
    seq no type 10 2
      call string 10 2
        name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
        seq no type 10 2
          tl list of ref Listnode 10 1
            name argv list of ref Listnode 0 0
          seq no type 10 1
            const (1) int 6 0
ecom to: 
* Listnode 8 0
  name .t286 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t286 ref Listnode 0 0
    const (0) int 6 0
ecom: 
call string 10 2
  name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
  seq no type 10 2
    tl list of ref Listnode 10 1
      name argv list of ref Listnode 0 0
    seq no type 10 1
      const (1) int 6 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t286 ref Listnode 0 0
    const (8) int 6 0
generate desc for big
ecom: 
tl list of ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b285 big 0 0
    const (64) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b285 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t284 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t286 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t286 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t284 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t284 list of ref Listnode 0 0
ecom: 
call list of ref Listnode 10 2
  name sbuiltin_unquote fn(ctxt: ref Context, argv: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name argv list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b285 big 0 0
    const (64) int 6 0
ecom: 
name argv list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b285 big 0 0
    const (72) int 6 0
ecom: 
call list of ref Listnode 10 2
  name sbuiltin_builtin fn(ctxt: ref Context, args: list of ref Listnode): list of ref Listnode 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name argv list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b285 big 0 0
    const (64) int 6 0
ecom: 
name argv list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b285 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
fn: runsbuiltin
64: argument ctxt ref Context ref 5
72: argument <nil> Sh ref 0
80: argument argv list of ref Listnode ref 6
88: local .b285 big ref 5
96: local .t284 ref Listnode ref 1
104: local .t286 list of ref Listnode ref 1
generate desc for runsbuiltin
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap type Sh offset 72 returns 72
descmap argv type list of ref Listnode offset 80 (d->offset=80 start=0) returns 80
descmap .b285 type big offset 88 (d->offset=88 start=0) returns -1
descmap .t284 type ref Listnode offset 96 (d->offset=96 start=0) returns 96
descmap .t286 type list of ref Listnode offset 104 (d->offset=104 start=0) returns 104
fncom: runbuiltin 2 4c5868
ecom: 
= string 10 1
  name status string 0 0
  const  string 1 0
ecom: 
const  string 1 0
ecom to: 
name status string 0 0
ecom: 
= string 10 1
  name name string 0 0
  * string 10 1
    + int 10 1
      hd ref Listnode 10 1
        name args list of ref Listnode 0 0
      const word (8) int 6 0
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
name name string 0 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t287 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t287 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t287 ref Listnode 0 0
ecom: 
= string 10 2
  name status string 0 0
  call string 10 2
    name builtin_load fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name args list of ref Listnode 0 0
        seq no type 10 1
          name lseq int 0 0
ecom: 
call string 10 2
  name builtin_load fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name args list of ref Listnode 0 0
      seq no type 10 1
        name lseq int 0 0
ecom to: 
name status string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b288 big 0 0
    const (64) int 6 0
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b288 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b288 big 0 0
    const (80) int 6 0
ecom: 
= string 10 2
  name status string 0 0
  call string 10 2
    name builtin_loaded fn(ctxt: ref Context, nil: list of ref Listnode, nil: int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name args list of ref Listnode 0 0
        seq no type 10 1
          name lseq int 0 0
ecom: 
call string 10 2
  name builtin_loaded fn(ctxt: ref Context, nil: list of ref Listnode, nil: int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name args list of ref Listnode 0 0
      seq no type 10 1
        name lseq int 0 0
ecom to: 
name status string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b288 big 0 0
    const (64) int 6 0
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b288 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b288 big 0 0
    const (80) int 6 0
ecom: 
= string 10 2
  name status string 0 0
  call string 10 2
    name builtin_unload fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name args list of ref Listnode 0 0
        seq no type 10 1
          name lseq int 0 0
ecom: 
call string 10 2
  name builtin_unload fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name args list of ref Listnode 0 0
      seq no type 10 1
        name lseq int 0 0
ecom to: 
name status string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b288 big 0 0
    const (64) int 6 0
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b288 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b288 big 0 0
    const (80) int 6 0
ecom: 
= string 10 2
  name status string 0 0
  call string 10 2
    name builtin_builtin fn(ctxt: ref Context, args: list of ref Listnode, last: int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name args list of ref Listnode 0 0
        seq no type 10 1
          name lseq int 0 0
ecom: 
call string 10 2
  name builtin_builtin fn(ctxt: ref Context, args: list of ref Listnode, last: int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name args list of ref Listnode 0 0
      seq no type 10 1
        name lseq int 0 0
ecom to: 
name status string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b288 big 0 0
    const (64) int 6 0
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b288 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b288 big 0 0
    const (80) int 6 0
ecom: 
= string 10 2
  name status string 0 0
  call string 10 2
    name builtin_whatis fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name args list of ref Listnode 0 0
        seq no type 10 1
          name lseq int 0 0
ecom: 
call string 10 2
  name builtin_whatis fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name args list of ref Listnode 0 0
      seq no type 10 1
        name lseq int 0 0
ecom to: 
name status string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b288 big 0 0
    const (64) int 6 0
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b288 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b288 big 0 0
    const (80) int 6 0
ecom: 
= string 10 2
  name status string 0 0
  call string 10 2
    name builtin_run fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name args list of ref Listnode 0 0
        seq no type 10 1
          name lseq int 0 0
ecom: 
call string 10 2
  name builtin_run fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name args list of ref Listnode 0 0
      seq no type 10 1
        name lseq int 0 0
ecom to: 
name status string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b288 big 0 0
    const (64) int 6 0
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b288 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b288 big 0 0
    const (80) int 6 0
ecom: 
= string 10 2
  name status string 0 0
  call string 10 2
    name builtin_exit fn(nil: ref Context, nil: list of ref Listnode, nil: int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name args list of ref Listnode 0 0
        seq no type 10 1
          name lseq int 0 0
ecom: 
call string 10 2
  name builtin_exit fn(nil: ref Context, nil: list of ref Listnode, nil: int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name args list of ref Listnode 0 0
      seq no type 10 1
        name lseq int 0 0
ecom to: 
name status string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b288 big 0 0
    const (64) int 6 0
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b288 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b288 big 0 0
    const (80) int 6 0
ecom: 
call no type 10 2
  name export fn(e: ref Localenv) 11 1
  seq no type 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
generate desc for big
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
* ref Localenv 8 0
  + int 15 0
    name .b288 big 0 0
    const (64) int 6 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t287 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t287 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t287 ref Environment 0 0
ecom: 
= string 10 2
  name status string 0 0
  call string 10 2
    name builtin_subsh fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name args list of ref Listnode 0 0
        seq no type 10 1
          name lseq int 0 0
ecom: 
call string 10 2
  name builtin_subsh fn(ctxt: ref Context, args: list of ref Listnode, nil: int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name args list of ref Listnode 0 0
      seq no type 10 1
        name lseq int 0 0
ecom to: 
name status string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b288 big 0 0
    const (64) int 6 0
ecom: 
name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b288 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b288 big 0 0
    const (80) int 6 0
ecom: 
name status string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: runbuiltin
64: argument ctxt ref Context ref 9
72: argument <nil> Sh ref 0
80: argument args list of ref Listnode ref 9
88: argument lseq int ref 8
96: local status string ref 10
104: local .b288 big ref 9
112: local name string ref 2
120: local .t287 ref Listnode ref 1
generate desc for runbuiltin
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap type Sh offset 72 returns 72
descmap args type list of ref Listnode offset 80 (d->offset=80 start=0) returns 80
descmap lseq type int offset 88 (d->offset=88 start=0) returns -1
descmap status type string offset 96 (d->offset=96 start=0) returns 96
descmap .b288 type big offset 104 (d->offset=104 start=0) returns -1
descmap name type string offset 112 (d->offset=112 start=0) returns 112
descmap .t287 type ref Listnode offset 120 (d->offset=120 start=0) returns 120
fncom: sbuiltin_loaded 2 6e8e50
ecom: 
= list of (string, Shellbuiltin) 10 1
  name bl list of (string, Shellbuiltin) 0 0
  * list of (string, Shellbuiltin) 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const bmods (16) int 6 0
ecom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom to: 
name bl list of (string, Shellbuiltin) 0 0
eacom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t289 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t289 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t289 ref Environment 0 0
ecom: 
= (string, Shellbuiltin) 10 2
  tuple (string, Shellbuiltin) 10 1
    seq nothing 10 1
      name name string 0 0
      seq nothing 10 1
        name nil polymorphic type 1 0
  hd (string, Shellbuiltin) 10 1
    name bl list of (string, Shellbuiltin) 0 0
generate desc for (string, Shellbuiltin)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type Shellbuiltin offset 8 (d->offset=8 start=0) returns 8
generate desc for (string, Shellbuiltin)
	desc	$-1,16,"c0"
ecom: 
hd (string, Shellbuiltin) 10 1
  name bl list of (string, Shellbuiltin) 0 0
ecom to: 
name .b290 (string, Shellbuiltin) 0 0
generate desc for (string, Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b290 (string, Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name .b290 (string, Shellbuiltin) 0 0
ecom: 
= Shellbuiltin 10 1
  * Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b290 (string, Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b290 (string, Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= list of ref Listnode 10 1
  name v list of ref Listnode 0 0
  :: list of ref Listnode 10 1
    ref ref Listnode 10 1
      tuple Listnode 10 1
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name name string 0 0
    name v list of ref Listnode 0 0
ecom: 
:: list of ref Listnode 10 1
  ref ref Listnode 10 1
    tuple Listnode 10 1
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          name name string 0 0
  name v list of ref Listnode 0 0
ecom to: 
name v list of ref Listnode 0 0
eacom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name name string 0 0
ecom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name name string 0 0
ecom to: 
name .t289 ref Listnode 0 0
generate desc for Listnode
ecom: 
tuple Listnode 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      name name string 0 0
ecom to: 
* Listnode 8 0
  name .t289 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t289 ref Listnode 0 0
    const (0) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t289 ref Listnode 0 0
    const (8) int 6 0
ecom: 
= ref Listnode 10 1
  name .t289 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t289 ref Listnode 0 0
ecom: 
= string 10 1
  name name string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name name string 0 0
ecom: 
= list of (string, Shellbuiltin) 10 1
  name bl list of (string, Shellbuiltin) 0 0
  tl list of (string, Shellbuiltin) 10 1
    name bl list of (string, Shellbuiltin) 0 0
ecom: 
tl list of (string, Shellbuiltin) 10 1
  name bl list of (string, Shellbuiltin) 0 0
ecom to: 
name bl list of (string, Shellbuiltin) 0 0
ecom: 
name v list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
fn: sbuiltin_loaded
64: argument ctxt ref Context ref 1
72: argument <nil> list of ref Listnode ref 0
80: local bl list of (string, Shellbuiltin) ref 5
88: local v list of ref Listnode ref 3
96: local name string ref 2
104: local .t289 ref Environment ref 1
112: local .b290 (string, Shellbuiltin) ref 1
generate desc for sbuiltin_loaded
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap type list of ref Listnode offset 72 returns 72
descmap bl type list of (string, Shellbuiltin) offset 80 (d->offset=80 start=0) returns 80
descmap v type list of ref Listnode offset 88 (d->offset=88 start=0) returns 88
descmap name type string offset 96 (d->offset=96 start=0) returns 96
descmap .t289 type ref Environment offset 104 (d->offset=104 start=0) returns 104
descmap adt offset 112
descmap offset 112
descmap t0 type string offset 112 (d->offset=0 start=112) returns 112
descmap t1 type Shellbuiltin offset 120 (d->offset=8 start=112) returns 120
descmap .b290 type (string, Shellbuiltin) offset 112 (d->offset=112 start=0) returns 120
fncom: sbuiltin_quote 3 6e8f10
fncom: sbuiltin_builtin 2 6e8fd0
eacom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t291 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t291 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t291 list of ref Listnode 0 0
ecom: 
call no type 10 2
  name builtinusage fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const builtin command [args ...] string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b292 big 0 0
    const (64) int 6 0
ecom: 
const builtin command [args ...] string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b292 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name name string 0 0
  * string 10 1
    + int 10 1
      hd ref Listnode 10 1
        tl list of ref Listnode 10 1
          name args list of ref Listnode 0 0
      const word (8) int 6 0
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      tl list of ref Listnode 10 1
        name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
name name string 0 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      tl list of ref Listnode 10 1
        name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom to: 
name .t291 ref Listnode 0 0
eacom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t291 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t291 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t291 ref Listnode 0 0
ecom: 
= (int, list of Shellbuiltin) 10 2
  tuple (int, list of Shellbuiltin) 10 1
    seq nothing 10 1
      name nil polymorphic type 1 0
      seq nothing 10 1
        name mods list of Shellbuiltin 0 0
  call (int, list of Shellbuiltin) 10 2
    name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
    seq no type 10 2
      * ref Builtins 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
      seq no type 10 1
        name name string 0 0
generate desc for (int, list of Shellbuiltin)
ecom: 
call (int, list of Shellbuiltin) 10 2
  name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
  seq no type 10 2
    * ref Builtins 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
    seq no type 10 1
      name name string 0 0
ecom to: 
name .b293 (int, list of Shellbuiltin) 0 0
generate desc for big
ecom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b292 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t291 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t291 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t291 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b292 big 0 0
    const (72) int 6 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b293 (int, list of Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b293 (int, list of Shellbuiltin) 0 0
    const t1 (8) int 6 0
eacom: 
hd Shellbuiltin 10 1
  name mods list of Shellbuiltin 0 0
ecom: 
hd Shellbuiltin 10 1
  name mods list of Shellbuiltin 0 0
ecom to: 
name .t291 Shellbuiltin 0 0
ecom: 
= Shellbuiltin 10 1
  name .t291 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t291 Shellbuiltin 0 0
ecom: 
call list of ref Listnode 10 2
  -> fn(c: ref Context, sh: Sh, cmd: list of ref Listnode): list of ref Listnode 12 2
    hd Shellbuiltin 10 1
      name mods list of Shellbuiltin 0 0
    name runsbuiltin nothing 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name myself Sh 1 0
      seq no type 10 1
        tl list of ref Listnode 10 1
          name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
generate desc for big
eacom: 
hd Shellbuiltin 10 1
  name mods list of Shellbuiltin 0 0
ecom: 
hd Shellbuiltin 10 1
  name mods list of Shellbuiltin 0 0
ecom to: 
name .t291 Shellbuiltin 0 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b292 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b292 big 0 0
    const (72) int 6 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b292 big 0 0
    const (80) int 6 0
ecom: 
= Shellbuiltin 10 1
  name .t291 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t291 Shellbuiltin 0 0
ecom: 
= list of Shellbuiltin 10 1
  name mods list of Shellbuiltin 0 0
  tl list of Shellbuiltin 10 1
    name mods list of Shellbuiltin 0 0
ecom: 
tl list of Shellbuiltin 10 1
  name mods list of Shellbuiltin 0 0
ecom to: 
name mods list of Shellbuiltin 0 0
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      const builtin not found string 1 0
      seq no type 10 2
        call string 10 2
          -> fn(s: string, nil: string, *): string 12 1
            name sys Sys 1 0
            name sprint nothing 11 1
          seq no type 10 1
            const sh: builtin %s not found string 1 0
            seq no type 10 1
              name name string 0 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, nil: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const sh: builtin %s not found string 1 0
    seq no type 10 1
      name name string 0 0
ecom to: 
name .t291 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
generate desc for big
ecom: 
const sh: builtin %s not found string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b294 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b294 big 0 0
    const (72) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b292 big 0 0
    const (64) int 6 0
ecom: 
const builtin not found string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b292 big 0 0
    const (72) int 6 0
ecom: 
name .t291 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b292 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t291 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t291 string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
fn: sbuiltin_builtin
64: argument ctxt ref Context ref 4
72: argument args list of ref Listnode ref 4
80: local mods list of Shellbuiltin ref 6
88: local .b292 big ref 4
96: local name string ref 3
104: local .b294 big ref 1
112: local .t291 list of ref Listnode ref 1
120: local .b293 (int, list of Shellbuiltin) ref 1
generate desc for sbuiltin_builtin
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap args type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap mods type list of Shellbuiltin offset 80 (d->offset=80 start=0) returns 80
descmap .b292 type big offset 88 (d->offset=88 start=0) returns -1
descmap name type string offset 96 (d->offset=96 start=0) returns 96
descmap .b294 type big offset 104 (d->offset=104 start=0) returns -1
descmap .t291 type list of ref Listnode offset 112 (d->offset=112 start=0) returns 112
descmap adt offset 120
descmap offset 120
descmap t0 type int offset 120 (d->offset=0 start=120) returns -1
descmap t1 type list of Shellbuiltin offset 128 (d->offset=8 start=120) returns 128
descmap .b293 type (int, list of Shellbuiltin) offset 120 (d->offset=120 start=0) returns 128
fncom: sbuiltin_unquote 2 6e9090
ecom: 
= list of ref Listnode 10 1
  name argv list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name argv list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom to: 
name argv list of ref Listnode 0 0
eacom: 
tl list of ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom to: 
name .t295 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t295 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t295 list of ref Listnode 0 0
ecom: 
call no type 10 2
  name builtinusage fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const unquote arg string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b296 big 0 0
    const (64) int 6 0
ecom: 
const unquote arg string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b296 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name arg string 0 0
  * string 10 1
    + int 10 1
      hd ref Listnode 10 1
        name argv list of ref Listnode 0 0
      const word (8) int 6 0
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name argv list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
name arg string 0 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name argv list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom to: 
name .t295 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t295 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t295 ref Listnode 0 0
eacom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name argv list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom to: 
name .t295 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t295 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t295 ref Listnode 0 0
ecom: 
= string 10 2
  name arg string 0 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 10 1
        hd ref Listnode 10 1
          name argv list of ref Listnode 0 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 10 1
      hd ref Listnode 10 1
        name argv list of ref Listnode 0 0
ecom to: 
name arg string 0 0
generate desc for big
ecom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name argv list of ref Listnode 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b296 big 0 0
    const (64) int 6 0
eacom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name argv list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom to: 
name .t295 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t295 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t295 ref Listnode 0 0
ecom: 
call list of ref Listnode 10 2
  name stringlist2list fn(sl: list of string): list of ref Listnode 11 1
  seq no type 10 2
    call list of string 10 2
      -> fn(args: string): list of string 12 1
        name str String 1 0
        name unquoted nothing 11 1
      seq no type 10 1
        name arg string 0 0
ecom to: 
* list of ref Listnode 8 0
  name .ret int 0 0
generate desc for big
ecom: 
call list of string 10 2
  -> fn(args: string): list of string 12 1
    name str String 1 0
    name unquoted nothing 11 1
  seq no type 10 1
    name arg string 0 0
ecom to: 
name .t295 list of string 0 0
generate desc for big
ecom: 
name arg string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b297 big 0 0
    const (64) int 6 0
ecom: 
name .t295 list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b296 big 0 0
    const (64) int 6 0
ecom: 
= list of string 10 1
  name .t295 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t295 list of string 0 0
fn: sbuiltin_unquote
64: argument ctxt ref Context ref 1
72: argument argv list of ref Listnode ref 7
80: local arg string ref 4
88: local .b296 big ref 3
96: local .b297 big ref 1
104: local .t295 list of ref Listnode ref 1
generate desc for sbuiltin_unquote
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap argv type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap arg type string offset 80 (d->offset=80 start=0) returns 80
descmap .b296 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b297 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t295 type list of ref Listnode offset 104 (d->offset=104 start=0) returns 104
fncom: getself 2 4c6dc8
ecom: 
name myselfbuiltin Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 8 0
  name .ret int 0 0
fn: getself
generate desc for getself
descmap offset 0
fncom: builtinusage 9 6e9150
ecom: 
call no type 10 2
  name fail fn(ctxt: self ref Context, ename: string, err: string) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const usage string 1 0
      seq no type 10 1
        + string 10 1
          const sh: usage:  string 1 0
          name s string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b298 big 0 0
    const (64) int 6 0
ecom: 
const usage string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b298 big 0 0
    const (72) int 6 0
ecom: 
+ string 10 1
  const sh: usage:  string 1 0
  name s string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b298 big 0 0
    const (80) int 6 0
fn: builtinusage
64: argument ctxt ref Context ref 1
72: argument s string ref 1
80: local .b298 big ref 1
generate desc for builtinusage
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap s type string offset 72 (d->offset=72 start=0) returns 72
descmap .b298 type big offset 80 (d->offset=80 start=0) returns -1
fncom: builtin_exit 2 6e9210
fn: builtin_exit
64: argument <nil> ref Context ref 0
72: argument <nil> list of ref Listnode ref 0
80: argument <nil> int ref 0
generate desc for builtin_exit
descmap offset 0
descmap type ref Context offset 64 returns 64
descmap type list of ref Listnode offset 72 returns 72
descmap type int offset 80 returns -1
fncom: builtin_subsh 2 6e92d0
eacom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t299 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t299 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t299 list of ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
= chan of (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
  chan chan of (int, ref Expropagate) 10 1
    const (0) int 6 0
ecom: 
chan chan of (int, ref Expropagate) 10 1
  const (0) int 6 0
ecom to: 
name startchan chan of (int, ref Expropagate) 0 0
generate desc for (int, ref Expropagate)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap t1 type ref Expropagate offset 8 (d->offset=8 start=0) returns 8
generate desc for (int, ref Expropagate)
	desc	$-1,16,"40"
ecom: 
spawn nothing 10 2
  call no type 10 2
    name runasync fn(ctxt: ref Context, copyenv: int, argv: list of ref Listnode, redirs: ref Redirlist, startchan: chan of (int, ref Expropagate)) 11 1
    seq no type 10 2
      name ctxt ref Context 0 0
      seq no type 10 2
        const (0) int 6 0
        seq no type 10 2
          tl list of ref Listnode 10 1
            name args list of ref Listnode 0 0
          seq no type 10 2
            ref ref Redirlist 10 1
              name Redirlist Redirlist 10 1
            seq no type 10 1
              name startchan chan of (int, ref Expropagate) 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b300 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b300 big 0 0
    const (72) int 6 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b300 big 0 0
    const (80) int 6 0
ecom: 
ref ref Redirlist 10 1
  name Redirlist Redirlist 10 1
ecom to: 
* ref Redirlist 8 0
  + int 15 0
    name .b300 big 0 0
    const (88) int 6 0
generate desc for Redirlist
ecom: 
name startchan chan of (int, ref Expropagate) 0 0
ecom to: 
* chan of (int, ref Expropagate) 8 0
  + int 15 0
    name .b300 big 0 0
    const (96) int 6 0
ecom: 
= (int, ref Expropagate) 10 2
  tuple (int, ref Expropagate) 10 1
    seq nothing 10 1
      name exepid int 0 0
      seq nothing 10 1
        name exprop ref Expropagate 0 0
  <- (int, ref Expropagate) 10 1
    name startchan chan of (int, ref Expropagate) 0 0
ecom: 
<- (int, ref Expropagate) 10 1
  name startchan chan of (int, ref Expropagate) 0 0
ecom to: 
name exepid (int, ref Expropagate) 0 0
ecom: 
= string 10 2
  name status string 0 0
  call string 10 2
    name waitfor fn(ctxt: ref Context, pids: list of int): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        :: list of int 10 1
          name exepid int 0 0
          name nil polymorphic type 1 0
ecom: 
call string 10 2
  name waitfor fn(ctxt: ref Context, pids: list of int): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      :: list of int 10 1
        name exepid int 0 0
        name nil polymorphic type 1 0
ecom to: 
name status string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b300 big 0 0
    const (64) int 6 0
ecom: 
:: list of int 10 1
  name exepid int 0 0
  name nil polymorphic type 1 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b300 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t299 list of int 0 0
ecom: 
= list of int 10 1
  name .t299 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t299 list of int 0 0
ecom: 
raise nothing 10 1
  * string 8 0
    name exprop ref Expropagate 0 0
ecom: 
name status string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: builtin_subsh
64: argument ctxt ref Context ref 2
72: argument args list of ref Listnode ref 2
80: argument <nil> int ref 0
88: local exepid int ref 2
96: local exprop ref Expropagate ref 3
104: local startchan chan of (int, ref Expropagate) ref 3
112: local .b300 big ref 2
120: local status string ref 2
128: local .t299 list of ref Listnode ref 1
generate desc for builtin_subsh
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap args type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap type int offset 80 returns -1
descmap exepid type int offset 88 (d->offset=88 start=0) returns -1
descmap exprop type ref Expropagate offset 96 (d->offset=96 start=0) returns 96
descmap startchan type chan of (int, ref Expropagate) offset 104 (d->offset=104 start=0) returns 104
descmap .b300 type big offset 112 (d->offset=112 start=0) returns -1
descmap status type string offset 120 (d->offset=120 start=0) returns 120
descmap .t299 type list of ref Listnode offset 128 (d->offset=128 start=0) returns 128
fncom: builtin_loaded 2 6e9390
ecom: 
= ref Builtins 10 1
  name b ref Builtins 0 0
  * ref Builtins 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const builtins (8) int 6 0
ecom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const builtins (8) int 6 0
ecom to: 
name b ref Builtins 0 0
eacom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const builtins (8) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t301 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t301 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t301 ref Environment 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
ecom: 
= (string, list of Shellbuiltin) 10 2
  tuple (string, list of Shellbuiltin) 10 1
    seq nothing 10 1
      name name string 0 0
      seq nothing 10 1
        name bmods list of Shellbuiltin 0 0
  * (string, list of Shellbuiltin) 10 1
    indx big 10 1
      * array of (string, list of Shellbuiltin) 8 0
        name b ref Builtins 0 0
      name i int 0 0
ecom: 
* (string, list of Shellbuiltin) 10 1
  indx big 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    name i int 0 0
ecom to: 
name name (string, list of Shellbuiltin) 0 0
eacom: 
* (string, list of Shellbuiltin) 10 1
  indx big 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  name i int 0 0
ecom to: 
name .b302 big 0 0
generate desc for (string, list of Shellbuiltin)
ecom: 
used int 10 2
  call int 10 2
    -> fn(s: string, nil: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name print nothing 11 1
    seq no type 10 2
      const %s	%s
 string 1 0
      seq no type 10 2
        name name string 0 0
        seq no type 10 2
          call string 10 2
            name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
            seq no type 10 1
              name ctxt ref Context 0 0
              seq no type 10 1
                hd Shellbuiltin 10 1
                  name bmods list of Shellbuiltin 0 0
ecom: 
call int 10 2
  -> fn(s: string, nil: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name print nothing 11 1
  seq no type 10 2
    const %s	%s
 string 1 0
    seq no type 10 2
      name name string 0 0
      seq no type 10 2
        call string 10 2
          name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
          seq no type 10 1
            name ctxt ref Context 0 0
            seq no type 10 1
              hd Shellbuiltin 10 1
                name bmods list of Shellbuiltin 0 0
ecom to: 
name .t303 int 0 0
generate desc for Sys->print
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
descmap type string offset 80 returns 80
generate desc for big
ecom: 
call string 10 2
  name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      hd Shellbuiltin 10 1
        name bmods list of Shellbuiltin 0 0
ecom to: 
name .t301 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b304 big 0 0
    const (64) int 6 0
ecom: 
hd Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b304 big 0 0
    const (72) int 6 0
ecom: 
const %s	%s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b302 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b302 big 0 0
    const (72) int 6 0
ecom: 
name .t301 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b302 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t301 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t301 string 0 0
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name name (string, list of Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name name (string, list of Shellbuiltin) 0 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name name (string, list of Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name name (string, list of Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= list of Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
name bmods list of Shellbuiltin 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
= ref Builtins 10 1
  name b ref Builtins 0 0
  * ref Builtins 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
ecom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
ecom to: 
name b ref Builtins 0 0
eacom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t301 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t301 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t301 ref Environment 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
ecom: 
= (string, list of Shellbuiltin) 10 2
  tuple (string, list of Shellbuiltin) 10 1
    seq nothing 10 1
      name name string 0 0
      seq nothing 10 1
        name bmods list of Shellbuiltin 0 0
  * (string, list of Shellbuiltin) 10 1
    indx big 10 1
      * array of (string, list of Shellbuiltin) 8 0
        name b ref Builtins 0 0
      name i int 0 0
ecom: 
* (string, list of Shellbuiltin) 10 1
  indx big 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    name i int 0 0
ecom to: 
name name (string, list of Shellbuiltin) 0 0
eacom: 
* (string, list of Shellbuiltin) 10 1
  indx big 10 1
    * array of (string, list of Shellbuiltin) 8 0
      name b ref Builtins 0 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  * array of (string, list of Shellbuiltin) 8 0
    name b ref Builtins 0 0
  name i int 0 0
ecom to: 
name .b304 big 0 0
generate desc for (string, list of Shellbuiltin)
ecom: 
used int 10 2
  call int 10 2
    -> fn(s: string, nil: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name print nothing 11 1
    seq no type 10 2
      const ${%s}	%s
 string 1 0
      seq no type 10 2
        name name string 0 0
        seq no type 10 2
          call string 10 2
            name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
            seq no type 10 1
              name ctxt ref Context 0 0
              seq no type 10 1
                hd Shellbuiltin 10 1
                  name bmods list of Shellbuiltin 0 0
ecom: 
call int 10 2
  -> fn(s: string, nil: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name print nothing 11 1
  seq no type 10 2
    const ${%s}	%s
 string 1 0
    seq no type 10 2
      name name string 0 0
      seq no type 10 2
        call string 10 2
          name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
          seq no type 10 1
            name ctxt ref Context 0 0
            seq no type 10 1
              hd Shellbuiltin 10 1
                name bmods list of Shellbuiltin 0 0
ecom to: 
name .t303 int 0 0
generate desc for Sys->print
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
descmap type string offset 80 returns 80
generate desc for big
ecom: 
call string 10 2
  name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      hd Shellbuiltin 10 1
        name bmods list of Shellbuiltin 0 0
ecom to: 
name .t301 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b302 big 0 0
    const (64) int 6 0
ecom: 
hd Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b302 big 0 0
    const (72) int 6 0
ecom: 
const ${%s}	%s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b304 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b304 big 0 0
    const (72) int 6 0
ecom: 
name .t301 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b304 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t301 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t301 string 0 0
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name name (string, list of Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name name (string, list of Shellbuiltin) 0 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name name (string, list of Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name name (string, list of Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= list of Shellbuiltin 10 1
  name bmods list of Shellbuiltin 0 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
name bmods list of Shellbuiltin 0 0
ecom: 
++ int 10 1
  name i int 0 0
  const (1) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
fn: builtin_loaded
64: argument ctxt ref Context ref 4
72: argument <nil> list of ref Listnode ref 0
80: argument <nil> int ref 0
84: local i int ref 8
88: local .t303 int ref 1
96: local b ref Builtins ref 6
104: local .b302 big ref 3
112: local .b304 big ref 3
120: local name string ref 2
128: local bmods list of Shellbuiltin ref 2
136: local name string ref 2
144: local bmods list of Shellbuiltin ref 2
152: local .t301 ref Environment ref 1
generate desc for builtin_loaded
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap type list of ref Listnode offset 72 returns 72
descmap type int offset 80 returns -1
descmap i type int offset 84 (d->offset=84 start=0) returns -1
descmap .t303 type int offset 88 (d->offset=88 start=0) returns -1
descmap b type ref Builtins offset 96 (d->offset=96 start=0) returns 96
descmap .b302 type big offset 104 (d->offset=104 start=0) returns -1
descmap .b304 type big offset 112 (d->offset=112 start=0) returns -1
descmap name type string offset 120 (d->offset=120 start=0) returns 120
descmap bmods type list of Shellbuiltin offset 128 (d->offset=128 start=0) returns 128
descmap name type string offset 136 (d->offset=136 start=0) returns 136
descmap bmods type list of Shellbuiltin offset 144 (d->offset=144 start=0) returns 144
descmap .t301 type ref Environment offset 152 (d->offset=152 start=0) returns 152
fncom: builtin_load 2 6e9450
eacom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t305 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t305 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t305 list of ref Listnode 0 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      tl list of ref Listnode 10 1
        name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom to: 
name .t305 ref Listnode 0 0
eacom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t305 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t305 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t305 ref Listnode 0 0
ecom: 
call no type 10 2
  name builtinusage fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const load path... string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b306 big 0 0
    const (64) int 6 0
ecom: 
const load path... string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b306 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 1
  name args list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name args list of ref Listnode 0 0
ecom: 
call no type 10 2
  name builtinusage fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const load path... string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b306 big 0 0
    const (64) int 6 0
ecom: 
const load path... string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b306 big 0 0
    const (72) int 6 0
ecom: 
= string 10 2
  name s string 0 0
  call string 10 2
    name loadmodule fn(ctxt: ref Context, name: string): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        * string 10 1
          + int 10 1
            hd ref Listnode 10 1
              name args list of ref Listnode 0 0
            const word (8) int 6 0
ecom: 
call string 10 2
  name loadmodule fn(ctxt: ref Context, name: string): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * string 10 1
        + int 10 1
          hd ref Listnode 10 1
            name args list of ref Listnode 0 0
          const word (8) int 6 0
ecom to: 
name s string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b306 big 0 0
    const (64) int 6 0
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b306 big 0 0
    const (72) int 6 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t305 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t305 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t305 ref Listnode 0 0
ecom: 
raise nothing 10 1
  + string 10 1
    const fail: string 1 0
    name s string 0 0
eacom: 
+ string 10 1
  const fail: string 1 0
  name s string 0 0
ecom: 
+ string 10 1
  const fail: string 1 0
  name s string 0 0
ecom to: 
name .t305 string 0 0
ecom: 
= string 10 1
  name .t305 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t305 string 0 0
ecom: 
= string 10 1
  name s string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name s string 0 0
ecom: 
= list of ref Listnode 10 1
  name args list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name args list of ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
fn: builtin_load
64: argument ctxt ref Context ref 3
72: argument args list of ref Listnode ref 9
80: argument <nil> int ref 0
88: local .b306 big ref 3
96: local s string ref 3
104: local .t305 list of ref Listnode ref 1
generate desc for builtin_load
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap args type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap type int offset 80 returns -1
descmap .b306 type big offset 88 (d->offset=88 start=0) returns -1
descmap s type string offset 96 (d->offset=96 start=0) returns 96
descmap .t305 type list of ref Listnode offset 104 (d->offset=104 start=0) returns 104
fncom: builtin_unload 2 6e9510
eacom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t307 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t307 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t307 list of ref Listnode 0 0
ecom: 
call no type 10 2
  name builtinusage fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const unload path... string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b308 big 0 0
    const (64) int 6 0
ecom: 
const unload path... string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b308 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name status string 0 0
  const  string 1 0
ecom: 
const  string 1 0
ecom to: 
name status string 0 0
ecom: 
= list of ref Listnode 10 1
  name args list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name args list of ref Listnode 0 0
eacom: 
= string 10 2
  name s string 0 0
  call string 10 2
    name unloadmodule fn(ctxt: ref Context, name: string): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        * string 10 1
          + int 10 1
            hd ref Listnode 10 1
              name args list of ref Listnode 0 0
            const word (8) int 6 0
ecom: 
= string 10 2
  name s string 0 0
  call string 10 2
    name unloadmodule fn(ctxt: ref Context, name: string): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        * string 10 1
          + int 10 1
            hd ref Listnode 10 1
              name args list of ref Listnode 0 0
            const word (8) int 6 0
ecom to: 
name .t307 string 0 0
ecom: 
call string 10 2
  name unloadmodule fn(ctxt: ref Context, name: string): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      * string 10 1
        + int 10 1
          hd ref Listnode 10 1
            name args list of ref Listnode 0 0
          const word (8) int 6 0
ecom to: 
name s string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b308 big 0 0
    const (64) int 6 0
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b308 big 0 0
    const (72) int 6 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t309 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t309 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t309 ref Listnode 0 0
ecom: 
= string 10 1
  name .t307 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t307 string 0 0
ecom: 
= string 10 1
  name status string 0 0
  name s string 0 0
ecom: 
name s string 0 0
ecom to: 
name status string 0 0
ecom: 
= list of ref Listnode 10 1
  name args list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name args list of ref Listnode 0 0
ecom: 
name status string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: builtin_unload
64: argument ctxt ref Context ref 2
72: argument args list of ref Listnode ref 7
80: argument <nil> int ref 0
88: local status string ref 3
96: local .b308 big ref 2
104: local s string ref 2
112: local .t307 list of ref Listnode ref 1
120: local .t309 ref Listnode ref 1
generate desc for builtin_unload
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap args type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap type int offset 80 returns -1
descmap status type string offset 88 (d->offset=88 start=0) returns 88
descmap .b308 type big offset 96 (d->offset=96 start=0) returns -1
descmap s type string offset 104 (d->offset=104 start=0) returns 104
descmap .t307 type list of ref Listnode offset 112 (d->offset=112 start=0) returns 112
descmap .t309 type ref Listnode offset 120 (d->offset=120 start=0) returns 120
fncom: builtin_run 2 6e95d0
eacom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t310 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t310 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t310 list of ref Listnode 0 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      tl list of ref Listnode 10 1
        name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom to: 
name .t310 ref Listnode 0 0
eacom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t310 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t310 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t310 ref Listnode 0 0
ecom: 
call no type 10 2
  name builtinusage fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const run path string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b311 big 0 0
    const (64) int 6 0
ecom: 
const run path string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b311 big 0 0
    const (72) int 6 0
ecom: 
call no type 10 2
  name push fn(ctxt: self ref Context) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b311 big 0 0
    const (64) int 6 0
ecom: 
used int 10 2
  call int 10 2
    name setoptions fn(ctxt: self ref Context, flags: int, on: int): int 11 1
    seq nothing 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        const INTERACTIVE (1) int 6 0
        seq no type 10 1
          const (0) int 6 0
ecom: 
call int 10 2
  name setoptions fn(ctxt: self ref Context, flags: int, on: int): int 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const INTERACTIVE (1) int 6 0
      seq no type 10 1
        const (0) int 6 0
ecom to: 
name .t312 int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b311 big 0 0
    const (64) int 6 0
ecom: 
const INTERACTIVE (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b311 big 0 0
    const (72) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b311 big 0 0
    const (76) int 6 0
ecom: 
call no type 10 2
  name runscript fn(ctxt: ref Context, path: string, args: list of ref Listnode, reporterr: int) 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      * string 10 1
        + int 10 1
          hd ref Listnode 10 1
            tl list of ref Listnode 10 1
              name args list of ref Listnode 0 0
          const word (8) int 6 0
      seq no type 10 2
        tl list of ref Listnode 10 1
          tl list of ref Listnode 10 1
            name args list of ref Listnode 0 0
        seq no type 10 1
          const (1) int 6 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b311 big 0 0
    const (64) int 6 0
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      tl list of ref Listnode 10 1
        name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b311 big 0 0
    const (72) int 6 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      tl list of ref Listnode 10 1
        name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom to: 
name .t310 ref Listnode 0 0
eacom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t310 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t310 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t310 ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b311 big 0 0
    const (80) int 6 0
eacom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t310 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t310 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t310 list of ref Listnode 0 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b311 big 0 0
    const (88) int 6 0
ecom: 
call no type 10 2
  name pop fn(ctxt: self ref Context) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b311 big 0 0
    const (64) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
call no type 10 2
  name pop fn(ctxt: self ref Context) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b311 big 0 0
    const (64) int 6 0
ecom: 
call string 10 2
  name failurestatus fn(e: string): string 11 1
  seq no type 10 1
    name e string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name e string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b311 big 0 0
    const (64) int 6 0
fn: builtin_run
64: argument ctxt ref Context ref 7
72: argument args list of ref Listnode ref 4
80: argument <nil> int ref 0
84: local e ref exception ref 2
88: local .t312 int ref 1
96: local .b311 big ref 7
104: local .t310 list of ref Listnode ref 1
generate desc for builtin_run
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap args type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap type int offset 80 returns -1
descmap e type ref exception offset 84 (d->offset=84 start=0) returns 88
descmap .t312 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b311 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t310 type list of ref Listnode offset 104 (d->offset=104 start=0) returns 104
fncom: builtin_whatis 2 6e9690
eacom: 
len int 10 1
  name args list of ref Listnode 0 0
ecom: 
len int 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t313 int 0 0
ecom: 
call no type 10 2
  name builtinusage fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const whatis name ... string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b314 big 0 0
    const (64) int 6 0
ecom: 
const whatis name ... string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b314 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name err string 0 0
  const  string 1 0
ecom: 
const  string 1 0
ecom to: 
name err string 0 0
ecom: 
= list of ref Listnode 10 1
  name args list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name args list of ref Listnode 0 0
eacom: 
= string 10 2
  name e string 0 0
  call string 10 2
    name whatisit fn(ctxt: ref Context, el: ref Listnode): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        hd ref Listnode 10 1
          name args list of ref Listnode 0 0
ecom: 
= string 10 2
  name e string 0 0
  call string 10 2
    name whatisit fn(ctxt: ref Context, el: ref Listnode): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        hd ref Listnode 10 1
          name args list of ref Listnode 0 0
ecom to: 
name .t315 string 0 0
ecom: 
call string 10 2
  name whatisit fn(ctxt: ref Context, el: ref Listnode): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      hd ref Listnode 10 1
        name args list of ref Listnode 0 0
ecom to: 
name e string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b314 big 0 0
    const (64) int 6 0
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
* ref Listnode 8 0
  + int 15 0
    name .b314 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t315 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t315 string 0 0
ecom: 
= string 10 1
  name err string 0 0
  name e string 0 0
ecom: 
name e string 0 0
ecom to: 
name err string 0 0
ecom: 
= list of ref Listnode 10 1
  name args list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name args list of ref Listnode 0 0
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: builtin_whatis
64: argument ctxt ref Context ref 2
72: argument args list of ref Listnode ref 7
80: argument <nil> int ref 0
84: local .t313 int ref 1
88: local err string ref 3
96: local .b314 big ref 2
104: local e string ref 2
112: local .t315 string ref 1
generate desc for builtin_whatis
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap args type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap type int offset 80 returns -1
descmap .t313 type int offset 84 (d->offset=84 start=0) returns -1
descmap err type string offset 88 (d->offset=88 start=0) returns 88
descmap .b314 type big offset 96 (d->offset=96 start=0) returns -1
descmap e type string offset 104 (d->offset=104 start=0) returns 104
descmap .t315 type string offset 112 (d->offset=112 start=0) returns 112
fncom: whatisit 2 6e9750
ecom: 
used int 10 2
  call int 10 2
    -> fn(s: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name print nothing 11 1
    seq no type 10 2
      const %s
 string 1 0
      seq no type 10 2
        call string 10 2
          name cmd2string fn(n: ref Node): string 11 1
          seq no type 10 1
            * ref Node 8 0
              name el ref Listnode 0 0
ecom: 
call int 10 2
  -> fn(s: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name print nothing 11 1
  seq no type 10 2
    const %s
 string 1 0
    seq no type 10 2
      call string 10 2
        name cmd2string fn(n: ref Node): string 11 1
        seq no type 10 1
          * ref Node 8 0
            name el ref Listnode 0 0
ecom to: 
name .t316 int 0 0
generate desc for Sys->print
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
generate desc for big
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      name el ref Listnode 0 0
ecom to: 
name .t318 string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  name el ref Listnode 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
ecom: 
const %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b317 big 0 0
    const (64) int 6 0
ecom: 
name .t318 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b317 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t318 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t318 string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
= int 10 1
  name found int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name found int 0 0
ecom: 
= string 10 1
  name name string 0 0
  * string 8 0
    + int 15 1
      name el ref Listnode 0 0
      const word (8) int 6 0
ecom: 
* string 8 0
  + int 15 1
    name el ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
name name string 0 0
eacom: 
inds int 10 1
  name name string 0 0
  const (0) int 6 0
ecom: 
inds int 10 1
  name name string 0 0
  const (0) int 6 0
ecom to: 
name .t316 int 0 0
ecom: 
used int 10 2
  call int 10 2
    -> fn(s: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name print nothing 11 1
    seq no type 10 1
      const %s
 string 1 0
      seq no type 10 1
        name name string 0 0
ecom: 
call int 10 2
  -> fn(s: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name print nothing 11 1
  seq no type 10 1
    const %s
 string 1 0
    seq no type 10 1
      name name string 0 0
ecom to: 
name .t316 int 0 0
generate desc for Sys->print
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
generate desc for big
ecom: 
const %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
= list of ref Listnode 10 2
  name val list of ref Listnode 0 0
  call list of ref Listnode 10 2
    name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
    seq nothing 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name name string 0 0
ecom: 
call list of ref Listnode 10 2
  name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name name string 0 0
ecom to: 
name val list of ref Listnode 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (72) int 6 0
ecom: 
++ int 10 1
  name found int 0 0
  const (1) int 6 0
ecom: 
+= string 10 3
  name w string 0 0
  call string 10 3
    -> fn(s: string, nil: string, nil: string, *): string 12 1
      name sys Sys 1 0
      name sprint nothing 11 1
    seq no type 10 3
      const %s=%s
 string 1 0
      seq no type 10 3
        call string 10 2
          name quote fn(s: string, glob: int): string 11 1
          seq no type 10 1
            name name string 0 0
            seq no type 10 1
              const (0) int 6 0
        seq no type 10 2
          call string 10 2
            name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
            seq no type 10 1
              name val list of ref Listnode 0 0
              seq no type 10 1
                const (0) int 6 0
eacom: 
call string 10 3
  -> fn(s: string, nil: string, nil: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 3
    const %s=%s
 string 1 0
    seq no type 10 3
      call string 10 2
        name quote fn(s: string, glob: int): string 11 1
        seq no type 10 1
          name name string 0 0
          seq no type 10 1
            const (0) int 6 0
      seq no type 10 2
        call string 10 2
          name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
          seq no type 10 1
            name val list of ref Listnode 0 0
            seq no type 10 1
              const (0) int 6 0
ecom: 
call string 10 3
  -> fn(s: string, nil: string, nil: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 3
    const %s=%s
 string 1 0
    seq no type 10 3
      call string 10 2
        name quote fn(s: string, glob: int): string 11 1
        seq no type 10 1
          name name string 0 0
          seq no type 10 1
            const (0) int 6 0
      seq no type 10 2
        call string 10 2
          name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
          seq no type 10 1
            name val list of ref Listnode 0 0
            seq no type 10 1
              const (0) int 6 0
ecom to: 
name .t318 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
descmap type string offset 80 returns 80
generate desc for big
ecom: 
call string 10 2
  name quote fn(s: string, glob: int): string 11 1
  seq no type 10 1
    name name string 0 0
    seq no type 10 1
      const (0) int 6 0
ecom to: 
name .t320 string 0 0
generate desc for big
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b317 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b317 big 0 0
    const (72) int 6 0
ecom: 
call string 10 2
  name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
  seq no type 10 1
    name val list of ref Listnode 0 0
    seq no type 10 1
      const (0) int 6 0
ecom to: 
name .t321 string 0 0
generate desc for big
ecom: 
name val list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b317 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b317 big 0 0
    const (72) int 6 0
ecom: 
const %s=%s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
ecom: 
name .t320 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t320 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t320 string 0 0
ecom: 
name .t321 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t321 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 1
  name .t318 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t318 string 0 0
ecom: 
= (int, list of Shellbuiltin) 10 2
  tuple (int, list of Shellbuiltin) 10 1
    seq nothing 10 1
      name nil polymorphic type 1 0
      seq nothing 10 1
        name mods list of Shellbuiltin 0 0
  call (int, list of Shellbuiltin) 10 2
    name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
    seq no type 10 2
      * ref Builtins 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
      seq no type 10 1
        name name string 0 0
generate desc for (int, list of Shellbuiltin)
ecom: 
call (int, list of Shellbuiltin) 10 2
  name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
  seq no type 10 2
    * ref Builtins 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
    seq no type 10 1
      name name string 0 0
ecom to: 
name .b322 (int, list of Shellbuiltin) 0 0
generate desc for big
ecom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t321 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t321 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t321 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (72) int 6 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b322 (int, list of Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b322 (int, list of Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= Shellbuiltin 10 1
  name mod Shellbuiltin 0 0
  hd Shellbuiltin 10 1
    name mods list of Shellbuiltin 0 0
ecom: 
hd Shellbuiltin 10 1
  name mods list of Shellbuiltin 0 0
ecom to: 
name mod Shellbuiltin 0 0
ecom: 
+= string 10 1
  name w string 0 0
  + string 10 1
    + string 10 1
      const ${builtin  string 1 0
      name name string 0 0
    const }
 string 1 0
eacom: 
+ string 10 1
  + string 10 1
    const ${builtin  string 1 0
    name name string 0 0
  const }
 string 1 0
ecom: 
+ string 10 1
  + string 10 1
    const ${builtin  string 1 0
    name name string 0 0
  const }
 string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
+ string 10 1
  const ${builtin  string 1 0
  name name string 0 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 1
  name .t321 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 2
  name mw string 0 0
  call string 10 2
    -> fn(c: ref Context, sh: Sh, name: string, wtype: int): string 12 1
      name mod Shellbuiltin 0 0
      name whatis nothing 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name myself Sh 1 0
        seq no type 10 1
          name name string 0 0
          seq no type 10 1
            const SBUILTIN (1) int 6 0
ecom: 
call string 10 2
  -> fn(c: ref Context, sh: Sh, name: string, wtype: int): string 12 1
    name mod Shellbuiltin 0 0
    name whatis nothing 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name myself Sh 1 0
      seq no type 10 1
        name name string 0 0
        seq no type 10 1
          const SBUILTIN (1) int 6 0
ecom to: 
name mw string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b319 big 0 0
    const (72) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (80) int 6 0
ecom: 
const SBUILTIN (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b319 big 0 0
    const (88) int 6 0
ecom: 
= string 10 1
  name mw string 0 0
  + string 10 1
    + string 10 1
      const ${ string 1 0
      name name string 0 0
    const } string 1 0
ecom: 
+ string 10 1
  + string 10 1
    const ${ string 1 0
    name name string 0 0
  const } string 1 0
ecom to: 
name mw string 0 0
ecom: 
+ string 10 1
  const ${ string 1 0
  name name string 0 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 1
  name .t321 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
+= string 10 2
  name w string 0 0
  + string 10 2
    + string 10 2
      + string 10 2
        + string 10 2
          const load  string 1 0
          call string 10 2
            name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
            seq no type 10 1
              name ctxt ref Context 0 0
              seq no type 10 1
                name mod Shellbuiltin 0 0
        const ;  string 1 0
      name mw string 0 0
    const 
 string 1 0
eacom: 
+ string 10 2
  + string 10 2
    + string 10 2
      + string 10 2
        const load  string 1 0
        call string 10 2
          name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
          seq no type 10 1
            name ctxt ref Context 0 0
            seq no type 10 1
              name mod Shellbuiltin 0 0
      const ;  string 1 0
    name mw string 0 0
  const 
 string 1 0
ecom: 
+ string 10 2
  + string 10 2
    + string 10 2
      + string 10 2
        const load  string 1 0
        call string 10 2
          name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
          seq no type 10 1
            name ctxt ref Context 0 0
            seq no type 10 1
              name mod Shellbuiltin 0 0
      const ;  string 1 0
    name mw string 0 0
  const 
 string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
+ string 10 2
  + string 10 2
    + string 10 2
      const load  string 1 0
      call string 10 2
        name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
        seq no type 10 1
          name ctxt ref Context 0 0
          seq no type 10 1
            name mod Shellbuiltin 0 0
    const ;  string 1 0
  name mw string 0 0
ecom to: 
name .t321 string 0 0
ecom: 
+ string 10 2
  + string 10 2
    const load  string 1 0
    call string 10 2
      name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
      seq no type 10 1
        name ctxt ref Context 0 0
        seq no type 10 1
          name mod Shellbuiltin 0 0
  const ;  string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
+ string 10 2
  const load  string 1 0
  call string 10 2
    name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name mod Shellbuiltin 0 0
ecom to: 
name .t321 string 0 0
eacom: 
call string 10 2
  name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name mod Shellbuiltin 0 0
ecom: 
call string 10 2
  name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name mod Shellbuiltin 0 0
ecom to: 
name .t321 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
ecom: 
name mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b319 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t321 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 1
  name mw string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name mw string 0 0
ecom: 
++ int 10 1
  name found int 0 0
  const (1) int 6 0
ecom: 
= Shellbuiltin 10 1
  name mod Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name mod Shellbuiltin 0 0
ecom: 
= (int, list of Shellbuiltin) 10 2
  tuple (int, list of Shellbuiltin) 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name mods list of Shellbuiltin 0 0
  call (int, list of Shellbuiltin) 10 2
    name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
    seq no type 10 2
      * ref Builtins 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const builtins (8) int 6 0
      seq no type 10 1
        name name string 0 0
generate desc for (int, list of Shellbuiltin)
ecom: 
call (int, list of Shellbuiltin) 10 2
  name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
  seq no type 10 2
    * ref Builtins 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const builtins (8) int 6 0
    seq no type 10 1
      name name string 0 0
ecom to: 
name .b322 (int, list of Shellbuiltin) 0 0
generate desc for big
ecom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const builtins (8) int 6 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const builtins (8) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t321 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t321 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t321 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (72) int 6 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b322 (int, list of Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b322 (int, list of Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= Shellbuiltin 10 1
  name mod Shellbuiltin 0 0
  hd Shellbuiltin 10 1
    name mods list of Shellbuiltin 0 0
ecom: 
hd Shellbuiltin 10 1
  name mods list of Shellbuiltin 0 0
ecom to: 
name mod Shellbuiltin 0 0
ecom: 
used int 10 2
  call int 10 2
    -> fn(s: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name print nothing 11 1
    seq no type 10 1
      const builtin %s
 string 1 0
      seq no type 10 1
        name name string 0 0
ecom: 
call int 10 2
  -> fn(s: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name print nothing 11 1
  seq no type 10 1
    const builtin %s
 string 1 0
    seq no type 10 1
      name name string 0 0
ecom to: 
name .t316 int 0 0
generate desc for Sys->print
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
generate desc for big
ecom: 
const builtin %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (72) int 6 0
ecom: 
= string 10 2
  name mw string 0 0
  call string 10 2
    -> fn(c: ref Context, sh: Sh, name: string, wtype: int): string 12 1
      name mod Shellbuiltin 0 0
      name whatis nothing 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name myself Sh 1 0
        seq no type 10 1
          name name string 0 0
          seq no type 10 1
            const BUILTIN (0) int 6 0
ecom: 
call string 10 2
  -> fn(c: ref Context, sh: Sh, name: string, wtype: int): string 12 1
    name mod Shellbuiltin 0 0
    name whatis nothing 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name myself Sh 1 0
      seq no type 10 1
        name name string 0 0
        seq no type 10 1
          const BUILTIN (0) int 6 0
ecom to: 
name mw string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b319 big 0 0
    const (72) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (80) int 6 0
ecom: 
const BUILTIN (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b319 big 0 0
    const (88) int 6 0
ecom: 
= string 10 1
  name mw string 0 0
  name name string 0 0
ecom: 
name name string 0 0
ecom to: 
name mw string 0 0
ecom: 
+= string 10 2
  name w string 0 0
  + string 10 2
    + string 10 2
      + string 10 2
        + string 10 2
          const load  string 1 0
          call string 10 2
            name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
            seq no type 10 1
              name ctxt ref Context 0 0
              seq no type 10 1
                name mod Shellbuiltin 0 0
        const ;  string 1 0
      name mw string 0 0
    const 
 string 1 0
eacom: 
+ string 10 2
  + string 10 2
    + string 10 2
      + string 10 2
        const load  string 1 0
        call string 10 2
          name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
          seq no type 10 1
            name ctxt ref Context 0 0
            seq no type 10 1
              name mod Shellbuiltin 0 0
      const ;  string 1 0
    name mw string 0 0
  const 
 string 1 0
ecom: 
+ string 10 2
  + string 10 2
    + string 10 2
      + string 10 2
        const load  string 1 0
        call string 10 2
          name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
          seq no type 10 1
            name ctxt ref Context 0 0
            seq no type 10 1
              name mod Shellbuiltin 0 0
      const ;  string 1 0
    name mw string 0 0
  const 
 string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
+ string 10 2
  + string 10 2
    + string 10 2
      const load  string 1 0
      call string 10 2
        name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
        seq no type 10 1
          name ctxt ref Context 0 0
          seq no type 10 1
            name mod Shellbuiltin 0 0
    const ;  string 1 0
  name mw string 0 0
ecom to: 
name .t321 string 0 0
ecom: 
+ string 10 2
  + string 10 2
    const load  string 1 0
    call string 10 2
      name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
      seq no type 10 1
        name ctxt ref Context 0 0
        seq no type 10 1
          name mod Shellbuiltin 0 0
  const ;  string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
+ string 10 2
  const load  string 1 0
  call string 10 2
    name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name mod Shellbuiltin 0 0
ecom to: 
name .t321 string 0 0
eacom: 
call string 10 2
  name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name mod Shellbuiltin 0 0
ecom: 
call string 10 2
  name modname fn(ctxt: ref Context, mod: Shellbuiltin): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name mod Shellbuiltin 0 0
ecom to: 
name .t321 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
ecom: 
name mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b319 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t321 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 1
  name mw string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name mw string 0 0
ecom: 
++ int 10 1
  name found int 0 0
  const (1) int 6 0
ecom: 
= Shellbuiltin 10 1
  name mod Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name mod Shellbuiltin 0 0
ecom: 
= int 10 1
  name disfile int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name disfile int 0 0
eacom: 
len int 10 1
  name name string 0 0
ecom: 
len int 10 1
  name name string 0 0
ecom to: 
name .t316 int 0 0
eacom: 
slice string 10 2
  name name string 0 0
  seq no type 10 2
    - int 10 1
      len int 10 1
        name name string 0 0
      const (4) int 6 0
    nothing no type 10 1
ecom: 
slice string 10 2
  name name string 0 0
  seq no type 10 2
    - int 10 1
      len int 10 1
        name name string 0 0
      const (4) int 6 0
    nothing no type 10 1
ecom to: 
name .t321 string 0 0
ecom: 
len int 10 1
  name name string 0 0
ecom to: 
name .t316 int 0 0
eacom: 
- int 10 1
  len int 10 1
    name name string 0 0
  const (4) int 6 0
ecom: 
- int 10 1
  len int 10 1
    name name string 0 0
  const (4) int 6 0
ecom to: 
name .t323 int 0 0
ecom: 
len int 10 1
  name name string 0 0
ecom to: 
name .t323 int 0 0
ecom: 
name name string 0 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 1
  name .t321 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
= int 10 1
  name disfile int 0 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
name disfile int 0 0
eacom: 
len int 10 1
  name name string 0 0
ecom: 
len int 10 1
  name name string 0 0
ecom to: 
name .t323 int 0 0
eacom: 
inds int 10 1
  name name string 0 0
  const (0) int 6 0
ecom: 
inds int 10 1
  name name string 0 0
  const (0) int 6 0
ecom to: 
name .t323 int 0 0
eacom: 
slice string 10 1
  name name string 0 0
  seq no type 10 1
    const (0) int 6 0
    const (2) int 6 0
ecom: 
slice string 10 1
  name name string 0 0
  seq no type 10 1
    const (0) int 6 0
    const (2) int 6 0
ecom to: 
name .t321 string 0 0
ecom: 
name name string 0 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 1
  name .t321 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
= list of string 10 1
  name pathlist list of string 0 0
  :: list of string 10 1
    const  string 1 0
    name nil polymorphic type 1 0
ecom: 
:: list of string 10 1
  const  string 1 0
  name nil polymorphic type 1 0
ecom to: 
name pathlist list of string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t321 list of string 0 0
ecom: 
= list of string 10 1
  name .t321 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t321 list of string 0 0
eacom: 
= list of ref Listnode 10 2
  name pl list of ref Listnode 0 0
    vardecl list of string 10 1
      seq nothing 10 1
  call list of ref Listnode 10 2
    name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
    seq nothing 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        const path string 1 0
ecom: 
= list of ref Listnode 10 2
  name pl list of ref Listnode 0 0
    vardecl list of string 10 1
      seq nothing 10 1
  call list of ref Listnode 10 2
    name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
    seq nothing 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        const path string 1 0
ecom to: 
name .t321 list of ref Listnode 0 0
ecom: 
call list of ref Listnode 10 2
  name get fn(ctxt: self ref Context, name: string): list of ref Listnode 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const path string 1 0
ecom to: 
name pl list of ref Listnode 0 0
  vardecl list of string 10 1
    seq nothing 10 1
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
ecom: 
const path string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t321 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t321 list of ref Listnode 0 0
ecom: 
= list of string 10 2
  name pathlist list of string 0 0
  call list of string 10 2
    name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
    seq no type 10 1
      name pl list of ref Listnode 0 0
ecom: 
call list of string 10 2
  name list2stringlist fn(nl: list of ref Listnode): list of string 11 1
  seq no type 10 1
    name pl list of ref Listnode 0 0
ecom to: 
name pathlist list of string 0 0
generate desc for big
ecom: 
name pl list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
ecom: 
= list of string 10 1
  name pathlist list of string 0 0
  :: list of string 10 1
    const /dis string 1 0
    :: list of string 10 1
      const . string 1 0
      name nil polymorphic type 1 0
ecom: 
:: list of string 10 1
  const /dis string 1 0
  :: list of string 10 1
    const . string 1 0
    name nil polymorphic type 1 0
ecom to: 
name pathlist list of string 0 0
ecom: 
:: list of string 10 1
  const . string 1 0
  name nil polymorphic type 1 0
ecom to: 
name .t321 list of string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t321 list of string 0 0
ecom: 
= list of string 10 1
  name .t321 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t321 list of string 0 0
ecom: 
= string 10 1
  name foundpath string 0 0
    name pl list of ref Listnode 0 0
      vardecl list of string 10 1
        seq nothing 10 1
  const  string 1 0
ecom: 
const  string 1 0
ecom to: 
name foundpath string 0 0
  name pl list of ref Listnode 0 0
    vardecl list of string 10 1
      seq nothing 10 1
eacom: 
hd string 10 1
  name pathlist list of string 0 0
ecom: 
hd string 10 1
  name pathlist list of string 0 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 1
  name .t321 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 1
  name path string 0 0
  + string 10 1
    + string 10 1
      hd string 10 1
        name pathlist list of string 0 0
      const / string 1 0
    name name string 0 0
ecom: 
+ string 10 1
  + string 10 1
    hd string 10 1
      name pathlist list of string 0 0
    const / string 1 0
  name name string 0 0
ecom to: 
name path string 0 0
ecom: 
+ string 10 1
  hd string 10 1
    name pathlist list of string 0 0
  const / string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
hd string 10 1
  name pathlist list of string 0 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 1
  name .t321 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 1
  name path string 0 0
  name name string 0 0
ecom: 
name name string 0 0
ecom to: 
name path string 0 0
eacom: 
= ref Sys->FD 10 2
  name fd ref Sys->FD 0 0
    vardecl string 10 1
      seq nothing 10 1
  call ref Sys->FD 10 2
    -> fn(s: string, mode: int): ref Sys->FD 12 1
      name sys Sys 1 0
      name open nothing 11 1
    seq no type 10 1
      name path string 0 0
      seq no type 10 1
        const OREAD (0) int 6 0
ecom: 
= ref Sys->FD 10 2
  name fd ref Sys->FD 0 0
    vardecl string 10 1
      seq nothing 10 1
  call ref Sys->FD 10 2
    -> fn(s: string, mode: int): ref Sys->FD 12 1
      name sys Sys 1 0
      name open nothing 11 1
    seq no type 10 1
      name path string 0 0
      seq no type 10 1
        const OREAD (0) int 6 0
ecom to: 
name .t321 ref Sys->FD 0 0
ecom: 
call ref Sys->FD 10 2
  -> fn(s: string, mode: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name open nothing 11 1
  seq no type 10 1
    name path string 0 0
    seq no type 10 1
      const OREAD (0) int 6 0
ecom to: 
name fd ref Sys->FD 0 0
  vardecl string 10 1
    seq nothing 10 1
generate desc for big
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
ecom: 
const OREAD (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b319 big 0 0
    const (72) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .t321 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t321 ref Sys->FD 0 0
eacom: 
call int 10 2
  name executable fn(s: (int, Sys->Dir), mode: int): int 11 1
  seq no type 10 2
    call (int, Sys->Dir) 10 2
      -> fn(fd: ref Sys->FD): (int, Sys->Dir) 12 1
        name sys Sys 1 0
        name fstat nothing 11 1
      seq no type 10 1
        name fd ref Sys->FD 0 0
    seq no type 10 1
      const (73) int 6 0
ecom: 
call int 10 2
  name executable fn(s: (int, Sys->Dir), mode: int): int 11 1
  seq no type 10 2
    call (int, Sys->Dir) 10 2
      -> fn(fd: ref Sys->FD): (int, Sys->Dir) 12 1
        name sys Sys 1 0
        name fstat nothing 11 1
      seq no type 10 1
        name fd ref Sys->FD 0 0
    seq no type 10 1
      const (73) int 6 0
ecom to: 
name .t323 int 0 0
generate desc for big
generate desc for (int, Sys->Dir)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap adt offset 8
descmap offset 8
descmap name type string offset 8 (d->offset=0 start=8) returns 8
descmap uid type string offset 16 (d->offset=8 start=8) returns 16
descmap gid type string offset 24 (d->offset=16 start=8) returns 24
descmap muid type string offset 32 (d->offset=24 start=8) returns 32
descmap adt offset 40
descmap offset 40
descmap path type big offset 40 (d->offset=0 start=40) returns -1
descmap vers type int offset 48 (d->offset=8 start=40) returns -1
descmap qtype type int offset 52 (d->offset=12 start=40) returns -1
descmap qid type Sys->Qid offset 40 (d->offset=32 start=8) returns -1
descmap mode type int offset 56 (d->offset=48 start=8) returns -1
descmap atime type int offset 60 (d->offset=52 start=8) returns -1
descmap mtime type int offset 64 (d->offset=56 start=8) returns -1
descmap length type big offset 72 (d->offset=64 start=8) returns -1
descmap dtype type int offset 80 (d->offset=72 start=8) returns -1
descmap dev type int offset 84 (d->offset=76 start=8) returns -1
descmap t1 type Sys->Dir offset 8 (d->offset=8 start=0) returns 32
generate desc for (int, Sys->Dir)
	desc	$-1,88,"78"
ecom: 
call (int, Sys->Dir) 10 2
  -> fn(fd: ref Sys->FD): (int, Sys->Dir) 12 1
    name sys Sys 1 0
    name fstat nothing 11 1
  seq no type 10 1
    name fd ref Sys->FD 0 0
ecom to: 
name .b324 (int, Sys->Dir) 0 0
generate desc for big
ecom: 
name fd ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b317 big 0 0
    const (64) int 6 0
ecom: 
name .b324 (int, Sys->Dir) 0 0
ecom to: 
* (int, Sys->Dir) 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
generate desc for (int, Sys->Dir)
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b324 (int, Sys->Dir) 0 0
      const (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b324 (int, Sys->Dir) 0 0
    const (8) int 6 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b324 (int, Sys->Dir) 0 0
      const (16) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b324 (int, Sys->Dir) 0 0
    const (16) int 6 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b324 (int, Sys->Dir) 0 0
      const (24) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b324 (int, Sys->Dir) 0 0
    const (24) int 6 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b324 (int, Sys->Dir) 0 0
      const (32) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b324 (int, Sys->Dir) 0 0
    const (32) int 6 0
ecom: 
const (73) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b319 big 0 0
    const (152) int 6 0
ecom: 
= string 10 1
  name foundpath string 0 0
  name path string 0 0
ecom: 
name path string 0 0
ecom to: 
name foundpath string 0 0
ecom: 
= ref Sys->FD 10 1
  name fd ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name fd ref Sys->FD 0 0
ecom: 
= string 10 1
  name path string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name path string 0 0
ecom: 
+= string 10 1
  name path string 0 0
  const .dis string 1 0
eacom: 
call int 10 2
  name executable fn(s: (int, Sys->Dir), mode: int): int 11 1
  seq no type 10 2
    call (int, Sys->Dir) 10 2
      -> fn(s: string): (int, Sys->Dir) 12 1
        name sys Sys 1 0
        name stat nothing 11 1
      seq no type 10 1
        name path string 0 0
    seq no type 10 1
      const (292) int 6 0
ecom: 
call int 10 2
  name executable fn(s: (int, Sys->Dir), mode: int): int 11 1
  seq no type 10 2
    call (int, Sys->Dir) 10 2
      -> fn(s: string): (int, Sys->Dir) 12 1
        name sys Sys 1 0
        name stat nothing 11 1
      seq no type 10 1
        name path string 0 0
    seq no type 10 1
      const (292) int 6 0
ecom to: 
name .t323 int 0 0
generate desc for big
generate desc for (int, Sys->Dir)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap adt offset 8
descmap offset 8
descmap name type string offset 8 (d->offset=0 start=8) returns 8
descmap uid type string offset 16 (d->offset=8 start=8) returns 16
descmap gid type string offset 24 (d->offset=16 start=8) returns 24
descmap muid type string offset 32 (d->offset=24 start=8) returns 32
descmap adt offset 40
descmap offset 40
descmap path type big offset 40 (d->offset=0 start=40) returns -1
descmap vers type int offset 48 (d->offset=8 start=40) returns -1
descmap qtype type int offset 52 (d->offset=12 start=40) returns -1
descmap qid type Sys->Qid offset 40 (d->offset=32 start=8) returns -1
descmap mode type int offset 56 (d->offset=48 start=8) returns -1
descmap atime type int offset 60 (d->offset=52 start=8) returns -1
descmap mtime type int offset 64 (d->offset=56 start=8) returns -1
descmap length type big offset 72 (d->offset=64 start=8) returns -1
descmap dtype type int offset 80 (d->offset=72 start=8) returns -1
descmap dev type int offset 84 (d->offset=76 start=8) returns -1
descmap t1 type Sys->Dir offset 8 (d->offset=8 start=0) returns 32
generate desc for (int, Sys->Dir)
	desc	$-1,88,"78"
ecom: 
call (int, Sys->Dir) 10 2
  -> fn(s: string): (int, Sys->Dir) 12 1
    name sys Sys 1 0
    name stat nothing 11 1
  seq no type 10 1
    name path string 0 0
ecom to: 
name .b324 (int, Sys->Dir) 0 0
generate desc for big
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b317 big 0 0
    const (64) int 6 0
ecom: 
name .b324 (int, Sys->Dir) 0 0
ecom to: 
* (int, Sys->Dir) 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
generate desc for (int, Sys->Dir)
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b324 (int, Sys->Dir) 0 0
      const (8) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b324 (int, Sys->Dir) 0 0
    const (8) int 6 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b324 (int, Sys->Dir) 0 0
      const (16) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b324 (int, Sys->Dir) 0 0
    const (16) int 6 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b324 (int, Sys->Dir) 0 0
      const (24) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b324 (int, Sys->Dir) 0 0
    const (24) int 6 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b324 (int, Sys->Dir) 0 0
      const (32) int 6 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b324 (int, Sys->Dir) 0 0
    const (32) int 6 0
ecom: 
const (292) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b319 big 0 0
    const (152) int 6 0
ecom: 
= string 10 1
  name foundpath string 0 0
  name path string 0 0
ecom: 
name path string 0 0
ecom to: 
name foundpath string 0 0
ecom: 
= ref Sys->FD 10 1
  name fd ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name fd ref Sys->FD 0 0
ecom: 
= string 10 1
  name path string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name path string 0 0
ecom: 
= list of string 10 1
  name pathlist list of string 0 0
  tl list of string 10 1
    name pathlist list of string 0 0
ecom: 
tl list of string 10 1
  name pathlist list of string 0 0
ecom to: 
name pathlist list of string 0 0
ecom: 
= ref Sys->FD 10 1
  name fd ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name fd ref Sys->FD 0 0
ecom: 
= string 10 1
  name path string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name path string 0 0
ecom: 
+= string 10 1
  name w string 0 0
  + string 10 1
    name foundpath string 0 0
    const 
 string 1 0
eacom: 
+ string 10 1
  name foundpath string 0 0
  const 
 string 1 0
ecom: 
+ string 10 1
  name foundpath string 0 0
  const 
 string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 1
  name .t321 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 1
  name foundpath string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name foundpath string 0 0
ecom: 
= list of ref Listnode 10 1
  name pl list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name pl list of ref Listnode 0 0
ecom: 
= list of string 10 1
  name pathlist list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name pathlist list of string 0 0
ecom: 
= list of (string, Shellbuiltin) 10 1
  name bmods list of (string, Shellbuiltin) 0 0
  * list of (string, Shellbuiltin) 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const bmods (16) int 6 0
ecom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom to: 
name bmods list of (string, Shellbuiltin) 0 0
eacom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t321 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t321 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t321 ref Environment 0 0
ecom: 
= (string, Shellbuiltin) 10 2
  tuple (string, Shellbuiltin) 10 1
    seq nothing 10 1
      name modname string 0 0
      seq nothing 10 1
        name mod Shellbuiltin 0 0
  hd (string, Shellbuiltin) 10 1
    name bmods list of (string, Shellbuiltin) 0 0
ecom: 
hd (string, Shellbuiltin) 10 1
  name bmods list of (string, Shellbuiltin) 0 0
ecom to: 
name modname (string, Shellbuiltin) 0 0
generate desc for (string, Shellbuiltin)
eacom: 
= string 10 2
  name mw string 0 0
    tuple (string, Shellbuiltin) 10 1
      seq nothing 10 1
        name modname (string, Shellbuiltin) 0 0
        seq nothing 10 1
          name mod Shellbuiltin 0 0
  call string 10 2
    -> fn(c: ref Context, sh: Sh, name: string, wtype: int): string 12 1
      name mod Shellbuiltin 0 0
      name whatis nothing 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name myself Sh 1 0
        seq no type 10 1
          name name string 0 0
          seq no type 10 1
            const OTHER (2) int 6 0
ecom: 
= string 10 2
  name mw string 0 0
    tuple (string, Shellbuiltin) 10 1
      seq nothing 10 1
        name modname (string, Shellbuiltin) 0 0
        seq nothing 10 1
          name mod Shellbuiltin 0 0
  call string 10 2
    -> fn(c: ref Context, sh: Sh, name: string, wtype: int): string 12 1
      name mod Shellbuiltin 0 0
      name whatis nothing 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name myself Sh 1 0
        seq no type 10 1
          name name string 0 0
          seq no type 10 1
            const OTHER (2) int 6 0
ecom to: 
name .t321 string 0 0
ecom: 
call string 10 2
  -> fn(c: ref Context, sh: Sh, name: string, wtype: int): string 12 1
    name mod Shellbuiltin 0 0
    name whatis nothing 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name myself Sh 1 0
      seq no type 10 1
        name name string 0 0
        seq no type 10 1
          const OTHER (2) int 6 0
ecom to: 
name mw string 0 0
  tuple (string, Shellbuiltin) 10 1
    seq nothing 10 1
      name modname (string, Shellbuiltin) 0 0
      seq nothing 10 1
        name mod Shellbuiltin 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b319 big 0 0
    const (72) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (80) int 6 0
ecom: 
const OTHER (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b319 big 0 0
    const (88) int 6 0
ecom: 
= string 10 1
  name .t321 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
+= string 10 1
  name w string 0 0
  + string 10 1
    + string 10 1
      + string 10 1
        + string 10 1
          const load  string 1 0
          name modname string 0 0
        const ;  string 1 0
      name mw string 0 0
    const 
 string 1 0
eacom: 
+ string 10 1
  + string 10 1
    + string 10 1
      + string 10 1
        const load  string 1 0
        name modname string 0 0
      const ;  string 1 0
    name mw string 0 0
  const 
 string 1 0
ecom: 
+ string 10 1
  + string 10 1
    + string 10 1
      + string 10 1
        const load  string 1 0
        name modname string 0 0
      const ;  string 1 0
    name mw string 0 0
  const 
 string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
+ string 10 1
  + string 10 1
    + string 10 1
      const load  string 1 0
      name modname string 0 0
    const ;  string 1 0
  name mw string 0 0
ecom to: 
name .t321 string 0 0
ecom: 
+ string 10 1
  + string 10 1
    const load  string 1 0
    name modname string 0 0
  const ;  string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
+ string 10 1
  const load  string 1 0
  name modname string 0 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 1
  name .t321 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t321 string 0 0
ecom: 
= string 10 1
  name mw string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name mw string 0 0
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name modname (string, Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name modname (string, Shellbuiltin) 0 0
ecom: 
= Shellbuiltin 10 1
  * Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name modname (string, Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name modname (string, Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= Shellbuiltin 10 1
  name mod Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name mod Shellbuiltin 0 0
ecom: 
= list of (string, Shellbuiltin) 10 1
  name bmods list of (string, Shellbuiltin) 0 0
  tl list of (string, Shellbuiltin) 10 1
    name bmods list of (string, Shellbuiltin) 0 0
ecom: 
tl list of (string, Shellbuiltin) 10 1
  name bmods list of (string, Shellbuiltin) 0 0
ecom to: 
name bmods list of (string, Shellbuiltin) 0 0
ecom: 
used int 10 2
  call int 10 2
    -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name fprint nothing 11 1
    seq no type 10 2
      call ref Sys->FD 10 2
        -> fn(fd: int): ref Sys->FD 12 1
          name sys Sys 1 0
          name fildes nothing 11 1
        seq no type 10 1
          const (2) int 6 0
      seq no type 10 1
        const %s: not found
 string 1 0
        seq no type 10 1
          name name string 0 0
ecom: 
call int 10 2
  -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name fprint nothing 11 1
  seq no type 10 2
    call ref Sys->FD 10 2
      -> fn(fd: int): ref Sys->FD 12 1
        name sys Sys 1 0
        name fildes nothing 11 1
      seq no type 10 1
        const (2) int 6 0
    seq no type 10 1
      const %s: not found
 string 1 0
      seq no type 10 1
        name name string 0 0
ecom to: 
name .t323 int 0 0
generate desc for Sys->fprint
descmap offset 0
descmap fd type ref Sys->FD offset 64 (d->offset=64 start=0) returns 64
descmap s type string offset 72 (d->offset=72 start=0) returns 72
descmap type string offset 80 returns 80
generate desc for big
ecom: 
call ref Sys->FD 10 2
  -> fn(fd: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name fildes nothing 11 1
  seq no type 10 1
    const (2) int 6 0
ecom to: 
name .t321 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b317 big 0 0
    const (64) int 6 0
ecom: 
name .t321 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .t321 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t321 ref Sys->FD 0 0
ecom: 
const %s: not found
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (72) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (80) int 6 0
ecom: 
const not found string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
used int 10 2
  call int 10 2
    -> fn(s: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name print nothing 11 1
    seq no type 10 1
      const %s string 1 0
      seq no type 10 1
        name w string 0 0
ecom: 
call int 10 2
  -> fn(s: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name print nothing 11 1
  seq no type 10 1
    const %s string 1 0
    seq no type 10 1
      name w string 0 0
ecom to: 
name .t323 int 0 0
generate desc for Sys->print
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
generate desc for big
ecom: 
const %s string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (64) int 6 0
ecom: 
name w string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b319 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
fn: whatisit
64: argument ctxt ref Context ref 10
72: argument el ref Listnode ref 3
80: local disfile int ref 4
84: local found int ref 4
88: local .t316 int ref 1
92: local .t323 int ref 1
96: local name string ref 25
104: local .b319 big ref 19
112: local pathlist list of string ref 8
120: local w string ref 8
128: local path string ref 7
136: local .b317 big ref 6
144: local mods list of Shellbuiltin ref 6
152: local bmods list of (string, Shellbuiltin) ref 5
160: local foundpath string ref 5
168: local mod Shellbuiltin ref 4
176: local mod Shellbuiltin ref 4
184: local mw string ref 4
192: local mw string ref 4
200: local val list of ref Listnode ref 3
208: local fd ref Sys->FD ref 2
216: local modname string ref 2
224: local mod Shellbuiltin ref 2
232: local mw string ref 2
240: local pl list of ref Listnode ref 2
248: local .b322 (int, list of Shellbuiltin) ref 2
264: local .b324 (int, Sys->Dir) ref 2
352: local .t318 string ref 1
360: local .t320 string ref 1
368: local .t321 string ref 1
generate desc for whatisit
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap el type ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap disfile type int offset 80 (d->offset=80 start=0) returns -1
descmap found type int offset 84 (d->offset=84 start=0) returns -1
descmap .t316 type int offset 88 (d->offset=88 start=0) returns -1
descmap .t323 type int offset 92 (d->offset=92 start=0) returns -1
descmap name type string offset 96 (d->offset=96 start=0) returns 96
descmap .b319 type big offset 104 (d->offset=104 start=0) returns -1
descmap pathlist type list of string offset 112 (d->offset=112 start=0) returns 112
descmap w type string offset 120 (d->offset=120 start=0) returns 120
descmap path type string offset 128 (d->offset=128 start=0) returns 128
descmap .b317 type big offset 136 (d->offset=136 start=0) returns -1
descmap mods type list of Shellbuiltin offset 144 (d->offset=144 start=0) returns 144
descmap bmods type list of (string, Shellbuiltin) offset 152 (d->offset=152 start=0) returns 152
descmap foundpath type string offset 160 (d->offset=160 start=0) returns 160
descmap mod type Shellbuiltin offset 168 (d->offset=168 start=0) returns 168
descmap mod type Shellbuiltin offset 176 (d->offset=176 start=0) returns 176
descmap mw type string offset 184 (d->offset=184 start=0) returns 184
descmap mw type string offset 192 (d->offset=192 start=0) returns 192
descmap val type list of ref Listnode offset 200 (d->offset=200 start=0) returns 200
descmap fd type ref Sys->FD offset 208 (d->offset=208 start=0) returns 208
descmap modname type string offset 216 (d->offset=216 start=0) returns 216
descmap mod type Shellbuiltin offset 224 (d->offset=224 start=0) returns 224
descmap mw type string offset 232 (d->offset=232 start=0) returns 232
descmap pl type list of ref Listnode offset 240 (d->offset=240 start=0) returns 240
descmap adt offset 248
descmap offset 248
descmap t0 type int offset 248 (d->offset=0 start=248) returns -1
descmap t1 type list of Shellbuiltin offset 256 (d->offset=8 start=248) returns 256
descmap .b322 type (int, list of Shellbuiltin) offset 248 (d->offset=248 start=0) returns 256
descmap adt offset 264
descmap offset 264
descmap t0 type int offset 264 (d->offset=0 start=264) returns -1
descmap adt offset 272
descmap offset 272
descmap name type string offset 272 (d->offset=0 start=272) returns 272
descmap uid type string offset 280 (d->offset=8 start=272) returns 280
descmap gid type string offset 288 (d->offset=16 start=272) returns 288
descmap muid type string offset 296 (d->offset=24 start=272) returns 296
descmap adt offset 304
descmap offset 304
descmap path type big offset 304 (d->offset=0 start=304) returns -1
descmap vers type int offset 312 (d->offset=8 start=304) returns -1
descmap qtype type int offset 316 (d->offset=12 start=304) returns -1
descmap qid type Sys->Qid offset 304 (d->offset=32 start=272) returns -1
descmap mode type int offset 320 (d->offset=48 start=272) returns -1
descmap atime type int offset 324 (d->offset=52 start=272) returns -1
descmap mtime type int offset 328 (d->offset=56 start=272) returns -1
descmap length type big offset 336 (d->offset=64 start=272) returns -1
descmap dtype type int offset 344 (d->offset=72 start=272) returns -1
descmap dev type int offset 348 (d->offset=76 start=272) returns -1
descmap t1 type Sys->Dir offset 272 (d->offset=8 start=264) returns 296
descmap .b324 type (int, Sys->Dir) offset 264 (d->offset=264 start=0) returns 296
descmap .t318 type string offset 352 (d->offset=352 start=0) returns 352
descmap .t320 type string offset 360 (d->offset=360 start=0) returns 360
descmap .t321 type string offset 368 (d->offset=368 start=0) returns 368
fncom: builtin_builtin 2 6e9810
eacom: 
len int 10 1
  name args list of ref Listnode 0 0
ecom: 
len int 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t325 int 0 0
ecom: 
call no type 10 2
  name builtinusage fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const builtin command [args ...] string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b326 big 0 0
    const (64) int 6 0
ecom: 
const builtin command [args ...] string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b326 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name name string 0 0
  * string 10 1
    + int 10 1
      hd ref Listnode 10 1
        tl list of ref Listnode 10 1
          name args list of ref Listnode 0 0
      const word (8) int 6 0
ecom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      tl list of ref Listnode 10 1
        name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
name name string 0 0
eacom: 
* string 10 1
  + int 10 1
    hd ref Listnode 10 1
      tl list of ref Listnode 10 1
        name args list of ref Listnode 0 0
    const word (8) int 6 0
ecom: 
hd ref Listnode 10 1
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom to: 
name .t327 ref Listnode 0 0
eacom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .t327 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t327 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t327 ref Listnode 0 0
eacom: 
inds int 10 1
  name name string 0 0
  const (0) int 6 0
ecom: 
inds int 10 1
  name name string 0 0
  const (0) int 6 0
ecom to: 
name .t325 int 0 0
ecom: 
call no type 10 2
  name diagnostic fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      + string 10 1
        name name string 0 0
        const  not found string 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b326 big 0 0
    const (64) int 6 0
ecom: 
+ string 10 1
  name name string 0 0
  const  not found string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b326 big 0 0
    const (72) int 6 0
ecom: 
const not found string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
= (int, list of Shellbuiltin) 10 2
  tuple (int, list of Shellbuiltin) 10 1
    seq nothing 10 1
      name nil polymorphic type 1 0
      seq nothing 10 1
        name mods list of Shellbuiltin 0 0
  call (int, list of Shellbuiltin) 10 2
    name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
    seq no type 10 2
      * ref Builtins 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const builtins (8) int 6 0
      seq no type 10 1
        name name string 0 0
generate desc for (int, list of Shellbuiltin)
ecom: 
call (int, list of Shellbuiltin) 10 2
  name findbuiltin fn(b: ref Builtins, name: string): (int, list of Shellbuiltin) 11 1
  seq no type 10 2
    * ref Builtins 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const builtins (8) int 6 0
    seq no type 10 1
      name name string 0 0
ecom to: 
name .b328 (int, list of Shellbuiltin) 0 0
generate desc for big
ecom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const builtins (8) int 6 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b326 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const builtins (8) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t327 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t327 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t327 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b326 big 0 0
    const (72) int 6 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b328 (int, list of Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
* list of Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b328 (int, list of Shellbuiltin) 0 0
    const t1 (8) int 6 0
eacom: 
hd Shellbuiltin 10 1
  name mods list of Shellbuiltin 0 0
ecom: 
hd Shellbuiltin 10 1
  name mods list of Shellbuiltin 0 0
ecom to: 
name .t327 Shellbuiltin 0 0
ecom: 
= Shellbuiltin 10 1
  name .t327 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t327 Shellbuiltin 0 0
ecom: 
call string 10 3
  -> fn(c: ref Context, sh: Sh, cmd: list of ref Listnode, last: int): string 12 2
    hd Shellbuiltin 10 1
      name mods list of Shellbuiltin 0 0
    name runbuiltin nothing 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      name myself Sh 1 0
      seq no type 10 2
        tl list of ref Listnode 10 1
          name args list of ref Listnode 0 0
        seq no type 10 1
          name last int 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
generate desc for big
eacom: 
hd Shellbuiltin 10 1
  name mods list of Shellbuiltin 0 0
ecom: 
hd Shellbuiltin 10 1
  name mods list of Shellbuiltin 0 0
ecom to: 
name .t327 Shellbuiltin 0 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b326 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b326 big 0 0
    const (72) int 6 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b326 big 0 0
    const (80) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b326 big 0 0
    const (88) int 6 0
ecom: 
= Shellbuiltin 10 1
  name .t327 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t327 Shellbuiltin 0 0
ecom: 
= list of Shellbuiltin 10 1
  name mods list of Shellbuiltin 0 0
  tl list of Shellbuiltin 10 1
    name mods list of Shellbuiltin 0 0
ecom: 
tl list of Shellbuiltin 10 1
  name mods list of Shellbuiltin 0 0
ecom to: 
name mods list of Shellbuiltin 0 0
eacom: 
& int 10 1
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  const EXECPRINT (4) int 6 0
ecom: 
& int 10 1
  * int 10 1
    + int 10 1
      * ref Localenv 10 1
        + int 10 1
          * ref Environment 8 0
            name ctxt ref Context 0 0
          const localenv (24) int 6 0
      const flags (16) int 6 0
  const EXECPRINT (4) int 6 0
ecom to: 
name .t325 int 0 0
eacom: 
* int 10 1
  + int 10 1
    * ref Localenv 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const localenv (24) int 6 0
    const flags (16) int 6 0
ecom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom to: 
name .t327 ref Localenv 0 0
eacom: 
* ref Localenv 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const localenv (24) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t327 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .t327 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .t327 ref Localenv 0 0
ecom: 
used int 10 3
  call int 10 3
    -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name fprint nothing 11 1
    seq no type 10 3
      call ref Sys->FD 10 2
        -> fn(fd: int): ref Sys->FD 12 1
          name sys Sys 1 0
          name fildes nothing 11 1
        seq no type 10 1
          const (2) int 6 0
      seq no type 10 2
        const %s
 string 1 0
        seq no type 10 2
          call string 10 2
            name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
            seq no type 10 2
              tl list of ref Listnode 10 1
                name args list of ref Listnode 0 0
              seq no type 10 1
                const (0) int 6 0
ecom: 
call int 10 3
  -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name fprint nothing 11 1
  seq no type 10 3
    call ref Sys->FD 10 2
      -> fn(fd: int): ref Sys->FD 12 1
        name sys Sys 1 0
        name fildes nothing 11 1
      seq no type 10 1
        const (2) int 6 0
    seq no type 10 2
      const %s
 string 1 0
      seq no type 10 2
        call string 10 2
          name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
          seq no type 10 2
            tl list of ref Listnode 10 1
              name args list of ref Listnode 0 0
            seq no type 10 1
              const (0) int 6 0
ecom to: 
name .t325 int 0 0
generate desc for Sys->fprint
descmap offset 0
descmap fd type ref Sys->FD offset 64 (d->offset=64 start=0) returns 64
descmap s type string offset 72 (d->offset=72 start=0) returns 72
descmap type string offset 80 returns 80
generate desc for big
ecom: 
call ref Sys->FD 10 2
  -> fn(fd: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name fildes nothing 11 1
  seq no type 10 1
    const (2) int 6 0
ecom to: 
name .t327 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b329 big 0 0
    const (64) int 6 0
ecom: 
call string 10 2
  name quoted fn(val: list of ref Listnode, quoteblocks: int): string 11 1
  seq no type 10 2
    tl list of ref Listnode 10 1
      name args list of ref Listnode 0 0
    seq no type 10 1
      const (0) int 6 0
ecom to: 
name .t330 string 0 0
generate desc for big
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b329 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b329 big 0 0
    const (72) int 6 0
ecom: 
name .t327 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b326 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .t327 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t327 ref Sys->FD 0 0
ecom: 
const %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b326 big 0 0
    const (72) int 6 0
ecom: 
name .t330 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b326 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t330 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t330 string 0 0
ecom: 
call string 10 2
  name runexternal fn(ctxt: ref Context, args: list of ref Listnode, last: int): string 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      tl list of ref Listnode 10 1
        name args list of ref Listnode 0 0
      seq no type 10 1
        name last int 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b329 big 0 0
    const (64) int 6 0
ecom: 
tl list of ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b329 big 0 0
    const (72) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b329 big 0 0
    const (80) int 6 0
fn: builtin_builtin
64: argument ctxt ref Context ref 7
72: argument args list of ref Listnode ref 5
80: argument last int ref 2
84: local .t325 int ref 1
88: local mods list of Shellbuiltin ref 6
96: local .b326 big ref 5
104: local name string ref 5
112: local .b329 big ref 3
120: local .t327 ref Listnode ref 1
128: local .t330 string ref 1
136: local .b328 (int, list of Shellbuiltin) ref 1
generate desc for builtin_builtin
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap args type list of ref Listnode offset 72 (d->offset=72 start=0) returns 72
descmap last type int offset 80 (d->offset=80 start=0) returns -1
descmap .t325 type int offset 84 (d->offset=84 start=0) returns -1
descmap mods type list of Shellbuiltin offset 88 (d->offset=88 start=0) returns 88
descmap .b326 type big offset 96 (d->offset=96 start=0) returns -1
descmap name type string offset 104 (d->offset=104 start=0) returns 104
descmap .b329 type big offset 112 (d->offset=112 start=0) returns -1
descmap .t327 type ref Listnode offset 120 (d->offset=120 start=0) returns 120
descmap .t330 type string offset 128 (d->offset=128 start=0) returns 128
descmap adt offset 136
descmap offset 136
descmap t0 type int offset 136 (d->offset=0 start=136) returns -1
descmap t1 type list of Shellbuiltin offset 144 (d->offset=8 start=136) returns 144
descmap .b328 type (int, list of Shellbuiltin) offset 136 (d->offset=136 start=0) returns 144
fncom: modname 5 6e98d0
ecom: 
= list of (string, Shellbuiltin) 10 1
  name ml list of (string, Shellbuiltin) 0 0
  * list of (string, Shellbuiltin) 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const bmods (16) int 6 0
ecom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom to: 
name ml list of (string, Shellbuiltin) 0 0
eacom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t331 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t331 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t331 ref Environment 0 0
ecom: 
= (string, Shellbuiltin) 10 2
  tuple (string, Shellbuiltin) 10 1
    seq nothing 10 1
      name bname string 0 0
      seq nothing 10 1
        name bmod Shellbuiltin 0 0
  hd (string, Shellbuiltin) 10 1
    name ml list of (string, Shellbuiltin) 0 0
ecom: 
hd (string, Shellbuiltin) 10 1
  name ml list of (string, Shellbuiltin) 0 0
ecom to: 
name bname (string, Shellbuiltin) 0 0
generate desc for (string, Shellbuiltin)
ecom: 
name bname string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name bname (string, Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name bname (string, Shellbuiltin) 0 0
ecom: 
= Shellbuiltin 10 1
  * Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name bname (string, Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name bname (string, Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= Shellbuiltin 10 1
  name bmod Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name bmod Shellbuiltin 0 0
ecom: 
= list of (string, Shellbuiltin) 10 1
  name ml list of (string, Shellbuiltin) 0 0
  tl list of (string, Shellbuiltin) 10 1
    name ml list of (string, Shellbuiltin) 0 0
ecom: 
tl list of (string, Shellbuiltin) 10 1
  name ml list of (string, Shellbuiltin) 0 0
ecom to: 
name ml list of (string, Shellbuiltin) 0 0
ecom: 
const builtin string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: modname
64: argument ctxt ref Context ref 1
72: argument mod Shellbuiltin ref 1
80: local ml list of (string, Shellbuiltin) ref 5
88: local bname string ref 2
96: local bmod Shellbuiltin ref 2
104: local .t331 ref Environment ref 1
generate desc for modname
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap mod type Shellbuiltin offset 72 (d->offset=72 start=0) returns 72
descmap ml type list of (string, Shellbuiltin) offset 80 (d->offset=80 start=0) returns 80
descmap bname type string offset 88 (d->offset=88 start=0) returns 88
descmap bmod type Shellbuiltin offset 96 (d->offset=96 start=0) returns 96
descmap .t331 type ref Environment offset 104 (d->offset=104 start=0) returns 104
fncom: loadmodule 3 6e9990
ecom: 
= list of (string, Shellbuiltin) 10 1
  name bl list of (string, Shellbuiltin) 0 0
  * list of (string, Shellbuiltin) 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const bmods (16) int 6 0
ecom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom to: 
name bl list of (string, Shellbuiltin) 0 0
eacom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t332 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t332 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t332 ref Environment 0 0
ecom: 
= (string, Shellbuiltin) 10 2
  tuple (string, Shellbuiltin) 10 1
    seq nothing 10 1
      name bname string 0 0
      seq nothing 10 1
        name nil polymorphic type 1 0
  hd (string, Shellbuiltin) 10 1
    name bl list of (string, Shellbuiltin) 0 0
generate desc for (string, Shellbuiltin)
ecom: 
hd (string, Shellbuiltin) 10 1
  name bl list of (string, Shellbuiltin) 0 0
ecom to: 
name .b333 (string, Shellbuiltin) 0 0
generate desc for (string, Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b333 (string, Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name .b333 (string, Shellbuiltin) 0 0
ecom: 
= Shellbuiltin 10 1
  * Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b333 (string, Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b333 (string, Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
ecom: 
= string 10 1
  name bname string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name bname string 0 0
ecom: 
= list of (string, Shellbuiltin) 10 1
  name bl list of (string, Shellbuiltin) 0 0
  tl list of (string, Shellbuiltin) 10 1
    name bl list of (string, Shellbuiltin) 0 0
ecom: 
tl list of (string, Shellbuiltin) 10 1
  name bl list of (string, Shellbuiltin) 0 0
ecom to: 
name bl list of (string, Shellbuiltin) 0 0
ecom: 
= string 10 1
  name path string 0 0
  name name string 0 0
ecom: 
name name string 0 0
ecom to: 
name path string 0 0
eacom: 
len int 10 1
  name path string 0 0
ecom: 
len int 10 1
  name path string 0 0
ecom to: 
name .t334 int 0 0
eacom: 
slice string 10 2
  name path string 0 0
  seq no type 10 2
    - int 10 1
      len int 10 1
        name path string 0 0
      const (4) int 6 0
    nothing no type 10 1
ecom: 
slice string 10 2
  name path string 0 0
  seq no type 10 2
    - int 10 1
      len int 10 1
        name path string 0 0
      const (4) int 6 0
    nothing no type 10 1
ecom to: 
name .t332 string 0 0
ecom: 
len int 10 1
  name path string 0 0
ecom to: 
name .t334 int 0 0
eacom: 
- int 10 1
  len int 10 1
    name path string 0 0
  const (4) int 6 0
ecom: 
- int 10 1
  len int 10 1
    name path string 0 0
  const (4) int 6 0
ecom to: 
name .t335 int 0 0
ecom: 
len int 10 1
  name path string 0 0
ecom to: 
name .t335 int 0 0
ecom: 
name path string 0 0
ecom to: 
name .t332 string 0 0
ecom: 
= string 10 1
  name .t332 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t332 string 0 0
ecom: 
+= string 10 1
  name path string 0 0
  const .dis string 1 0
eacom: 
inds int 10 1
  name path string 0 0
  const (0) int 6 0
ecom: 
inds int 10 1
  name path string 0 0
  const (0) int 6 0
ecom to: 
name .t335 int 0 0
eacom: 
slice string 10 1
  name path string 0 0
  seq no type 10 1
    const (0) int 6 0
    const (2) int 6 0
ecom: 
slice string 10 1
  name path string 0 0
  seq no type 10 1
    const (0) int 6 0
    const (2) int 6 0
ecom to: 
name .t332 string 0 0
ecom: 
name path string 0 0
ecom to: 
name .t332 string 0 0
ecom: 
= string 10 1
  name .t332 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t332 string 0 0
ecom: 
= string 10 1
  name path string 0 0
  + string 10 1
    const /dis/sh/ string 1 0
    name path string 0 0
ecom: 
+ string 10 1
  const /dis/sh/ string 1 0
  name path string 0 0
ecom to: 
name path string 0 0
ecom: 
= Shellbuiltin 10 1
  name mod Shellbuiltin 0 0
  load Shellbuiltin 10 1
    name path string 0 0
    name .m.Shellbuiltin Shellbuiltin 17 1
ecom: 
load Shellbuiltin 10 1
  name path string 0 0
  name .m.Shellbuiltin Shellbuiltin 17 1
ecom to: 
name mod Shellbuiltin 0 0
ecom: 
call no type 10 2
  name diagnostic fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      call string 10 2
        -> fn(s: string, nil: string, *): string 12 1
          name sys Sys 1 0
          name sprint nothing 11 1
        seq no type 10 1
          const load: cannot load %s: %r string 1 0
          seq no type 10 1
            name path string 0 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, nil: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const load: cannot load %s: %r string 1 0
    seq no type 10 1
      name path string 0 0
ecom to: 
name .t332 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
generate desc for big
ecom: 
const load: cannot load %s: %r string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b337 big 0 0
    const (64) int 6 0
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b337 big 0 0
    const (72) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b336 big 0 0
    const (64) int 6 0
ecom: 
name .t332 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b336 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t332 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t332 string 0 0
ecom: 
const bad module string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
= string 10 2
  name s string 0 0
  call string 10 2
    -> fn(c: ref Context, sh: Sh): string 12 1
      name mod Shellbuiltin 0 0
      name initbuiltin nothing 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name myself Sh 1 0
ecom: 
call string 10 2
  -> fn(c: ref Context, sh: Sh): string 12 1
    name mod Shellbuiltin 0 0
    name initbuiltin nothing 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name myself Sh 1 0
ecom to: 
name s string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b337 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b337 big 0 0
    const (72) int 6 0
ecom: 
= list of (string, Shellbuiltin) 10 2
  * list of (string, Shellbuiltin) 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const bmods (16) int 6 0
  :: list of (string, Shellbuiltin) 10 2
    tuple (string, Shellbuiltin) 10 1
      seq no type 10 1
        name name string 0 0
        seq no type 10 1
          call Shellbuiltin 10 1
            -> fn(): Shellbuiltin 12 1
              name mod Shellbuiltin 0 0
              name getself nothing 11 1
    * list of (string, Shellbuiltin) 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const bmods (16) int 6 0
eacom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t332 ref Environment 0 0
ecom: 
:: list of (string, Shellbuiltin) 10 2
  tuple (string, Shellbuiltin) 10 1
    seq no type 10 1
      name name string 0 0
      seq no type 10 1
        call Shellbuiltin 10 1
          -> fn(): Shellbuiltin 12 1
            name mod Shellbuiltin 0 0
            name getself nothing 11 1
  * list of (string, Shellbuiltin) 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const bmods (16) int 6 0
ecom to: 
* list of (string, Shellbuiltin) 8 1
  + int 15 1
    name .t332 ref Environment 0 0
    const bmods (16) int 6 0
eacom: 
tuple (string, Shellbuiltin) 10 1
  seq no type 10 1
    name name string 0 0
    seq no type 10 1
      call Shellbuiltin 10 1
        -> fn(): Shellbuiltin 12 1
          name mod Shellbuiltin 0 0
          name getself nothing 11 1
generate desc for (string, Shellbuiltin)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type Shellbuiltin offset 8 (d->offset=8 start=0) returns 8
generate desc for (string, Shellbuiltin)
	desc	$-1,16,"c0"
ecom: 
tuple (string, Shellbuiltin) 10 1
  seq no type 10 1
    name name string 0 0
    seq no type 10 1
      call Shellbuiltin 10 1
        -> fn(): Shellbuiltin 12 1
          name mod Shellbuiltin 0 0
          name getself nothing 11 1
ecom to: 
name .b333 (string, Shellbuiltin) 0 0
ecom: 
name name string 0 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b333 (string, Shellbuiltin) 0 0
    const (0) int 6 0
ecom: 
call Shellbuiltin 10 1
  -> fn(): Shellbuiltin 12 1
    name mod Shellbuiltin 0 0
    name getself nothing 11 1
ecom to: 
* Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b333 (string, Shellbuiltin) 0 0
    const (8) int 6 0
generate desc for big
ecom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom to: 
name .t338 list of (string, Shellbuiltin) 0 0
eacom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t338 ref Environment 0 0
generate desc for (string, Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b333 (string, Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name .b333 (string, Shellbuiltin) 0 0
ecom: 
= Shellbuiltin 10 1
  * Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b333 (string, Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b333 (string, Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= list of (string, Shellbuiltin) 10 1
  name .t338 list of (string, Shellbuiltin) 0 0
  name nil list of (string, Shellbuiltin) 1 0
ecom: 
name nil list of (string, Shellbuiltin) 1 0
ecom to: 
name .t338 list of (string, Shellbuiltin) 0 0
ecom: 
= ref Environment 10 1
  name .t332 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t332 ref Environment 0 0
ecom: 
used string 10 2
  call string 10 2
    name unloadmodule fn(ctxt: ref Context, name: string): string 11 1
    seq no type 10 1
      name ctxt ref Context 0 0
      seq no type 10 1
        name name string 0 0
ecom: 
call string 10 2
  name unloadmodule fn(ctxt: ref Context, name: string): string 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      name name string 0 0
ecom to: 
name .t338 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b337 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b337 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t338 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t338 string 0 0
ecom: 
call no type 10 2
  name diagnostic fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      + string 10 1
        const load: module init failed:  string 1 0
        name s string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b337 big 0 0
    const (64) int 6 0
ecom: 
+ string 10 1
  const load: module init failed:  string 1 0
  name s string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b337 big 0 0
    const (72) int 6 0
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: loadmodule
64: argument ctxt ref Context ref 7
72: argument name string ref 4
80: local .t334 int ref 1
84: local .t335 int ref 1
88: local path string ref 11
96: local .b337 big ref 5
104: local bl list of (string, Shellbuiltin) ref 5
112: local mod Shellbuiltin ref 4
120: local s string ref 4
128: local bname string ref 2
136: local .b333 (string, Shellbuiltin) ref 2
152: local .b336 big ref 1
160: local .t332 ref Environment ref 1
168: local .t338 list of (string, Shellbuiltin) ref 1
generate desc for loadmodule
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap name type string offset 72 (d->offset=72 start=0) returns 72
descmap .t334 type int offset 80 (d->offset=80 start=0) returns -1
descmap .t335 type int offset 84 (d->offset=84 start=0) returns -1
descmap path type string offset 88 (d->offset=88 start=0) returns 88
descmap .b337 type big offset 96 (d->offset=96 start=0) returns -1
descmap bl type list of (string, Shellbuiltin) offset 104 (d->offset=104 start=0) returns 104
descmap mod type Shellbuiltin offset 112 (d->offset=112 start=0) returns 112
descmap s type string offset 120 (d->offset=120 start=0) returns 120
descmap bname type string offset 128 (d->offset=128 start=0) returns 128
descmap adt offset 136
descmap offset 136
descmap t0 type string offset 136 (d->offset=0 start=136) returns 136
descmap t1 type Shellbuiltin offset 144 (d->offset=8 start=136) returns 144
descmap .b333 type (string, Shellbuiltin) offset 136 (d->offset=136 start=0) returns 144
descmap .b336 type big offset 152 (d->offset=152 start=0) returns -1
descmap .t332 type ref Environment offset 160 (d->offset=160 start=0) returns 160
descmap .t338 type list of (string, Shellbuiltin) offset 168 (d->offset=168 start=0) returns 168
fncom: unloadmodule 3 6e9a50
ecom: 
= list of (string, Shellbuiltin) 10 1
  name cl list of (string, Shellbuiltin) 0 0
  * list of (string, Shellbuiltin) 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const bmods (16) int 6 0
ecom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom to: 
name cl list of (string, Shellbuiltin) 0 0
eacom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t339 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t339 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t339 ref Environment 0 0
ecom: 
= (string, Shellbuiltin) 10 2
  tuple (string, Shellbuiltin) 10 1
    seq nothing 10 1
      name bname string 0 0
      seq nothing 10 1
        name bmod Shellbuiltin 0 0
  hd (string, Shellbuiltin) 10 1
    name cl list of (string, Shellbuiltin) 0 0
ecom: 
hd (string, Shellbuiltin) 10 1
  name cl list of (string, Shellbuiltin) 0 0
ecom to: 
name bname (string, Shellbuiltin) 0 0
generate desc for (string, Shellbuiltin)
ecom: 
= Shellbuiltin 10 1
  name mod Shellbuiltin 0 0
  name bmod Shellbuiltin 0 0
ecom: 
name bmod Shellbuiltin 0 0
ecom to: 
name mod Shellbuiltin 0 0
ecom: 
= list of (string, Shellbuiltin) 10 1
  name bl list of (string, Shellbuiltin) 0 0
  :: list of (string, Shellbuiltin) 10 1
    hd (string, Shellbuiltin) 10 1
      name cl list of (string, Shellbuiltin) 0 0
    name bl list of (string, Shellbuiltin) 0 0
ecom: 
:: list of (string, Shellbuiltin) 10 1
  hd (string, Shellbuiltin) 10 1
    name cl list of (string, Shellbuiltin) 0 0
  name bl list of (string, Shellbuiltin) 0 0
ecom to: 
name bl list of (string, Shellbuiltin) 0 0
eacom: 
hd (string, Shellbuiltin) 10 1
  name cl list of (string, Shellbuiltin) 0 0
generate desc for (string, Shellbuiltin)
ecom: 
hd (string, Shellbuiltin) 10 1
  name cl list of (string, Shellbuiltin) 0 0
ecom to: 
name .b340 (string, Shellbuiltin) 0 0
generate desc for (string, Shellbuiltin)
generate desc for (string, Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b340 (string, Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name .b340 (string, Shellbuiltin) 0 0
ecom: 
= Shellbuiltin 10 1
  * Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b340 (string, Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b340 (string, Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name bname (string, Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name bname (string, Shellbuiltin) 0 0
ecom: 
= Shellbuiltin 10 1
  * Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name bname (string, Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name bname (string, Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= Shellbuiltin 10 1
  name bmod Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name bmod Shellbuiltin 0 0
ecom: 
= list of (string, Shellbuiltin) 10 1
  name cl list of (string, Shellbuiltin) 0 0
  tl list of (string, Shellbuiltin) 10 1
    name cl list of (string, Shellbuiltin) 0 0
ecom: 
tl list of (string, Shellbuiltin) 10 1
  name cl list of (string, Shellbuiltin) 0 0
ecom to: 
name cl list of (string, Shellbuiltin) 0 0
ecom: 
call no type 10 2
  name diagnostic fn(ctxt: ref Context, s: string) 11 1
  seq no type 10 2
    name ctxt ref Context 0 0
    seq no type 10 2
      call string 10 2
        -> fn(s: string, nil: string, *): string 12 1
          name sys Sys 1 0
          name sprint nothing 11 1
        seq no type 10 1
          const module %s not found string 1 0
          seq no type 10 1
            name name string 0 0
generate desc for big
ecom: 
call string 10 2
  -> fn(s: string, nil: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const module %s not found string 1 0
    seq no type 10 1
      name name string 0 0
ecom to: 
name .t339 string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
generate desc for big
ecom: 
const module %s not found string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b342 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b342 big 0 0
    const (72) int 6 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b341 big 0 0
    const (64) int 6 0
ecom: 
name .t339 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b341 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t339 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t339 string 0 0
ecom: 
const not found string 1 0
ecom to: 
* string 8 0
  name .ret int 0 0
ecom: 
= list of (string, Shellbuiltin) 10 1
  * list of (string, Shellbuiltin) 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const bmods (16) int 6 0
  name nil polymorphic type 1 0
eacom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t339 ref Environment 0 0
ecom: 
name nil list of (string, Shellbuiltin) 1 0
ecom to: 
* list of (string, Shellbuiltin) 8 1
  + int 15 1
    name .t339 ref Environment 0 0
    const bmods (16) int 6 0
ecom: 
= ref Environment 10 1
  name .t339 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t339 ref Environment 0 0
ecom: 
= list of (string, Shellbuiltin) 10 2
  * list of (string, Shellbuiltin) 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const bmods (16) int 6 0
  :: list of (string, Shellbuiltin) 10 2
    hd (string, Shellbuiltin) 10 1
      name bl list of (string, Shellbuiltin) 0 0
    * list of (string, Shellbuiltin) 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const bmods (16) int 6 0
eacom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t339 ref Environment 0 0
ecom: 
:: list of (string, Shellbuiltin) 10 2
  hd (string, Shellbuiltin) 10 1
    name bl list of (string, Shellbuiltin) 0 0
  * list of (string, Shellbuiltin) 10 1
    + int 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
      const bmods (16) int 6 0
ecom to: 
* list of (string, Shellbuiltin) 8 1
  + int 15 1
    name .t339 ref Environment 0 0
    const bmods (16) int 6 0
eacom: 
hd (string, Shellbuiltin) 10 1
  name bl list of (string, Shellbuiltin) 0 0
generate desc for (string, Shellbuiltin)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type Shellbuiltin offset 8 (d->offset=8 start=0) returns 8
generate desc for (string, Shellbuiltin)
	desc	$-1,16,"c0"
ecom: 
hd (string, Shellbuiltin) 10 1
  name bl list of (string, Shellbuiltin) 0 0
ecom to: 
name .b340 (string, Shellbuiltin) 0 0
generate desc for (string, Shellbuiltin)
ecom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom to: 
name .t343 list of (string, Shellbuiltin) 0 0
eacom: 
* list of (string, Shellbuiltin) 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const bmods (16) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t343 ref Environment 0 0
generate desc for (string, Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b340 (string, Shellbuiltin) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name .b340 (string, Shellbuiltin) 0 0
ecom: 
= Shellbuiltin 10 1
  * Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b340 (string, Shellbuiltin) 0 0
      const t1 (8) int 6 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 0 0
  + int 13 1
    adr int 13 1
      name .b340 (string, Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= list of (string, Shellbuiltin) 10 1
  name .t343 list of (string, Shellbuiltin) 0 0
  name nil list of (string, Shellbuiltin) 1 0
ecom: 
name nil list of (string, Shellbuiltin) 1 0
ecom to: 
name .t343 list of (string, Shellbuiltin) 0 0
ecom: 
= ref Environment 10 1
  name .t339 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t339 ref Environment 0 0
ecom: 
= list of (string, Shellbuiltin) 10 1
  name bl list of (string, Shellbuiltin) 0 0
  tl list of (string, Shellbuiltin) 10 1
    name bl list of (string, Shellbuiltin) 0 0
ecom: 
tl list of (string, Shellbuiltin) 10 1
  name bl list of (string, Shellbuiltin) 0 0
ecom to: 
name bl list of (string, Shellbuiltin) 0 0
ecom: 
call no type 10 2
  name removebuiltinmod fn(b: ref Builtins, mod: Shellbuiltin) 11 1
  seq no type 10 2
    * ref Builtins 10 1
      + int 10 1
        * ref Environment 8 0
          name ctxt ref Context 0 0
        const builtins (8) int 6 0
    seq no type 10 1
      name mod Shellbuiltin 0 0
generate desc for big
ecom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const builtins (8) int 6 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b342 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  + int 10 1
    * ref Environment 8 0
      name ctxt ref Context 0 0
    const builtins (8) int 6 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t343 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t343 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t343 ref Environment 0 0
ecom: 
name mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b342 big 0 0
    const (72) int 6 0
ecom: 
call no type 10 2
  name removebuiltinmod fn(b: ref Builtins, mod: Shellbuiltin) 11 1
  seq no type 10 2
    * ref Builtins 10 1
      * ref Environment 8 0
        name ctxt ref Context 0 0
    seq no type 10 1
      name mod Shellbuiltin 0 0
generate desc for big
ecom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
ecom to: 
* ref Builtins 8 0
  + int 15 0
    name .b342 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .t343 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .t343 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .t343 ref Environment 0 0
ecom: 
name mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b342 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  name .ret int 0 0
fn: unloadmodule
64: argument ctxt ref Context ref 7
72: argument name string ref 2
80: local bl list of (string, Shellbuiltin) ref 6
88: local cl list of (string, Shellbuiltin) ref 6
96: local mod Shellbuiltin ref 4
104: local .b342 big ref 3
112: local bname string ref 2
120: local bmod Shellbuiltin ref 2
128: local .b340 (string, Shellbuiltin) ref 2
144: local .b341 big ref 1
152: local .t339 ref Environment ref 1
160: local .t343 list of (string, Shellbuiltin) ref 1
generate desc for unloadmodule
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap name type string offset 72 (d->offset=72 start=0) returns 72
descmap bl type list of (string, Shellbuiltin) offset 80 (d->offset=80 start=0) returns 80
descmap cl type list of (string, Shellbuiltin) offset 88 (d->offset=88 start=0) returns 88
descmap mod type Shellbuiltin offset 96 (d->offset=96 start=0) returns 96
descmap .b342 type big offset 104 (d->offset=104 start=0) returns -1
descmap bname type string offset 112 (d->offset=112 start=0) returns 112
descmap bmod type Shellbuiltin offset 120 (d->offset=120 start=0) returns 120
descmap adt offset 128
descmap offset 128
descmap t0 type string offset 128 (d->offset=0 start=128) returns 128
descmap t1 type Shellbuiltin offset 136 (d->offset=8 start=128) returns 136
descmap .b340 type (string, Shellbuiltin) offset 128 (d->offset=128 start=0) returns 136
descmap .b341 type big offset 144 (d->offset=144 start=0) returns -1
descmap .t339 type ref Environment offset 152 (d->offset=152 start=0) returns 152
descmap .t343 type list of (string, Shellbuiltin) offset 160 (d->offset=160 start=0) returns 160
fncom: executable 3 6e9b10
ecom: 
= (int, Sys->Dir) 10 1
  tuple (int, Sys->Dir) 10 1
    seq nothing 10 1
      name ok int 0 0
      seq nothing 10 1
        name info Sys->Dir 0 0
  name s (int, Sys->Dir) 0 0
ecom: 
name s (int, Sys->Dir) 0 0
ecom to: 
name ok (int, Sys->Dir) 0 0
generate desc for (int, Sys->Dir)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap adt offset 8
descmap offset 8
descmap name type string offset 8 (d->offset=0 start=8) returns 8
descmap uid type string offset 16 (d->offset=8 start=8) returns 16
descmap gid type string offset 24 (d->offset=16 start=8) returns 24
descmap muid type string offset 32 (d->offset=24 start=8) returns 32
descmap adt offset 40
descmap offset 40
descmap path type big offset 40 (d->offset=0 start=40) returns -1
descmap vers type int offset 48 (d->offset=8 start=40) returns -1
descmap qtype type int offset 52 (d->offset=12 start=40) returns -1
descmap qid type Sys->Qid offset 40 (d->offset=32 start=8) returns -1
descmap mode type int offset 56 (d->offset=48 start=8) returns -1
descmap atime type int offset 60 (d->offset=52 start=8) returns -1
descmap mtime type int offset 64 (d->offset=56 start=8) returns -1
descmap length type big offset 72 (d->offset=64 start=8) returns -1
descmap dtype type int offset 80 (d->offset=72 start=8) returns -1
descmap dev type int offset 84 (d->offset=76 start=8) returns -1
descmap t1 type Sys->Dir offset 8 (d->offset=8 start=0) returns 32
generate desc for (int, Sys->Dir)
	desc	$-1,88,"78"
ecom: 
&& int 10 2
  && int 10 2
    != int 10 1
      name ok int 0 0
      const (-1) int 6 0
    == int 10 1
      & int 10 1
        * int 0 0
          + int 13 1
            adr int 13 1
              name info Sys->Dir 0 0
            const mode (48) int 6 0
        const .i.80000000 (-2147483648) int 1 0
      const (0) int 6 0
  != int 10 1
    & int 10 1
      * int 0 0
        + int 13 1
          adr int 13 1
            name info Sys->Dir 0 0
          const mode (48) int 6 0
      name mode int 0 0
    const (0) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
eacom: 
& int 10 1
  * int 0 0
    + int 13 1
      adr int 13 1
        name info Sys->Dir 0 0
      const mode (48) int 6 0
  const .i.80000000 (-2147483648) int 1 0
ecom: 
& int 10 1
  * int 0 0
    + int 13 1
      adr int 13 1
        name info Sys->Dir 0 0
      const mode (48) int 6 0
  const .i.80000000 (-2147483648) int 1 0
ecom to: 
name .t344 int 0 0
eacom: 
& int 10 1
  * int 0 0
    + int 13 1
      adr int 13 1
        name info Sys->Dir 0 0
      const mode (48) int 6 0
  name mode int 0 0
ecom: 
& int 10 1
  * int 0 0
    + int 13 1
      adr int 13 1
        name info Sys->Dir 0 0
      const mode (48) int 6 0
  name mode int 0 0
ecom to: 
name .t344 int 0 0
fn: executable
64: argument s (int, Sys->Dir) ref 1
152: argument mode int ref 1
160: local ok int ref 2
168: local info Sys->Dir ref 3
248: local .t344 int ref 1
generate desc for executable
descmap offset 0
descmap adt offset 64
descmap offset 64
descmap t0 type int offset 64 (d->offset=0 start=64) returns -1
descmap adt offset 72
descmap offset 72
descmap name type string offset 72 (d->offset=0 start=72) returns 72
descmap uid type string offset 80 (d->offset=8 start=72) returns 80
descmap gid type string offset 88 (d->offset=16 start=72) returns 88
descmap muid type string offset 96 (d->offset=24 start=72) returns 96
descmap adt offset 104
descmap offset 104
descmap path type big offset 104 (d->offset=0 start=104) returns -1
descmap vers type int offset 112 (d->offset=8 start=104) returns -1
descmap qtype type int offset 116 (d->offset=12 start=104) returns -1
descmap qid type Sys->Qid offset 104 (d->offset=32 start=72) returns -1
descmap mode type int offset 120 (d->offset=48 start=72) returns -1
descmap atime type int offset 124 (d->offset=52 start=72) returns -1
descmap mtime type int offset 128 (d->offset=56 start=72) returns -1
descmap length type big offset 136 (d->offset=64 start=72) returns -1
descmap dtype type int offset 144 (d->offset=72 start=72) returns -1
descmap dev type int offset 148 (d->offset=76 start=72) returns -1
descmap t1 type Sys->Dir offset 72 (d->offset=8 start=64) returns 96
descmap s type (int, Sys->Dir) offset 64 (d->offset=64 start=0) returns 96
descmap mode type int offset 152 (d->offset=152 start=0) returns -1
descmap ok type int offset 160 (d->offset=160 start=0) returns -1
descmap adt offset 168
descmap offset 168
descmap name type string offset 168 (d->offset=0 start=168) returns 168
descmap uid type string offset 176 (d->offset=8 start=168) returns 176
descmap gid type string offset 184 (d->offset=16 start=168) returns 184
descmap muid type string offset 192 (d->offset=24 start=168) returns 192
descmap adt offset 200
descmap offset 200
descmap path type big offset 200 (d->offset=0 start=200) returns -1
descmap vers type int offset 208 (d->offset=8 start=200) returns -1
descmap qtype type int offset 212 (d->offset=12 start=200) returns -1
descmap qid type Sys->Qid offset 200 (d->offset=32 start=168) returns -1
descmap mode type int offset 216 (d->offset=48 start=168) returns -1
descmap atime type int offset 220 (d->offset=52 start=168) returns -1
descmap mtime type int offset 224 (d->offset=56 start=168) returns -1
descmap length type big offset 232 (d->offset=64 start=168) returns -1
descmap dtype type int offset 240 (d->offset=72 start=168) returns -1
descmap dev type int offset 244 (d->offset=76 start=168) returns -1
descmap info type Sys->Dir offset 168 (d->offset=168 start=0) returns 192
descmap .t344 type int offset 248 (d->offset=248 start=0) returns -1
fncom: quoted 7 4c3e28
ecom: 
= string 10 1
  name s string 0 0
  const  string 1 0
ecom: 
const  string 1 0
ecom to: 
name s string 0 0
ecom: 
= ref Listnode 10 1
  name el ref Listnode 0 0
  hd ref Listnode 10 1
    name val list of ref Listnode 0 0
ecom: 
hd ref Listnode 10 1
  name val list of ref Listnode 0 0
ecom to: 
name el ref Listnode 0 0
ecom: 
+= string 10 2
  name s string 0 0
  call string 10 2
    name quote fn(s: string, glob: int): string 11 1
    seq no type 10 1
      * string 8 0
        + int 15 1
          name el ref Listnode 0 0
          const word (8) int 6 0
      seq no type 10 1
        const (0) int 6 0
eacom: 
call string 10 2
  name quote fn(s: string, glob: int): string 11 1
  seq no type 10 1
    * string 8 0
      + int 15 1
        name el ref Listnode 0 0
        const word (8) int 6 0
    seq no type 10 1
      const (0) int 6 0
ecom: 
call string 10 2
  name quote fn(s: string, glob: int): string 11 1
  seq no type 10 1
    * string 8 0
      + int 15 1
        name el ref Listnode 0 0
        const word (8) int 6 0
    seq no type 10 1
      const (0) int 6 0
ecom to: 
name .t345 string 0 0
generate desc for big
ecom: 
* string 8 0
  + int 15 1
    name el ref Listnode 0 0
    const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b346 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b346 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t345 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t345 string 0 0
ecom: 
= string 10 2
  name cmd string 0 0
  call string 10 2
    name cmd2string fn(n: ref Node): string 11 1
    seq no type 10 1
      * ref Node 8 0
        name el ref Listnode 0 0
ecom: 
call string 10 2
  name cmd2string fn(n: ref Node): string 11 1
  seq no type 10 1
    * ref Node 8 0
      name el ref Listnode 0 0
ecom to: 
name cmd string 0 0
generate desc for big
ecom: 
* ref Node 8 0
  name el ref Listnode 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b346 big 0 0
    const (64) int 6 0
ecom: 
= string 10 2
  name cmd string 0 0
  call string 10 2
    name quote fn(s: string, glob: int): string 11 1
    seq no type 10 1
      name cmd string 0 0
      seq no type 10 1
        const (0) int 6 0
ecom: 
call string 10 2
  name quote fn(s: string, glob: int): string 11 1
  seq no type 10 1
    name cmd string 0 0
    seq no type 10 1
      const (0) int 6 0
ecom to: 
name cmd string 0 0
generate desc for big
ecom: 
name cmd string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b346 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b346 big 0 0
    const (72) int 6 0
ecom: 
+= string 10 1
  name s string 0 0
  name cmd string 0 0
ecom: 
= string 10 1
  name cmd string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name cmd string 0 0
eacom: 
tl list of ref Listnode 10 1
  name val list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name val list of ref Listnode 0 0
ecom to: 
name .t345 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t345 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t345 list of ref Listnode 0 0
ecom: 
= int 10 1
  inds int 10 1
    name s string 0 0
    len int 10 1
      name s string 0 0
  const (32) int 6 0
ecom: 
len int 10 1
  name s string 0 0
ecom to: 
name .t347 int 0 0
ecom: 
= ref Listnode 10 1
  name el ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name el ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name val list of ref Listnode 0 0
  tl list of ref Listnode 10 1
    name val list of ref Listnode 0 0
ecom: 
tl list of ref Listnode 10 1
  name val list of ref Listnode 0 0
ecom to: 
name val list of ref Listnode 0 0
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: quoted
64: argument val list of ref Listnode ref 5
72: argument quoteblocks int ref 2
76: local .t347 int ref 1
80: local s string ref 6
88: local el ref Listnode ref 5
96: local cmd string ref 4
104: local .b346 big ref 3
112: local .t345 string ref 1
generate desc for quoted
descmap offset 0
descmap val type list of ref Listnode offset 64 (d->offset=64 start=0) returns 64
descmap quoteblocks type int offset 72 (d->offset=72 start=0) returns -1
descmap .t347 type int offset 76 (d->offset=76 start=0) returns -1
descmap s type string offset 80 (d->offset=80 start=0) returns 80
descmap el type ref Listnode offset 88 (d->offset=88 start=0) returns 88
descmap cmd type string offset 96 (d->offset=96 start=0) returns 96
descmap .b346 type big offset 104 (d->offset=104 start=0) returns -1
descmap .t345 type string offset 112 (d->offset=112 start=0) returns 112
fncom: setstatus 4 6e9bd0
ecom: 
call no type 10 2
  name setlocal fn(ctxt: self ref Context, name: string, val: list of ref Listnode) 11 1
  seq nothing 10 1
    name ctxt ref Context 0 0
    seq no type 10 1
      const status string 1 0
      seq no type 10 1
        :: list of ref Listnode 10 1
          ref ref Listnode 10 1
            tuple Listnode 10 1
              seq no type 10 1
                name nil polymorphic type 1 0
                seq no type 10 1
                  name val string 0 0
          name nil polymorphic type 1 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b348 big 0 0
    const (64) int 6 0
ecom: 
const status string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b348 big 0 0
    const (72) int 6 0
ecom: 
:: list of ref Listnode 10 1
  ref ref Listnode 10 1
    tuple Listnode 10 1
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          name val string 0 0
  name nil polymorphic type 1 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b348 big 0 0
    const (80) int 6 0
eacom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name val string 0 0
ecom: 
ref ref Listnode 10 1
  tuple Listnode 10 1
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name val string 0 0
ecom to: 
name .t349 ref Listnode 0 0
generate desc for Listnode
ecom: 
tuple Listnode 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      name val string 0 0
ecom to: 
* Listnode 8 0
  name .t349 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t349 ref Listnode 0 0
    const (0) int 6 0
ecom: 
name val string 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Listnode 8 0
        name .t349 ref Listnode 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t350 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .t349 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .t349 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t350 list of ref Listnode 0 0
  name nil list of ref Listnode 1 0
ecom: 
name nil list of ref Listnode 1 0
ecom to: 
name .t350 list of ref Listnode 0 0
ecom: 
name val string 0 0
ecom to: 
* string 8 0
  name .ret int 0 0
fn: setstatus
64: argument ctxt ref Context ref 1
72: argument val string ref 2
80: local .b348 big ref 1
88: local .t349 ref Listnode ref 1
96: local .t350 list of ref Listnode ref 1
generate desc for setstatus
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap val type string offset 72 (d->offset=72 start=0) returns 72
descmap .b348 type big offset 80 (d->offset=80 start=0) returns -1
descmap .t349 type ref Listnode offset 88 (d->offset=88 start=0) returns 88
descmap .t350 type list of ref Listnode offset 96 (d->offset=96 start=0) returns 96
fncom: doparse 4 6e9c90
ecom: 
= string 10 1
  * string 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const prompt (112) int 6 0
  name prompt string 0 0
ecom: 
name prompt string 0 0
ecom to: 
* string 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const prompt (112) int 6 0
ecom: 
= string 10 1
  * string 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const err (32) int 6 0
  name nil polymorphic type 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const err (32) int 6 0
ecom: 
= ref Node 10 1
  * ref Node 8 0
    name l ref YYLEX 0 0
  name nil polymorphic type 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 8 0
  name l ref YYLEX 0 0
ecom: 
used int 10 2
  call int 10 2
    name yyparse fn(yylex: ref YYLEX): int 11 1
    seq no type 10 1
      name l ref YYLEX 0 0
ecom: 
call int 10 2
  name yyparse fn(yylex: ref YYLEX): int 11 1
  seq no type 10 1
    name l ref YYLEX 0 0
ecom to: 
name .t351 int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b352 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const lastnl (120) int 6 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const lastnl (120) int 6 0
ecom: 
= string 10 1
  * string 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const err (32) int 6 0
  const unknown error string 1 0
ecom: 
const unknown error string 1 0
ecom to: 
* string 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const err (32) int 6 0
ecom: 
= string 10 2
  name s string 0 0
  call string 10 2
    -> fn(s: string, nil: string, nil: int, nil: string, *): string 12 1
      name sys Sys 1 0
      name sprint nothing 11 1
    seq no type 10 1
      const %s:%d: %s string 1 0
      seq no type 10 1
        * string 8 0
          + int 15 1
            name l ref YYLEX 0 0
            const path (48) int 6 0
        seq no type 10 1
          * int 8 0
            + int 15 1
              name l ref YYLEX 0 0
              const errline (40) int 6 0
          seq no type 10 1
            * string 8 0
              + int 15 1
                name l ref YYLEX 0 0
                const err (32) int 6 0
ecom: 
call string 10 2
  -> fn(s: string, nil: string, nil: int, nil: string, *): string 12 1
    name sys Sys 1 0
    name sprint nothing 11 1
  seq no type 10 1
    const %s:%d: %s string 1 0
    seq no type 10 1
      * string 8 0
        + int 15 1
          name l ref YYLEX 0 0
          const path (48) int 6 0
      seq no type 10 1
        * int 8 0
          + int 15 1
            name l ref YYLEX 0 0
            const errline (40) int 6 0
        seq no type 10 1
          * string 8 0
            + int 15 1
              name l ref YYLEX 0 0
              const err (32) int 6 0
ecom to: 
name s string 0 0
generate desc for Sys->sprint
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap type string offset 72 returns 72
descmap type int offset 80 returns -1
descmap type string offset 88 returns 88
generate desc for big
ecom: 
const %s:%d: %s string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b352 big 0 0
    const (64) int 6 0
ecom: 
* string 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const path (48) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b352 big 0 0
    const (72) int 6 0
ecom: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const errline (40) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b352 big 0 0
    const (80) int 6 0
ecom: 
* string 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const err (32) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b352 big 0 0
    const (88) int 6 0
ecom: 
= string 10 1
  name s string 0 0
  + string 10 1
    + string 10 1
      * string 8 0
        + int 15 1
          name l ref YYLEX 0 0
          const path (48) int 6 0
      const : parse error:  string 1 0
    * string 8 0
      + int 15 1
        name l ref YYLEX 0 0
        const err (32) int 6 0
ecom: 
+ string 10 1
  + string 10 1
    * string 8 0
      + int 15 1
        name l ref YYLEX 0 0
        const path (48) int 6 0
    const : parse error:  string 1 0
  * string 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const err (32) int 6 0
ecom to: 
name s string 0 0
ecom: 
+ string 10 1
  * string 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const path (48) int 6 0
  const : parse error:  string 1 0
ecom to: 
name .t353 string 0 0
ecom: 
* string 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const path (48) int 6 0
ecom to: 
name .t353 string 0 0
ecom: 
= string 10 1
  name .t353 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t353 string 0 0
ecom: 
tuple (polymorphic type, string) 10 1
  seq no type 10 1
    name nil polymorphic type 1 0
    seq no type 10 1
      name s string 0 0
ecom to: 
* (polymorphic type, string) 8 0
  name .ret int 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  + int 15 1
    adr int 15 1
      * (polymorphic type, string) 8 0
        name .ret int 0 0
    const (0) int 6 0
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * (polymorphic type, string) 8 0
        name .ret int 0 0
    const (8) int 6 0
ecom: 
= string 10 1
  name s string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name s string 0 0
ecom: 
tuple (ref Node, polymorphic type) 10 1
  seq no type 10 1
    * ref Node 8 0
      name l ref YYLEX 0 0
    seq no type 10 1
      name nil polymorphic type 1 0
ecom to: 
* (ref Node, polymorphic type) 8 0
  name .ret int 0 0
ecom: 
* ref Node 8 0
  name l ref YYLEX 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * (ref Node, polymorphic type) 8 0
        name .ret int 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  + int 15 1
    adr int 15 1
      * (ref Node, polymorphic type) 8 0
        name .ret int 0 0
    const (8) int 6 0
fn: doparse
64: argument l ref YYLEX ref 15
72: argument prompt string ref 1
80: argument showline int ref 1
84: local .t351 int ref 1
88: local s string ref 3
96: local .b352 big ref 2
104: local .t353 string ref 1
generate desc for doparse
descmap offset 0
descmap l type ref YYLEX offset 64 (d->offset=64 start=0) returns 64
descmap prompt type string offset 72 (d->offset=72 start=0) returns 72
descmap showline type int offset 80 (d->offset=80 start=0) returns -1
descmap .t351 type int offset 84 (d->offset=84 start=0) returns -1
descmap s type string offset 88 (d->offset=88 start=0) returns 88
descmap .b352 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t353 type string offset 104 (d->offset=104 start=0) returns 104
fncom: initstring 3 4d3e10
ecom: 
= ref YYLEX 10 1
  name ret ref YYLEX 0 0
  ref ref YYLEX 10 1
    name blanklex YYLEX 1 0
ecom: 
ref ref YYLEX 10 1
  name blanklex YYLEX 1 0
ecom to: 
name ret ref YYLEX 0 0
generate desc for YYLEX
descmap adt offset 0
descmap offset 0
descmap adt offset 0
descmap offset 0
descmap node type ref Node offset 0 (d->offset=0 start=0) returns 0
descmap word type string offset 8 (d->offset=8 start=0) returns 8
descmap redir type ref Redir offset 16 (d->offset=16 start=0) returns 16
descmap optype type int offset 24 (d->offset=24 start=0) returns -1
descmap lval type YYSTYPE offset 0 (d->offset=0 start=0) returns 16
descmap err type string offset 32 (d->offset=32 start=0) returns 32
descmap errline type int offset 40 (d->offset=40 start=0) returns -1
descmap path type string offset 48 (d->offset=48 start=0) returns 48
descmap wasdollar type int offset 56 (d->offset=56 start=0) returns -1
descmap atendword type int offset 60 (d->offset=60 start=0) returns -1
descmap eof type int offset 64 (d->offset=64 start=0) returns -1
descmap cbuf type array of int offset 72 (d->offset=72 start=0) returns 72
descmap ncbuf type int offset 80 (d->offset=80 start=0) returns -1
descmap f type ref Bufio->Iobuf offset 88 (d->offset=88 start=0) returns 88
descmap s type string offset 96 (d->offset=96 start=0) returns 96
descmap strpos type int offset 104 (d->offset=104 start=0) returns -1
descmap linenum type int offset 108 (d->offset=108 start=0) returns -1
descmap prompt type string offset 112 (d->offset=112 start=0) returns 112
descmap lastnl type int offset 120 (d->offset=120 start=0) returns -1
generate desc for YYLEX
	desc	$-1,128,"ea5a"
ecom: 
name blanklex YYLEX 1 0
ecom to: 
* YYLEX 8 0
  name .t354 ref YYLEX 0 0
generate desc for YYLEX
ecom: 
= ref YYLEX 10 1
  name .t354 ref YYLEX 0 0
  name nil ref YYLEX 1 0
ecom: 
name nil ref YYLEX 1 0
ecom to: 
name .t354 ref YYLEX 0 0
ecom: 
= string 10 1
  * string 8 0
    + int 15 1
      name ret ref YYLEX 0 0
      const s (96) int 6 0
  name s string 0 0
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  + int 15 1
    name ret ref YYLEX 0 0
    const s (96) int 6 0
ecom: 
= string 10 1
  * string 8 0
    + int 15 1
      name ret ref YYLEX 0 0
      const path (48) int 6 0
  const internal string 1 0
ecom: 
const internal string 1 0
ecom to: 
* string 8 0
  + int 15 1
    name ret ref YYLEX 0 0
    const path (48) int 6 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name ret ref YYLEX 0 0
      const strpos (104) int 6 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name ret ref YYLEX 0 0
    const strpos (104) int 6 0
ecom: 
name ret ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  name .ret int 0 0
fn: initstring
64: argument s string ref 1
72: local ret ref YYLEX ref 5
80: local .t354 ref YYLEX ref 1
generate desc for YYLEX.initstring
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap ret type ref YYLEX offset 72 (d->offset=72 start=0) returns 72
descmap .t354 type ref YYLEX offset 80 (d->offset=80 start=0) returns 80
fncom: initfile 2 4d4430
ecom: 
= ref YYLEX 10 1
  name lex ref YYLEX 0 0
  ref ref YYLEX 10 1
    name blanklex YYLEX 1 0
ecom: 
ref ref YYLEX 10 1
  name blanklex YYLEX 1 0
ecom to: 
name lex ref YYLEX 0 0
generate desc for YYLEX
ecom: 
name blanklex YYLEX 1 0
ecom to: 
* YYLEX 8 0
  name .t355 ref YYLEX 0 0
generate desc for YYLEX
ecom: 
= ref YYLEX 10 1
  name .t355 ref YYLEX 0 0
  name nil ref YYLEX 1 0
ecom: 
name nil ref YYLEX 1 0
ecom to: 
name .t355 ref YYLEX 0 0
ecom: 
= ref Bufio->Iobuf 10 2
  * ref Bufio->Iobuf 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const f (88) int 6 0
  call ref Bufio->Iobuf 10 2
    -> fn(fd: ref Sys->FD, mode: int): ref Bufio->Iobuf 12 1
      name bufio Bufio 1 0
      name fopen nothing 11 1
    seq no type 10 1
      name fd ref Sys->FD 0 0
      seq no type 10 1
        const OREAD (0) int 6 0
ecom: 
call ref Bufio->Iobuf 10 2
  -> fn(fd: ref Sys->FD, mode: int): ref Bufio->Iobuf 12 1
    name bufio Bufio 1 0
    name fopen nothing 11 1
  seq no type 10 1
    name fd ref Sys->FD 0 0
    seq no type 10 1
      const OREAD (0) int 6 0
ecom to: 
* ref Bufio->Iobuf 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const f (88) int 6 0
generate desc for big
ecom: 
name fd ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b356 big 0 0
    const (64) int 6 0
ecom: 
const OREAD (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b356 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  * string 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const path (48) int 6 0
  name path string 0 0
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const path (48) int 6 0
ecom: 
= array of int 10 1
  * array of int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const cbuf (72) int 6 0
  array array of int 10 1
    const (2) int 6 0
ecom: 
array array of int 10 1
  const (2) int 6 0
ecom to: 
* array of int 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const cbuf (72) int 6 0
generate desc for int
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const linenum (108) int 6 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const linenum (108) int 6 0
ecom: 
= string 10 1
  * string 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const prompt (112) int 6 0
  const  string 1 0
ecom: 
const  string 1 0
ecom to: 
* string 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const prompt (112) int 6 0
ecom: 
name lex ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  name .ret int 0 0
fn: initfile
64: argument fd ref Sys->FD ref 1
72: argument path string ref 1
80: local lex ref YYLEX ref 7
88: local .b356 big ref 1
96: local .t355 ref YYLEX ref 1
generate desc for YYLEX.initfile
descmap offset 0
descmap fd type ref Sys->FD offset 64 (d->offset=64 start=0) returns 64
descmap path type string offset 72 (d->offset=72 start=0) returns 72
descmap lex type ref YYLEX offset 80 (d->offset=80 start=0) returns 80
descmap .b356 type big offset 88 (d->offset=88 start=0) returns -1
descmap .t355 type ref YYLEX offset 96 (d->offset=96 start=0) returns 96
fncom: error 2 4d51a0
ecom: 
= string 10 1
  * string 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const err (32) int 6 0
  name s string 0 0
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const err (32) int 6 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const errline (40) int 6 0
  * int 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const linenum (108) int 6 0
ecom: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const linenum (108) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const errline (40) int 6 0
fn: error
64: argument l ref YYLEX ref 4
72: argument s string ref 1
generate desc for YYLEX.error
descmap offset 0
descmap l type ref YYLEX offset 64 (d->offset=64 start=0) returns 64
descmap s type string offset 72 (d->offset=72 start=0) returns 72
fncom: lex 2 4d4c30
ecom: 
= int 10 1
  name endword int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name endword int 0 0
ecom: 
= int 10 1
  name wasdollar int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name wasdollar int 0 0
ecom: 
= int 10 1
  name tok int 0 0
  const NOTOKEN (-1) int 6 0
ecom: 
const NOTOKEN (-1) int 6 0
ecom to: 
name tok int 0 0
eacom: 
= int 10 2
  name c int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom: 
= int 10 2
  name c int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom to: 
name .t357 int 0 0
ecom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
ecom to: 
name c int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  name tok int 0 0
  const END (57350) int 6 0
ecom: 
const END (57350) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= int 10 1
  name tok int 0 0
  const (10) int 6 0
ecom: 
const (10) int 6 0
ecom to: 
name tok int 0 0
eacom: 
= int 10 2
  name c int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom: 
= int 10 2
  name c int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom to: 
name .t357 int 0 0
ecom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
ecom to: 
name c int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
call no type 10 2
  name ungetc fn(lex: self ref YYLEX) 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  name tok int 0 0
  const (59) int 6 0
ecom: 
const (59) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= int 10 2
  name c int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
ecom to: 
name c int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  name tok int 0 0
  const ANDAND (57352) int 6 0
ecom: 
const ANDAND (57352) int 6 0
ecom to: 
name tok int 0 0
ecom: 
call no type 10 2
  name ungetc fn(lex: self ref YYLEX) 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  name tok int 0 0
  const (38) int 6 0
ecom: 
const (38) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= int 10 1
  name tok int 0 0
  const (94) int 6 0
ecom: 
const (94) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= int 10 1
  name tok int 0 0
  const (123) int 6 0
ecom: 
const (123) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= int 10 1
  name tok int 0 0
  const (125) int 6 0
ecom: 
const (125) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= int 10 1
  name tok int 0 0
  const (41) int 6 0
ecom: 
const (41) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= int 10 1
  name tok int 0 0
  const (40) int 6 0
ecom: 
const (40) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= (int, int) 10 2
  tuple (int, int) 10 1
    seq no type 10 1
      name tok int 0 0
      seq no type 10 1
        * int 8 0
          + int 15 1
            name l ref YYLEX 0 0
            const optype (24) int 6 0
  tuple (int, int) 10 1
    seq no type 10 1
      const (61) int 6 0
      seq no type 10 1
        const n_ASSIGN (15) int 6 0
ecom: 
= int 10 1
  name tok int 0 0
  const (61) int 6 0
ecom: 
const (61) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const optype (24) int 6 0
  const n_ASSIGN (15) int 6 0
ecom: 
const n_ASSIGN (15) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const optype (24) int 6 0
ecom: 
call no type 10 2
  name ungetc fn(lex: self ref YYLEX) 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  name tok int 0 0
  const (94) int 6 0
ecom: 
const (94) int 6 0
ecom to: 
name tok int 0 0
eacom: 
= int 10 2
  name c int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom: 
= int 10 2
  name c int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom to: 
name .t357 int 0 0
ecom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
ecom to: 
name c int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const optype (24) int 6 0
  const n_COUNT (14) int 6 0
ecom: 
const n_COUNT (14) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const optype (24) int 6 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const optype (24) int 6 0
  const n_SQUASH (13) int 6 0
ecom: 
const n_SQUASH (13) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const optype (24) int 6 0
ecom: 
call no type 10 2
  name ungetc fn(lex: self ref YYLEX) 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const optype (24) int 6 0
  const n_VAR (1) int 6 0
ecom: 
const n_VAR (1) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const optype (24) int 6 0
ecom: 
= int 10 1
  name tok int 0 0
  const OP (57349) int 6 0
ecom: 
const OP (57349) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= int 10 1
  name wasdollar int 0 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
name wasdollar int 0 0
ecom: 
= int 10 1
  name tok int 0 0
  const (94) int 6 0
ecom: 
const (94) int 6 0
ecom to: 
name tok int 0 0
ecom: 
call no type 10 2
  name ungetc fn(lex: self ref YYLEX) 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  name tok int 0 0
  const OP (57349) int 6 0
ecom: 
const OP (57349) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const optype (24) int 6 0
  const n_BQ2 (3) int 6 0
ecom: 
const n_BQ2 (3) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const optype (24) int 6 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const optype (24) int 6 0
  const n_BQ (2) int 6 0
ecom: 
const n_BQ (2) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const optype (24) int 6 0
ecom: 
= int 10 2
  name nc int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
ecom to: 
name nc int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  name rtype int 0 0
  const (524289) int 6 0
ecom: 
const (524289) int 6 0
ecom to: 
name rtype int 0 0
ecom: 
= int 10 1
  name rtype int 0 0
  const ORDWR (2) int 6 0
ecom: 
const ORDWR (2) int 6 0
ecom to: 
name rtype int 0 0
ecom: 
= int 10 2
  name nc int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
ecom to: 
name nc int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  name rtype int 0 0
  const OWRITE (1) int 6 0
ecom: 
const OWRITE (1) int 6 0
ecom to: 
name rtype int 0 0
ecom: 
= int 10 1
  name rtype int 0 0
  const OREAD (0) int 6 0
ecom: 
const OREAD (0) int 6 0
ecom to: 
name rtype int 0 0
ecom: 
= int 10 1
  name tok int 0 0
  const REDIR (57347) int 6 0
ecom: 
const REDIR (57347) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= (int, ref Redir) 10 2
  tuple (int, ref Redir) 10 1
    seq no type 10 1
      name tok int 0 0
      seq no type 10 1
        * ref Redir 8 0
          + int 15 1
            name l ref YYLEX 0 0
            const redir (16) int 6 0
  call (int, ref Redir) 10 2
    name readfdassign fn(lex: ref YYLEX): (int, ref Redir) 11 1
    seq no type 10 1
      name l ref YYLEX 0 0
generate desc for (int, ref Redir)
descmap adt offset 0
descmap offset 0
descmap t0 type int offset 0 (d->offset=0 start=0) returns -1
descmap t1 type ref Redir offset 8 (d->offset=8 start=0) returns 8
generate desc for (int, ref Redir)
	desc	$-1,16,"40"
ecom: 
call (int, ref Redir) 10 2
  name readfdassign fn(lex: ref YYLEX): (int, ref Redir) 11 1
  seq no type 10 1
    name l ref YYLEX 0 0
ecom to: 
name .b359 (int, ref Redir) 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= ref Redir 10 1
  * ref Redir 0 0
    + int 13 1
      adr int 13 1
        name .b359 (int, ref Redir) 0 0
      const t1 (8) int 6 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
* ref Redir 0 0
  + int 13 1
    adr int 13 1
      name .b359 (int, ref Redir) 0 0
    const t1 (8) int 6 0
ecom: 
= (string, int) 10 2
  tuple (string, int) 10 1
    seq no type 10 1
      * string 8 0
        + int 15 1
          name l ref YYLEX 0 0
          const err (32) int 6 0
      seq no type 10 1
        * int 8 0
          + int 15 1
            name l ref YYLEX 0 0
            const errline (40) int 6 0
  tuple (string, int) 10 1
    seq no type 10 1
      const syntax error in redirection string 1 0
      seq no type 10 1
        * int 8 0
          + int 15 1
            name l ref YYLEX 0 0
            const linenum (108) int 6 0
generate desc for (string, int)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type int offset 8 (d->offset=8 start=0) returns -1
generate desc for (string, int)
	desc	$-1,16,"80"
ecom: 
tuple (string, int) 10 1
  seq no type 10 1
    const syntax error in redirection string 1 0
    seq no type 10 1
      * int 8 0
        + int 15 1
          name l ref YYLEX 0 0
          const linenum (108) int 6 0
ecom to: 
name .b360 (string, int) 0 0
ecom: 
const syntax error in redirection string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b360 (string, int) 0 0
    const (0) int 6 0
ecom: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const linenum (108) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      name .b360 (string, int) 0 0
    const (8) int 6 0
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b360 (string, int) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name .b360 (string, int) 0 0
ecom: 
call no type 10 2
  name ungetc fn(lex: self ref YYLEX) 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= ref Redir 10 1
  * ref Redir 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const redir (16) int 6 0
  ref ref Redir 10 1
    tuple Redir 10 1
      seq no type 10 1
        const (-1) int 6 0
        seq no type 10 1
          const (-1) int 6 0
          seq no type 10 1
            const (-1) int 6 0
ecom: 
ref ref Redir 10 1
  tuple Redir 10 1
    seq no type 10 1
      const (-1) int 6 0
      seq no type 10 1
        const (-1) int 6 0
        seq no type 10 1
          const (-1) int 6 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const redir (16) int 6 0
generate desc for Redir
ecom: 
tuple Redir 10 1
  seq no type 10 1
    const (-1) int 6 0
    seq no type 10 1
      const (-1) int 6 0
      seq no type 10 1
        const (-1) int 6 0
ecom to: 
* Redir 8 0
  name .t361 ref Redir 0 0
ecom: 
const (-1) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Redir 8 0
        name .t361 ref Redir 0 0
    const (0) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Redir 8 0
        name .t361 ref Redir 0 0
    const (4) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Redir 8 0
        name .t361 ref Redir 0 0
    const (8) int 6 0
ecom: 
= ref Redir 10 1
  name .t361 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .t361 ref Redir 0 0
ecom: 
= int 10 1
  * int 10 1
    * ref Redir 8 0
      + int 15 1
        name l ref YYLEX 0 0
        const redir (16) int 6 0
  name rtype int 0 0
eacom: 
* int 10 1
  * ref Redir 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const redir (16) int 6 0
ecom: 
* ref Redir 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const redir (16) int 6 0
ecom to: 
name .t361 ref Redir 0 0
ecom: 
name rtype int 0 0
ecom to: 
* int 8 1
  name .t361 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .t361 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .t361 ref Redir 0 0
ecom: 
= int 10 1
  name tok int 0 0
  const (124) int 6 0
ecom: 
const (124) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= ref Redir 10 1
  * ref Redir 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const redir (16) int 6 0
  name nil polymorphic type 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const redir (16) int 6 0
eacom: 
= int 10 2
  name c int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom: 
= int 10 2
  name c int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom to: 
name .t357 int 0 0
ecom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
ecom to: 
name c int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= (int, ref Redir) 10 2
  tuple (int, ref Redir) 10 1
    seq no type 10 1
      name tok int 0 0
      seq no type 10 1
        * ref Redir 8 0
          + int 15 1
            name l ref YYLEX 0 0
            const redir (16) int 6 0
  call (int, ref Redir) 10 2
    name readfdassign fn(lex: ref YYLEX): (int, ref Redir) 11 1
    seq no type 10 1
      name l ref YYLEX 0 0
generate desc for (int, ref Redir)
ecom: 
call (int, ref Redir) 10 2
  name readfdassign fn(lex: ref YYLEX): (int, ref Redir) 11 1
  seq no type 10 1
    name l ref YYLEX 0 0
ecom to: 
name .b359 (int, ref Redir) 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= ref Redir 10 1
  * ref Redir 0 0
    + int 13 1
      adr int 13 1
        name .b359 (int, ref Redir) 0 0
      const t1 (8) int 6 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
* ref Redir 0 0
  + int 13 1
    adr int 13 1
      name .b359 (int, ref Redir) 0 0
    const t1 (8) int 6 0
ecom: 
= (string, int) 10 2
  tuple (string, int) 10 1
    seq no type 10 1
      * string 8 0
        + int 15 1
          name l ref YYLEX 0 0
          const err (32) int 6 0
      seq no type 10 1
        * int 8 0
          + int 15 1
            name l ref YYLEX 0 0
            const errline (40) int 6 0
  tuple (string, int) 10 1
    seq no type 10 1
      const syntax error in pipe redirection string 1 0
      seq no type 10 1
        * int 8 0
          + int 15 1
            name l ref YYLEX 0 0
            const linenum (108) int 6 0
generate desc for (string, int)
descmap adt offset 0
descmap offset 0
descmap t0 type string offset 0 (d->offset=0 start=0) returns 0
descmap t1 type int offset 8 (d->offset=8 start=0) returns -1
generate desc for (string, int)
	desc	$-1,16,"80"
ecom: 
tuple (string, int) 10 1
  seq no type 10 1
    const syntax error in pipe redirection string 1 0
    seq no type 10 1
      * int 8 0
        + int 15 1
          name l ref YYLEX 0 0
          const linenum (108) int 6 0
ecom to: 
name .b360 (string, int) 0 0
ecom: 
const syntax error in pipe redirection string 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b360 (string, int) 0 0
    const (0) int 6 0
ecom: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const linenum (108) int 6 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      name .b360 (string, int) 0 0
    const (8) int 6 0
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b360 (string, int) 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
* string 0 0
  adr int 13 1
    name .b360 (string, int) 0 0
ecom: 
name tok int 0 0
ecom to: 
* int 8 0
  name .ret int 0 0
ecom: 
= int 10 1
  name tok int 0 0
  const (124) int 6 0
ecom: 
const (124) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= int 10 1
  name tok int 0 0
  const OROR (57353) int 6 0
ecom: 
const OROR (57353) int 6 0
ecom to: 
name tok int 0 0
ecom: 
call no type 10 2
  name ungetc fn(lex: self ref YYLEX) 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
call no type 10 2
  name ungetc fn(lex: self ref YYLEX) 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  name tok int 0 0
  const (94) int 6 0
ecom: 
const (94) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= string 10 1
  name s string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name s string 0 0
ecom: 
= int 10 1
  name startline int 0 0
  * int 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const linenum (108) int 6 0
ecom: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const linenum (108) int 6 0
ecom to: 
name startline int 0 0
ecom: 
= string 10 1
  name s string 0 0
  const  string 1 0
ecom: 
const  string 1 0
ecom to: 
name s string 0 0
eacom: 
= int 10 2
  name nc int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom: 
= int 10 2
  name nc int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom to: 
name .t357 int 0 0
ecom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
ecom to: 
name nc int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  inds int 10 1
    name s string 0 0
    len int 10 1
      name s string 0 0
  name nc int 0 0
ecom: 
len int 10 1
  name s string 0 0
ecom to: 
name .t357 int 0 0
ecom: 
= (string, int) 10 2
  tuple (string, int) 10 1
    seq no type 10 1
      * string 8 0
        + int 15 1
          name l ref YYLEX 0 0
          const err (32) int 6 0
      seq no type 10 1
        * int 8 0
          + int 15 1
            name l ref YYLEX 0 0
            const errline (40) int 6 0
  tuple (string, int) 10 1
    seq no type 10 1
      const unterminated string literal string 1 0
      seq no type 10 1
        name startline int 0 0
ecom: 
= string 10 1
  * string 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const err (32) int 6 0
  const unterminated string literal string 1 0
ecom: 
const unterminated string literal string 1 0
ecom to: 
* string 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const err (32) int 6 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const errline (40) int 6 0
  name startline int 0 0
ecom: 
name startline int 0 0
ecom to: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const errline (40) int 6 0
ecom: 
const ERROR (57351) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
eacom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
ecom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
ecom to: 
name .t357 int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
call no type 10 2
  name ungetc fn(lex: self ref YYLEX) 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  inds int 10 1
    name s string 0 0
    len int 10 1
      name s string 0 0
  const (39) int 6 0
ecom: 
len int 10 1
  name s string 0 0
ecom to: 
name .t357 int 0 0
ecom: 
= string 10 1
  * string 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const word (8) int 6 0
  name s string 0 0
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const word (8) int 6 0
ecom: 
= int 10 1
  name tok int 0 0
  const WORD (57348) int 6 0
ecom: 
const WORD (57348) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= int 10 1
  name endword int 0 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
name endword int 0 0
ecom: 
= string 10 1
  name s string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name s string 0 0
eacom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
ecom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
ecom to: 
name .t357 int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  name tok int 0 0
  const (61) int 6 0
ecom: 
const (61) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const optype (24) int 6 0
  const n_LOCAL (16) int 6 0
ecom: 
const n_LOCAL (16) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const optype (24) int 6 0
ecom: 
= string 10 1
  name word string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name word string 0 0
ecom: 
= string 10 1
  name allowed string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name allowed string 0 0
ecom: 
call no type 10 2
  name ungetc fn(lex: self ref YYLEX) 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
call no type 10 2
  name ungetc fn(lex: self ref YYLEX) 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  name tok int 0 0
  const (94) int 6 0
ecom: 
const (94) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= string 10 1
  name word string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name word string 0 0
ecom: 
= string 10 1
  name allowed string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name allowed string 0 0
ecom: 
= string 10 1
  name allowed string 0 0
  const a-zA-Z0-9*_ string 1 0
ecom: 
const a-zA-Z0-9*_ string 1 0
ecom to: 
name allowed string 0 0
ecom: 
= string 10 1
  name allowed string 0 0
  const ^
 	
|$'#<>;^(){}`&=" string 1 0
ecom: 
const ^
 	
|$'#<>;^(){}`&=" string 1 0
ecom to: 
name allowed string 0 0
ecom: 
= string 10 1
  name word string 0 0
    vardecl string 10 1
      seq nothing 10 1
  const  string 1 0
ecom: 
const  string 1 0
ecom to: 
name word string 0 0
  vardecl string 10 1
    seq nothing 10 1
ecom: 
= int 10 1
  inds int 10 1
    name word string 0 0
    len int 10 1
      name word string 0 0
  const GLOB (1) int 6 0
ecom: 
len int 10 1
  name word string 0 0
ecom to: 
name .t357 int 0 0
ecom: 
= int 10 2
  name nc int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
ecom to: 
name nc int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
call no type 10 2
  name ungetc fn(lex: self ref YYLEX) 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  inds int 10 1
    name word string 0 0
    len int 10 1
      name word string 0 0
  name c int 0 0
ecom: 
len int 10 1
  name word string 0 0
ecom to: 
name .t357 int 0 0
eacom: 
= int 10 2
  name c int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom: 
= int 10 2
  name c int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name l ref YYLEX 0 0
ecom to: 
name .t357 int 0 0
ecom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
ecom to: 
name c int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
eacom: 
call int 10 2
  -> fn(c: int, cl: string): int 12 1
    name str String 1 0
    name in nothing 11 1
  seq no type 10 1
    name c int 0 0
    seq no type 10 1
      name allowed string 0 0
ecom: 
call int 10 2
  -> fn(c: int, cl: string): int 12 1
    name str String 1 0
    name in nothing 11 1
  seq no type 10 1
    name c int 0 0
    seq no type 10 1
      name allowed string 0 0
ecom to: 
name .t357 int 0 0
generate desc for big
ecom: 
name c int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
name allowed string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b358 big 0 0
    const (72) int 6 0
ecom: 
call no type 10 2
  name ungetc fn(lex: self ref YYLEX) 11 1
  seq nothing 10 1
    name l ref YYLEX 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b358 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  * string 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const word (8) int 6 0
  name word string 0 0
ecom: 
name word string 0 0
ecom to: 
* string 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const word (8) int 6 0
ecom: 
= int 10 1
  name tok int 0 0
  const WORD (57348) int 6 0
ecom: 
const WORD (57348) int 6 0
ecom to: 
name tok int 0 0
ecom: 
= int 10 1
  name endword int 0 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
name endword int 0 0
ecom: 
= string 10 1
  name word string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name word string 0 0
ecom: 
= string 10 1
  name allowed string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name allowed string 0 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const atendword (60) int 6 0
  name endword int 0 0
ecom: 
name endword int 0 0
ecom to: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const atendword (60) int 6 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name l ref YYLEX 0 0
      const wasdollar (56) int 6 0
  name wasdollar int 0 0
ecom: 
name wasdollar int 0 0
ecom to: 
* int 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const wasdollar (56) int 6 0
ecom: 
name tok int 0 0
ecom to: 
* int 8 0
  name .ret int 0 0
fn: lex
64: argument l ref YYLEX ref 63
72: local tok int ref 32
76: local c int ref 16
80: local rtype int ref 5
84: local endword int ref 4
88: local nc int ref 4
92: local wasdollar int ref 3
96: local .t357 int ref 1
104: local .b358 big ref 28
112: local s string ref 6
120: local word string ref 6
128: local allowed string ref 3
136: local .b359 (int, ref Redir) ref 2
152: local .b360 (string, int) ref 2
168: local .t361 ref Redir ref 1
88: local nc int ref 4
80: local nc int ref 2
80: local startline int ref 2
generate desc for YYLEX.lex
descmap offset 0
descmap l type ref YYLEX offset 64 (d->offset=64 start=0) returns 64
descmap tok type int offset 72 (d->offset=72 start=0) returns -1
descmap c type int offset 76 (d->offset=76 start=0) returns -1
descmap rtype type int offset 80 (d->offset=80 start=0) returns -1
descmap endword type int offset 84 (d->offset=84 start=0) returns -1
descmap nc type int offset 88 (d->offset=88 start=0) returns -1
descmap wasdollar type int offset 92 (d->offset=92 start=0) returns -1
descmap .t357 type int offset 96 (d->offset=96 start=0) returns -1
descmap .b358 type big offset 104 (d->offset=104 start=0) returns -1
descmap s type string offset 112 (d->offset=112 start=0) returns 112
descmap word type string offset 120 (d->offset=120 start=0) returns 120
descmap allowed type string offset 128 (d->offset=128 start=0) returns 128
descmap adt offset 136
descmap offset 136
descmap t0 type int offset 136 (d->offset=0 start=136) returns -1
descmap t1 type ref Redir offset 144 (d->offset=8 start=136) returns 144
descmap .b359 type (int, ref Redir) offset 136 (d->offset=136 start=0) returns 144
descmap adt offset 152
descmap offset 152
descmap t0 type string offset 152 (d->offset=0 start=152) returns 152
descmap t1 type int offset 160 (d->offset=8 start=152) returns -1
descmap .b360 type (string, int) offset 152 (d->offset=152 start=0) returns 152
descmap .t361 type ref Redir offset 168 (d->offset=168 start=0) returns 168
fncom: tokstr 1 6e9d50
fncom: ungetc 15 4d5be0
ecom: 
-- int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const strpos (104) int 6 0
  const (1) int 6 0
ecom: 
++ int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const ncbuf (80) int 6 0
  const (1) int 6 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const strpos (104) int 6 0
  - int 10 1
    len int 10 1
      * array of int 8 0
        + int 15 1
          name lex ref YYLEX 0 0
          const cbuf (72) int 6 0
    const (1) int 6 0
ecom: 
- int 10 1
  len int 10 1
    * array of int 8 0
      + int 15 1
        name lex ref YYLEX 0 0
        const cbuf (72) int 6 0
  const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const strpos (104) int 6 0
ecom: 
len int 10 1
  * array of int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const cbuf (72) int 6 0
ecom to: 
name .t362 int 0 0
fn: ungetc
64: argument lex ref YYLEX ref 6
72: local .t362 int ref 1
generate desc for YYLEX.ungetc
descmap offset 0
descmap lex type ref YYLEX offset 64 (d->offset=64 start=0) returns 64
descmap .t362 type int offset 72 (d->offset=72 start=0) returns -1
fncom: getc 16 4d5720
ecom: 
const EOF (-1) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
ecom: 
= int 10 1
  name c int 0 0
  * int 10 1
    indx big 10 1
      * array of int 8 0
        + int 15 1
          name lex ref YYLEX 0 0
          const cbuf (72) int 6 0
      ++ int 10 1
        * int 8 0
          + int 15 1
            name lex ref YYLEX 0 0
            const strpos (104) int 6 0
        const (1) int 6 0
ecom: 
* int 10 1
  indx big 10 1
    * array of int 8 0
      + int 15 1
        name lex ref YYLEX 0 0
        const cbuf (72) int 6 0
    ++ int 10 1
      * int 8 0
        + int 15 1
          name lex ref YYLEX 0 0
          const strpos (104) int 6 0
      const (1) int 6 0
ecom to: 
name c int 0 0
eacom: 
* int 10 1
  indx big 10 1
    * array of int 8 0
      + int 15 1
        name lex ref YYLEX 0 0
        const cbuf (72) int 6 0
    ++ int 10 1
      * int 8 0
        + int 15 1
          name lex ref YYLEX 0 0
          const strpos (104) int 6 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  * array of int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const cbuf (72) int 6 0
  ++ int 10 1
    * int 8 0
      + int 15 1
        name lex ref YYLEX 0 0
        const strpos (104) int 6 0
    const (1) int 6 0
ecom to: 
name .b363 big 0 0
eacom: 
++ int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const strpos (104) int 6 0
  const (1) int 6 0
ecom: 
++ int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const strpos (104) int 6 0
  const (1) int 6 0
ecom to: 
name .t364 int 0 0
eacom: 
len int 10 1
  * array of int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const cbuf (72) int 6 0
ecom: 
len int 10 1
  * array of int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const cbuf (72) int 6 0
ecom to: 
name .t364 int 0 0
ecom: 
* int 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const strpos (104) int 6 0
ecom to: 
name .t365 int 0 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const strpos (104) int 6 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const strpos (104) int 6 0
ecom: 
-- int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const ncbuf (80) int 6 0
  const (1) int 6 0
ecom: 
used int 10 2
  call int 10 2
    -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
      name sys Sys 1 0
      name fprint nothing 11 1
    seq no type 10 2
      call ref Sys->FD 10 2
        -> fn(fd: int): ref Sys->FD 12 1
          name sys Sys 1 0
          name fildes nothing 11 1
        seq no type 10 1
          const (2) int 6 0
      seq no type 10 1
        const %s string 1 0
        seq no type 10 1
          * string 8 0
            + int 15 1
              name lex ref YYLEX 0 0
              const prompt (112) int 6 0
ecom: 
call int 10 2
  -> fn(fd: ref Sys->FD, s: string, nil: string, *): int 12 1
    name sys Sys 1 0
    name fprint nothing 11 1
  seq no type 10 2
    call ref Sys->FD 10 2
      -> fn(fd: int): ref Sys->FD 12 1
        name sys Sys 1 0
        name fildes nothing 11 1
      seq no type 10 1
        const (2) int 6 0
    seq no type 10 1
      const %s string 1 0
      seq no type 10 1
        * string 8 0
          + int 15 1
            name lex ref YYLEX 0 0
            const prompt (112) int 6 0
ecom to: 
name .t365 int 0 0
generate desc for Sys->fprint
descmap offset 0
descmap fd type ref Sys->FD offset 64 (d->offset=64 start=0) returns 64
descmap s type string offset 72 (d->offset=72 start=0) returns 72
descmap type string offset 80 returns 80
generate desc for big
ecom: 
call ref Sys->FD 10 2
  -> fn(fd: int): ref Sys->FD 12 1
    name sys Sys 1 0
    name fildes nothing 11 1
  seq no type 10 1
    const (2) int 6 0
ecom to: 
name .t366 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b367 big 0 0
    const (64) int 6 0
ecom: 
name .t366 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b363 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .t366 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .t366 ref Sys->FD 0 0
ecom: 
const %s string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b363 big 0 0
    const (72) int 6 0
ecom: 
* string 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const prompt (112) int 6 0
ecom to: 
* string 8 0
  + int 15 0
    name .b363 big 0 0
    const (80) int 6 0
ecom: 
= int 10 2
  name c int 0 0
  call int 10 2
    -> fn(b: self ref Bufio->Iobuf): int 12 1
      name bufio Bufio 1 0
      name getc fn(b: self ref Bufio->Iobuf): int 11 1
    seq nothing 10 1
      * ref Bufio->Iobuf 8 0
        + int 15 1
          name lex ref YYLEX 0 0
          const f (88) int 6 0
ecom: 
call int 10 2
  -> fn(b: self ref Bufio->Iobuf): int 12 1
    name bufio Bufio 1 0
    name getc fn(b: self ref Bufio->Iobuf): int 11 1
  seq nothing 10 1
    * ref Bufio->Iobuf 8 0
      + int 15 1
        name lex ref YYLEX 0 0
        const f (88) int 6 0
ecom to: 
name c int 0 0
generate desc for big
ecom: 
* ref Bufio->Iobuf 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const f (88) int 6 0
ecom to: 
* ref Bufio->Iobuf 8 0
  + int 15 0
    name .b367 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const eof (64) int 6 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const eof (64) int 6 0
ecom: 
= int 10 1
  name c int 0 0
  const EOF (-1) int 6 0
ecom: 
const EOF (-1) int 6 0
ecom to: 
name c int 0 0
ecom: 
++ int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const linenum (108) int 6 0
  const (1) int 6 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const lastnl (120) int 6 0
  == int 10 1
    name c int 0 0
    const (10) int 6 0
ecom: 
== int 10 1
  name c int 0 0
  const (10) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const lastnl (120) int 6 0
ecom: 
= int 10 1
  * int 10 1
    indx big 10 1
      * array of int 8 0
        + int 15 1
          name lex ref YYLEX 0 0
          const cbuf (72) int 6 0
      ++ int 10 1
        * int 8 0
          + int 15 1
            name lex ref YYLEX 0 0
            const strpos (104) int 6 0
        const (1) int 6 0
  name c int 0 0
eacom: 
* int 10 1
  indx big 10 1
    * array of int 8 0
      + int 15 1
        name lex ref YYLEX 0 0
        const cbuf (72) int 6 0
    ++ int 10 1
      * int 8 0
        + int 15 1
          name lex ref YYLEX 0 0
          const strpos (104) int 6 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  * array of int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const cbuf (72) int 6 0
  ++ int 10 1
    * int 8 0
      + int 15 1
        name lex ref YYLEX 0 0
        const strpos (104) int 6 0
    const (1) int 6 0
ecom to: 
name .b367 big 0 0
eacom: 
++ int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const strpos (104) int 6 0
  const (1) int 6 0
ecom: 
++ int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const strpos (104) int 6 0
  const (1) int 6 0
ecom to: 
name .t365 int 0 0
ecom: 
name c int 0 0
ecom to: 
* int 8 1
  name .b367 big 0 0
eacom: 
len int 10 1
  * array of int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const cbuf (72) int 6 0
ecom: 
len int 10 1
  * array of int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const cbuf (72) int 6 0
ecom to: 
name .t365 int 0 0
ecom: 
* int 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const strpos (104) int 6 0
ecom to: 
name .t364 int 0 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const strpos (104) int 6 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const strpos (104) int 6 0
eacom: 
len int 10 1
  * string 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const s (96) int 6 0
ecom: 
len int 10 1
  * string 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const s (96) int 6 0
ecom to: 
name .t365 int 0 0
ecom: 
* int 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const strpos (104) int 6 0
ecom to: 
name .t364 int 0 0
ecom: 
= int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const eof (64) int 6 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    name lex ref YYLEX 0 0
    const eof (64) int 6 0
ecom: 
= int 10 1
  name c int 0 0
  const EOF (-1) int 6 0
ecom: 
const EOF (-1) int 6 0
ecom to: 
name c int 0 0
ecom: 
= int 10 1
  name c int 0 0
  inds int 10 1
    * string 8 0
      + int 15 1
        name lex ref YYLEX 0 0
        const s (96) int 6 0
    ++ int 10 1
      * int 8 0
        + int 15 1
          name lex ref YYLEX 0 0
          const strpos (104) int 6 0
      const (1) int 6 0
ecom: 
inds int 10 1
  * string 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const s (96) int 6 0
  ++ int 10 1
    * int 8 0
      + int 15 1
        name lex ref YYLEX 0 0
        const strpos (104) int 6 0
    const (1) int 6 0
ecom to: 
name c int 0 0
ecom: 
++ int 10 1
  * int 8 0
    + int 15 1
      name lex ref YYLEX 0 0
      const strpos (104) int 6 0
  const (1) int 6 0
ecom to: 
name .t365 int 0 0
ecom: 
name c int 0 0
ecom to: 
* int 8 0
  name .ret int 0 0
fn: getc
64: argument lex ref YYLEX ref 29
72: local c int ref 11
76: local .t364 int ref 1
80: local .t365 int ref 1
88: local .b367 big ref 3
96: local .b363 big ref 2
104: local .t366 ref Sys->FD ref 1
generate desc for YYLEX.getc
descmap offset 0
descmap lex type ref YYLEX offset 64 (d->offset=64 start=0) returns 64
descmap c type int offset 72 (d->offset=72 start=0) returns -1
descmap .t364 type int offset 76 (d->offset=76 start=0) returns -1
descmap .t365 type int offset 80 (d->offset=80 start=0) returns -1
descmap .b367 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b363 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t366 type ref Sys->FD offset 104 (d->offset=104 start=0) returns 104
fncom: readnum 3 6e9e10
ecom: 
= int 10 1
  name sum int 0 0
  = int 10 1
    name nc int 0 0
    const (0) int 6 0
ecom: 
= int 10 1
  name nc int 0 0
  const (0) int 6 0
ecom to: 
name sum int 0 0
ecom: 
const (0) int 6 0
ecom to: 
name nc int 0 0
eacom: 
= int 10 2
  name c int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name lex ref YYLEX 0 0
ecom: 
= int 10 2
  name c int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name lex ref YYLEX 0 0
ecom to: 
name .t368 int 0 0
ecom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name lex ref YYLEX 0 0
ecom to: 
name c int 0 0
generate desc for big
ecom: 
name lex ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b369 big 0 0
    const (64) int 6 0
ecom: 
= int 10 2
  name sum int 0 0
  + int 10 2
    * int 10 1
      name sum int 0 0
      const (10) int 6 0
    - int 10 1
      name c int 0 0
      const (48) int 6 0
ecom: 
+ int 10 2
  * int 10 1
    name sum int 0 0
    const (10) int 6 0
  - int 10 1
    name c int 0 0
    const (48) int 6 0
ecom to: 
name sum int 0 0
ecom: 
* int 10 1
  name sum int 0 0
  const (10) int 6 0
ecom to: 
name .t368 int 0 0
eacom: 
- int 10 1
  name c int 0 0
  const (48) int 6 0
ecom: 
- int 10 1
  name c int 0 0
  const (48) int 6 0
ecom to: 
name .t370 int 0 0
ecom: 
++ int 10 1
  name nc int 0 0
  const (1) int 6 0
ecom: 
call no type 10 2
  name ungetc fn(lex: self ref YYLEX) 11 1
  seq nothing 10 1
    name lex ref YYLEX 0 0
generate desc for big
ecom: 
name lex ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b369 big 0 0
    const (64) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
ecom: 
name sum int 0 0
ecom to: 
* int 8 0
  name .ret int 0 0
fn: readnum
64: argument lex ref YYLEX ref 2
72: local sum int ref 4
76: local c int ref 3
80: local nc int ref 3
84: local .t368 int ref 1
88: local .t370 int ref 1
96: local .b369 big ref 2
generate desc for readnum
descmap offset 0
descmap lex type ref YYLEX offset 64 (d->offset=64 start=0) returns 64
descmap sum type int offset 72 (d->offset=72 start=0) returns -1
descmap c type int offset 76 (d->offset=76 start=0) returns -1
descmap nc type int offset 80 (d->offset=80 start=0) returns -1
descmap .t368 type int offset 84 (d->offset=84 start=0) returns -1
descmap .t370 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b369 type big offset 96 (d->offset=96 start=0) returns -1
fncom: readfdassign 3 6e9ed0
ecom: 
= int 10 2
  name n1 int 0 0
  call int 10 2
    name readnum fn(lex: ref YYLEX): int 11 1
    seq no type 10 1
      name lex ref YYLEX 0 0
ecom: 
call int 10 2
  name readnum fn(lex: ref YYLEX): int 11 1
  seq no type 10 1
    name lex ref YYLEX 0 0
ecom to: 
name n1 int 0 0
generate desc for big
ecom: 
name lex ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b371 big 0 0
    const (64) int 6 0
eacom: 
= int 10 2
  name c int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name lex ref YYLEX 0 0
ecom: 
= int 10 2
  name c int 0 0
  call int 10 2
    name getc fn(lex: self ref YYLEX): int 11 1
    seq nothing 10 1
      name lex ref YYLEX 0 0
ecom to: 
name .t372 int 0 0
ecom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name lex ref YYLEX 0 0
ecom to: 
name c int 0 0
generate desc for big
ecom: 
name lex ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b371 big 0 0
    const (64) int 6 0
ecom: 
tuple (int, ref Redir) 10 1
  seq no type 10 1
    const REDIR (57347) int 6 0
    seq no type 10 1
      ref ref Redir 10 1
        tuple Redir 10 1
          seq no type 10 1
            const (-1) int 6 0
            seq no type 10 1
              name n1 int 0 0
              seq no type 10 1
                const (-1) int 6 0
ecom to: 
* (int, ref Redir) 8 0
  name .ret int 0 0
ecom: 
const REDIR (57347) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * (int, ref Redir) 8 0
        name .ret int 0 0
    const (0) int 6 0
ecom: 
ref ref Redir 10 1
  tuple Redir 10 1
    seq no type 10 1
      const (-1) int 6 0
      seq no type 10 1
        name n1 int 0 0
        seq no type 10 1
          const (-1) int 6 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * (int, ref Redir) 8 0
        name .ret int 0 0
    const (8) int 6 0
generate desc for Redir
ecom: 
tuple Redir 10 1
  seq no type 10 1
    const (-1) int 6 0
    seq no type 10 1
      name n1 int 0 0
      seq no type 10 1
        const (-1) int 6 0
ecom to: 
* Redir 8 0
  name .t373 ref Redir 0 0
ecom: 
const (-1) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Redir 8 0
        name .t373 ref Redir 0 0
    const (0) int 6 0
ecom: 
name n1 int 0 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Redir 8 0
        name .t373 ref Redir 0 0
    const (4) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Redir 8 0
        name .t373 ref Redir 0 0
    const (8) int 6 0
ecom: 
= ref Redir 10 1
  name .t373 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .t373 ref Redir 0 0
ecom: 
tuple (int, polymorphic type) 10 1
  seq no type 10 1
    const ERROR (57351) int 6 0
    seq no type 10 1
      name nil polymorphic type 1 0
ecom to: 
* (int, polymorphic type) 8 0
  name .ret int 0 0
ecom: 
const ERROR (57351) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * (int, polymorphic type) 8 0
        name .ret int 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  + int 15 1
    adr int 15 1
      * (int, polymorphic type) 8 0
        name .ret int 0 0
    const (8) int 6 0
ecom: 
= int 10 2
  name n2 int 0 0
  call int 10 2
    name readnum fn(lex: ref YYLEX): int 11 1
    seq no type 10 1
      name lex ref YYLEX 0 0
ecom: 
call int 10 2
  name readnum fn(lex: ref YYLEX): int 11 1
  seq no type 10 1
    name lex ref YYLEX 0 0
ecom to: 
name n2 int 0 0
generate desc for big
ecom: 
name lex ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b371 big 0 0
    const (64) int 6 0
eacom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name lex ref YYLEX 0 0
ecom: 
call int 10 2
  name getc fn(lex: self ref YYLEX): int 11 1
  seq nothing 10 1
    name lex ref YYLEX 0 0
ecom to: 
name .t372 int 0 0
generate desc for big
ecom: 
name lex ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b371 big 0 0
    const (64) int 6 0
ecom: 
tuple (int, polymorphic type) 10 1
  seq no type 10 1
    const ERROR (57351) int 6 0
    seq no type 10 1
      name nil polymorphic type 1 0
ecom to: 
* (int, polymorphic type) 8 0
  name .ret int 0 0
ecom: 
const ERROR (57351) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * (int, polymorphic type) 8 0
        name .ret int 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 8 0
  + int 15 1
    adr int 15 1
      * (int, polymorphic type) 8 0
        name .ret int 0 0
    const (8) int 6 0
ecom: 
tuple (int, ref Redir) 10 1
  seq no type 10 1
    const DUP (57346) int 6 0
    seq no type 10 1
      ref ref Redir 10 1
        tuple Redir 10 1
          seq no type 10 1
            const (-1) int 6 0
            seq no type 10 1
              name n1 int 0 0
              seq no type 10 1
                name n2 int 0 0
ecom to: 
* (int, ref Redir) 8 0
  name .ret int 0 0
ecom: 
const DUP (57346) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * (int, ref Redir) 8 0
        name .ret int 0 0
    const (0) int 6 0
ecom: 
ref ref Redir 10 1
  tuple Redir 10 1
    seq no type 10 1
      const (-1) int 6 0
      seq no type 10 1
        name n1 int 0 0
        seq no type 10 1
          name n2 int 0 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * (int, ref Redir) 8 0
        name .ret int 0 0
    const (8) int 6 0
generate desc for Redir
ecom: 
tuple Redir 10 1
  seq no type 10 1
    const (-1) int 6 0
    seq no type 10 1
      name n1 int 0 0
      seq no type 10 1
        name n2 int 0 0
ecom to: 
* Redir 8 0
  name .t373 ref Redir 0 0
ecom: 
const (-1) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Redir 8 0
        name .t373 ref Redir 0 0
    const (0) int 6 0
ecom: 
name n1 int 0 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Redir 8 0
        name .t373 ref Redir 0 0
    const (4) int 6 0
ecom: 
name n2 int 0 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Redir 8 0
        name .t373 ref Redir 0 0
    const (8) int 6 0
ecom: 
= ref Redir 10 1
  name .t373 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .t373 ref Redir 0 0
fn: readfdassign
64: argument lex ref YYLEX ref 4
72: local n1 int ref 3
76: local c int ref 2
80: local n2 int ref 2
84: local .t372 int ref 1
88: local .b371 big ref 4
96: local .t373 ref Redir ref 1
generate desc for readfdassign
descmap offset 0
descmap lex type ref YYLEX offset 64 (d->offset=64 start=0) returns 64
descmap n1 type int offset 72 (d->offset=72 start=0) returns -1
descmap c type int offset 76 (d->offset=76 start=0) returns -1
descmap n2 type int offset 80 (d->offset=80 start=0) returns -1
descmap .t372 type int offset 84 (d->offset=84 start=0) returns -1
descmap .b371 type big offset 88 (d->offset=88 start=0) returns -1
descmap .t373 type ref Redir offset 96 (d->offset=96 start=0) returns 96
fncom: mkseq 3 6e9f90
ecom: 
ref ref Node 10 1
  tuple Node 10 1
    seq no type 10 1
      const n_SEQ (7) int 6 0
      seq no type 10 1
        name left ref Node 0 0
        seq no type 10 1
          name right ref Node 0 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  name .ret int 0 0
generate desc for Node
ecom: 
tuple Node 10 1
  seq no type 10 1
    const n_SEQ (7) int 6 0
    seq no type 10 1
      name left ref Node 0 0
      seq no type 10 1
        name right ref Node 0 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t374 ref Node 0 0
ecom: 
const n_SEQ (7) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t374 ref Node 0 0
    const (0) int 6 0
ecom: 
name left ref Node 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t374 ref Node 0 0
    const (8) int 6 0
ecom: 
name right ref Node 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t374 ref Node 0 0
    const (16) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t374 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t374 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t374 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t374 ref Node 0 0
ecom: 
name right ref Node 0 0
ecom to: 
* ref Node 8 0
  name .ret int 0 0
ecom: 
name left ref Node 0 0
ecom to: 
* ref Node 8 0
  name .ret int 0 0
fn: mkseq
64: argument left ref Node ref 4
72: argument right ref Node ref 3
80: local .t374 ref Node ref 1
generate desc for mkseq
descmap offset 0
descmap left type ref Node offset 64 (d->offset=64 start=0) returns 64
descmap right type ref Node offset 72 (d->offset=72 start=0) returns 72
descmap .t374 type ref Node offset 80 (d->offset=80 start=0) returns 80
fncom: mk 25 6ea050
fncom: stderr 12 6ea110
fncom: yytokname 6 6eab10
fncom: yystatname 5 6eabd0
fncom: yylex1 3 6eac90
ecom: 
= int 10 2
  name yychar int 0 0
  call int 10 2
    name lex fn(l: self ref YYLEX): int 11 1
    seq nothing 10 1
      name yylex ref YYLEX 0 0
ecom: 
call int 10 2
  name lex fn(l: self ref YYLEX): int 11 1
  seq nothing 10 1
    name yylex ref YYLEX 0 0
ecom to: 
name yychar int 0 0
generate desc for big
ecom: 
name yylex ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b375 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  name c int 0 0
  * int 10 1
    indx big 10 1
      name yytok1 array of int 1 0
      const (0) int 6 0
ecom: 
* int 10 1
  indx big 10 1
    name yytok1 array of int 1 0
    const (0) int 6 0
ecom to: 
name c int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yytok1 array of int 1 0
    const (0) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yytok1 array of int 1 0
  const (0) int 6 0
ecom to: 
name .b375 big 0 0
eacom: 
len int 10 1
  name yytok1 array of int 1 0
ecom: 
len int 10 1
  name yytok1 array of int 1 0
ecom to: 
name .t376 int 0 0
ecom: 
= int 10 1
  name c int 0 0
  * int 10 1
    indx big 10 1
      name yytok1 array of int 1 0
      name yychar int 0 0
ecom: 
* int 10 1
  indx big 10 1
    name yytok1 array of int 1 0
    name yychar int 0 0
ecom to: 
name c int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yytok1 array of int 1 0
    name yychar int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yytok1 array of int 1 0
  name yychar int 0 0
ecom to: 
name .b375 big 0 0
eacom: 
+ int 10 1
  len int 10 1
    name yytok2 array of int 1 0
  const YYPRIVATE (57344) int 6 0
ecom: 
+ int 10 1
  len int 10 1
    name yytok2 array of int 1 0
  const YYPRIVATE (57344) int 6 0
ecom to: 
name .t376 int 0 0
eacom: 
len int 10 1
  name yytok2 array of int 1 0
ecom: 
len int 10 1
  name yytok2 array of int 1 0
ecom to: 
name .t376 int 0 0
ecom: 
= int 10 1
  name c int 0 0
  * int 10 1
    indx big 10 1
      name yytok2 array of int 1 0
      - int 10 1
        name yychar int 0 0
        const YYPRIVATE (57344) int 6 0
ecom: 
* int 10 1
  indx big 10 1
    name yytok2 array of int 1 0
    - int 10 1
      name yychar int 0 0
      const YYPRIVATE (57344) int 6 0
ecom to: 
name c int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yytok2 array of int 1 0
    - int 10 1
      name yychar int 0 0
      const YYPRIVATE (57344) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yytok2 array of int 1 0
  - int 10 1
    name yychar int 0 0
    const YYPRIVATE (57344) int 6 0
ecom to: 
name .b375 big 0 0
eacom: 
- int 10 1
  name yychar int 0 0
  const YYPRIVATE (57344) int 6 0
ecom: 
- int 10 1
  name yychar int 0 0
  const YYPRIVATE (57344) int 6 0
ecom to: 
name .t376 int 0 0
ecom: 
= int 10 1
  name n int 0 0
  len int 10 1
    name yytok3 array of int 1 0
ecom: 
len int 10 1
  name yytok3 array of int 1 0
ecom to: 
name n int 0 0
ecom: 
= int 10 1
  name c int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name c int 0 0
ecom: 
= int 10 1
  name i int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name i int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yytok3 array of int 1 0
    name i int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yytok3 array of int 1 0
  name i int 0 0
ecom to: 
name .b375 big 0 0
ecom: 
= int 10 1
  name c int 0 0
  * int 10 1
    indx big 10 1
      name yytok3 array of int 1 0
      + int 15 1
        name i int 0 0
        const (1) int 6 0
ecom: 
* int 10 1
  indx big 10 1
    name yytok3 array of int 1 0
    + int 15 1
      name i int 0 0
      const (1) int 6 0
ecom to: 
name c int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yytok3 array of int 1 0
    + int 15 1
      name i int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yytok3 array of int 1 0
  + int 15 1
    name i int 0 0
    const (1) int 6 0
ecom to: 
name .b375 big 0 0
eacom: 
+ int 15 1
  name i int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name i int 0 0
  const (1) int 6 0
ecom to: 
name .t376 int 0 0
ecom: 
+= int 10 1
  name i int 0 0
  const (2) int 6 0
ecom: 
= int 10 1
  name c int 0 0
  * int 10 1
    indx big 10 1
      name yytok2 array of int 1 0
      const (1) int 6 0
ecom: 
* int 10 1
  indx big 10 1
    name yytok2 array of int 1 0
    const (1) int 6 0
ecom to: 
name c int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yytok2 array of int 1 0
    const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yytok2 array of int 1 0
  const (1) int 6 0
ecom to: 
name .b375 big 0 0
ecom: 
name c int 0 0
ecom to: 
* int 8 0
  name .ret int 0 0
fn: yylex1
64: argument yylex ref YYLEX ref 1
72: local c int ref 9
76: local yychar int ref 9
80: local i int ref 5
84: local n int ref 2
88: local .t376 int ref 1
96: local .b375 big ref 7
generate desc for yylex1
descmap offset 0
descmap yylex type ref YYLEX offset 64 (d->offset=64 start=0) returns 64
descmap c type int offset 72 (d->offset=72 start=0) returns -1
descmap yychar type int offset 76 (d->offset=76 start=0) returns -1
descmap i type int offset 80 (d->offset=80 start=0) returns -1
descmap n type int offset 84 (d->offset=84 start=0) returns -1
descmap .t376 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b375 type big offset 96 (d->offset=96 start=0) returns -1
fncom: yyparse 2 6ead50
ecom: 
= array of YYS 10 1
  name yys array of YYS 0 0
  array array of YYS 10 1
    const YYMAXDEPTH (200) int 6 0
ecom: 
array array of YYS 10 1
  const YYMAXDEPTH (200) int 6 0
ecom to: 
name yys array of YYS 0 0
generate desc for YYS
descmap adt offset 0
descmap offset 0
descmap adt offset 0
descmap offset 0
descmap node type ref Node offset 0 (d->offset=0 start=0) returns 0
descmap word type string offset 8 (d->offset=8 start=0) returns 8
descmap redir type ref Redir offset 16 (d->offset=16 start=0) returns 16
descmap optype type int offset 24 (d->offset=24 start=0) returns -1
descmap yyv type YYSTYPE offset 0 (d->offset=0 start=0) returns 16
descmap yys type int offset 32 (d->offset=32 start=0) returns -1
generate desc for YYS
	desc	$-1,40,"e0"
ecom: 
= int 10 1
  name yystate int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name yystate int 0 0
ecom: 
= int 10 1
  name yychar int 0 0
  const (-1) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
name yychar int 0 0
ecom: 
= int 10 1
  name yynerrs int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name yynerrs int 0 0
ecom: 
= int 10 1
  name yyerrflag int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name yyerrflag int 0 0
ecom: 
= int 10 1
  name yyp int 0 0
  const (-1) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
name yyp int 0 0
ecom: 
= int 10 1
  name yyn int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name yyn int 0 0
ecom: 
++ int 10 1
  name yyp int 0 0
  const (1) int 6 0
eacom: 
len int 10 1
  name yys array of YYS 0 0
ecom: 
len int 10 1
  name yys array of YYS 0 0
ecom to: 
name .t377 int 0 0
ecom: 
= array of YYS 10 2
  name yys array of YYS 0 0
  = array of YYS 10 2
    slice array of YYS 10 2
      array array of YYS 10 1
        * int 10 1
          len int 10 1
            name yys array of YYS 0 0
          const (2) int 6 0
      seq no type 10 1
        const (0) int 6 0
        nothing no type 10 1
    name yys array of YYS 0 0
ecom: 
= array of YYS 10 2
  slice array of YYS 10 2
    array array of YYS 10 1
      * int 10 1
        len int 10 1
          name yys array of YYS 0 0
        const (2) int 6 0
    seq no type 10 1
      const (0) int 6 0
      nothing no type 10 1
  name yys array of YYS 0 0
ecom to: 
name yys array of YYS 0 0
eacom: 
array array of YYS 10 1
  * int 10 1
    len int 10 1
      name yys array of YYS 0 0
    const (2) int 6 0
ecom: 
array array of YYS 10 1
  * int 10 1
    len int 10 1
      name yys array of YYS 0 0
    const (2) int 6 0
ecom to: 
name .t378 array of YYS 0 0
eacom: 
* int 10 1
  len int 10 1
    name yys array of YYS 0 0
  const (2) int 6 0
ecom: 
* int 10 1
  len int 10 1
    name yys array of YYS 0 0
  const (2) int 6 0
ecom to: 
name .t377 int 0 0
eacom: 
len int 10 1
  name yys array of YYS 0 0
ecom: 
len int 10 1
  name yys array of YYS 0 0
ecom to: 
name .t377 int 0 0
generate desc for YYS
ecom: 
= array of YYS 10 1
  name .t378 array of YYS 0 0
  name nil array of YYS 1 0
ecom: 
name nil array of YYS 1 0
ecom to: 
name .t378 array of YYS 0 0
ecom: 
= int 10 1
  * int 10 1
    + int 10 1
      indx big 10 1
        name yys array of YYS 0 0
        name yyp int 0 0
      const yys (32) int 6 0
  name yystate int 0 0
eacom: 
* int 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      name yyp int 0 0
    const yys (32) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yyp int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
name yystate int 0 0
ecom to: 
* int 8 1
  + int 15 1
    name .b379 big 0 0
    const yys (32) int 6 0
ecom: 
= YYSTYPE 10 1
  * YYSTYPE 10 1
    indx big 10 1
      name yys array of YYS 0 0
      name yyp int 0 0
  name yyval YYSTYPE 0 0
eacom: 
* YYSTYPE 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yyp int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yyp int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
name yyval YYSTYPE 0 0
ecom to: 
* YYSTYPE 8 1
  name .b379 big 0 0
generate desc for YYSTYPE
descmap adt offset 0
descmap offset 0
descmap node type ref Node offset 0 (d->offset=0 start=0) returns 0
descmap word type string offset 8 (d->offset=8 start=0) returns 8
descmap redir type ref Redir offset 16 (d->offset=16 start=0) returns 16
descmap optype type int offset 24 (d->offset=24 start=0) returns -1
generate desc for YYSTYPE
	desc	$-1,32,"e0"
ecom: 
= int 10 1
  name yyn int 0 0
  * int 10 1
    indx big 10 1
      name yypact array of int 1 0
      name yystate int 0 0
ecom: 
* int 10 1
  indx big 10 1
    name yypact array of int 1 0
    name yystate int 0 0
ecom to: 
name yyn int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yypact array of int 1 0
    name yystate int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yypact array of int 1 0
  name yystate int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
= int 10 2
  name yychar int 0 0
  call int 10 2
    name yylex1 fn(yylex: ref YYLEX): int 11 1
    seq no type 10 1
      name yylex ref YYLEX 0 0
ecom: 
call int 10 2
  name yylex1 fn(yylex: ref YYLEX): int 11 1
  seq no type 10 1
    name yylex ref YYLEX 0 0
ecom to: 
name yychar int 0 0
generate desc for big
ecom: 
name yylex ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b379 big 0 0
    const (64) int 6 0
ecom: 
+= int 10 1
  name yyn int 0 0
  name yychar int 0 0
ecom: 
= int 10 1
  name yyn int 0 0
  * int 10 1
    indx big 10 1
      name yyact array of int 1 0
      name yyn int 0 0
ecom: 
* int 10 1
  indx big 10 1
    name yyact array of int 1 0
    name yyn int 0 0
ecom to: 
name yyn int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yyact array of int 1 0
    name yyn int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yyact array of int 1 0
  name yyn int 0 0
ecom to: 
name .b379 big 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yychk array of int 1 0
    name yyn int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yychk array of int 1 0
  name yyn int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
= int 10 1
  name yychar int 0 0
  const (-1) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
name yychar int 0 0
ecom: 
++ int 10 1
  name yyp int 0 0
  const (1) int 6 0
eacom: 
len int 10 1
  name yys array of YYS 0 0
ecom: 
len int 10 1
  name yys array of YYS 0 0
ecom to: 
name .t377 int 0 0
ecom: 
= array of YYS 10 2
  name yys array of YYS 0 0
  = array of YYS 10 2
    slice array of YYS 10 2
      array array of YYS 10 1
        * int 10 1
          len int 10 1
            name yys array of YYS 0 0
          const (2) int 6 0
      seq no type 10 1
        const (0) int 6 0
        nothing no type 10 1
    name yys array of YYS 0 0
ecom: 
= array of YYS 10 2
  slice array of YYS 10 2
    array array of YYS 10 1
      * int 10 1
        len int 10 1
          name yys array of YYS 0 0
        const (2) int 6 0
    seq no type 10 1
      const (0) int 6 0
      nothing no type 10 1
  name yys array of YYS 0 0
ecom to: 
name yys array of YYS 0 0
eacom: 
array array of YYS 10 1
  * int 10 1
    len int 10 1
      name yys array of YYS 0 0
    const (2) int 6 0
ecom: 
array array of YYS 10 1
  * int 10 1
    len int 10 1
      name yys array of YYS 0 0
    const (2) int 6 0
ecom to: 
name .t378 array of YYS 0 0
eacom: 
* int 10 1
  len int 10 1
    name yys array of YYS 0 0
  const (2) int 6 0
ecom: 
* int 10 1
  len int 10 1
    name yys array of YYS 0 0
  const (2) int 6 0
ecom to: 
name .t377 int 0 0
eacom: 
len int 10 1
  name yys array of YYS 0 0
ecom: 
len int 10 1
  name yys array of YYS 0 0
ecom to: 
name .t377 int 0 0
generate desc for YYS
ecom: 
= array of YYS 10 1
  name .t378 array of YYS 0 0
  name nil array of YYS 1 0
ecom: 
name nil array of YYS 1 0
ecom to: 
name .t378 array of YYS 0 0
ecom: 
= int 10 1
  name yystate int 0 0
  name yyn int 0 0
ecom: 
name yyn int 0 0
ecom to: 
name yystate int 0 0
ecom: 
= int 10 1
  * int 10 1
    + int 10 1
      indx big 10 1
        name yys array of YYS 0 0
        name yyp int 0 0
      const yys (32) int 6 0
  name yystate int 0 0
eacom: 
* int 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      name yyp int 0 0
    const yys (32) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yyp int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
name yystate int 0 0
ecom to: 
* int 8 1
  + int 15 1
    name .b379 big 0 0
    const yys (32) int 6 0
ecom: 
= YYSTYPE 10 1
  * YYSTYPE 10 1
    indx big 10 1
      name yys array of YYS 0 0
      name yyp int 0 0
  * YYSTYPE 8 0
    name yylex ref YYLEX 0 0
eacom: 
* YYSTYPE 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yyp int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yyp int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
* YYSTYPE 8 0
  name yylex ref YYLEX 0 0
ecom to: 
* YYSTYPE 8 1
  name .b379 big 0 0
generate desc for YYSTYPE
ecom: 
-- int 10 1
  name yyerrflag int 0 0
  const (1) int 6 0
ecom: 
= int 10 1
  name yyn int 0 0
  * int 10 1
    indx big 10 1
      name yydef array of int 1 0
      name yystate int 0 0
ecom: 
* int 10 1
  indx big 10 1
    name yydef array of int 1 0
    name yystate int 0 0
ecom to: 
name yyn int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yydef array of int 1 0
    name yystate int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yydef array of int 1 0
  name yystate int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
= int 10 2
  name yychar int 0 0
  call int 10 2
    name yylex1 fn(yylex: ref YYLEX): int 11 1
    seq no type 10 1
      name yylex ref YYLEX 0 0
ecom: 
call int 10 2
  name yylex1 fn(yylex: ref YYLEX): int 11 1
  seq no type 10 1
    name yylex ref YYLEX 0 0
ecom to: 
name yychar int 0 0
generate desc for big
ecom: 
name yylex ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b379 big 0 0
    const (64) int 6 0
ecom: 
= int 10 1
  name yyxi int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name yyxi int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yyexca array of int 1 0
    name yyxi int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yyexca array of int 1 0
  name yyxi int 0 0
ecom to: 
name .b379 big 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yyexca array of int 1 0
    + int 15 1
      name yyxi int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yyexca array of int 1 0
  + int 15 1
    name yyxi int 0 0
    const (1) int 6 0
ecom to: 
name .b379 big 0 0
eacom: 
+ int 15 1
  name yyxi int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name yyxi int 0 0
  const (1) int 6 0
ecom to: 
name .t377 int 0 0
ecom: 
+= int 10 1
  name yyxi int 0 0
  const (2) int 6 0
ecom: 
+= int 10 1
  name yyxi int 0 0
  const (2) int 6 0
ecom: 
= int 10 1
  name yyn int 0 0
  * int 10 1
    indx big 10 1
      name yyexca array of int 1 0
      name yyxi int 0 0
ecom: 
* int 10 1
  indx big 10 1
    name yyexca array of int 1 0
    name yyxi int 0 0
ecom to: 
name yyn int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yyexca array of int 1 0
    name yyxi int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yyexca array of int 1 0
  name yyxi int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
+= int 10 1
  name yyxi int 0 0
  const (2) int 6 0
ecom: 
= int 10 1
  name yyn int 0 0
  * int 10 1
    indx big 10 1
      name yyexca array of int 1 0
      + int 15 1
        name yyxi int 0 0
        const (1) int 6 0
ecom: 
* int 10 1
  indx big 10 1
    name yyexca array of int 1 0
    + int 15 1
      name yyxi int 0 0
      const (1) int 6 0
ecom to: 
name yyn int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yyexca array of int 1 0
    + int 15 1
      name yyxi int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yyexca array of int 1 0
  + int 15 1
    name yyxi int 0 0
    const (1) int 6 0
ecom to: 
name .b379 big 0 0
eacom: 
+ int 15 1
  name yyxi int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name yyxi int 0 0
  const (1) int 6 0
ecom to: 
name .t377 int 0 0
ecom: 
= int 10 1
  name yyn int 0 0
  const (0) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
name yyn int 0 0
ecom: 
call no type 10 2
  name error fn(l: self ref YYLEX, s: string) 11 1
  seq nothing 10 1
    name yylex ref YYLEX 0 0
    seq no type 10 1
      const syntax error string 1 0
generate desc for big
ecom: 
name yylex ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b379 big 0 0
    const (64) int 6 0
ecom: 
const syntax error string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b379 big 0 0
    const (72) int 6 0
ecom: 
++ int 10 1
  name yynerrs int 0 0
  const (1) int 6 0
ecom: 
= int 10 1
  name yyerrflag int 0 0
  const (3) int 6 0
ecom: 
const (3) int 6 0
ecom to: 
name yyerrflag int 0 0
ecom: 
= int 10 1
  name yyn int 0 0
  + int 10 1
    * int 10 1
      indx big 10 1
        name yypact array of int 1 0
        * int 10 1
          + int 10 1
            indx big 10 1
              name yys array of YYS 0 0
              name yyp int 0 0
            const yys (32) int 6 0
    const YYERRCODE (2) int 6 0
ecom: 
+ int 10 1
  * int 10 1
    indx big 10 1
      name yypact array of int 1 0
      * int 10 1
        + int 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yyp int 0 0
          const yys (32) int 6 0
  const YYERRCODE (2) int 6 0
ecom to: 
name yyn int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yypact array of int 1 0
    * int 10 1
      + int 10 1
        indx big 10 1
          name yys array of YYS 0 0
          name yyp int 0 0
        const yys (32) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yypact array of int 1 0
  * int 10 1
    + int 10 1
      indx big 10 1
        name yys array of YYS 0 0
        name yyp int 0 0
      const yys (32) int 6 0
ecom to: 
name .b379 big 0 0
eacom: 
* int 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      name yyp int 0 0
    const yys (32) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yyp int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
= int 10 1
  name yystate int 0 0
  * int 10 1
    indx big 10 1
      name yyact array of int 1 0
      name yyn int 0 0
ecom: 
* int 10 1
  indx big 10 1
    name yyact array of int 1 0
    name yyn int 0 0
ecom to: 
name yystate int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yyact array of int 1 0
    name yyn int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yyact array of int 1 0
  name yyn int 0 0
ecom to: 
name .b379 big 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yychk array of int 1 0
    name yystate int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yychk array of int 1 0
  name yystate int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
-- int 10 1
  name yyp int 0 0
  const (1) int 6 0
ecom: 
= int 10 1
  name yyn int 0 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
name yyn int 0 0
ecom: 
= int 10 1
  name yyn int 0 0
  const (1) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
name yyn int 0 0
ecom: 
= int 10 1
  name yychar int 0 0
  const (-1) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
name yychar int 0 0
ecom: 
= int 10 1
  name yypt int 0 0
  name yyp int 0 0
ecom: 
name yyp int 0 0
ecom to: 
name yypt int 0 0
ecom: 
-= int 10 1
  name yyp int 0 0
  * int 10 1
    indx big 10 1
      name yyr2 array of int 1 0
      name yyn int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yyr2 array of int 1 0
    name yyn int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yyr2 array of int 1 0
  name yyn int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
= int 10 1
  name yym int 0 0
  name yyn int 0 0
ecom: 
name yyn int 0 0
ecom to: 
name yym int 0 0
ecom: 
= int 10 1
  name yyn int 0 0
  * int 10 1
    indx big 10 1
      name yyr1 array of int 1 0
      name yyn int 0 0
ecom: 
* int 10 1
  indx big 10 1
    name yyr1 array of int 1 0
    name yyn int 0 0
ecom to: 
name yyn int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yyr1 array of int 1 0
    name yyn int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yyr1 array of int 1 0
  name yyn int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
= int 10 1
  name yyg int 0 0
  * int 10 1
    indx big 10 1
      name yypgo array of int 1 0
      name yyn int 0 0
ecom: 
* int 10 1
  indx big 10 1
    name yypgo array of int 1 0
    name yyn int 0 0
ecom to: 
name yyg int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yypgo array of int 1 0
    name yyn int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yypgo array of int 1 0
  name yyn int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
= int 10 1
  name yyj int 0 0
  + int 10 1
    + int 10 1
      name yyg int 0 0
      * int 10 1
        + int 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yyp int 0 0
          const yys (32) int 6 0
    const (1) int 6 0
ecom: 
+ int 10 1
  + int 10 1
    name yyg int 0 0
    * int 10 1
      + int 10 1
        indx big 10 1
          name yys array of YYS 0 0
          name yyp int 0 0
        const yys (32) int 6 0
  const (1) int 6 0
ecom to: 
name yyj int 0 0
eacom: 
+ int 10 1
  name yyg int 0 0
  * int 10 1
    + int 10 1
      indx big 10 1
        name yys array of YYS 0 0
        name yyp int 0 0
      const yys (32) int 6 0
ecom: 
+ int 10 1
  name yyg int 0 0
  * int 10 1
    + int 10 1
      indx big 10 1
        name yys array of YYS 0 0
        name yyp int 0 0
      const yys (32) int 6 0
ecom to: 
name .t377 int 0 0
eacom: 
* int 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      name yyp int 0 0
    const yys (32) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yyp int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
- int 10 1
  const (0) int 6 0
  name yyn int 0 0
ecom to: 
name .t377 int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yychk array of int 1 0
    = int 10 1
      name yystate int 0 0
      * int 10 1
        indx big 10 1
          name yyact array of int 1 0
          name yyj int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yychk array of int 1 0
  = int 10 1
    name yystate int 0 0
    * int 10 1
      indx big 10 1
        name yyact array of int 1 0
        name yyj int 0 0
ecom to: 
name .b379 big 0 0
eacom: 
= int 10 1
  name yystate int 0 0
  * int 10 1
    indx big 10 1
      name yyact array of int 1 0
      name yyj int 0 0
ecom: 
= int 10 1
  name yystate int 0 0
  * int 10 1
    indx big 10 1
      name yyact array of int 1 0
      name yyj int 0 0
ecom to: 
name .t380 int 0 0
ecom: 
* int 10 1
  indx big 10 1
    name yyact array of int 1 0
    name yyj int 0 0
ecom to: 
name yystate int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yyact array of int 1 0
    name yyj int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yyact array of int 1 0
  name yyj int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
= int 10 1
  name yystate int 0 0
  * int 10 1
    indx big 10 1
      name yyact array of int 1 0
      name yyg int 0 0
ecom: 
* int 10 1
  indx big 10 1
    name yyact array of int 1 0
    name yyg int 0 0
ecom to: 
name yystate int 0 0
eacom: 
* int 10 1
  indx big 10 1
    name yyact array of int 1 0
    name yyg int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yyact array of int 1 0
  name yyg int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
= ref Node 10 1
  * ref Node 8 0
    name yylex ref YYLEX 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      - int 10 1
        name yypt int 0 0
        const (1) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 8 0
  name yylex ref YYLEX 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
ecom: 
= ref Node 10 1
  * ref Node 8 0
    name yylex ref YYLEX 0 0
  name nil polymorphic type 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 8 0
  name yylex ref YYLEX 0 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  name .ret int 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      + int 15 1
        name yyp int 0 0
        const (1) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  + int 15 1
    name yyp int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  call ref Node 10 2
    name mkseq fn(left: ref Node, right: ref Node): ref Node 11 1
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (1) int 6 0
      seq no type 10 1
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
ecom: 
call ref Node 10 2
  name mkseq fn(left: ref Node, right: ref Node): ref Node 11 1
  seq no type 10 2
    * ref Node 10 1
      indx big 10 1
        name yys array of YYS 0 0
        - int 10 1
          name yypt int 0 0
          const (1) int 6 0
    seq no type 10 1
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          name yypt int 0 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for big
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b381 big 0 0
    const (64) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b379 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b381 big 0 0
    const (72) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      + int 15 1
        name yyp int 0 0
        const (1) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  + int 15 1
    name yyp int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  call ref Node 10 2
    name mkseq fn(left: ref Node, right: ref Node): ref Node 11 1
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (1) int 6 0
      seq no type 10 1
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
ecom: 
call ref Node 10 2
  name mkseq fn(left: ref Node, right: ref Node): ref Node 11 1
  seq no type 10 2
    * ref Node 10 1
      indx big 10 1
        name yys array of YYS 0 0
        - int 10 1
          name yypt int 0 0
          const (1) int 6 0
    seq no type 10 1
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          name yypt int 0 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for big
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b381 big 0 0
    const (64) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b379 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 8 0
  + int 15 0
    name .b381 big 0 0
    const (72) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b379 big 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      - int 10 1
        name yypt int 0 0
        const (1) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        const n_NOWAIT (12) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (1) int 6 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_NOWAIT (12) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (1) int 6 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_NOWAIT (12) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (1) int 6 0
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t378 ref Node 0 0
ecom: 
const n_NOWAIT (12) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (16) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t378 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t378 ref Node 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      + int 15 1
        name yyp int 0 0
        const (1) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  + int 15 1
    name yyp int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      - int 10 1
        name yypt int 0 0
        const (1) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      + int 15 1
        name yyp int 0 0
        const (1) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  + int 15 1
    name yyp int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 3
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 3
    tuple Node 10 3
      seq no type 10 3
        const n_ADJ (10) int 6 0
        seq no type 10 3
          ref ref Node 10 2
            tuple Node 10 2
              seq no type 10 2
                const n_ADJ (10) int 6 0
                seq no type 10 2
                  ref ref Node 10 1
                    tuple Node 10 1
                      seq no type 10 1
                        const n_WORD (11) int 6 0
                        seq no type 10 1
                          name nil polymorphic type 1 0
                          seq no type 10 1
                            name nil polymorphic type 1 0
                            seq no type 10 1
                              const or string 1 0
                              seq no type 10 1
                                name nil polymorphic type 1 0
                  seq no type 10 2
                    ref ref Node 10 2
                      tuple Node 10 2
                        seq no type 10 2
                          const n_BLOCK (0) int 6 0
                          seq no type 10 2
                            * ref Node 10 1
                              indx big 10 1
                                name yys array of YYS 0 0
                                - int 10 1
                                  name yypt int 0 0
                                  const (2) int 6 0
                            seq no type 10 1
                              name nil ref Node 1 0
                              seq no type 10 1
                                name nil polymorphic type 1 0
                                seq no type 10 1
                                  name nil polymorphic type 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
                      seq no type 10 1
                        name nil polymorphic type 1 0
          seq no type 10 2
            ref ref Node 10 2
              tuple Node 10 2
                seq no type 10 2
                  const n_BLOCK (0) int 6 0
                  seq no type 10 2
                    * ref Node 10 1
                      indx big 10 1
                        name yys array of YYS 0 0
                        name yypt int 0 0
                    seq no type 10 1
                      name nil ref Node 1 0
                      seq no type 10 1
                        name nil polymorphic type 1 0
                        seq no type 10 1
                          name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 3
  tuple Node 10 3
    seq no type 10 3
      const n_ADJ (10) int 6 0
      seq no type 10 3
        ref ref Node 10 2
          tuple Node 10 2
            seq no type 10 2
              const n_ADJ (10) int 6 0
              seq no type 10 2
                ref ref Node 10 1
                  tuple Node 10 1
                    seq no type 10 1
                      const n_WORD (11) int 6 0
                      seq no type 10 1
                        name nil polymorphic type 1 0
                        seq no type 10 1
                          name nil polymorphic type 1 0
                          seq no type 10 1
                            const or string 1 0
                            seq no type 10 1
                              name nil polymorphic type 1 0
                seq no type 10 2
                  ref ref Node 10 2
                    tuple Node 10 2
                      seq no type 10 2
                        const n_BLOCK (0) int 6 0
                        seq no type 10 2
                          * ref Node 10 1
                            indx big 10 1
                              name yys array of YYS 0 0
                              - int 10 1
                                name yypt int 0 0
                                const (2) int 6 0
                          seq no type 10 1
                            name nil ref Node 1 0
                            seq no type 10 1
                              name nil polymorphic type 1 0
                              seq no type 10 1
                                name nil polymorphic type 1 0
                  seq no type 10 1
                    name nil polymorphic type 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
        seq no type 10 2
          ref ref Node 10 2
            tuple Node 10 2
              seq no type 10 2
                const n_BLOCK (0) int 6 0
                seq no type 10 2
                  * ref Node 10 1
                    indx big 10 1
                      name yys array of YYS 0 0
                      name yypt int 0 0
                  seq no type 10 1
                    name nil ref Node 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
                      seq no type 10 1
                        name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 3
  seq no type 10 3
    const n_ADJ (10) int 6 0
    seq no type 10 3
      ref ref Node 10 2
        tuple Node 10 2
          seq no type 10 2
            const n_ADJ (10) int 6 0
            seq no type 10 2
              ref ref Node 10 1
                tuple Node 10 1
                  seq no type 10 1
                    const n_WORD (11) int 6 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
                      seq no type 10 1
                        name nil polymorphic type 1 0
                        seq no type 10 1
                          const or string 1 0
                          seq no type 10 1
                            name nil polymorphic type 1 0
              seq no type 10 2
                ref ref Node 10 2
                  tuple Node 10 2
                    seq no type 10 2
                      const n_BLOCK (0) int 6 0
                      seq no type 10 2
                        * ref Node 10 1
                          indx big 10 1
                            name yys array of YYS 0 0
                            - int 10 1
                              name yypt int 0 0
                              const (2) int 6 0
                        seq no type 10 1
                          name nil ref Node 1 0
                          seq no type 10 1
                            name nil polymorphic type 1 0
                            seq no type 10 1
                              name nil polymorphic type 1 0
                seq no type 10 1
                  name nil polymorphic type 1 0
                  seq no type 10 1
                    name nil polymorphic type 1 0
      seq no type 10 2
        ref ref Node 10 2
          tuple Node 10 2
            seq no type 10 2
              const n_BLOCK (0) int 6 0
              seq no type 10 2
                * ref Node 10 1
                  indx big 10 1
                    name yys array of YYS 0 0
                    name yypt int 0 0
                seq no type 10 1
                  name nil ref Node 1 0
                  seq no type 10 1
                    name nil polymorphic type 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t378 ref Node 0 0
ecom: 
const n_ADJ (10) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (0) int 6 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_ADJ (10) int 6 0
      seq no type 10 2
        ref ref Node 10 1
          tuple Node 10 1
            seq no type 10 1
              const n_WORD (11) int 6 0
              seq no type 10 1
                name nil polymorphic type 1 0
                seq no type 10 1
                  name nil polymorphic type 1 0
                  seq no type 10 1
                    const or string 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
        seq no type 10 2
          ref ref Node 10 2
            tuple Node 10 2
              seq no type 10 2
                const n_BLOCK (0) int 6 0
                seq no type 10 2
                  * ref Node 10 1
                    indx big 10 1
                      name yys array of YYS 0 0
                      - int 10 1
                        name yypt int 0 0
                        const (2) int 6 0
                  seq no type 10 1
                    name nil ref Node 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
                      seq no type 10 1
                        name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (8) int 6 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_ADJ (10) int 6 0
    seq no type 10 2
      ref ref Node 10 1
        tuple Node 10 1
          seq no type 10 1
            const n_WORD (11) int 6 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
                seq no type 10 1
                  const or string 1 0
                  seq no type 10 1
                    name nil polymorphic type 1 0
      seq no type 10 2
        ref ref Node 10 2
          tuple Node 10 2
            seq no type 10 2
              const n_BLOCK (0) int 6 0
              seq no type 10 2
                * ref Node 10 1
                  indx big 10 1
                    name yys array of YYS 0 0
                    - int 10 1
                      name yypt int 0 0
                      const (2) int 6 0
                seq no type 10 1
                  name nil ref Node 1 0
                  seq no type 10 1
                    name nil polymorphic type 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t382 ref Node 0 0
ecom: 
const n_ADJ (10) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t382 ref Node 0 0
    const (0) int 6 0
ecom: 
ref ref Node 10 1
  tuple Node 10 1
    seq no type 10 1
      const n_WORD (11) int 6 0
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            const or string 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t382 ref Node 0 0
    const (8) int 6 0
generate desc for Node
ecom: 
tuple Node 10 1
  seq no type 10 1
    const n_WORD (11) int 6 0
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          const or string 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_WORD (11) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
ecom: 
const or string 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_BLOCK (0) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (2) int 6 0
        seq no type 10 1
          name nil ref Node 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t382 ref Node 0 0
    const (16) int 6 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_BLOCK (0) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (2) int 6 0
      seq no type 10 1
        name nil ref Node 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_BLOCK (0) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (2) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (2) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (2) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (2) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (2) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t382 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t382 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t382 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t382 ref Node 0 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_BLOCK (0) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
        seq no type 10 1
          name nil ref Node 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (16) int 6 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_BLOCK (0) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          name yypt int 0 0
      seq no type 10 1
        name nil ref Node 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_BLOCK (0) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t378 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t378 ref Node 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      + int 15 1
        name yyp int 0 0
        const (1) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  + int 15 1
    name yyp int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 3
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 3
    tuple Node 10 3
      seq no type 10 3
        const n_ADJ (10) int 6 0
        seq no type 10 3
          ref ref Node 10 2
            tuple Node 10 2
              seq no type 10 2
                const n_ADJ (10) int 6 0
                seq no type 10 2
                  ref ref Node 10 1
                    tuple Node 10 1
                      seq no type 10 1
                        const n_WORD (11) int 6 0
                        seq no type 10 1
                          name nil polymorphic type 1 0
                          seq no type 10 1
                            name nil polymorphic type 1 0
                            seq no type 10 1
                              const and string 1 0
                              seq no type 10 1
                                name nil polymorphic type 1 0
                  seq no type 10 2
                    ref ref Node 10 2
                      tuple Node 10 2
                        seq no type 10 2
                          const n_BLOCK (0) int 6 0
                          seq no type 10 2
                            * ref Node 10 1
                              indx big 10 1
                                name yys array of YYS 0 0
                                - int 10 1
                                  name yypt int 0 0
                                  const (2) int 6 0
                            seq no type 10 1
                              name nil ref Node 1 0
                              seq no type 10 1
                                name nil polymorphic type 1 0
                                seq no type 10 1
                                  name nil polymorphic type 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
                      seq no type 10 1
                        name nil polymorphic type 1 0
          seq no type 10 2
            ref ref Node 10 2
              tuple Node 10 2
                seq no type 10 2
                  const n_BLOCK (0) int 6 0
                  seq no type 10 2
                    * ref Node 10 1
                      indx big 10 1
                        name yys array of YYS 0 0
                        name yypt int 0 0
                    seq no type 10 1
                      name nil ref Node 1 0
                      seq no type 10 1
                        name nil polymorphic type 1 0
                        seq no type 10 1
                          name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 3
  tuple Node 10 3
    seq no type 10 3
      const n_ADJ (10) int 6 0
      seq no type 10 3
        ref ref Node 10 2
          tuple Node 10 2
            seq no type 10 2
              const n_ADJ (10) int 6 0
              seq no type 10 2
                ref ref Node 10 1
                  tuple Node 10 1
                    seq no type 10 1
                      const n_WORD (11) int 6 0
                      seq no type 10 1
                        name nil polymorphic type 1 0
                        seq no type 10 1
                          name nil polymorphic type 1 0
                          seq no type 10 1
                            const and string 1 0
                            seq no type 10 1
                              name nil polymorphic type 1 0
                seq no type 10 2
                  ref ref Node 10 2
                    tuple Node 10 2
                      seq no type 10 2
                        const n_BLOCK (0) int 6 0
                        seq no type 10 2
                          * ref Node 10 1
                            indx big 10 1
                              name yys array of YYS 0 0
                              - int 10 1
                                name yypt int 0 0
                                const (2) int 6 0
                          seq no type 10 1
                            name nil ref Node 1 0
                            seq no type 10 1
                              name nil polymorphic type 1 0
                              seq no type 10 1
                                name nil polymorphic type 1 0
                  seq no type 10 1
                    name nil polymorphic type 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
        seq no type 10 2
          ref ref Node 10 2
            tuple Node 10 2
              seq no type 10 2
                const n_BLOCK (0) int 6 0
                seq no type 10 2
                  * ref Node 10 1
                    indx big 10 1
                      name yys array of YYS 0 0
                      name yypt int 0 0
                  seq no type 10 1
                    name nil ref Node 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
                      seq no type 10 1
                        name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 3
  seq no type 10 3
    const n_ADJ (10) int 6 0
    seq no type 10 3
      ref ref Node 10 2
        tuple Node 10 2
          seq no type 10 2
            const n_ADJ (10) int 6 0
            seq no type 10 2
              ref ref Node 10 1
                tuple Node 10 1
                  seq no type 10 1
                    const n_WORD (11) int 6 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
                      seq no type 10 1
                        name nil polymorphic type 1 0
                        seq no type 10 1
                          const and string 1 0
                          seq no type 10 1
                            name nil polymorphic type 1 0
              seq no type 10 2
                ref ref Node 10 2
                  tuple Node 10 2
                    seq no type 10 2
                      const n_BLOCK (0) int 6 0
                      seq no type 10 2
                        * ref Node 10 1
                          indx big 10 1
                            name yys array of YYS 0 0
                            - int 10 1
                              name yypt int 0 0
                              const (2) int 6 0
                        seq no type 10 1
                          name nil ref Node 1 0
                          seq no type 10 1
                            name nil polymorphic type 1 0
                            seq no type 10 1
                              name nil polymorphic type 1 0
                seq no type 10 1
                  name nil polymorphic type 1 0
                  seq no type 10 1
                    name nil polymorphic type 1 0
      seq no type 10 2
        ref ref Node 10 2
          tuple Node 10 2
            seq no type 10 2
              const n_BLOCK (0) int 6 0
              seq no type 10 2
                * ref Node 10 1
                  indx big 10 1
                    name yys array of YYS 0 0
                    name yypt int 0 0
                seq no type 10 1
                  name nil ref Node 1 0
                  seq no type 10 1
                    name nil polymorphic type 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_ADJ (10) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_ADJ (10) int 6 0
      seq no type 10 2
        ref ref Node 10 1
          tuple Node 10 1
            seq no type 10 1
              const n_WORD (11) int 6 0
              seq no type 10 1
                name nil polymorphic type 1 0
                seq no type 10 1
                  name nil polymorphic type 1 0
                  seq no type 10 1
                    const and string 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
        seq no type 10 2
          ref ref Node 10 2
            tuple Node 10 2
              seq no type 10 2
                const n_BLOCK (0) int 6 0
                seq no type 10 2
                  * ref Node 10 1
                    indx big 10 1
                      name yys array of YYS 0 0
                      - int 10 1
                        name yypt int 0 0
                        const (2) int 6 0
                  seq no type 10 1
                    name nil ref Node 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
                      seq no type 10 1
                        name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_ADJ (10) int 6 0
    seq no type 10 2
      ref ref Node 10 1
        tuple Node 10 1
          seq no type 10 1
            const n_WORD (11) int 6 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
                seq no type 10 1
                  const and string 1 0
                  seq no type 10 1
                    name nil polymorphic type 1 0
      seq no type 10 2
        ref ref Node 10 2
          tuple Node 10 2
            seq no type 10 2
              const n_BLOCK (0) int 6 0
              seq no type 10 2
                * ref Node 10 1
                  indx big 10 1
                    name yys array of YYS 0 0
                    - int 10 1
                      name yypt int 0 0
                      const (2) int 6 0
                seq no type 10 1
                  name nil ref Node 1 0
                  seq no type 10 1
                    name nil polymorphic type 1 0
                    seq no type 10 1
                      name nil polymorphic type 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t382 ref Node 0 0
ecom: 
const n_ADJ (10) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t382 ref Node 0 0
    const (0) int 6 0
ecom: 
ref ref Node 10 1
  tuple Node 10 1
    seq no type 10 1
      const n_WORD (11) int 6 0
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            const and string 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t382 ref Node 0 0
    const (8) int 6 0
generate desc for Node
ecom: 
tuple Node 10 1
  seq no type 10 1
    const n_WORD (11) int 6 0
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          const and string 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t378 ref Node 0 0
ecom: 
const n_WORD (11) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (16) int 6 0
ecom: 
const and string 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t378 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t378 ref Node 0 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_BLOCK (0) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (2) int 6 0
        seq no type 10 1
          name nil ref Node 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t382 ref Node 0 0
    const (16) int 6 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_BLOCK (0) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (2) int 6 0
      seq no type 10 1
        name nil ref Node 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t378 ref Node 0 0
ecom: 
const n_BLOCK (0) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (2) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (2) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (2) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (2) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (2) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (16) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t378 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t378 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t378 ref Node 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t382 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t382 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t382 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t382 ref Node 0 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_BLOCK (0) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
        seq no type 10 1
          name nil ref Node 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_BLOCK (0) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          name yypt int 0 0
      seq no type 10 1
        name nil ref Node 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t382 ref Node 0 0
ecom: 
const n_BLOCK (0) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t382 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t382 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t382 ref Node 0 0
    const (16) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t382 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t382 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t382 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t382 ref Node 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  name nil polymorphic type 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      + int 15 1
        name yyp int 0 0
        const (1) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  + int 15 1
    name yyp int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        const n_PIPE (9) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (3) int 6 0
          seq no type 10 2
            * ref Node 10 1
              indx big 10 1
                name yys array of YYS 0 0
                name yypt int 0 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                * ref Redir 10 1
                  + int 10 1
                    indx big 10 1
                      name yys array of YYS 0 0
                      - int 10 1
                        name yypt int 0 0
                        const (2) int 6 0
                    const redir (16) int 6 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_PIPE (9) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (3) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              name yypt int 0 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              * ref Redir 10 1
                + int 10 1
                  indx big 10 1
                    name yys array of YYS 0 0
                    - int 10 1
                      name yypt int 0 0
                      const (2) int 6 0
                  const redir (16) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_PIPE (9) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (3) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            * ref Redir 10 1
              + int 10 1
                indx big 10 1
                  name yys array of YYS 0 0
                  - int 10 1
                    name yypt int 0 0
                    const (2) int 6 0
                const redir (16) int 6 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_PIPE (9) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (3) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (3) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (3) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (3) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (3) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
* ref Redir 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      - int 10 1
        name yypt int 0 0
        const (2) int 6 0
    const redir (16) int 6 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
eacom: 
* ref Redir 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      - int 10 1
        name yypt int 0 0
        const (2) int 6 0
    const redir (16) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (2) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (2) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (2) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      + int 15 1
        name yyp int 0 0
        const (1) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  + int 15 1
    name yyp int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        const n_ADJ (10) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (1) int 6 0
          seq no type 10 2
            * ref Node 10 1
              indx big 10 1
                name yys array of YYS 0 0
                name yypt int 0 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_ADJ (10) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (1) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              name yypt int 0 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_ADJ (10) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (1) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_ADJ (10) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      + int 15 1
        name yyp int 0 0
        const (1) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  + int 15 1
    name yyp int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      + int 15 1
        name yyp int 0 0
        const (1) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  + int 15 1
    name yyp int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        * int 10 1
          + int 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (1) int 6 0
            const optype (24) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (2) int 6 0
          seq no type 10 2
            * ref Node 10 1
              indx big 10 1
                name yys array of YYS 0 0
                name yypt int 0 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      * int 10 1
        + int 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (1) int 6 0
          const optype (24) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (2) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              name yypt int 0 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    * int 10 1
      + int 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (1) int 6 0
        const optype (24) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (2) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
* int 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      - int 10 1
        name yypt int 0 0
        const (1) int 6 0
    const optype (24) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
eacom: 
* int 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      - int 10 1
        name yypt int 0 0
        const (1) int 6 0
    const optype (24) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (2) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (2) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (2) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (2) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (2) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        * int 10 1
          + int 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (1) int 6 0
            const optype (24) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (2) int 6 0
          seq no type 10 2
            * ref Node 10 1
              indx big 10 1
                name yys array of YYS 0 0
                name yypt int 0 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      * int 10 1
        + int 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (1) int 6 0
          const optype (24) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (2) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              name yypt int 0 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    * int 10 1
      + int 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (1) int 6 0
        const optype (24) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (2) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
* int 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      - int 10 1
        name yypt int 0 0
        const (1) int 6 0
    const optype (24) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
eacom: 
* int 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      - int 10 1
        name yypt int 0 0
        const (1) int 6 0
    const optype (24) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (2) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (2) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (2) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (2) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (2) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        * int 10 1
          + int 10 1
            indx big 10 1
              name yys array of YYS 0 0
              name yypt int 0 0
            const optype (24) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (1) int 6 0
          seq no type 10 1
            name nil ref Node 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      * int 10 1
        + int 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
          const optype (24) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (1) int 6 0
        seq no type 10 1
          name nil ref Node 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    * int 10 1
      + int 10 1
        indx big 10 1
          name yys array of YYS 0 0
          name yypt int 0 0
        const optype (24) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (1) int 6 0
      seq no type 10 1
        name nil ref Node 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
* int 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      name yypt int 0 0
    const optype (24) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
eacom: 
* int 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      name yypt int 0 0
    const optype (24) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 1
    tuple Node 10 1
      seq no type 10 1
        const n_DUP (5) int 6 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                * ref Redir 10 1
                  + int 10 1
                    indx big 10 1
                      name yys array of YYS 0 0
                      name yypt int 0 0
                    const redir (16) int 6 0
ecom: 
ref ref Node 10 1
  tuple Node 10 1
    seq no type 10 1
      const n_DUP (5) int 6 0
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              * ref Redir 10 1
                + int 10 1
                  indx big 10 1
                    name yys array of YYS 0 0
                    name yypt int 0 0
                  const redir (16) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 1
  seq no type 10 1
    const n_DUP (5) int 6 0
    seq no type 10 1
      name nil polymorphic type 1 0
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            * ref Redir 10 1
              + int 10 1
                indx big 10 1
                  name yys array of YYS 0 0
                  name yypt int 0 0
                const redir (16) int 6 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_DUP (5) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
* ref Redir 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      name yypt int 0 0
    const redir (16) int 6 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
eacom: 
* ref Redir 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      name yypt int 0 0
    const redir (16) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        const n_REDIR (4) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              name yypt int 0 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                * ref Redir 10 1
                  + int 10 1
                    indx big 10 1
                      name yys array of YYS 0 0
                      - int 10 1
                        name yypt int 0 0
                        const (1) int 6 0
                    const redir (16) int 6 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_REDIR (4) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              * ref Redir 10 1
                + int 10 1
                  indx big 10 1
                    name yys array of YYS 0 0
                    - int 10 1
                      name yypt int 0 0
                      const (1) int 6 0
                  const redir (16) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_REDIR (4) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          name yypt int 0 0
      seq no type 10 1
        name nil polymorphic type 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            * ref Redir 10 1
              + int 10 1
                indx big 10 1
                  name yys array of YYS 0 0
                  - int 10 1
                    name yypt int 0 0
                    const (1) int 6 0
                const redir (16) int 6 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_REDIR (4) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
* ref Redir 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      - int 10 1
        name yypt int 0 0
        const (1) int 6 0
    const redir (16) int 6 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
eacom: 
* ref Redir 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      - int 10 1
        name yypt int 0 0
        const (1) int 6 0
    const redir (16) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      + int 15 1
        name yyp int 0 0
        const (1) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  + int 15 1
    name yyp int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        const n_ADJ (10) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (1) int 6 0
          seq no type 10 2
            * ref Node 10 1
              indx big 10 1
                name yys array of YYS 0 0
                name yypt int 0 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_ADJ (10) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (1) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              name yypt int 0 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_ADJ (10) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (1) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_ADJ (10) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        const n_ADJ (10) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (1) int 6 0
          seq no type 10 2
            * ref Node 10 1
              indx big 10 1
                name yys array of YYS 0 0
                name yypt int 0 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_ADJ (10) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (1) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              name yypt int 0 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_ADJ (10) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (1) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_ADJ (10) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  name nil polymorphic type 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      + int 15 1
        name yyp int 0 0
        const (1) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  + int 15 1
    name yyp int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      name yypt int 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        const n_ADJ (10) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (2) int 6 0
          seq no type 10 2
            * ref Node 10 1
              indx big 10 1
                name yys array of YYS 0 0
                name yypt int 0 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_ADJ (10) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (2) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              name yypt int 0 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_ADJ (10) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (2) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_ADJ (10) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (2) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (2) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (2) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (2) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (2) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        const n_ADJ (10) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (2) int 6 0
          seq no type 10 2
            * ref Node 10 1
              indx big 10 1
                name yys array of YYS 0 0
                name yypt int 0 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_ADJ (10) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (2) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              name yypt int 0 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_ADJ (10) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (2) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_ADJ (10) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (2) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (2) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (2) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (2) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (2) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  * ref Node 10 1
    indx big 10 1
      name yys array of YYS 0 0
      + int 15 1
        name yyp int 0 0
        const (1) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    + int 15 1
      name yyp int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  + int 15 1
    name yyp int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom: 
+ int 15 1
  name yyp int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        const n_CONCAT (8) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (3) int 6 0
          seq no type 10 2
            * ref Node 10 1
              indx big 10 1
                name yys array of YYS 0 0
                name yypt int 0 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_CONCAT (8) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (3) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              name yypt int 0 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_CONCAT (8) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (3) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_CONCAT (8) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (3) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (3) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (3) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (3) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (3) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        const n_WORD (11) int 6 0
        seq no type 10 2
          name nil polymorphic type 1 0
          seq no type 10 2
            name nil polymorphic type 1 0
            seq no type 10 2
              * string 10 1
                + int 10 1
                  indx big 10 1
                    name yys array of YYS 0 0
                    name yypt int 0 0
                  const word (8) int 6 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_WORD (11) int 6 0
      seq no type 10 2
        name nil polymorphic type 1 0
        seq no type 10 2
          name nil polymorphic type 1 0
          seq no type 10 2
            * string 10 1
              + int 10 1
                indx big 10 1
                  name yys array of YYS 0 0
                  name yypt int 0 0
                const word (8) int 6 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_WORD (11) int 6 0
    seq no type 10 2
      name nil polymorphic type 1 0
      seq no type 10 2
        name nil polymorphic type 1 0
        seq no type 10 2
          * string 10 1
            + int 10 1
              indx big 10 1
                name yys array of YYS 0 0
                name yypt int 0 0
              const word (8) int 6 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_WORD (11) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
ecom: 
* string 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      name yypt int 0 0
    const word (8) int 6 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
eacom: 
* string 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      name yypt int 0 0
    const word (8) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        * int 10 1
          + int 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (1) int 6 0
            const optype (24) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              name yypt int 0 0
          seq no type 10 1
            name nil ref Node 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      * int 10 1
        + int 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (1) int 6 0
          const optype (24) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            name yypt int 0 0
        seq no type 10 1
          name nil ref Node 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    * int 10 1
      + int 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (1) int 6 0
        const optype (24) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          name yypt int 0 0
      seq no type 10 1
        name nil ref Node 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
* int 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      - int 10 1
        name yypt int 0 0
        const (1) int 6 0
    const optype (24) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
eacom: 
* int 10 1
  + int 10 1
    indx big 10 1
      name yys array of YYS 0 0
      - int 10 1
        name yypt int 0 0
        const (1) int 6 0
    const optype (24) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    name yypt int 0 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  name yypt int 0 0
ecom to: 
name .b381 big 0 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        const n_LIST (6) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (1) int 6 0
          seq no type 10 1
            name nil ref Node 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_LIST (6) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (1) int 6 0
        seq no type 10 1
          name nil ref Node 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_LIST (6) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (1) int 6 0
      seq no type 10 1
        name nil ref Node 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_LIST (6) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
= ref Node 10 2
  * ref Node 0 0
    adr int 13 1
      name yyval YYSTYPE 0 0
  ref ref Node 10 2
    tuple Node 10 2
      seq no type 10 2
        const n_BLOCK (0) int 6 0
        seq no type 10 2
          * ref Node 10 1
            indx big 10 1
              name yys array of YYS 0 0
              - int 10 1
                name yypt int 0 0
                const (1) int 6 0
          seq no type 10 1
            name nil ref Node 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
              seq no type 10 1
                name nil polymorphic type 1 0
ecom: 
ref ref Node 10 2
  tuple Node 10 2
    seq no type 10 2
      const n_BLOCK (0) int 6 0
      seq no type 10 2
        * ref Node 10 1
          indx big 10 1
            name yys array of YYS 0 0
            - int 10 1
              name yypt int 0 0
              const (1) int 6 0
        seq no type 10 1
          name nil ref Node 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
            seq no type 10 1
              name nil polymorphic type 1 0
ecom to: 
* ref Node 0 0
  adr int 13 1
    name yyval YYSTYPE 0 0
generate desc for Node
ecom: 
tuple Node 10 2
  seq no type 10 2
    const n_BLOCK (0) int 6 0
    seq no type 10 2
      * ref Node 10 1
        indx big 10 1
          name yys array of YYS 0 0
          - int 10 1
            name yypt int 0 0
            const (1) int 6 0
      seq no type 10 1
        name nil ref Node 1 0
        seq no type 10 1
          name nil polymorphic type 1 0
          seq no type 10 1
            name nil polymorphic type 1 0
ecom to: 
* Node 8 0
  name .t383 ref Node 0 0
ecom: 
const n_BLOCK (0) int 6 0
ecom to: 
* int 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (0) int 6 0
ecom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (8) int 6 0
eacom: 
* ref Node 10 1
  indx big 10 1
    name yys array of YYS 0 0
    - int 10 1
      name yypt int 0 0
      const (1) int 6 0
generate desc for big
ecom: 
indx big 10 1
  name yys array of YYS 0 0
  - int 10 1
    name yypt int 0 0
    const (1) int 6 0
ecom to: 
name .b381 big 0 0
eacom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom: 
- int 10 1
  name yypt int 0 0
  const (1) int 6 0
ecom to: 
name .t380 int 0 0
ecom: 
name nil ref Node 1 0
ecom to: 
* ref Node 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (16) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (24) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* ref Redir 8 0
  + int 15 1
    adr int 15 1
      * Node 8 0
        name .t383 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .t383 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .t383 ref Node 0 0
ecom: 
name yyn int 0 0
ecom to: 
* int 8 0
  name .ret int 0 0
fn: yyparse
64: argument yylex ref YYLEX ref 6
72: local yyn int ref 33
76: local yyp int ref 29
80: local yychar int ref 15
84: local yystate int ref 15
88: local yyxi int ref 8
92: local yyerrflag int ref 6
96: local yyg int ref 3
100: local yyj int ref 3
104: local yym int ref 2
108: local yynerrs int ref 2
112: local .t377 int ref 1
116: local .t380 int ref 1
120: local yys array of YYS ref 73
128: local .b381 big ref 56
136: local yyval YYSTYPE ref 39
168: local .b379 big ref 28
176: local .t378 array of YYS ref 1
184: local .t382 ref Node ref 1
192: local .t383 ref Node ref 1
88: local yypt int ref 45
generate desc for yyparse
descmap offset 0
descmap yylex type ref YYLEX offset 64 (d->offset=64 start=0) returns 64
descmap yyn type int offset 72 (d->offset=72 start=0) returns -1
descmap yyp type int offset 76 (d->offset=76 start=0) returns -1
descmap yychar type int offset 80 (d->offset=80 start=0) returns -1
descmap yystate type int offset 84 (d->offset=84 start=0) returns -1
descmap yyxi type int offset 88 (d->offset=88 start=0) returns -1
descmap yyerrflag type int offset 92 (d->offset=92 start=0) returns -1
descmap yyg type int offset 96 (d->offset=96 start=0) returns -1
descmap yyj type int offset 100 (d->offset=100 start=0) returns -1
descmap yym type int offset 104 (d->offset=104 start=0) returns -1
descmap yynerrs type int offset 108 (d->offset=108 start=0) returns -1
descmap .t377 type int offset 112 (d->offset=112 start=0) returns -1
descmap .t380 type int offset 116 (d->offset=116 start=0) returns -1
descmap yys type array of YYS offset 120 (d->offset=120 start=0) returns 120
descmap .b381 type big offset 128 (d->offset=128 start=0) returns -1
descmap adt offset 136
descmap offset 136
descmap node type ref Node offset 136 (d->offset=0 start=136) returns 136
descmap word type string offset 144 (d->offset=8 start=136) returns 144
descmap redir type ref Redir offset 152 (d->offset=16 start=136) returns 152
descmap optype type int offset 160 (d->offset=24 start=136) returns -1
descmap yyval type YYSTYPE offset 136 (d->offset=136 start=0) returns 152
descmap .b379 type big offset 168 (d->offset=168 start=0) returns -1
descmap .t378 type array of YYS offset 176 (d->offset=176 start=0) returns 176
descmap .t382 type ref Node offset 184 (d->offset=184 start=0) returns 184
descmap .t383 type ref Node offset 192 (d->offset=192 start=0) returns 192
nil 'nil' ref 1075
nil '' ref 28
variable '
' val '"\n"'
variable ' ' val '" "'
variable ' 	' val '" \t"'
variable ' 	

' val '" \t\n\r"'
variable ' in glomop' val '" in glomop"'
variable ' not found' val '" not found"'
variable '"' val '"\""'
variable '#p/' val '"#p/"'
variable '$' val '"$"'
variable '$"' val '"$\""'
variable '$#' val '"$#"'
variable '$Sys' val '"$Sys"'
variable '$self' val '"$self"'
variable '$self(Sh)' val '"$self(Sh)"'
variable '$self(Shellbuiltin)' val '"$self(Shel..."'
variable '${' val '"${"'
variable '${%s}	%s
' val '"${%s}\t%s\n"'
variable '${builtin ' val '"${builtin "'
variable '%r' val '"%r"'
variable '%s' val '"%s"'
variable '%s	%s
' val '"%s\t%s\n"'
variable '%s
' val '"%s\n"'
variable '%s: %s' val '"%s: %s"'
variable '%s: not found
' val '"%s: not fo..."'
variable '%s:%d: %s' val '"%s:%d: %s"'
variable '%s=%s
' val '"%s=%s\n"'
variable '&' val '"&"'
variable ''' val '"'"'
variable '(' val '"("'
variable ')' val '")"'
variable '*' val '"*"'
variable '.' val '"."'
variable './' val '"./"'
variable '.B.00000000.       0' val '.B.00000000.       0'
variable '.b.0a' val '.b.0a'
variable '.b.21' val '(.b.21)'
variable '.b.23' val '(.b.23)'
variable '.c0' val '.c0'
variable '.c1' val '.c1'
variable '.c11' val '.c11'
variable '.c12' val '.c12'
variable '.c13' val '.c13'
variable '.c14' val '.c14'
variable '.c15' val '.c15'
variable '.c16' val '.c16'
variable '.c2' val '.c2'
variable '.c4' val '.c4'
variable '.c5' val '.c5'
variable '.c6' val '.c6'
variable '.c7' val '.c7'
variable '.c8' val '.c8'
variable '.c9' val '.c9'
variable '.dis' val '".dis"'
variable '.g10' val '.g10'
variable '.g17' val '.g17'
variable '.g3' val '.g3'
variable '.i.7fffffff' val '.i.7fffffff'
variable '.i.80000000' val '.i.80000000'
variable '.m.Bufio' val ''
variable '.m.Command' val ''
variable '.m.Env' val ''
variable '.m.Filepat' val ''
variable '.m.Sh' val ''
variable '.m.Shellbuiltin' val ''
variable '.m.String' val ''
variable '.m.Sys' val ''
variable '.m.YYSys' val ''
variable '/' val '"/"'
variable '/dev/cons' val '"/dev/cons"'
variable '/dis' val '"/dis"'
variable '/dis/lib/bufio.dis' val '"/dis/lib/b..."'
variable '/dis/lib/env.dis' val '"/dis/lib/e..."'
variable '/dis/lib/filepat.dis' val '"/dis/lib/f..."'
variable '/dis/lib/string.dis' val '"/dis/lib/s..."'
variable '/dis/sh/' val '"/dis/sh/"'
variable '/fd/' val '"/fd/"'
variable '/lib/sh/profile' val '"/lib/sh/pr..."'
variable '/prog/' val '"/prog/"'
variable '/wait' val '"/wait"'
variable '0' val '"0"'
variable ': parse error: ' val '": parse er..."'
variable ':=' val '":="'
variable ';' val '";"'
variable '; ' val '"; "'
variable '<' val '"<"'
variable '<>' val '"<>"'
variable '=' val '"="'
variable '>' val '">"'
variable '>>' val '">>"'
variable '@' val '"@"'
variable '[' val '"["'
variable ']' val '"]"'
variable '^' val '"^"'
variable '^
 	
|$'#<>;^(){}`&="' val '"^\n \t\r|$'#<..."'
variable '`' val '"`"'
variable 'a-zA-Z0-9*_' val '"a-zA-Z0-9*..."'
variable 'and' val '"and"'
variable 'apid' val '"apid"'
variable 'autoload' val '"autoload"'
variable 'bad $ arg' val '"bad $ arg"'
variable 'bad assign' val '"bad assign"'
variable 'bad concatenation' val '"bad concat..."'
variable 'bad header' val '"bad header"'
variable 'bad module' val '"bad module"'
variable 'bad node type ' val '"bad node t..."'
variable 'bad redir' val '"bad redir"'
variable 'bad script header on ' val '"bad script..."'
variable 'bad script path' val '"bad script..."'
variable 'bad wait read' val '"bad wait r..."'
variable 'blanklex' val ''
variable 'blankopts' val ''
variable 'bquote' val '"bquote"'
variable 'bufio' val ''
variable 'builtin' val '"builtin"'
variable 'builtin %s
' val '"builtin %s..."'
variable 'builtin command [args ...]' val '"builtin co..."'
variable 'builtin not found' val '"builtin no..."'
variable 'cannot open wait file: %r' val '"cannot ope..."'
variable 'directory entry not found' val '"directory ..."'
variable 'does not exist' val '"does not e..."'
variable 'empty header on ' val '"empty head..."'
variable 'env' val ''
variable 'error on wait read: %r' val '"error on w..."'
variable 'exit' val '"exit"'
variable 'fail:' val '"fail:"'
variable 'fail:bad module' val '"fail:bad m..."'
variable 'fail:parse error' val '"fail:parse..."'
variable 'fail:usage' val '"fail:usage"'
variable 'fail:write on closed pipe' val '"fail:write..."'
variable 'failed' val '"failed"'
variable 'filepat' val ''
variable 'ifs' val '"ifs"'
variable 'internal' val '"internal"'
variable 'killed' val '"killed"'
variable 'load' val '"load"'
variable 'load ' val '"load "'
variable 'load path...' val '"load path...."'
variable 'load: cannot load %s: %r' val '"load: cann..."'
variable 'load: module init failed: ' val '"load: modu..."'
variable 'loaded' val '"loaded"'
variable 'module %s not found' val '"module %s ..."'
variable 'myself' val ''
variable 'myselfbuiltin' val ''
variable 'nil' val ''
variable 'no pipe' val '"no pipe"'
variable 'not found' val '"not found"'
variable 'or' val '"or"'
variable 'panic' val '"panic"'
variable 'parse error' val '"parse erro..."'
variable 'path' val '"path"'
variable 'permission denied' val '"permission..."'
variable 'prompt' val '"prompt"'
variable 'quote' val '"quote"'
variable 'reopen of waitfd gave same fd (%d)' val '"reopen of ..."'
variable 'run' val '"run"'
variable 'run path' val '"run path"'
variable 'sh panic: %s
' val '"sh panic: ..."'
variable 'sh: ' val '"sh: "'
variable 'sh: %s
' val '"sh: %s\n"'
variable 'sh: assignment in invalid context' val '"sh: assign..."'
variable 'sh: bad builtin name' val '"sh: bad bu..."'
variable 'sh: bad exit status '%s'' val '"sh: bad ex..."'
variable 'sh: bad redirection' val '"sh: bad re..."'
variable 'sh: bad variable name' val '"sh: bad va..."'
variable 'sh: builtin %s not found' val '"sh: builti..."'
variable 'sh: cannot dup: %r' val '"sh: cannot..."'
variable 'sh: cannot load %s: %r
' val '"sh: cannot..."'
variable 'sh: cannot make pipe: %r' val '"sh: cannot..."'
variable 'sh: cannot open %s: %r' val '"sh: cannot..."'
variable 'sh: cannot open %s: %s' val '"sh: cannot..."'
variable 'sh: invalid argument to ${} operator' val '"sh: invali..."'
variable 'sh: invalid dup' val '"sh: invali..."'
variable 'sh: lists of differing sizes can't be concatenated' val '"sh: lists ..."'
variable 'sh: nil variable name' val '"sh: nil va..."'
variable 'sh: null list in concatenation' val '"sh: null l..."'
variable 'sh: redirection not allowed in substitution' val '"sh: redire..."'
variable 'sh: redirections not allowed in assignment' val '"sh: redire..."'
variable 'sh: single redirection operand required' val '"sh: single..."'
variable 'sh: usage: ' val '"sh: usage:..."'
variable 'status' val '"status"'
variable 'stdin' val '"stdin"'
variable 'str' val ''
variable 'syncenv' val '"syncenv"'
variable 'syntax error' val '"syntax err..."'
variable 'syntax error in pipe redirection' val '"syntax err..."'
variable 'syntax error in redirection' val '"syntax err..."'
variable 'sys' val ''
variable 'unbalanced contexts in shell environment' val '"unbalanced..."'
variable 'unknown error' val '"unknown er..."'
variable 'unknown%d' val '"unknown%d"'
variable 'unload' val '"unload"'
variable 'unload path...' val '"unload pat..."'
variable 'unquote' val '"unquote"'
variable 'unquote arg' val '"unquote ar..."'
variable 'unterminated string literal' val '"unterminat..."'
variable 'usage' val '"usage"'
variable 'usage: sh [-ilexn] [-c command] [file [arg...]]
' val '"usage: sh ..."'
variable 'whatis' val '"whatis"'
variable 'whatis name ...' val '"whatis nam..."'
variable 'write on closed pipe' val '"write on c..."'
variable 'yyact' val 'array [93] of {0 =>12, 1 =>10, 2 =>15, 3 =>4, 4 =>5, 5 =>40, 6 =>8, 7 =>11, 8 =>9, 9 =>7, 10 =>30, 11 =>31, 12 =>54, 13 =>6, 14 =>50, 15 =>35, 16 =>34, 17 =>32, 18 =>33, 19 =>21, 20 =>36, 21 =>38, 22 =>34, 23 =>41, 24 =>43, 25 =>22, 26 =>29, 27 =>3, 28 =>28, 29 =>13, 30 =>14, 31 =>16, 32 =>17, 33 =>20, 34 =>37, 35 =>42, 36 =>1, 37 =>23, 38 =>45, 39 =>51, 40 =>44, 41 =>47, 42 =>48, 43 =>18, 44 =>39, 45 =>19, 46 =>41, 47 =>43, 48 =>56, 49 =>30, 50 =>31, 51 =>46, 52 =>58, 53 =>57, 54 =>59, 55 =>60, 56 =>49, 57 =>13, 58 =>14, 59 =>16, 60 =>17, 61 =>53, 62 =>13, 63 =>14, 64 =>16, 65 =>17, 66 =>2, 67 =>52, 68 =>0, 69 =>16, 70 =>17, 71 =>18, 72 =>27, 73 =>19, 74 =>16, 75 =>17, 76 =>18, 77 =>52, 78 =>19, 79 =>0, 80 =>26, 81 =>18, 82 =>0, 83 =>19, 84 =>24, 85 =>25, 86 =>18, 87 =>26, 88 =>19, 89 =>0, 90 =>55, 91 =>24, 92 =>25}'
generate desc for int
variable 'yychk' val 'array [61] of {0 =>-1000, 1 =>-6, 2 =>-12, 3 =>2, 4 =>-16, 5 =>-9, 6 =>-15, 7 =>-10, 8 =>-5, 9 =>-4, 10 =>-1, 11 =>-7, 12 =>-2, 13 =>4, 14 =>5, 15 =>-11, 16 =>6, 17 =>7, 18 =>18, 19 =>20, 20 =>-17, 21 =>8, 22 =>14, 23 =>-17, 24 =>15, 25 =>16, 26 =>11, 27 =>-12, 28 =>10, 29 =>12, 30 =>-2, 31 =>-1, 32 =>-5, 33 =>13, 34 =>17, 35 =>-2, 36 =>-11, 37 =>-14, 38 =>-18, 39 =>-3, 40 =>-13, 41 =>-16, 42 =>-8, 43 =>-9, 44 =>-15, 45 =>-10, 46 =>-18, 47 =>-7, 48 =>-4, 49 =>-18, 50 =>19, 51 =>-2, 52 =>14, 53 =>-18, 54 =>21, 55 =>14, 56 =>-13, 57 =>-5, 58 =>-11, 59 =>-2, 60 =>-1}'
generate desc for int
variable 'yydef' val 'array [61] of {0 =>-2, 1 =>-2, 2 =>0, 3 =>0, 4 =>5, 5 =>17, 6 =>13, 7 =>15, 8 =>18, 9 =>20, 10 =>22, 11 =>23, 12 =>29, 13 =>27, 14 =>0, 15 =>37, 16 =>39, 17 =>0, 18 =>43, 19 =>17, 20 =>1, 21 =>3, 22 =>4, 23 =>2, 24 =>9, 25 =>10, 26 =>17, 27 =>6, 28 =>17, 29 =>43, 30 =>30, 31 =>31, 32 =>21, 33 =>26, 34 =>43, 35 =>28, 36 =>40, 37 =>0, 38 =>32, 39 =>43, 40 =>0, 41 =>7, 42 =>17, 43 =>11, 44 =>14, 45 =>16, 46 =>0, 47 =>24, 48 =>25, 49 =>0, 50 =>41, 51 =>34, 52 =>44, 53 =>33, 54 =>42, 55 =>12, 56 =>8, 57 =>19, 58 =>38, 59 =>35, 60 =>36}'
generate desc for int
variable 'yyexca' val 'array [24] of {0 =>-1, 1 =>0, 2 =>8, 3 =>17, 4 =>10, 5 =>17, 6 =>11, 7 =>17, 8 =>12, 9 =>17, 10 =>14, 11 =>17, 12 =>15, 13 =>17, 14 =>16, 15 =>17, 16 =>-2, 17 =>0, 18 =>-1, 19 =>1, 20 =>1, 21 =>-1, 22 =>-2, 23 =>0}'
generate desc for int
variable 'yypact' val 'array [61] of {0 =>25, 1 =>-1000, 2 =>11, 3 =>11, 4 =>69, 5 =>58, 6 =>18, 7 =>14, 8 =>-1000, 9 =>58, 10 =>58, 11 =>-1000, 12 =>5, 13 =>-1000, 14 =>68, 15 =>-1000, 16 =>-1000, 17 =>68, 18 =>-1000, 19 =>58, 20 =>-1000, 21 =>-1000, 22 =>-1000, 23 =>-1000, 24 =>-1000, 25 =>-1000, 26 =>58, 27 =>-1000, 28 =>58, 29 =>-1000, 30 =>-1, 31 =>-1000, 32 =>-1000, 33 =>68, 34 =>-1000, 35 =>-1, 36 =>-1000, 37 =>-5, 38 =>63, 39 =>-1000, 40 =>-9, 41 =>76, 42 =>58, 43 =>-1000, 44 =>18, 45 =>14, 46 =>53, 47 =>-1000, 48 =>58, 49 =>63, 50 =>-1000, 51 =>-1, 52 =>-1000, 53 =>53, 54 =>-1000, 55 =>-1000, 56 =>-1000, 57 =>-1000, 58 =>-1000, 59 =>-1, 60 =>-1000}'
generate desc for int
variable 'yypgo' val 'array [19] of {0 =>0, 1 =>1, 2 =>0, 3 =>44, 4 =>8, 5 =>6, 6 =>36, 7 =>7, 8 =>35, 9 =>4, 10 =>9, 11 =>2, 12 =>66, 13 =>5, 14 =>34, 15 =>13, 16 =>3, 17 =>33, 18 =>21}'
generate desc for int
variable 'yyr1' val 'array [45] of {0 =>0, 1 =>6, 2 =>6, 3 =>17, 4 =>17, 5 =>12, 6 =>12, 7 =>13, 8 =>13, 9 =>9, 10 =>9, 11 =>8, 12 =>8, 13 =>16, 14 =>16, 15 =>15, 16 =>15, 17 =>10, 18 =>10, 19 =>10, 20 =>5, 21 =>5, 22 =>5, 23 =>5, 24 =>7, 25 =>7, 26 =>7, 27 =>1, 28 =>1, 29 =>4, 30 =>4, 31 =>4, 32 =>14, 33 =>14, 34 =>3, 35 =>3, 36 =>3, 37 =>2, 38 =>2, 39 =>11, 40 =>11, 41 =>11, 42 =>11, 43 =>18, 44 =>18}'
generate desc for int
variable 'yyr2' val 'array [45] of {0 =>0, 1 =>2, 2 =>2, 3 =>1, 4 =>1, 5 =>1, 6 =>2, 7 =>1, 8 =>2, 9 =>2, 10 =>2, 11 =>1, 12 =>2, 13 =>1, 14 =>3, 15 =>1, 16 =>3, 17 =>0, 18 =>1, 19 =>4, 20 =>1, 21 =>2, 22 =>1, 23 =>1, 24 =>3, 25 =>3, 26 =>2, 27 =>1, 28 =>2, 29 =>1, 30 =>2, 31 =>2, 32 =>1, 33 =>2, 34 =>2, 35 =>3, 36 =>3, 37 =>1, 38 =>4, 39 =>1, 40 =>2, 41 =>3, 42 =>3, 43 =>0, 44 =>2}'
generate desc for int
variable 'yystates' val ''
variable 'yystderr' val ''
variable 'yysys' val ''
variable 'yytok1' val 'array [126] of {0 =>1, 1 =>3, 2 =>3, 3 =>3, 4 =>3, 5 =>3, 6 =>3, 7 =>3, 8 =>3, 9 =>3, 10 =>14, 11 =>3, 12 =>3, 13 =>3, 14 =>3, 15 =>3, 16 =>3, 17 =>3, 18 =>3, 19 =>3, 20 =>3, 21 =>3, 22 =>3, 23 =>3, 24 =>3, 25 =>3, 26 =>3, 27 =>3, 28 =>3, 29 =>3, 30 =>3, 31 =>3, 32 =>3, 33 =>3, 34 =>3, 35 =>3, 36 =>3, 37 =>3, 38 =>16, 39 =>3, 40 =>18, 41 =>19, 42 =>3, 43 =>3, 44 =>3, 45 =>3, 46 =>3, 47 =>3, 48 =>3, 49 =>3, 50 =>3, 51 =>3, 52 =>3, 53 =>3, 54 =>3, 55 =>3, 56 =>3, 57 =>3, 58 =>3, 59 =>15, 60 =>3, 61 =>13, 62 =>3, 63 =>3, 64 =>3, 65 =>3, 66 =>3, 67 =>3, 68 =>3, 69 =>3, 70 =>3, 71 =>3, 72 =>3, 73 =>3, 74 =>3, 75 =>3, 76 =>3, 77 =>3, 78 =>3, 79 =>3, 80 =>3, 81 =>3, 82 =>3, 83 =>3, 84 =>3, 85 =>3, 86 =>3, 87 =>3, 88 =>3, 89 =>3, 90 =>3, 91 =>3, 92 =>3, 93 =>3, 94 =>17, 95 =>3, 96 =>3, 97 =>3, 98 =>3, 99 =>3, 100 =>3, 101 =>3, 102 =>3, 103 =>3, 104 =>3, 105 =>3, 106 =>3, 107 =>3, 108 =>3, 109 =>3, 110 =>3, 111 =>3, 112 =>3, 113 =>3, 114 =>3, 115 =>3, 116 =>3, 117 =>3, 118 =>3, 119 =>3, 120 =>3, 121 =>3, 122 =>3, 123 =>20, 124 =>12, 125 =>21}'
generate desc for int
variable 'yytok2' val 'array [10] of {0 =>2, 1 =>3, 2 =>4, 3 =>5, 4 =>6, 5 =>7, 6 =>8, 7 =>9, 8 =>10, 9 =>11}'
generate desc for int
variable 'yytok3' val 'array [1] of {0 =>0}'
generate desc for int
variable 'yytoknames' val ''
variable '{' val '"{"'
variable '|' val '"|"'
variable '}' val '"}"'
variable '}
' val '"}\n"'
nil 'nil' ref 1075
nil '' ref 28
generate desc for Sh
descmap offset 0
descmap 
 type string offset 0 (d->offset=0 start=0) returns 0
descmap   type string offset 8 (d->offset=8 start=0) returns 8
descmap  	 type string offset 16 (d->offset=16 start=0) returns 16
descmap  	

 type string offset 24 (d->offset=24 start=0) returns 24
descmap  in glomop type string offset 32 (d->offset=32 start=0) returns 32
descmap  not found type string offset 40 (d->offset=40 start=0) returns 40
descmap " type string offset 48 (d->offset=48 start=0) returns 48
descmap #p/ type string offset 56 (d->offset=56 start=0) returns 56
descmap $ type string offset 64 (d->offset=64 start=0) returns 64
descmap $" type string offset 72 (d->offset=72 start=0) returns 72
descmap $# type string offset 80 (d->offset=80 start=0) returns 80
descmap $Sys type string offset 88 (d->offset=88 start=0) returns 88
descmap $self type string offset 96 (d->offset=96 start=0) returns 96
descmap $self(Sh) type string offset 104 (d->offset=104 start=0) returns 104
descmap $self(Shellbuiltin) type string offset 112 (d->offset=112 start=0) returns 112
descmap ${ type string offset 120 (d->offset=120 start=0) returns 120
descmap ${%s}	%s
 type string offset 128 (d->offset=128 start=0) returns 128
descmap ${builtin  type string offset 136 (d->offset=136 start=0) returns 136
descmap %r type string offset 144 (d->offset=144 start=0) returns 144
descmap %s type string offset 152 (d->offset=152 start=0) returns 152
descmap %s	%s
 type string offset 160 (d->offset=160 start=0) returns 160
descmap %s
 type string offset 168 (d->offset=168 start=0) returns 168
descmap %s: %s type string offset 176 (d->offset=176 start=0) returns 176
descmap %s: not found
 type string offset 184 (d->offset=184 start=0) returns 184
descmap %s:%d: %s type string offset 192 (d->offset=192 start=0) returns 192
descmap %s=%s
 type string offset 200 (d->offset=200 start=0) returns 200
descmap & type string offset 208 (d->offset=208 start=0) returns 208
descmap ' type string offset 216 (d->offset=216 start=0) returns 216
descmap ( type string offset 224 (d->offset=224 start=0) returns 224
descmap ) type string offset 232 (d->offset=232 start=0) returns 232
descmap * type string offset 240 (d->offset=240 start=0) returns 240
descmap . type string offset 248 (d->offset=248 start=0) returns 248
descmap ./ type string offset 256 (d->offset=256 start=0) returns 256
descmap .B.00000000.       0 type big offset 264 (d->offset=264 start=0) returns -1
descmap .b.0a type byte offset 272 (d->offset=272 start=0) returns -1
descmap .b.21 type byte offset 273 (d->offset=273 start=0) returns -1
descmap .b.23 type byte offset 274 (d->offset=274 start=0) returns -1
descmap .c0 type case int labels offset 276 (d->offset=276 start=0) returns -1
descmap .c1 type case int labels offset 356 (d->offset=356 start=0) returns -1
descmap .c11 type case int labels offset 388 (d->offset=388 start=0) returns -1
descmap .c12 type case string labels offset 552 (d->offset=552 start=0) returns 664
descmap .c13 type case string labels offset 688 (d->offset=688 start=0) returns 896
descmap .c14 type case int labels offset 920 (d->offset=920 start=0) returns -1
descmap .c15 type case int labels offset 1180 (d->offset=1180 start=0) returns -1
descmap .c16 type case int labels offset 1212 (d->offset=1212 start=0) returns -1
descmap .c2 type case int labels offset 1280 (d->offset=1280 start=0) returns -1
descmap .c4 type case int labels offset 1312 (d->offset=1312 start=0) returns -1
descmap .c5 type case int labels offset 1356 (d->offset=1356 start=0) returns -1
descmap .c6 type case string labels offset 1416 (d->offset=1416 start=0) returns 1480
descmap .c7 type case int labels offset 1504 (d->offset=1504 start=0) returns -1
descmap .c8 type case int labels offset 1560 (d->offset=1560 start=0) returns -1
descmap .c9 type case int labels offset 1616 (d->offset=1616 start=0) returns -1
descmap .dis type string offset 1672 (d->offset=1672 start=0) returns 1672
descmap .g10 type goto labels offset 1680 (d->offset=1680 start=0) returns -1
descmap .g17 type goto labels offset 1756 (d->offset=1756 start=0) returns -1
descmap .g3 type goto labels offset 1932 (d->offset=1932 start=0) returns -1
descmap .i.7fffffff type int offset 2008 (d->offset=2008 start=0) returns -1
descmap .i.80000000 type int offset 2012 (d->offset=2012 start=0) returns -1
descmap / type string offset 2016 (d->offset=2016 start=0) returns 2016
descmap /dev/cons type string offset 2024 (d->offset=2024 start=0) returns 2024
descmap /dis type string offset 2032 (d->offset=2032 start=0) returns 2032
descmap /dis/lib/bufio.dis type string offset 2040 (d->offset=2040 start=0) returns 2040
descmap /dis/lib/env.dis type string offset 2048 (d->offset=2048 start=0) returns 2048
descmap /dis/lib/filepat.dis type string offset 2056 (d->offset=2056 start=0) returns 2056
descmap /dis/lib/string.dis type string offset 2064 (d->offset=2064 start=0) returns 2064
descmap /dis/sh/ type string offset 2072 (d->offset=2072 start=0) returns 2072
descmap /fd/ type string offset 2080 (d->offset=2080 start=0) returns 2080
descmap /lib/sh/profile type string offset 2088 (d->offset=2088 start=0) returns 2088
descmap /prog/ type string offset 2096 (d->offset=2096 start=0) returns 2096
descmap /wait type string offset 2104 (d->offset=2104 start=0) returns 2104
descmap 0 type string offset 2112 (d->offset=2112 start=0) returns 2112
descmap : parse error:  type string offset 2120 (d->offset=2120 start=0) returns 2120
descmap := type string offset 2128 (d->offset=2128 start=0) returns 2128
descmap ; type string offset 2136 (d->offset=2136 start=0) returns 2136
descmap ;  type string offset 2144 (d->offset=2144 start=0) returns 2144
descmap < type string offset 2152 (d->offset=2152 start=0) returns 2152
descmap <> type string offset 2160 (d->offset=2160 start=0) returns 2160
descmap = type string offset 2168 (d->offset=2168 start=0) returns 2168
descmap > type string offset 2176 (d->offset=2176 start=0) returns 2176
descmap >> type string offset 2184 (d->offset=2184 start=0) returns 2184
descmap @ type string offset 2192 (d->offset=2192 start=0) returns 2192
descmap [ type string offset 2200 (d->offset=2200 start=0) returns 2200
descmap ] type string offset 2208 (d->offset=2208 start=0) returns 2208
descmap ^ type string offset 2216 (d->offset=2216 start=0) returns 2216
descmap ^
 	
|$'#<>;^(){}`&=" type string offset 2224 (d->offset=2224 start=0) returns 2224
descmap ` type string offset 2232 (d->offset=2232 start=0) returns 2232
descmap a-zA-Z0-9*_ type string offset 2240 (d->offset=2240 start=0) returns 2240
descmap and type string offset 2248 (d->offset=2248 start=0) returns 2248
descmap apid type string offset 2256 (d->offset=2256 start=0) returns 2256
descmap autoload type string offset 2264 (d->offset=2264 start=0) returns 2264
descmap bad $ arg type string offset 2272 (d->offset=2272 start=0) returns 2272
descmap bad assign type string offset 2280 (d->offset=2280 start=0) returns 2280
descmap bad concatenation type string offset 2288 (d->offset=2288 start=0) returns 2288
descmap bad header type string offset 2296 (d->offset=2296 start=0) returns 2296
descmap bad module type string offset 2304 (d->offset=2304 start=0) returns 2304
descmap bad node type  type string offset 2312 (d->offset=2312 start=0) returns 2312
descmap bad redir type string offset 2320 (d->offset=2320 start=0) returns 2320
descmap bad script header on  type string offset 2328 (d->offset=2328 start=0) returns 2328
descmap bad script path type string offset 2336 (d->offset=2336 start=0) returns 2336
descmap bad wait read type string offset 2344 (d->offset=2344 start=0) returns 2344
descmap adt offset 2352
descmap offset 2352
descmap adt offset 2352
descmap offset 2352
descmap node type ref Node offset 2352 (d->offset=0 start=2352) returns 2352
descmap word type string offset 2360 (d->offset=8 start=2352) returns 2360
descmap redir type ref Redir offset 2368 (d->offset=16 start=2352) returns 2368
descmap optype type int offset 2376 (d->offset=24 start=2352) returns -1
descmap lval type YYSTYPE offset 2352 (d->offset=0 start=2352) returns 2368
descmap err type string offset 2384 (d->offset=32 start=2352) returns 2384
descmap errline type int offset 2392 (d->offset=40 start=2352) returns -1
descmap path type string offset 2400 (d->offset=48 start=2352) returns 2400
descmap wasdollar type int offset 2408 (d->offset=56 start=2352) returns -1
descmap atendword type int offset 2412 (d->offset=60 start=2352) returns -1
descmap eof type int offset 2416 (d->offset=64 start=2352) returns -1
descmap cbuf type array of int offset 2424 (d->offset=72 start=2352) returns 2424
descmap ncbuf type int offset 2432 (d->offset=80 start=2352) returns -1
descmap f type ref Bufio->Iobuf offset 2440 (d->offset=88 start=2352) returns 2440
descmap s type string offset 2448 (d->offset=96 start=2352) returns 2448
descmap strpos type int offset 2456 (d->offset=104 start=2352) returns -1
descmap linenum type int offset 2460 (d->offset=108 start=2352) returns -1
descmap prompt type string offset 2464 (d->offset=112 start=2352) returns 2464
descmap lastnl type int offset 2472 (d->offset=120 start=2352) returns -1
descmap blanklex type YYLEX offset 2352 (d->offset=2352 start=0) returns 2464
descmap adt offset 2480
descmap offset 2480
descmap lflag type int offset 2480 (d->offset=0 start=2480) returns -1
descmap nflag type int offset 2484 (d->offset=4 start=2480) returns -1
descmap ctxtflags type int offset 2488 (d->offset=8 start=2480) returns -1
descmap carg type string offset 2496 (d->offset=16 start=2480) returns 2496
descmap blankopts type Options offset 2480 (d->offset=2480 start=0) returns 2496
descmap bquote type string offset 2504 (d->offset=2504 start=0) returns 2504
descmap bufio type Bufio offset 2512 (d->offset=2512 start=0) returns 2512
descmap builtin type string offset 2520 (d->offset=2520 start=0) returns 2520
descmap builtin %s
 type string offset 2528 (d->offset=2528 start=0) returns 2528
descmap builtin command [args ...] type string offset 2536 (d->offset=2536 start=0) returns 2536
descmap builtin not found type string offset 2544 (d->offset=2544 start=0) returns 2544
descmap cannot open wait file: %r type string offset 2552 (d->offset=2552 start=0) returns 2552
descmap directory entry not found type string offset 2560 (d->offset=2560 start=0) returns 2560
descmap does not exist type string offset 2568 (d->offset=2568 start=0) returns 2568
descmap empty header on  type string offset 2576 (d->offset=2576 start=0) returns 2576
descmap env type Env offset 2584 (d->offset=2584 start=0) returns 2584
descmap error on wait read: %r type string offset 2592 (d->offset=2592 start=0) returns 2592
descmap exit type string offset 2600 (d->offset=2600 start=0) returns 2600
descmap fail: type string offset 2608 (d->offset=2608 start=0) returns 2608
descmap fail:bad module type string offset 2616 (d->offset=2616 start=0) returns 2616
descmap fail:parse error type string offset 2624 (d->offset=2624 start=0) returns 2624
descmap fail:usage type string offset 2632 (d->offset=2632 start=0) returns 2632
descmap fail:write on closed pipe type string offset 2640 (d->offset=2640 start=0) returns 2640
descmap failed type string offset 2648 (d->offset=2648 start=0) returns 2648
descmap filepat type Filepat offset 2656 (d->offset=2656 start=0) returns 2656
descmap ifs type string offset 2664 (d->offset=2664 start=0) returns 2664
descmap internal type string offset 2672 (d->offset=2672 start=0) returns 2672
descmap killed type string offset 2680 (d->offset=2680 start=0) returns 2680
descmap load type string offset 2688 (d->offset=2688 start=0) returns 2688
descmap load  type string offset 2696 (d->offset=2696 start=0) returns 2696
descmap load path... type string offset 2704 (d->offset=2704 start=0) returns 2704
descmap load: cannot load %s: %r type string offset 2712 (d->offset=2712 start=0) returns 2712
descmap load: module init failed:  type string offset 2720 (d->offset=2720 start=0) returns 2720
descmap loaded type string offset 2728 (d->offset=2728 start=0) returns 2728
descmap module %s not found type string offset 2736 (d->offset=2736 start=0) returns 2736
descmap myself type Sh offset 2744 (d->offset=2744 start=0) returns 2744
descmap myselfbuiltin type Shellbuiltin offset 2752 (d->offset=2752 start=0) returns 2752
descmap nil type polymorphic type offset 2760 (d->offset=2760 start=0) returns 2760
descmap no pipe type string offset 2768 (d->offset=2768 start=0) returns 2768
descmap not found type string offset 2776 (d->offset=2776 start=0) returns 2776
descmap or type string offset 2784 (d->offset=2784 start=0) returns 2784
descmap panic type string offset 2792 (d->offset=2792 start=0) returns 2792
descmap parse error type string offset 2800 (d->offset=2800 start=0) returns 2800
descmap path type string offset 2808 (d->offset=2808 start=0) returns 2808
descmap permission denied type string offset 2816 (d->offset=2816 start=0) returns 2816
descmap prompt type string offset 2824 (d->offset=2824 start=0) returns 2824
descmap quote type string offset 2832 (d->offset=2832 start=0) returns 2832
descmap reopen of waitfd gave same fd (%d) type string offset 2840 (d->offset=2840 start=0) returns 2840
descmap run type string offset 2848 (d->offset=2848 start=0) returns 2848
descmap run path type string offset 2856 (d->offset=2856 start=0) returns 2856
descmap sh panic: %s
 type string offset 2864 (d->offset=2864 start=0) returns 2864
descmap sh:  type string offset 2872 (d->offset=2872 start=0) returns 2872
descmap sh: %s
 type string offset 2880 (d->offset=2880 start=0) returns 2880
descmap sh: assignment in invalid context type string offset 2888 (d->offset=2888 start=0) returns 2888
descmap sh: bad builtin name type string offset 2896 (d->offset=2896 start=0) returns 2896
descmap sh: bad exit status '%s' type string offset 2904 (d->offset=2904 start=0) returns 2904
descmap sh: bad redirection type string offset 2912 (d->offset=2912 start=0) returns 2912
descmap sh: bad variable name type string offset 2920 (d->offset=2920 start=0) returns 2920
descmap sh: builtin %s not found type string offset 2928 (d->offset=2928 start=0) returns 2928
descmap sh: cannot dup: %r type string offset 2936 (d->offset=2936 start=0) returns 2936
descmap sh: cannot load %s: %r
 type string offset 2944 (d->offset=2944 start=0) returns 2944
descmap sh: cannot make pipe: %r type string offset 2952 (d->offset=2952 start=0) returns 2952
descmap sh: cannot open %s: %r type string offset 2960 (d->offset=2960 start=0) returns 2960
descmap sh: cannot open %s: %s type string offset 2968 (d->offset=2968 start=0) returns 2968
descmap sh: invalid argument to ${} operator type string offset 2976 (d->offset=2976 start=0) returns 2976
descmap sh: invalid dup type string offset 2984 (d->offset=2984 start=0) returns 2984
descmap sh: lists of differing sizes can't be concatenated type string offset 2992 (d->offset=2992 start=0) returns 2992
descmap sh: nil variable name type string offset 3000 (d->offset=3000 start=0) returns 3000
descmap sh: null list in concatenation type string offset 3008 (d->offset=3008 start=0) returns 3008
descmap sh: redirection not allowed in substitution type string offset 3016 (d->offset=3016 start=0) returns 3016
descmap sh: redirections not allowed in assignment type string offset 3024 (d->offset=3024 start=0) returns 3024
descmap sh: single redirection operand required type string offset 3032 (d->offset=3032 start=0) returns 3032
descmap sh: usage:  type string offset 3040 (d->offset=3040 start=0) returns 3040
descmap status type string offset 3048 (d->offset=3048 start=0) returns 3048
descmap stdin type string offset 3056 (d->offset=3056 start=0) returns 3056
descmap str type String offset 3064 (d->offset=3064 start=0) returns 3064
descmap syncenv type string offset 3072 (d->offset=3072 start=0) returns 3072
descmap syntax error type string offset 3080 (d->offset=3080 start=0) returns 3080
descmap syntax error in pipe redirection type string offset 3088 (d->offset=3088 start=0) returns 3088
descmap syntax error in redirection type string offset 3096 (d->offset=3096 start=0) returns 3096
descmap sys type Sys offset 3104 (d->offset=3104 start=0) returns 3104
descmap unbalanced contexts in shell environment type string offset 3112 (d->offset=3112 start=0) returns 3112
descmap unknown error type string offset 3120 (d->offset=3120 start=0) returns 3120
descmap unknown%d type string offset 3128 (d->offset=3128 start=0) returns 3128
descmap unload type string offset 3136 (d->offset=3136 start=0) returns 3136
descmap unload path... type string offset 3144 (d->offset=3144 start=0) returns 3144
descmap unquote type string offset 3152 (d->offset=3152 start=0) returns 3152
descmap unquote arg type string offset 3160 (d->offset=3160 start=0) returns 3160
descmap unterminated string literal type string offset 3168 (d->offset=3168 start=0) returns 3168
descmap usage type string offset 3176 (d->offset=3176 start=0) returns 3176
descmap usage: sh [-ilexn] [-c command] [file [arg...]]
 type string offset 3184 (d->offset=3184 start=0) returns 3184
descmap whatis type string offset 3192 (d->offset=3192 start=0) returns 3192
descmap whatis name ... type string offset 3200 (d->offset=3200 start=0) returns 3200
descmap write on closed pipe type string offset 3208 (d->offset=3208 start=0) returns 3208
descmap yyact type array of int offset 3216 (d->offset=3216 start=0) returns 3216
descmap yychk type array of int offset 3224 (d->offset=3224 start=0) returns 3224
descmap yydef type array of int offset 3232 (d->offset=3232 start=0) returns 3232
descmap yyexca type array of int offset 3240 (d->offset=3240 start=0) returns 3240
descmap yypact type array of int offset 3248 (d->offset=3248 start=0) returns 3248
descmap yypgo type array of int offset 3256 (d->offset=3256 start=0) returns 3256
descmap yyr1 type array of int offset 3264 (d->offset=3264 start=0) returns 3264
descmap yyr2 type array of int offset 3272 (d->offset=3272 start=0) returns 3272
descmap yystates type array of string offset 3280 (d->offset=3280 start=0) returns 3280
descmap yystderr type ref YYSys->FD offset 3288 (d->offset=3288 start=0) returns 3288
descmap yysys type YYSys offset 3296 (d->offset=3296 start=0) returns 3296
descmap yytok1 type array of int offset 3304 (d->offset=3304 start=0) returns 3304
descmap yytok2 type array of int offset 3312 (d->offset=3312 start=0) returns 3312
descmap yytok3 type array of int offset 3320 (d->offset=3320 start=0) returns 3320
descmap yytoknames type array of string offset 3328 (d->offset=3328 start=0) returns 3328
descmap { type string offset 3336 (d->offset=3336 start=0) returns 3336
descmap | type string offset 3344 (d->offset=3344 start=0) returns 3344
descmap } type string offset 3352 (d->offset=3352 start=0) returns 3352
descmap }
 type string offset 3360 (d->offset=3360 start=0) returns 3360
R2: new 4b9480 7079c8 7efb50
R2: get 4b9b60 707a88 7f71e8
R2: set 4ba4c0 707b48 7f4cb8
R2: setlocal 4bad90 707c08 7fe638
R2: envlist 4bb650 707cc8 7f9248
R2: push 4bc050 707d88 7fb188
R2: pop 4bc510 707e48 800210
R2: copy 4bc9d0 707f08 7f1250
R2: run 4bd140 707fc8 800db0
R2: addmodule 4bdb40 708088 803fb0
R2: addbuiltin 4be4c0 708148 807380
R2: removebuiltin 4bec50 708208 808cb8
R2: addsbuiltin 4bf3d0 7082c8 8094b8
R2: removesbuiltin 4bfb58 708388 809d80
R2: fail 4c02d8 708448 80aee8
R2: options 4c0af8 708508 80d9c8
R2: setoptions 4c1058 7085c8 80bf28
R1: cmd2string 4b8f00 707908 82eb00
R1: getself 4c6dc8 708bc8 84ac10
R1: init 4b6d80 7075b8 7666a8
R1: initbuiltin 4c4628 7088c8 83d140
R1: initialise 4b6b60 7074f8 765688
R1: list2stringlist 4c3048 708688 82bd48
R1: parse 4b8580 7077f8 768198
R1: quoted 4c3e28 708808 877220
R1: run 4b7d80 707738 771740
R1: runbuiltin 4c5868 708a48 840af0
R1: runsbuiltin 4c6328 708b08 840730
R1: stringlist2list 4c3788 708748 829828
R1: system 4b74e0 707678 770dc0
R1: whatis 4c4e48 708988 83dba0
R3: addbuiltin 708148 4be4c0 807380
R3: addmodule 708088 4bdb40 803fb0
R3: addsbuiltin 7082c8 4bf3d0 8094b8
R3: cmd2string 707908 4b8f00 82eb00
R3: copy 707f08 4bc9d0 7f1250
R3: envlist 707cc8 4bb650 7f9248
R3: fail 708448 4c02d8 80aee8
R3: get 707a88 4b9b60 7f71e8
R3: getself 708bc8 4c6dc8 84ac10
R3: init 7075b8 4b6d80 7666a8
R3: initbuiltin 7088c8 4c4628 83d140
R3: initialise 7074f8 4b6b60 765688
R3: list2stringlist 708688 4c3048 82bd48
R3: new 7079c8 4b9480 7efb50
R3: options 708508 4c0af8 80d9c8
R3: parse 7077f8 4b8580 768198
R3: pop 707e48 4bc510 800210
R3: push 707d88 4bc050 7fb188
R3: quoted 708808 4c3e28 877220
R3: removebuiltin 708208 4bec50 808cb8
R3: removesbuiltin 708388 4bfb58 809d80
R3: run 707738 4b7d80 771740
R3: run 707fc8 4bd140 800db0
R3: runbuiltin 708a48 4c5868 840af0
R3: runsbuiltin 708b08 4c6328 840730
R3: set 707b48 4ba4c0 7f4cb8
R3: setlocal 707c08 4bad90 7fe638
R3: setoptions 7085c8 4c1058 80bf28
R3: stringlist2list 708748 4c3788 829828
R3: system 707678 4b74e0 770dc0
R3: whatis 708988 4c4e48 83dba0
5871 instructions
210 data elements
118 type descriptors
31 functions exported
3760 stack size
signed Context.addbuiltin type fn(c: self ref Context, name: string, mod: Shellbuiltin) len 1393 sig 0x7304b57
signed Context.addmodule type fn(c: self ref Context, name: string, mod: Shellbuiltin) len 1393 sig 0x7304b57
signed Context.addsbuiltin type fn(c: self ref Context, name: string, mod: Shellbuiltin) len 1393 sig 0x7304b57
signed cmd2string type fn(c: ref Node): string len 71 sig 0x646c6641
signed Context.copy type fn(c: self ref Context, copyenv: int): ref Context len 1392 sig 0x973848e0
signed Context.envlist type fn(c: self ref Context): list of (string, list of ref Listnode) len 1390 sig 0xb803442e
signed Context.fail type fn(c: self ref Context, ename: string, msg: string) len 1392 sig 0x1047d495
signed Context.get type fn(c: self ref Context, name: string): list of ref Listnode len 1394 sig 0xbc3270e2
signed getself type fn(): Shellbuiltin len 1381 sig 0x3b72c707
signed init type fn(ctxt: ref Draw->Context, argv: list of string) len 334 sig 0x4244b354
signed initbuiltin type fn(c: ref Context, sh: Sh): string len 1390 sig 0x51f91725
signed initialise type fn() len 4 sig 0x9cd71c5e
signed list2stringlist type fn(nl: list of ref Listnode): list of string len 88 sig 0x4776e837
signed Context.new type fn(drawcontext: ref Draw->Context): ref Context len 1417 sig 0x7602fbec
signed Context.options type fn(c: self ref Context): int len 1388 sig 0xa2dac671
signed parse type fn(s: string): (ref Node, string) len 76 sig 0x33ce8029
signed Context.pop type fn(c: self ref Context) len 1388 sig 0x25c9aa1f
signed Context.push type fn(c: self ref Context) len 1388 sig 0x25c9aa1f
signed quoted type fn(val: list of ref Listnode, quoteblocks: int): string len 89 sig 0xbcd573b7
signed Context.removebuiltin type fn(c: self ref Context, name: string, mod: Shellbuiltin) len 1393 sig 0x7304b57
signed Context.removesbuiltin type fn(c: self ref Context, name: string, mod: Shellbuiltin) len 1393 sig 0x7304b57
signed run type fn(drawctxt: ref Draw->Context, argv: list of string): string len 334 sig 0x303ddb34
signed Context.run type fn(c: self ref Context, args: list of ref Listnode, last: int): string len 1396 sig 0x53f0d124
signed runbuiltin type fn(c: ref Context, sh: Sh, cmd: list of ref Listnode, last: int): string len 1398 sig 0x5694f318
signed runsbuiltin type fn(c: ref Context, sh: Sh, cmd: list of ref Listnode): list of ref Listnode len 1400 sig 0xf849cd8b
signed Context.set type fn(c: self ref Context, name: string, val: list of ref Listnode) len 1396 sig 0x368d9849
signed Context.setlocal type fn(c: self ref Context, name: string, val: list of ref Listnode) len 1396 sig 0x368d9849
signed Context.setoptions type fn(c: self ref Context, flags: int, on: int): int len 1392 sig 0x660f6009
signed stringlist2list type fn(sl: list of string): list of ref Listnode len 88 sig 0x4a8f87f
signed system type fn(drawctxt: ref Draw->Context, cmd: string): string len 333 sig 0xa44fa1e5
signed whatis type fn(nil: ref Context, nil: Sh, nil: string, nil: int): string len 1394 sig 0x65971166
signed Bufio->fopen type fn(fd: ref Sys->FD, mode: int): ref Bufio->Iobuf len 90 sig 0x2c386517
signed Bufio->Iobuf.getc type fn(b: self ref Bufio->Iobuf): int len 87 sig 0xd9e8365b
signed Command->init type fn(ctxt: ref Draw->Context, argv: list of string) len 334 sig 0x4244b354
signed Env->clone type fn(): int len 4 sig 0x616977e8
signed Env->getall type fn(): list of (string, string) len 10 sig 0x99901c60
signed Env->getenv type fn(var: string): string len 5 sig 0xb2cd7190
signed Env->setenv type fn(var: string, val: string): int len 7 sig 0x21e337e3
signed Filepat->expand type fn(pat: string): list of string len 6 sig 0xaf4c19dd
signed Shellbuiltin->getself type fn(): Shellbuiltin len 1381 sig 0x3b72c707
signed Shellbuiltin->initbuiltin type fn(c: ref Context, sh: Sh): string len 1390 sig 0x51f91725
signed Shellbuiltin->runbuiltin type fn(c: ref Context, sh: Sh, cmd: list of ref Listnode, last: int): string len 1398 sig 0x5694f318
signed Shellbuiltin->runsbuiltin type fn(c: ref Context, sh: Sh, cmd: list of ref Listnode): list of ref Listnode len 1400 sig 0xf849cd8b
signed Shellbuiltin->whatis type fn(c: ref Context, sh: Sh, name: string, wtype: int): string len 1394 sig 0x65971166
signed String->in type fn(c: int, cl: string): int len 7 sig 0x75e8db6d
signed String->unquoted type fn(args: string): list of string len 6 sig 0xaf4c19dd
signed Sys->create type fn(s: string, mode: int, perm: int): ref Sys->FD len 16 sig 0x54db77d9
signed Sys->dup type fn(old: int, new: int): int len 7 sig 0x6584767b
signed Sys->fildes type fn(fd: int): ref Sys->FD len 12 sig 0x1478f993
signed Sys->fprint type fn(fd: ref Sys->FD, s: string, *): int len 15 sig 0xf46486c8
signed Sys->fstat type fn(fd: ref Sys->FD): (int, Sys->Dir) len 119 sig 0xda4499c2
signed Sys->open type fn(s: string, mode: int): ref Sys->FD len 14 sig 0x8f477f99
signed Sys->pctl type fn(flags: int, movefd: list of int): int len 8 sig 0x5df27fb
signed Sys->pipe type fn(fds: array of ref Sys->FD): int len 13 sig 0x1f2c52ea
signed Sys->print type fn(s: string, *): int len 6 sig 0xac849033
signed Sys->read type fn(fd: ref Sys->FD, buf: array of byte, n: int): int len 17 sig 0x7cfef557
signed Sys->seek type fn(fd: ref Sys->FD, off: big, start: int): big len 16 sig 0xaeccaddb
signed Sys->sprint type fn(s: string, *): string len 6 sig 0x4c0624b6
signed Sys->stat type fn(s: string): (int, Sys->Dir) len 112 sig 0x319328dd
signed Sys->tokenize type fn(s: string, delim: string): (int, list of string) len 13 sig 0x57338f20
signed YYSys->fildes type fn(fd: int): ref YYSys->FD len 12 sig 0x1478f993
signed YYSys->fprint type fn(fd: ref YYSys->FD, s: string, *): int len 15 sig 0xf46486c8