code: func Scan(handler interface{}, script reddit.Script, cfg Config) (
  	func(),
  	func() error,
  	error,
  ) {
  	kill := make(chan bool)
  	errs := make(chan error)
  
  	if cfg.PostReplies || cfg.CommentReplies || cfg.Mentions || cfg.Messages {
  		return nil, nil, loggedOutErr
  	}
  
  	if err := connectScanStreams(
  		handler,
  		script,
  		cfg,
  		kill,
  		errs,
  	); err != nil {
  		return nil, nil, err
  	}
  
  	return launch(handler, kill, errs, logger(cfg.Logger))
  }
docs: // Scan connects any requested logged-out event sources to the given handler,
  // making requests with the given script handle. It launches a goroutine for the
  // scan. It returns two functions: a stop() function to stop the scan at any
  // time, and a wait() function to block until the scan fails.