let split_queued_exprs (qes: queued_expr list)
: inner expr list * queued_expr list =
let rec take_ready qes =
begin match qes with
| Known_expr(e) :: ps1 -> e :: take_ready ps1
| _ -> []
end
in
let rec drop_ready qes =
begin match qes with
| Known_expr(e) :: ps1 -> drop_ready ps1
| _ -> qes
end
in
(take_ready qes, drop_ready qes)