Open davidchambers opened 6 years ago
@soroushjp and I created sanctuary-html almost two years ago but never quite got it ready to release (sanctuary-js/sanctuary-html#3). It is similar to Cheerio in that it facilitates traversal and manipulation of HTML documents in Node. Whereas Cheerio is based on jQuery, sanctuary-html uses easily understood types such as Array Node
and easily understood functions such as S.chain
. It's a joy to use!
Completed 27 May 2018
Completed 26 May 2018
Completed 28 May 2018
@scott-christopher put a great deal of work into sanctuary-js/sanctuary-set#1 back in 2016. It provides a Fantasy Land -compliant Set type with value-based equality semantics. Not only will the project be useful in its own right, but it will improve the types of certain Sanctuary functions (S.keys
, S.values
, and S.pairs
) by removing the arbitrary ordering caveat, and will allow us to export Set-specific functions such as intersection
and union
.
sanctuary-map will provide a Fantasy Land -compliant Map type with value-based equality semantics. Whereas plain JavaScript objects can be considered “string maps”, the Map type is parameterized by key type as well as by value type (Map (Pair Integer Integer) (Array String)
, for example).
Completed 26 May 2018
Completed 29 April 2018
We define lovely pure functions which we then test by throwing and catching assertion errors in a module with global suite
and test
functions and dollops of mutable state. This is no way to live! Let's make our test suites pure too by using the Validation type to accumulate errors, potentially in conjunction with the Future type in order to test asynchronous code.
I'm very excited about embracing the style proposed in #438, but this currently requires disabling the ESLint "indent"
rule. Despite being highly configurable, the rule cannot be configured to accept this:
foo (bar)
(baz)
(function(x) {
return x * x;
})
(quux);
When using React, I'd like to derive propTypes from sanctuary-def Type
values. We could add to the sanctuary-def readme a definition of a function which takes a Type
value and returns a “custom validator”. We could even create a package which provides more faithful translations ($.EnumType
could map to PropTypes.oneOf
, for example). This may produce more descriptive error messages.
I have used Commander.js in several projects. It's okay, but we can do better. We can build a library without null
, undefined
, or type coercion. We can build a library which defines parsers with types such as String -> Maybe Integer
to allow option values to be precisely defined and validated.
Currently only the documentation of Sanctuary itself is on the website. For any other Sanctuary project one must consult the readme on GitHub. It would be convenient to have all the projects documented in one place.
sanctuary-list will provide an immutable, Fantasy Land -compliant List type. Due to structural sharing it will perform better than arrays in some situations, and with a smaller memory footprint.
With Hoogle one can often find the function one seeks by entering a type signature. Sanctuary's website should provide similar functionality.
As a community we've achieved a lot in a few years, but there are still projects to create, incomplete projects to release, improvements to make to existing projects, blog posts to write, screencasts to record and edit, and many other ways to make the community even more welcoming to newcomers.
I find this very exciting, but with so many good ideas it's unclear how to best serve the community.
This thread is for gauging interest in various Sanctuary-related endeavours which may or may not have begun and have not yet concluded. I will add ideas as they occur to me; I invite you to do the same.
Submitting a proposal
Supporting a proposal
Please do not discuss proposals in this thread. Let's keep this thread on point. If you would like to comment on a proposal, please do so in a dedicated GitHub issue (create one if necessary).