code: func (lei *LambdaEventInterceptors) Register(provider LambdaInterceptorProvider) *LambdaEventInterceptors {
  	namedInterceptor := func(interceptor Interceptor) *NamedInterceptor {
  		return &NamedInterceptor{
  			Name:        fmt.Sprintf("%T", provider),
  			Interceptor: interceptor,
  		}
  	}
  	if lei.Begin == nil {
  		lei.Begin = make(InterceptorList, 0)
  	}
  	lei.Begin = append(lei.Begin, namedInterceptor(provider.Begin))
  
  	if lei.BeforeSetup == nil {
  		lei.BeforeSetup = make(InterceptorList, 0)
  	}
  	lei.BeforeSetup = append(lei.BeforeSetup, namedInterceptor(provider.BeforeSetup))
  
  	if lei.AfterSetup == nil {
  		lei.AfterSetup = make(InterceptorList, 0)
  	}
  	lei.AfterSetup = append(lei.AfterSetup, namedInterceptor(provider.AfterSetup))
  
  	if lei.BeforeDispatch == nil {
  		lei.BeforeDispatch = make(InterceptorList, 0)
  	}
  	lei.BeforeDispatch = append(lei.BeforeDispatch, namedInterceptor(provider.BeforeDispatch))
  
  	if lei.AfterDispatch == nil {
  		lei.AfterDispatch = make(InterceptorList, 0)
  	}
  	lei.AfterDispatch = append(lei.AfterDispatch, namedInterceptor(provider.AfterDispatch))
  
  	if lei.Complete == nil {
  		lei.Complete = make(InterceptorList, 0)
  	}
  	lei.Complete = append(lei.Complete, namedInterceptor(provider.Complete))
  	return lei
  }
docs: // Register is a convenience function to register a struct that
  // implements the LambdaInterceptorProvider interface