Takafumi Arakaki
Takafumi Arakaki
> what is the miminal sink-oriented array interface? Let me first answer a related simpler question: what is the miminal sink-oriented _collection_ interface. So I'll forget about arrays with `ndims...
@quinnj Hi, thanks for the comment. I know people implement widening-based collect-like functions in various places (Tables.jl, StructArrays.jl, ...) but it is rather sad that there is no canonical API...
> I've found there's a class of containers where `similar` and (key-preserving) `setindex_widen!!` are best, and there are situations where it might be better to insert elements. I agree. We...
By the way, I decided to go with "fake/lazy empty table" (`Empty{T}`) route in Transducers.jl + BangBang.jl: https://tkf.github.io/Transducers.jl/dev/manual/#Base.copy. So, this is not strictly a bottleneck for me, at least for...
`copy(xf::Transducer, T::Type, foldable) :: Union{T, Empty{T}}` returns [`Empty(T)`](https://tkf.github.io/BangBang.jl/dev/#BangBang.NoBang.Empty) if the transducer does not produce anything. This is because there is no consistent interface to create an empty container given its...
If you start considering `T = Union{UniformScaling,CustomArray}` or `T = Union{Number,CustomArray}` as a monoid things start being fishy. As a consequence, we have ```julia julia> diagm(ones(3)) == I == diagm(ones(4))...
> For the record, my monoidal comments referred to concrete types `T` only Ah, maybe I generalized your comment too much. Maybe you are only talking about `T
For the "fail hard" option, wouldn't it be better to disallow even creating `MArray`s with non-isbits elements? If so, I think defining `setindex!` here makes sense if it is allowed...
> When I say "extreme lengths" I guess it's a matter of perspective I guess this is what I meant to say by "optimize the hell out." I wanted to...
> I guess we would still need a new builtin `InvariantTuple` to make this work Can we just insert a "value wrapper" to get an invariant tuple type? ```julia struct...