code: func (s *SyncState) Module(addr addrs.ModuleInstance) *Module {
  	s.lock.RLock()
  	ret := s.state.Module(addr).DeepCopy()
  	s.lock.RUnlock()
  	return ret
  }
docs: // Module returns a snapshot of the state of the module instance with the given
  // address, or nil if no such module is tracked.
  //
  // The return value is a pointer to a copy of the module state, which the
  // caller may then freely access and mutate. However, since the module state
  // tends to be a large data structure with many child objects, where possible
  // callers should prefer to use a more granular accessor to access a child
  // module directly, and thus reduce the amount of copying required.