This is a largely drop-in replacement for System.Serial.Manager which sends and receives one command at a time from the port, and so is garuanteed to send the write information back to the right function. It may be necessary when working with devices that have ambiguous returns, such as a single acknowledgement character for all successful commands. See the analagous functions in System.Serial.Manager for the full documentation. The notes here only point out the differences.
serialManager function takes one additional argument, the timeout (since it cannot continue executing commands in parallel while one command freezes).
The end of line character for this port
The command to send
The serial port to access
|-> IO (Maybe String)|
Wrapping commands is identical to the non-blocking version except that there is no predicate to recognize return values.