: cut-slice-head ( seq quot -- before after ) dupd [ not ] compose find drop over length or cut-slice ; inline : cut-slice-tail ( seq quot -- before after ) dupd [ not ] compose find-last drop 0 or 1 + cut-slice ; inline : trim-keep-slice ( seq quot -- middle before after ) [ cut-slice-head ] keep cut-slice-tail swapd ; inline : trim-keep ( seq quot -- middle before after ) over [ trim-keep-slice ] dip [ like ] curry tri@ ; inline