@hackage constrained-some0.1.1
Existential type that can be constrained
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:
SomesandSomes1provide existential wrappers for types with multiple constraints. - Convenient Aliases: Simplified types
SomeandSome1for scenarios where just one constraint is needed.
Usage
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.