code: func NewBasic(inner http.Handler, compiler func() *ast.Compiler, store storage.Store, opts ...func(*Basic)) http.Handler {
  	b := &Basic{
  		inner:    inner,
  		compiler: compiler,
  		store:    store,
  	}
  
  	for _, opt := range opts {
  		opt(b)
  	}
  
  	return b
  }
docs: // NewBasic returns a new Basic object.