[](https://hackage.haskell.org/package/constrained-some)  [](https://github.com/bruderj15/constrained-some/actions/workflows/haskell-ci.yml) [](https://mit-license.org/)
# constrained-some
This library provides utilities for working with existential types and type-level constraints.
It allows you to enforce multiple constraints on polymorphic types and containers complementing `some`.
## Core
- **Existential Types**: `Somes` and `Somes1` provide existential wrappers for types with multiple constraints.
- **Convenient Aliases**: Simplified types `Some` and `Some1` for scenarios where just one constraint is needed.
## Usage
```haskell
import Data.Some.Constraint
someShowableOrd :: Somes '[Show, Ord]
someShowableOrd = Some (mempty :: [Double])
someNumFunctor :: Some1 Functor Num
someNumFunctor = Some1 $ [1, 2, 3 :: Int]
```
## Contact information
Contributions, critics and bug reports are welcome!
Please feel free to contact me through GitHub.