: pad-with-bottom ( seq -- newseq )
dup empty? [
dup [ length ] map supremum
- '[ , +bottom+ pad-left ] map
+ '[ _ +bottom+ pad-left ] map
] unless ;
: phi-inputs ( max-d-in pairs -- newseq )
dup empty? [ nip ] [
- swap '[ [ , ] dip first2 unify-inputs ] map
+ swap '[ [ _ ] dip first2 unify-inputs ] map
pad-with-bottom
] if ;
] if-empty ;
: branch-variable ( seq symbol -- seq )
- '[ [ , ] dip at ] map ;
+ '[ [ _ ] dip at ] map ;
: active-variable ( seq symbol -- seq )
[ [ terminated? over at [ drop f ] when ] map ] dip