ifcxt
if-instance
ifcxt | if-instance | |
---|---|---|
4 | 4 | |
110 | 28 | |
- | - | |
0.0 | 3.6 | |
over 6 years ago | 9 months ago | |
Haskell | Haskell | |
BSD 3-clause "New" or "Revised" License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ifcxt
-
Monthly Hask Anything (August 2022)
Even the IfCtx "tricks" and stuff like /u/Noughtmare's post don't resolve the constraints at runtime. The constraints are still resolved statically, you just carry around a (constant) token that indicates how compile-time resolution went.
- Different `Num` instances based on availability of another instance.
- How do I define this super-unsafe type class (not internally consistent at all 😱)
if-instance
-
Branching on constraints (if-instance), applications
Sam Derbyshire has a cool type-checking plugin called if-instance that lets you branch on whether a constraint is satisfied with the following interface:
- Different `Num` instances based on availability of another instance.
-
How do I define this super-unsafe type class (not internally consistent at all 😱)
/u/presheaf has a more modern version using a GHC plugin: https://github.com/sheaf/if-instance
-
Quantified, overlapping type family equations
I just put up a library that allows branching on whether a constraint is satisfied, using a type-checking plugin. There's also a type-family IsSat, which works as in the OP. Let me know what you think!
What are some alternatives?
capability - Extensional capabilities and deriving combinators
auto - Haskell DSL and platform providing denotational, compositional api for discrete-step, locally stateful, interactive programs, games & automations. http://hackage.haskell.org/package/auto
transient-universe - A Cloud monad based on transient for the creation of Web and reactive distributed applications that are fully composable, where Web browsers are first class nodes in the cloud
safe-exceptions - Safe, consistent, and easy exception handling
rio-orphans - A standard library for Haskell
objective - Purely functional objects
effect-monad - Provides 'graded monads' and 'parameterised monads' to Haskell, enabling fine-grained reasoning about effects.
xml-html-conduit-lens - Optics for xml-conduit and html-conduit
static-closure
cloud-haskell - This is an umbrella development repository for Cloud Haskell
selective - Selective Applicative Functors: Declare Your Effects Statically, Select Which to Execute Dynamically
freer-simple - A friendly effect system for Haskell