Popularity
4.1
Stable
Activity
0.0
Stable
7
3
1
Monthly Downloads: 7
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License
Latest version: v0.1.0.0
strict-identity alternatives and similar packages
Based on the "Control" category.
Alternatively, view strict-identity alternatives based on common mentions on social networks and blogs.
-
transient
A full stack, reactive architecture for general purpose programming. Algebraic and monadically composable primitives for concurrency, parallelism, event handling, transactions, multithreading, Web, and distributed computing with complete de-inversion of control (No callbacks, no blocking, pure state) -
selective
Selective Applicative Functors: Declare Your Effects Statically, Select Which to Execute Dynamically -
ComonadSheet
A library for expressing "spreadsheet-like" computations with absolute and relative references, using fixed-points of n-dimensional comonads. -
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 -
monad-validate
DISCONTINUED. (NOTE: REPOSITORY MOVED TO NEW OWNER: https://github.com/lexi-lambda/monad-validate) A Haskell monad transformer library for data validation -
distributed-process-platform
DEPRECATED (Cloud Haskell Platform) in favor of distributed-process-extras, distributed-process-async, distributed-process-client-server, distributed-process-registry, distributed-process-supervisor, distributed-process-task and distributed-process-execution -
effect-monad
Provides 'graded monads' and 'parameterised monads' to Haskell, enabling fine-grained reasoning about effects. -
ixmonad
Provides 'graded monads' and 'parameterised monads' to Haskell, enabling fine-grained reasoning about effects.
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
Promo
coderabbit.ai

Do you think we are missing an alternative of strict-identity or a related project?
README
About
strict-identity package is meant to make writing nested strict let expression heavy code a bit more pleasant, for all those High Performance Haskell lib authors out there.
A simple example of the strict identity monad in action (and working wonderfully) is the following bit fiddling code, which generates C competitive assembly on both major GHC backends, -fasm and -fllvm
(>>) = unsafeShiftR
(<<) = unsafeShiftL
outerShuffle64A :: Word -> Word
outerShuffle64A !x =
runStrictIdentity $! do
x <- return $! ((x .&. 0x00000000FFFF0000) << 16 )
.|. ((x>>16) .&. 0x00000000FFFF0000) .|. (x .&. 0xFFFF00000000FFFF)
x <- return $! ((x .&. 0x0000FF000000FF00 ) << 8 )
.|. (x >> 8) .&. 0x0000FF000000FF00 .|. (x .&. 0xFF0000FFFF0000FF)
x<- return $! (( x .&. 0x00F000F000F000F0 ) << 4 )
.|. (x >> 4) .&. 0x00F000F000F000F0 .|. (x .&. 0xF00FF00FF00FF00F )
x<- return $!((x .&. 0x0C0C0C0C0C0C0C0C )<< 2 )
.|. (x >> 2) .&. 0x0C0C0C0C0C0C0C0C .|.( x .&. 0xC3C3C3C3C3C3C3C3)
x<- return $! ( (x .&. 0x2222222222222222) << 1 )
.|. (x>> 1) .&. 0x2222222222222222 .|. (x .&. 0x9999999999999999)
return x