GNU bug report logs -
#61214
[PATCH guix-artwork] website: posts: Add Dissecting Guix, Part 2: The Store Monad.
Previous Next
Reported by: "(" <paren <at> disroot.org>
Date: Wed, 1 Feb 2023 17:29:01 UTC
Severity: normal
Tags: patch
Done: Tobias Geerinckx-Rice <me <at> tobias.gr>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
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 (application/pgp-signature, inline)]
This bug report was last modified 2 years and 92 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.