2021/07/08

2021-07-08 00:08:45 +0000 <Axman6> Do we actually have a good resource for starting a new haskell project? I was asking the other day about something for scaffolding options, without particularly satisfying answers
2021-07-08 00:09:21 +0000vish(~igloo@24.130.32.174)
2021-07-08 00:09:24 +0000 <Axman6> stack new isn't terrible, but the docs say it's been labled as up for replacement for a long time, and I'm preferring cabal these days
2021-07-08 00:10:07 +0000 <monochrom> The cabal user guide may have a section on this. I haven't checked.
2021-07-08 00:10:31 +0000 <geekosaur> cabal init creates very barebones projects
2021-07-08 00:10:40 +0000 <monochrom> A lot of bloggers would have very opinionated ones. I avoid knowing them.
2021-07-08 00:10:54 +0000vish(~igloo@24.130.32.174) (Remote host closed the connection)
2021-07-08 00:12:36 +0000 <monochrom> Some haskell books have a short chapter for this too.
2021-07-08 00:14:41 +0000 <monochrom> Me, I learned by taking a look at the cabal user guide (and a much older, terser, more incomplete edition at that), and taking a look at some package sources.
2021-07-08 00:15:43 +0000 <monochrom> and playing a bit with cabal init (now cabal init -i and answering "I want to answer a lot of questions")
2021-07-08 00:15:53 +0000 <AWizzArd> Servant: type API = "foo" :> QueryParam "bar" String :> Get '[JSON] Baz
2021-07-08 00:16:03 +0000 <AWizzArd> How can I explain that "bar" is required?
2021-07-08 00:16:28 +0000 <AWizzArd> Can I do QueryParam' [Required] "bar" or something like that?
2021-07-08 00:16:41 +0000 <monochrom> BTW I am still baffled that after I have taken the trouble to say "-i" they feel like making me repeat myself.
2021-07-08 00:18:23 +0000 <monochrom> Every type parameter is required, at least as long as you want to end up with the desired kind. What is there to explain? The String there is also required. The Baz there is also required.
2021-07-08 00:18:32 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 00:19:29 +0000 <AWizzArd> monochrom: what I mean is: my handler would get a Maybe String but I want it without the Maybe.
2021-07-08 00:19:48 +0000 <AWizzArd> If the user does not supply the query parameter then my handler wouldn’t get called at all.
2021-07-08 00:20:33 +0000trufas(~trufas@177.240.218.218) (Ping timeout: 265 seconds)
2021-07-08 00:20:46 +0000trufas(~trufas@177.240.218.218)
2021-07-08 00:21:08 +0000 <AWizzArd> type QueryParam = QueryParam' '[Optional, Strict]
2021-07-08 00:21:24 +0000Atum__(~IRC@user/atum/x-2392232) (Quit: Atum__)
2021-07-08 00:22:47 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 252 seconds)
2021-07-08 00:24:34 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 00:26:12 +0000Deide(~Deide@user/deide) (Quit: Seeee yaaaa)
2021-07-08 00:28:11 +0000mud(~mud@user/kadoban)
2021-07-08 00:28:58 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2021-07-08 00:31:49 +0000andreabedini(~andreabed@8s8kj6nms09jvtyb2xjc.ip6.superloop.com)
2021-07-08 00:31:53 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 00:33:14 +0000derelict(~derelict@user/derelict) (Ping timeout: 252 seconds)
2021-07-08 00:34:28 +0000 <Axman6> you can replace Optional with Required right?
2021-07-08 00:34:54 +0000zeenk(~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3) (Quit: Konversation terminated!)
2021-07-08 00:36:00 +0000spruit11(~quassel@2a02:a467:ccd6:1:f403:cf1e:97b5:1c9b) (Ping timeout: 252 seconds)
2021-07-08 00:36:11 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds)
2021-07-08 00:36:33 +0000spruit11(~quassel@2a02:a467:ccd6:1:f403:cf1e:97b5:1c9b)
2021-07-08 00:38:40 +0000spruit11_(~quassel@86-82-44-193.fixed.kpn.net)
2021-07-08 00:39:47 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 00:41:03 +0000spruit11(~quassel@2a02:a467:ccd6:1:f403:cf1e:97b5:1c9b) (Ping timeout: 252 seconds)
2021-07-08 00:41:42 +0000cjb(~cjb@user/cjb)
2021-07-08 00:44:58 +0000derelict(~derelict@user/derelict)
2021-07-08 00:45:48 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 00:48:39 +0000haykam1(~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection)
2021-07-08 00:48:42 +0000haykam2(~haykam@static.100.2.21.65.clients.your-server.de)
2021-07-08 00:54:35 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2021-07-08 00:58:18 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-07-08 01:04:42 +0000mud(~mud@user/kadoban) (Ping timeout: 252 seconds)
2021-07-08 01:06:37 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-07-08 01:07:49 +0000 <AWizzArd> Axman6: yeah
2021-07-08 01:08:07 +0000 <AWizzArd> Axman6: But do you know hat the difference between Strict and Required is?
2021-07-08 01:08:20 +0000 <AWizzArd> And how can a parameter be optional but strict at the same time?
2021-07-08 01:09:00 +0000 <AWizzArd> Axman6: we can do this for example: QueryParam' '[Required] "bar" Text
2021-07-08 01:10:18 +0000roboto_el_gato(~roboto_el@2600:1700:7df0:4f30:ec10:cbf7:f7cc:3882)
2021-07-08 01:12:22 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2021-07-08 01:15:03 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-08 01:16:57 +0000beka(~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 258 seconds)
2021-07-08 01:17:09 +0000 <qrpnxz> i saw a pretty cool talk about lifting types into kinds, is it possible to list, say, Int into a kind right now?
2021-07-08 01:17:59 +0000mud(~mud@user/kadoban)
2021-07-08 01:18:28 +0000 <geekosaur> DataKinds extension
2021-07-08 01:18:44 +0000 <geekosaur> Int might cause confusion with type-level naturals though
2021-07-08 01:19:30 +0000 <geekosaur> although I guess you could use a tick to distinguish '1 :: 'Int from 1 the typenat
2021-07-08 01:21:02 +0000 <qrpnxz> nice
2021-07-08 01:21:02 +0000 <qrpnxz> the talk was using like peano numbers which was cool but totally impractical. If you can just use real numbers that super nice
2021-07-08 01:21:58 +0000 <c_wraith> unfortunately, Nat is all there is for numbers at the type level now
2021-07-08 01:23:41 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Remote host closed the connection)
2021-07-08 01:26:08 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9)
2021-07-08 01:35:23 +0000xff0x(~xff0x@2001:1a81:539d:3600:dd23:6975:e62a:a95) (Ping timeout: 252 seconds)
2021-07-08 01:37:08 +0000xff0x(~xff0x@2001:1a81:53dc:b800:8c77:48f3:1e3:3060)
2021-07-08 01:37:53 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 01:41:08 +0000notzmv(~zmv@user/notzmv)
2021-07-08 01:43:42 +0000neurocyte404(~neurocyte@45.93.108.182)
2021-07-08 01:43:42 +0000neurocyte404(~neurocyte@45.93.108.182) (Changing host)
2021-07-08 01:43:42 +0000neurocyte404(~neurocyte@user/neurocyte)
2021-07-08 01:45:31 +0000tlaxkit(~hexchat@170.253.37.3)
2021-07-08 01:46:21 +0000 <Axman6> just implement Rational using Nat and then you've got pretty much everything you could need... >_>
2021-07-08 01:47:36 +0000neurocyte40(~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
2021-07-08 01:47:36 +0000neurocyte404neurocyte40
2021-07-08 01:48:09 +0000mud(~mud@user/kadoban) (Ping timeout: 252 seconds)
2021-07-08 01:48:44 +0000mud(~mud@user/kadoban)
2021-07-08 01:51:32 +0000tlaxkit(~hexchat@170.253.37.3) (Quit: Leaving)
2021-07-08 01:51:37 +0000 <Axman6> I wonder if you could implement fixed point type level numbers too
2021-07-08 01:54:36 +0000finsternis(~X@23.226.237.192)
2021-07-08 01:56:33 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 02:00:40 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 246 seconds)
2021-07-08 02:04:04 +0000alx741(~alx741@181.196.69.147) (Quit: alx741)
2021-07-08 02:07:19 +0000dextaa(~DV@aftr-37-201-214-197.unity-media.net) (Ping timeout: 246 seconds)
2021-07-08 02:08:05 +0000dextaa(~DV@aftr-37-201-214-197.unity-media.net)
2021-07-08 02:08:52 +0000leah2(~leah@vuxu.org) (Read error: Connection reset by peer)
2021-07-08 02:11:52 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-07-08 02:12:11 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 02:12:13 +0000machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 246 seconds)
2021-07-08 02:17:38 +0000zebrag(~chris@user/zebrag) (Remote host closed the connection)
2021-07-08 02:23:25 +0000td_(~td@94.134.91.101) (Ping timeout: 246 seconds)
2021-07-08 02:23:57 +0000finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-07-08 02:23:58 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (sodium.libera.chat (Nickname regained by services)))
2021-07-08 02:23:58 +0000finn_elijaFinnElija
2021-07-08 02:24:19 +0000 <lechner> Hi, i have ByteString confusion. Would somone please explain to me where the 'toStrict' has to go? Thanks! https://paste.debian.net/1203748/
2021-07-08 02:25:19 +0000td_(~td@94.134.91.165)
2021-07-08 02:29:05 +0000geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-07-08 02:29:44 +0000geekosaur(~geekosaur@xmonad/geekosaur)
2021-07-08 02:34:34 +0000kadobanana(~mud@user/kadoban)
2021-07-08 02:34:34 +0000mud(~mud@user/kadoban) (Read error: Connection reset by peer)
2021-07-08 02:40:18 +0000 <oak-> <AWizzArd "Axman6: But do you know hat the "> Strict only means if the parsing fails, then the servant throws error. The other option is Lenient, then you get Either Text a, and if the parsing fails then you get the Left which contains the error text
2021-07-08 02:44:35 +0000eight(~eight@user/eight) (Ping timeout: 265 seconds)
2021-07-08 02:45:35 +0000wei2912(~wei2912@112.199.250.21)
2021-07-08 02:48:39 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-08 02:50:01 +0000falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection)
2021-07-08 02:50:25 +0000falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-07-08 02:50:28 +0000 <oak-> lechner: you have various choices here :) you could also use the unpack from ByteString.Lazy library, then you don't need to convert it to strict ByteString first, or use Data.ByteString.Lazy.Char8.putStrLn to print the lazy bytestring directly
2021-07-08 02:51:07 +0000adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2021-07-08 02:51:21 +0000adanwan(~adanwan@gateway/tor-sasl/adanwan)
2021-07-08 02:51:21 +0000 <oak-> but strict answer to your question :) GZip.decompress returns Lazy Bytestrings, so you would need to pass the output from GZip.decompress to toStrict function
2021-07-08 02:52:34 +0000shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-07-08 02:55:55 +0000Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: Connection reset by peer)
2021-07-08 02:56:08 +0000Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-08 02:56:34 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 240 seconds)
2021-07-08 02:58:20 +0000Reyu[M](~reyureyuz@matrix.reyuzenfold.com) (Remote host closed the connection)
2021-07-08 02:58:53 +0000Reyu[M](~reyureyuz@matrix.reyuzenfold.com)
2021-07-08 02:58:53 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 03:02:59 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds)
2021-07-08 03:10:03 +0000eggplant_(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039)
2021-07-08 03:10:06 +0000falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-07-08 03:10:19 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Ping timeout: 246 seconds)
2021-07-08 03:16:56 +0000hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-08 03:22:18 +0000Erutuon(~Erutuon@user/erutuon) (Ping timeout: 258 seconds)
2021-07-08 03:28:08 +0000cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2021-07-08 03:28:43 +0000cheater(~Username@user/cheater)
2021-07-08 03:30:30 +0000hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-07-08 03:32:00 +0000 <lechner> oak-: thanks!
2021-07-08 03:32:06 +0000Izem(~Izem@bras-base-london1483w-grc-42-65-95-172-41.dsl.bell.ca)
2021-07-08 03:37:03 +0000notzmv(~zmv@user/notzmv) (Ping timeout: 252 seconds)
2021-07-08 03:43:07 +0000tubogram(~tubogram@user/tubogram)
2021-07-08 03:45:45 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 03:46:51 +0000 <janus> > maybe (pure Nothing) (pure . Just . (+ 1)) (Just 5)
2021-07-08 03:46:52 +0000 <lambdabot> error:
2021-07-08 03:46:52 +0000 <lambdabot> • Ambiguous type variable ‘f0’ arising from a use of ‘show_M809825357370...
2021-07-08 03:46:53 +0000 <lambdabot> prevents the constraint ‘(Show
2021-07-08 03:47:18 +0000 <janus> join <$> traverse (pure . Just . (+ 1)) (Just 5)
2021-07-08 03:47:25 +0000 <janus> wither (pure . Just . (+ 1)) (Just 5)
2021-07-08 03:48:08 +0000 <janus> which one is clearer? i want to like 'wither' but i feel like it is pretty unknown...
2021-07-08 03:48:53 +0000Izem(~Izem@bras-base-london1483w-grc-42-65-95-172-41.dsl.bell.ca) (Good Bye)
2021-07-08 03:50:26 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2021-07-08 03:55:36 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-07-08 03:57:42 +0000chase(~chase@89.45.224.218)
2021-07-08 03:58:04 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 03:58:54 +0000 <monochrom> fmap (+ 1)
2021-07-08 04:02:16 +0000MQ-17J(~MQ-17J@8.21.10.15)
2021-07-08 04:05:58 +0000 <janus> right, i was thinking i'd get that answer :P but the point is that the composed function can be effectful... in practise it will be doing network IO
2021-07-08 04:06:26 +0000dunkeln(~dunkeln@188.70.10.207)
2021-07-08 04:07:51 +0000 <janus> i guess i am really thinking in the abstraction level that 'wither' operates in, but when writing haskell it seems so difficult to decide whether the abstraction level you wanna work with, which is sometimes too powerful, is worth its weight...
2021-07-08 04:08:24 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 252 seconds)
2021-07-08 04:08:29 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 04:10:49 +0000 <janus> i just have to accept the fact that there is no one way to do it, and embrace politics :(
2021-07-08 04:12:07 +0000arjun(~Srain@user/arjun)
2021-07-08 04:16:33 +0000hexreel(~hr@69.233.98.238)
2021-07-08 04:19:16 +0000oxide(~lambda@user/oxide)
2021-07-08 04:36:02 +0000chase(~chase@89.45.224.218) (Ping timeout: 272 seconds)
2021-07-08 04:37:26 +0000 <lechner> Hi, how can I print the value in line 20 and also save it in a file, please? I'm stuck inside the monad. Thanks! https://paste.debian.net/1203754/
2021-07-08 04:42:22 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-07-08 04:45:13 +0000a6a45081-2b83(~aditya@106.214.66.197)
2021-07-08 04:46:26 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 04:50:46 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2021-07-08 04:51:30 +0000 <oxytocat> instead of using pointfree style, you can name the result and then use it more than once
2021-07-08 04:51:48 +0000 <lechner> with <- ?
2021-07-08 04:51:57 +0000 <oxytocat> yeah
2021-07-08 04:52:25 +0000 <oxytocat> instead of `receive responder >>=` you can do `msg <- receive responder`
2021-07-08 04:52:33 +0000 <lechner> i tried that
2021-07-08 04:52:45 +0000 <lechner> how do i use the result, please?
2021-07-08 04:53:44 +0000 <lechner> i tried to feed it in with >>= but that did not work
2021-07-08 04:53:44 +0000 <oxytocat> the line that starts with `liftIO` is a chain of function composition, `>>=` passes the result from `receive responder` to the other section
2021-07-08 04:54:19 +0000 <oxytocat> you can wrap the whole expression in parenthesis and pass `msg` to it, like this:
2021-07-08 04:54:30 +0000 <oxytocat> `(liftIO . printf "Received request: [%s]\n" . unpack . GZip.decompress . fromStrict) msg`
2021-07-08 04:54:38 +0000 <oxytocat> or alternatively:
2021-07-08 04:54:44 +0000 <oxytocat> `liftIO . printf "Received request: [%s]\n" . unpack . GZip.decompress . fromStrict $ msg`
2021-07-08 04:54:48 +0000 <oxytocat> or alternatively:
2021-07-08 04:55:11 +0000 <oxytocat> `liftIO (printf "Received request: [%s]\n" (unpack (GZip.decompress (fromStrict msg))))`
2021-07-08 04:55:52 +0000 <oxytocat> note that `liftIO ...` and `msg <- ...` need to have the same indentation width
2021-07-08 04:56:21 +0000 <lechner> thatks! i understand all of that, except perhaps the entire purpose of LiftIO
2021-07-08 04:56:42 +0000 <dsal> :t liftIO
2021-07-08 04:56:43 +0000 <lambdabot> MonadIO m => IO a -> m a
2021-07-08 04:57:09 +0000 <dsal> If you have an mtl stack with IO at the bottom and need to run something in IO, liftIO gets you there.
2021-07-08 04:57:55 +0000 <oxytocat> the runZMQ has some capabilities beyond IO so it has a different type
2021-07-08 04:57:56 +0000acidjnk_new(~acidjnk@p200300d0c72b9526e1b6d7c282fb2b66.dip0.t-ipconnect.de)
2021-07-08 04:58:05 +0000 <lechner> what is mtl please?
2021-07-08 04:59:18 +0000 <oxytocat> check out https://github.com/soupi/haskell-study-plan#monad-transformers
2021-07-08 04:59:20 +0000 <lechner> what does the LiftIO do in this line, please? liftIO (printf "Received request: [%s]\n" (unpack (GZip.decompress (fromStrict msg))))
2021-07-08 04:59:32 +0000 <dsal> :t liftIO -- it does that
2021-07-08 04:59:33 +0000 <lambdabot> MonadIO m => IO a -> m a
2021-07-08 04:59:50 +0000 <lechner> to me that is different from the other two
2021-07-08 04:59:56 +0000 <dsal> You're using runZMQ which is: runZMQ :: MonadIO m => (forall z. ZMQ z a) -> m a
2021-07-08 05:00:28 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 05:01:10 +0000 <oxytocat> the type for regular IO actions is `IO <something>` - this is a description (or recipe) for a computation that may run some IO actions and return a value of type <something>
2021-07-08 05:01:43 +0000 <lechner> yeah that part i understand
2021-07-08 05:02:03 +0000 <oxytocat> ZMQ has a different type than that, it wants to be able to describe actions that can do ZMQ stuff as well as regular IO actions
2021-07-08 05:02:32 +0000 <oxytocat> so it needs a different type than IO
2021-07-08 05:03:05 +0000 <dsal> Instead of directly specifying IO, it just specifies that it needs something monadic that knows how to get to IO.
2021-07-08 05:03:08 +0000 <lechner> so the LiftIO is specimic to System.ZMQ4.Monadic ?
2021-07-08 05:03:15 +0000 <lechner> specific
2021-07-08 05:03:30 +0000 <dsal> No, it's a method of MonadIO
2021-07-08 05:03:58 +0000 <oxytocat> liftIO is a function that many other types like ZMQ implement, so that users can run arbitrary IO actions while working in ZMQ type
2021-07-08 05:04:06 +0000 <oxytocat> or their respective types, actually
2021-07-08 05:04:28 +0000 <dsal> https://hackage.haskell.org/package/base-4.15.0.0/docs/Control-Monad-IO-Class.html
2021-07-08 05:04:53 +0000 <lechner> why is it needed to evaluate this expression? liftIO (printf "Received request: [%s]\n" (unpack (GZip.decompress (fromStrict msg))))
2021-07-08 05:04:59 +0000 <oxytocat> for example ActionM from the scotty package that is used to describe web requests processing also implements that function
2021-07-08 05:05:10 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 272 seconds)
2021-07-08 05:05:13 +0000 <lechner> it comes after the print?
2021-07-08 05:05:23 +0000 <oxytocat> :t liftIO
2021-07-08 05:05:25 +0000 <lambdabot> MonadIO m => IO a -> m a
2021-07-08 05:05:55 +0000 <oxytocat> the whole expression to the right of liftIO
2021-07-08 05:06:02 +0000 <oxytocat> has the type `IO ()`
2021-07-08 05:06:26 +0000 <oxytocat> but anything running in ZMQ has a different type that relates to ZMQ
2021-07-08 05:07:15 +0000 <oxytocat> so liftIO takes the `IO ()` and transforms it to work within `m ()`
2021-07-08 05:07:21 +0000 <lechner> i see
2021-07-08 05:07:23 +0000 <oxytocat> where `m` is the relevant ZMQ type
2021-07-08 05:07:51 +0000 <lechner> but m is not named?
2021-07-08 05:07:59 +0000 <oxytocat> I'm not sure what it is because it is not specified here and the docs for zeromq-haskell are missing from hackage
2021-07-08 05:08:16 +0000 <lechner> yeah they did not generate
2021-07-08 05:08:24 +0000 <oxytocat> `liftIO` is a bit general, think like `print :: Show a => a -> String`
2021-07-08 05:08:52 +0000 <oxytocat> we know that print will work for any type that implements the `Show` interface
2021-07-08 05:09:12 +0000 <oxytocat> with liftIO we know that it will work for any `m` that implements the `MonadIO` interface
2021-07-08 05:09:20 +0000acidjnk_new(~acidjnk@p200300d0c72b9526e1b6d7c282fb2b66.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-07-08 05:09:47 +0000 <dsal> lechner: You can use any m as long as it has a MonadIO instance. It's a constraint, not a type.
2021-07-08 05:09:52 +0000 <lechner> it's about the caller though rather than the argument, right?
2021-07-08 05:10:08 +0000 <oxytocat> sorry print is actually `print :: Show a => a -> IO ()`, my mistake
2021-07-08 05:10:22 +0000hiruji(~hiruji@user/hiruji) (Ping timeout: 246 seconds)
2021-07-08 05:10:25 +0000 <oxytocat> yes, it's what the caller supplies generally
2021-07-08 05:10:44 +0000 <dsal> % liftIO . print $ (1,2,3)
2021-07-08 05:10:44 +0000 <yahb> dsal: (1,2,3)
2021-07-08 05:10:56 +0000 <lechner> what is the likely type of msg above please?
2021-07-08 05:12:01 +0000 <oxytocat> I expect it is ZMQ
2021-07-08 05:12:13 +0000 <oxytocat> oh, of msg? sorry
2021-07-08 05:12:14 +0000 <oxytocat> let's check
2021-07-08 05:12:38 +0000 <lechner> so with LiftIO, both the code to the right and to the left is effectful, yes
2021-07-08 05:13:27 +0000 <oxytocat> https://gitlab.com/twittner/zeromq-haskell/-/blob/develop/src/System/ZMQ4/Monadic.hs#L351
2021-07-08 05:13:29 +0000 <dsal> liftIO just digs out the the IO and runs the supplied IO action.
2021-07-08 05:13:40 +0000 <oxytocat> this indicates that it is `ByteString`
2021-07-08 05:14:17 +0000 <lechner> dsal: like 'do'?
2021-07-08 05:14:45 +0000 <dsal> What do you mean? `do` doesn't, um, `do` anything.
2021-07-08 05:15:37 +0000 <lechner> sorry it's my second run at haskell. i thought do can print
2021-07-08 05:15:47 +0000 <oxytocat> `do` is just alternative syntax for `>>=` and `>>`
2021-07-08 05:15:48 +0000 <dsal> do is just syntax sugar.
2021-07-08 05:15:59 +0000 <dsal> @undo do { print "x" }
2021-07-08 05:15:59 +0000 <lambdabot> print "x"
2021-07-08 05:16:43 +0000 <oxytocat> check out this section, let me know if it makes it clearer: https://github.com/soupi/haskell-study-plan#do-notation
2021-07-08 05:16:53 +0000AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.)
2021-07-08 05:17:14 +0000 <dsal> > do { a <- Just 1; b <- Just 2; pure (a + b) }
2021-07-08 05:17:16 +0000 <lambdabot> Just 3
2021-07-08 05:17:20 +0000 <dsal> @undo do { a <- Just 1; b <- Just 2; pure (a + b) }
2021-07-08 05:17:20 +0000 <lambdabot> Just 1 >>= \ a -> Just 2 >>= \ b -> pure (a + b)
2021-07-08 05:17:32 +0000 <dsal> It works with any monad, not just IO
2021-07-08 05:17:47 +0000 <dsal> In fact, because liftIO is required here, you can tell that it's not requiring IO. :)
2021-07-08 05:18:09 +0000 <lechner> which part isn't?
2021-07-08 05:19:01 +0000 <dsal> Which part isn't what?
2021-07-08 05:19:01 +0000 <lechner> which part isn't requiring IO?
2021-07-08 05:20:05 +0000AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net)
2021-07-08 05:20:47 +0000 <oxytocat> the code in your snippet, lines 16 to 23, run in ZMQ, not IO. we can tell because this code is passed to the function `runZMQ` as an argument
2021-07-08 05:21:02 +0000AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Client Quit)
2021-07-08 05:21:19 +0000jneira(~jneira@212.8.115.226)
2021-07-08 05:21:43 +0000 <dsal> All the things in the `do` block in your `runZMQ` call. It requires some `m` such that `m` has a `MonadIO` instance, but it's not using `IO` directly. You have to explicitly `liftIO` to get to `IO` there.
2021-07-08 05:21:43 +0000 <dsal> It's a rather subtle detail, but if `do` were just for `IO`, you could `print` without lifting anything.
2021-07-08 05:21:50 +0000 <dsal> > let s = [1..5] in do { a <- s; b <- s; pure (a,b) }
2021-07-08 05:21:52 +0000 <lambdabot> [(1,1),(1,2),(1,3),(1,4),(1,5),(2,1),(2,2),(2,3),(2,4),(2,5),(3,1),(3,2),(3,...
2021-07-08 05:22:12 +0000 <dsal> @undo do { a <- s; b <- s; pure (a,b) }
2021-07-08 05:22:12 +0000 <lambdabot> s >>= \ a -> s >>= \ b -> pure (a, b)
2021-07-08 05:22:14 +0000sidv(~sidv@23.252.50.92)
2021-07-08 05:22:15 +0000 <dsal> (undo is kind of boring)
2021-07-08 05:22:39 +0000oxide(~lambda@user/oxide) (Ping timeout: 252 seconds)
2021-07-08 05:22:43 +0000 <sidv> Hey! Is this the right place to ask a question about haskell.nix?
2021-07-08 05:22:52 +0000 <dsal> It's pretty close. heh
2021-07-08 05:23:12 +0000 <oxytocat> right, do notation is just alternative syntax for `>>=`, and the type of `>>=` is:
2021-07-08 05:23:16 +0000 <oxytocat> :t (>>=)
2021-07-08 05:23:17 +0000 <lambdabot> Monad m => m a -> (a -> m b) -> m b
2021-07-08 05:24:14 +0000 <oxytocat> so it works for any type that implements `Monad`. Such as `IO`, `Maybe`, `Either`, `ZMQ z`, and many more
2021-07-08 05:24:44 +0000 <oxytocat> so `do` will also work for these types, because it just translates the syntax to use `>>=`
2021-07-08 05:24:48 +0000 <sidv> I was trying to install haskell-language-server by putting it in tools in shellFor. However, this does not install haskell-language-server-wrapper. Without that, it seems like hls is not picking up all warnings/errors. Is there a way to also install the wrapper?
2021-07-08 05:27:21 +0000 <arjun> sidv: try ghcup?
2021-07-08 05:28:01 +0000 <dsal> ghcup sounds a bit like the opposite of haskell.nix
2021-07-08 05:28:04 +0000 <sidv> I'd ideally like to install it locally within the project :)
2021-07-08 05:29:05 +0000 <dsal> I only do the most basic stuff with haskell.nix, though and I've not tried HLS in a long time.
2021-07-08 05:30:43 +0000 <sidv> The problem might also be that I have to generate a hie.yaml
2021-07-08 05:31:24 +0000 <sidv> I guess my main problem is that I don't see all the warnings that I do when running cabal build
2021-07-08 05:33:20 +0000 <sidv> Hm it seems like hie.yaml is the main culprit
2021-07-08 05:33:39 +0000stefan-_(~cri@42dots.de) (Ping timeout: 252 seconds)
2021-07-08 05:34:53 +0000 <lechner> oxytocat dsal: thanks for your help earlier. too late here now, but i'll be ack tomorrow. thanks!
2021-07-08 05:37:33 +0000notzmv(~zmv@user/notzmv)
2021-07-08 05:37:40 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-07-08 05:37:59 +0000stefan-_(~cri@42dots.de)
2021-07-08 05:43:37 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 246 seconds)
2021-07-08 05:46:35 +0000Cajun(~Cajun@ip98-163-211-112.no.no.cox.net)
2021-07-08 05:47:19 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 05:48:35 +0000kenran(~kenran@200116b82bdcfa0070f86b22d449a64a.dip.versatel-1u1.de)
2021-07-08 05:51:22 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2021-07-08 05:52:30 +0000sheepduck(~sheepduck@user/sheepduck) (Ping timeout: 252 seconds)
2021-07-08 05:52:37 +0000sidv(~sidv@23.252.50.92) (Ping timeout: 246 seconds)
2021-07-08 05:53:53 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-07-08 05:57:27 +0000slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-07-08 05:57:45 +0000Obo(~roberto@94.191.137.122.mobile.tre.se)
2021-07-08 05:58:40 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-07-08 05:58:50 +0000dunkeln(~dunkeln@188.70.10.207) (Ping timeout: 252 seconds)
2021-07-08 06:02:36 +0000son0p(~ff@181.136.122.143) (Ping timeout: 256 seconds)
2021-07-08 06:07:27 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 06:09:12 +0000azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Remote host closed the connection)
2021-07-08 06:09:22 +0000azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it)
2021-07-08 06:09:46 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 240 seconds)
2021-07-08 06:11:21 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2021-07-08 06:11:40 +0000Obo(~roberto@94.191.137.122.mobile.tre.se) (Ping timeout: 272 seconds)
2021-07-08 06:11:49 +0000Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-07-08 06:12:10 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 06:13:04 +0000Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net)
2021-07-08 06:14:21 +0000favonia(~favonia@user/favonia) (Ping timeout: 252 seconds)
2021-07-08 06:14:57 +0000keutoi(~keutoi@157.48.222.234)
2021-07-08 06:16:20 +0000_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-07-08 06:17:18 +0000fef(~thedawn@user/thedawn)
2021-07-08 06:17:47 +0000hexreel(~hr@69.233.98.238) (Quit: WeeChat 3.2)
2021-07-08 06:18:12 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 252 seconds)
2021-07-08 06:19:40 +0000_________(~nobody@user/noodly) (Ping timeout: 265 seconds)
2021-07-08 06:21:56 +0000arjun(~Srain@user/arjun) (Ping timeout: 252 seconds)
2021-07-08 06:22:40 +0000arjun(~Srain@user/arjun)
2021-07-08 06:23:36 +0000gehmehgeh(~user@user/gehmehgeh)
2021-07-08 06:30:10 +0000dextaa(~DV@aftr-37-201-214-197.unity-media.net) (Ping timeout: 246 seconds)
2021-07-08 06:30:23 +0000andreabedini(~andreabed@8s8kj6nms09jvtyb2xjc.ip6.superloop.com) (Quit: WeeChat 2.8)
2021-07-08 06:30:33 +0000_________(~nobody@user/noodly)
2021-07-08 06:30:43 +0000dextaa(~DV@aftr-37-201-214-197.unity-media.net)
2021-07-08 06:31:29 +0000dminuoso(~dminuoso@user/dminuoso) (Quit: ZNC 1.7.5 - https://znc.in)
2021-07-08 06:31:47 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 06:35:53 +0000dminuoso(~dminuoso@static.88-198-218-68.clients.your-server.de)
2021-07-08 06:36:58 +0000eight(~eight@user/eight)
2021-07-08 06:37:00 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 272 seconds)
2021-07-08 06:37:56 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-07-08 06:39:06 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 06:41:18 +0000andreabedini(~andreabed@8s8kj6nms09jvtyb2xjc.ip6.superloop.com)
2021-07-08 06:41:40 +0000unyu(~pyon@user/pyon)
2021-07-08 06:41:40 +0000unyuisekaijin
2021-07-08 06:42:24 +0000notzmv(~zmv@user/notzmv) (Ping timeout: 258 seconds)
2021-07-08 06:46:46 +0000Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-07-08 06:48:53 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 06:48:53 +0000dunkeln_(~dunkeln@188.70.10.207)
2021-07-08 06:50:49 +0000keutoi(~keutoi@157.48.222.234) (Remote host closed the connection)
2021-07-08 06:52:55 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-07-08 06:56:11 +0000a6a45081-2b83(~aditya@106.214.66.197) (Remote host closed the connection)
2021-07-08 06:57:33 +0000fendor(~fendor@91.141.49.3.wireless.dyn.drei.com)
2021-07-08 06:58:15 +0000jneira_(~jneira_@217.red-81-39-172.dynamicip.rima-tde.net) (Quit: Ping timeout (120 seconds))
2021-07-08 07:03:01 +0000sagax(~sagax@213.138.71.146) (Excess Flood)
2021-07-08 07:03:11 +0000dunkeln_(~dunkeln@188.70.10.207) (Ping timeout: 252 seconds)
2021-07-08 07:03:44 +0000dunkeln_(~dunkeln@188.70.10.207)
2021-07-08 07:04:07 +0000dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-07-08 07:06:34 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2021-07-08 07:14:16 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-07-08 07:15:31 +0000chomwitt(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4)
2021-07-08 07:17:42 +0000andreabedini(~andreabed@8s8kj6nms09jvtyb2xjc.ip6.superloop.com) (Quit: WeeChat 2.8)
2021-07-08 07:19:43 +0000oxide(~lambda@user/oxide)
2021-07-08 07:20:46 +0000epolanski(uid312403@id-312403.brockwell.irccloud.com)
2021-07-08 07:21:46 +0000chomwitt(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) (Ping timeout: 240 seconds)
2021-07-08 07:22:32 +0000Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-07-08 07:28:10 +0000neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f)
2021-07-08 07:29:38 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 07:29:55 +0000eggplant_(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039) (Remote host closed the connection)
2021-07-08 07:30:10 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 07:32:09 +0000maf654321(~maf654321@user/maf654321) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-07-08 07:33:27 +0000dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1)
2021-07-08 07:33:37 +0000cfricke(~cfricke@user/cfricke)
2021-07-08 07:34:22 +0000Pickchea(~private@185.31.55.18.dyn.kraftcom.at)
2021-07-08 07:35:41 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 258 seconds)
2021-07-08 07:36:47 +0000Pickchea(~private@185.31.55.18.dyn.kraftcom.at) (Changing host)
2021-07-08 07:36:47 +0000Pickchea(~private@user/pickchea)
2021-07-08 07:36:59 +0000nschoe(~quassel@178.251.84.79)
2021-07-08 07:37:00 +0000cjb(~cjb@user/cjb) (Quit: rcirc on GNU Emacs 28.0.50)
2021-07-08 07:37:22 +0000bontaq(~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-07-08 07:40:32 +0000CoolerX(~CoolerX@user/coolerx)
2021-07-08 07:40:32 +0000 <CoolerX> Hi
2021-07-08 07:40:32 +0000 <CoolerX> Is there a way to embed Haskell in other languages?
2021-07-08 07:40:33 +0000 <Axman6> G'day
2021-07-08 07:40:34 +0000 <CoolerX> Would like to embed Haskell in a Golang project
2021-07-08 07:40:36 +0000 <CoolerX> Since Haskell is compiled I am not entirely sure if this is even possible
2021-07-08 07:40:36 +0000 <Axman6> Yo can cal Haskell from other languages that are able to call C functions
2021-07-08 07:40:37 +0000 <Axman6> You can call*
2021-07-08 07:40:44 +0000 <CoolerX> right
2021-07-08 07:40:51 +0000 <CoolerX> through the foreign function interface of C
2021-07-08 07:40:58 +0000_________(~nobody@user/noodly) (Ping timeout: 272 seconds)
2021-07-08 07:41:17 +0000 <CoolerX> and C++, Golang
2021-07-08 07:42:42 +0000 <CoolerX> well ok, th
2021-07-08 07:42:42 +0000 <CoolerX> Thanks
2021-07-08 07:42:42 +0000CoolerX(~CoolerX@user/coolerx) (Client Quit)
2021-07-08 07:45:43 +0000lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-07-08 07:46:18 +0000lavaman(~lavaman@98.38.249.169)
2021-07-08 07:47:34 +0000gioyik(~gioyik@gateway/tor-sasl/gioyik) (Quit: WeeChat 3.1)
2021-07-08 07:48:57 +0000azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Ping timeout: 252 seconds)
2021-07-08 07:49:22 +0000euandreh(~euandreh@2804:14c:33:9fe5:af84:7945:9a52:2fce) (Ping timeout: 240 seconds)
2021-07-08 07:49:25 +0000azeem(~azeem@176.200.224.11)
2021-07-08 07:50:36 +0000lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-07-08 07:50:45 +0000euandreh(~euandreh@2804:14c:33:9fe5:547e:4393:1b6c:3477)
2021-07-08 07:51:17 +0000_________(~nobody@user/noodly)
2021-07-08 07:53:27 +0000MidAutumnMoon9(~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
2021-07-08 07:53:27 +0000MidAutumnMoon9(~MidAutumn@user/midautumnmoon)
2021-07-08 07:55:48 +0000chele(~chele@user/chele)
2021-07-08 07:57:26 +0000synthmeat(~synthmeat@user/synthmeat) (Quit: WeeChat 3.2)
2021-07-08 07:58:55 +0000tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-07-08 08:00:55 +0000zyklotomic(~ethan@2604:a880:800:10::79f:8001)
2021-07-08 08:02:59 +0000sidv(~sidv@23.252.50.92)
2021-07-08 08:03:01 +0000 <zyklotomic> is foldl (+) 0 [1::Int .. 100] not susceptible to space leaks because GHC optimizes it?
2021-07-08 08:04:20 +0000Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net) (Ping timeout: 240 seconds)
2021-07-08 08:04:23 +0000 <merijn> zyklotomic: yeah
2021-07-08 08:06:05 +0000 <zyklotomic> is it because of a special case of Int# being unlifted
2021-07-08 08:06:21 +0000Obo(~roberto@94.191.137.180.mobile.tre.se)
2021-07-08 08:06:28 +0000hendursaga(~weechat@user/hendursaga)
2021-07-08 08:07:03 +0000 <zyklotomic> and I was trying to force a leak lol
2021-07-08 08:08:25 +0000 <merijn> zyklotomic: GHC has a strictness analyzer that tries to detect cases like this where making a computation strict improves performance
2021-07-08 08:09:15 +0000hendursa1(~weechat@user/hendursaga) (Ping timeout: 244 seconds)
2021-07-08 08:09:25 +0000 <merijn> zyklotomic: Hence the pedantic correction that Haskell is "non-strict" and not lazy
2021-07-08 08:09:27 +0000allbery_b(~geekosaur@xmonad/geekosaur)
2021-07-08 08:09:27 +0000geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-07-08 08:09:49 +0000 <zyklotomic> shouldn't a warning be triggered in those cases, just wondering
2021-07-08 08:10:39 +0000 <zyklotomic> merijn: or GHC Haskell? i'm not sure how true that is
2021-07-08 08:11:04 +0000 <merijn> zyklotomic: The Haskell report specifies haskell as "non-strict"
2021-07-08 08:11:44 +0000 <merijn> zyklotomic: So making code strict is not an error as long as the semantics don't change compared to lazy eval
2021-07-08 08:13:46 +0000 <zyklotomic> GHC is defacto
2021-07-08 08:13:47 +0000jippiedoe(~david@2a02-a44c-e14e-1-2789-7e8e-a3b3-3994.fixed6.kpn.net)
2021-07-08 08:13:47 +0000 <zyklotomic> ah gotcha
2021-07-08 08:13:48 +0000 <zyklotomic> merijn: can you give me an example of how to create a partial application leak on purpose
2021-07-08 08:13:48 +0000 <zyklotomic> like what I was trying to do with the fold
2021-07-08 08:13:48 +0000 <zyklotomic> not partial application i think, that might be wrong way to describe it
2021-07-08 08:13:48 +0000 <zyklotomic> but unevaluated thunks
2021-07-08 08:13:48 +0000synthmeat(~synthmeat@user/synthmeat)
2021-07-08 08:14:26 +0000 <merijn> zyklotomic: The reason to specify Haskell as "non-strict" is exactly to make it legal for compilers to generate strict code
2021-07-08 08:15:10 +0000sshine(~simon@hubris.eta.solutions) (Ping timeout: 272 seconds)
2021-07-08 08:16:51 +0000janiczek(~janiczek@89-24-215-117.customers.tmcz.cz)
2021-07-08 08:17:18 +0000 <janiczek> @pl \x -> f x 2
2021-07-08 08:17:18 +0000 <lambdabot> flip f 2
2021-07-08 08:17:36 +0000sshine(~simon@hubris.eta.solutions)
2021-07-08 08:17:36 +0000allbery_b(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-07-08 08:17:36 +0000viluon(uid453725@id-453725.brockwell.irccloud.com)
2021-07-08 08:19:02 +0000 <zyklotomic> merijn: and -O0 should turn that off right
2021-07-08 08:19:02 +0000 <zyklotomic> i'm reading https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/using-optimisation.html
2021-07-08 08:19:03 +0000 <zyklotomic> trying to force thunks to happen
2021-07-08 08:19:03 +0000 <zyklotomic> *turn off the strictness analyzer
2021-07-08 08:19:09 +0000geekosaur(~geekosaur@xmonad/geekosaur)
2021-07-08 08:19:40 +0000leah2(~leah@vuxu.org)
2021-07-08 08:21:48 +0000janiczek(~janiczek@89-24-215-117.customers.tmcz.cz) (Quit: WeeChat 3.2)
2021-07-08 08:24:55 +0000jippiedoe(~david@2a02-a44c-e14e-1-2789-7e8e-a3b3-3994.fixed6.kpn.net) (Remote host closed the connection)
2021-07-08 08:25:00 +0000jippiedoe(~david@2a02-a44c-e14e-1-a11c-6737-273e-abfe.fixed6.kpn.net)
2021-07-08 08:25:22 +0000michalz(~michalz@185.246.204.121)
2021-07-08 08:25:22 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
2021-07-08 08:25:22 +0000Obo(~roberto@94.191.137.180.mobile.tre.se) (Ping timeout: 265 seconds)
2021-07-08 08:25:22 +0000 <sidv> I'm trying to do precise time calculations down to the millisecond, does UTCTime from the time package support this level of precision?
2021-07-08 08:25:22 +0000arjun(~Srain@user/arjun) (Ping timeout: 246 seconds)
2021-07-08 08:25:23 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-07-08 08:25:39 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 08:25:39 +0000Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-07-08 08:25:51 +0000 <merijn> Depends on your machine? :p
2021-07-08 08:26:00 +0000 <merijn> What sorta precise time calculations?
2021-07-08 08:26:05 +0000 <merijn> Like benchmark timings?
2021-07-08 08:26:45 +0000azeem(~azeem@176.200.224.11) (Read error: Connection reset by peer)
2021-07-08 08:26:46 +0000 <sidv> I'm dealing with APIs that give timestamps in milliseconds
2021-07-08 08:26:48 +0000Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net)
2021-07-08 08:27:01 +0000 <sidv> I'm trying to write a scraper for time series data
2021-07-08 08:27:13 +0000azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it)
2021-07-08 08:27:57 +0000 <sidv> Is it better to keep things as UTCTime or just store the timestamp as an Int64 or something
2021-07-08 08:28:04 +0000 <merijn> sidv: https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Clock.html#t:DiffTime
2021-07-08 08:28:11 +0000 <merijn> sidv: Docs says it has picosecond resolution
2021-07-08 08:28:39 +0000 <merijn> Since UTCTime is just a Day and a DiffTime
2021-07-08 08:30:26 +0000zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2021-07-08 08:30:43 +0000 <sidv> oh that's perfect
2021-07-08 08:30:43 +0000 <sidv> thanks merijn
2021-07-08 08:30:43 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039)
2021-07-08 08:30:43 +0000MidAutumnMoon9(~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
2021-07-08 08:31:38 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 272 seconds)
2021-07-08 08:32:39 +0000 <viluon> hi, is there a GHC.Generics -based alternative to SYB? I'm looking for something with similarly high-level traversals/schemes which would generalise type-specific cases to type-agnostic ones, but with the additional structure of a sum-of-products representation
2021-07-08 08:35:40 +0000polux(~polux@51.15.169.172) (Quit: The Lounge - https://thelounge.github.io)
2021-07-08 08:35:44 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039) (Ping timeout: 252 seconds)
2021-07-08 08:35:45 +0000polux(~polux@51.15.169.172)
2021-07-08 08:36:51 +0000MidAutumnMoon9(~MidAutumn@user/midautumnmoon)
2021-07-08 08:39:31 +0000hmmmas(~chenqisu1@183.217.200.144)
2021-07-08 08:40:42 +0000Arahael(~arahael@60-240-135-223.tpgi.com.au) (Ping timeout: 256 seconds)
2021-07-08 08:47:22 +0000Pickchea(~private@user/pickchea) (Ping timeout: 258 seconds)
2021-07-08 08:50:47 +0000zaquest(~notzaques@5.128.210.178)
2021-07-08 08:50:48 +0000arahael(~arahael@118.211.182.212)
2021-07-08 08:50:48 +0000chomwitt(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4)
2021-07-08 08:50:48 +0000mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-07-08 08:50:49 +0000arjun(~Srain@user/arjun)
2021-07-08 08:50:49 +0000dunj3(~dunj3@2001:16b8:3066:7300:d4d1:5d56:be5f:cf84)
2021-07-08 08:55:21 +0000m4lvin(~m4lvin@w4eg.de) (Quit: m4lvin)
2021-07-08 08:56:51 +0000 <dminuoso> viluon: You mean like generics-sop?
2021-07-08 08:57:10 +0000derelict(~derelict@user/derelict) (Ping timeout: 246 seconds)
2021-07-08 08:57:12 +0000MoC(~moc@user/moc)
2021-07-08 08:58:01 +0000 <dminuoso> (or sop-core, I guess)
2021-07-08 08:58:31 +0000 <dminuoso> Well. Both together. :)
2021-07-08 09:01:25 +0000mpt(~tom@2a02:908:1862:49e0::8)
2021-07-08 09:01:53 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 09:02:34 +0000zeenk(~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3)
2021-07-08 09:06:16 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 246 seconds)
2021-07-08 09:06:38 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 09:10:03 +0000Pickchea(~private@user/pickchea)
2021-07-08 09:11:10 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 246 seconds)
2021-07-08 09:17:23 +0000arjun(~Srain@user/arjun) (Ping timeout: 252 seconds)
2021-07-08 09:20:41 +0000APic(apic@apic.name) (Ping timeout: 252 seconds)
2021-07-08 09:23:46 +0000mpt(~tom@2a02:908:1862:49e0::8) (Ping timeout: 246 seconds)
2021-07-08 09:24:12 +0000Guest29(~Guest29@2a02:a03f:8dbe:300:f1f1:39aa:3c9b:ab9c)
2021-07-08 09:25:50 +0000jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-07-08 09:26:25 +0000jneira(~jneira@212.8.115.226)
2021-07-08 09:26:32 +0000kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-07-08 09:26:49 +0000sidv(~sidv@23.252.50.92) (Ping timeout: 246 seconds)
2021-07-08 09:29:17 +0000 <viluon> dminuoso: oh, generics-sop has that kind of functionality? is there a variant of the paradise benchmark implemented with it?
2021-07-08 09:30:16 +0000 <Profpatsch> viluon: what’s the paradise benchmark?
2021-07-08 09:31:09 +0000 <Profpatsch> I can only find heaven benchmark
2021-07-08 09:31:30 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-07-08 09:31:38 +0000 <viluon> Profpatsch: it's an old but at the time seemingly popular exercise in generic programming, see e.g. http://web.archive.org/web/20080622204226/http://www.cs.vu.nl/boilerplate/#paradise
2021-07-08 09:33:41 +0000 <Profpatsch> Oh god, one letter constructor names, this must be the same people that made SYB
2021-07-08 09:35:19 +0000 <Profpatsch> I would like a second helping of one letter names that don’t correspond to any mnemonics please
2021-07-08 09:35:50 +0000ubert(~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de)
2021-07-08 09:35:55 +0000 <Profpatsch> Also how is it paradise if there’s XML and +1 Company employee salaries in the example
2021-07-08 09:35:59 +0000 <int-e> Why do you call it SYB instead of Scrap Your Boilerplate ;-)
2021-07-08 09:36:45 +0000 <Profpatsch> Cause bad naming means your framework’s name is so long and unwieldy that you have to resort to bad abbreviations
2021-07-08 09:36:58 +0000chomwitt(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) (Ping timeout: 240 seconds)
2021-07-08 09:37:12 +0000 <Profpatsch> sorry being snarky, but the main problem with Generics is not that they are not powerful, but their awful naming.
2021-07-08 09:37:26 +0000ubert1(~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de)
2021-07-08 09:37:50 +0000 <int-e> Heh, you don't need to apologize for being snarky in reply to a snark.
2021-07-08 09:37:51 +0000 <Profpatsch> I haven’t looked at generics-sop yet, I hope it doesn’t fall into the same trap
2021-07-08 09:38:00 +0000Pickchea(~private@user/pickchea) (Ping timeout: 252 seconds)
2021-07-08 09:38:18 +0000 <absence> in ghc 9, template haskell was changed so liftTyped returns Quote m => Code m a instead of Q (TExp a). this breaks the code "either fail liftTyped something" because Code doesn't have a MonadFail instance. what's the recommended way to deal with this? manually wrap the result of fail in Code, i.e. "either (Code . fail) liftTyped something", or does that have other consequences?
2021-07-08 09:39:53 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-07-08 09:40:14 +0000lavaman(~lavaman@98.38.249.169)
2021-07-08 09:40:41 +0000 <int-e> > let b = 1; 𝐛 = 2; 𝑏 = 3; 𝒃 = 4; 𝒷 = 5; 𝓫 = 6; 𝔟 = 7; 𝕓 = 8; 𝖇 = 9; 𝘣 = 10; 𝙗 = 11; 𝚋 = 12 in b+𝐛+𝑏+𝒃+𝒷+𝓫+𝔟+𝕓+𝖇+𝘣+𝙗+𝚋
2021-07-08 09:40:43 +0000 <lambdabot> 78
2021-07-08 09:40:45 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 09:41:22 +0000Pickchea(~private@user/pickchea)
2021-07-08 09:41:30 +0000 <dminuoso> int-e: Is this Agda code?
2021-07-08 09:41:32 +0000 <dminuoso> :>
2021-07-08 09:41:43 +0000 <int-e> dminuoso: lambdabot doesn't do Agda
2021-07-08 09:41:56 +0000 <int-e> But, heh.
2021-07-08 09:43:09 +0000hmmmas(~chenqisu1@183.217.200.144) (Quit: Leaving.)
2021-07-08 09:45:06 +0000lavaman(~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
2021-07-08 09:46:01 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-07-08 09:46:39 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 09:47:11 +0000kayprish(~kayprish@46.240.143.86)
2021-07-08 09:47:49 +0000Guest29(~Guest29@2a02:a03f:8dbe:300:f1f1:39aa:3c9b:ab9c) (Ping timeout: 246 seconds)
2021-07-08 09:49:43 +0000Guest29(~Guest29@2a02:a03f:8dbe:300:c46e:da5f:3e3c:1d44)
2021-07-08 09:51:27 +0000 <Guest29> Does RIO provide a way to set environment variables? RIO.Process.envVarsL only allows getting values
2021-07-08 09:52:09 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-07-08 09:52:42 +0000Pickchea(~private@user/pickchea) (Ping timeout: 272 seconds)
2021-07-08 09:52:51 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 09:54:26 +0000 <Taneb> Guest29: it's not possible to set environment variables like that, with or without RIO
2021-07-08 09:57:52 +0000fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-07-08 09:58:04 +0000jippiedoe(~david@2a02-a44c-e14e-1-a11c-6737-273e-abfe.fixed6.kpn.net) (Ping timeout: 246 seconds)
2021-07-08 09:58:17 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-07-08 09:58:33 +0000fef(~thedawn@user/thedawn)
2021-07-08 09:59:12 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 09:59:32 +0000 <Guest29> oh ok. thx
2021-07-08 10:00:23 +0000Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net) (Ping timeout: 268 seconds)
2021-07-08 10:02:02 +0000myShoggoth(~myShoggot@75.164.51.64) (Read error: Connection reset by peer)
2021-07-08 10:02:02 +0000Obo(~roberto@94.191.137.180.mobile.tre.se)
2021-07-08 10:04:48 +0000azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-07-08 10:04:54 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-07-08 10:05:12 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 10:07:06 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 10:10:42 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-07-08 10:11:12 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 10:11:50 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 252 seconds)
2021-07-08 10:13:46 +0000darklambda(~whateverg@111.65.56.40) (Quit: leaving)
2021-07-08 10:15:09 +0000solaire(~solaire@pool-108-31-85-19.washdc.fios.verizon.net)
2021-07-08 10:16:20 +0000solaire(~solaire@pool-108-31-85-19.washdc.fios.verizon.net) (Client Quit)
2021-07-08 10:16:46 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-07-08 10:16:48 +0000darklambda(~whateverg@111.65.56.40)
2021-07-08 10:17:12 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 10:18:22 +0000lavaman(~lavaman@98.38.249.169)
2021-07-08 10:19:28 +0000Guest29(~Guest29@2a02:a03f:8dbe:300:c46e:da5f:3e3c:1d44) (Quit: Client closed)
2021-07-08 10:20:43 +0000azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it)
2021-07-08 10:22:09 +0000drd(~drd@93-39-151-19.ip76.fastwebnet.it)
2021-07-08 10:22:17 +0000Atum_(~IRC@user/atum/x-2392232)
2021-07-08 10:22:34 +0000lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2021-07-08 10:23:43 +0000AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net)
2021-07-08 10:24:17 +0000 <boxscape> > "b+𝐛+𝑏+𝒃+𝒷+𝓫+𝔟+𝕓+𝖇+𝘣+𝙗+𝚋"
2021-07-08 10:24:19 +0000 <lambdabot> "b+\119835+\119887+\119939+\119991+\120043+\120095+\120147+\120199+\120355+\...
2021-07-08 10:25:51 +0000zcombinator(~zcombinat@5.180.62.223)
2021-07-08 10:26:33 +0000 <kuribas> wouldn't it be nice if you could write TH like mustache templates?
2021-07-08 10:27:32 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-07-08 10:27:44 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 10:27:50 +0000 <kuribas> or something else textual
2021-07-08 10:28:07 +0000Pickchea(~private@user/pickchea)
2021-07-08 10:29:12 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 10:29:55 +0000 <Rembane> Sounds intriguing, can it be done as a hack using the preprocessor?
2021-07-08 10:30:31 +0000 <Rembane> ...just to get a feel for it
2021-07-08 10:32:36 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 272 seconds)
2021-07-08 10:33:39 +0000 <boxscape> if <*> is "ap", how do you pronounce <**>?
2021-07-08 10:34:23 +0000 <boxscape> I was thinking maybe "flap", portmanteau of flip and ap
2021-07-08 10:34:34 +0000 <boxscape> but I don't know if there's a semi-established name
2021-07-08 10:34:47 +0000 <Atum_> stack compilation on windows is super slow, wow
2021-07-08 10:35:09 +0000 <Atum_> installed wsl, and now it is like, 10x faster
2021-07-08 10:35:13 +0000 <boxscape> compiling stack or compiling a program with stack?
2021-07-08 10:35:23 +0000 <Atum_> compiling a program with stack
2021-07-08 10:35:25 +0000 <Atum_> using the default template
2021-07-08 10:35:28 +0000 <boxscape> I see, weird
2021-07-08 10:37:15 +0000mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-chan)
2021-07-08 10:37:30 +0000mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-07-08 10:39:34 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-07-08 10:40:49 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 10:42:33 +0000zcombinator(~zcombinat@5.180.62.223) (Quit: WeeChat 3.2)
2021-07-08 10:46:32 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-07-08 10:46:46 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 10:47:19 +0000zcombinator(~zcombinat@host-87-7-58-35.retail.telecomitalia.it)
2021-07-08 10:48:28 +0000chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr)
2021-07-08 10:49:54 +0000kayprish(~kayprish@46.240.143.86) (Ping timeout: 252 seconds)
2021-07-08 10:51:57 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-07-08 10:52:42 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 10:58:05 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-07-08 10:58:56 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 10:59:55 +0000Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2021-07-08 11:00:25 +0000Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-08 11:03:49 +0000kenran(~kenran@200116b82bdcfa0070f86b22d449a64a.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2021-07-08 11:04:13 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-07-08 11:04:36 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 11:05:18 +0000 <dminuoso> kuribas: Nothing keeps you from using mustache on haskell files! :D
2021-07-08 11:08:03 +0000Feuermagier(~Feuermagi@user/feuermagier)
2021-07-08 11:09:49 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-07-08 11:10:33 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 11:10:54 +0000zcombinator(~zcombinat@host-87-7-58-35.retail.telecomitalia.it) (Quit: WeeChat 3.2)
2021-07-08 11:11:02 +0000machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-07-08 11:11:55 +0000Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-07-08 11:13:36 +0000Kirat(~Gill@157.39.157.217)
2021-07-08 11:13:49 +0000Kirat(~Gill@157.39.157.217) (Client Quit)
2021-07-08 11:15:46 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-07-08 11:16:48 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 11:19:07 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-07-08 11:25:08 +0000chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr) (Ping timeout: 265 seconds)
2021-07-08 11:26:34 +0000drd(~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 240 seconds)
2021-07-08 11:28:06 +0000chris-the-slurpa(~chris@81.96.113.213)
2021-07-08 11:35:21 +0000Pickchea(~private@user/pickchea) (Ping timeout: 268 seconds)
2021-07-08 11:40:25 +0000 <viluon> dminuoso: sorry to ping you again, would you happen to know about places I could learn generics-sop by example?
2021-07-08 11:40:28 +0000Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2021-07-08 11:41:29 +0000chris-the-slurpa(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-08 11:42:00 +0000chris-the-slurpa(~chris@81.96.113.213)
2021-07-08 11:43:33 +0000chris-th_(~chris@81.96.113.213)
2021-07-08 11:43:33 +0000chris-the-slurpa(~chris@81.96.113.213) (Read error: Connection reset by peer)
2021-07-08 11:44:00 +0000sander(~sander@user/sander) (Quit: So long! :))
2021-07-08 11:44:12 +0000sander(~sander@user/sander)
2021-07-08 11:44:36 +0000Obo(~roberto@94.191.137.180.mobile.tre.se) (Read error: Connection reset by peer)
2021-07-08 11:47:39 +0000dunkeln_(~dunkeln@188.70.10.207) (Ping timeout: 252 seconds)
2021-07-08 11:50:06 +0000favonia(~favonia@user/favonia)
2021-07-08 11:50:21 +0000Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net)
2021-07-08 11:57:59 +0000Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
2021-07-08 12:00:24 +0000chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr)
2021-07-08 12:00:26 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 12:03:00 +0000jippiedoe(~david@2a02-a44c-e14e-1-bdc4-1e8f-afa7-3bad.fixed6.kpn.net)
2021-07-08 12:03:04 +0000zcombinator(~zcombinat@host-87-7-58-35.retail.telecomitalia.it)
2021-07-08 12:03:38 +0000MQ-17J(~MQ-17J@8.21.10.15) (Ping timeout: 258 seconds)
2021-07-08 12:05:53 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-07-08 12:06:26 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 12:06:40 +0000isekaijin(~pyon@user/pyon) (Quit: WeeChat 3.2)
2021-07-08 12:08:00 +0000chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr) (Ping timeout: 252 seconds)
2021-07-08 12:10:34 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2021-07-08 12:12:24 +0000 <lechner> Hi, how can I run these two IO statements inside the ZMQ monad, please? https://dpaste.org/cPWe#L47,48
2021-07-08 12:13:01 +0000 <merijn> liftIO, probably
2021-07-08 12:13:28 +0000Guest2492(~Martin@cpe-188-129-56-84.dynamic.amis.hr)
2021-07-08 12:13:38 +0000 <lechner> i know, but do i use point-free style?
2021-07-08 12:15:37 +0000lortabac(~lortabac@95.138.56.124)
2021-07-08 12:16:47 +0000justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1)
2021-07-08 12:16:51 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 12:19:31 +0000Guest2492(~Martin@cpe-188-129-56-84.dynamic.amis.hr) (Remote host closed the connection)
2021-07-08 12:19:59 +0000Pickchea(~private@user/pickchea)
2021-07-08 12:20:18 +0000hiruji(~hiruji@user/hiruji)
2021-07-08 12:20:29 +0000APic(apic@apic.name)
2021-07-08 12:22:25 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 258 seconds)
2021-07-08 12:22:59 +0000hatz_(~user@2a05:f480:1400:f44:5400:3ff:fe6d:f349)
2021-07-08 12:23:29 +0000 <bryan[m]> It's not required, no. Are you asking how to combine the two statements? You don't need to do so, although it's possible
2021-07-08 12:23:46 +0000 <bryan[m]> I assume you're talking about the two commented lines
2021-07-08 12:23:50 +0000Martinsos(~Martinsos@cpe-188-129-56-84.dynamic.amis.hr)
2021-07-08 12:24:08 +0000 <lechner> i'd prefer not to, because it would teach me something about variables too
2021-07-08 12:24:15 +0000 <lechner> yes
2021-07-08 12:24:28 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 12:26:03 +0000tomscow-orker
2021-07-08 12:26:03 +0000 <exarkun> What is telling me `Setup: The pkg-config package 'libchallenge_bypass_ristretto_ffi' is required but it could not be found.` and what does it mean I'm missing?
2021-07-08 12:26:11 +0000 <bryan[m]> Then yeah, you need to add liftIO to both lines in the right place
2021-07-08 12:26:19 +0000cow-orkertoms
2021-07-08 12:26:25 +0000acidjnk(~acidjnk@p200300d0c72b9563c9e402731a025c7c.dip0.t-ipconnect.de)
2021-07-08 12:27:01 +0000SoF(~skius@user/skius) (Quit: Ping timeout (120 seconds))
2021-07-08 12:27:19 +0000SoF(~skius@user/skius)
2021-07-08 12:27:56 +0000 <bryan[m]> exarkun: the cabal package must list pkg-config dependencies (pkg-config is a cross-distribution tool used to find system libraries). Your system is presumably missing that system package
2021-07-08 12:28:41 +0000 <bryan[m]> So it's cabal that's telling you the message
2021-07-08 12:28:42 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 240 seconds)
2021-07-08 12:30:42 +0000acidjnk(~acidjnk@p200300d0c72b9563c9e402731a025c7c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-07-08 12:30:47 +0000 <exarkun> Okay. I have `pkgconfig-depends: libchallenge_bypass_ristretto_ffi` in my .cabal file. So cabal is now asking `pkg-config` some question about `libchallenge_bypass_ristretto_ffi`? Like maybe `pkg-config --exists libchallenge_bypass_ristretto_ffi` or some such? And `pkg-config` doesn't know anything about it it...
2021-07-08 12:32:19 +0000 <exarkun> Does this also come from Cabal? "error: The pkg-conf packages does not contain the package: libchallenge_bypass_ristretto_ffi (pkg-conf dependency)."
2021-07-08 12:33:25 +0000 <merijn> exarkun: It means cabal asked pkg-config about it, but your pkg-config install didn't know about it
2021-07-08 12:34:19 +0000 <exarkun> merijn: The first one or the second one?
2021-07-08 12:35:11 +0000 <merijn> For sure the first one is that, the 2nd probably too?
2021-07-08 12:35:27 +0000 <merijn> exarkun: I think the 2nd one is just cabal forwarding the output of pkg-config?
2021-07-08 12:39:39 +0000 <lechner> Hi, why does the last line here give "Couldn't match type ‘[]’ with ‘ZMQ z’ Expected type: ZMQ z Char Actual type: String please, while the assignment in the line above it worked just fine? https://dpaste.org/DzEH#L31
2021-07-08 12:40:06 +0000Feuermagier(~Feuermagi@user/feuermagier) (Read error: Connection reset by peer)
2021-07-08 12:40:43 +0000nsilv(~nsilv@212.103.198.210)
2021-07-08 12:43:10 +0000 <mniip> what does "constraint from maximum version of Cabal used by Setup.hs requires <3.4"
2021-07-08 12:43:12 +0000 <mniip> mean
2021-07-08 12:43:38 +0000 <mniip> I don't see such constraint anywhere in the cabal file
2021-07-08 12:45:28 +0000 <exarkun> I suspect that the `pkg-conf` error comes from something else... haskell.nix, I guess. It appears when I remove the nixpkgs overlay that defines libchallenge_bypass_ristretto_ffi.
2021-07-08 12:46:33 +0000 <merijn> mniip: You have a custom Setup.hs?
2021-07-08 12:46:38 +0000 <mniip> yes
2021-07-08 12:46:46 +0000 <merijn> mniip: Do you have setup-depends?
2021-07-08 12:46:49 +0000 <mniip> yes
2021-07-08 12:47:02 +0000 <mniip> really I'm trying to install ghc-paths into GHC HEAD inplace package db
2021-07-08 12:47:04 +0000 <merijn> hmm
2021-07-08 12:47:41 +0000 <merijn> Which Cabal version do you have installed?
2021-07-08 12:47:51 +0000 <merijn> Is it maybe using one too old for your GHC?
2021-07-08 12:48:13 +0000 <mniip> cabal-install ver 3.2.0.0
2021-07-08 12:48:28 +0000 <merijn> Pretty sure that doesn't work with GHC HEAD
2021-07-08 12:48:30 +0000 <mniip> oh
2021-07-08 12:48:39 +0000 <merijn> Doesn't 9.0 or 9.2 require 3.4?
2021-07-08 12:48:43 +0000AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.)
2021-07-08 12:48:50 +0000 <merijn> So presumably HEAD requires something newer too
2021-07-08 12:48:51 +0000 <mniip> does 3.4
2021-07-08 12:49:04 +0000 <mniip> let's try that
2021-07-08 12:49:26 +0000 <merijn> Cabal doesn't guarantee forward compat, only backwards
2021-07-08 12:49:40 +0000 <mniip> understandable
2021-07-08 12:49:59 +0000Feuermagier(~Feuermagi@user/feuermagier)
2021-07-08 12:50:52 +0000andreabedini(~andreabed@8s8kj6nl13s474s8p7bh.ip6.superloop.com)
2021-07-08 12:51:10 +0000Pickchea(~private@user/pickchea) (Ping timeout: 265 seconds)
2021-07-08 12:51:47 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 12:51:50 +0000scrazen(~scrazen@user/scrazen)
2021-07-08 12:53:15 +0000wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com)
2021-07-08 12:56:04 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-07-08 12:56:08 +0000econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-07-08 12:57:00 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 272 seconds)
2021-07-08 13:01:11 +0000alx741(~alx741@181.196.69.147)
2021-07-08 13:02:07 +0000fef(~thedawn@user/thedawn) (Ping timeout: 244 seconds)
2021-07-08 13:02:48 +0000 <bryan[m]> lechner: `<-` means to unwrap a monadic value, but your last line doesn't have one. (Well, technically it does, but it's the wrong kind of monad. Pretend I didn't just tell you that.) If you want to create a new name for a non-monadic value inside of a do-block, use let. `let configPath = head args`
2021-07-08 13:03:23 +0000Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-07-08 13:03:40 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 13:04:34 +0000chris-th_(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-08 13:05:16 +0000chris-the-slurpa(~chris@81.96.113.213)
2021-07-08 13:08:14 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-07-08 13:08:23 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 13:09:17 +0000jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-07-08 13:09:29 +0000chris-the-slurpa(~chris@81.96.113.213) (Ping timeout: 252 seconds)
2021-07-08 13:11:57 +0000 <merijn> mniip: Did that resolve things?
2021-07-08 13:12:05 +0000 <mniip> compiling :P
2021-07-08 13:12:15 +0000 <merijn> That's further than it got before, no? :p
2021-07-08 13:12:23 +0000 <mniip> compiling cabal-install
2021-07-08 13:12:26 +0000 <merijn> ah
2021-07-08 13:12:40 +0000 <lechner> bryan[m]: thanks!
2021-07-08 13:18:55 +0000 <mniip> it worked in the end
2021-07-08 13:22:51 +0000 <merijn> mniip: \o/
2021-07-08 13:29:37 +0000 <viluon> hi, I'm trying to understand generics-sop, going through the pretty-sop example (https://github.com/well-typed/pretty-sop/blob/master/src/Generics/SOP/PrettyVal.hs#L33). It looks like gprettyVal' requires the `All SListI xss` constraint (equivalent to `SListI2 xss`, right?) which from what I can tell ensures that the code of the datatype (represented by the `xss` parameter) has to have exactly one field in every product.
2021-07-08 13:29:38 +0000 <viluon> That's obviously not true, as the README example shows (and also such a constraint doesn't follow from those of `gprettyVal`, `gprettyVal'`'s caller). Where am I going wrong?
2021-07-08 13:31:19 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 13:32:12 +0000Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2021-07-08 13:37:06 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Remote host closed the connection)
2021-07-08 13:37:18 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 13:38:08 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 13:43:37 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 268 seconds)
2021-07-08 13:44:42 +0000Martinsos(~Martinsos@cpe-188-129-56-84.dynamic.amis.hr) (Remote host closed the connection)
2021-07-08 13:45:38 +0000ray(~ray@user/re)
2021-07-08 13:47:48 +0000drd(~drd@93-39-151-19.ip76.fastwebnet.it)
2021-07-08 13:47:55 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Remote host closed the connection)
2021-07-08 13:49:17 +0000chris-the-slurpa(~chris@81.96.113.213)
2021-07-08 13:50:07 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 13:51:17 +0000gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-07-08 13:51:20 +0000Pickchea(~private@user/pickchea)
2021-07-08 13:53:02 +0000dunkeln(~dunkeln@94.129.65.28)
2021-07-08 13:58:09 +0000Kirat(~Gill@157.39.129.34)
2021-07-08 13:58:21 +0000Kirat(~Gill@157.39.129.34) (Client Quit)
2021-07-08 14:00:16 +0000argento(~argent0@168-227-97-29.ptr.westnet.com.ar)
2021-07-08 14:03:10 +0000chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr)
2021-07-08 14:08:34 +0000xff0x(~xff0x@2001:1a81:53dc:b800:8c77:48f3:1e3:3060) (Ping timeout: 240 seconds)
2021-07-08 14:09:18 +0000Sgeo(~Sgeo@user/sgeo)
2021-07-08 14:09:32 +0000zyklotomic(~ethan@2604:a880:800:10::79f:8001) (WeeChat 2.8)
2021-07-08 14:10:12 +0000hexreel(~hr@69.233.98.238)
2021-07-08 14:11:19 +0000shredder(~user@user/shredder) (Quit: quitting)
2021-07-08 14:13:09 +0000shredder(~user@user/shredder)
2021-07-08 14:13:21 +0000xff0x(~xff0x@2001:1a81:53dc:b800:8c77:48f3:1e3:3060)
2021-07-08 14:13:24 +0000dunkeln(~dunkeln@94.129.65.28) (Quit: leaving)
2021-07-08 14:18:43 +0000Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net)
2021-07-08 14:27:22 +0000wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-07-08 14:27:57 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 14:29:15 +0000nsilv(~nsilv@212.103.198.210) (Ping timeout: 268 seconds)
2021-07-08 14:30:16 +0000amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-07-08 14:31:00 +0000nsilv(~nsilv@212.103.198.210)
2021-07-08 14:32:57 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 268 seconds)
2021-07-08 14:34:15 +0000jakalx(~jakalx@base.jakalx.net) ()
2021-07-08 14:35:11 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039)
2021-07-08 14:39:22 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039) (Ping timeout: 240 seconds)
2021-07-08 14:40:52 +0000chase(~chase@89.45.224.218)
2021-07-08 14:41:01 +0000chase(~chase@89.45.224.218) (Client Quit)
2021-07-08 14:42:08 +0000ubert1(~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2021-07-08 14:48:28 +0000euandreh(~euandreh@2804:14c:33:9fe5:547e:4393:1b6c:3477) (Ping timeout: 256 seconds)
2021-07-08 14:49:18 +0000derelict(~derelict@user/derelict)
2021-07-08 14:49:21 +0000euandreh(~euandreh@2804:14c:33:9fe5:3720:61ec:ee32:2ddc)
2021-07-08 14:51:19 +0000MrVulcan(~MrVulcan@101.175.88.138)
2021-07-08 14:51:50 +0000andreabedini(~andreabed@8s8kj6nl13s474s8p7bh.ip6.superloop.com) (Quit: WeeChat 3.2)
2021-07-08 14:56:34 +0000michalz(~michalz@185.246.204.121) (Remote host closed the connection)
2021-07-08 14:57:27 +0000hatz_(~user@2a05:f480:1400:f44:5400:3ff:fe6d:f349) (Quit: hatz_)
2021-07-08 14:57:51 +0000 <lechner> Hi, if 'a $ b c' is the same as 'a (b c)' why, please, does this give an error bind responder ("tcp://*:" ++ show $ port config) while this does not bind responder ("tcp://*:" ++ show (port config))
2021-07-08 14:59:46 +0000dut(~dut@user/dut)
2021-07-08 15:01:21 +0000jakalx(~jakalx@base.jakalx.net)
2021-07-08 15:01:36 +0000 <geekosaur> because `a $ b c` is only half the story
2021-07-08 15:01:51 +0000 <geekosaur> a b $ c d is the same as (a b) (c d)
2021-07-08 15:02:18 +0000 <geekosaur> so yoiu're trying to append the function `show` to a string
2021-07-08 15:02:31 +0000 <lechner> ah
2021-07-08 15:02:38 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds)
2021-07-08 15:02:40 +0000dut(~dut@user/dut) (Client Quit)
2021-07-08 15:03:04 +0000 <lechner> so (show $ port config) is perhaps a better way to write that
2021-07-08 15:03:19 +0000 <geekosaur> yes
2021-07-08 15:03:52 +0000hatz_(~user@2a05:f480:1400:f44:5400:3ff:fe6d:f349)
2021-07-08 15:04:02 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 15:05:06 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039)
2021-07-08 15:05:22 +0000ray(~ray@user/re) (Quit: WeeChat 3.2)
2021-07-08 15:05:42 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-07-08 15:06:02 +0000ray(~ray@user/re)
2021-07-08 15:09:46 +0000azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Ping timeout: 240 seconds)
2021-07-08 15:11:25 +0000MoC(~moc@user/moc) (Quit: Konversation terminated!)
2021-07-08 15:12:44 +0000azeem(~azeem@176.200.191.45)
2021-07-08 15:12:54 +0000nikoo
2021-07-08 15:13:14 +0000MrVulcan(~MrVulcan@101.175.88.138) (Ping timeout: 252 seconds)
2021-07-08 15:14:16 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-07-08 15:15:19 +0000norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
2021-07-08 15:16:19 +0000neurocyte40(~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
2021-07-08 15:17:47 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-07-08 15:18:17 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 15:18:45 +0000Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net) (Quit: WeeChat 2.8)
2021-07-08 15:19:06 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 240 seconds)
2021-07-08 15:19:24 +0000azeem(~azeem@176.200.191.45) (Ping timeout: 252 seconds)
2021-07-08 15:20:52 +0000azeem(~azeem@176.201.8.194)
2021-07-08 15:20:54 +0000Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net)
2021-07-08 15:22:07 +0000tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-07-08 15:23:14 +0000neurocyte40(~neurocyte@45.93.108.182)
2021-07-08 15:23:14 +0000neurocyte40(~neurocyte@45.93.108.182) (Changing host)
2021-07-08 15:23:14 +0000neurocyte40(~neurocyte@user/neurocyte)
2021-07-08 15:23:28 +0000 <monochrom> ("tcp://*:" ++ show (port config))
2021-07-08 15:24:03 +0000 <monochrom> Since the cause of "I hate parentheses" is lost anyway, why keep $ around?
2021-07-08 15:24:14 +0000rostero(uid236576@id-236576.tooting.irccloud.com)
2021-07-08 15:25:17 +0000 <lechner> the other set or parentheses corresponds to %s in the formatting string
2021-07-08 15:25:49 +0000 <lechner> that could help when there are more than one
2021-07-08 15:26:16 +0000 <monochrom> But there is no %s.
2021-07-08 15:26:33 +0000lortabac(~lortabac@95.138.56.124) (Quit: WeeChat 2.8)
2021-07-08 15:26:38 +0000 <monochrom> printf "%s" (show whatever) I would agree.
2021-07-08 15:27:06 +0000 <monochrom> You have an infix operator ++ instead.
2021-07-08 15:27:18 +0000 <lechner> you are right! i was thinking two lines down in my code
2021-07-08 15:28:38 +0000 <lechner> i am starting to like this haskelling
2021-07-08 15:30:11 +0000spruit11_(~quassel@86-82-44-193.fixed.kpn.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-07-08 15:30:37 +0000spruit11(~quassel@2a02:a467:ccd6:1:f403:cf1e:97b5:1c9b)
2021-07-08 15:32:14 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2021-07-08 15:35:38 +0000azeem(~azeem@176.201.8.194) (Read error: Connection reset by peer)
2021-07-08 15:36:30 +0000 <wroathe> What would you call a function that does something like [a -> b] -> a -> b
2021-07-08 15:36:51 +0000 <wroathe> well, actually it's [a -> ()] -> a -> ()
2021-07-08 15:37:01 +0000azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it)
2021-07-08 15:37:15 +0000 <wroathe> Just takes a list of functions and calls them in sequence by applying a to each and ignoring the result
2021-07-08 15:38:11 +0000 <monochrom> head
2021-07-08 15:39:39 +0000 <monochrom> const () (map ($ your_a) your_list)
2021-07-08 15:39:59 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 15:40:40 +0000norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Remote host closed the connection)
2021-07-08 15:40:45 +0000MQ-17J(~MQ-17J@8.21.10.15)
2021-07-08 15:41:05 +0000norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
2021-07-08 15:43:09 +0000 <dsal> :t map (const ())
2021-07-08 15:43:10 +0000 <lambdabot> error:
2021-07-08 15:43:10 +0000 <lambdabot> Ambiguous occurrence ‘map’
2021-07-08 15:43:10 +0000 <lambdabot> It could refer to
2021-07-08 15:43:27 +0000 <monochrom> That's strange.
2021-07-08 15:43:30 +0000 <monochrom> @undefine
2021-07-08 15:43:31 +0000 <lambdabot> Undefined.
2021-07-08 15:43:36 +0000 <monochrom> :t map
2021-07-08 15:43:37 +0000 <lambdabot> (a -> b) -> [a] -> [b]
2021-07-08 15:43:40 +0000 <monochrom> better
2021-07-08 15:44:16 +0000 <dsal> :t (const.const) ()
2021-07-08 15:44:17 +0000 <lambdabot> b1 -> b2 -> ()
2021-07-08 15:44:23 +0000 <wroathe> monochrom: Why head?
2021-07-08 15:44:24 +0000gioyik(~gioyik@gateway/tor-sasl/gioyik)
2021-07-08 15:44:39 +0000 <monochrom> [t] -> t with t = a->b
2021-07-08 15:44:49 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 258 seconds)
2021-07-08 15:45:02 +0000fluffyballoon(~fluffybal@199.204.58.62)
2021-07-08 15:45:21 +0000 <dsal> wroathe: if you don't want the results of a function, bit calling it is the restaurant l easiest way to avoid it
2021-07-08 15:45:40 +0000 <dsal> Phone language...
2021-07-08 15:45:50 +0000 <dsal> Just don't call the function.
2021-07-08 15:46:01 +0000 <wroathe> Ah. The scenario is that I'm actually doing this in Javascript, and I was using function composition but the object each routine is operating on is a reference type, and so for the sake of sanity I'm not going to require the user to return the object that's being operated on, and instead this routine is just going to call each function in a sequence with the object
2021-07-08 15:46:35 +0000 <dsal> :t traverse_
2021-07-08 15:46:36 +0000 <monochrom> Translate our mapM_ to javascript.
2021-07-08 15:46:36 +0000 <lambdabot> (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()
2021-07-08 15:46:58 +0000 <wroathe> Ah. That's exactly what I was looking for.
2021-07-08 15:47:00 +0000 <wroathe> Thanks.
2021-07-08 15:47:22 +0000Pickchea(~private@user/pickchea) (Ping timeout: 246 seconds)
2021-07-08 15:47:44 +0000 <monochrom> X -> IO Y vs X -> Y
2021-07-08 15:48:03 +0000 <wroathe> monochrom: Yeah, that makes way more sense.
2021-07-08 15:48:48 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 15:48:52 +0000cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.2)
2021-07-08 16:03:05 +0000Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net) (Quit: WeeChat 2.8)
2021-07-08 16:11:06 +0000jippiedoe(~david@2a02-a44c-e14e-1-bdc4-1e8f-afa7-3bad.fixed6.kpn.net) (Ping timeout: 252 seconds)
2021-07-08 16:11:36 +0000smarton(~smarton@121407.xyz) (Changing host)
2021-07-08 16:11:36 +0000smarton(~smarton@gnu/webmaster/smarton)
2021-07-08 16:12:11 +0000nsilv(~nsilv@212.103.198.210) (Quit: WeeChat 3.0.1)
2021-07-08 16:13:30 +0000 <Las[m]> Does anyone here know how I'd parse only the first YAML document in a string? I'm trying to parse the YAML metadata blocks used with pandoc, but I'm assuming there's some clever way of doing it without me having to search for the `...` and stripping away everything after that.
2021-07-08 16:13:57 +0000 <Las[m]> Both HsYAML and yaml just give me an error just after the `...`, which is where the Markdown starts of course
2021-07-08 16:16:34 +0000alphabeta(~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net) (Ping timeout: 240 seconds)
2021-07-08 16:18:05 +0000xerxes(~xerxes@117.222.64.149)
2021-07-08 16:18:16 +0000 <sm[m]> parseYaml $ unlines $ takeWhile (/= "..." $ lines s ?
2021-07-08 16:19:38 +0000 <sm[m]> * parseYaml $ unlines $ takeWhile (/= "...") $ lines s ?
2021-07-08 16:20:13 +0000 <kosmikus> viluon: is your question about generics-sop still open? I'm not sure if I understand your comment correctly. the constraint `All SListI xss` does not say very much. In principle, all that it states is that all elements of `xss` must themselves be lists. This is in principle already clear by their kind, but the `SListI` gives inductive access to the list structure.
2021-07-08 16:20:35 +0000 <viluon> kosmikus: hi! yes!
2021-07-08 16:21:00 +0000 <Las[m]> sm: Yeah, I could do that, it just seems ugly since it parses it 2 times.
2021-07-08 16:21:01 +0000 <viluon> kosmikus: thanks for the clarification, the documentation however states that `SListI xs` ensures `xs` is a *singleton* list
2021-07-08 16:21:02 +0000dajoer(~david@user/gvx) (Quit: leaving)
2021-07-08 16:22:29 +0000 <kosmikus> viluon: oh, I see. this phrasing is unfortunate.
2021-07-08 16:22:36 +0000 <sm[m]> Las: if you also want the markdown part, use break and friends
2021-07-08 16:22:45 +0000 <kosmikus> viluon: I should probably improve it. there's a concept in type-level programming of "singleton types".
2021-07-08 16:22:53 +0000zeenk(~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3) (Quit: Konversation terminated!)
2021-07-08 16:23:18 +0000 <viluon> kosmikus: oh, what are singleton types? Types of a single value?
2021-07-08 16:23:24 +0000 <kosmikus> viluon: a singleton type is essentially a type that establishes a one-to-one correspondence between term-level entities and type-level entities of a particular kind.
2021-07-08 16:23:58 +0000 <kosmikus> viluon: and you can use a singleton type as a proxy to perform induction / case distinctions on types of a kind.
2021-07-08 16:24:06 +0000alx741(~alx741@181.196.69.147) (Ping timeout: 272 seconds)
2021-07-08 16:24:24 +0000cuz(~user@38.140.58.234)
2021-07-08 16:24:41 +0000 <kosmikus> viluon: so what this comment is trying to say is that the `SListI xs` constraint provides such a singleton type for the kind of type-level lists.
2021-07-08 16:24:55 +0000 <kosmikus> viluon: it does *not* mean to say that the list must somehow have exactly one element.
2021-07-08 16:25:12 +0000 <kosmikus> viluon: but I can see how the current text might give that incorrect impression.
2021-07-08 16:26:13 +0000 <kosmikus> viluon: btw, with any current version of generics-sop, explicitly stating this `All SListI xss` constraint on `gPrettyVal'` and `gPrettyVal''` is not actually required. it's already implied by the `All2 PrettyVal xss`.
2021-07-08 16:28:01 +0000 <kosmikus> viluon: a simple example of a singleton type would be the GADT `data SBool (b :: Bool) where SFalse :: SBool False; STrue :: SBool True`.
2021-07-08 16:28:01 +0000cuz(~user@38.140.58.234) (Remote host closed the connection)
2021-07-08 16:28:28 +0000cuz(~user@38.140.58.234)
2021-07-08 16:28:29 +0000 <kosmikus> viluon: now there's exactly one value `SFalse` corresponding to the type `False`, and one value `STrue` corresponding to the type `True`.
2021-07-08 16:29:01 +0000 <kosmikus> viluon: if you want to define something by induction on the kind `Bool`, you can add a parameter of type `SBool b` to it and perform pattern matching on that GADT.
2021-07-08 16:29:35 +0000 <kosmikus> viluon: there are a number of variations on this technique, including providing the value of type `SBool` implicitly by means of a type class.
2021-07-08 16:29:41 +0000kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-07-08 16:29:51 +0000 <kosmikus> viluon: `All SListI xs` does essentially that for the kind of type-level lists.
2021-07-08 16:31:20 +0000cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2021-07-08 16:31:35 +0000cheater(~Username@user/cheater)
2021-07-08 16:37:59 +0000alx741(~alx741@181.196.68.47)
2021-07-08 16:39:10 +0000chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr) (Ping timeout: 246 seconds)
2021-07-08 16:39:18 +0000Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-07-08 16:39:58 +0000 <viluon> kosmikus: thanks for the thorough explanation!
2021-07-08 16:40:58 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-07-08 16:41:31 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 16:46:09 +0000nschoe(~quassel@178.251.84.79) (Ping timeout: 268 seconds)
2021-07-08 16:46:38 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-08 16:47:57 +0000jneira[m](~jneira@47.red-176-83-116.dynamicip.rima-tde.net)
2021-07-08 16:48:16 +0000argento(~argent0@168-227-97-29.ptr.westnet.com.ar) (Ping timeout: 246 seconds)
2021-07-08 16:55:05 +0000mekeor(~user@2001:a61:3430:c01:f86:cca7:c1fe:e2b4)
2021-07-08 16:55:47 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 16:57:35 +0000 <viluon> kosmikus: so.. with `SListI xs` you can "map" the typelevel `xs` list to a term - a list - which you can perform induction on? But you still don't know anything about its elements?
2021-07-08 16:57:59 +0000 <viluon> kosmikus: if so, how's that different to just saying `[x]`?
2021-07-08 16:58:13 +0000 <viluon> or `'[x]`
2021-07-08 17:00:20 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 258 seconds)
2021-07-08 17:01:21 +0000Deide(~Deide@217.155.19.23)
2021-07-08 17:01:21 +0000Deide(~Deide@217.155.19.23) (Changing host)
2021-07-08 17:01:21 +0000Deide(~Deide@user/deide)
2021-07-08 17:04:04 +0000 <kosmikus> viluon: let's say you want to create something like an `NP (K ()) xs`.
2021-07-08 17:04:33 +0000 <kosmikus> viluon: conceptually, it's easy. you just have to repeat `K ()` as often as the type-level list `xs` dictates. but how do you actually do this?
2021-07-08 17:04:57 +0000jneira[m](~jneira@47.red-176-83-116.dynamicip.rima-tde.net) (Remote host closed the connection)
2021-07-08 17:05:16 +0000drd(~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 268 seconds)
2021-07-08 17:05:18 +0000 <viluon> kosmikus: oh, so the constraint part is trivial, the length-preserving mapping is what counts?
2021-07-08 17:05:21 +0000 <kosmikus> viluon: if you define `makeNP :: NP (K ()) xs`, you have no inputs whatsoever. nothing you can perform induction on. you cannot look whether `xs` is expected to be empty or not.
2021-07-08 17:05:51 +0000 <kosmikus> viluon: that's why you need something extra that'll give you access to the structure of `xs`.
2021-07-08 17:06:58 +0000georg(~georg@84-112-37-146.cable.dynamic.surfer.at)
2021-07-08 17:07:39 +0000 <kosmikus> viluon: and that's what the `SListI xs` constraint provides you with.
2021-07-08 17:08:29 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Remote host closed the connection)
2021-07-08 17:08:36 +0000 <kosmikus> viluon: (I'm not sure what you mean by length-preserving mapping.)
2021-07-08 17:09:07 +0000georg(~georg@84-112-37-146.cable.dynamic.surfer.at) (Client Quit)
2021-07-08 17:13:47 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 17:18:05 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-08 17:19:25 +0000pavonia(~user@user/siracusa)
2021-07-08 17:25:35 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 17:25:51 +0000Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: Connection reset by peer)
2021-07-08 17:26:04 +0000Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-08 17:26:35 +0000MQ-17J(~MQ-17J@8.21.10.15) (Ping timeout: 255 seconds)
2021-07-08 17:30:11 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 252 seconds)
2021-07-08 17:33:40 +0000chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr)
2021-07-08 17:36:29 +0000cuz(~user@38.140.58.234) (Ping timeout: 255 seconds)
2021-07-08 17:38:59 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 17:42:51 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 17:42:57 +0000Erutuon(~Erutuon@user/erutuon)
2021-07-08 17:43:41 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 255 seconds)
2021-07-08 17:44:39 +0000hegstal(~hegstal@2a02:c7f:7604:8a00:5056:66c0:d6e:186f)
2021-07-08 17:45:21 +0000xerxes(~xerxes@117.222.64.149) (Quit: leaving)
2021-07-08 17:47:17 +0000mekeor(~user@2001:a61:3430:c01:f86:cca7:c1fe:e2b4) (Ping timeout: 255 seconds)
2021-07-08 17:47:42 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2021-07-08 17:48:59 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 17:55:44 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 17:55:47 +0000slep(~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net)
2021-07-08 17:59:28 +0000slowButPresent(~slowButPr@user/slowbutpresent)
2021-07-08 18:00:00 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 252 seconds)
2021-07-08 18:02:26 +0000ray(~ray@user/re) (Ping timeout: 265 seconds)
2021-07-08 18:02:35 +0000chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr) (Ping timeout: 255 seconds)
2021-07-08 18:03:20 +0000ray(~ray@user/re)
2021-07-08 18:03:32 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 18:06:44 +0000cuz(~user@38.140.58.234)
2021-07-08 18:07:56 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-07-08 18:09:56 +0000notzmv(~zmv@user/notzmv)
2021-07-08 18:11:54 +0000cuz(~user@38.140.58.234) (Ping timeout: 256 seconds)
2021-07-08 18:15:10 +0000lavaman(~lavaman@98.38.249.169)
2021-07-08 18:15:10 +0000azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-07-08 18:17:24 +0000kilolympus(~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net)
2021-07-08 18:22:40 +0000azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it)
2021-07-08 18:23:06 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-07-08 18:24:13 +0000exilepilot(~exile8338@host86-164-249-163.range86-164.btcentralplus.com)
2021-07-08 18:24:35 +0000zcombinator(~zcombinat@host-87-7-58-35.retail.telecomitalia.it) (Ping timeout: 240 seconds)
2021-07-08 18:27:53 +0000mikail(~mikail@90.152.14.81)
2021-07-08 18:27:54 +0000cuz(~user@38.140.58.234)
2021-07-08 18:28:26 +0000econo(uid147250@user/econo)
2021-07-08 18:28:57 +0000waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.2)
2021-07-08 18:29:40 +0000hammond_(~abner@user/hammond2) (Ping timeout: 252 seconds)
2021-07-08 18:31:03 +0000waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-07-08 18:33:57 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 18:35:19 +0000flipchan(~yumman@user/flipchan)
2021-07-08 18:35:40 +0000gehmehgeh(~user@user/gehmehgeh)
2021-07-08 18:37:55 +0000phma(phma@2001:5b0:210b:a0c8:76df:2981:6329:1c09) (Read error: Connection reset by peer)
2021-07-08 18:39:55 +0000phma(phma@2001:5b0:2172:8bb8:fe9a:4d29:923:26f0)
2021-07-08 18:40:14 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2021-07-08 18:41:49 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-07-08 18:45:08 +0000Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2021-07-08 18:45:39 +0000Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-08 18:47:00 +0000Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2021-07-08 18:47:46 +0000Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-08 18:49:31 +0000Pickchea(~private@user/pickchea)
2021-07-08 18:50:24 +0000phma(phma@2001:5b0:2172:8bb8:fe9a:4d29:923:26f0) (Read error: Connection reset by peer)
2021-07-08 18:50:31 +0000Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: Connection reset by peer)
2021-07-08 18:50:39 +0000Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-08 18:51:54 +0000xff0x(~xff0x@2001:1a81:53dc:b800:8c77:48f3:1e3:3060) (Ping timeout: 240 seconds)
2021-07-08 18:52:55 +0000xff0x(~xff0x@2001:1a81:53dc:b800:d9eb:91ca:317b:6253)
2021-07-08 18:52:56 +0000 <amesgen[m]> tiny ANN: there does not seem to be a library providing a transformer for `Quote` of template-haskell since 9.0, so I published https://hackage.haskell.org/package/quotet/docs/Control-Monad-Quote.html
2021-07-08 18:53:47 +0000phma(phma@2001:5b0:211c:858:db7c:9aeb:2bd8:1b08)
2021-07-08 18:54:51 +0000argento(~argent0@168-227-97-34.ptr.westnet.com.ar)
2021-07-08 18:59:52 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 19:01:15 +0000 <sm[m]> I upvote the concept of Tiny ANN: :)
2021-07-08 19:01:29 +0000Feuermagier(~Feuermagi@user/feuermagier)
2021-07-08 19:03:02 +0000 <amesgen[m]> Ü
2021-07-08 19:04:47 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-08 19:09:25 +0000sonat_suer(~sonat_sue@24.133.69.243)
2021-07-08 19:12:04 +0000neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 252 seconds)
2021-07-08 19:13:57 +0000sonat_suer(~sonat_sue@24.133.69.243) (Client Quit)
2021-07-08 19:15:14 +0000ray(~ray@user/re) (Quit: WeeChat 3.2)
2021-07-08 19:20:11 +0000 <juri_> so, how do i get from a Set to NonEmpty in a reasonable fashion (EG: not using fromList $ elems ? )
2021-07-08 19:20:34 +0000 <juri_> quite disappointed that NESet is so old.
2021-07-08 19:22:55 +0000 <flipchan> if anyone is interested in haskell work contracts: https://haskell.careers
2021-07-08 19:23:22 +0000 <lyxia> juri_: why is that not reasonable
2021-07-08 19:23:51 +0000 <juri_> lyxia: stan yells at me for using fromList, since elems MAY be empty.
2021-07-08 19:24:05 +0000 <amesgen[m]> juri_: are you looking for this: https://hackage.haskell.org/package/nonempty-containers-0.3.4.1/docs/Data-Set-NonEmpty.html#v:toList
2021-07-08 19:24:26 +0000 <dminuoso> juri_: Dont be a slave to your static analyzer tool?
2021-07-08 19:24:38 +0000 <juri_> nope. same problem.
2021-07-08 19:24:53 +0000 <juri_> dminuoso: I'm trying to get my project to 0 warnings. :P
2021-07-08 19:24:56 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-07-08 19:25:00 +0000 <dminuoso> That sounds like a weird goal.
2021-07-08 19:25:18 +0000 <dminuoso> Warnings should tell you about things you care about. Tools like stan are just someone elses opinion.
2021-07-08 19:25:33 +0000 <juri_> I've gone from 500 to <50.
2021-07-08 19:26:16 +0000 <dminuoso> Linters are not absolute truth. They are a reflection of someone elses opinionated coding style.
2021-07-08 19:26:28 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 19:26:37 +0000 <dminuoso> If you insist on stan, tune it to not warn for this instance then.
2021-07-08 19:27:23 +0000drd(~drd@93-39-151-19.ip76.fastwebnet.it)
2021-07-08 19:30:09 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 19:30:40 +0000 <s_> juri_, presumably at some point you check that elems is not empty and handle it appropriately. At that point, you need to convert it to NonEmpty and pass everywhere instead of elems. Depending on the distance between the check and fromList, this may require a big refactoring.
2021-07-08 19:30:58 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-07-08 19:31:16 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 252 seconds)
2021-07-08 19:32:51 +0000 <juri_> s_: fair, and an easy opportunity. thanks.
2021-07-08 19:33:48 +0000raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-07-08 19:36:04 +0000fendor(~fendor@91.141.49.3.wireless.dyn.drei.com) (Remote host closed the connection)
2021-07-08 19:37:19 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-07-08 19:39:31 +0000Cajun(~Cajun@ip98-163-211-112.no.no.cox.net) (Quit: Client closed)
2021-07-08 19:44:28 +0000 <dsal> I'd never tried this stan thing. It seems really angry that I don't `!` all my fields. Also, I use `length` sometimes.
2021-07-08 19:44:59 +0000 <davean> dsal: wait, its angry you don't ! your fields? But ... thats not a valid thing to do in general ...
2021-07-08 19:45:01 +0000 <juri_> it's pretty angry in general. applying it has made my code a lot cleaner, tho.
2021-07-08 19:45:10 +0000shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-07-08 19:45:18 +0000 <dsal> davean: Yeah, because then they're lazy and it might space leak.
2021-07-08 19:45:40 +0000 <dsal> I feel like banging a TVar isn't going to do a lot.
2021-07-08 19:45:46 +0000 <davean> dsal: I mean, but then they're strict and might cause your program to diverge ...
2021-07-08 19:46:08 +0000 <dsal> What do you mean diverge?
2021-07-08 19:46:25 +0000 <davean> I mean that a field being strict can cause your program to run forever making no progress
2021-07-08 19:46:57 +0000 <dsal> Ah.
2021-07-08 19:47:10 +0000neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f)
2021-07-08 19:50:43 +0000 <dsal> Removing that one gives me a few reasonable complaints. Nothing I'm actually going to do anything about, though.
2021-07-08 19:51:30 +0000hatz_(~user@2a05:f480:1400:f44:5400:3ff:fe6d:f349) ()
2021-07-08 19:52:35 +0000jneira_(~jneira_@28.red-80-28-169.staticip.rima-tde.net)
2021-07-08 19:52:49 +0000 <dsal> I like tools like this in theory...
2021-07-08 19:53:23 +0000 <sm[m]> angry tools ?
2021-07-08 19:53:47 +0000 <juri_> I find that when i throw my code at a tool like that, and bend the code, it gets better. i'm not too sure it matters on the tool.
2021-07-08 19:54:59 +0000 <sm[m]> I like the tools that are really quite angry but cover it well with a layer of helpful advice :)
2021-07-08 19:55:24 +0000 <dsal> I've learned useful stuff from hlint
2021-07-08 19:56:13 +0000 <davean> juri_: I mean thats great up to a point, and that point certainly isn't where its flat out wrong
2021-07-08 19:56:13 +0000 <sm[m]> +1 and shellcheck!
2021-07-08 19:57:21 +0000fluffyballoon(~fluffybal@199.204.58.62) (Quit: Client closed)
2021-07-08 19:57:37 +0000 <lyxia> juri_: ah, there's the total version: https://hackage.haskell.org/package/base-4.15.0.0/docs/Data-List-NonEmpty.html#v:nonEmpty
2021-07-08 19:57:45 +0000fluffyballoon(~fluffybal@199.204.58.62)
2021-07-08 19:57:52 +0000 <juri_> lyxia: yep. that's what i used.
2021-07-08 19:58:26 +0000alex3(~alex3@BSN-77-82-41.static.siol.net) (Ping timeout: 265 seconds)
2021-07-08 19:58:27 +0000guest61(~xxx@47.245.54.240) (Remote host closed the connection)
2021-07-08 19:59:03 +0000 <juri_> my haskell is pretty bad, so i tend to hit it with all of the tools, to try and make it make sense to others.
2021-07-08 19:59:23 +0000alex3(~alex3@BSN-77-82-41.static.siol.net)
2021-07-08 19:59:31 +0000 <juri_> I've written a projective geometric library... and am trying to use it to help get others into haskell.
2021-07-08 19:59:33 +0000guest61(~xxx@47.245.54.240)
2021-07-08 20:00:23 +0000sheepduck(~sheepduck@user/sheepduck)
2021-07-08 20:00:49 +0000_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-07-08 20:01:56 +0000jespada(~jespada@90.254.247.46) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-07-08 20:02:50 +0000fluffyballoon(~fluffybal@199.204.58.62) (Quit: Client closed)
2021-07-08 20:03:18 +0000fluffyballoon(~fluffybal@199.204.58.62)
2021-07-08 20:04:35 +0000hexreel(~hr@69.233.98.238) (Quit: WeeChat 3.2)
2021-07-08 20:05:02 +0000roboto_el_gato(~roboto_el@2600:1700:7df0:4f30:ec10:cbf7:f7cc:3882) (Quit: Client closed)
2021-07-08 20:05:19 +0000drd(~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 246 seconds)
2021-07-08 20:05:46 +0000juhp(~juhp@128.106.188.66) (Ping timeout: 272 seconds)
2021-07-08 20:07:10 +0000juhp(~juhp@128.106.188.66)
2021-07-08 20:10:40 +0000derelict(~derelict@user/derelict) (Quit: WeeChat 3.2)
2021-07-08 20:12:38 +0000mikail(~mikail@90.152.14.81) (Ping timeout: 255 seconds)
2021-07-08 20:15:32 +0000exilepilot(~exile8338@host86-164-249-163.range86-164.btcentralplus.com) (Read error: Connection reset by peer)
2021-07-08 20:18:24 +0000smsm[i]
2021-07-08 20:19:38 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 20:21:22 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-07-08 20:22:16 +0000sm[i](~user@plaintextaccounting/sm) (Quit: ERC (IRC client for Emacs 27.0.50))
2021-07-08 20:23:39 +0000oxide(~lambda@user/oxide) (Quit: oxide)
2021-07-08 20:23:55 +0000Sgeo(~Sgeo@user/sgeo)
2021-07-08 20:24:04 +0000sm[i](~user@plaintextaccounting/sm)
2021-07-08 20:25:46 +0000DNH(~DNH@2a02:8108:1100:16d8:99cf:ff96:88:4a77)
2021-07-08 20:26:21 +0000fendor(~fendor@91.141.49.3.wireless.dyn.drei.com)
2021-07-08 20:27:13 +0000acidjnk_new3(~acidjnk@p200300d0c72b956384793fd2325b5113.dip0.t-ipconnect.de)
2021-07-08 20:28:50 +0000sm[m](~sm@plaintextaccounting/sm) (Quit: Reconnecting)
2021-07-08 20:31:03 +0000acidjnk(~acidjnk@p200300d0c72b956384793fd2325b5113.dip0.t-ipconnect.de)
2021-07-08 20:31:12 +0000ray(~ray@user/re)
2021-07-08 20:31:22 +0000Trattue(~Trattue@p200300cfb7002662d870a2e06eb7728b.dip0.t-ipconnect.de)
2021-07-08 20:31:48 +0000acidjnk_new3(~acidjnk@p200300d0c72b956384793fd2325b5113.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-07-08 20:33:52 +0000Trattue(~Trattue@p200300cfb7002662d870a2e06eb7728b.dip0.t-ipconnect.de) (Client Quit)
2021-07-08 20:44:04 +0000maf654321(~maf654321@user/maf654321)
2021-07-08 20:44:21 +0000chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr)
2021-07-08 20:46:35 +0000 <lechner> Hi, is it possible to parse JSON content with optional fields when deriving a generic instance of FromJSON as described here https://www.schoolofhaskell.com/school/starting-with-haskell/libraries-and-frameworks/text-manipul…
2021-07-08 20:49:05 +0000maf654321(~maf654321@user/maf654321) (Ping timeout: 255 seconds)
2021-07-08 20:53:35 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 255 seconds)
2021-07-08 20:55:13 +0000maf654321(~maf654321@user/maf654321)
2021-07-08 20:56:10 +0000 <janus> lechner: if they are Maybe they will be optional afaik
2021-07-08 20:56:28 +0000 <lechner> janus: thank you!
2021-07-08 20:58:18 +0000NinjaTrappeur(~ninja@user/ninjatrappeur) (Ping timeout: 240 seconds)
2021-07-08 20:58:45 +0000ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-07-08 20:59:26 +0000ukari(~ukari@user/ukari)
2021-07-08 20:59:35 +0000Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-07-08 21:01:30 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 21:02:44 +0000Atum_(~IRC@user/atum/x-2392232) (Read error: Connection reset by peer)
2021-07-08 21:04:30 +0000sm[m](~sm@plaintextaccounting/sm)
2021-07-08 21:04:53 +0000sm[m](~sm@plaintextaccounting/sm) (Client Quit)
2021-07-08 21:05:10 +0000kayprish(~kayprish@46.240.143.86)
2021-07-08 21:05:21 +0000dunj3(~dunj3@2001:16b8:3066:7300:d4d1:5d56:be5f:cf84) (Remote host closed the connection)
2021-07-08 21:05:54 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-08 21:07:06 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039) (Remote host closed the connection)
2021-07-08 21:07:20 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-07-08 21:10:11 +0000jneira_(~jneira_@28.red-80-28-169.staticip.rima-tde.net) (Ping timeout: 252 seconds)
2021-07-08 21:11:37 +0000dminuoso(~dminuoso@static.88-198-218-68.clients.your-server.de) (Changing host)
2021-07-08 21:11:37 +0000dminuoso(~dminuoso@user/dminuoso)
2021-07-08 21:12:09 +0000rostero(uid236576@id-236576.tooting.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-08 21:13:08 +0000viluon(uid453725@id-453725.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-08 21:15:26 +0000mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 272 seconds)
2021-07-08 21:15:38 +0000Megant_(megant@user/megant) (Ping timeout: 258 seconds)
2021-07-08 21:18:20 +0000MQ-17J(~MQ-17J@8.21.10.15)
2021-07-08 21:19:26 +0000isekaijin(~pyon@user/pyon)
2021-07-08 21:21:26 +0000jespada(~jespada@90.254.247.46)
2021-07-08 21:22:20 +0000NinjaTrappeur(~ninja@user/ninjatrappeur)
2021-07-08 21:23:54 +0000eggplantade(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039)
2021-07-08 21:24:27 +0000son0p(~ff@181.136.122.143)
2021-07-08 21:27:21 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 21:29:55 +0000amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-07-08 21:30:11 +0000kayprish(~kayprish@46.240.143.86) (Remote host closed the connection)
2021-07-08 21:32:11 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 252 seconds)
2021-07-08 21:33:24 +0000Megant(megant@user/megant)
2021-07-08 21:36:05 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Remote host closed the connection)
2021-07-08 21:36:47 +0000argento(~argent0@168-227-97-34.ptr.westnet.com.ar) (Ping timeout: 255 seconds)
2021-07-08 21:37:30 +0000derelict(~derelict@user/derelict)
2021-07-08 21:40:08 +0000trattue(~trattue@152.70.182.158)
2021-07-08 21:45:09 +0000stefan-_(~cri@42dots.de) (Ping timeout: 258 seconds)
2021-07-08 21:46:15 +0000veverak(~veverak@ip-89-102-98-161.net.upcbroadband.cz) (Read error: Connection reset by peer)
2021-07-08 21:47:01 +0000Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection)
2021-07-08 21:47:11 +0000cuz(~user@38.140.58.234) (Ping timeout: 246 seconds)
2021-07-08 21:47:44 +0000Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-08 21:49:46 +0000stefan-_(~cri@42dots.de)
2021-07-08 21:51:05 +0000gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-07-08 21:55:59 +0000maf654321maf
2021-07-08 21:56:11 +0000mafmaf654321`
2021-07-08 21:56:13 +0000maf654321`maf654321
2021-07-08 21:57:29 +0000acidjnk(~acidjnk@p200300d0c72b956384793fd2325b5113.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2021-07-08 21:57:55 +0000maf654321(~maf654321@user/maf654321) (Quit: Textual IRC Client: www.textualapp.com)
2021-07-08 22:02:03 +0000jespada(~jespada@90.254.247.46) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-07-08 22:02:17 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 22:02:44 +0000drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
2021-07-08 22:02:57 +0000 <koz> If I want to test whether something _compiles_ (say, if I'm trying to TH stuff up) in an automated way, what's a good thing to use?
2021-07-08 22:02:57 +0000sm(~sm@plaintextaccounting/sm)
2021-07-08 22:03:03 +0000jespada(~jespada@90.254.247.46)
2021-07-08 22:03:18 +0000fluffyballoon(~fluffybal@199.204.58.62) (Quit: Client closed)
2021-07-08 22:03:28 +0000 <geekosaur> ghc -fno-code ?
2021-07-08 22:03:41 +0000fluffyballoon(~fluffybal@199.204.58.62)
2021-07-08 22:03:43 +0000 <koz> I mean, something similar to unit tests.
2021-07-08 22:03:57 +0000 <koz> So I can like, run it as part of a test suite and have it fail if compilation fails.
2021-07-08 22:05:40 +0000dminuosowould also add -O0 to geekosaur's suggestion
2021-07-08 22:05:44 +0000neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 252 seconds)
2021-07-08 22:05:52 +0000wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-07-08 22:06:34 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 22:07:26 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-07-08 22:10:59 +0000warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 255 seconds)
2021-07-08 22:13:53 +0000argento(~argent0@168-227-97-34.ptr.westnet.com.ar)
2021-07-08 22:14:36 +0000chele(~chele@user/chele) (Remote host closed the connection)
2021-07-08 22:17:21 +0000argento(~argent0@168-227-97-34.ptr.westnet.com.ar) (Client Quit)
2021-07-08 22:20:22 +0000mikail(~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f)
2021-07-08 22:21:40 +0000trattue(~trattue@152.70.182.158) (Quit: bye)
2021-07-08 22:21:47 +0000cheater(~Username@user/cheater) (Ping timeout: 255 seconds)
2021-07-08 22:22:11 +0000cheater(~Username@user/cheater)
2021-07-08 22:29:22 +0000Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2021-07-08 22:29:36 +0000aerona(~aerona@2600:6c54:4600:f300:c99c:8727:19f:ba14)
2021-07-08 22:29:56 +0000acidjnk(~acidjnk@p200300d0c72b956384793fd2325b5113.dip0.t-ipconnect.de)
2021-07-08 22:30:09 +0000slep(~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net) (Quit: No Ping reply in 180 seconds.)
2021-07-08 22:30:13 +0000mikail(~mikail@2a02:c7f:bd83:fd00:55cf:122f:957a:f66f) (Ping timeout: 246 seconds)
2021-07-08 22:30:13 +0000drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 246 seconds)
2021-07-08 22:30:22 +0000slep(~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net)
2021-07-08 22:30:43 +0000fendor(~fendor@91.141.49.3.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-07-08 22:33:01 +0000chris-the-slurpa(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-08 22:33:43 +0000chris-the-slurpa(~chris@81.96.113.213)
2021-07-08 22:37:59 +0000chris-the-slurpa(~chris@81.96.113.213) (Ping timeout: 255 seconds)
2021-07-08 22:38:53 +0000chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr) (Ping timeout: 255 seconds)
2021-07-08 22:42:29 +0000acowley(~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
2021-07-08 22:50:13 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 22:51:10 +0000acowley(~acowley@c-68-83-22-43.hsd1.nj.comcast.net)
2021-07-08 22:52:11 +0000kilolympus(~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net) (Read error: Connection reset by peer)
2021-07-08 22:53:53 +0000Kaiepi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-08 22:53:53 +0000Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 265 seconds)
2021-07-08 22:58:07 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2021-07-08 22:59:19 +0000Atum_(~IRC@user/atum/x-2392232)
2021-07-08 23:03:10 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 23:06:00 +0000ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 23:07:45 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
2021-07-08 23:07:52 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 23:08:10 +0000yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2021-07-08 23:12:33 +0000fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 258 seconds)
2021-07-08 23:12:53 +0000ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-07-08 23:13:55 +0000ukari(~ukari@user/ukari)
2021-07-08 23:19:40 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-07-08 23:24:20 +0000merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 255 seconds)
2021-07-08 23:25:41 +0000Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-07-08 23:25:44 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 244 seconds)
2021-07-08 23:34:14 +0000alx741(~alx741@181.196.68.47) (Ping timeout: 255 seconds)
2021-07-08 23:38:56 +0000 <oak-> I've been doing my first project where I'm writing Haskell code into production system and being paid doing the work, and I must say that I'm amazed how quick I can advance on the project even though I think I'm still quite beginner with Haskell
2021-07-08 23:39:12 +0000 <oak-> The client said I can use any programming language I want, so I naturally chose Haskell :D
2021-07-08 23:39:23 +0000acidjnk_new(~acidjnk@p200300d0c72b95631d5780c7e55edf21.dip0.t-ipconnect.de)
2021-07-08 23:40:03 +0000acidjnk_new3(~acidjnk@p200300d0c72b9563e5efeb4dbf0edadc.dip0.t-ipconnect.de)
2021-07-08 23:40:45 +0000 <oak-> The solution is already working quite well, but I think I should probably learn either MTL or Tagless Final to make the code cleaner and more readable
2021-07-08 23:40:45 +0000 <orzo> sounds nice
2021-07-08 23:41:00 +0000jol(~jol@jol.dev)
2021-07-08 23:43:08 +0000 <oak-> The downside is there won't be not so many hours to bill :D
2021-07-08 23:43:12 +0000acidjnk(~acidjnk@p200300d0c72b956384793fd2325b5113.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-07-08 23:43:43 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-07-08 23:44:04 +0000 <orzo> last time i used haskell in production, i was bitten by the poor cross support
2021-07-08 23:44:11 +0000acidjnk_new(~acidjnk@p200300d0c72b95631d5780c7e55edf21.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-07-08 23:44:16 +0000 <orzo> it was a long time ago
2021-07-08 23:44:35 +0000 <orzo> but ghc still isn't well known for being a great cross compiler
2021-07-08 23:45:42 +0000 <orzo> it's surely better now than then though
2021-07-08 23:46:02 +0000 <orzo> still, i wished it "just worked"
2021-07-08 23:46:05 +0000 <oak-> I'm doing development on Mac and then using virtual machine with Ubuntu (because the target system is using Ubuntu) to build the code and package it to .deb package, and then just deploy the .deb package to target system
2021-07-08 23:46:05 +0000wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-07-08 23:46:21 +0000 <oak-> At least on Mac Os and Linux it runs, I haven't tried Windows :P
2021-07-08 23:46:37 +0000 <orzo> i was on mac too
2021-07-08 23:46:44 +0000 <orzo> years ago
2021-07-08 23:46:47 +0000 <orzo> say 2008
2021-07-08 23:46:50 +0000justache(~justache@user/justache) (Read error: Connection reset by peer)
2021-07-08 23:47:10 +0000 <orzo> it sounds like you got a nice dev enviro setup
2021-07-08 23:47:44 +0000justache(~justache@user/justache)
2021-07-08 23:47:50 +0000 <orzo> it's annoying how everything takes tons of resources to build nowadays
2021-07-08 23:48:01 +0000 <orzo> i'm using an old laptop as my main computer
2021-07-08 23:48:09 +0000 <orzo> that i do all my dev on
2021-07-08 23:48:31 +0000 <orzo> there's no reason why projects can't build on this machine
2021-07-08 23:48:49 +0000 <orzo> i'm particularly annoyed with the latest android tools
2021-07-08 23:48:52 +0000 <orzo> not haskell related
2021-07-08 23:49:19 +0000 <oak-> I have also done Android development in the past in various companies
2021-07-08 23:49:29 +0000 <orzo> i wish i could write android in haskell and use only ghc to make an apk file
2021-07-08 23:49:39 +0000 <oak-> Like at the operating system level, built the whole Android image from the source
2021-07-08 23:49:49 +0000 <orzo> oh right
2021-07-08 23:49:53 +0000 <orzo> that's what i wish i could avoid
2021-07-08 23:50:12 +0000 <orzo> but just using the sdk/studio seems to be almost as much resources as the whole os
2021-07-08 23:50:15 +0000 <oak-> Even with the latest hardware the clean build seems to take ~1 hour
2021-07-08 23:50:44 +0000 <oak-> Last Android I was building was the 8.1 or something, I haven't tried to build the latest 11 version
2021-07-08 23:51:47 +0000 <oak-> There's just massive amounts of Java code on the Android operating system, especially in the frameworks/base
2021-07-08 23:51:59 +0000 <oak-> Yeah, isn't the Android Studio based on IntelliJ IDEA or something
2021-07-08 23:52:19 +0000 <orzo> i'd like a way to just build apk files from java source and resources using gnu make or something
2021-07-08 23:52:22 +0000 <koz> oak-: Yep, I believe so.
2021-07-08 23:52:38 +0000 <orzo> we shouldn't need a huge sdk
2021-07-08 23:52:46 +0000 <orzo> android is just a linux distro ultimately
2021-07-08 23:54:33 +0000 <oak-> Last time I did Android App development I just used NeoVim from the shell and built with Gradle from the shell
2021-07-08 23:54:39 +0000 <oak-> It still uses quite much resources though
2021-07-08 23:55:47 +0000 <orzo> is there some reason why community people cant maintain an alternate build system for android?
2021-07-08 23:56:10 +0000 <orzo> it seems simple in principle, just pack .dex files and .res files into an .apk zip
2021-07-08 23:56:37 +0000 <orzo> gradle would be an improvement over the studio maybe, but i'm currently annoyed with it too
2021-07-08 23:57:18 +0000 <orzo> i think letting google maintain all the dev tools for android is not working out
2021-07-08 23:57:21 +0000 <oak-> Doesn't Studio use Gradle in the background?
2021-07-08 23:57:24 +0000 <orzo> yes
2021-07-08 23:57:31 +0000 <orzo> but i don't know how to use gradle
2021-07-08 23:57:41 +0000 <orzo> i'm coming back to android after a long hiatus
2021-07-08 23:57:41 +0000cjb(~cjb@user/cjb)
2021-07-08 23:57:48 +0000 <orzo> back in my day it was eclipse and ant
2021-07-08 23:58:41 +0000 <oak-> Gradle seems fine as long at it works :D
2021-07-08 23:58:46 +0000 <orzo> i have good makefile skills, so its a little annoying to have to work with these super ambitious build systems that ultimately just disable incremental builds
2021-07-08 23:59:47 +0000 <oak-> I tried Eta (compiler which compiles Haskell to Java bytecode) a year ago, and it was pain to work around all the tooling