úÎ <Ì Safe-Infered:The numeric type used to recommend chunk sizes for moving / data between sockets used by both the Linux  and " the portable implementation of . 0Moves data between two file descriptors without 2 copying between kernel address space and user % address space. It transfers up to len bytes of ! data from the file descriptor fd_in to the file  file descriptor fd_out, where one of the % descriptors must refer to a pipe. / is NOT a loop and needs to called repeatedly. * For an example, see the source code of . Indicates whether  uses zero-copy system calls ? or the portable user mode Haskell substitue implementation. ,Pipes data from one socket to another in an  **infinite loop**. +On Linux this happens in kernel space with 0 zero copying between kernel and user spaces. 'On other operating systems, a portable / implementation utilizes a user space buffer 5 and works on handles instead of file descriptors.  Similar to  but used when an : obvious exception is expected whose type can be safely  ignored. 2Attempt to move pages instead of copying. This is 7 only a hint to the kernel: pages may stil be copied 6 if the kernel cannot move the pages from the pipe,  or if the pipe buffers don't refer to full pages. 1More data will be coming in a subsequent splice.  This is a helpful hint when fd_out refers to a  socket. Do not block on I/O. This makes the splice pipe 9 operations nonblocking, but splice() may nevertheless 7 block because the file descriptors that are spliced  to/5from may block (unless they have the O_NONBLOCK flag  set). fd_in off_in fd_out off_out len flags %number of bytes moved or -1 on error 8True: uses zero-copy system calls; otherwise: portable.  Chunk size. Source socket. Target socket. Infinite loop. 1The action to run which can throw any exception. .The new action where exceptions are silenced.    splice-0.2Network.Socket.SpliceControl.Exception.Basetry ChunkSizec_splicezeroCopysplicetry_ sPLICE_F_MOVE sPLICE_F_MOREsPLICE_F_NONBLOCK