code: 9ferno

ref: b548687a8ed1d0a159c9d3f3f921d93bbb56908e
dir: /tests/sh.1.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,""
generate desc for ref Sys->FD
generate desc for ref Sys->FD
	desc	$-1,8,"80"
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 .b2 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 .b2 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 .b2 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b2 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 .b2 ref Sys->FD ref 1
88: local .b3 big 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 .b2 type ref Sys->FD offset 80 (d->offset=80 start=0) returns 80
descmap .b3 type big offset 88 (d->offset=88 start=0) returns -1
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
generate desc for ref Sys->FD
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 .b6 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 .b6 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 .b6 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b6 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 .b6 ref Sys->FD ref 1
96: local .b7 big 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 .b6 type ref Sys->FD offset 88 (d->offset=88 start=0) returns 88
descmap .b7 type big offset 96 (d->offset=96 start=0) returns -1
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
generate desc for ref Sys->FD
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 .b17 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 .b17 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 .b17 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b17 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
generate desc for ref Sys->FD
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 .b17 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 .b17 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 .b17 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b17 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 .b17 ref Sys->FD ref 2
176: local .t12 string ref 1
184: local .t15 string ref 1
192: 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 .b17 type ref Sys->FD offset 168 (d->offset=168 start=0) returns 168
descmap .t12 type string offset 176 (d->offset=176 start=0) returns 176
descmap .t15 type string offset 184 (d->offset=184 start=0) returns 184
descmap .t16 type list of string offset 192 (d->offset=192 start=0) returns 192
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 .b18 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 .b18 big 0 0
    const (64) int 6 0
ecom: 
const  string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b18 big 0 0
    const (72) int 6 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
fn: parse
64: argument s string ref 1
72: local .b18 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 .b18 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 .b19 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
generate desc for ref Context
generate desc for ref Context
	desc	$-1,8,"80"
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 .b20 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 .b21 big 0 0
    const (64) int 6 0
ecom: 
name .b20 ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b19 big 0 0
    const (64) int 6 0
ecom: 
= ref Context 10 1
  name .b20 ref Context 0 0
  name nil ref Context 1 0
ecom: 
name nil ref Context 1 0
ecom to: 
name .b20 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 .b19 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b20 ref Listnode 0 0
generate desc for ref Listnode
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 .b20 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 .b20 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 .b20 ref Listnode 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t22 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b20 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b20 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t22 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 .t22 list of ref Listnode 0 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b19 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 .b21 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 .b19 big ref 3
96: local .b20 ref Context ref 3
104: local n ref Node ref 3
112: local err string ref 3
120: local .b21 big ref 2
128: local .t22 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 .b19 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b20 type ref Context offset 96 (d->offset=96 start=0) returns 96
descmap n type ref Node offset 104 (d->offset=104 start=0) returns 104
descmap err type string offset 112 (d->offset=112 start=0) returns 112
descmap .b21 type big offset 120 (d->offset=120 start=0) returns -1
descmap .t22 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 104 (d->offset=104 start=0) returns 104
descmap err type string offset 112 (d->offset=112 start=0) returns 112
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
generate desc for ref Context
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 .b24 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 .b25 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 .t26 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 .b25 big 0 0
    const (64) int 6 0
ecom: 
name .b24 ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b23 big 0 0
    const (64) int 6 0
ecom: 
= ref Context 10 1
  name .b24 ref Context 0 0
  name nil ref Context 1 0
ecom: 
name nil ref Context 1 0
ecom to: 
name .b24 ref Context 0 0
ecom: 
name .t26 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b23 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t26 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 .t26 list of ref Listnode 0 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b23 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 .b25 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 .b25 big ref 3
96: local .b23 big ref 2
104: local .b24 ref Context ref 1
112: local .t26 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 .b25 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b23 type big offset 96 (d->offset=96 start=0) returns -1
descmap .b24 type ref Context offset 104 (d->offset=104 start=0) returns 104
descmap .t26 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 .b27 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 .b27 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 .b27 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 .b27 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 .b28 big 0 0
    const (64) int 6 0
