···170170 in
171171 let fd = Eio_unix.Resource.fd_opt w |> Option.get in
172172 Some (Types.Redirect (n, fd, `Blocking))
173173- | _ -> Fmt.failwith "Redirections ...")
173173+ | Io_op_greatand -> (
174174+ match file with
175175+ | [ WordLiteral "-" ] ->
176176+ if n = 0 then Some (Types.Close Eio_unix.Fd.stdin)
177177+ else
178178+ let fd = fd_of_int ~sw n in
179179+ Some (Types.Close fd)
180180+ | [ WordLiteral m ] when Option.is_some (int_of_string_opt m) ->
181181+ let m = int_of_string m in
182182+ Some
183183+ (Types.Redirect
184184+ (n, fd_of_int ~close_unix:false ~sw m, `Blocking))
185185+ | _ -> None)
186186+ | Io_op_clobber -> Fmt.failwith ">| not supported yet."
187187+ | Io_op_lessgreat -> Fmt.failwith "<> not support yet.")
174188 | Ast.IoRedirect_IoHere _ ->
175189 Fmt.failwith "HERE documents not yet implemented!"
176190