2023/05/28

2023-05-28 00:02:14 +0000nate2(~nate@98.45.169.16)
2023-05-28 00:04:09 +0000cheater_(~Username@user/cheater)
2023-05-28 00:06:37 +0000cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-05-28 00:06:45 +0000cheater_cheater
2023-05-28 00:07:20 +0000nate2(~nate@98.45.169.16) (Ping timeout: 265 seconds)
2023-05-28 00:19:47 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-05-28 00:19:47 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-05-28 00:19:47 +0000wroathe(~wroathe@user/wroathe)
2023-05-28 00:21:17 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-05-28 00:21:49 +0000mechap(~mechap@user/mechap)
2023-05-28 00:26:05 +0000pavonia(~user@user/siracusa)
2023-05-28 00:27:46 +0000 <reach> Hi, I am new to haskell. I am trying to build cabal and cabal-install and just cloned the git repository , As I am following the readme, I am trying to run this command cabal install cabal-install , but I get this error Error: cabal-3.10.1.0.exe: Failed to build directory-1.3.7.1 (which is
2023-05-28 00:27:46 +0000 <reach> required by exe:cabal from cabal-install-3.10.1.0). The failure occurred
2023-05-28 00:27:46 +0000 <reach> during the configure step. The build process terminated with exit code 127. What is the issue here? Thanks in advance
2023-05-28 00:29:35 +0000 <hpc> you already have cabal-install, or you wouldn't be able to run "cabal install"
2023-05-28 00:30:05 +0000 <hpc> there's not enough info in that part of the error to know why directory failed to build though
2023-05-28 00:35:54 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 00:35:59 +0000ystael_(~ystael@user/ystael) (Ping timeout: 240 seconds)
2023-05-28 00:36:12 +0000 <Axman6> reach: you shoulldn't need to build either of those from the git repo ever, ubless you are contributing to cabal itself. How have you installed ghc?
2023-05-28 00:37:09 +0000 <sclv> reach is a hsoc contributetor
2023-05-28 00:37:18 +0000 <sclv> they need to build it
2023-05-28 00:37:56 +0000 <sclv> reach: what system are you on?
2023-05-28 00:37:56 +0000 <Axman6> these days, by far the simplest thing to do is a) don't install ghc using your package manage3r, b) install ghcup, c) run ghcup tui and install cabal, a recent GHC (9.2 or 9.4 are usually a good bet today), HLS if you want editor integration and stack if you need it
2023-05-28 00:38:02 +0000ystael(~ystael@user/ystael)
2023-05-28 00:38:06 +0000 <Axman6> oh ok then!
2023-05-28 00:40:05 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
2023-05-28 00:41:36 +0000 <sclv> reach: don’t run cabal install, run cabal build to develop and test
2023-05-28 00:42:09 +0000 <sclv> run with -v2 or -v3 to observe the results with higher verbosity
2023-05-28 00:42:53 +0000 <reach> sclv: Windows 11
2023-05-28 00:43:27 +0000 <sclv> ah i guessed. how did you install ghc and cabal?
2023-05-28 00:45:03 +0000 <sclv> i’m guessing you’re not configured with msys…
2023-05-28 00:45:57 +0000 <sclv> (ghcup should do this automatically for you if you install via ghcup. ditto chocalatey if you use the right cocolatey package)
2023-05-28 00:46:25 +0000 <reach> I installed through chocalatey
2023-05-28 00:48:10 +0000 <sclv> which package?
2023-05-28 00:48:13 +0000nate2(~nate@98.45.169.16)
2023-05-28 00:48:26 +0000 <sclv> the recommended route is haskell-dev https://community.chocolatey.org/packages/haskell-dev
2023-05-28 00:51:22 +0000 <reach> yes i followed from the link u shared.
2023-05-28 00:54:29 +0000 <reach> i tried running cabal v2- build cabal and it still throws error
2023-05-28 00:54:30 +0000 <reach> Error: cabal-3.10.1.0.exe: Failed to build time-1.12.2 (which is required by
2023-05-28 00:54:30 +0000 <reach> Cabal-3.11.0.0). The failure occurred during the configure step. The build
2023-05-28 00:54:31 +0000 <reach> process terminated with exit code 127
2023-05-28 01:03:18 +0000harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-05-28 01:10:24 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-05-28 01:16:31 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-05-28 01:29:27 +0000waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 256 seconds)
2023-05-28 01:34:41 +0000waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2023-05-28 01:38:13 +0000talismanick(~user@76.133.152.122)
2023-05-28 01:39:03 +0000 <sclv> reach: msys isn’t configured right. thats why it cant build those packages
2023-05-28 01:39:23 +0000 <talismanick> What's the most idiomatic way to map [(a, Maybe b)] to [(a, b)], filtering (_, Nothing) and mapping (x, Just y) to (x, y)?
2023-05-28 01:40:18 +0000 <reach> @sclv : Invoking msys2 shell command: -defterm -no-start -c "pacman --noconfirm -Syuu --disable-download-timeout | tee -a /update.log; ps -ef | grep '[?]' | awk '{print $2}' | xargs -r kill"
2023-05-28 01:40:18 +0000 <lambdabot> Unknown command, try @list
2023-05-28 01:40:18 +0000 <reach> :: Synchronizing package databases...
2023-05-28 01:40:18 +0000 <reach> clangarm64 downloading...
2023-05-28 01:40:18 +0000 <reach> mingw32 downloading...
2023-05-28 01:40:18 +0000 <reach> mingw64 downloading...
2023-05-28 01:40:19 +0000 <reach> ucrt64 downloading...
2023-05-28 01:40:21 +0000 <reach> clang32 downloading...
2023-05-28 01:40:24 +0000 <reach> clang64 downloading...
2023-05-28 01:40:25 +0000 <reach> msys downloading...
2023-05-28 01:40:27 +0000 <reach> :: Starting core system upgrade...
2023-05-28 01:40:29 +0000 <talismanick> hoogling "f (a, g b) -> f (a, b)" (and anyything more specific) hasn't yielded anything
2023-05-28 01:40:29 +0000 <reach> there is nothing to do
2023-05-28 01:40:32 +0000 <reach> :: Starting full system upgrade...
2023-05-28 01:40:36 +0000 <reach> there is nothing to do
2023-05-28 01:40:38 +0000 <reach> PATH environment variable does not have C:\tools\msys64 in it. Adding...
2023-05-28 01:40:38 +0000 <monochrom> Um please use a paste bin.
2023-05-28 01:40:40 +0000 <reach> Environment Vars (like PATH) have changed. Close/reopen your shell to
2023-05-28 01:40:42 +0000 <reach> see the changes (or in powershell/cmd.exe just type `refreshenv`).
2023-05-28 01:40:44 +0000 <reach> The install of msys2 was successful.
2023-05-28 01:40:46 +0000 <reach> Software installed to 'C:\tools\msys64'
2023-05-28 01:40:48 +0000 <reach> haskell-dev v0.0.1 [Approved]
2023-05-28 01:40:48 +0000 <talismanick> seriously dude?
2023-05-28 01:40:50 +0000 <reach> haskell-dev package files install completed. Performing other installation steps.
2023-05-28 01:40:52 +0000 <reach> The install of haskell-dev was successful.
2023-05-28 01:40:52 +0000 <monochrom> @where paste
2023-05-28 01:40:52 +0000 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2023-05-28 01:40:54 +0000 <reach> Software installed to 'C:\ProgramData\chocolatey\lib\haskell-dev'
2023-05-28 01:41:24 +0000 <sclv> reach please don’t paste long things in irc directly. use a pastebin
2023-05-28 01:42:17 +0000 <reach> sorry, irc is new to me,
2023-05-28 01:42:35 +0000 <sclv> there should be values in the cabal config file pointing to the necessary locations. cf https://stackoverflow.com/q/42555250
2023-05-28 01:42:54 +0000 <sclv> (the values won’t be the same, but should be similar)
2023-05-28 01:43:27 +0000 <sclv> if that approach doesn’t work i recommend just trying the ghcup route instead
2023-05-28 01:44:18 +0000 <sclv> the reason the builds are failing is they are trying to link against msys c libs and not finding them
2023-05-28 01:44:32 +0000 <sclv> those values help find the libs
2023-05-28 01:48:31 +0000nate2(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2023-05-28 02:00:25 +0000vandita(~vandit@178-164-188-2.pool.digikabel.hu) (Ping timeout: 240 seconds)
2023-05-28 02:02:22 +0000vandita(~vandit@84-236-8-26.pool.digikabel.hu)
2023-05-28 02:06:37 +0000 <reach> Thanks sclv, I added mysys64 path to extra-prog-path variable in cabal config file and ran cabal v2-build cabal, this completed without issues. Thanks for the direction.
2023-05-28 02:07:16 +0000 <sclv> wonderful!
2023-05-28 02:11:25 +0000 <talismanick> What's the shortest function `f :: [(a, Maybe b)] -> [(a, b)]` which filters/drops `(_, Nothing)` and maps `(x, Just y)` to `(x, y)`?
2023-05-28 02:12:36 +0000 <probie> Not the shortest, but I'm a fan of `f xs = [(x,y) | (x, Just y) <- xs]`
2023-05-28 02:13:52 +0000waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 248 seconds)
2023-05-28 02:15:51 +0000 <int-e> > sequence (1, Just 2)
2023-05-28 02:15:52 +0000 <lambdabot> Just (1,2)
2023-05-28 02:16:18 +0000 <talismanick> probie: oh, perfect
2023-05-28 02:16:19 +0000 <talismanick> thanks
2023-05-28 02:17:22 +0000 <int-e> :t catMaybes . map sequence
2023-05-28 02:17:23 +0000 <lambdabot> Traversable t => [t (Maybe a)] -> [t a]
2023-05-28 02:18:19 +0000 <int-e> (really not worth it; it's barely shorter than the list comprehension and much harder to understand)
2023-05-28 02:18:24 +0000 <[Leary]> :t mapMaybe sequenceA
2023-05-28 02:18:25 +0000 <lambdabot> Traversable t => [t (Maybe a)] -> [t a]
2023-05-28 02:19:11 +0000 <probie> :t concatMap (maybe [] pure) . map sequence -- if you don't want to import Data.Maybe
2023-05-28 02:19:12 +0000 <lambdabot> Traversable t => [t (Maybe a)] -> [t a]
2023-05-28 02:19:22 +0000 <[Leary]> Seems pretty straightforward to me, but list comprehensions that leverage pattern matching to filter do have a special charm.
2023-05-28 02:19:30 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b) (Ping timeout: 250 seconds)
2023-05-28 02:19:34 +0000 <int-e> :t (>>= maybe [] pure . sequence)
2023-05-28 02:19:35 +0000 <lambdabot> Traversable t => [t (Maybe a)] -> [t a]
2023-05-28 02:21:00 +0000 <probie> derp, `concatMap f . map g = concatMap (f . g)`. I must still be half asleep (despite it being midday in my timezone)
2023-05-28 02:21:22 +0000 <int-e> Relying on the fact that the Maybe is in the second component of the pair feels awkward.
2023-05-28 02:27:32 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2023-05-28 02:37:24 +0000 <probie> Is there a way to write something like `Arr n f g` where `Arr 0 f g = f -> g` and `Arr n f g = forall v_1 v_2 ... v_n . f v_1 v_2 ... v_n -> g v_1 v_2 ... v_n`?
2023-05-28 02:38:10 +0000 <probie> I get stuck because the kinds of `f` and `g` depends on the value of `n`, and I don't know if I can even express that in Haskell
2023-05-28 02:44:48 +0000phma(~phma@host-67-44-208-181.hnremote.net) (Read error: Connection reset by peer)
2023-05-28 02:45:15 +0000phma(phma@2001:5b0:2172:dd28:fe45:160f:de72:96fc)
2023-05-28 02:47:07 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-05-28 02:47:07 +0000finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-05-28 02:47:07 +0000finn_elijaFinnElija
2023-05-28 02:54:44 +0000phma(phma@2001:5b0:2172:dd28:fe45:160f:de72:96fc) (Read error: Connection reset by peer)
2023-05-28 02:55:08 +0000phma(phma@2001:5b0:2172:dd28:fe45:160f:de72:96fc)
2023-05-28 02:58:56 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2023-05-28 02:59:21 +0000ec(~ec@gateway/tor-sasl/ec)
2023-05-28 03:00:23 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 03:01:52 +0000td_(~td@i53870921.versanet.de) (Ping timeout: 248 seconds)
2023-05-28 03:02:12 +0000 <Axman6> well you certainly can using template haskell, you'd need quite a bit of machinery make that work though. feels posssible, but hard
2023-05-28 03:03:56 +0000td_(~td@i53870919.versanet.de)
2023-05-28 03:04:28 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
2023-05-28 03:07:33 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b)
2023-05-28 03:09:35 +0000pointlessslippe1(~pointless@212.82.82.3) (Ping timeout: 240 seconds)
2023-05-28 03:10:08 +0000johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
2023-05-28 03:14:53 +0000 <probie> I'm not too interested in using template haskell (especially not until it plays nicely with cross compilation), and there's no pressing need to actually solve this
2023-05-28 03:18:10 +0000pointlessslippe1(~pointless@212.82.82.3)
2023-05-28 03:19:26 +0000 <probie> I just wanted to generalise recursion-schemes to work with functor-like things, so I could have some generic type like `cata :: FunctorN n f => FNAlg n f g -> (Arr n (FixN n f) g)`
2023-05-28 03:20:46 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 03:22:11 +0000 <probie> where `FNAlg n f g = forall v_1 v_2 .. v_n . f v_1 v_2 .. v_n g -> g v_1 v_2 .. v_n` and `newtype FixN n f v_1 v_2 .. v_n = FixN (f v_1 v_2 .. v_n (FixN f))`
2023-05-28 03:23:17 +0000 <probie> with template Haskell (or just manually writing it by hand, or using codegen), it's very easy to make these concrete types for a given value of n, but I was hoping there was some way to generalise it
2023-05-28 03:23:23 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-05-28 03:25:01 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
2023-05-28 03:27:28 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
2023-05-28 03:42:57 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b) (Remote host closed the connection)
2023-05-28 03:43:19 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b)
2023-05-28 03:53:44 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2023-05-28 03:54:10 +0000ec(~ec@gateway/tor-sasl/ec)
2023-05-28 03:55:11 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2023-05-28 03:58:15 +0000nick__(~nick@98.186.194.67)
2023-05-28 04:05:34 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 04:09:35 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
2023-05-28 04:31:36 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b) (Remote host closed the connection)
2023-05-28 04:31:59 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b)
2023-05-28 04:38:56 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b) (Ping timeout: 248 seconds)
2023-05-28 04:50:12 +0000nick___(~nick@98.186.194.67)
2023-05-28 04:52:25 +0000nick__(~nick@98.186.194.67) (Ping timeout: 240 seconds)
2023-05-28 05:08:53 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2023-05-28 05:12:35 +0000kriity(~kriity@c-76-155-235-153.hsd1.co.comcast.net)
2023-05-28 05:19:08 +0000vandita(~vandit@84-236-8-26.pool.digikabel.hu) (Ping timeout: 240 seconds)
2023-05-28 05:21:02 +0000vandita(~vandit@87-97-2-208.pool.digikabel.hu)
2023-05-28 05:28:15 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 265 seconds)
2023-05-28 05:34:00 +0000trev(~trev@user/trev)
2023-05-28 05:34:54 +0000Lycurgus(~juan@user/Lycurgus)
2023-05-28 05:36:39 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-05-28 05:37:05 +0000ubert(~Thunderbi@p548c91e0.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2023-05-28 05:37:12 +0000ub(~Thunderbi@p548c91e0.dip0.t-ipconnect.de)
2023-05-28 05:37:46 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 05:39:20 +0000hugo(znc@verdigris.lysator.liu.se)
2023-05-28 05:39:30 +0000ububert
2023-05-28 05:43:08 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
2023-05-28 05:50:05 +0000Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2023-05-28 05:50:17 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 05:51:05 +0000nick__(~nick@98.186.194.67)
2023-05-28 05:53:31 +0000nick___(~nick@98.186.194.67) (Ping timeout: 240 seconds)
2023-05-28 05:54:26 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 250 seconds)
2023-05-28 06:03:22 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 06:10:20 +0000xameer(~xameer@144.48.224.57)
2023-05-28 06:10:23 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
2023-05-28 06:10:37 +0000xameer(~xameer@144.48.224.57) (Client Quit)
2023-05-28 06:17:59 +0000gmg(~user@user/gehmehgeh)
2023-05-28 06:22:47 +0000_d0t(~{-d0t-}@user/-d0t-/x-7915216)
2023-05-28 06:23:45 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
2023-05-28 06:25:57 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-05-28 06:27:10 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 06:32:02 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 268 seconds)
2023-05-28 06:37:59 +0000shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 240 seconds)
2023-05-28 06:41:09 +0000kriity(~kriity@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Client closed)
2023-05-28 06:44:15 +0000CiaoSen(~Jura@145.224.73.17)
2023-05-28 06:49:59 +0000jero98772(~jero98772@190.158.28.80) (Ping timeout: 240 seconds)
2023-05-28 06:50:39 +0000nick__(~nick@98.186.194.67) (Read error: Connection reset by peer)
2023-05-28 06:51:16 +0000nick__(~nick@98.186.194.67)
2023-05-28 06:52:56 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 06:57:08 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
2023-05-28 07:03:32 +0000zaquest(~notzaques@5.130.79.72)
2023-05-28 07:04:03 +0000jero98772(~jero98772@2800:484:1d7f:5d36::1)
2023-05-28 07:19:54 +0000edmundnoble(sid229620@helmsley.irccloud.com) (Ping timeout: 265 seconds)
2023-05-28 07:22:12 +0000oo_miguel(~Thunderbi@77.252.47.84)
2023-05-28 07:22:12 +0000edmundnoble(sid229620@id-229620.helmsley.irccloud.com)
2023-05-28 07:23:40 +0000gurkenglas(~user@dynamic-046-114-179-235.46.114.pool.telefonica.de)
2023-05-28 07:26:11 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-05-28 07:29:36 +0000tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2023-05-28 07:32:32 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2023-05-28 07:33:14 +0000ec(~ec@gateway/tor-sasl/ec)
2023-05-28 07:36:08 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2023-05-28 07:37:48 +0000acidjnk(~acidjnk@p200300d6e7072f94f4c7cbffa0780c8e.dip0.t-ipconnect.de)
2023-05-28 07:41:54 +0000use-value1(~Thunderbi@2a00:23c6:8a03:2f01:e065:ca7f:f336:c3ee)
2023-05-28 07:44:04 +0000use-value(~Thunderbi@2a00:23c6:8a03:2f01:ddaa:9bff:1a38:a342) (Ping timeout: 265 seconds)
2023-05-28 07:44:04 +0000use-value1use-value
2023-05-28 07:44:33 +0000bigLama(~alex@2001:861:4f80:4a50:e792:bb46:1a0c:b1d2)
2023-05-28 07:45:11 +0000 <bigLama> Hi guys, are there people using the Diagrams library for making figures in scientific papers ?
2023-05-28 07:45:38 +0000 <bigLama> I wanted to try to use Haskell but Tikz has a larger community, better documentation for that
2023-05-28 07:46:02 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 268 seconds)
2023-05-28 07:46:17 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-05-28 07:48:06 +0000 <Hecate> I don't write scientific papers but in any case you will want to try out both
2023-05-28 07:49:46 +0000 <tomsmeding> probie: generating the long kinds is easy, kinds are types so you can use a type family lol
2023-05-28 07:49:55 +0000 <tomsmeding> it's the chain of foralls
2023-05-28 07:51:30 +0000 <bigLama> Hecate: I've contribute to some figures in the Diagrams gallery back then, but it looks like graph generation is a weak point of Diagrams
2023-05-28 07:51:51 +0000nick___(~nick@98.186.194.67)
2023-05-28 07:52:19 +0000 <bigLama> I've been playing with diagrams-graphviz yesterday but haven't been satisfied (node labels are not printed out in my tests)
2023-05-28 07:53:25 +0000nick__(~nick@98.186.194.67) (Ping timeout: 240 seconds)
2023-05-28 07:55:30 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-05-28 07:57:05 +0000tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 240 seconds)
2023-05-28 07:58:16 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:e958:834b:4d15:c9fd) (Remote host closed the connection)
2023-05-28 07:59:41 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 08:00:28 +0000jero98772(~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 240 seconds)
2023-05-28 08:02:32 +0000 <tomsmeding> probie: seems ghc doesn't like gadt pattern matches in a type family :p
2023-05-28 08:02:37 +0000 <tomsmeding> so don't think that's going to work
2023-05-28 08:04:01 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
2023-05-28 08:05:37 +0000tomboy64(~tomboy64@user/tomboy64)
2023-05-28 08:05:50 +0000chomwitt(~chomwitt@2a02:587:7a16:6700:1ac0:4dff:fedb:a3f1)
2023-05-28 08:08:57 +0000CiaoSen(~Jura@145.224.73.17) (Ping timeout: 256 seconds)
2023-05-28 08:13:41 +0000jero98772(~jero98772@2800:484:1d7f:5d36::1)
2023-05-28 08:20:28 +0000gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-05-28 08:22:28 +0000vandita(~vandit@87-97-2-208.pool.digikabel.hu) (Ping timeout: 240 seconds)
2023-05-28 08:24:26 +0000vandita(~vandit@92-249-194-88.pool.digikabel.hu)
2023-05-28 08:24:59 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-05-28 08:25:20 +0000gmg(~user@user/gehmehgeh)
2023-05-28 08:33:05 +0000talismanick(~user@76.133.152.122) (Ping timeout: 246 seconds)
2023-05-28 08:41:39 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 08:43:18 +0000slack1256(~slack1256@181.43.60.199) (Remote host closed the connection)
2023-05-28 08:45:35 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
2023-05-28 08:48:18 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-05-28 08:49:12 +0000eugenrh(~eugenrh@2a02:2f08:4707:3e00:454b:9ac4:8552:8de8)
2023-05-28 08:52:12 +0000nick__(~nick@98.186.194.67)
2023-05-28 08:53:59 +0000nick___(~nick@98.186.194.67) (Ping timeout: 240 seconds)
2023-05-28 08:54:29 +0000Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2023-05-28 08:54:31 +0000DoxYourselfNow(~DoxYourse@030-171-099-087.dynamic.caiway.nl)
2023-05-28 08:55:31 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
2023-05-28 08:57:21 +0000Lord_of_Life_Lord_of_Life
2023-05-28 08:58:34 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6539:794e:79f5:ac83)
2023-05-28 09:00:00 +0000econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2023-05-28 09:00:48 +0000_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-05-28 09:02:50 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6539:794e:79f5:ac83) (Ping timeout: 246 seconds)
2023-05-28 09:04:02 +0000Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-05-28 09:38:34 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-05-28 09:53:20 +0000nick___(~nick@98.186.194.67)
2023-05-28 09:55:11 +0000nick__(~nick@98.186.194.67) (Ping timeout: 240 seconds)
2023-05-28 10:43:02 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 10:45:55 +0000kritzefitz(~kritzefit@debian/kritzefitz) (Ping timeout: 256 seconds)
2023-05-28 10:47:28 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 248 seconds)
2023-05-28 10:50:02 +0000kritzefitz(~kritzefit@debian/kritzefitz)
2023-05-28 10:53:19 +0000nick__(~nick@98.186.194.67)
2023-05-28 10:55:25 +0000nick___(~nick@98.186.194.67) (Ping timeout: 240 seconds)
2023-05-28 10:55:35 +0000Pickchea(~private@user/pickchea)
2023-05-28 10:56:12 +0000_d0t(~{-d0t-}@user/-d0t-/x-7915216) (Konversation terminated!)
2023-05-28 11:06:58 +0000enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-05-28 11:15:05 +0000gurkenglas(~user@dynamic-046-114-179-235.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
2023-05-28 11:15:23 +0000kritzefitz(~kritzefit@debian/kritzefitz) (Ping timeout: 256 seconds)
2023-05-28 11:16:50 +0000enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2023-05-28 11:17:58 +0000machinedgod(~machinedg@93-138-72-188.adsl.net.t-com.hr)
2023-05-28 11:27:18 +0000gurkenglas(~user@dynamic-046-114-179-235.46.114.pool.telefonica.de)
2023-05-28 11:35:55 +0000kluk(~arrowhead@cpe-74-66-76-151.nyc.res.rr.com) (Remote host closed the connection)
2023-05-28 11:43:06 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 11:44:59 +0000accord(uid568320@id-568320.hampstead.irccloud.com)
2023-05-28 11:47:36 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 250 seconds)
2023-05-28 11:48:53 +0000__monty__(~toonn@user/toonn)
2023-05-28 11:53:35 +0000nick___(~nick@98.186.194.67)
2023-05-28 11:55:35 +0000nick__(~nick@98.186.194.67) (Ping timeout: 240 seconds)
2023-05-28 11:56:04 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-05-28 11:56:09 +0000kritzefitz(~kritzefit@debian/kritzefitz)
2023-05-28 12:04:39 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-05-28 12:09:01 +0000 <jade[m]> when I have lenses for two records where one contains a value of the other, how do I modify a value of the nested one?
2023-05-28 12:10:34 +0000 <Axman6> can you give a more concrete example?
2023-05-28 12:10:56 +0000 <Axman6> that just sounds like composing two lenses to me, so i'm probably not understanding the question
2023-05-28 12:11:08 +0000 <Axman6> :t over
2023-05-28 12:11:09 +0000 <lambdabot> ASetter s t a b -> (a -> b) -> s -> t
2023-05-28 12:11:41 +0000 <Axman6> "over (foo . bar) f" feels like what're after?
2023-05-28 12:12:24 +0000Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-05-28 12:12:31 +0000 <Axman6> a.k.a myData & foo . bar %~ f
2023-05-28 12:15:39 +0000 <jade[m]> yeah that's what I tried but I think previously for this case I needed a zoom first
2023-05-28 12:15:54 +0000 <jade[m]> I suppose I don't know the difference between zoom and view
2023-05-28 12:16:22 +0000 <jade[m]> I really don't know what I'm doing
2023-05-28 12:17:22 +0000 <Axman6> I've never used zoom
2023-05-28 12:17:33 +0000 <Axman6> I would be surprised if you need it
2023-05-28 12:17:59 +0000 <jade[m]> brick seems to require it for this
2023-05-28 12:18:17 +0000 <jade[m]> `appEvent :: BrickEvent Name () -> EventM Name ApplicationState ()` this is the signature of the function I'm writing
2023-05-28 12:18:26 +0000 <jade[m]> and I want to modify the ApplicationState
2023-05-28 12:18:46 +0000 <Axman6> that feels like you want the stateful functions then
2023-05-28 12:18:48 +0000 <jade[m]> which I'm super confused by in the first place because it's not passed in?!
2023-05-28 12:18:54 +0000 <jade[m]> but it somehow worked with zoom
2023-05-28 12:19:01 +0000 <Axman6> trhey usually have a = instead of a ~
2023-05-28 12:19:13 +0000 <maralorn> What’s the best way to convert "Decimal -> Scientific"? (knowing that I just rounded the decimal to 2 digits behind the dot.)
2023-05-28 12:19:22 +0000 <geekosaur> sure it's passed in, invisibly. state monad style
2023-05-28 12:19:36 +0000 <Axman6> is there an inst5ance for MonadState s (EventM name s)?
2023-05-28 12:19:47 +0000 <jade[m]> I think so, yes
2023-05-28 12:19:58 +0000 <Axman6> if so, yopu can use do ...; foo . bar %= f; ...
2023-05-28 12:20:33 +0000 <Axman6> maralorn: does fromRational work? where does Decimal come from?
2023-05-28 12:21:04 +0000perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.8)
2023-05-28 12:21:37 +0000 <jade[m]> oh wait, fuck
2023-05-28 12:21:38 +0000 <maralorn> Axman6: Yes, I currently use "fromRational . toRational". Just not sure if thats nice.
2023-05-28 12:21:44 +0000 <jade[m]> I had my composition the wrong way
2023-05-28 12:22:00 +0000enoq(~enoq@194-208-133-121.lampert.tv)
2023-05-28 12:22:21 +0000 <jade[m]> because I read foo . bar as foo after bar, but here you need the inner lens first (?)
2023-05-28 12:22:22 +0000 <Axman6> that'll do it :)
2023-05-28 12:22:29 +0000 <Axman6> yes
2023-05-28 12:22:48 +0000 <Axman6> Think of lens as oo style field access
2023-05-28 12:24:11 +0000 <jade[m]> mhm that makes sense
2023-05-28 12:24:23 +0000 <Axman6> it's worth learning how lens is actually implemented, the "backwards" composition actually makes sense when you realise it's functions of the form (a -> f b) -> (s -> f t)
2023-05-28 12:24:27 +0000 <jade[m]> I think this is a good sign for my fp thinking though :P
2023-05-28 12:25:27 +0000Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::aaf)
2023-05-28 12:25:58 +0000 <jade[m]> lenses are starting to make sense and ... actually feel pretty fucking useful
2023-05-28 12:26:04 +0000 <ncf> note that, if you wanted to *get* the foo.bar out of an object, with usual field accessors you'd write bar . foo, but if you wanted to *modify* the foo.bar of an object you're write something like modifyFoo . modifyBar
2023-05-28 12:26:12 +0000 <jade[m]> ok
2023-05-28 12:26:20 +0000 <ncf> (.) on van Laarhoven lenses is kind of magic in that it *combines* both directions
2023-05-28 12:26:49 +0000 <jade[m]> I should read some of the background of this
2023-05-28 12:26:58 +0000 <jade[m]> I think the general idea is called 'optics' right?
2023-05-28 12:27:14 +0000 <ncf> yes
2023-05-28 12:27:20 +0000 <Axman6> I hope there's some3 good videos out there somewhere, I'm sure Ed's done a few talks on lenses
2023-05-28 12:28:42 +0000 <ncf> i think the original article is https://www.twanvl.nl/blog/haskell/cps-functional-references , but https://kseo.github.io/posts/2016-12-10-encodings-of-lense.html might be more readable
2023-05-28 12:29:03 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 12:29:26 +0000 <jade[m]> thank you very much
2023-05-28 12:33:27 +0000wootehfoot(~wootehfoo@user/wootehfoot)
2023-05-28 12:34:14 +0000pavonia(~user@user/siracusa) (Read error: Connection reset by peer)
2023-05-28 12:34:33 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 265 seconds)
2023-05-28 12:34:45 +0000machinedgod(~machinedg@93-138-72-188.adsl.net.t-com.hr) (Ping timeout: 240 seconds)
2023-05-28 12:36:13 +0000Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::aaf) (Quit: Where is it)
2023-05-28 12:39:28 +0000acidjnk(~acidjnk@p200300d6e7072f94f4c7cbffa0780c8e.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-05-28 12:46:15 +0000pavonia(~user@user/siracusa)
2023-05-28 12:48:36 +0000monoidal(~monoidal@2001:861:3f42:1b60:93b1:31be:ae42:8ec9) (Quit: Client closed)
2023-05-28 12:49:06 +0000monoidal(~monoidal@2001:861:3f42:1b60:b032:576b:1cee:47f4)
2023-05-28 12:54:18 +0000nick__(~nick@98.186.194.67)
2023-05-28 12:56:56 +0000nick___(~nick@98.186.194.67) (Ping timeout: 250 seconds)
2023-05-28 13:03:48 +0000gurkenglas(~user@dynamic-046-114-179-235.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
2023-05-28 13:04:39 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 13:06:03 +0000gurkenglas(~user@dynamic-046-114-177-130.46.114.pool.telefonica.de)
2023-05-28 13:09:08 +0000bigLama(~alex@2001:861:4f80:4a50:e792:bb46:1a0c:b1d2) (Remote host closed the connection)
2023-05-28 13:09:10 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 268 seconds)
2023-05-28 13:14:18 +0000titibandit(~titibandi@user/titibandit)
2023-05-28 13:24:35 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 13:29:04 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 248 seconds)
2023-05-28 13:31:57 +0000gurkenglas(~user@dynamic-046-114-177-130.46.114.pool.telefonica.de) (Ping timeout: 256 seconds)
2023-05-28 13:35:07 +0000xameer(~xameer@144.48.224.57)
2023-05-28 13:38:11 +0000xameer(~xameer@144.48.224.57) (Client Quit)
2023-05-28 13:39:31 +0000eugenrh(~eugenrh@2a02:2f08:4707:3e00:454b:9ac4:8552:8de8) (Ping timeout: 240 seconds)
2023-05-28 13:41:18 +0000eugenrh(~eugenrh@2a02:2f08:4b00:6a00:ab5b:20eb:9a4c:afc)
2023-05-28 13:45:28 +0000lewisje(~lewisje@74.215.20.3)
2023-05-28 13:46:28 +0000eugenrh(~eugenrh@2a02:2f08:4b00:6a00:ab5b:20eb:9a4c:afc) (Ping timeout: 240 seconds)
2023-05-28 13:48:30 +0000eugenrh(~eugenrh@2a02:2f08:4d13:f600:b5b6:b254:6944:c58b)
2023-05-28 13:53:25 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 13:54:41 +0000nick___(~nick@98.186.194.67)
2023-05-28 13:56:23 +0000nick__(~nick@98.186.194.67) (Ping timeout: 240 seconds)
2023-05-28 13:56:26 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-05-28 13:56:55 +0000gemmaro(~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc)
2023-05-28 13:58:01 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
2023-05-28 14:01:46 +0000perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2023-05-28 14:05:29 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6c9c:9af5:8708:5fc6)
2023-05-28 14:07:41 +0000shapr(~user@2600:1700:c640:3100:6ac8:cf17:6356:ff5f)
2023-05-28 14:08:51 +0000gurkenglas(~user@dynamic-046-114-177-130.46.114.pool.telefonica.de)
2023-05-28 14:09:55 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6c9c:9af5:8708:5fc6) (Ping timeout: 256 seconds)
2023-05-28 14:10:45 +0000nick___(~nick@98.186.194.67) (Ping timeout: 240 seconds)
2023-05-28 14:14:55 +0000Katarushisu(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2023-05-28 14:15:28 +0000freeside(~mengwong@103.252.202.189)
2023-05-28 14:20:45 +0000freeside(~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
2023-05-28 14:25:33 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-05-28 14:33:11 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-05-28 14:39:39 +0000shriekingnoise(~shrieking@186.137.175.87)
2023-05-28 14:51:36 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2023-05-28 14:59:13 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-05-28 14:59:43 +0000gemmaro(~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc) (Remote host closed the connection)
2023-05-28 15:01:49 +0000 <jade[m]> <ncf> "i think the original article..." <- amazing, thank you
2023-05-28 15:04:32 +0000zmt00(~zmt00@user/zmt00) (Ping timeout: 248 seconds)
2023-05-28 15:06:26 +0000stef204(~stef204@user/stef204)
2023-05-28 15:08:17 +0000Pickchea(~private@user/pickchea)
2023-05-28 15:18:20 +0000 <ManofLetters[m]> hi! what am I missing; why doesn't this work?
2023-05-28 15:18:20 +0000 <ManofLetters[m]> ```hs
2023-05-28 15:18:20 +0000 <ManofLetters[m]> ~/r/horde-ad$ ghci-9.6.1
2023-05-28 15:18:20 +0000 <ManofLetters[m]> ...(truncated)
2023-05-28 15:19:01 +0000 <geekosaur> the bridge ate that. can you use a pastebin?
2023-05-28 15:19:04 +0000 <geekosaur> @where paste
2023-05-28 15:19:04 +0000 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2023-05-28 15:19:12 +0000 <ManofLetters[m]> sorry
2023-05-28 15:19:32 +0000 <geekosaur> apparently it no longer pastebins, it just outputs the first line or so and truncates
2023-05-28 15:19:35 +0000 <ManofLetters[m]> https://paste.tomsmeding.com/okqxry2D
2023-05-28 15:19:38 +0000 <geekosaur> (boo hiss)
2023-05-28 15:19:43 +0000 <ManofLetters[m]> :)
2023-05-28 15:21:07 +0000 <geekosaur> `*` doesn't match `* -> *`
2023-05-28 15:22:12 +0000 <geekosaur> that is, `k -> *` won't match `* -> * -> *`
2023-05-28 15:22:26 +0000 <ManofLetters[m]> I'd expect `:k Compose Either` to be `(* -> (* -> *)) -> * -> *`
2023-05-28 15:22:26 +0000 <maralorn> Man of Letters: Either isn’t a functor. `Either a` is a functor forall a
2023-05-28 15:22:54 +0000 <geekosaur> it associates rightward, so k can't match against * -> *
2023-05-28 15:23:05 +0000 <geekosaur> and * is not a wildcaard, it means Type
2023-05-28 15:23:17 +0000 <geekosaur> and Type -> Type doesn't match Type
2023-05-28 15:23:30 +0000 <ManofLetters[m]> oh, dear, so which of this zoo of type operators do I need to wrap it in? https://hackage.haskell.org/package/bifunctors-5.6.1/docs/Data-Bifunctor-Wrapped.html
2023-05-28 15:23:32 +0000enoq(~enoq@194-208-133-121.lampert.tv) (Quit: enoq)
2023-05-28 15:24:08 +0000tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2023-05-28 15:25:10 +0000 <geekosaur> I haven't leveled up that far yet 😕
2023-05-28 15:25:31 +0000 <ManofLetters[m]> or all is lost, because Either is not a bifunctor either?
2023-05-28 15:25:34 +0000 <ManofLetters[m]> heh, thanks
2023-05-28 15:26:05 +0000 <monoidal> Either is a bifunctor
2023-05-28 15:28:45 +0000 <monoidal> perhaps you're looking for https://hackage.haskell.org/package/bifunctors-5.6.1/docs/Data-Bifunctor-Sum.html
2023-05-28 15:32:05 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2023-05-28 15:33:00 +0000 <ManofLetters[m]> ok, thanks; what I really need to is composing two type operators `F1 : * -> *` and `F2: * -> Nat -> *` so that I get `Compose F1 F2 :: * -> Nat -> *` and my idea to do this was `Compose (Compose F1) F2`
2023-05-28 15:33:17 +0000 <ManofLetters[m]> F1 is a datatype, F2 is a type variable (class parameter)
2023-05-28 15:33:49 +0000 <ManofLetters[m]> blurg; let me edit:
2023-05-28 15:34:11 +0000 <ManofLetters[m]> * ok, thanks; what I really need to is composing two type operators `F1 : * -> *` and `F2: * -> Nat -> *` so that I get a result of kind `* -> Nat -> *` and my idea to do this was `Compose (Compose F1) F2`
2023-05-28 15:36:12 +0000 <ManofLetters[m]> and I guess in simply typed lambda calculus it would work (actually I have to check); I knew there are restrictions to partial application (of type families at least) and non-top-level abstraction, but I didn't know we are otherwise so far from simply typed lambda calculus on the level of types
2023-05-28 15:38:04 +0000 <monoidal> IIUIC you'd like https://hackage.haskell.org/package/bifunctors-5.6.1/docs/Data-Bifunctor-Tannen.html
2023-05-28 15:38:32 +0000 <ManofLetters[m]> yes, I think it works fine on value level: `f a b = (.) ((.) a) b :: (b -> c) -> (a1 -> a2 -> b) -> a1 -> a2 -> c`
2023-05-28 15:38:47 +0000 <ManofLetters[m]> ok, ta; will have a look later on; cheers!
2023-05-28 15:40:31 +0000Alex_test(~al_test@178.34.163.104) (Ping timeout: 240 seconds)
2023-05-28 15:41:35 +0000AlexZenon(~alzenon@178.34.163.104) (Ping timeout: 240 seconds)
2023-05-28 15:46:44 +0000Alex_test(~al_test@178.34.163.104)
2023-05-28 15:46:48 +0000AlexZenon(~alzenon@178.34.163.104)
2023-05-28 15:53:59 +0000AlexZenon(~alzenon@178.34.163.104) (Ping timeout: 240 seconds)
2023-05-28 15:54:22 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-05-28 15:54:23 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-05-28 15:54:23 +0000wroathe(~wroathe@user/wroathe)
2023-05-28 15:54:59 +0000scrungus(~scrungus@bras-base-aurron9127w-grc-63-70-24-87-21.dsl.bell.ca)
2023-05-28 15:55:55 +0000AlexZenon(~alzenon@178.34.163.104)
2023-05-28 16:03:25 +0000Katarushisu(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
2023-05-28 16:03:27 +0000myxokeph_(~myxokeph@cpe-65-28-251-121.cinci.res.rr.com)
2023-05-28 16:05:16 +0000titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-05-28 16:09:09 +0000myxokeph_myxwell
2023-05-28 16:09:36 +0000myxwell(~myxokeph@cpe-65-28-251-121.cinci.res.rr.com) (Quit: myxwell)
2023-05-28 16:09:49 +0000myxokeph_(~myxokeph@cpe-65-28-251-121.cinci.res.rr.com)
2023-05-28 16:11:09 +0000myxokeph_myxwell
2023-05-28 16:12:19 +0000myxwellmyxos
2023-05-28 16:15:19 +0000myxos(~myxokeph@cpe-65-28-251-121.cinci.res.rr.com) (Remote host closed the connection)
2023-05-28 16:15:32 +0000myxokeph_(~myxokeph@cpe-65-28-251-121.cinci.res.rr.com)
2023-05-28 16:15:42 +0000myxokeph_myxos
2023-05-28 16:17:18 +0000Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-05-28 16:17:26 +0000econo(uid147250@user/econo)
2023-05-28 16:17:53 +0000mechap(~mechap@user/mechap) (Ping timeout: 246 seconds)
2023-05-28 16:18:33 +0000ddellacosta(~ddellacos@146.70.185.10) (Ping timeout: 256 seconds)
2023-05-28 16:19:07 +0000myxos(~myxokeph@cpe-65-28-251-121.cinci.res.rr.com) (Client Quit)
2023-05-28 16:19:22 +0000myxokeph_(~myxokeph@cpe-65-28-251-121.cinci.res.rr.com)
2023-05-28 16:19:25 +0000myxokeph_myxokephale
2023-05-28 16:20:04 +0000myxokephalemyxos
2023-05-28 16:21:08 +0000myxos(~myxokeph@cpe-65-28-251-121.cinci.res.rr.com) (Client Quit)
2023-05-28 16:21:22 +0000myxokeph_(~myxokeph@cpe-65-28-251-121.cinci.res.rr.com)
2023-05-28 16:21:33 +0000myxokeph_myxos
2023-05-28 16:22:33 +0000myxosmyxokephale
2023-05-28 16:22:54 +0000myxokephalemyxos
2023-05-28 16:22:59 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 264 seconds)
2023-05-28 16:30:27 +0000mechap(~mechap@user/mechap)
2023-05-28 16:33:11 +0000ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2023-05-28 16:33:48 +0000ec(~ec@gateway/tor-sasl/ec)
2023-05-28 16:34:14 +0000__monty__(~toonn@user/toonn)
2023-05-28 16:37:14 +0000jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2023-05-28 16:37:24 +0000phma_(~phma@host-67-44-208-181.hnremote.net)
2023-05-28 16:37:25 +0000biberu\(~biberu@user/biberu)
2023-05-28 16:37:30 +0000juri__(~juri@79.140.121.73)
2023-05-28 16:37:49 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2023-05-28 16:37:57 +0000chexum(~quassel@gateway/tor-sasl/chexum)
2023-05-28 16:38:04 +0000jinsun(~jinsun@user/jinsun)
2023-05-28 16:40:01 +0000phma(phma@2001:5b0:2172:dd28:fe45:160f:de72:96fc) (Ping timeout: 240 seconds)
2023-05-28 16:40:29 +0000juri_(~juri@84-19-175-187.pool.ovpn.com) (Ping timeout: 256 seconds)
2023-05-28 16:40:29 +0000biberu(~biberu@user/biberu) (Ping timeout: 256 seconds)
2023-05-28 16:40:30 +0000biberu\biberu
2023-05-28 16:40:38 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6c9c:9af5:8708:5fc6)
2023-05-28 16:41:05 +0000juri__(~juri@79.140.121.73) (Read error: Connection reset by peer)
2023-05-28 16:41:44 +0000pharonix71(~pharonix7@user/pharonix71) (Ping timeout: 240 seconds)
2023-05-28 16:42:30 +0000juri_(~juri@79.140.121.73)
2023-05-28 16:43:04 +0000 <tomsmeding> ManofLetters[m]: it doesn't have anything to do with limits to partial application
2023-05-28 16:43:04 +0000juri_(~juri@79.140.121.73) (Read error: Connection reset by peer)
2023-05-28 16:43:17 +0000 <tomsmeding> % :k Data.Functor.Compose.Compose
2023-05-28 16:43:17 +0000 <yahb2> Data.Functor.Compose.Compose :: forall {k} {k1}. ; (k -> *) -> (k1 -> k) -> k1 -> *
2023-05-28 16:43:25 +0000 <tomsmeding> first argument is of kind 'k -> *'
2023-05-28 16:43:30 +0000 <tomsmeding> % :k Either
2023-05-28 16:43:30 +0000 <yahb2> Either :: * -> * -> *
2023-05-28 16:43:41 +0000 <tomsmeding> * -> * -> * == * -> (* -> *)
2023-05-28 16:43:46 +0000 <tomsmeding> (* -> *) doesn't unify with *
2023-05-28 16:43:54 +0000pharonix71(~pharonix7@user/pharonix71)
2023-05-28 16:44:10 +0000 <tomsmeding> you'd want a Compose' with kind (k -> r) -> (k1 -> k) -> k1 -> r
2023-05-28 16:44:24 +0000 <tomsmeding> but this is not a data type because a data type lives in * :p
2023-05-28 16:44:30 +0000 <tomsmeding> hence the problem
2023-05-28 16:45:25 +0000freeside_(~mengwong@103.252.202.189)
2023-05-28 16:46:02 +0000tomsmedingsaw another person unrelatedly asking about type families polymorphic in the number of type arguments this morning https://ircbrowse.tomsmeding.com/day/lchaskell/2023/05/28?id=971947#trid971947
2023-05-28 16:46:10 +0000 <tomsmeding> unexpectedly related
2023-05-28 16:47:30 +0000juri_(~juri@84-19-175-187.pool.ovpn.com)
2023-05-28 16:49:28 +0000freeside_(~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
2023-05-28 16:50:28 +0000stef204(~stef204@user/stef204) (Ping timeout: 240 seconds)
2023-05-28 16:54:58 +0000szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-05-28 16:56:07 +0000bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2023-05-28 17:03:24 +0000zmt00(~zmt00@user/zmt00)
2023-05-28 17:03:25 +0000stef204(~stef204@user/stef204)
2023-05-28 17:03:31 +0000vandita(~vandit@92-249-194-88.pool.digikabel.hu) (Ping timeout: 240 seconds)
2023-05-28 17:05:26 +0000vandita(~vandit@84-236-10-38.pool.digikabel.hu)
2023-05-28 17:06:21 +0000 <ManofLetters[m]> doh, tomsmeding, thank you, so the contrived Either example was just my silly mistake; actually geekosaurpointed to it as well
2023-05-28 17:08:48 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
2023-05-28 17:09:08 +0000 <ManofLetters[m]> oh, but the real error I'm getting is caused by the same thing, the * in Compose
2023-05-28 17:27:23 +0000hugo(znc@verdigris.lysator.liu.se)
2023-05-28 17:28:47 +0000 <ManofLetters[m]> but try as I may I'm not able to make this work:
2023-05-28 17:28:49 +0000 <ManofLetters[m]> type Compose' :: (k -> r) -> (l -> k) -> l -> r
2023-05-28 17:28:49 +0000 <ManofLetters[m]> data Compose' f g a = Compose' (f (g a))
2023-05-28 17:29:20 +0000 <ManofLetters[m]> nor with a newtype
2023-05-28 17:29:46 +0000 <ManofLetters[m]> before I start accusing Haskell of being inferior to even simply typed lambda calculus, let me wait for a sage hacker to have a look...
2023-05-28 17:29:47 +0000 <c_wraith> well. no. you can't have constructors if the end result isn't Type
2023-05-28 17:30:09 +0000 <ManofLetters[m]> ;(
2023-05-28 17:31:11 +0000 <monochrom> <come-join-the-dark-side>May I interest you in a really dependent type system such as the Lean prover? >:) </come-join-the-dark-side>
2023-05-28 17:31:46 +0000monochromrecently begun writing printf in that. >:D
2023-05-28 17:33:05 +0000 <ManofLetters[m]> no, but in fact I'd just like to write a working program, nothing more, it's just that a friend proposed an innocent little refactoring to my code and that's how I found myself in this pickle
2023-05-28 17:35:39 +0000 <c_wraith> Well, it's just the way GHC uses the kind system. All values have a type with kind Type.
2023-05-28 17:36:11 +0000 <c_wraith> You can imagine other systems, but GHC went the simple direction there.
2023-05-28 17:36:41 +0000 <ManofLetters[m]> yes, I'm not complaining (this time), I'm grateful for what I have; let me inline the two Composes instead...
2023-05-28 17:37:11 +0000 <monoidal> data family Comp :: (k -> r) -> (l -> k) -> l -> r
2023-05-28 17:37:12 +0000 <monoidal> data instance Comp f g x = Comp (f (g x))
2023-05-28 17:37:33 +0000 <monoidal> you can add more instances, like data instance Comp f g x y = Comp2 (f (g x) y)
2023-05-28 17:37:40 +0000 <monoidal> it's still a hack
2023-05-28 17:38:18 +0000chomwitt(~chomwitt@2a02:587:7a16:6700:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
2023-05-28 17:39:26 +0000 <ManofLetters[m]> phew, this one works:
2023-05-28 17:39:26 +0000 <ManofLetters[m]> type Compose2 :: (r -> Type) -> (r -> n -> r) -> r -> n -> Type
2023-05-28 17:39:26 +0000 <ManofLetters[m]> newtype Compose2 f g r n = Compose2 {getCompose2 :: f (g r n)}
2023-05-28 17:39:58 +0000 <ManofLetters[m]> it's the same as Compose (Compose f) g, but inlined
2023-05-28 17:40:24 +0000 <ManofLetters[m]> monoidal: on, interesting
2023-05-28 17:40:27 +0000 <ManofLetters[m]> *oh
2023-05-28 17:41:12 +0000 <ManofLetters[m]> (actually Compose2 is a bit less general than the original expression, but it's exactly what I needed)
2023-05-28 17:43:43 +0000xameer(~xameer@144.48.224.57)
2023-05-28 17:43:49 +0000 <ManofLetters[m]> monoidal: and even partial application works, unlike for type synonym families; I wonder if I could use Comp inside quantified constraints, too
2023-05-28 17:44:35 +0000 <monoidal> your Compose2 is here https://hackage.haskell.org/package/bifunctors-5.5.5/docs/Data-Bifunctor-Tannen.html
2023-05-28 17:44:51 +0000 <ManofLetters[m]> no way :D
2023-05-28 17:46:55 +0000 <ManofLetters[m]> this is what you proposed a page ago but I haven't looked yet; you are right, it's the same, but without the explicit kind signature, because it's apparently not needed
2023-05-28 17:47:20 +0000xameer(~xameer@144.48.224.57) (Client Quit)
2023-05-28 17:47:22 +0000ManofLetters[m]feels silly again
2023-05-28 17:48:50 +0000 <ManofLetters[m]> yes, it works, thanks a lot everybody; it was all already there, in the most basic libraries :)
2023-05-28 17:48:54 +0000 <monoidal> I suspect there's no kind signature because the code predates that. With level of polymorphism, I'd prefer to write it
2023-05-28 17:49:09 +0000 <ManofLetters[m]> yeah, it helps; anyway, Haskell rocks
2023-05-28 17:52:42 +0000ddellacosta(~ddellacos@146.70.171.100)
2023-05-28 17:58:23 +0000ddellacosta(~ddellacos@146.70.171.100) (Ping timeout: 268 seconds)
2023-05-28 18:02:25 +0000phma_phma
2023-05-28 18:09:21 +0000ddellacosta(~ddellacos@146.70.165.170)
2023-05-28 18:11:58 +0000freeside_(~mengwong@103.252.202.189)
2023-05-28 18:13:43 +0000eugenrh(~eugenrh@2a02:2f08:4d13:f600:b5b6:b254:6944:c58b) (Quit: WeeChat 3.8)
2023-05-28 18:16:18 +0000freeside_(~mengwong@103.252.202.189) (Ping timeout: 250 seconds)
2023-05-28 18:18:40 +0000ddellacosta(~ddellacos@146.70.165.170) (Ping timeout: 248 seconds)
2023-05-28 18:21:35 +0000ddellacosta(~ddellacos@143.244.47.87)
2023-05-28 18:24:36 +0000accord(uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-05-28 18:28:25 +0000ddellacosta(~ddellacos@143.244.47.87) (Ping timeout: 240 seconds)
2023-05-28 18:29:51 +0000ddellacosta(~ddellacos@143.244.47.87)
2023-05-28 18:38:11 +0000eugenrh(~eugenrh@2a01:4f9:c011:265::1)
2023-05-28 18:42:58 +0000Sgeo(~Sgeo@user/sgeo)
2023-05-28 18:53:07 +0000machinedgod(~machinedg@93-138-72-188.adsl.net.t-com.hr)
2023-05-28 18:54:25 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-05-28 18:54:25 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-05-28 18:54:25 +0000wroathe(~wroathe@user/wroathe)
2023-05-28 18:56:05 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b)
2023-05-28 18:57:15 +0000cheater_(~Username@user/cheater)
2023-05-28 18:59:08 +0000cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2023-05-28 18:59:10 +0000cheater_cheater
2023-05-28 19:02:13 +0000cheater_(~Username@user/cheater)
2023-05-28 19:04:36 +0000cheater(~Username@user/cheater) (Ping timeout: 265 seconds)
2023-05-28 19:06:09 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-05-28 19:07:01 +0000cheater_(~Username@user/cheater) (Ping timeout: 265 seconds)
2023-05-28 19:09:42 +0000michalz(~michalz@185.246.204.75)
2023-05-28 19:16:31 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b) (Ping timeout: 240 seconds)
2023-05-28 19:20:04 +0000use-value(~Thunderbi@2a00:23c6:8a03:2f01:e065:ca7f:f336:c3ee) (Remote host closed the connection)
2023-05-28 19:20:23 +0000use-value(~Thunderbi@2a00:23c6:8a03:2f01:e065:ca7f:f336:c3ee)
2023-05-28 19:24:54 +0000machinedgod(~machinedg@93-138-72-188.adsl.net.t-com.hr) (Ping timeout: 265 seconds)
2023-05-28 19:30:08 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b)
2023-05-28 19:32:19 +0000Guest13(~Guest13@250.79-105-213.static.virginmediabusiness.co.uk)
2023-05-28 19:32:31 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2023-05-28 19:32:37 +0000trev(~trev@user/trev) (Quit: trev)
2023-05-28 19:32:41 +0000 <Guest13> idk monad transformers can i ask a question?
2023-05-28 19:33:08 +0000 <Guest13> how would i put a random number field into memory and use monads to encapsulate it?
2023-05-28 19:33:23 +0000 <Guest13> im worried the rng will be called each time it is used, and reporduce the same random sequence
2023-05-28 19:33:58 +0000 <Guest13> iiuc i can put it in a monad, and everything that opperates in that monad will have access to the already computed random numbers
2023-05-28 19:34:25 +0000 <Guest13> im not sure how that works
2023-05-28 19:35:30 +0000 <jade[m]> you're confusing a few concepts here I believe
2023-05-28 19:36:04 +0000 <jade[m]> it sounds like what you want it a random number generator sourced from the real world
2023-05-28 19:36:35 +0000 <jade[m]> which means you need a function that does that and will therefore run in the io monad
2023-05-28 19:36:40 +0000 <Guest13> no
2023-05-28 19:36:45 +0000 <Guest13> i meant exactly what i said
2023-05-28 19:37:01 +0000 <Guest13> except maybe the bit about transformers, which is what im unsure of
2023-05-28 19:37:17 +0000 <Guest13> the rng is not IO
2023-05-28 19:37:25 +0000 <Guest13> it runs from an Int seed
2023-05-28 19:37:34 +0000 <Guest13> but this is held fixed
2023-05-28 19:37:42 +0000 <Guest13> so there is no point recomputing the sequence
2023-05-28 19:37:48 +0000 <jade[m]> yes, then this will be the same sequence of numbers for every run
2023-05-28 19:38:04 +0000 <Guest13> (its just being used as random support, you want the support set held constant)
2023-05-28 19:38:15 +0000 <geekosaur> are they asking that, or if the sequence will be iterated?
2023-05-28 19:38:29 +0000 <Guest13> just that it not be reevaluated
2023-05-28 19:38:43 +0000 <jade[m]> it won't be if it's from a pure seed
2023-05-28 19:38:52 +0000 <jade[m]> just like haskell works in general
2023-05-28 19:39:01 +0000 <Guest13> exactly, so not IO, the monad is just to store the computed sequence in
2023-05-28 19:39:14 +0000 <jade[m]> why do you need a monad?
2023-05-28 19:39:23 +0000 <Guest13> i could compute it, and pass it in as arguments instead, there is no strict requirement
2023-05-28 19:39:31 +0000 <Guest13> but i dont actually know how to do the monadic version
2023-05-28 19:39:44 +0000 <jade[m]> why do you want a monad
2023-05-28 19:39:48 +0000 <Guest13> i think its more of a paradigm thing
2023-05-28 19:40:04 +0000 <Guest13> instead of having to handle the extra argument everywhere, that you would just work in that monad
2023-05-28 19:40:29 +0000 <jade[m]> it sounds like you want a state monad?
2023-05-28 19:40:38 +0000 <jade[m]> but im having difficulties following
2023-05-28 19:40:41 +0000 <Guest13> it might save the possibility to supply the wrong argument for example
2023-05-28 19:40:47 +0000 <geekosaur> it sounds a lot like MonadRandom which is basically State
2023-05-28 19:40:58 +0000 <Guest13> hmm, sounds promising
2023-05-28 19:41:24 +0000 <Guest13> but isnt that a way of handling the seed itself as the state?
2023-05-28 19:41:43 +0000 <Guest13> to save having to store the new seed returned with the random number
2023-05-28 19:41:50 +0000 <geekosaur> yes
2023-05-28 19:42:17 +0000 <geekosaur> but if you have a precomputed sequence, nothing stops the "seed" from being a list or Seq made from that sequence
2023-05-28 19:42:18 +0000 <Guest13> this would simply unfold a sequence, so the sequence of seeds is already hidden
2023-05-28 19:42:33 +0000 <Guest13> i could even supply it with [1..]
2023-05-28 19:42:48 +0000 <Guest13> not that this would be a good random support!
2023-05-28 19:42:51 +0000 <geekosaur> or you could do that with State directly
2023-05-28 19:42:52 +0000Pickchea(~private@user/pickchea)
2023-05-28 19:43:03 +0000 <Guest13> im not sure how you mean
2023-05-28 19:43:33 +0000 <Guest13> i mean, System.Random already gives "randoms"
2023-05-28 19:44:46 +0000 <Guest13> the seed im using is just (mkStdGen 0)
2023-05-28 19:46:29 +0000 <jade[m]> that's what I meant with a pure generation
2023-05-28 19:46:36 +0000 <Guest13> the problem is the number of randoms it produces is verry large, i really want to preclude the possibility its recomputed
2023-05-28 19:46:41 +0000 <jade[m]> what is your question right now?
2023-05-28 19:46:48 +0000 <Guest13> jade[m], as opposed to eg. randomRIO
2023-05-28 19:47:11 +0000 <Guest13> jade[m]: how would i put a random number field into memory and use monads to encapsulate it?
2023-05-28 19:47:27 +0000 <jade[m]> I don't understand the question
2023-05-28 19:47:37 +0000 <jade[m]> Guest13: yes
2023-05-28 19:47:50 +0000 <Guest13> maybe you could ask a clarifying question, or someone that understands could answer
2023-05-28 19:48:13 +0000 <monochrom> Where can I find the mathematical definition for "random number field"?
2023-05-28 19:48:19 +0000 <Guest13> oh, sorry
2023-05-28 19:48:26 +0000 <Guest13> i just mean the list of precomputed random values
2023-05-28 19:48:55 +0000 <Guest13> its not a "field", apologies
2023-05-28 19:48:57 +0000 <jade[m]> Guest13: what does "put into memory" mean in the context of haskell and why do you *need* monads
2023-05-28 19:49:24 +0000 <monochrom> How important is "precomputed"? As compared to "on-demand compute and save".
2023-05-28 19:49:37 +0000 <Guest13> the idea of using monads was to save the use of function arguments that could allow the user to supply incorrect values
2023-05-28 19:49:51 +0000 <monochrom> Or equivalently, is randomRs sufficient? If not, why?
2023-05-28 19:50:20 +0000 <Guest13> monochrom: the first evaluation, if i was going to pass it in as arguments everywhere, i would use a bang pattern to ensure it was calculated ahead of all further computation
2023-05-28 19:50:21 +0000 <monochrom> monad is going to be orthogonal to this.
2023-05-28 19:50:31 +0000stef204(~stef204@user/stef204) (Ping timeout: 240 seconds)
2023-05-28 19:50:43 +0000 <Guest13> randomRs is used. to generate the sequence, this is not the issue.
2023-05-28 19:50:53 +0000 <monochrom> At most, a suitable monad makes the code look nicer. But you can't make the semantics nicer or uglier.
2023-05-28 19:50:53 +0000 <jade[m]> Guest13: that's not what monads are used for, it sounds like you just want booleab guards
2023-05-28 19:51:15 +0000 <jade[m]> s/booleab/boolean
2023-05-28 19:51:20 +0000 <jade[m]> booleab sounds funny
2023-05-28 19:51:36 +0000 <monochrom> OK so just add bangs at the right place. Problem solved.
2023-05-28 19:51:55 +0000 <Guest13> precomputing the sequence was also not the problem
2023-05-28 19:52:11 +0000 <Guest13> its preventing the user from supplying a different sequence by mistake
2023-05-28 19:52:23 +0000 <jade[m]> I dont see where the issue is
2023-05-28 19:52:24 +0000 <Guest13> you work in this one monad, and never see the argument
2023-05-28 19:52:48 +0000 <Guest13> if the user could supply a different sequence, the support would be wrong
2023-05-28 19:53:01 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b) (Ping timeout: 240 seconds)
2023-05-28 19:53:09 +0000 <monochrom> OK, if you give your user some "foo :: Int", the user cannot pretend it's "foo :: String -> Int" and give it the wrong string.
2023-05-28 19:53:23 +0000 <Guest13> and it could potentially also open up the opportunity that the correct sequence could be recomputed needlessly
2023-05-28 19:53:39 +0000 <monochrom> So if you define "foo = bar "abc"" then you ensure that the correct string, "abc", is given.
2023-05-28 19:54:19 +0000 <monochrom> If you don't give your user a function, they can't pass the wrong parameter.
2023-05-28 19:54:24 +0000 <jade[m]> Guest13: why would that happen?
2023-05-28 19:54:47 +0000 <Guest13> idk, maybe the user is being awkward...
2023-05-28 19:54:54 +0000 <monochrom> But I suppose you could convert "foo :: Int" to "foo :: Identity Int" to rationalize bringing up monads.
2023-05-28 19:55:16 +0000 <jade[m]> Guest13: I can confirm I am indeed an awkward user
2023-05-28 19:55:24 +0000 <Guest13> im used to state monads being used to store values
2023-05-28 19:55:41 +0000 <Guest13> jade[m]: kind of paradoxical...
2023-05-28 19:55:47 +0000 <Guest13> :-D
2023-05-28 19:56:28 +0000 <Guest13> though maybe not State, since this would create the possible mutability
2023-05-28 19:56:42 +0000 <Guest13> thats better for changing stored values, like the seed
2023-05-28 19:56:52 +0000 <monochrom> OK enjoy the monlogue.
2023-05-28 19:57:02 +0000 <Guest13> im answering your question
2023-05-28 19:57:20 +0000 <Guest13> i dont know why you suggested Identity
2023-05-28 19:57:28 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b)
2023-05-28 19:57:41 +0000 <geekosaur> because there seems to be no reason for a monad there
2023-05-28 19:57:44 +0000 <jade[m]> I still don't know why you want to use a monad this badly
2023-05-28 19:57:47 +0000 <geekosaur> so only Identity makes any sense
2023-05-28 19:58:06 +0000 <monochrom> This is like Saul Kripke when he was a teenager all over again.
2023-05-28 19:58:11 +0000 <Guest13> the user is to draw the encapsulated value, from the encapsulating monad
2023-05-28 19:58:44 +0000 <jade[m]> but if you never encapsulate the value there is no way to decapsulate (is that a word?) it
2023-05-28 19:58:44 +0000 <monochrom> He went into ##logic and was like "How do I use the idea of multiverses to give semantics to modal logics and intuitionistic logics?"
2023-05-28 19:58:55 +0000 <jade[m]> s/way/need
2023-05-28 19:59:11 +0000 <monochrom> The regulars of ##logic were like "why multiverses? We already have Heyting algebras for intuitionistic logics..."
2023-05-28 19:59:23 +0000 <Guest13> the idea was to store the value at the start of the program
2023-05-28 19:59:24 +0000 <monochrom> He was like "But I insist to use multiverses".
2023-05-28 19:59:32 +0000 <Guest13> kind of like a global magic number
2023-05-28 19:59:36 +0000 <monochrom> Except in his case he was right. >:D
2023-05-28 19:59:48 +0000 <Guest13> but since its a computed value, i want to ensure its not recomputed each time its called
2023-05-28 20:00:05 +0000 <jade[m]> it's not if you pass it around
2023-05-28 20:00:25 +0000 <Guest13> which opens up the possibility for erroneous use
2023-05-28 20:00:31 +0000 <monochrom> And so he got hired as a prof at 22 or something
2023-05-28 20:00:45 +0000 <monochrom> And he didn't need a PhD for that!
2023-05-28 20:00:45 +0000 <Guest13> "work in this monad, and you will not have the possibility to use the wrong random support"
2023-05-28 20:00:59 +0000 <Guest13> probably why he never got one
2023-05-28 20:01:52 +0000 <Guest13> im not sure of any other way to guard the user against supplying an incorrect argument
2023-05-28 20:01:55 +0000 <ncf> Guest13: are you looking for Reader?
2023-05-28 20:02:03 +0000 <ncf> (i only skimmed the discussion)
2023-05-28 20:02:03 +0000 <Guest13> possibly?
2023-05-28 20:02:12 +0000enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-05-28 20:02:25 +0000 <Guest13> i never learned monad transformers properly, which is why i asked here
2023-05-28 20:02:39 +0000 <ncf> well, now you have something to learn about
2023-05-28 20:03:02 +0000 <Guest13> how would i use the Reader monad to encapsulate a constant value?
2023-05-28 20:03:18 +0000 <mauke> how wouldn't you?
2023-05-28 20:03:27 +0000 <Guest13> oh right thats basically all it does!
2023-05-28 20:03:56 +0000 <mauke> alternatively: 'ask' nicely :-)
2023-05-28 20:03:57 +0000 <ncf> (for some value of "constant")
2023-05-28 20:03:59 +0000 <Guest13> idk, should i put together a code example
2023-05-28 20:04:02 +0000stef204(~stef204@user/stef204)
2023-05-28 20:04:06 +0000 <ncf> that would help
2023-05-28 20:04:23 +0000 <Guest13> ok, im going to have to get snacks, ill return presently
2023-05-28 20:11:33 +0000 <Guest13> hmm, im encountering a second issue...
2023-05-28 20:11:46 +0000 <Guest13> the support length is supposed to be able to vary
2023-05-28 20:12:11 +0000 <Guest13> and in this case it would require recomputation (if it was extended, providing more random numbers)
2023-05-28 20:12:31 +0000 <Guest13> i cant use a bang pattern on an infinite sequence that is to be lazily evaluated, right?
2023-05-28 20:12:35 +0000 <monochrom> Hence randomRs as a lazy infinite list.
2023-05-28 20:13:00 +0000 <monochrom> ! on a lazy list just forces the 1st list node.
2023-05-28 20:13:03 +0000 <Guest13> i just want to make sure it only calculates more values when it needs to, and does not do recomputation in other cases
2023-05-28 20:13:08 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b) (Ping timeout: 240 seconds)
2023-05-28 20:13:19 +0000 <monochrom> It doesn't even force the number in that node. You need another ! for that.
2023-05-28 20:13:36 +0000 <jade[m]> why do you think it will recompute anything?
2023-05-28 20:13:44 +0000 <Guest13> monochrom: wait, does that imply its going to do basically what i need right out the box, that would be amazing!
2023-05-28 20:14:03 +0000 <Guest13> jade[m]: well it seems to in my current implementation
2023-05-28 20:15:19 +0000 <Guest13> brb
2023-05-28 20:22:57 +0000mei(~mei@user/mei) (Ping timeout: 248 seconds)
2023-05-28 20:23:29 +0000_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-05-28 20:26:40 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2023-05-28 20:27:39 +0000acidjnk(~acidjnk@p200300d6e7072f9441e69932c7e8d464.dip0.t-ipconnect.de)
2023-05-28 20:29:33 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-05-28 20:30:23 +0000waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-05-28 20:31:06 +0000ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2023-05-28 20:31:38 +0000ec(~ec@gateway/tor-sasl/ec)
2023-05-28 20:35:15 +0000waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 256 seconds)
2023-05-28 20:52:41 +0000bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2023-05-28 20:58:18 +0000 <Guest13> sorry got held up at the shops...
2023-05-28 21:07:11 +0000mc47(~mc47@xmonad/TheMC47)
2023-05-28 21:08:47 +0000michalz(~michalz@185.246.204.75) (Remote host closed the connection)
2023-05-28 21:09:49 +0000mei(~mei@user/mei)
2023-05-28 21:11:21 +0000pukeGuest7295
2023-05-28 21:11:21 +0000pyooque(~puke@user/puke)
2023-05-28 21:11:21 +0000Guest7295(~puke@user/puke) (Killed (molybdenum.libera.chat (Nickname regained by services)))
2023-05-28 21:11:21 +0000pyooquepuke
2023-05-28 21:13:56 +0000stef204(~stef204@user/stef204) (Quit: WeeChat 3.8)
2023-05-28 21:20:26 +0000zeenk(~zeenk@2a02:2f04:a105:f00::7fe)
2023-05-28 21:22:11 +0000d34df00d(~d34df00d@2600:1702:4f1b:7c10::f)
2023-05-28 21:23:00 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b)
2023-05-28 21:25:38 +0000mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2023-05-28 21:29:12 +0000phma(~phma@host-67-44-208-181.hnremote.net) (Read error: Connection reset by peer)
2023-05-28 21:29:41 +0000phma(~phma@2001:5b0:2172:dd28:7911:911:8af7:7b23)
2023-05-28 21:34:19 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-1912-96d1-9f83-aa24.rev.sfr.net) (Remote host closed the connection)
2023-05-28 21:34:46 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-655d-eb2e-b97d-d4ca.rev.sfr.net)
2023-05-28 21:37:42 +0000 <d34df00d> Hi!
2023-05-28 21:38:21 +0000 <jade[m]> hey 👋
2023-05-28 21:38:37 +0000 <d34df00d> I vaguely remember a repo with resolvers for Stack for recent GHC versions that the upstream stackage (even nightly) doesn't provide yet, but I can't find it straight away. What's that repo, if it's still updated?
2023-05-28 21:38:54 +0000 <d34df00d> Or perhaps there's a better way of trying out ghc 9.6 with some of my stack-based projects?
2023-05-28 21:42:03 +0000cheater(~Username@user/cheater)
2023-05-28 21:46:35 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b) (Remote host closed the connection)
2023-05-28 21:46:57 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b)
2023-05-28 21:51:57 +0000Guest21(~Guest21@072-182-045-094.res.spectrum.com)
2023-05-28 21:52:32 +0000vandita(~vandit@84-236-10-38.pool.digikabel.hu) (Ping timeout: 248 seconds)
2023-05-28 21:54:31 +0000vandita(~vandit@188-143-101-81.pool.digikabel.hu)
2023-05-28 21:56:41 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-05-28 22:01:27 +0000Benzi-Junior(~BenziJuni@88-149-64-86.du.xdsl.is) (Quit: ZNC 1.8.2 - https://znc.in)
2023-05-28 22:03:39 +0000__monty__(~toonn@user/toonn) (Ping timeout: 256 seconds)
2023-05-28 22:04:09 +0000Benzi-Junior(~BenziJuni@dsl-149-64-86.hive.is)
2023-05-28 22:10:32 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2023-05-28 22:11:15 +0000ec(~ec@gateway/tor-sasl/ec)
2023-05-28 22:12:43 +0000oxide(~lambda@user/oxide)
2023-05-28 22:13:29 +0000enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2023-05-28 22:17:45 +0000gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-05-28 22:28:32 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b) (Ping timeout: 246 seconds)
2023-05-28 22:30:41 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-655d-eb2e-b97d-d4ca.rev.sfr.net) (Remote host closed the connection)
2023-05-28 22:31:13 +0000alexherbo2(~alexherbo@2a02-842a-8180-4601-655d-eb2e-b97d-d4ca.rev.sfr.net)
2023-05-28 22:33:24 +0000 <Guest13> d34df00d: im guessing if it isnt something stackage can resolve to that it wouldnt be straitforward
2023-05-28 22:34:21 +0000 <Guest13> also, there is some reticence within the community to advocate for stackage at all, following a (not so) recent cabal update
2023-05-28 22:34:27 +0000Guest65(~Guest77@69-165-220-190.dsl.teksavvy.com)
2023-05-28 22:36:51 +0000 <Guest13> there might be someone that worked on the stackage apparatus that might be able to help you patch in as yet not resolver enabled versions, but i suspect they may not volunteer to do so, given its not the intended way to use stack, and that stack is not the main compilation tool-chain supported by the community.
2023-05-28 22:37:10 +0000 <Guest13> however, someone may still jump in with a solution
2023-05-28 22:39:35 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 268 seconds)
2023-05-28 22:40:38 +0000Benzi-Junior(~BenziJuni@dsl-149-64-86.hive.is) (Quit: ZNC 1.8.2 - https://znc.in)
2023-05-28 22:44:15 +0000Benzi-Junior(~BenziJuni@88-149-64-86.du.xdsl.is)
2023-05-28 22:48:39 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-05-28 22:48:39 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-05-28 22:48:39 +0000wroathe(~wroathe@user/wroathe)
2023-05-28 22:49:54 +0000use-value(~Thunderbi@2a00:23c6:8a03:2f01:e065:ca7f:f336:c3ee) (Remote host closed the connection)
2023-05-28 22:50:13 +0000use-value(~Thunderbi@2a00:23c6:8a03:2f01:e065:ca7f:f336:c3ee)
2023-05-28 22:53:14 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2023-05-28 22:53:22 +0000hiredman_hiredman
2023-05-28 22:53:28 +0000gurkenglas(~user@dynamic-046-114-177-130.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
2023-05-28 22:53:40 +0000Guest13(~Guest13@250.79-105-213.static.virginmediabusiness.co.uk) (Quit: Connection closed)
2023-05-28 22:54:08 +0000Benzi-Junior(~BenziJuni@88-149-64-86.du.xdsl.is) (Quit: ZNC 1.8.2 - https://znc.in)
2023-05-28 22:55:19 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer)
2023-05-28 22:57:52 +0000Benzi-Junior(~BenziJuni@dsl-149-64-86.hive.is)
2023-05-28 22:58:37 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2023-05-28 23:00:43 +0000gurkenglas(~user@dynamic-046-114-182-030.46.114.pool.telefonica.de)
2023-05-28 23:07:56 +0000zeenk(~zeenk@2a02:2f04:a105:f00::7fe) (Quit: Konversation terminated!)
2023-05-28 23:18:39 +0000Guest65(~Guest77@69-165-220-190.dsl.teksavvy.com) (Quit: Client closed)
2023-05-28 23:19:17 +0000vandita(~vandit@188-143-101-81.pool.digikabel.hu) (Ping timeout: 246 seconds)
2023-05-28 23:20:45 +0000mauke_(~mauke@user/mauke)
2023-05-28 23:21:15 +0000vandita(~vandit@77-234-80-134.pool.digikabel.hu)
2023-05-28 23:22:25 +0000mauke(~mauke@user/mauke) (Ping timeout: 256 seconds)
2023-05-28 23:22:26 +0000mauke_mauke
2023-05-28 23:23:08 +0000gurkenglas(~user@dynamic-046-114-182-030.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
2023-05-28 23:23:17 +0000mcglk(~mcglk@131.191.19.145) (Read error: Connection reset by peer)
2023-05-28 23:23:31 +0000ddellacosta(~ddellacos@143.244.47.87) (Ping timeout: 240 seconds)
2023-05-28 23:24:05 +0000hammond_hammond
2023-05-28 23:24:12 +0000hammond(proscan@gateway02.insomnia247.nl) (Changing host)
2023-05-28 23:24:12 +0000hammond(proscan@user/hammond2)
2023-05-28 23:24:33 +0000 <sm> d34df00d: I know that repo,
2023-05-28 23:24:33 +0000 <sm> but no idea how to find it either, other than a web search
2023-05-28 23:26:09 +0000mcglk(~mcglk@131.191.19.145)
2023-05-28 23:27:23 +0000zmt00(~zmt00@user/zmt00) (Quit: Leaving)
2023-05-28 23:27:30 +0000mcglk(~mcglk@131.191.19.145) (Read error: Connection reset by peer)
2023-05-28 23:28:12 +0000mcglk(~mcglk@131.191.19.145)
2023-05-28 23:28:21 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b)
2023-05-28 23:28:25 +0000Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-05-28 23:32:19 +0000 <sm> d34df00d: ah, I think it was https://github.com/DanBurton/stack-setup-info-gen/tree/master/output
2023-05-28 23:33:06 +0000 <sm> you might need to file an issue to get it updated, or use the tool to generate them yourself
2023-05-28 23:35:33 +0000Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
2023-05-28 23:36:38 +0000Guest21(~Guest21@072-182-045-094.res.spectrum.com) (Quit: Client closed)
2023-05-28 23:42:13 +0000myxos(~myxokeph@cpe-65-28-251-121.cinci.res.rr.com) (Quit: myxos)
2023-05-28 23:42:14 +0000monoidal(~monoidal@2001:861:3f42:1b60:b032:576b:1cee:47f4) (Quit: Client closed)
2023-05-28 23:42:15 +0000 <sm> d34df00d: but actually.. I think those yamls are mainly helpful if you want to use an unreleased ghc from git.. to use a released ghc, usually just putting resolver: ghc-X.Y and whatever extra-deps you need, works
2023-05-28 23:42:27 +0000myxos(~myxos@cpe-65-28-251-121.cinci.res.rr.com)
2023-05-28 23:42:44 +0000 <sm> like https://github.com/simonmichael/hledger/blob/master/stack9.6.yaml
2023-05-28 23:43:53 +0000reach(~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b) (Ping timeout: 250 seconds)
2023-05-28 23:45:04 +0000acidjnk(~acidjnk@p200300d6e7072f9441e69932c7e8d464.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-05-28 23:50:24 +0000B-J(~BenziJuni@88-149-64-165.du.xdsl.is)
2023-05-28 23:51:03 +0000ub(~Thunderbi@p548c91e0.dip0.t-ipconnect.de)
2023-05-28 23:51:25 +0000ubert(~Thunderbi@p548c91e0.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-05-28 23:51:25 +0000ububert
2023-05-28 23:51:42 +0000Benzi-Junior(~BenziJuni@dsl-149-64-86.hive.is) (Ping timeout: 265 seconds)
2023-05-28 23:54:05 +0000 <d34df00d> sm: oh wow, that last one is perfect, thanks!
2023-05-28 23:54:12 +0000 <d34df00d> I completely forgot that feature of stack.
2023-05-28 23:55:08 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6c9c:9af5:8708:5fc6) (Remote host closed the connection)
2023-05-28 23:55:22 +0000smgetting ready to try a 9.6.2 build plan