When using several middlewares, with the standard Go network package, they are chained them like this:
Middleware1(Middleware2(Middleware3(App)))
Alice allows to chain them in a more convenient and readable way:
alice.New(Middleware1, Middleware2, Middleware3).Then(App)
More information is available on the project home page.