rebellion
rebellion copied to clipboard
A collection of core libraries for Racket
Possible APIs for helping with this: - A function or reducer for converting a sequence of `entry?` (or maybe `record-field?`) values into a record. - Make records sequences, or maybe...
It should be possible to pattern match on records from `rebellion/collection/record`. Should probably support ellipses too (related: #402).
There should be contract combinators for `rebellion/collection/record`. Use cases: - _Heterogeneous_ records where the field names are known at compile time and each field contains a different type of data....
It's not obvious when to use `rebellion/collection/record` v.s. `rebellion/type/record`. The docs for `rebellion/collection/record` should suggest using `rebellion/type/record` instead when you know the field names at compile time. Came up in...
I think Rebellion ought to provide some basic concurrency building blocks. Possible ideas: - Atomics (like `box-cas!` but more) - Reentrant locks - Reader-writer locks ...and other stuff needed to...
**Please don't actually merge this commit.** I doubt Parendown works well with DrRacket and the other tools and expectations of the Racket community, so I expect this kind of change...
If you want to make sure a number `x` is between `` and ``, you have to do something like this: ```racket (max (min x)) ``` This is kind of...
The `pair` constructor from `rebellion/base/pair` should also be a match expander. Example: ```racket (define (pair-swap p) (match-define (pair first second) p) (pair second first)) ```
The data model section is pretty nitty gritty and detailed. Most users will want to use the smart constructors instead, which are far more user-friendly. The docs for `rebellion/base/range` should...
- Make variants intern themselves upon construction when they're wrapping values that are interned, like fixnums, symbols, booleans, keywords, and singletons. Could turn operations like `into-nth` and `into-sum` into zero-allocation...