ecom: 
const OREAD (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b28 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 .b28 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 .b28 big 0 0
    const (72) int 6 0
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b28 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 .b28 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 .t29 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 .b30 big 0 0
    const (64) int 6 0
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b30 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 .b28 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 .b28 big 0 0
    const (72) int 6 0
ecom: 
name .t29 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b28 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t29 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t29 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 .b28 big ref 3
104: local fd ref Sys->FD ref 3
112: local .b30 big ref 1
120: local .t29 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 .b28 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 .b30 type big offset 112 (d->offset=112 start=0) returns -1
descmap .t29 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 .b31 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 .t32 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 .b33 big 0 0
    const (64) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t34 list of string 0 0
ecom: 
= list of string 10 1
  name .t34 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t34 list of string 0 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b31 big 0 0
    const (64) int 6 0
ecom: 
const 0 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b31 big 0 0
    const (72) int 6 0
ecom: 
name .t32 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b31 big 0 0
    const (80) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t32 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 .t32 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 .b33 big 0 0
    const (64) int 6 0
ecom: 
const * string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b33 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 .b33 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 .b33 big 0 0
    const (64) int 6 0
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b33 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 .t34 list of string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t34 list of string 0 0
ecom: 
= list of string 10 1
  name .t34 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t34 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
generate desc for ref Localenv
generate desc for ref Localenv
	desc	$-1,8,"80"
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 .b35 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
generate desc for ref Environment
generate desc for ref Environment
	desc	$-1,8,"80"
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b35 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .b35 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b35 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 .t34 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 .b31 big 0 0
    const (64) int 6 0
ecom: 
const prompt string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b31 big 0 0
    const (72) int 6 0
ecom: 
name .t34 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b33 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t34 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 .t34 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 .t34 list of string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t34 list of string 0 0
ecom: 
= list of string 10 1
  name .t34 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t34 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 .t36 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
generate desc for ref Sys->FD
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 .b35 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b31 big 0 0
    const (64) int 6 0
ecom: 
name .b35 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b33 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .b35 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b35 ref Sys->FD 0 0
ecom: 
const %s string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b33 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 .b33 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 .t34 list of string 0 0
ecom: 
= list of string 10 1
  name .t34 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t34 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 .t34 string 0 0
ecom: 
:: list of string 10 1
  const  string 1 0
  name nil polymorphic type 1 0
ecom to: 
name .t32 list of string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t32 list of string 0 0
ecom: 
= string 10 1
  name .t34 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t34 string 0 0
ecom: 
= list of string 10 1
  name .t32 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t32 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 .b33 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 .b33 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 .t34 list of string 0 0
ecom: 
= list of string 10 1
  name .t34 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t34 list of string 0 0
ecom: 
! int 10 1
  name interactive int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b33 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 .t36 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
generate desc for ref Sys->FD
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 .b35 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b31 big 0 0
    const (64) int 6 0
ecom: 
name .b35 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b33 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .b35 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b35 ref Sys->FD 0 0
ecom: 
const sh: %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b33 big 0 0
    const (72) int 6 0
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b33 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 .b33 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 .b33 big 0 0
    const (72) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b33 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 .b33 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 .b33 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 .b33 big 0 0
    const (72) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b33 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 .t34 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b33 big 0 0
    const (64) int 6 0
ecom: 
name laststatus string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b33 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t34 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t34 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 .t36 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
generate desc for ref Localenv
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 .b35 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b35 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .b35 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b35 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 .t34 string 0 0
ecom: 
= string 10 1
  name .t34 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t34 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 .b33 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 .b33 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 .t36 int ref 1
112: local .b33 big ref 13
120: local prompt list of string ref 9
128: local laststatus string ref 7
136: local .b35 ref Localenv ref 6
144: local .b31 big ref 5
152: local n ref Node ref 4
160: local err string ref 3
168: local lex ref YYLEX ref 3
176: local .t32 list of ref Listnode ref 1
184: local .t34 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 .t36 type int offset 108 (d->offset=108 start=0) returns -1
descmap .b33 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 .b35 type ref Localenv offset 136 (d->offset=136 start=0) returns 136
descmap .b31 type big offset 144 (d->offset=144 start=0) returns -1
descmap n type ref Node offset 152 (d->offset=152 start=0) returns 152
descmap err type string offset 160 (d->offset=160 start=0) returns 160
descmap lex type ref YYLEX offset 168 (d->offset=168 start=0) returns 168
descmap .t32 type list of ref Listnode offset 176 (d->offset=176 start=0) returns 176
descmap .t34 type list of string offset 184 (d->offset=184 start=0) returns 184
generate desc for .ex1
descmap offset 0
descmap n type ref Node offset 152 (d->offset=152 start=0) returns 152
descmap err type string offset 160 (d->offset=160 start=0) returns 160
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 168 (d->offset=168 start=0) returns 168
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 .b37 big 0 0
ecom: 
const does not exist string 1 0
ecom to: 
* string 8 0
  name .b37 big 0 0
ecom: 
indx big 10 0
  name errs array of string 0 0
  const (1) int 6 0
ecom to: 
name .b37 big 0 0
ecom: 
const directory entry not found string 1 0
ecom to: 
* string 8 0
  name .b37 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 .t38 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 .b37 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 .t38 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 .t39 string 0 0
ecom: 
len int 10 1
  name e string 0 0
ecom to: 
name .t38 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 .t40 int 0 0
ecom: 
len int 10 1
  name e string 0 0
ecom to: 
name .t40 int 0 0
ecom: 
name e string 0 0
ecom to: 
name .t39 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 .t41 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 .b37 big 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: 
= string 10 1
  name .t41 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t41 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 .t38 int ref 1
84: local .t40 int ref 1
88: local errs array of string ref 4
96: local .b37 big ref 3
104: local .t39 string ref 1
112: local .t41 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 .t38 type int offset 80 (d->offset=80 start=0) returns -1
descmap .t40 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 .b37 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t39 type string offset 104 (d->offset=104 start=0) returns 104
descmap .t41 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 .b42 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 .b42 big 0 0
    const (72) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b42 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 .t43 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
generate desc for ref Localenv
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 .b44 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b44 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .b44 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b44 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 .t45 string 0 0
ecom: 
= string 10 1
  name .t45 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t45 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 .t45 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b42 big 0 0
    const (64) int 6 0
ecom: 
name status string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b42 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t45 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t45 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 .t45 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 .b46 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 .b46 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 .b46 big 0 0
    const (80) int 6 0
ecom: 
const (-1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b46 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 .b42 big 0 0
    const (64) int 6 0
ecom: 
name .t45 list of int 0 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b42 big 0 0
    const (72) int 6 0
ecom: 
= list of int 10 1
  name .t45 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t45 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 .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 .b46 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 .b46 big 0 0
    const (72) 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: 
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
generate desc for ref Node
generate desc for ref Node
	desc	$-1,8,"80"
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
name .b44 ref Node 0 0
ecom: 
= ref Node 10 1
  name .b44 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b44 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 ref Node
generate desc for ref Node
	desc	$-1,8,"80"
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 .b44 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 .b44 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 .b44 ref Node 0 0
    const (8) int 6 0
generate desc for ref Node
generate desc for ref Node
	desc	$-1,8,"80"
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 .b47 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 .b47 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 .b47 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 .b47 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 .b47 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 .b47 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b47 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b47 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 .b44 ref Node 0 0
    const (16) int 6 0
generate desc for ref Node
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 .b47 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 .b47 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 .b47 ref Node 0 0
    const (8) int 6 0
generate desc for ref Node
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 .b48 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 .b48 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 .b48 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 .b48 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 .b48 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 .b48 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b48 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b48 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 .b47 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 .b47 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 .b47 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b47 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b47 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 .b44 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 .b44 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b44 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b44 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 ref Redirlist
generate desc for ref Redirlist
	desc	$-1,8,"80"
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 .b48 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 .b48 ref Redirlist 0 0
    const (0) int 6 0
ecom: 
= ref Redirlist 10 1
  name .b48 ref Redirlist 0 0
  name nil ref Redirlist 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name .b48 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 .b42 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 .b42 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 .b42 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 .b42 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 .b46 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 .b46 big 0 0
    const (64) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b46 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 .b46 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 .b46 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 .b46 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 .b49 (int, ref Expropagate) 0 0
ecom: 
= ref Expropagate 10 1
  * ref Expropagate 0 0
    + int 13 1
      adr int 13 1
        name .b49 (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 .b49 (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 .b46 big 0 0
    const (64) int 6 0
ecom: 
const apid string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b46 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 .b46 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b48 ref Listnode 0 0
generate desc for ref Listnode
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 .b48 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 .b48 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 .b48 ref Listnode 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t45 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b48 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b48 ref Listnode 0 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: 
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 .b46 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 .b46 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 .b46 big 0 0
    const (80) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b46 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 .t43 int ref 1
96: local .b46 big ref 6
104: local redirs ref Redirlist ref 5
112: local .b42 big ref 4
120: local .b44 ref Localenv ref 4
128: local .b48 ref Node ref 4
136: local status string ref 4
144: local line list of ref Listnode ref 3
152: local startchan chan of (int, ref Expropagate) ref 3
160: local .b47 ref Node ref 2
168: local .t45 string ref 1
176: local .b49 (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 .t43 type int offset 92 (d->offset=92 start=0) returns -1
descmap .b46 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 .b42 type big offset 112 (d->offset=112 start=0) returns -1
descmap .b44 type ref Localenv offset 120 (d->offset=120 start=0) returns 120
descmap .b48 type ref Node offset 128 (d->offset=128 start=0) returns 128
descmap status type string offset 136 (d->offset=136 start=0) returns 136
descmap line type list of ref Listnode offset 144 (d->offset=144 start=0) returns 144
descmap startchan type chan of (int, ref Expropagate) offset 152 (d->offset=152 start=0) returns 152
descmap .b47 type ref Node offset 160 (d->offset=160 start=0) returns 160
descmap .t45 type string offset 168 (d->offset=168 start=0) returns 168
descmap adt offset 176
descmap offset 176
descmap t0 type int offset 176 (d->offset=0 start=176) returns -1
descmap t1 type ref Expropagate offset 184 (d->offset=8 start=176) returns 184
descmap .b49 type (int, ref Expropagate) offset 176 (d->offset=176 start=0) returns 184
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
generate desc for ref Node
generate desc for ref Node
	desc	$-1,8,"80"
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
name .b50 ref Node 0 0
ecom: 
= ref Node 10 1
  name .b50 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b50 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
generate desc for ref Node
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const right (16) int 6 0
ecom to: 
name .b50 ref Node 0 0
ecom: 
= ref Node 10 1
  name .b50 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b50 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 .b51 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 .b51 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 .t52 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 .b53 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 .b53 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 .b53 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 .b53 big 0 0
    const (88) int 6 0
ecom: 
name .t52 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b51 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t52 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 .t52 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 .b53 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 .b53 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 .b53 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 .b53 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 .b53 big 0 0
    const (64) int 6 0
ecom: 
const bad assign string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b53 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 .b53 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 .b53 big 0 0
    const (64) int 6 0
ecom: 
const bad assign string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b53 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 .b53 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 .b53 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name vars list of ref Listnode 0 0
ecom to: 
name .b50 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b50 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b50 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 .b53 big 0 0
    const (64) int 6 0
ecom: 
const bad assign string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b53 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 .b53 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 .t52 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t52 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 .t52 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name tval list of ref Listnode 0 0
ecom to: 
name .b50 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t52 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b50 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b50 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t52 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 .t52 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 .b53 big 0 0
    const (64) int 6 0
ecom: 
name vname string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b53 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 .b53 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 .b53 big 0 0
    const (64) int 6 0
ecom: 
name vname string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b53 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 .b53 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 .b53 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 .b50 ref Node ref 4
120: local redirs ref Redirlist ref 4
128: local val list of ref Listnode ref 4
136: local vname string ref 4
144: local .b51 big ref 2
152: local .t52 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 .b53 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 .b50 type ref Node offset 112 (d->offset=112 start=0) returns 112
descmap redirs type ref Redirlist offset 120 (d->offset=120 start=0) returns 120
descmap val type list of ref Listnode offset 128 (d->offset=128 start=0) returns 128
descmap vname type string offset 136 (d->offset=136 start=0) returns 136
descmap .b51 type big offset 144 (d->offset=144 start=0) returns -1
descmap .t52 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 .t54 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 .b55 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 .t56 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 .b57 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 .b55 big 0 0
    const (64) int 6 0
ecom: 
const no pipe string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b55 big 0 0
    const (72) int 6 0
ecom: 
name .t56 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b55 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t56 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t56 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
generate desc for ref Redir
generate desc for ref Redir
	desc	$-1,8,"80"
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .b58 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .b58 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .b58 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
generate desc for ref Redir
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .b58 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .b58 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .b58 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 .b59 (int, int) 0 0
ecom: 
name fd2 int 0 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      name .b59 (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 .b59 (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 .b57 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 .b57 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 .b57 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 .b55 big 0 0
ecom: 
name nwfdno int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b57 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 .b57 big 0 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 8 1
  name .b57 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 ref Redirlist
generate desc for ref Redirlist
	desc	$-1,8,"80"
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 .b58 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 .b58 ref Redirlist 0 0
    const (0) int 6 0
ecom: 
= ref Redirlist 10 1
  name .b58 ref Redirlist 0 0
  name nil ref Redirlist 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name .b58 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 .t56 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 .b55 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 .b55 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 .b55 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 .b55 big 0 0
    const (88) int 6 0
ecom: 
name .t56 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b57 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t56 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 .t56 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 .b57 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 .b60 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 .b60 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 .b57 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b60 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 .b60 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 .b60 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 .b60 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 .b60 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 .b60 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 .b60 Redirword 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b60 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 .b60 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 .b60 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 .b60 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 .b60 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 .b60 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 .b60 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 .b60 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 .b60 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 .b60 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 .b60 Redirword 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b60 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 .b60 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 .b57 big 0 0
    const (64) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b57 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 .b57 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 .b57 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 .b57 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 .b61 (int, ref Expropagate) 0 0
ecom: 
= ref Expropagate 10 1
  * ref Expropagate 0 0
    + int 13 1
      adr int 13 1
        name .b61 (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 .b61 (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 .t56 list of int 0 0
ecom: 
= list of int 10 1
  name .t56 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t56 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 .t54 int ref 1
112: local .b57 big ref 7
120: local r ref Redirlist ref 7
128: local fds array of ref Sys->FD ref 6
136: local .b55 big ref 4
144: local .b58 ref Redir ref 3
152: local startchan chan of (int, ref Expropagate) ref 3
160: local pids list of int ref 2
168: local rlist list of ref Listnode ref 2
176: local .b60 Redirword ref 2
208: local .b59 (int, int) ref 1
216: local .t56 string ref 1
224: local .b61 (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 .t54 type int offset 108 (d->offset=108 start=0) returns -1
descmap .b57 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 .b55 type big offset 136 (d->offset=136 start=0) returns -1
descmap .b58 type ref Redir offset 144 (d->offset=144 start=0) returns 144
descmap startchan type chan of (int, ref Expropagate) offset 152 (d->offset=152 start=0) returns 152
descmap pids type list of int offset 160 (d->offset=160 start=0) returns 160
descmap rlist type list of ref Listnode 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 .b60 type Redirword offset 176 (d->offset=176 start=0) returns 184
descmap adt offset 208
descmap offset 208
descmap t0 type int offset 208 (d->offset=0 start=208) returns -1
descmap t1 type int offset 212 (d->offset=4 start=208) returns -1
descmap .b59 type (int, int) offset 208 (d->offset=208 start=0) returns -1
descmap .t56 type string offset 216 (d->offset=216 start=0) returns 216
descmap adt offset 224
descmap offset 224
descmap t0 type int offset 224 (d->offset=0 start=224) returns -1
descmap t1 type ref Expropagate offset 232 (d->offset=8 start=224) returns 232
descmap .b61 type (int, ref Expropagate) offset 224 (d->offset=224 start=0) returns 232
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 .t63 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 .b64 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 .b64 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 .b64 big 0 0
    const (80) int 6 0
ecom: 
name .t63 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b62 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t63 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 .t63 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 .b62 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 .b64 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 .b64 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 .b64 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 .b64 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
generate desc for ref Node
ecom: 
* ref Node 8 0
  + int 15 1
    name n ref Node 0 0
    const left (8) int 6 0
ecom to: 
name .b65 ref Node 0 0
ecom: 
= ref Node 10 1
  name .b65 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b65 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 .t63 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 .b62 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 .b62 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 .b62 big 0 0
    const (80) int 6 0
ecom: 
name .t63 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b64 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t63 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 .t63 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 .b64 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 .b64 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 .b64 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 .b64 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 .b64 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 .b64 big ref 4
112: local .b62 big ref 2
120: local .b65 ref Node ref 1
128: local .t63 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 .b64 type big offset 104 (d->offset=104 start=0) returns -1
descmap .b62 type big offset 112 (d->offset=112 start=0) returns -1
descmap .b65 type ref Node offset 120 (d->offset=120 start=0) returns 120
descmap .t63 type list of ref Listnode offset 128 (d->offset=128 start=0) returns 128
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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name left list of ref Listnode 0 0
ecom to: 
name .b66 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b66 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b66 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name l list of ref Listnode 0 0
ecom to: 
name .b66 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b66 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b66 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 .b66 ref Listnode ref 2
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 .b66 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 .t67 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 .b68 big 0 0
    const (64) int 6 0
ecom: 
const bad redir string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b68 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 .b68 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 .t67 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 .b68 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 .t69 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 .b70 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 .b68 big 0 0
    const (64) int 6 0
ecom: 
const no pipe string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b68 big 0 0
    const (72) int 6 0
ecom: 
name .t69 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b68 big 0 0
    const (80) int 6 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: 
= 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 .b70 big 0 0
    const (64) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b70 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 .b70 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 .b70 big 0 0
    const (88) int 6 0
generate desc for ref Redirlist
generate desc for ref Redirlist
	desc	$-1,8,"80"
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 .b71 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 .b71 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 .b72 (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 .b72 (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 .b68 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* polymorphic type 0 0
  + int 13 1
    adr int 13 1
      name .b72 (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 .b72 (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 .t69 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 .b72 (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 .b72 (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 .b72 (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 .b72 (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 .t69 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 .t69 list of (ref Sys->FD, polymorphic type, Redir) 0 0
ecom: 
= ref Redirlist 10 1
  name .b71 ref Redirlist 0 0
  name nil ref Redirlist 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name .b71 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 .b70 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 .b70 big 0 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 8 1
  name .b70 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 .b73 (int, ref Expropagate) 0 0
ecom: 
= ref Expropagate 10 1
  * ref Expropagate 0 0
    + int 13 1
      adr int 13 1
        name .b73 (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 .b73 (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 .b70 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 .t67 int ref 1
96: local p array of ref Sys->FD ref 5
104: local .b68 big ref 4
112: local .b70 big ref 4
120: local r Redir ref 4
136: local startchan chan of (int, ref Expropagate) ref 3
144: local .b71 ref Redirlist ref 1
152: local .t69 string ref 1
160: local .b73 (int, ref Expropagate) ref 1
176: local .b72 (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 .t67 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 .b68 type big offset 104 (d->offset=104 start=0) returns -1
descmap .b70 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 .b71 type ref Redirlist offset 144 (d->offset=144 start=0) returns 144
descmap .t69 type string 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 .b73 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 .b72 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b74 ref Listnode 0 0
generate desc for ref Listnode
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 .b74 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 .b74 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 .b74 ref Listnode 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t75 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b74 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b74 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t75 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 .t75 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 .t75 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 .b77 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 .b77 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 .b77 big 0 0
    const (80) int 6 0
generate desc for ref Redirlist
generate desc for ref Redirlist
	desc	$-1,8,"80"
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 .b74 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 .b74 ref Redirlist 0 0
    const (0) int 6 0
ecom: 
= ref Redirlist 10 1
  name .b74 ref Redirlist 0 0
  name nil ref Redirlist 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name .b74 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 .b77 big 0 0
    const (88) int 6 0
ecom: 
name .t75 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b76 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t75 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 .t75 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 .t78 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 .b77 big 0 0
    const (64) int 6 0
ecom: 
const bad redir string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b77 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 .b77 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name wlist list of ref Listnode 0 0
ecom to: 
name .b74 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b74 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b74 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 .b77 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 .b77 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 .b77 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 .b79 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 .b79 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 .b79 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 .b79 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 .b79 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
generate desc for ref Redir
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .b74 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .b74 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .b74 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 .b79 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 .b79 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 .b79 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 .b79 Redirword 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b79 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 .b79 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b74 ref Listnode 0 0
generate desc for ref Listnode
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 .b74 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 .b74 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 .b74 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 .t75 string 0 0
ecom: 
= string 10 1
  name .t75 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t75 string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t75 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b74 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b74 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t75 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 .t75 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 .b79 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 .b79 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 .b79 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
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name wlist list of ref Listnode 0 0
ecom to: 
name .b74 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b74 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b74 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 .b79 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
generate desc for ref Redir
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .b74 ref Redir 0 0
generate desc for Redir
ecom: 
= ref Redir 10 1
  name .b74 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .b74 ref Redir 0 0
generate desc for Redirword
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 0 0
    adr int 13 1
      name .b79 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 .b79 Redirword 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b79 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 .b79 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 .b79 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 .b79 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 .b79 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 .b79 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
generate desc for ref Redir
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .b74 ref Redir 0 0
generate desc for Redir
ecom: 
= ref Redir 10 1
  name .b74 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .b74 ref Redir 0 0
generate desc for Redirword
ecom: 
= ref Sys->FD 10 1
  * ref Sys->FD 0 0
    adr int 13 1
      name .b79 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 .b79 Redirword 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b79 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 .b79 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 .b77 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 .b77 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 .b77 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 .b77 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 .t75 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 .b76 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 .b76 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 .b76 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 .b76 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 .t80 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 .b76 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 .b76 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 .b76 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 .b76 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 .b77 big 0 0
    const (64) int 6 0
ecom: 
name .t75 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b77 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t75 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 .t75 list of ref Listnode 0 0
ecom: 
name .t80 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b77 big 0 0
    const (80) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t80 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 .t80 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 .b77 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 .b77 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 .b77 big 0 0
    const (80) int 6 0
generate desc for ref Redirlist
generate desc for ref Redirlist
	desc	$-1,8,"80"
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 .b74 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 .b74 ref Redirlist 0 0
    const (0) int 6 0
ecom: 
= ref Redirlist 10 1
  name .b74 ref Redirlist 0 0
  name nil ref Redirlist 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name .b74 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 .b77 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 .t78 int 0 0
eacom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name arg list of ref Listnode 0 0
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name arg list of ref Listnode 0 0
ecom to: 
name .b74 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b74 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b74 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 .b77 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 .b77 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
generate desc for ref Node
generate desc for ref Node
	desc	$-1,8,"80"
ecom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name arg list of ref Listnode 0 0
ecom to: 
name .b74 ref Node 0 0
eacom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name arg list of ref Listnode 0 0
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name arg list of ref Listnode 0 0
ecom to: 
name .b74 ref Listnode 0 0
ecom: 
= ref Node 10 1
  name .b74 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b74 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 .t78 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
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name arg list of ref Listnode 0 0
ecom to: 
name .b74 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b74 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b74 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 .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: bad variable name string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b77 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 .t80 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 .b76 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
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name arg list of ref Listnode 0 0
ecom to: 
name .b74 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b74 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b74 ref Listnode 0 0
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: 
name .t80 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b77 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t80 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t80 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b74 ref Listnode 0 0
generate desc for ref Listnode
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 .b74 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 .b74 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 .b74 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 .t78 int 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t80 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b74 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b74 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t80 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 .t80 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b74 ref Listnode 0 0
generate desc for ref Listnode
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 .b74 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 .b74 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 .b74 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 .t80 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 .b76 big 0 0
    const (64) int 6 0
ecom: 
name .t80 list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b77 big 0 0
    const (64) int 6 0
ecom: 
= list of string 10 1
  name .t80 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t80 list of string 0 0
ecom: 
const   string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b77 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t80 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b74 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b74 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t80 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 .t80 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 .b77 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 .b77 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 .b77 big 0 0
    const (80) int 6 0
generate desc for ref Redirlist
generate desc for ref Redirlist
	desc	$-1,8,"80"
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 .b74 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 .b74 ref Redirlist 0 0
    const (0) int 6 0
ecom: 
= ref Redirlist 10 1
  name .b74 ref Redirlist 0 0
  name nil ref Redirlist 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name .b74 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 .b77 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 .t80 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 .t75 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 .b81 big 0 0
    const (64) int 6 0
ecom: 
const ifs string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b81 big 0 0
    const (72) int 6 0
ecom: 
name .t75 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b76 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t75 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 .t75 list of ref Listnode 0 0
ecom: 
name .t80 list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b77 big 0 0
    const (64) int 6 0
ecom: 
= list of string 10 1
  name .t80 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t80 list of string 0 0
ecom: 
const  string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b77 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 .b82 (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 .t80 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 .b77 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 .b81 big 0 0
    const (64) int 6 0
ecom: 
name .t80 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b81 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t80 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 .t80 list of ref Listnode 0 0
ecom: 
name seps string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b81 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 .b82 (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 .b82 (list of ref Listnode, string) 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b82 (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 .b82 (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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b74 ref Listnode 0 0
generate desc for ref Listnode
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 .b74 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 .b74 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 .b74 ref Listnode 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t80 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b74 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b74 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t80 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 .t80 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 .b81 big 0 0
    const (64) int 6 0
ecom: 
const bad assign string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b81 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 .b81 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 .b81 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 .t80 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 .t80 string 0 0
ecom: 
= string 10 1
  name .t80 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t80 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 .t78 int ref 1
96: local .b74 ref Listnode ref 23
104: local .b77 big ref 13
112: local nlist list of ref Listnode ref 13
120: local arg list of ref Listnode ref 7
128: local .b76 big ref 6
136: local seps string ref 5
144: local wlist list of ref Listnode ref 5
152: local .b81 big ref 4
160: local fd ref Sys->FD ref 4
168: local .b79 Redirword ref 3
200: local arg list of ref Listnode ref 2
208: local .t75 list of ref Listnode ref 1
216: local .t80 list of ref Listnode ref 1
224: local .b82 (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 .t78 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b74 type ref Listnode offset 96 (d->offset=96 start=0) returns 96
descmap .b77 type big offset 104 (d->offset=104 start=0) returns -1
descmap nlist type list of ref Listnode offset 112 (d->offset=112 start=0) returns 112
descmap arg type list of ref Listnode offset 120 (d->offset=120 start=0) returns 120
descmap .b76 type big offset 128 (d->offset=128 start=0) returns -1
descmap seps type string offset 136 (d->offset=136 start=0) returns 136
descmap wlist type list of ref Listnode offset 144 (d->offset=144 start=0) returns 144
descmap .b81 type big offset 152 (d->offset=152 start=0) returns -1
descmap fd type ref Sys->FD 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 .b79 type Redirword offset 168 (d->offset=168 start=0) returns 176
descmap arg type list of ref Listnode offset 200 (d->offset=200 start=0) returns 200
descmap .t75 type list of ref Listnode offset 208 (d->offset=208 start=0) returns 208
descmap .t80 type list of ref Listnode offset 216 (d->offset=216 start=0) returns 216
descmap adt offset 224
descmap offset 224
descmap t0 type list of ref Listnode offset 224 (d->offset=0 start=224) returns 224
descmap t1 type string offset 232 (d->offset=8 start=224) returns 232
descmap .b82 type (list of ref Listnode, string) offset 224 (d->offset=224 start=0) returns 232
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 .b83 big 0 0
    const (64) int 6 0
ecom: 
const bad $ arg string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b83 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 .b83 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 .t84 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 .b85 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 .b85 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 .b85 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 .b85 big 0 0
    const (88) int 6 0
ecom: 
name .t84 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b83 big 0 0
    const (64) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t84 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 .t84 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 .b85 big 0 0
    const (64) int 6 0
ecom: 
const bad $ arg string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b85 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 .b85 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
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name cmd list of ref Listnode 0 0
ecom to: 
name .b86 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b86 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b86 ref Listnode 0 0
eacom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name cmd list of ref Listnode 0 0
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name cmd list of ref Listnode 0 0
ecom to: 
name .b86 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b86 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b86 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 .b85 big 0 0
    const (64) int 6 0
ecom: 
const bad $ arg string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b85 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 .b85 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 .b87 (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 .b85 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b86 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b86 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b86 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 .b85 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
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name cmd list of ref Listnode 0 0
ecom to: 
name .b86 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b86 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b86 ref Listnode 0 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b87 (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 .b87 (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 .t84 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 .b83 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 .b83 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
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name cmd list of ref Listnode 0 0
ecom to: 
name .b86 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b86 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b86 ref Listnode 0 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b85 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 .b85 big 0 0
    const (72) int 6 0
ecom: 
name .t84 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b85 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t84 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t84 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 .t84 Shellbuiltin 0 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b85 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b85 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 .b85 big 0 0
    const (80) int 6 0
ecom: 
= Shellbuiltin 10 1
  name .t84 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t84 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 .b85 big ref 6
96: local .b86 ref Listnode ref 5
104: local r ref Redirlist ref 4
112: local .b83 big ref 3
120: local bmods list of Shellbuiltin ref 3
128: local .t84 list of ref Listnode ref 1
136: local .b87 (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 .b85 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b86 type ref Listnode offset 96 (d->offset=96 start=0) returns 96
descmap r type ref Redirlist offset 104 (d->offset=104 start=0) returns 104
descmap .b83 type big offset 112 (d->offset=112 start=0) returns -1
descmap bmods type list of Shellbuiltin offset 120 (d->offset=120 start=0) returns 120
descmap .t84 type list of 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 .b87 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 .t88 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 .b89 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 .b89 big 0 0
    const (72) int 6 0
ecom: 
len int 10 1
  name buf array of byte 0 0
ecom to: 
name .t90 int 0 0
ecom: 
name buf array of byte 0 0
ecom to: 
* array of byte 8 0
  + int 15 0
    name .b89 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 .b89 big 0 0
    const (80) int 6 0
ecom: 
len int 10 1
  name buf array of byte 0 0
ecom to: 
name .t90 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 .t90 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 .t90 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 .t91 array of byte 0 0
ecom: 
len int 10 1
  name buf array of byte 0 0
ecom to: 
name .t90 int 0 0
ecom: 
name buf array of byte 0 0
ecom to: 
name .t91 array of byte 0 0
ecom: 
= array of byte 10 1
  name .t91 array of byte 0 0
  name nil array of byte 1 0
ecom: 
name nil array of byte 1 0
ecom to: 
name .t91 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 .b92 (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 .b89 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 .t91 array of byte 0 0
ecom: 
name buf array of byte 0 0
ecom to: 
name .t91 array of byte 0 0
ecom: 
= array of byte 10 1
  name .t91 array of byte 0 0
  name nil array of byte 1 0
ecom: 
name nil array of byte 1 0
ecom to: 
name .t91 array of byte 0 0
ecom: 
name seps string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b89 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 .b92 (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 .b92 (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 .t91 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 .t91 array of byte 0 0
ecom: 
name buf array of byte 0 0
ecom to: 
name .t91 array of byte 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t93 list of string 0 0
ecom: 
= string 10 1
  name .t91 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t91 string 0 0
ecom: 
= list of string 10 1
  name .t93 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t93 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 .b89 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 .t88 int ref 1
100: local .t90 int ref 1
104: local buf array of byte ref 9
112: local .b89 big ref 3
120: local l list of string ref 3
128: local nbuf array of byte ref 3
136: local .t91 array of byte ref 1
144: local .t93 list of string ref 1
152: local .b92 (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 .t88 type int offset 96 (d->offset=96 start=0) returns -1
descmap .t90 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 .b89 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 .t91 type array of byte offset 136 (d->offset=136 start=0) returns 136
descmap .t93 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 .b92 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 .t94 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 .b95 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 .t96 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 .b97 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 .b95 big 0 0
    const (64) int 6 0
ecom: 
const no pipe string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b95 big 0 0
    const (72) int 6 0
ecom: 
name .t96 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b95 big 0 0
    const (80) int 6 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 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 ref Redirlist
generate desc for ref Redirlist
	desc	$-1,8,"80"
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 .b98 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 .b98 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 .b99 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 .b99 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 .b97 big 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b99 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 .b99 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 .b99 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 .b99 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 .b99 Redirword 0 0
          const (16) int 6 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t96 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 .b99 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 .b99 Redirword 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b99 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 .b99 Redirword 0 0
    const w (8) int 6 0
ecom: 
= list of Redirword 10 1
  name .t96 list of Redirword 0 0
  name nil list of Redirword 1 0
ecom: 
name nil list of Redirword 1 0
ecom to: 
name .t96 list of Redirword 0 0
ecom: 
= ref Redirlist 10 1
  name .b98 ref Redirlist 0 0
  name nil ref Redirlist 1 0
ecom: 
name nil ref Redirlist 1 0
ecom to: 
name .b98 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 .b97 big 0 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
* ref Sys->FD 8 1
  name .b97 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 .b97 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b97 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 .b97 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 .b97 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 .b97 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 .b97 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 .b97 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 .b95 big 0 0
ecom: 
name seps string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b97 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 .t96 string 0 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: 
:: 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 .b97 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t100 list of int 0 0
ecom: 
= list of int 10 1
  name .t100 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t100 list of int 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: 
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 .t94 int ref 1
112: local .b97 big ref 6
120: local fds array of ref Sys->FD ref 5
128: local .b95 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 .b98 ref Redirlist ref 1
168: local .t100 list of int ref 1
176: local .t96 string ref 1
184: local .b99 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 .t94 type int offset 104 (d->offset=104 start=0) returns -1
descmap .b97 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 .b95 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 .b98 type ref Redirlist offset 160 (d->offset=160 start=0) returns 160
descmap .t100 type list of int offset 168 (d->offset=168 start=0) returns 168
descmap .t96 type string offset 176 (d->offset=176 start=0) returns 176
descmap adt offset 184
descmap offset 184
descmap fd type ref Sys->FD offset 184 (d->offset=0 start=184) returns 184
descmap w type string offset 192 (d->offset=8 start=184) returns 192
descmap adt offset 200
descmap offset 200
descmap rtype type int offset 200 (d->offset=0 start=200) returns -1
descmap fd1 type int offset 204 (d->offset=4 start=200) returns -1
descmap fd2 type int offset 208 (d->offset=8 start=200) returns -1
descmap r type Redir offset 200 (d->offset=16 start=184) returns -1
descmap .b99 type Redirword offset 184 (d->offset=184 start=0) returns 192
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 .b101 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 .b101 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 ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b102 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 .b102 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 .b102 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 .t103 string 0 0
ecom: 
= string 10 1
  name .t103 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t103 string 0 0
ecom: 
= ref Listnode 10 1
  name .b102 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b102 ref Listnode 0 0
fn: concatwords
64: argument p1 ref Listnode ref 5
72: argument p2 ref Listnode ref 5
80: local .b101 big ref 2
88: local .b102 ref Listnode ref 1
96: local .t103 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 .b101 type big offset 80 (d->offset=80 start=0) returns -1
descmap .b102 type ref Listnode offset 88 (d->offset=88 start=0) returns 88
descmap .t103 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 .b104 big 0 0
    const (64) int 6 0
ecom: 
const bad concatenation string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b104 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 .b104 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 .t105 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t105 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 .t105 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 .t105 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t105 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 .t105 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b106 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 .b104 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 .b104 big 0 0
    const (72) int 6 0
ecom: 
= ref Listnode 10 1
  name .b106 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b106 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 .t107 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 .t108 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 .b104 big 0 0
    const (64) int 6 0
ecom: 
const bad concatenation string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b104 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 .b104 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
generate desc for ref Listnode
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 .b106 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 .b104 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 .b104 big 0 0
    const (72) int 6 0
ecom: 
= ref Listnode 10 1
  name .b106 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b106 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 .b109 (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 .b109 (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 .b109 (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 .b109 (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 .b109 (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 .b109 (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 .b109 (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 .b104 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 .t107 int ref 1
92: local .t108 int ref 1
96: local .b104 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 .b106 ref Listnode ref 2
136: local .t105 list of ref Listnode ref 1
144: local .b109 (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 .t107 type int offset 88 (d->offset=88 start=0) returns -1
descmap .t108 type int offset 92 (d->offset=92 start=0) returns -1
descmap .b104 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 .b106 type ref Listnode offset 128 (d->offset=128 start=0) returns 128
descmap .t105 type list of ref Listnode offset 136 (d->offset=136 start=0) returns 136
descmap adt offset 144
descmap offset 144
descmap t0 type list of ref Listnode offset 144 (d->offset=0 start=144) returns 144
descmap t1 type list of ref Listnode offset 152 (d->offset=8 start=144) returns 152
descmap .b109 type (list of ref Listnode, list of ref Listnode) offset 144 (d->offset=144 start=0) returns 152
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 .b110 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 .b110 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 .b110 big 0 0
    const (64) int 6 0
ecom: 
name copyenv int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b110 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 .b110 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 .b110 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 .t111 int 0 0
generate desc for big
ecom: 
const NEWFD (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b110 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 .b110 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 .b112 (int, ref Expropagate) 0 0
ecom: 
name pid int 0 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      name .b112 (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 .b112 (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 .b112 (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 .b112 (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 .b110 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 .b110 big 0 0
    const (72) int 6 0
ecom: 
name copyenv int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b110 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 .b112 (int, ref Expropagate) 0 0
ecom: 
name pid int 0 0
ecom to: 
* int 0 0
  + int 13 1
    adr int 13 1
      name .b112 (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 .b112 (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 .b112 (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 .b112 (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 .t113 string 0 0
ecom: 
= string 10 1
  name .t113 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t113 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 .t111 int ref 1
120: local .b110 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 .b112 (int, ref Expropagate) ref 2
168: local .t113 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 .t111 type int offset 112 (d->offset=112 start=0) returns -1
descmap .b110 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 .b112 type (int, ref Expropagate) offset 152 (d->offset=152 start=0) returns 160
descmap .t113 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 .b114 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b114 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 .b114 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 .b114 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 .b114 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 .b115 (int, ref Expropagate) 0 0
ecom: 
= ref Expropagate 10 1
  * ref Expropagate 0 0
    + int 13 1
      adr int 13 1
        name .b115 (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 .b115 (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 .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 .t116 list of int 0 0
ecom: 
= list of int 10 1
  name .t116 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t116 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 .b114 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 .b114 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 .t117 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: 
name newfdl list of int 0 0
ecom to: 
* list of int 8 0
  + int 15 0
    name .b114 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 .b114 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 .b114 big 0 0
    const (72) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b114 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 .t117 int ref 1
120: local .b114 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 .t116 list of int ref 1
160: local .b115 (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 .t117 type int offset 112 (d->offset=112 start=0) returns -1
descmap .b114 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 .t116 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 .b115 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 .t118 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 .t118 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 .t118 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 .t118 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 .t118 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 .t118 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 .t118 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 .t118 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 .t118 int ref 1
generate desc for absolute
descmap offset 0
descmap p type string offset 64 (d->offset=64 start=0) returns 64
descmap .t118 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .b119 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b119 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b119 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 .t120 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 .t121 string 0 0
ecom: 
len int 10 1
  name progname string 0 0
ecom to: 
name .t120 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 .t122 int 0 0
ecom: 
len int 10 1
  name progname string 0 0
ecom to: 
name .t122 int 0 0
ecom: 
name progname string 0 0
ecom to: 
name .t121 string 0 0
ecom: 
= string 10 1
  name .t121 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t121 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 .t122 int 0 0
generate desc for big
ecom: 
name progname string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b123 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 .t121 list of string 0 0
ecom: 
= list of string 10 1
  name .t121 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t121 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 .t121 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 .b123 big 0 0
    const (64) int 6 0
ecom: 
const path string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b123 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t121 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 .t121 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 .b123 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 .t121 list of string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t121 list of string 0 0
ecom: 
= list of string 10 1
  name .t121 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t121 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 .t121 string 0 0
ecom: 
= string 10 1
  name .t121 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t121 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 .t121 string 0 0
ecom: 
hd string 10 1
  name pathlist list of string 0 0
ecom to: 
name .t121 string 0 0
ecom: 
= string 10 1
  name .t121 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t121 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 .b123 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 .b123 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b119 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b119 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b119 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 .t122 int 0 0
generate desc for big
ecom: 
const NEWFD (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b123 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 .b123 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 .b123 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 .b123 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 .b123 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 .b123 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 .b123 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 .b123 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 .b123 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 .b123 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 .b123 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 .b123 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t121 list of int 0 0
ecom: 
= list of int 10 1
  name .t121 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t121 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 .b123 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 .t122 int 0 0
generate desc for big
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b123 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
generate desc for ref Sys->FD
generate desc for ref Sys->FD
	desc	$-1,8,"80"
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 .b119 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 .b123 big 0 0
    const (64) int 6 0
ecom: 
const OREAD (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b123 big 0 0
    const (72) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .b119 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b119 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 .b123 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 .t122 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 .t122 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 .b123 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 .b123 big 0 0
    const (72) int 6 0
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b123 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 .b123 big 0 0
    const (88) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b123 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 .b123 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 .t122 int 0 0
generate desc for big
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b123 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 .t121 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 .b124 big 0 0
    const (64) int 6 0
ecom: 
name progname string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b124 big 0 0
    const (72) int 6 0
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b124 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 .b123 big 0 0
    const (64) int 6 0
ecom: 
name .t121 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b123 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t121 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t121 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 .t120 int ref 1
188: local .t122 int ref 1
192: local .b123 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 .b119 ref Listnode ref 3
248: local argv list of string ref 3
256: local extstart chan of int ref 3
264: local fd ref Sys->FD ref 3
272: local npath string ref 3
280: local pl list of ref Listnode ref 2
288: local .b124 big ref 1
296: local .t121 string 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 .t120 type int offset 184 (d->offset=184 start=0) returns -1
descmap .t122 type int offset 188 (d->offset=188 start=0) returns -1
descmap .b123 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 .b119 type ref Listnode offset 240 (d->offset=240 start=0) returns 240
descmap argv type list of string offset 248 (d->offset=248 start=0) returns 248
descmap extstart type chan of int offset 256 (d->offset=256 start=0) returns 256
descmap fd type ref Sys->FD offset 264 (d->offset=264 start=0) returns 264
descmap npath type string offset 272 (d->offset=272 start=0) returns 272
descmap pl type list of ref Listnode offset 280 (d->offset=280 start=0) returns 280
descmap .b124 type big offset 288 (d->offset=288 start=0) returns -1
descmap .t121 type string offset 296 (d->offset=296 start=0) returns 296
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 .t125 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 .t125 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 .t125 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 .t125 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 .t125 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 .t125 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 .b126 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 .b126 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 .b126 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 .b126 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 .b126 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 .b126 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 .b126 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 .b126 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 .b127 (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 .b126 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 .t128 array of byte 0 0
ecom: 
name header array of byte 0 0
ecom to: 
name .t128 array of byte 0 0
ecom: 
= array of byte 10 1
  name .t128 array of byte 0 0
  name nil array of byte 1 0
ecom: 
name nil array of byte 1 0
ecom to: 
name .t128 array of byte 0 0
ecom: 
const  	 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b126 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 .b127 (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 .b127 (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 .b126 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 .b126 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b129 ref Listnode 0 0
generate desc for ref Listnode
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 .b129 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 .b129 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 .b129 ref Listnode 0 0
    const (8) int 6 0
ecom: 
= ref Listnode 10 1
  name .b129 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b129 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b129 ref Listnode 0 0
generate desc for ref Listnode
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 .b129 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 .b129 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 .b129 ref Listnode 0 0
    const (8) int 6 0
ecom: 
= ref Listnode 10 1
  name .b129 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b129 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom to: 
name .b129 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b129 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b129 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 .t128 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 .b130 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 .b126 big 0 0
    const (64) int 6 0
ecom: 
name .t128 list of ref Listnode 0 0
ecom to: 
* list of ref Listnode 8 0
  + int 15 0
    name .b126 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t128 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 .t128 list of ref Listnode 0 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b126 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 .b126 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 .b129 ref Listnode ref 5
152: local .b130 big ref 1
160: local .t128 array of byte ref 1
168: local .b127 (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 .b126 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 .b129 type ref Listnode offset 144 (d->offset=144 start=0) returns 144
descmap .b130 type big offset 152 (d->offset=152 start=0) returns -1
descmap .t128 type array of byte 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 list of string offset 176 (d->offset=8 start=168) returns 176
descmap .b127 type (int, list of string) offset 168 (d->offset=168 start=0) returns 176
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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .b131 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b131 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b131 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 .b132 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
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .b131 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b131 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b131 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 .b133 (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 .b132 big 0 0
    const (64) int 6 0
ecom: 
const  string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b132 big 0 0
    const (72) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b132 big 0 0
    const (80) int 6 0
ecom: 
= ref Node 10 1
  * ref Node 0 0
    adr int 13 1
      name .b133 (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 .b133 (ref Node, string) 0 0
ecom: 
= string 10 1
  * string 0 0
    + int 13 1
      adr int 13 1
        name .b133 (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 .b133 (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 .b132 big 0 0
    const (64) int 6 0
ecom: 
const parse error string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b132 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 .b132 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
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .b131 ref Listnode 0 0
ecom: 
name cmd ref Node 0 0
ecom to: 
* ref Node 8 1
  name .b131 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b131 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b131 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 .b132 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 .b132 big 0 0
    const (64) int 6 0
ecom: 
const 0 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b132 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 .b132 big 0 0
    const (80) int 6 0
eacom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .b131 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t134 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b131 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b131 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t134 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 .t134 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 .b132 big 0 0
    const (64) int 6 0
ecom: 
const * string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b132 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 .b132 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 .b132 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 .b132 big 0 0
    const (72) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b132 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 .b132 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 .b132 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 .b132 big ref 9
104: local .b131 ref Listnode ref 4
112: local err string ref 2
120: local lex ref YYLEX ref 2
128: local status string ref 2
136: local .t134 list of ref Listnode ref 1
144: local .b133 (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 .b132 type big offset 96 (d->offset=96 start=0) returns -1
descmap .b131 type ref Listnode offset 104 (d->offset=104 start=0) returns 104
descmap err type string offset 112 (d->offset=112 start=0) returns 112
descmap lex type ref YYLEX offset 120 (d->offset=120 start=0) returns 120
descmap status type string offset 128 (d->offset=128 start=0) returns 128
descmap .t134 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 .b133 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 128 (d->offset=128 start=0) returns 128
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 .b135 (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 .b136 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b137 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b137 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b137 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 .b136 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .b137 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b137 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b137 ref Listnode 0 0
ecom: 
= list of Shellbuiltin 10 1
  * list of Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b135 (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 .b135 (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 .t138 Shellbuiltin 0 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b136 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b136 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 .b136 big 0 0
    const (80) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b136 big 0 0
    const (88) int 6 0
ecom: 
= Shellbuiltin 10 1
  name .t138 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t138 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 .b136 big ref 2
104: local .b137 ref Environment ref 2
112: local .t138 Shellbuiltin ref 1
120: local .b135 (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 .b136 type big offset 96 (d->offset=96 start=0) returns -1
descmap .b137 type ref Environment offset 104 (d->offset=104 start=0) returns 104
descmap .t138 type Shellbuiltin 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 .b135 type (int, list of Shellbuiltin) offset 120 (d->offset=120 start=0) returns 128
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 .t139 int 0 0
generate desc for big
ecom: 
const NEWFD (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b140 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 .b140 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 .t139 int 0 0
generate desc for big
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b140 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 .b140 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 .b140 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 .b140 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 .t139 int ref 1
112: local .b140 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 .t139 type int offset 108 (d->offset=108 start=0) returns -1
descmap .b140 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
generate desc for ref Sys->FD
generate desc for ref Sys->FD
	desc	$-1,8,"80"
ecom: 
* ref Sys->FD 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const waitfd (8) int 6 0
ecom to: 
name .b141 ref Sys->FD 0 0
ecom: 
= ref Sys->FD 10 1
  name .b141 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b141 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
generate desc for ref Sys->FD
ecom: 
* ref Sys->FD 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const waitfd (8) int 6 0
ecom to: 
name .b141 ref Sys->FD 0 0
ecom: 
= ref Sys->FD 10 1
  name .b141 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b141 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 .t143 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 .b144 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 .b144 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
generate desc for ref Sys->FD
ecom: 
* ref Sys->FD 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const waitfd (8) int 6 0
ecom to: 
name .b141 ref Sys->FD 0 0
ecom: 
= ref Sys->FD 10 1
  name .b141 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b141 ref Sys->FD 0 0
ecom: 
name .t143 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b142 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t143 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t143 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 .b144 big 0 0
    const (64) int 6 0
ecom: 
name fd2 int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b144 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 .b141 ref Sys->FD ref 3
88: local .b142 big ref 2
96: local .b144 big ref 2
104: local .t143 string 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 .b141 type ref Sys->FD offset 80 (d->offset=80 start=0) returns 80
descmap .b142 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b144 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t143 type string 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 .b145 big 0 0
    const (64) int 6 0
ecom: 
const bad redir string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b145 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 .b145 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 .t146 int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b145 big 0 0
    const (64) int 6 0
ecom: 
name fd2 int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b145 big 0 0
    const (72) int 6 0
ecom: 
name fd1 int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b145 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 .t147 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 .b148 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 .b145 big 0 0
    const (64) int 6 0
ecom: 
const bad redir string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b145 big 0 0
    const (72) int 6 0
ecom: 
name .t147 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b145 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t147 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t147 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 .t146 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 .b148 big 0 0
    const (64) int 6 0
ecom: 
name omode int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b148 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 .b148 big 0 0
    const (64) int 6 0
ecom: 
name omode int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b148 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 .b148 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 .t146 int 0 0
generate desc for big
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b148 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 .b148 big 0 0
    const (64) int 6 0
ecom: 
name omode int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b148 big 0 0
    const (72) int 6 0
ecom: 
const (438) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b148 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 .b148 big 0 0
    const (64) int 6 0
ecom: 
name omode int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b148 big 0 0
    const (72) int 6 0
ecom: 
const (438) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b148 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 .b148 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 .b148 big 0 0
    const (64) int 6 0
ecom: 
name omode int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b148 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 .b148 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 .t146 int 0 0
generate desc for big
ecom: 
name nerr string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b148 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 .b148 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 .t147 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 .b145 big 0 0
    const (64) int 6 0
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b145 big 0 0
    const (72) int 6 0
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b145 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 .b148 big 0 0
    const (64) int 6 0
ecom: 
const bad redir string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b148 big 0 0
    const (72) int 6 0
ecom: 
name .t147 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b148 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t147 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t147 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 .b148 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 .b145 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 .b145 big 0 0
    const (72) int 6 0
ecom: 
const SEEKEND (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b145 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 .t146 int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b148 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 .b148 big 0 0
    const (72) int 6 0
ecom: 
name fd1 int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b148 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
generate desc for ref Sys->FD
ecom: 
* ref Sys->FD 8 0
  + int 15 1
    name ctxt ref Context 0 0
    const waitfd (8) int 6 0
ecom to: 
name .b149 ref Sys->FD 0 0
ecom: 
name keepfds list of int 0 0
ecom to: 
name .t147 list of int 0 0
ecom: 
= ref Sys->FD 10 1
  name .b149 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b149 ref Sys->FD 0 0
ecom: 
= list of int 10 1
  name .t147 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t147 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 .t146 int ref 1
96: local .b148 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 .b145 big ref 5
160: local rl list of Redirword ref 5
168: local nerr string ref 3
176: local .b149 ref Sys->FD ref 1
184: local .t147 string 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 .t146 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b148 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 .b145 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 .b149 type ref Sys->FD offset 176 (d->offset=176 start=0) returns 176
descmap .t147 type string 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 .t150 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 .t151 int 0 0
generate desc for big
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b152 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 .b152 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t150 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t150 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 .b152 big 0 0
    const (64) int 6 0
ecom: 
const OREAD (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b152 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 .b152 big 0 0
    const (64) int 6 0
ecom: 
const OREAD (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b152 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 .t150 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 .b153 big 0 0
    const (64) int 6 0
ecom: 
name .t150 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b152 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t150 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t150 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 .t151 int ref 1
72: local waitfd ref Sys->FD ref 5
80: local .b152 big ref 4
88: local wf string ref 3
96: local .b153 big ref 1
104: local .t150 string ref 1
generate desc for waitfd
descmap offset 0
descmap .t151 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 .b152 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 .b153 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t150 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 .t154 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 .b155 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 .b155 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 .b155 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 .t156 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 .b157 big 0 0
    const (64) int 6 0
ecom: 
name .t156 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b155 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t156 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t156 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 .b157 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 .b157 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 .t156 array of byte 0 0
ecom: 
name buf array of byte 0 0
ecom to: 
name .t156 array of byte 0 0
ecom: 
= array of byte 10 1
  name .t156 array of byte 0 0
  name nil array of byte 1 0
ecom: 
name nil array of byte 1 0
ecom to: 
name .t156 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 .t154 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 .t156 string 0 0
ecom: 
name s string 0 0
ecom to: 
name .t156 string 0 0
ecom: 
= string 10 1
  name .t156 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t156 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 .b157 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 .b157 big 0 0
    const (64) int 6 0
ecom: 
name line string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b157 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 .t154 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 .b158 (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 .b158 (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 .b158 (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 .b158 (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 .b158 (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 .t154 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 .b157 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 .t154 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 .b157 big 0 0
ecom: 
name s string 0 0
ecom to: 
* string 8 1
  name .b157 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 .t154 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 .b157 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 .t154 int 0 0
ecom: 
len int 10 1
  name status array of string 0 0
ecom to: 
name .t154 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 .t154 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 .t156 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 .b157 big 0 0
ecom: 
= string 10 1
  name .t156 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t156 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 .t154 int ref 1
144: local status array of string ref 9
152: local .b157 big ref 8
160: local buf array of byte ref 4
168: local r string ref 3
176: local .b155 big ref 2
184: local .t156 string ref 1
192: local .b158 (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 .t154 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 .b157 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 .b155 type big offset 176 (d->offset=176 start=0) returns -1
descmap .t156 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 .b158 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 .t159 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 .t159 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 .t159 int 0 0
ecom: 
len int 10 1
  name status string 0 0
ecom to: 
name .t159 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 .t159 int 0 0
ecom: 
+ int 15 1
  name i int 0 0
  const (1) int 6 0
ecom to: 
name .t160 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 .t162 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 .b163 big 0 0
    const (64) int 6 0
ecom: 
name status string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b163 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 .b161 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 .b161 big 0 0
    const (72) int 6 0
ecom: 
name .t162 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b161 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t162 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t162 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 .t160 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 .t160 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 .t160 int 0 0
ecom: 
len int 10 1
  name status string 0 0
ecom to: 
name .t160 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 .t160 int 0 0
ecom: 
+ int 15 1
  name i int 0 0
  const (1) int 6 0
ecom to: 
name .t159 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 .t162 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 .b161 big 0 0
    const (64) int 6 0
ecom: 
name status string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b161 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 .b163 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 .b163 big 0 0
    const (72) int 6 0
ecom: 
name .t162 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b163 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t162 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t162 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 .t160 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 .t159 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 .t159 int ref 1
88: local .t160 int ref 1
96: local .b161 big ref 2
104: local .b163 big ref 2
112: local .t162 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 .t159 type int offset 84 (d->offset=84 start=0) returns -1
descmap .t160 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b161 type big offset 96 (d->offset=96 start=0) returns -1
descmap .b163 type big offset 104 (d->offset=104 start=0) returns -1
descmap .t162 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 .t164 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
generate desc for ref Sys->FD
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 .b166 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b167 big 0 0
    const (64) int 6 0
ecom: 
name .b166 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b165 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .b166 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b166 ref Sys->FD 0 0
ecom: 
const sh panic: %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b165 big 0 0
    const (72) int 6 0
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b165 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 .t164 int ref 1
80: local .b165 big ref 1
88: local .b166 ref Sys->FD ref 1
96: local .b167 big ref 1
generate desc for panic
descmap offset 0
descmap s type string offset 64 (d->offset=64 start=0) returns 64
descmap .t164 type int offset 72 (d->offset=72 start=0) returns -1
descmap .b165 type big offset 80 (d->offset=80 start=0) returns -1
descmap .b166 type ref Sys->FD offset 88 (d->offset=88 start=0) returns 88
descmap .b167 type big offset 96 (d->offset=96 start=0) returns -1
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 .t168 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
generate desc for ref Localenv
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 .b169 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b169 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .b169 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b169 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 .t168 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
generate desc for ref Sys->FD
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 .b169 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b171 big 0 0
    const (64) int 6 0
ecom: 
name .b169 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b170 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .b169 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b169 ref Sys->FD 0 0
ecom: 
const sh: %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b170 big 0 0
    const (72) int 6 0
ecom: 
name s string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b170 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 .t168 int ref 1
88: local .b169 ref Localenv ref 3
96: local .b170 big ref 1
104: local .b171 big 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 .t168 type int offset 80 (d->offset=80 start=0) returns -1
descmap .b169 type ref Localenv offset 88 (d->offset=88 start=0) returns 88
descmap .b170 type big offset 96 (d->offset=96 start=0) returns -1
descmap .b171 type big offset 104 (d->offset=104 start=0) returns -1
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 .t173 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 ref Context
generate desc for ref Context
	desc	$-1,8,"80"
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 .b174 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 .b174 ref Context 0 0
    const (0) int 6 0
generate desc for ref Environment
generate desc for ref Environment
	desc	$-1,8,"80"
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 .b175 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 .b175 ref Environment 0 0
    const (0) int 6 0
generate desc for ref Builtins
generate desc for ref Builtins
	desc	$-1,8,"80"
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 .b176 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 .b176 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 .b176 ref Builtins 0 0
    const (8) int 6 0
ecom: 
= ref Builtins 10 1
  name .b176 ref Builtins 0 0
  name nil ref Builtins 1 0
ecom: 
name nil ref Builtins 1 0
ecom to: 
name .b176 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 .b175 ref Environment 0 0
    const (8) int 6 0
generate desc for ref Builtins
generate desc for ref Builtins
	desc	$-1,8,"80"
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 .b176 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 .b176 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 .b176 ref Builtins 0 0
    const (8) int 6 0
ecom: 
= ref Builtins 10 1
  name .b176 ref Builtins 0 0
  name nil ref Builtins 1 0
ecom: 
name nil ref Builtins 1 0
ecom to: 
name .b176 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 .b175 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 .b175 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 .b172 big 0 0
    const (64) int 6 0
ecom: 
= ref Environment 10 1
  name .b175 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b175 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 .b174 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 .b174 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 .b174 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 .t177 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 .t177 list of int 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t177 list of int 0 0
ecom: 
= list of int 10 1
  name .t177 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t177 list of int 0 0
ecom: 
= ref Context 10 1
  name .b174 ref Context 0 0
  name nil ref Context 1 0
ecom: 
name nil ref Context 1 0
ecom to: 
name .b174 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 .t177 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b172 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b172 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t177 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t177 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
generate desc for ref Localenv
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 .b176 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b176 ref Environment 0 0
ecom: 
const VERBOSE (2) int 6 0
ecom to: 
* int 8 1
  + int 15 1
    name .b176 ref Localenv 0 0
    const flags (16) int 6 0
ecom: 
= ref Localenv 10 1
  name .b176 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b176 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 .b172 big 0 0
    const (64) int 6 0
ecom: 
const autoload string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b172 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name vl list of ref Listnode 0 0
ecom to: 
name .b176 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b176 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b176 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
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name vl list of ref Listnode 0 0
ecom to: 
name .b176 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b176 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b176 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 .t177 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b172 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 .b172 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
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name vl list of ref Listnode 0 0
ecom to: 
name .b176 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b176 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b176 ref Listnode 0 0
ecom: 
= string 10 1
  name .t177 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t177 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 .t173 int ref 1
80: local .b172 big ref 7
88: local .b176 ref Builtins ref 7
96: local ctxt ref Context ref 7
104: local vl list of ref Listnode ref 7
112: local .b174 ref Context ref 1
120: local .b175 ref Environment ref 1
128: local .t177 list of int 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 .t173 type int offset 72 (d->offset=72 start=0) returns -1
descmap .b172 type big offset 80 (d->offset=80 start=0) returns -1
descmap .b176 type ref Builtins offset 88 (d->offset=88 start=0) returns 88
descmap ctxt type ref Context offset 96 (d->offset=96 start=0) returns 96
descmap vl type list of ref Listnode offset 104 (d->offset=104 start=0) returns 104
descmap .b174 type ref Context offset 112 (d->offset=112 start=0) returns 112
descmap .b175 type ref Environment offset 120 (d->offset=120 start=0) returns 120
descmap .t177 type list of int offset 128 (d->offset=128 start=0) returns 128
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 ref Context
generate desc for ref Context
	desc	$-1,8,"80"
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 .b178 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 .b178 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 .b178 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 .b178 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 .b178 ref Context 0 0
    const (24) int 6 0
ecom: 
= ref Context 10 1
  name .b178 ref Context 0 0
  name nil ref Context 1 0
ecom: 
name nil ref Context 1 0
ecom to: 
name .b178 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 .t180 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 ref Environment
generate desc for ref Environment
	desc	$-1,8,"80"
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 .b178 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 .b178 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 .b179 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b181 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b181 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b181 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 .b178 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 .b179 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b181 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b181 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b181 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 .b178 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b181 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b181 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b181 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 .b178 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 .b179 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b181 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b181 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b181 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b178 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b178 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 .t180 int ref 1
80: local .b179 big ref 5
88: local .b181 ref Environment ref 4
96: local nctxt ref Context ref 3
104: local .b178 ref Context ref 2
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 .t180 type int offset 76 (d->offset=76 start=0) returns -1
descmap .b179 type big offset 80 (d->offset=80 start=0) returns -1
descmap .b181 type ref Environment offset 88 (d->offset=88 start=0) returns 88
descmap nctxt type ref Context offset 96 (d->offset=96 start=0) returns 96
descmap .b178 type ref Context 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b182 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b182 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b182 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 .b183 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 .b183 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 .b183 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b183 big 0 0
    const (72) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b183 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 .t184 int 0 0
generate desc for big
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b183 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 .b183 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b183 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 .b183 big 0 0
    const (80) int 6 0
generate desc for ref Var
generate desc for ref Var
	desc	$-1,8,"80"
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 .b182 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 .b182 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 .b182 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 .b182 ref Var 0 0
    const (16) int 6 0
ecom: 
= ref Var 10 1
  name .b182 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .b182 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 .t184 int ref 1
104: local e ref Localenv ref 7
112: local .b183 big ref 4
120: local v ref Var ref 4
128: local .b182 ref Environment ref 2
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 .t184 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 .b183 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 .b182 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 .t185 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 .t185 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 .t185 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 .t185 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 .t185 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 .t185 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 .t185 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 .b186 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b187 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b187 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b187 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b186 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 .b186 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b186 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 .t185 int ref 1
96: local v ref Var ref 4
104: local .b186 big ref 2
112: local .b187 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 .t185 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 .b186 type big offset 104 (d->offset=104 start=0) returns -1
descmap .b187 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b188 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b188 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b188 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 .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
      * 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 .b190 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 .b190 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 .b190 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
generate desc for ref Var
generate desc for ref Var
	desc	$-1,8,"80"
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 .b188 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 .b190 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b190 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 .b190 big 0 0
    const (80) int 6 0
ecom: 
= ref Var 10 1
  name .b188 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .b188 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 .b190 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b190 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 .b190 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 .b190 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 .b191 (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 .b191 (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 .b191 (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 .b191 (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 .b191 (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 .b191 (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 .b191 (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 .t189 int ref 1
88: local e ref Localenv ref 7
96: local .b190 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 .b188 ref Environment ref 2
160: local .b191 (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 .t189 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 .b190 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 .b188 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 .b191 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b192 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b192 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b192 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 .b193 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 .b193 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 .b193 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b193 big 0 0
    const (72) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b193 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 .t194 int 0 0
generate desc for big
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b193 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 .b193 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b193 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 .b193 big 0 0
    const (80) int 6 0
generate desc for ref Var
generate desc for ref Var
	desc	$-1,8,"80"
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 .b192 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 .b192 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 .b192 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 .b192 ref Var 0 0
    const (16) int 6 0
ecom: 
= ref Var 10 1
  name .b192 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .b192 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 .t194 int ref 1
104: local .b193 big ref 4
112: local e ref Localenv ref 4
120: local v ref Var ref 4
128: local .b192 ref Environment ref 2
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 .t194 type int offset 96 (d->offset=96 start=0) returns -1
descmap .b193 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 .b192 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b195 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 .b195 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 .b196 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b197 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b197 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b197 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b195 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b195 ref Environment 0 0
fn: push
64: argument ctxt ref Context ref 2
72: local .b195 ref Environment ref 1
80: local .b196 big ref 1
88: local .b197 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 .b195 type ref Environment offset 72 (d->offset=72 start=0) returns 72
descmap .b196 type big offset 80 (d->offset=80 start=0) returns -1
descmap .b197 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
generate desc for ref Localenv
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 .b198 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b198 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .b198 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b198 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 .b199 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
generate desc for ref Localenv
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 .b198 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b198 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .b198 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b198 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b198 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 .b198 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
generate desc for ref Localenv
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 .b200 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b200 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .b200 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b200 ref Localenv 0 0
ecom: 
= ref Environment 10 1
  name .b198 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b198 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 .t201 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 .b199 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
generate desc for ref Var
generate desc for ref Var
	desc	$-1,8,"80"
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 .b200 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 .b199 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b198 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b198 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b198 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 .b199 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
generate desc for ref Var
generate desc for ref Var
	desc	$-1,8,"80"
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name .b198 ref Var 0 0
ecom: 
= ref Var 10 1
  name .b198 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .b198 ref Var 0 0
ecom: 
= ref Var 10 1
  name .b200 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .b200 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 .b199 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 .b199 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
generate desc for ref Var
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name .b200 ref Var 0 0
ecom: 
= ref Var 10 1
  name .b200 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .b200 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 .b199 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 .t201 int ref 1
80: local .b198 ref Localenv ref 7
88: local vl list of ref Var ref 6
96: local .b199 big ref 4
104: local .b200 ref Localenv ref 4
112: local oldv array of list of ref Var ref 3
120: local v ref Var ref 2
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 .t201 type int offset 76 (d->offset=76 start=0) returns -1
descmap .b198 type ref Localenv 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 .b199 type big offset 96 (d->offset=96 start=0) returns -1
descmap .b200 type ref Localenv offset 104 (d->offset=104 start=0) returns 104
descmap oldv type array of list of ref Var offset 112 (d->offset=112 start=0) returns 112
descmap v type ref Var 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .b202 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b202 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b202 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
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .b202 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b202 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b202 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 .t203 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 .b204 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 .b204 big 0 0
    const (72) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b204 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 .t203 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
generate desc for ref Localenv
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 .b202 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b202 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .b202 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b202 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 .t203 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
generate desc for ref Sys->FD
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 .b202 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b205 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 .t206 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 .b205 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b205 big 0 0
    const (72) int 6 0
ecom: 
name .b202 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b204 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .b202 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b202 ref Sys->FD 0 0
ecom: 
const %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b204 big 0 0
    const (72) int 6 0
ecom: 
name .t206 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b204 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t206 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t206 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 .b205 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 .b205 big 0 0
    const (72) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b205 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 .b205 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 .b205 big 0 0
    const (72) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b205 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 .t203 int ref 1
112: local .b202 ref Listnode ref 5
120: local .b205 big ref 4
128: local cmd ref Listnode ref 3
136: local .b204 big ref 2
144: local .t206 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 .t203 type int offset 104 (d->offset=104 start=0) returns -1
descmap .b202 type ref Listnode offset 112 (d->offset=112 start=0) returns 112
descmap .b205 type big offset 120 (d->offset=120 start=0) returns -1
descmap cmd type ref Listnode offset 128 (d->offset=128 start=0) returns 128
descmap .b204 type big offset 136 (d->offset=136 start=0) returns -1
descmap .t206 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 .t207 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b208 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b208 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t207 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t207 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b209 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 .b209 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 .b210 (string, Shellbuiltin) 0 0
ecom: 
name name string 0 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b210 (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 .b210 (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 .t207 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b211 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b211 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b211 ref Environment 0 0
generate desc for (string, Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b210 (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 .b210 (string, Shellbuiltin) 0 0
ecom: 
= Shellbuiltin 10 1
  * Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b210 (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 .b210 (string, Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= list of (string, Shellbuiltin) 10 1
  name .t207 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 .t207 list of (string, Shellbuiltin) 0 0
ecom: 
= ref Environment 10 1
  name .b209 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b209 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 .b208 big ref 2
96: local .b209 ref Environment ref 1
104: local .b211 ref Environment ref 1
112: local .t207 string ref 1
120: local .b210 (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 .b208 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b209 type ref Environment offset 96 (d->offset=96 start=0) returns 96
descmap .b211 type ref Environment offset 104 (d->offset=104 start=0) returns 104
descmap .t207 type string offset 112 (d->offset=112 start=0) returns 112
descmap adt offset 120
descmap offset 120
descmap t0 type string offset 120 (d->offset=0 start=120) returns 120
descmap t1 type Shellbuiltin offset 128 (d->offset=8 start=120) returns 128
descmap .b210 type (string, Shellbuiltin) offset 120 (d->offset=120 start=0) returns 128
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 .b212 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name c ref Context 0 0
ecom to: 
name .b213 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b213 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b213 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b212 big 0 0
    const (72) int 6 0
ecom: 
name mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b212 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 .b212 big ref 1
96: local .b213 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 .b212 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b213 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 .b214 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name c ref Context 0 0
ecom to: 
name .b215 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b215 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b215 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b214 big 0 0
    const (72) int 6 0
ecom: 
name mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b214 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 .b214 big ref 1
96: local .b215 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 .b214 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b215 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 .b216 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name c ref Context 0 0
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name c ref Context 0 0
ecom to: 
name .b217 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b217 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b217 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b216 big 0 0
    const (72) int 6 0
ecom: 
name mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b216 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 .b216 big ref 1
96: local .b217 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 .b216 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b217 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 .b218 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name c ref Context 0 0
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name c ref Context 0 0
ecom to: 
name .b219 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b219 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b219 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b218 big 0 0
    const (72) int 6 0
ecom: 
name mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b218 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 .b218 big ref 1
96: local .b219 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 .b218 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b219 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 .b220 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 .b220 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 .b220 big 0 0
eacom: 
* string 10 1
  hd ref Var 10 1
    name vl list of ref Var 0 0
generate desc for ref Var
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name .b221 ref Var 0 0
ecom: 
= ref Var 10 1
  name .b221 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .b221 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 .b220 big ref 2
104: local .b221 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 .b220 type big offset 96 (d->offset=96 start=0) returns -1
descmap .b221 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 .t222 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
generate desc for ref Localenv
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 .b223 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b223 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .b223 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b223 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 .t222 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
generate desc for ref Sys->FD
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 .b223 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b225 big 0 0
    const (64) int 6 0
ecom: 
name .b223 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b224 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .b223 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b223 ref Sys->FD 0 0
ecom: 
const %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b224 big 0 0
    const (72) int 6 0
ecom: 
name err string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b224 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 .t226 string 0 0
ecom: 
= string 10 1
  name .t226 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t226 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 .t222 int ref 1
96: local .b223 ref Localenv ref 3
104: local .b224 big ref 1
112: local .b225 big ref 1
120: local .t226 string 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 .t222 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b223 type ref Localenv offset 96 (d->offset=96 start=0) returns 96
descmap .b224 type big offset 104 (d->offset=104 start=0) returns -1
descmap .b225 type big offset 112 (d->offset=112 start=0) returns -1
descmap .t226 type string offset 120 (d->offset=120 start=0) returns 120
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
generate desc for ref Localenv
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 .b227 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b227 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .b227 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b227 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
generate desc for ref Localenv
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 .b227 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b227 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .b227 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b227 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
generate desc for ref Localenv
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 .b227 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b227 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 .t228 int 0 0
ecom: 
= ref Localenv 10 1
  name .b227 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b227 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 .t228 int ref 1
88: local .b227 ref Localenv ref 6
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 .t228 type int offset 84 (d->offset=84 start=0) returns -1
descmap .b227 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
generate desc for ref Localenv
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 .b229 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b229 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .b229 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b229 ref Localenv 0 0
fn: options
64: argument ctxt ref Context ref 1
72: local .b229 ref Localenv ref 2
generate desc for Context.options
descmap offset 0
descmap ctxt type ref Context offset 64 (d->offset=64 start=0) returns 64
descmap .b229 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 .t230 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 .t231 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 .t231 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 .t230 int ref 1
92: local .t231 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 .t230 type int offset 88 (d->offset=88 start=0) returns -1
descmap .t231 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 .b232 big 0 0
eacom: 
* string 10 1
  hd ref Var 10 1
    name ent list of ref Var 0 0
generate desc for ref Var
generate desc for ref Var
	desc	$-1,8,"80"
ecom: 
hd ref Var 10 1
  name ent list of ref Var 0 0
ecom to: 
name .b233 ref Var 0 0
ecom: 
= ref Var 10 1
  name .b233 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .b233 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 .b232 big ref 1
104: local .b233 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 .b232 type big offset 96 (d->offset=96 start=0) returns -1
descmap .b233 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 .b234 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 .b234 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 .t235 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 .b236 big 0 0
ecom: 
= list of ref Var 10 1
  name .t235 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 .t235 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 .b234 big ref 1
96: local .b236 big ref 1
104: local .t235 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 .b234 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b236 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t235 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 .t237 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 .t237 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 .b238 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 .b238 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
generate desc for ref Var
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name .b239 ref Var 0 0
ecom: 
= ref Var 10 1
  name .b239 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .b239 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 .b238 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
generate desc for ref Var
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 .b239 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 .b238 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b238 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 .b238 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
generate desc for ref Var
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name .b240 ref Var 0 0
ecom: 
= ref Var 10 1
  name .b240 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .b240 ref Var 0 0
ecom: 
= ref Var 10 1
  name .b239 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .b239 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 .b238 big 0 0
    const (64) int 6 0
ecom: 
name idx int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b238 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 .b238 big 0 0
    const (80) int 6 0
generate desc for ref Var
generate desc for ref Var
	desc	$-1,8,"80"
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 .b240 ref Var 0 0
eacom: 
* Var 10 1
  hd ref Var 10 1
    name vl list of ref Var 0 0
generate desc for ref Var
ecom: 
hd ref Var 10 1
  name vl list of ref Var 0 0
ecom to: 
name .b239 ref Var 0 0
generate desc for Var
ecom: 
= ref Var 10 1
  name .b239 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .b239 ref Var 0 0
ecom: 
= ref Var 10 1
  name .b240 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .b240 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 ref Localenv
generate desc for ref Localenv
	desc	$-1,8,"80"
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 .b240 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 .b240 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 .b240 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 .b240 ref Localenv 0 0
    const (16) int 6 0
ecom: 
= ref Localenv 10 1
  name .b240 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b240 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 .t237 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 .b238 big ref 4
112: local .b239 ref Var ref 3
120: local .b240 ref Var ref 3
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 .t237 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 .b238 type big offset 104 (d->offset=104 start=0) returns -1
descmap .b239 type ref Var offset 112 (d->offset=112 start=0) returns 112
descmap .b240 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 ref Localenv
generate desc for ref Localenv
	desc	$-1,8,"80"
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 .b241 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 .b241 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 .b241 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 .b241 ref Localenv 0 0
    const (16) int 6 0
ecom: 
= ref Localenv 10 1
  name .b241 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b241 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 .t243 int 0 0
generate desc for big
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b244 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 .b244 big 0 0
    const (72) int 6 0
generate desc for ref Var
generate desc for ref Var
	desc	$-1,8,"80"
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 .b241 ref Var 0 0
generate desc for ref Var
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 .b241 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 .b241 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 .b241 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 .t245 list of string 0 0
generate desc for big
ecom: 
name val string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b246 big 0 0
    const (64) int 6 0
ecom: 
name .t245 list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b244 big 0 0
    const (64) int 6 0
ecom: 
= list of string 10 1
  name .t245 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t245 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 .b241 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 .b242 big 0 0
    const (64) int 6 0
ecom: 
name .t243 int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b242 big 0 0
    const (72) int 6 0
ecom: 
name .b241 ref Var 0 0
ecom to: 
* ref Var 8 0
  + int 15 0
    name .b242 big 0 0
    const (80) int 6 0
ecom: 
= ref Var 10 1
  name .b241 ref Var 0 0
  name nil ref Var 1 0
ecom: 
name nil ref Var 1 0
ecom to: 
name .b241 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 .t243 int ref 1
80: local e ref Localenv ref 5
88: local vl list of (string, string) ref 5
96: local .b241 ref Localenv ref 3
104: local name string ref 3
112: local val string ref 2
120: local .b242 big ref 2
128: local .b244 big ref 2
136: local .b246 big ref 1
144: local .t245 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 .t243 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 .b241 type ref Localenv offset 96 (d->offset=96 start=0) returns 96
descmap name type string offset 104 (d->offset=104 start=0) returns 104
descmap val type string offset 112 (d->offset=112 start=0) returns 112
descmap .b242 type big offset 120 (d->offset=120 start=0) returns -1
descmap .b244 type big offset 128 (d->offset=128 start=0) returns -1
descmap .b246 type big offset 136 (d->offset=136 start=0) returns -1
descmap .t245 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 ref Builtins
generate desc for ref Builtins
	desc	$-1,8,"80"
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 .b247 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 .b247 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 .b247 ref Builtins 0 0
    const (8) int 6 0
ecom: 
= ref Builtins 10 1
  name .b247 ref Builtins 0 0
  name nil ref Builtins 1 0
ecom: 
name nil ref Builtins 1 0
ecom to: 
name .b247 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 .t248 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 .t249 int 0 0
ecom: 
* array of (string, list of Shellbuiltin) 8 0
  name b ref Builtins 0 0
ecom to: 
name .t248 array of (string, list of Shellbuiltin) 0 0
ecom: 
= array of (string, list of Shellbuiltin) 10 1
  name .t248 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 .t248 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 .t249 int ref 1
80: local nb ref Builtins ref 3
88: local .b247 ref Builtins ref 1
96: local .t248 array of (string, list of Shellbuiltin) ref 1
generate desc for copybuiltins
descmap offset 0
descmap b type ref Builtins offset 64 (d->offset=64 start=0) returns 64
descmap .t249 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 .b247 type ref Builtins offset 88 (d->offset=88 start=0) returns 88
descmap .t248 type array of (string, list of Shellbuiltin) offset 96 (d->offset=96 start=0) returns 96
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 .t250 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 .t250 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 .b251 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 .t250 int ref 1
96: local bname string ref 3
104: local bmod list of Shellbuiltin ref 2
112: local .b251 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 .t250 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 .b251 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 .b252 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b252 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 .t253 Shellbuiltin 0 0
ecom: 
= Shellbuiltin 10 1
  name .t253 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t253 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 .t253 list of Shellbuiltin 0 0
ecom: 
= list of Shellbuiltin 10 1
  name .t253 list of Shellbuiltin 0 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
name .t253 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 .b254 (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 .b254 (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 .b254 (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 .b252 big 0 0
ecom: 
name .b254 (string, list of Shellbuiltin) 0 0
ecom to: 
* (string, list of Shellbuiltin) 8 1
  name .b252 big 0 0
generate desc for (string, list of Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b254 (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 .b254 (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 .b254 (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 .b254 (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 .t253 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 .t255 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 .t256 int 0 0
ecom: 
* array of (string, list of Shellbuiltin) 8 0
  name b ref Builtins 0 0
ecom to: 
name .t253 array of (string, list of Shellbuiltin) 0 0
ecom: 
= array of (string, list of Shellbuiltin) 10 1
  name .t253 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 .t253 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 .b254 (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 .b254 (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 .b254 (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 .b252 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 .t256 int 0 0
ecom: 
name .b254 (polymorphic type, polymorphic type) 0 0
ecom to: 
* (polymorphic type, polymorphic type) 8 1
  name .b252 big 0 0
generate desc for (polymorphic type, polymorphic type)
ecom: 
= polymorphic type 10 1
  * polymorphic type 0 0
    adr int 13 1
      name .b254 (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 .b254 (polymorphic type, polymorphic type) 0 0
ecom: 
= polymorphic type 10 1
  * polymorphic type 0 0
    + int 13 1
      adr int 13 1
        name .b254 (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 .b254 (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 .t255 int ref 1
108: local .t256 int ref 1
112: local .b252 big ref 3
120: local .b254 (string, list of Shellbuiltin) ref 2
136: local .t253 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 .t255 type int offset 104 (d->offset=104 start=0) returns -1
descmap .t256 type int offset 108 (d->offset=108 start=0) returns -1
descmap .b252 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 .b254 type (string, list of Shellbuiltin) offset 120 (d->offset=120 start=0) returns 128
descmap .t253 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 .b257 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b257 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 .t258 Shellbuiltin 0 0
ecom: 
= Shellbuiltin 10 1
  name .t258 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t258 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 .b259 (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 .b259 (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 .b259 (string, list of Shellbuiltin) 0 0
    const (8) int 6 0
ecom: 
name bmods list of Shellbuiltin 0 0
ecom to: 
name .t258 list of Shellbuiltin 0 0
ecom: 
= list of Shellbuiltin 10 1
  name .t258 list of Shellbuiltin 0 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
name .t258 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 .b257 big 0 0
ecom: 
name .b259 (string, list of Shellbuiltin) 0 0
ecom to: 
* (string, list of Shellbuiltin) 8 1
  name .b257 big 0 0
generate desc for (string, list of Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b259 (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 .b259 (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 .b259 (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 .b259 (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 .b259 (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 .b259 (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 .b259 (string, list of Shellbuiltin) 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t258 list of Shellbuiltin 0 0
ecom: 
= list of Shellbuiltin 10 1
  name .t258 list of Shellbuiltin 0 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
name .t258 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 .b257 big 0 0
ecom: 
name .b259 (string, list of Shellbuiltin) 0 0
ecom to: 
* (string, list of Shellbuiltin) 8 1
  name .b257 big 0 0
generate desc for (string, list of Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b259 (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 .b259 (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 .b259 (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 .b259 (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 .t260 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 .t261 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 .t261 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 .t258 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 .t261 int 0 0
ecom: 
* array of (string, list of Shellbuiltin) 8 0
  name b ref Builtins 0 0
ecom to: 
name .t258 array of (string, list of Shellbuiltin) 0 0
ecom: 
= array of (string, list of Shellbuiltin) 10 1
  name .t258 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 .t258 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 .t261 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 .t258 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 .t260 int 0 0
ecom: 
* array of (string, list of Shellbuiltin) 8 0
  name b ref Builtins 0 0
ecom to: 
name .t258 array of (string, list of Shellbuiltin) 0 0
ecom: 
= array of (string, list of Shellbuiltin) 10 1
  name .t258 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 .t258 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 .b259 (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 .b259 (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 .b259 (string, list of Shellbuiltin) 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t258 list of Shellbuiltin 0 0
ecom: 
= list of Shellbuiltin 10 1
  name .t258 list of Shellbuiltin 0 0
  name nil list of Shellbuiltin 1 0
ecom: 
name nil list of Shellbuiltin 1 0
ecom to: 
name .t258 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 .b257 big 0 0
ecom: 
name .b259 (string, list of Shellbuiltin) 0 0
ecom to: 
* (string, list of Shellbuiltin) 8 1
  name .b257 big 0 0
generate desc for (string, list of Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b259 (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 .b259 (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 .b259 (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 .b259 (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 .t260 int ref 1
108: local .t261 int ref 1
112: local .b257 big ref 4
120: local nb array of (string, list of Shellbuiltin) ref 3
128: local .b259 (string, list of Shellbuiltin) ref 3
144: local .t258 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 .t260 type int offset 104 (d->offset=104 start=0) returns -1
descmap .t261 type int offset 108 (d->offset=108 start=0) returns -1
descmap .b257 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 .b259 type (string, list of Shellbuiltin) offset 128 (d->offset=128 start=0) returns 136
descmap .t258 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 .b262 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 .t263 Shellbuiltin 0 0
ecom: 
= Shellbuiltin 10 1
  name .t263 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t263 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 .b262 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 .t264 int 0 0
ecom: 
name name (string, list of Shellbuiltin) 0 0
ecom to: 
* (string, list of Shellbuiltin) 8 1
  name .b262 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 .b265 (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 .b265 (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 .b265 (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 .b262 big 0 0
ecom: 
name .b265 (polymorphic type, polymorphic type) 0 0
ecom to: 
* (polymorphic type, polymorphic type) 8 1
  name .b262 big 0 0
generate desc for (polymorphic type, polymorphic type)
ecom: 
= polymorphic type 10 1
  * polymorphic type 0 0
    adr int 13 1
      name .b265 (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 .b265 (polymorphic type, polymorphic type) 0 0
ecom: 
= polymorphic type 10 1
  * polymorphic type 0 0
    + int 13 1
      adr int 13 1
        name .b265 (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 .b265 (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 .t264 int ref 1
96: local .b262 big ref 3
104: local name string ref 2
112: local bmods list of Shellbuiltin ref 6
120: local .t263 Shellbuiltin ref 1
128: local .b265 (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 .t264 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b262 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 .t263 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 .b265 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 .b266 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 .t267 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 .b266 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 .t267 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 .t267 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 .b266 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 .b266 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 .t267 int ref 1
80: local v ref Var ref 6
88: local vl list of ref Var ref 5
96: local .b266 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 .t267 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 .b266 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name val list of ref Listnode 0 0
ecom to: 
name .b268 ref Listnode 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t269 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b268 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b268 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t269 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 .t269 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 .b268 ref Listnode ref 1
88: local .t269 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 .b268 type ref Listnode offset 80 (d->offset=80 start=0) returns 80
descmap .t269 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 .t270 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 .t272 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 .b273 big 0 0
    const (64) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b273 big 0 0
    const (72) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b271 big 0 0
    const (64) int 6 0
ecom: 
name .t272 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b271 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t272 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t272 string 0 0
fn: setenv
64: argument name string ref 1
72: argument val list of ref Listnode ref 1
80: local .t270 int ref 1
88: local .b271 big ref 1
96: local .b273 big ref 1
104: local .t272 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 .t270 type int offset 80 (d->offset=80 start=0) returns -1
descmap .b271 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b273 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t272 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 .t274 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 .t274 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 .t274 int 0 0
ecom: 
len int 10 1
  name s string 0 0
ecom to: 
name .t274 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 .t274 int 0 0
ecom: 
+ int 15 1
  name i int 0 0
  const (1) int 6 0
ecom to: 
name .t275 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 .t274 int ref 1
80: local .t275 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 .t274 type int offset 76 (d->offset=76 start=0) returns -1
descmap .t275 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 .t276 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 .t276 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 .t276 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 .t276 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 .t276 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 .t276 int 0 0
ecom: 
len int 10 1
  name word string 0 0
ecom to: 
name .t276 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 .t276 int 0 0
ecom: 
+ int 15 1
  name i int 0 0
  const (1) int 6 0
ecom to: 
name .t277 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 .t277 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 .t277 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 .t276 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 .t276 int ref 1
80: local .t277 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 .t276 type int offset 76 (d->offset=76 start=0) returns -1
descmap .t277 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 .t278 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 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 .t278 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 .t278 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 .t278 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 .t279 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 .b280 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 .b280 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 .b280 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 .t281 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 .b280 big 0 0
    const (64) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t282 list of string 0 0
ecom: 
= string 10 1
  name .t281 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t281 string 0 0
ecom: 
= list of string 10 1
  name .t282 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t282 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b283 ref Listnode 0 0
generate desc for ref Listnode
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 .b283 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 .b283 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 .b283 ref Listnode 0 0
    const (8) int 6 0
ecom: 
= ref Listnode 10 1
  name .b283 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b283 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 .b280 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 .t279 int ref 1
80: local files list of string ref 7
88: local .b280 big ref 5
96: local n ref Listnode ref 5
104: local new list of ref Listnode ref 5
112: local .b283 ref Listnode ref 2
120: local qword string ref 2
128: local ret list of ref Listnode ref 2
136: local .t281 string ref 1
144: local .t282 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 .t279 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 .b280 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 .b283 type ref Listnode offset 112 (d->offset=112 start=0) returns 112
descmap qword type string offset 120 (d->offset=120 start=0) returns 120
descmap ret type list of ref Listnode offset 128 (d->offset=128 start=0) returns 128
descmap .t281 type string offset 136 (d->offset=136 start=0) returns 136
descmap .t282 type list of string offset 144 (d->offset=144 start=0) returns 144
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 .b284 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 .b284 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 .b284 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 .b284 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b285 ref Listnode 0 0
generate desc for ref Listnode
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 .b285 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 .b285 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 .b285 ref Listnode 0 0
    const (8) int 6 0
ecom: 
= ref Listnode 10 1
  name .b285 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b285 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 .b286 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 .b285 ref Listnode ref 2
88: local .b286 big 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 .b285 type ref Listnode offset 80 (d->offset=80 start=0) returns 80
descmap .b286 type big offset 88 (d->offset=88 start=0) returns -1
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 .t287 string 0 0
ecom: 
= string 10 1
  name .t287 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t287 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 .t287 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 .t287 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name l list of ref Listnode 0 0
ecom to: 
name .b288 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b288 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b288 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 .b288 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 .b288 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 .t289 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 .t289 string 0 0
ecom: 
+ string 10 1
  const [ string 1 0
  name l string 0 0
ecom to: 
name .t289 string 0 0
ecom: 
= string 10 1
  name .t289 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t289 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 .t289 string 0 0
ecom: 
= string 10 1
  name .t289 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t289 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 .t289 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 .t289 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 .t290 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 .t290 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t290 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t290 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 .t290 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t290 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t290 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 .t290 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 .t290 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 .t290 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t290 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t290 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 .t290 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t290 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t290 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 .t290 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t290 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t290 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 .t290 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t290 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t290 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 .t290 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t290 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t290 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 .b291 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
generate desc for ref Redir
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .b292 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .b292 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .b292 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
generate desc for ref Redir
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .b292 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .b292 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .b292 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 .t290 string 0 0
generate desc for big
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b291 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 .b291 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t290 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t290 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 .t290 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t290 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t290 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 .t290 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 .b291 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
generate desc for ref Redir
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .b292 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .b292 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .b292 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 .t293 string 0 0
generate desc for big
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b291 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 .b291 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t290 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t290 string 0 0
ecom: 
= string 10 1
  name .t293 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t293 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 .t293 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 .t293 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t293 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t293 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 .t293 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 .t293 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 .b291 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 .t290 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t293 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t293 string 0 0
ecom: 
= string 10 1
  name .t290 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t290 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 .t293 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t293 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t293 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 .t293 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 .t293 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 .b291 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 .t290 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t293 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t293 string 0 0
ecom: 
= string 10 1
  name .t290 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t290 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 .t293 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t293 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t293 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
generate desc for ref Redir
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .b292 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .b292 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .b292 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
generate desc for ref Redir
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .b292 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .b292 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .b292 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 .t293 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 .b291 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
generate desc for ref Redir
ecom: 
* ref Redir 8 0
  + int 15 1
    name n ref Node 0 0
    const redir (32) int 6 0
ecom to: 
name .b292 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .b292 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .b292 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 .b291 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t293 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t293 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 .t293 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t293 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t293 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 .t293 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 .t293 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 .b291 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 .t290 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t293 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t293 string 0 0
ecom: 
= string 10 1
  name .t290 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t290 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 .t293 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 .t293 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 .b291 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 .t290 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t293 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t293 string 0 0
ecom: 
= string 10 1
  name .t290 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t290 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 .t293 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 .t293 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 .b291 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 .t290 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
= string 10 1
  name .t293 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t293 string 0 0
ecom: 
= string 10 1
  name .t290 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t290 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 .b291 big 0 0
    const (64) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b291 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 .b291 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 .b291 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 .b291 big ref 29
80: local s string ref 24
88: local .b292 ref Redir ref 6
96: local .t290 string ref 1
104: local .t293 string ref 1
generate desc for cmd2string
descmap offset 0
descmap n type ref Node offset 64 (d->offset=64 start=0) returns 64
descmap .b291 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 .b292 type ref Redir offset 88 (d->offset=88 start=0) returns 88
descmap .t290 type string offset 96 (d->offset=96 start=0) returns 96
descmap .t293 type string offset 104 (d->offset=104 start=0) returns 104
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 .t294 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 .t294 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 .t294 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 .t294 int 0 0
ecom: 
len int 10 1
  name s string 0 0
ecom to: 
name .t294 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 .t294 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 .t295 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 .t296 string 0 0
ecom: 
= string 10 1
  name .t296 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t296 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 .t294 int ref 1
88: local .t295 int ref 1
96: local t string ref 9
104: local .t296 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 .t294 type int offset 84 (d->offset=84 start=0) returns -1
descmap .t295 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 .t296 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 .t297 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 .t297 string 0 0
ecom: 
= string 10 1
  name .t297 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t297 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 .t297 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 .t297 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 .b298 big 0 0
ecom: 
const load string 1 0
ecom to: 
* string 8 0
  name .b298 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (1) int 6 0
ecom to: 
name .b298 big 0 0
ecom: 
const unload string 1 0
ecom to: 
* string 8 0
  name .b298 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (2) int 6 0
ecom to: 
name .b298 big 0 0
ecom: 
const loaded string 1 0
ecom to: 
* string 8 0
  name .b298 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (3) int 6 0
ecom to: 
name .b298 big 0 0
ecom: 
const builtin string 1 0
ecom to: 
* string 8 0
  name .b298 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (4) int 6 0
ecom to: 
name .b298 big 0 0
ecom: 
const syncenv string 1 0
ecom to: 
* string 8 0
  name .b298 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (5) int 6 0
ecom to: 
name .b298 big 0 0
ecom: 
const whatis string 1 0
ecom to: 
* string 8 0
  name .b298 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (6) int 6 0
ecom to: 
name .b298 big 0 0
ecom: 
const run string 1 0
ecom to: 
* string 8 0
  name .b298 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (7) int 6 0
ecom to: 
name .b298 big 0 0
ecom: 
const exit string 1 0
ecom to: 
* string 8 0
  name .b298 big 0 0
ecom: 
indx big 10 0
  name names array of string 0 0
  const (8) int 6 0
ecom to: 
name .b298 big 0 0
ecom: 
const @ string 1 0
ecom to: 
* string 8 0
  name .b298 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 .t299 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 .b298 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 .b298 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 .b300 big 0 0
ecom: 
name myselfbuiltin Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b298 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 .b300 big 0 0
    const (64) int 6 0
ecom: 
const loaded string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b300 big 0 0
    const (72) int 6 0
ecom: 
name myselfbuiltin Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b300 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 .b300 big 0 0
    const (64) int 6 0
ecom: 
const quote string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b300 big 0 0
    const (72) int 6 0
ecom: 
name myselfbuiltin Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b300 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 .b300 big 0 0
    const (64) int 6 0
ecom: 
const bquote string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b300 big 0 0
    const (72) int 6 0
ecom: 
name myselfbuiltin Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b300 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 .b300 big 0 0
    const (64) int 6 0
ecom: 
const unquote string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b300 big 0 0
    const (72) int 6 0
ecom: 
name myselfbuiltin Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b300 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 .b300 big 0 0
    const (64) int 6 0
ecom: 
const builtin string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b300 big 0 0
    const (72) int 6 0
ecom: 
name myselfbuiltin Shellbuiltin 1 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b300 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 .t299 int ref 1
88: local .b300 big ref 6
96: local names array of string ref 3
104: local .b298 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 .t299 type int offset 84 (d->offset=84 start=0) returns -1
descmap .b300 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 .b298 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom to: 
name .b301 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b301 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b301 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 .b302 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 .b302 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b301 ref Listnode 0 0
generate desc for ref Listnode
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 .b301 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 .b301 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 .b301 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 .b302 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b302 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t303 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b301 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b301 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t303 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 .t303 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
generate desc for ref Listnode
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 .b301 ref Listnode 0 0
generate desc for ref Listnode
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 .b301 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 .b301 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 .b301 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 .b302 big 0 0
    const (64) int 6 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b302 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t303 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b301 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b301 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t303 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 .t303 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 .b302 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 .b302 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 .b302 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 .b302 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 .b301 ref Listnode ref 5
96: local .b302 big ref 5
104: local .t303 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 .b301 type ref Listnode offset 88 (d->offset=88 start=0) returns 88
descmap .b302 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t303 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .b304 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b304 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b304 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 .b305 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 .b305 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b305 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 .b305 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 .b305 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b305 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 .b305 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 .b305 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b305 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 .b305 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 .b305 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b305 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 .b305 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 .b305 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b305 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 .b305 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 .b305 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b305 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 .b305 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 .b305 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b305 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 .b305 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b304 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b304 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b304 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 .b305 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 .b305 big 0 0
    const (72) int 6 0
ecom: 
name lseq int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b305 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 .b305 big ref 9
112: local .b304 ref Listnode ref 2
120: local name string ref 2
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 .b305 type big offset 104 (d->offset=104 start=0) returns -1
descmap .b304 type ref Listnode offset 112 (d->offset=112 start=0) returns 112
descmap name type string 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b306 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b306 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b306 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 .b307 (string, Shellbuiltin) 0 0
generate desc for (string, Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b307 (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 .b307 (string, Shellbuiltin) 0 0
ecom: 
= Shellbuiltin 10 1
  * Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b307 (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 .b307 (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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b306 ref Listnode 0 0
generate desc for ref Listnode
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 .b306 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 .b306 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 .b306 ref Listnode 0 0
    const (8) int 6 0
ecom: 
= ref Listnode 10 1
  name .b306 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b306 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 .b306 ref Environment ref 3
96: local v list of ref Listnode ref 3
104: local name string ref 2
112: local .b307 (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 .b306 type ref Environment offset 88 (d->offset=88 start=0) returns 88
descmap v type list of ref Listnode offset 96 (d->offset=96 start=0) returns 96
descmap name type string 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 .b307 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 .t308 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t308 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 .t308 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 .b309 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 .b309 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom to: 
name .b310 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 .t308 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t308 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 .t308 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b310 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b310 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 .b311 (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 .b309 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b310 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b310 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b310 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b309 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 .b311 (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 .b311 (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 .t308 Shellbuiltin 0 0
ecom: 
= Shellbuiltin 10 1
  name .t308 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t308 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 .t308 Shellbuiltin 0 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b309 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b309 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 .b309 big 0 0
    const (80) int 6 0
ecom: 
= Shellbuiltin 10 1
  name .t308 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t308 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 .t308 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 .b312 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b312 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 .b309 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 .b309 big 0 0
    const (72) int 6 0
ecom: 
name .t308 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b309 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t308 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t308 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 .b309 big ref 4
96: local name string ref 3
104: local .b310 ref Listnode ref 2
112: local .b312 big ref 1
120: local .t308 list of ref Listnode ref 1
128: local .b311 (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 .b309 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 .b310 type ref Listnode offset 104 (d->offset=104 start=0) returns 104
descmap .b312 type big offset 112 (d->offset=112 start=0) returns -1
descmap .t308 type list of ref Listnode offset 120 (d->offset=120 start=0) returns 120
descmap adt offset 128
descmap offset 128
descmap t0 type int offset 128 (d->offset=0 start=128) returns -1
descmap t1 type list of Shellbuiltin offset 136 (d->offset=8 start=128) returns 136
descmap .b311 type (int, list of Shellbuiltin) offset 128 (d->offset=128 start=0) returns 136
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 .t313 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t313 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 .t313 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 .b314 big 0 0
    const (64) int 6 0
ecom: 
const unquote arg 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 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom to: 
name .b315 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b315 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b315 ref Listnode 0 0
eacom: 
* ref Node 10 1
  hd ref Listnode 10 1
    name argv list of ref Listnode 0 0
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom to: 
name .b315 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b315 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b315 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 .b314 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
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name argv list of ref Listnode 0 0
ecom to: 
name .b315 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b315 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b315 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 .t313 list of string 0 0
generate desc for big
ecom: 
name arg string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b316 big 0 0
    const (64) int 6 0
ecom: 
name .t313 list of string 0 0
ecom to: 
* list of string 8 0
  + int 15 0
    name .b314 big 0 0
    const (64) int 6 0
ecom: 
= list of string 10 1
  name .t313 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t313 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 .b314 big ref 3
96: local .b315 ref Listnode ref 3
104: local .b316 big ref 1
112: local .t313 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 .b314 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b315 type ref Listnode offset 96 (d->offset=96 start=0) returns 96
descmap .b316 type big offset 104 (d->offset=104 start=0) returns -1
descmap .t313 type list of ref Listnode offset 112 (d->offset=112 start=0) returns 112
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 .b317 big 0 0
    const (64) int 6 0
ecom: 
const usage string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b317 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 .b317 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 .b317 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 .b317 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 .t318 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t318 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 .t318 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 .b319 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b319 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 .b319 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 .b319 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 .b319 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 .b319 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 .b319 big 0 0
    const (72) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t318 list of int 0 0
ecom: 
= list of int 10 1
  name .t318 list of int 0 0
  name nil list of int 1 0
ecom: 
name nil list of int 1 0
ecom to: 
name .t318 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 .b319 big ref 2
120: local status string ref 2
128: local .t318 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 .b319 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 .t318 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b320 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b320 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b320 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 .b321 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 .t322 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 .t323 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b324 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 .b324 big 0 0
    const (72) int 6 0
ecom: 
const %s	%s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b321 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b321 big 0 0
    const (72) int 6 0
ecom: 
name .t323 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b321 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t323 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t323 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b320 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b320 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b320 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 .b324 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 .t322 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 .t323 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b321 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 .b321 big 0 0
    const (72) int 6 0
ecom: 
const ${%s}	%s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b324 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b324 big 0 0
    const (72) int 6 0
ecom: 
name .t323 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b324 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t323 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t323 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 .t322 int ref 1
96: local b ref Builtins ref 6
104: local .b321 big ref 3
112: local .b324 big ref 3
120: local .b320 ref Environment ref 2
128: local name string ref 2
136: local bmods list of Shellbuiltin ref 2
144: local name string ref 2
152: local bmods list of Shellbuiltin ref 2
160: local .t323 string 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 .t322 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 .b321 type big offset 104 (d->offset=104 start=0) returns -1
descmap .b324 type big offset 112 (d->offset=112 start=0) returns -1
descmap .b320 type ref Environment offset 120 (d->offset=120 start=0) returns 120
descmap name type string offset 128 (d->offset=128 start=0) returns 128
descmap bmods type list of Shellbuiltin offset 136 (d->offset=136 start=0) returns 136
descmap name type string offset 144 (d->offset=144 start=0) returns 144
descmap bmods type list of Shellbuiltin offset 152 (d->offset=152 start=0) returns 152
descmap .t323 type string offset 160 (d->offset=160 start=0) returns 160
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 .t325 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t325 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 .t325 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom to: 
name .b326 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 .t325 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t325 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 .t325 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b326 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b326 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 .b327 big 0 0
    const (64) int 6 0
ecom: 
const load path... string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b327 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 .b327 big 0 0
    const (64) int 6 0
ecom: 
const load path... string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b327 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 .b327 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 .b327 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
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .b326 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b326 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b326 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 .t325 string 0 0
ecom: 
= string 10 1
  name .t325 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t325 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 .b327 big ref 3
96: local s string ref 3
104: local .b326 ref Listnode ref 2
112: local .t325 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 .b327 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 .b326 type ref Listnode offset 104 (d->offset=104 start=0) returns 104
descmap .t325 type list of ref Listnode offset 112 (d->offset=112 start=0) returns 112
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 .t328 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t328 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 .t328 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 .b329 big 0 0
    const (64) int 6 0
ecom: 
const unload path... string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b329 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 .t328 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 .b329 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 .b329 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  name args list of ref Listnode 0 0
ecom to: 
name .b330 ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b330 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b330 ref Listnode 0 0
ecom: 
= string 10 1
  name .t328 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t328 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 .b329 big ref 2
104: local s string ref 2
112: local .b330 ref Listnode ref 1
120: local .t328 list of 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 .b329 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 .b330 type ref Listnode offset 112 (d->offset=112 start=0) returns 112
descmap .t328 type list of 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 .t331 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t331 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 .t331 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom to: 
name .b332 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 .t331 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t331 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 .t331 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b332 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b332 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 .b333 big 0 0
    const (64) int 6 0
ecom: 
const run path string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b333 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 .b333 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 .t334 int 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b333 big 0 0
    const (64) int 6 0
ecom: 
const INTERACTIVE (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b333 big 0 0
    const (72) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b333 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 .b333 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 .b333 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
generate desc for ref Listnode
ecom: 
hd ref Listnode 10 1
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom to: 
name .b332 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 .t331 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t331 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 .t331 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b332 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b332 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 .b333 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 .t331 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t331 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 .t331 list of ref Listnode 0 0
ecom: 
const (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b333 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 .b333 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 .b333 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 .b333 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 .t334 int ref 1
96: local .b333 big ref 7
104: local .b332 ref Listnode ref 2
112: local .t331 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 .t334 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b333 type big offset 96 (d->offset=96 start=0) returns -1
descmap .b332 type ref Listnode offset 104 (d->offset=104 start=0) returns 104
descmap .t331 type list of ref Listnode offset 112 (d->offset=112 start=0) returns 112
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 .t335 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 .b336 big 0 0
    const (64) int 6 0
ecom: 
const whatis name ... string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b336 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 .t337 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 .b336 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 .b336 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t337 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t337 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 .t335 int ref 1
88: local err string ref 3
96: local .b336 big ref 2
104: local e string ref 2
112: local .t337 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 .t335 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 .b336 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 .t337 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 .t338 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 .t340 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 .b341 big 0 0
    const (64) int 6 0
ecom: 
const %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b339 big 0 0
    const (64) int 6 0
ecom: 
name .t340 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b339 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t340 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t340 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 .t338 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 .t338 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 .b341 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b341 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 .b341 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b341 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 .t340 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 .t342 string 0 0
generate desc for big
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b339 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b339 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 .t343 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 .b339 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b339 big 0 0
    const (72) int 6 0
ecom: 
const %s=%s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b341 big 0 0
    const (64) int 6 0
ecom: 
name .t342 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 .t342 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t342 string 0 0
ecom: 
name .t343 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b341 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t343 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t343 string 0 0
ecom: 
= string 10 1
  name .t340 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t340 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 .b344 (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 .b341 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b345 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b345 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b345 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b341 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 .b344 (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 .b344 (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 .t343 string 0 0
ecom: 
+ string 10 1
  const ${builtin  string 1 0
  name name string 0 0
ecom to: 
name .t343 string 0 0
ecom: 
= string 10 1
  name .t343 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t343 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 .b341 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b341 big 0 0
    const (72) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b341 big 0 0
    const (80) int 6 0
ecom: 
const SBUILTIN (1) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b341 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 .t343 string 0 0
ecom: 
= string 10 1
  name .t343 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t343 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 .t343 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 .t343 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 .t343 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 .t343 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 .t343 string 0 0
generate desc for big
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 mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b341 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t343 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t343 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 .b344 (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 .b341 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b345 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b345 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b345 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b341 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 .b344 (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 .b344 (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 .t338 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 .b341 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b341 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 .b341 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b341 big 0 0
    const (72) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b341 big 0 0
    const (80) int 6 0
ecom: 
const BUILTIN (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b341 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 .t343 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 .t343 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 .t343 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 .t343 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 .t343 string 0 0
generate desc for big
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 mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b341 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t343 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t343 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 .t338 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 .t343 string 0 0
ecom: 
len int 10 1
  name name string 0 0
ecom to: 
name .t338 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 .t346 int 0 0
ecom: 
len int 10 1
  name name string 0 0
ecom to: 
name .t346 int 0 0
ecom: 
name name string 0 0
ecom to: 
name .t343 string 0 0
ecom: 
= string 10 1
  name .t343 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t343 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 .t346 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 .t346 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 .t343 string 0 0
ecom: 
name name string 0 0
ecom to: 
name .t343 string 0 0
ecom: 
= string 10 1
  name .t343 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t343 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 .t343 list of string 0 0
ecom: 
= list of string 10 1
  name .t343 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t343 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 .t343 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 .b341 big 0 0
    const (64) int 6 0
ecom: 
const path string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b341 big 0 0
    const (72) int 6 0
ecom: 
= list of ref Listnode 10 1
  name .t343 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 .t343 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 .b341 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 .t343 list of string 0 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t343 list of string 0 0
ecom: 
= list of string 10 1
  name .t343 list of string 0 0
  name nil list of string 1 0
ecom: 
name nil list of string 1 0
ecom to: 
name .t343 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 .t343 string 0 0
ecom: 
= string 10 1
  name .t343 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t343 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 .t343 string 0 0
ecom: 
hd string 10 1
  name pathlist list of string 0 0
ecom to: 
name .t343 string 0 0
ecom: 
= string 10 1
  name .t343 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t343 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
generate desc for ref Sys->FD
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 .b345 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 .b341 big 0 0
    const (64) int 6 0
ecom: 
const OREAD (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b341 big 0 0
    const (72) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .b345 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b345 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 .t346 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 .b347 (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 .b339 big 0 0
    const (64) int 6 0
ecom: 
name .b347 (int, Sys->Dir) 0 0
ecom to: 
* (int, Sys->Dir) 8 0
  + int 15 0
    name .b341 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 .b347 (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 .b347 (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 .b347 (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 .b347 (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 .b347 (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 .b347 (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 .b347 (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 .b347 (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 .b341 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 .t346 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 .b347 (int, Sys->Dir) 0 0
generate desc for big
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b339 big 0 0
    const (64) int 6 0
ecom: 
name .b347 (int, Sys->Dir) 0 0
ecom to: 
* (int, Sys->Dir) 8 0
  + int 15 0
    name .b341 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 .b347 (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 .b347 (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 .b347 (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 .b347 (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 .b347 (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 .b347 (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 .b347 (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 .b347 (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 .b341 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 .t343 string 0 0
ecom: 
= string 10 1
  name .t343 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t343 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b345 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b345 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b345 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 .t343 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 .b341 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b341 big 0 0
    const (72) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b341 big 0 0
    const (80) int 6 0
ecom: 
const OTHER (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b341 big 0 0
    const (88) int 6 0
ecom: 
= string 10 1
  name .t343 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t343 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 .t343 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 .t343 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 .t343 string 0 0
ecom: 
+ string 10 1
  const load  string 1 0
  name modname string 0 0
ecom to: 
name .t343 string 0 0
ecom: 
= string 10 1
  name .t343 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t343 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 .t346 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
generate desc for ref Sys->FD
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 .b345 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b339 big 0 0
    const (64) int 6 0
ecom: 
name .b345 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b341 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .b345 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b345 ref Sys->FD 0 0
ecom: 
const %s: not found
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b341 big 0 0
    const (72) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b341 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 .t346 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 .b341 big 0 0
    const (64) int 6 0
ecom: 
name w string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b341 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 .t338 int ref 1
92: local .t346 int ref 1
96: local name string ref 25
104: local .b341 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 .b339 big ref 6
144: local mods list of Shellbuiltin ref 6
152: local .b345 ref Environment ref 5
160: local bmods list of (string, Shellbuiltin) ref 5
168: local foundpath string ref 5
176: local mod Shellbuiltin ref 4
184: local mod Shellbuiltin ref 4
192: local mw string ref 4
200: local mw string ref 4
208: local val list of ref Listnode ref 3
216: local fd ref Sys->FD ref 2
224: local modname string ref 2
232: local mod Shellbuiltin ref 2
240: local mw string ref 2
248: local pl list of ref Listnode ref 2
256: local .b344 (int, list of Shellbuiltin) ref 2
272: local .b347 (int, Sys->Dir) ref 2
360: local .t340 string ref 1
368: local .t342 string ref 1
376: local .t343 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 .t338 type int offset 88 (d->offset=88 start=0) returns -1
descmap .t346 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 .b341 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 .b339 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 .b345 type ref Environment offset 152 (d->offset=152 start=0) returns 152
descmap bmods type list of (string, Shellbuiltin) offset 160 (d->offset=160 start=0) returns 160
descmap foundpath type string offset 168 (d->offset=168 start=0) returns 168
descmap mod type Shellbuiltin offset 176 (d->offset=176 start=0) returns 176
descmap mod type Shellbuiltin offset 184 (d->offset=184 start=0) returns 184
descmap mw type string offset 192 (d->offset=192 start=0) returns 192
descmap mw type string offset 200 (d->offset=200 start=0) returns 200
descmap val type list of ref Listnode offset 208 (d->offset=208 start=0) returns 208
descmap fd type ref Sys->FD offset 216 (d->offset=216 start=0) returns 216
descmap modname type string offset 224 (d->offset=224 start=0) returns 224
descmap mod type Shellbuiltin offset 232 (d->offset=232 start=0) returns 232
descmap mw type string offset 240 (d->offset=240 start=0) returns 240
descmap pl type list of ref Listnode offset 248 (d->offset=248 start=0) returns 248
descmap adt offset 256
descmap offset 256
descmap t0 type int offset 256 (d->offset=0 start=256) returns -1
descmap t1 type list of Shellbuiltin offset 264 (d->offset=8 start=256) returns 264
descmap .b344 type (int, list of Shellbuiltin) offset 256 (d->offset=256 start=0) returns 264
descmap adt offset 272
descmap offset 272
descmap t0 type int offset 272 (d->offset=0 start=272) returns -1
descmap adt offset 280
descmap offset 280
descmap name type string offset 280 (d->offset=0 start=280) returns 280
descmap uid type string offset 288 (d->offset=8 start=280) returns 288
descmap gid type string offset 296 (d->offset=16 start=280) returns 296
descmap muid type string offset 304 (d->offset=24 start=280) returns 304
descmap adt offset 312
descmap offset 312
descmap path type big offset 312 (d->offset=0 start=312) returns -1
descmap vers type int offset 320 (d->offset=8 start=312) returns -1
descmap qtype type int offset 324 (d->offset=12 start=312) returns -1
descmap qid type Sys->Qid offset 312 (d->offset=32 start=280) returns -1
descmap mode type int offset 328 (d->offset=48 start=280) returns -1
descmap atime type int offset 332 (d->offset=52 start=280) returns -1
descmap mtime type int offset 336 (d->offset=56 start=280) returns -1
descmap length type big offset 344 (d->offset=64 start=280) returns -1
descmap dtype type int offset 352 (d->offset=72 start=280) returns -1
descmap dev type int offset 356 (d->offset=76 start=280) returns -1
descmap t1 type Sys->Dir offset 280 (d->offset=8 start=272) returns 304
descmap .b347 type (int, Sys->Dir) offset 272 (d->offset=272 start=0) returns 304
descmap .t340 type string offset 360 (d->offset=360 start=0) returns 360
descmap .t342 type string offset 368 (d->offset=368 start=0) returns 368
descmap .t343 type string offset 376 (d->offset=376 start=0) returns 376
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 .t348 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 .b349 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 .b349 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
ecom: 
hd ref Listnode 10 1
  tl list of ref Listnode 10 1
    name args list of ref Listnode 0 0
ecom to: 
name .b350 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 .t351 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t351 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 .t351 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b350 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b350 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 .t348 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 .b349 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 .b349 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 .b352 (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 .b349 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b350 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b350 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b350 ref Environment 0 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b349 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 .b352 (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 .b352 (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 .t351 Shellbuiltin 0 0
ecom: 
= Shellbuiltin 10 1
  name .t351 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t351 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 .t351 Shellbuiltin 0 0
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b349 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b349 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 .b349 big 0 0
    const (80) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b349 big 0 0
    const (88) int 6 0
ecom: 
= Shellbuiltin 10 1
  name .t351 Shellbuiltin 0 0
  name nil Shellbuiltin 1 0
ecom: 
name nil Shellbuiltin 1 0
ecom to: 
name .t351 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 .t348 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
generate desc for ref Localenv
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 .b350 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b350 ref Environment 0 0
ecom: 
= ref Localenv 10 1
  name .b350 ref Localenv 0 0
  name nil ref Localenv 1 0
ecom: 
name nil ref Localenv 1 0
ecom to: 
name .b350 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 .t348 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
generate desc for ref Sys->FD
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 .b350 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b353 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 .t351 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 .b353 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b353 big 0 0
    const (72) int 6 0
ecom: 
name .b350 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b349 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .b350 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b350 ref Sys->FD 0 0
ecom: 
const %s
 string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b349 big 0 0
    const (72) int 6 0
ecom: 
name .t351 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b349 big 0 0
    const (80) int 6 0
ecom: 
= string 10 1
  name .t351 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t351 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 .b353 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 .b353 big 0 0
    const (72) int 6 0
ecom: 
name last int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b353 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 .t348 int ref 1
88: local mods list of Shellbuiltin ref 6
96: local .b349 big ref 5
104: local .b350 ref Listnode ref 5
112: local name string ref 5
120: local .b353 big ref 3
128: local .t351 list of ref Listnode ref 1
136: local .b352 (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 .t348 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 .b349 type big offset 96 (d->offset=96 start=0) returns -1
descmap .b350 type ref Listnode offset 104 (d->offset=104 start=0) returns 104
descmap name type string offset 112 (d->offset=112 start=0) returns 112
descmap .b353 type big offset 120 (d->offset=120 start=0) returns -1
descmap .t351 type list of 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 .b352 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b354 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b354 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b354 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 .b354 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 .b354 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b355 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b355 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b355 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 .b356 (string, Shellbuiltin) 0 0
generate desc for (string, Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b356 (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 .b356 (string, Shellbuiltin) 0 0
ecom: 
= Shellbuiltin 10 1
  * Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b356 (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 .b356 (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 .t357 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 .t358 string 0 0
ecom: 
len int 10 1
  name path string 0 0
ecom to: 
name .t357 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 .t359 int 0 0
ecom: 
len int 10 1
  name path string 0 0
ecom to: 
name .t359 int 0 0
ecom: 
name path string 0 0
ecom to: 
name .t358 string 0 0
ecom: 
= string 10 1
  name .t358 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t358 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 .t359 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 .t358 string 0 0
ecom: 
name path string 0 0
ecom to: 
name .t358 string 0 0
ecom: 
= string 10 1
  name .t358 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t358 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 .t358 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 .b361 big 0 0
    const (64) int 6 0
ecom: 
name path string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b361 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 .b360 big 0 0
    const (64) int 6 0
ecom: 
name .t358 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b360 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t358 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t358 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 .b361 big 0 0
    const (64) int 6 0
ecom: 
name myself Sh 1 0
ecom to: 
* Sh 8 0
  + int 15 0
    name .b361 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b355 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 .b355 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 .b356 (string, Shellbuiltin) 0 0
ecom: 
name name string 0 0
ecom to: 
* string 0 0
  + int 13 1
    adr int 13 1
      name .b356 (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 .b356 (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 .t358 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b362 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b362 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b362 ref Environment 0 0
generate desc for (string, Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b356 (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 .b356 (string, Shellbuiltin) 0 0
ecom: 
= Shellbuiltin 10 1
  * Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b356 (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 .b356 (string, Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= list of (string, Shellbuiltin) 10 1
  name .t358 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 .t358 list of (string, Shellbuiltin) 0 0
ecom: 
= ref Environment 10 1
  name .b355 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b355 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 .t358 string 0 0
generate desc for big
ecom: 
name ctxt ref Context 0 0
ecom to: 
* ref Context 8 0
  + int 15 0
    name .b361 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b361 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t358 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t358 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 .b361 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 .b361 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 .t357 int ref 1
84: local .t359 int ref 1
88: local path string ref 11
96: local .b361 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 .b355 ref Environment ref 2
136: local bname string ref 2
144: local .b356 (string, Shellbuiltin) ref 2
160: local .b360 big ref 1
168: local .b362 ref Environment ref 1
176: local .t358 string 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 .t357 type int offset 80 (d->offset=80 start=0) returns -1
descmap .t359 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 .b361 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 .b355 type ref Environment offset 128 (d->offset=128 start=0) returns 128
descmap bname type string offset 136 (d->offset=136 start=0) returns 136
descmap adt offset 144
descmap offset 144
descmap t0 type string offset 144 (d->offset=0 start=144) returns 144
descmap t1 type Shellbuiltin offset 152 (d->offset=8 start=144) returns 152
descmap .b356 type (string, Shellbuiltin) offset 144 (d->offset=144 start=0) returns 152
descmap .b360 type big offset 160 (d->offset=160 start=0) returns -1
descmap .b362 type ref Environment offset 168 (d->offset=168 start=0) returns 168
descmap .t358 type string offset 176 (d->offset=176 start=0) returns 176
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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b363 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b363 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b363 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 .b364 (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 .b364 (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 .b364 (string, Shellbuiltin) 0 0
ecom: 
= Shellbuiltin 10 1
  * Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b364 (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 .b364 (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 .t366 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 .b367 big 0 0
    const (64) int 6 0
ecom: 
name name string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b367 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 .b365 big 0 0
    const (64) int 6 0
ecom: 
name .t366 string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b365 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t366 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t366 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b363 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 .b363 ref Environment 0 0
    const bmods (16) int 6 0
ecom: 
= ref Environment 10 1
  name .b363 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b363 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b363 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 .b363 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 .b364 (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 .t366 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b368 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b368 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b368 ref Environment 0 0
generate desc for (string, Shellbuiltin)
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b364 (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 .b364 (string, Shellbuiltin) 0 0
ecom: 
= Shellbuiltin 10 1
  * Shellbuiltin 0 0
    + int 13 1
      adr int 13 1
        name .b364 (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 .b364 (string, Shellbuiltin) 0 0
    const t1 (8) int 6 0
ecom: 
= list of (string, Shellbuiltin) 10 1
  name .t366 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 .t366 list of (string, Shellbuiltin) 0 0
ecom: 
= ref Environment 10 1
  name .b363 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b363 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 .b367 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
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b368 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b368 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b368 ref Environment 0 0
ecom: 
name mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b367 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 .b367 big 0 0
    const (64) int 6 0
eacom: 
* ref Builtins 10 1
  * ref Environment 8 0
    name ctxt ref Context 0 0
generate desc for ref Environment
ecom: 
* ref Environment 8 0
  name ctxt ref Context 0 0
ecom to: 
name .b368 ref Environment 0 0
ecom: 
= ref Environment 10 1
  name .b368 ref Environment 0 0
  name nil ref Environment 1 0
ecom: 
name nil ref Environment 1 0
ecom to: 
name .b368 ref Environment 0 0
ecom: 
name mod Shellbuiltin 0 0
ecom to: 
* Shellbuiltin 8 0
  + int 15 0
    name .b367 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 .b363 ref Environment ref 3
112: local .b367 big ref 3
120: local .b368 ref Environment ref 3
128: local bname string ref 2
136: local bmod Shellbuiltin ref 2
144: local .b364 (string, Shellbuiltin) ref 2
160: local .b365 big ref 1
168: local .t366 string 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 .b363 type ref Environment offset 104 (d->offset=104 start=0) returns 104
descmap .b367 type big offset 112 (d->offset=112 start=0) returns -1
descmap .b368 type ref Environment offset 120 (d->offset=120 start=0) returns 120
descmap bname type string offset 128 (d->offset=128 start=0) returns 128
descmap bmod type Shellbuiltin offset 136 (d->offset=136 start=0) returns 136
descmap adt offset 144
descmap offset 144
descmap t0 type string offset 144 (d->offset=0 start=144) returns 144
descmap t1 type Shellbuiltin offset 152 (d->offset=8 start=144) returns 152
descmap .b364 type (string, Shellbuiltin) offset 144 (d->offset=144 start=0) returns 152
descmap .b365 type big offset 160 (d->offset=160 start=0) returns -1
descmap .t366 type string offset 168 (d->offset=168 start=0) returns 168
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 .t369 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 .t369 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 .t369 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 .t369 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 .t370 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 .b371 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b371 big 0 0
    const (72) int 6 0
ecom: 
= string 10 1
  name .t370 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t370 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 .b371 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 .b371 big 0 0
    const (64) int 6 0
ecom: 
const (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b371 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 .t370 list of ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t370 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 .t370 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 .t372 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 .t372 int ref 1
80: local s string ref 6
88: local el ref Listnode ref 5
96: local cmd string ref 4
104: local .b371 big ref 3
112: local .t370 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 .t372 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 .b371 type big offset 104 (d->offset=104 start=0) returns -1
descmap .t370 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 .b373 big 0 0
    const (64) int 6 0
ecom: 
const status string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b373 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 .b373 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
generate desc for ref Listnode
generate desc for ref Listnode
	desc	$-1,8,"80"
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 .b374 ref Listnode 0 0
generate desc for ref Listnode
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 .b374 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 .b374 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 .b374 ref Listnode 0 0
    const (8) int 6 0
ecom: 
name nil polymorphic type 1 0
ecom to: 
name .t375 list of ref Listnode 0 0
ecom: 
= ref Listnode 10 1
  name .b374 ref Listnode 0 0
  name nil ref Listnode 1 0
ecom: 
name nil ref Listnode 1 0
ecom to: 
name .b374 ref Listnode 0 0
ecom: 
= list of ref Listnode 10 1
  name .t375 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 .t375 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 .b374 ref Listnode ref 2
88: local .b373 big ref 1
96: local .t375 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 .b374 type ref Listnode offset 80 (d->offset=80 start=0) returns 80
descmap .b373 type big offset 88 (d->offset=88 start=0) returns -1
descmap .t375 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 .t376 int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b377 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 .b377 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 .b377 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 .b377 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 .b377 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 .t378 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 .t378 string 0 0
ecom: 
= string 10 1
  name .t378 string 0 0
  name nil string 1 0
ecom: 
name nil string 1 0
ecom to: 
name .t378 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 .t376 int ref 1
88: local s string ref 3
96: local .b377 big ref 2
104: local .t378 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 .t376 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 .b377 type big offset 96 (d->offset=96 start=0) returns -1
descmap .t378 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 ref YYLEX
generate desc for ref YYLEX
	desc	$-1,8,"80"
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 .b379 ref YYLEX 0 0
generate desc for YYLEX
ecom: 
= ref YYLEX 10 1
  name .b379 ref YYLEX 0 0
  name nil ref YYLEX 1 0
ecom: 
name nil ref YYLEX 1 0
ecom to: 
name .b379 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 .b379 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 .b379 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 ref YYLEX
generate desc for ref YYLEX
	desc	$-1,8,"80"
generate desc for YYLEX
ecom: 
name blanklex YYLEX 1 0
ecom to: 
* YYLEX 8 0
  name .b380 ref YYLEX 0 0
generate desc for YYLEX
ecom: 
= ref YYLEX 10 1
  name .b380 ref YYLEX 0 0
  name nil ref YYLEX 1 0
ecom: 
name nil ref YYLEX 1 0
ecom to: 
name .b380 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 .b381 big 0 0
    const (64) int 6 0
ecom: 
const OREAD (0) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b381 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 .b380 ref YYLEX ref 1
96: local .b381 big 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 .b380 type ref YYLEX offset 88 (d->offset=88 start=0) returns 88
descmap .b381 type big offset 96 (d->offset=96 start=0) returns -1
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 .t382 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 .b383 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 .t382 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 .b383 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 .b383 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 .b383 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 .b383 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 .b383 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 .t382 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 .b383 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 .b383 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 .b383 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 .b383 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 .b383 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 .b384 (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 .b383 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 .b384 (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 .b384 (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 .b385 (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 .b385 (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 .b385 (string, int) 0 0
    const (8) int 6 0
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b385 (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 .b385 (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 .b383 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 ref Redir
generate desc for ref Redir
	desc	$-1,8,"80"
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 .b386 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 .b386 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 .b386 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 .b386 ref Redir 0 0
    const (8) int 6 0
ecom: 
= ref Redir 10 1
  name .b386 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .b386 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
generate desc for ref Redir
generate desc for ref Redir
	desc	$-1,8,"80"
ecom: 
* ref Redir 8 0
  + int 15 1
    name l ref YYLEX 0 0
    const redir (16) int 6 0
ecom to: 
name .b386 ref Redir 0 0
ecom: 
name rtype int 0 0
ecom to: 
* int 8 1
  name .b386 ref Redir 0 0
ecom: 
= ref Redir 10 1
  name .b386 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .b386 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 .t382 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 .b383 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 .b384 (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 .b383 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 .b384 (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 .b384 (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 .b385 (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 .b385 (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 .b385 (string, int) 0 0
    const (8) int 6 0
ecom: 
= string 10 1
  * string 0 0
    adr int 13 1
      name .b385 (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 .b385 (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 .b383 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 .b383 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 .t382 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 .b383 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 .t382 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 .t382 int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b383 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 .b383 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 .t382 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 .t382 int 0 0
generate desc for big
ecom: 
name l ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b383 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 .b383 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 .b383 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 .t382 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 .b383 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 .b383 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 .t382 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 .t382 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 .b383 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 .t382 int 0 0
generate desc for big
ecom: 
name c int 0 0
ecom to: 
* int 8 0
  + int 15 0
    name .b383 big 0 0
    const (64) int 6 0
ecom: 
name allowed string 0 0
ecom to: 
* string 8 0
  + int 15 0
    name .b383 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 .b383 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 .t382 int ref 1
104: local .b383 big ref 28
112: local s string ref 6
120: local word string ref 6
128: local allowed string ref 3
136: local .b386 ref Redir ref 2
144: local .b384 (int, ref Redir) ref 2
160: local .b385 (string, int) ref 2
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 .t382 type int offset 96 (d->offset=96 start=0) returns -1
descmap .b383 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 .b386 type ref Redir offset 136 (d->offset=136 start=0) returns 136
descmap adt offset 144
descmap offset 144
descmap t0 type int offset 144 (d->offset=0 start=144) returns -1
descmap t1 type ref Redir offset 152 (d->offset=8 start=144) returns 152
descmap .b384 type (int, ref Redir) offset 144 (d->offset=144 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 int offset 168 (d->offset=8 start=160) returns -1
descmap .b385 type (string, int) offset 160 (d->offset=160 start=0) returns 160
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 .t387 int 0 0
fn: ungetc
64: argument lex ref YYLEX ref 6
72: local .t387 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 .t387 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 .b388 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 .t389 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 .t389 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 .t390 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 .t390 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
generate desc for ref Sys->FD
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 .b391 ref Sys->FD 0 0
generate desc for big
ecom: 
const (2) int 6 0
ecom to: 
* int 8 0
  + int 15 0
    name .b392 big 0 0
    const (64) int 6 0
ecom: 
name .b391 ref Sys->FD 0 0
ecom to: 
* ref Sys->FD 8 0
  + int 15 0
    name .b388 big 0 0
    const (64) int 6 0
ecom: 
= ref Sys->FD 10 1
  name .b391 ref Sys->FD 0 0
  name nil ref Sys->FD 1 0
ecom: 
name nil ref Sys->FD 1 0
ecom to: 
name .b391 ref Sys->FD 0 0
ecom: 
const %s string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b388 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 .b388 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 .b392 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 .b392 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 .t390 int 0 0
ecom: 
name c int 0 0
ecom to: 
* int 8 1
  name .b392 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 .t390 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 .t389 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 .t390 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 .t389 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 .t390 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 .t389 int ref 1
80: local .t390 int ref 1
88: local .b392 big ref 3
96: local .b388 big ref 2
104: local .b391 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 .t389 type int offset 76 (d->offset=76 start=0) returns -1
descmap .t390 type int offset 80 (d->offset=80 start=0) returns -1
descmap .b392 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b388 type big offset 96 (d->offset=96 start=0) returns -1
descmap .b391 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 .t393 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 .b394 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 .t393 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 .t395 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 .b394 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 .t393 int ref 1
88: local .t395 int ref 1
96: local .b394 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 .t393 type int offset 84 (d->offset=84 start=0) returns -1
descmap .t395 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b394 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 .b396 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 .t397 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 .b396 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 ref Redir
generate desc for ref Redir
	desc	$-1,8,"80"
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 .b398 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 .b398 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 .b398 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 .b398 ref Redir 0 0
    const (8) int 6 0
ecom: 
= ref Redir 10 1
  name .b398 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .b398 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 .b396 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 .t397 int 0 0
generate desc for big
ecom: 
name lex ref YYLEX 0 0
ecom to: 
* ref YYLEX 8 0
  + int 15 0
    name .b396 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 ref Redir
generate desc for ref Redir
	desc	$-1,8,"80"
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 .b398 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 .b398 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 .b398 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 .b398 ref Redir 0 0
    const (8) int 6 0
ecom: 
= ref Redir 10 1
  name .b398 ref Redir 0 0
  name nil ref Redir 1 0
ecom: 
name nil ref Redir 1 0
ecom to: 
name .b398 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 .t397 int ref 1
88: local .b396 big ref 4
96: local .b398 ref Redir ref 2
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 .t397 type int offset 84 (d->offset=84 start=0) returns -1
descmap .b396 type big offset 88 (d->offset=88 start=0) returns -1
descmap .b398 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 ref Node
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 .b399 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 .b399 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 .b399 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 .b399 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 .b399 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 .b399 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b399 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b399 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 .b399 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 .b399 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 .b400 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 .b400 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 .t401 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 .b400 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 .t401 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 .t401 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 .b400 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 .t401 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 .b400 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 .b400 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 .t401 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 .b400 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 .t401 int ref 1
96: local .b400 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 .t401 type int offset 88 (d->offset=88 start=0) returns -1
descmap .b400 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 .t402 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 .t403 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 .t402 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 .t402 int 0 0
generate desc for YYS
ecom: 
= array of YYS 10 1
  name .t403 array of YYS 0 0
  name nil array of YYS 1 0
ecom: 
name nil array of YYS 1 0
ecom to: 
name .t403 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 .b404 big 0 0
ecom: 
name yystate int 0 0
ecom to: 
* int 8 1
  + int 15 1
    name .b404 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 .b404 big 0 0
ecom: 
name yyval YYSTYPE 0 0
ecom to: 
* YYSTYPE 8 1
  name .b404 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 .b404 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 .b404 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 .b404 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 .b404 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 .t402 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 .t403 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 .t402 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 .t402 int 0 0
generate desc for YYS
ecom: 
= array of YYS 10 1
  name .t403 array of YYS 0 0
  name nil array of YYS 1 0
ecom: 
name nil array of YYS 1 0
ecom to: 
name .t403 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 .b404 big 0 0
ecom: 
name yystate int 0 0
ecom to: 
* int 8 1
  + int 15 1
    name .b404 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 .b404 big 0 0
ecom: 
* YYSTYPE 8 0
  name yylex ref YYLEX 0 0
ecom to: 
* YYSTYPE 8 1
  name .b404 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 .b404 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 .b404 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 .b404 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 .b404 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 .t402 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 .b404 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 .b404 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 .t402 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 .b404 big 0 0
    const (64) int 6 0
ecom: 
const syntax error string 1 0
ecom to: 
* string 8 0
  + int 15 0
    name .b404 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 .b404 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 .b404 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 .b404 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 .b404 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 .b404 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 .b404 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 .b404 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 .t402 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 .b404 big 0 0
ecom: 
- int 10 1
  const (0) int 6 0
  name yyn int 0 0
ecom to: 
name .t402 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 .b404 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 .t405 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 .b406 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 .b406 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 .b406 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 .t405 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 .b406 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 .t405 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 .b406 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 .b404 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 .t405 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 .b406 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 .b404 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 .b406 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 .t405 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 .b406 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 .b404 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 .t405 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 .b406 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 .b404 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 .b406 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 .t405 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 ref Node
generate desc for ref Node
	desc	$-1,8,"80"
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 .b407 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 .b407 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 .b407 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 .b406 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 .t405 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 .b407 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 .b407 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 .b407 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b407 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b407 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 .b406 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 .t405 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 .b406 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 .t405 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 .b406 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 .t405 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 ref Node
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 .b407 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 .b407 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 .b407 ref Node 0 0
    const (8) int 6 0
generate desc for ref Node
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 .b408 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 .b408 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 .b408 ref Node 0 0
    const (8) int 6 0
generate desc for ref Node
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 .b409 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 .b409 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 .b409 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 .b409 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 .b408 ref Node 0 0
    const (16) int 6 0
generate desc for ref Node
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 .b409 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 .b409 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 .b409 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 .b406 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 .t405 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 .b409 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 .b408 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 .b408 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b408 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b408 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 .b407 ref Node 0 0
    const (16) int 6 0
generate desc for ref Node
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 .b409 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 .b409 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 .b409 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 .b406 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 .b409 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 .b407 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 .b407 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b407 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b407 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 .b406 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 .t405 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 ref Node
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 .b409 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 .b409 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 .b409 ref Node 0 0
    const (8) int 6 0
generate desc for ref Node
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 .b408 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 .b408 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 .b408 ref Node 0 0
    const (8) int 6 0
generate desc for ref Node
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 .b407 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 .b407 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 .b407 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 .b407 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 .b407 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 .b407 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b407 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b407 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 .b408 ref Node 0 0
    const (16) int 6 0
generate desc for ref Node
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 .b407 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 .b407 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 .b407 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 .b406 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 .t405 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 .b407 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 .b407 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 .b407 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b407 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b407 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 .b408 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 .b408 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b408 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b408 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 .b409 ref Node 0 0
    const (16) int 6 0
generate desc for ref Node
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 .b408 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 .b408 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 .b408 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 .b406 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 .b408 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 .b408 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 .b408 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b408 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b408 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 .b406 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 .t405 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 ref Node
generate desc for ref Node
	desc	$-1,8,"80"
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 .b409 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 .b409 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 .b409 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 .b406 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 .t405 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 .b409 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 .b406 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 .b409 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 .b409 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 .b406 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 .t405 int 0 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 .b406 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 .t405 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 ref Node
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 .b409 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 .b409 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 .b409 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 .b406 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 .t405 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 .b409 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 .b406 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 .b406 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 .t405 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 .b406 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 .t405 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 ref Node
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 .b409 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 .b409 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 .b406 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 .t405 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 .b409 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 .b406 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 .t405 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 .b409 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 .b406 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 ref Node
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 .b409 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 .b409 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 .b406 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 .t405 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 .b409 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 .b406 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 .t405 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 .b409 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 .b406 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 ref Node
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 .b409 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 .b409 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 .b406 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 .b409 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 .b406 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 .t405 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 .b409 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 ref Node
generate desc for ref Node
	desc	$-1,8,"80"
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 .b409 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 .b409 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 .b409 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 .b409 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 .b409 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 .b409 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 .b406 big 0 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 ref Node
generate desc for ref Node
	desc	$-1,8,"80"
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 .b409 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 .b409 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 .b409 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 .b406 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 .b409 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 .b409 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 .b409 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 .b406 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 .t405 int 0 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 .b406 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 .t405 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 ref Node
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 .b409 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 .b409 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 .b409 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 .b406 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 .t405 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 .b409 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 .b406 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 ref Node
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 .b409 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 .b409 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 .b409 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 .b406 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 .t405 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 .b409 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 .b406 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 .b406 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 .t405 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 .b406 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 ref Node
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 .b409 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 .b409 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 .b409 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 .b406 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 .t405 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 .b409 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 .b406 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 ref Node
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 .b409 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 .b409 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 .b409 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 .b406 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 .t405 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 .b409 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 .b406 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 .b406 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 .t405 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 ref Node
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 .b409 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 .b409 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 .b409 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 .b406 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 .t405 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 .b409 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 .b406 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 ref Node
generate desc for ref Node
	desc	$-1,8,"80"
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 .b409 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 .b409 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 .b409 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 .b409 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 .b409 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 .b406 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 ref Node
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 .b409 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 .b409 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 .b406 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 .t405 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 .b409 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 .b406 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 .b409 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 ref Node
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 .b409 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 .b409 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 .b409 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 .b406 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 .t405 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 .b409 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 ref Node
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 .b409 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 .b409 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 .b409 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 .b406 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 .t405 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 .b409 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 .b409 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 .b409 ref Node 0 0
    const (32) int 6 0
ecom: 
= ref Node 10 1
  name .b409 ref Node 0 0
  name nil ref Node 1 0
ecom: 
name nil ref Node 1 0
ecom to: 
name .b409 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 .t402 int ref 1
116: local .t405 int ref 1
120: local yys array of YYS ref 73
128: local .b406 big ref 56
136: local yyval YYSTYPE ref 39
168: local .b404 big ref 28
176: local .b409 ref Node ref 20
184: local .b407 ref Node ref 4
192: local .b408 ref Node ref 3
200: local .t403 array of YYS 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 .t402 type int offset 112 (d->offset=112 start=0) returns -1
descmap .t405 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 .b406 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 .b404 type big offset 168 (d->offset=168 start=0) returns -1
descmap .b409 type ref Node offset 176 (d->offset=176 start=0) returns 176
descmap .b407 type ref Node offset 184 (d->offset=184 start=0) returns 184
descmap .b408 type ref Node offset 192 (d->offset=192 start=0) returns 192
descmap .t403 type array of YYS offset 200 (d->offset=200 start=0) returns 200
nil 'nil' ref 1083
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 1083
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 7f2818
R2: get 4b9b60 707a88 7f7e08
R2: set 4ba4c0 707b48 7fa4c8
R2: setlocal 4bad90 707c08 7fc6f0
R2: envlist 4bb650 707cc8 7fe5a0
R2: push 4bc050 707d88 801ae0
R2: pop 4bc510 707e48 803870
R2: copy 4bc9d0 707f08 7f3f58
R2: run 4bd140 707fc8 807700
R2: addmodule 4bdb40 708088 8043f0
R2: addbuiltin 4be4c0 708148 80abf0
R2: removebuiltin 4bec50 708208 80c730
R2: addsbuiltin 4bf3d0 7082c8 80d838
R2: removesbuiltin 4bfb58 708388 80cf78
R2: fail 4c02d8 708448 80e0f8
R2: options 4c0af8 708508 8128c0
R2: setoptions 4c1058 7085c8 80fa50
R1: cmd2string 4b8f00 707908 834648
R1: getself 4c6dc8 708bc8 84fbc8
R1: init 4b6d80 7075b8 766930
R1: initbuiltin 4c4628 7088c8 841ae8
R1: initialise 4b6b60 7074f8 763c08
R1: list2stringlist 4c3048 708688 82d078
R1: parse 4b8580 7077f8 768310
R1: quoted 4c3e28 708808 87d608
R1: run 4b7d80 707738 771b48
R1: runbuiltin 4c5868 708a48 8454e8
R1: runsbuiltin 4c6328 708b08 842548
R1: stringlist2list 4c3788 708748 830430
R1: system 4b74e0 707678 771150
R1: whatis 4c4e48 708988 845128
R3: addbuiltin 708148 4be4c0 80abf0
R3: addmodule 708088 4bdb40 8043f0
R3: addsbuiltin 7082c8 4bf3d0 80d838
R3: cmd2string 707908 4b8f00 834648
R3: copy 707f08 4bc9d0 7f3f58
R3: envlist 707cc8 4bb650 7fe5a0
R3: fail 708448 4c02d8 80e0f8
R3: get 707a88 4b9b60 7f7e08
R3: getself 708bc8 4c6dc8 84fbc8
R3: init 7075b8 4b6d80 766930
R3: initbuiltin 7088c8 4c4628 841ae8
R3: initialise 7074f8 4b6b60 763c08
R3: list2stringlist 708688 4c3048 82d078
R3: new 7079c8 4b9480 7f2818
R3: options 708508 4c0af8 8128c0
R3: parse 7077f8 4b8580 768310
R3: pop 707e48 4bc510 803870
R3: push 707d88 4bc050 801ae0
R3: quoted 708808 4c3e28 87d608
R3: removebuiltin 708208 4bec50 80c730
R3: removesbuiltin 708388 4bfb58 80cf78
R3: run 707738 4b7d80 771b48
R3: run 707fc8 4bd140 807700
R3: runbuiltin 708a48 4c5868 8454e8
R3: runsbuiltin 708b08 4c6328 842548
R3: set 707b48 4ba4c0 7fa4c8
R3: setlocal 707c08 4bad90 7fc6f0
R3: setoptions 7085c8 4c1058 80fa50
R3: stringlist2list 708748 4c3788 830430
R3: system 707678 4b74e0 771150
R3: whatis 708988 4c4e48 845128
5879 instructions
210 data elements
121 type descriptors
31 functions exported
3840 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