func Read(ic *IntCode) (value int, sig Signal, err error) {
	select {
	case value = <-ic.outputChan:
		sig = SigNone
		err = nil

	case sig = <-ic.signalChan:
		if sig == SigError {
			errOutput := <-ic.errorChan
			err = fmt.Errorf("Program error: %v", errOutput)
		}
	}

	return
}
// Read reads value from intcode output. Will value or signal recieved and error if present
Read reads value from intcode output. Will value or signal recieved and error if present
// Read reads value from intcode output . Will value or signal recieved and error if present
func Read(ic *IntCode) (value int, sig Signal, err error) {
	select {
	case value = <-ic.outputChan:
		sig = SigNone
		err = nil
	case sig = <-ic.signalChan:
		if sig == SigError {
			errOutput := <-ic.errorChan
			err = fmt.Errorf("Program error: %v", errOutput)
		}
	}
	return
}
func Read ( ic * IntCode ) ( value int , sig Signal , err error ) { select { case value = <- ic . outputChan : sig = SigNone err = nil case sig = <- ic . signalChan : if sig == SigError { errOutput := <- ic . errorChan err = fmt . Errorf ( " " , errOutput ) } } return }
Read reads value from intcode output.
Read reads value from intcode output .