[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#61214] [PATCH guix-artwork] website: posts: Add Dissecting Guix, Pa
From: |
( |
Subject: |
[bug#61214] [PATCH guix-artwork] website: posts: Add Dissecting Guix, Part 2: The Store Monad. |
Date: |
Sun, 12 Feb 2023 20:38:45 +0000 |
Heya,
On Sun Feb 12, 2023 at 6:05 PM GMT, Ludovic Courtès wrote:
> Like Chris, I’m wary of acronyms (they can easily make things
> impenetrable) so I’d write:
>
> - the `with-store` macro and the `run-with-store` procedure
> - the related monad interface
Wow, I really did use 'API' quite a lot... Oops :)
> I agree with Chris’s comment: a few sentences of a higher-level intro
> showing where this fits in the big picture would be great!
Okay, I'll try to figure something out for that.
> It would be nice to stress, also, that one doesn’t _need_ to know about
> monads to use the various programming interfaces of Guix; instead, it’s
> a thing for someone who’d like to get a deep dive into the internals of
> Guix.
Fair enough :)
> Maybe add something like “For example, one might write a function that
> divides two integers such that it returns special value `nothing` when
> the divisor is zero, and `maybe 5` when passed `15` and `3`.” (I
> couldn’t think of a better example but you get the idea. :-))
Okay.
> > +feature of strongly-typed functional languages, and you'll see it all over
> > the
>
> s/strongly/statically/ :-)
Ahh, that's why everyone was pointing out the wording :)
> In Scheme we use #f, not '(), to denote “Nothing”.
Mhm, not sure why I added '() in retrospect.
> Maybe “First, let’s import that module:”?
Too much 'API'... :)
> “To define a monad in Guix, we use `define-monad`”
>
> (In general, I’d avoid “simply” because whether it’s “simple” depends on
> one’s background.)
Ah, of course. I should've remembered this from last time :)
> s/these laws/the so-called _monad laws_/
Good idea.
> Should it be “⇒ #t” instead of “;; #t”, to follow the convention used in
> the manual and in other places?
That's much nicer, yeah.
> s/monad API/monad module/ (or “monad library”)
(insert thumbs up emoji here)
> > + strong types or an interface-like system.
>
> “static types”?
Yep.
> s/This API/The `(guix monads)` module/
Okay.
> Maybe link to the “The Store Monad” section of the manual here or
> earlier?
Oh, did I not link to it before, in the "Lies, Damned Lies, and Abstractions"
section!?
* unmatched-paren checks
...oops.
> I feel we’re asking a lot of work from you, but hopefully the result
> will be even more pleasant. I guess v4 will be ready to go!
Hopefully! :)
> Thanks for all the work,
And thanks for all your own work! :)
-- (
signature.asc
Description: PGP signature
- [bug#61214] [PATCH guix-artwork v2] website: posts: Add Dissecting Guix, Part 2: The Store Monad., (continued)
- [bug#61214] run-with-state and run-with-store, Feng Shu, 2023/02/02
- [bug#61214] [PATCH guix-artwork v3] website: posts: Add Dissecting Guix, Part 2: The Store Monad., (, 2023/02/03
- [bug#61214] [PATCH guix-artwork v4] website: posts: Add Dissecting Guix, Part 2: The Store Monad., (, 2023/02/14
- [bug#61214] [PATCH guix-artwork v5] website: posts: Add Dissecting Guix, Part 2: The Store Monad., (, 2023/02/14
- [bug#61214] [PATCH guix-artwork v6] website: posts: Add Dissecting Guix, Part 2: The Store Monad., (, 2023/02/16