@@ -88,19 +88,30 @@ type UserAPI3 = "users" :> "list-all" :> "now" :> Get '[JSON] [User]
8888### `Delete`, `Get`, `Patch`, `Post` and `Put`
8989
9090
91−These 5 combinators are very similar except that they each describe a
92−different HTTP method. This is how they're declared
91+The `Get` combinator is defined in terms of the more general `Verb`:
92+``` haskell ignore
93+data Verb method (statusCode :: Nat) (contentType :: [*]) a
94+type Get = Verb 'GET 200
95+```
96+
97+There are other predefined type synonyms for other common HTTP methods,
98+such as e.g.:
99+``` haskell ignore
100+data Delete = Verb 'DELETE 200
101+data Patch = Verb 'PATCH 200
102+data Post = Verb 'POST 200
103+data Put = Verb 'PUT 200
104+```
93105
106+There are also variants that do not return a 200 status code, such
107+as for example:
94108``` haskell ignore
95−data Delete (contentTypes :: [*]) a
96−data Get (contentTypes :: [*]) a
97−data Patch (contentTypes :: [*]) a
98−data Post (contentTypes :: [*]) a
99−data Put (contentTypes :: [*]) a
109+type PostCreated = Verb 'POST 201
110+type PostAccepted = Verb 'POST 202
100111```
101112
102−An endpoint ends with one of the 5 combinators above (unless you write your
103−own). Examples:
113+An endpoint always ends with a variant of the `Verb` combinator
114+(unless you write your own combinators). Examples:
104115
105116``` haskell
106117type UserAPI4 = "users" :> Get '[JSON] [User]