haskell-servant / haskell-servant/servant
Port type-level combinators from servant-auth
- Dominant language
- Haskell
- Stars
- 2k
- Forks
- 427
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 5
Description
**ZuriHac note**: this is advanced task.
- `servant-auth` has [`ThrowAll`](https://github.com/plow-technologies/servant-auth/blob/a74cc320b43e791d941a3ed54d5fb29ac1e16511/servant-auth-server/src/Servant/Auth/Server/Internal/ThrowAll.hs) functionality, but would be nice to have more generic:
- See `Enter` implementation, maybe it could help
```haskell
-- |
phantom
:: Proxy api
-> (forall a. m a)
-> ServerT m a
```
- **expert** how to handle `Raw` there, i.e. `Tagged m a`, should we collect there be a type family collecting `Tagged` leafs into a list, so we can ask for `NP I (TaggedLeafs api)`?
- Separate but related: Variant of `Enter` which let's map `Tagged m a -> Tagged n a`, and not only `retag`.
Contributor guide
Assessment
This issue has not been assessed yet.