haskell-servant / haskell-servant/servant

Making `(:>)` of kind `p -> q -> Type` instead of `k -> Type -> Type`

Open
#1,798 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
2k
Forks
427
Avg merge
2d 23h
Merged PRs (30d)
5

Description

When looking at layers of an API I need to store or match against `prefix :> (sym :: Symbol)` which is not possible due to:
```haskell
type (:>) :: k -> Type -> Type
```
whereas I would need
```haskell
type (:>) :: k -> p -> Type
```

Currently I rewrite all APIs wrapping every `Symbol` with `data Sym (sym :: Symbol)`.
Is there a reason why we cannot do `type (:>) :: k -> p -> Type`?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.