konsumlamm
konsumlamm
IF we change the implementation, I'd argue that `primitive` is even better suited for arrays than `array`, as it doesn't store boxed indices. One possible problem is if `Data.Graph` uses...
How would the proposed syntax distinguish between a single field that is a tuple and multiple fields? Using tuples for the latter is not nice imo. I'd prefer something closer...
> Have you looked [D's sumtype](https://dlang.org/phobos/std_sumtype.html)? It is inspired by ADTs but leans heavily into static introspection and would be a nicer fit for Nim vs. trying to copy Haskell/OCaml....
Personally, I would prefer something closer to Rust: ```nim type Option[T] = case of None() of Some(T) Either[A, B] = case of Le(A) of Ri(T) Node = case of BinaryOpr:...
I think this is a good idea. It's also necessary if we want to reimplement `TBQueue` using `TArray` (see https://github.com/haskell/stm/issues/65).
Since `Array#` is now levity polymorphic, this should be relatively easy to implement.
According to Simon Marlow, this is not possible with STM (see https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/ch10.html#sec_stm-whynot).
With https://github.com/haskell/stm/pull/70, `newTBQueue 0` will indeed fail.
Done in #28.
I did some experiments on SIMD implementations for the other operations. However, I wasn't able to find any implementation that can be vectorized by OpenMP, so I resorted to using...