code: func connectScanStreams(
  	handler interface{},
  	sc reddit.Scanner,
  	c Config,
  	kill <-chan bool,
  	errs chan<- error,
  ) error {
  	if len(c.Subreddits) > 0 {
  		ph, ok := handler.(botfaces.PostHandler)
  		if !ok {
  			return postHandlerErr
  		}
  
  		if posts, err := streams.Subreddits(
  			sc,
  			kill,
  			errs,
  			c.Subreddits...,
  		); err != nil {
  			return err
  		} else {
  			go func() {
  				for p := range posts {
  					errs <- ph.Post(p)
  				}
  			}()
  		}
  	}
  
  	if len(c.SubredditComments) > 0 {
  		ch, ok := handler.(botfaces.CommentHandler)
  		if !ok {
  			return commentHandlerErr
  		}
  
  		if comments, err := streams.SubredditComments(
  			sc,
  			kill,
  			errs,
  			c.SubredditComments...,
  		); err != nil {
  			return err
  		} else {
  			go func() {
  				for c := range comments {
  					errs <- ch.Comment(c)
  				}
  			}()
  		}
  	}
  
  	if len(c.Users) > 0 {
  		uh, ok := handler.(botfaces.UserHandler)
  		if !ok {
  			return userHandlerErr
  		}
  
  		for _, user := range c.Users {
  			if posts, comments, err := streams.User(
  				sc,
  				kill,
  				errs,
  				user,
  			); err != nil {
  				return err
  			} else {
  				go func() {
  					for p := range posts {
  						errs <- uh.UserPost(p)
  					}
  				}()
  				go func() {
  					for c := range comments {
  						errs <- uh.UserComment(c)
  					}
  				}()
  			}
  		}
  	}
  
  	return nil
  }
docs: // connectScanStreams connects the streams a scanner can subscribe to to the
  // handler.