~jojo/Carth

update TODO
Update TODO
Add class Select

Pass some params implicitly when doing selections
Update stackage release & use default-extensions in cabal file

Also, fix some minor breakages caused by ghc update, fix the
literate.org example, fix some new warnings, and get rid of the need
for a bunch of Data implementations by using basic parsing functions
in SystemSpec.hs.
remove no longer applicable TODOs
update TODO
std: add TODO comment
std: add show-bool, id
std: use io/wrap instead of io/pure for display-inline

I.e., don't execute the action untio the IO is run
Add let & let1 forms to do macro
update TODO
Add test for latest bug fix
Fix bug when getting free vars of non-rec Let in Monomorphic

Was using fvLet for both recursive and nonrecursive bindings, but for
nonrecursive let:s, the LHS should not be subtracted from the RHS FV set.
std-rs: use native-tls inst of rustls. Better for gemini

Rustls is too strict for non-web, self signed, TOFU use, so use rustls
instead. Right now, TLS does no verification, but we'll fix this.
std-rs: add tcp connection, tls connection w rustls

Basically works, but rustls won't last. It together with webpki is way
to restrictive in what certificates validate, so it's not very usable
for non-web, self-signed scenarios like gemini.
Rename foreign-core to std-rs
Less desugaring in Parse (do in Infer instead), more concrete Parsed.

Step towards improving error messages. Among others, the function-related ones can
end up misleading due to bad SrcPos:s given to nodes generated from desugaring.
Add example list-monad to demo macro features & the do macro
Add patterns & declaration of literals in macros

Example of a do-notation-like macro using the new features:

    (defmacro do (<-)
      (case (do-bind ma) ma)
      (case (do-bind (<- a ma) mbs ...)
            (do-bind (fun (a) (do do-bind mbs ...)) ma))
      (case (do-bind ma mbs ...)
            (do-bind (fun (_) (do do-bind mbs ...)) ma)))

which can be used like

    (do list/bind
        (<- i (list 1 2 3))
        (<- j (list 1 2 3))
        (if (< i j)
            (list/singleton [i j])
          list/nil))
Update carth.cabal to reflect move to sourcehut and .md README
Mirror from sourcehut to github using build.sr.ht manifest
Next