Home freenode/#haskell: Logs Calendar

Logs on 2020-12-03 (freenode/#haskell)

00:00:45 × threadlock quits (~threadloc@195.140.213.38) (Remote host closed the connection)
00:00:46 <ski> "not" will be "approximative" (won't be an involution)
00:01:03 <ski> but yes, that's conjunction and disjunction
00:01:44 irc_user joins (uid423822@gateway/web/irccloud.com/x-fpptyyxiewbpsugc)
00:02:04 × hackage quits (mniip@haskell/bot/hackage) (Ping timeout: 246 seconds)
00:02:55 hackage joins (mniip@haskell/bot/hackage)
00:05:15 <ski> negation of ⌜∞⌝ is ⌜0⌝, of course, and negation of ⌜0⌝ is ⌜∞⌝. negation of positive integers will also be mapped to ⌜∞⌝
00:07:55 <hekkaidekapus_> Is this about irredundant subsets?
00:08:13 hekkaidekapus_ is now known as hekkaidekapus
00:10:33 <ski> it's about (discrete) dynamical systems
00:10:57 elliott_ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
00:12:13 × drincruz quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 264 seconds)
00:12:23 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
00:12:31 × recon_- quits (~quassel@2602:febc:0:b6::6ca2) (Quit: No Ping reply in 180 seconds.)
00:12:56 <ski> you have a type ⌜A⌝, and an endofunction ⌜α : A ⟶ A⌝. given a point in ⌜A⌝, to "advance time one step", you apply ⌜α⌝. for each point, you'll get an "orbit", if you repeat this
00:12:59 <hekkaidekapus> Hmm, ok. I thought you were about to build up free sub-algebras and somehow land back to, from my guessing, what started it all (monoids, the Haskell way).
00:13:04 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
00:13:16 × solonarv quits (~solonarv@anancy-651-1-197-136.w109-217.abo.wanadoo.fr) (Ping timeout: 240 seconds)
00:13:36 <ski> an orbit can eventually get stuck in a loop/cycle. or it might continue on to new points, eternally (in case the carrier ⌜A⌝ is infinite)
00:14:02 <ski> a cycle, or an infinite strand, can have many "hairs" on it, that can branch back like trees
00:14:08 recon_- joins (~quassel@2602:febc:0:b6::6ca2)
00:16:02 <ski> a subdynamical system of ⌜⟨A,α⟩⌝ is a subset ⌜S⌝ of ⌜A⌝, such that ⌜α⌝ is closed under ⌜S⌝ -- it's restriction to ⌜S⌝ has an image that fits inside ⌜S⌝ : ⌜α|S : S ⟶ S⌝
00:17:12 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
00:17:15 livvy joins (~livvy@gateway/tor-sasl/livvy)
00:17:46 <ski> now, if we have a point ⌜x⌝ of ⌜A⌝, we can ask whether it's included in the subobject ⌜S⌝. can ask ⌜x ∈ S⌝. the result of this question, the truth-value, is a point in the dynamical system of truth-values, ⌜Ω⌝ (the "subobject classifier")
00:18:47 × LKoen quits (~LKoen@105.175.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
00:20:56 × tromp_ quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
00:21:28 <ski> a map between dynamical systems, ⌜f : ⟨A,α⟩ ⟶ ⟨B,β⟩⌝ consists of a function between the carriers, ⌜f : A ⟶ B⌝, satisfuying the property that if we "advance time" (using ⌜α⌝) a step in ⌜A⌝, then use ⌜f⌝ to map to ⌜B⌝, then we get the same result as if we use ⌜f⌝ directly to map over to ⌜B⌝, and then "advance time" (using ⌜β⌝) over there : ⌜f ∘ α = β
00:21:34 <ski> ∘ f⌝ (or, if you prefer, ⌜∀ x : A. f(α(x)) = β(f(x))⌝)
00:22:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
00:22:53 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection)
00:23:42 × Tops2 quits (~Tobias@dyndsl-095-033-092-058.ewe-ip-backbone.de) (Read error: Connection reset by peer)
00:23:45 <hekkaidekapus> The properties you are describing are better served with visual representations.
00:23:47 <ski> (so ⌜f⌝ will map any "image of points, connected by \"advance time\"", inside ⌜A⌝, to a corresponding image, inside ⌜B⌝, still connected in the same way, although possibly "smushed" a bit (blurring things together, so we can't see as much detail))
00:23:52 <ski> yes
00:24:22 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
00:24:32 × sagax quits (~sagax_nb@213.138.71.146) (Quit: Konversation terminated!)
00:24:33 <hekkaidekapus> Are you into graphics? (specifically, the fractal kind)
00:26:27 <ski> anyway, to describe "being an element of ⌜S⌝", we want to have a map ⌜χ_S : ⟨A,α⟩ ⟶ ⟨Ω,ω⟩⌝. it should map ⌜x⌝ to ⌜0⌝, just in case ⌜x⌝ was a member of ⌜S⌝
00:26:28 × tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
00:27:15 tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64)
00:27:17 <ski> if ⌜x⌝ was not a member of ⌜S⌝, but ⌜α(x)⌝ is, then ⌜x⌝ should be mapped to ⌜1⌝. if not, but ⌜α(α(x))⌝ is, then ⌜x⌝ should be mapped to ⌜2⌝. and so on
00:27:44 <ski> if no "descendant" of ⌜x⌝ is a member of ⌜S⌝, then ⌜x⌝ is mapped to ⌜∞⌝
00:27:59 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
00:28:24 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
00:28:58 <ski> (once you get inside a sub-dynamical-system, like ⌜⟨S,α|S⟩⌝, you can never escape. because ⌜α|S : S ⟶ S⌝ never maps from inside to outside)
00:29:56 <ski> hm, well. i find fractals interesting, sure
00:29:57 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
00:30:48 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
00:31:19 da39a3ee5e6b4b0d joins (~da39a3ee5@171.5.161.165)
00:31:23 <hekkaidekapus> What if there are “multiple-descendants”? (multiple variables to the process)
00:31:24 × borne quits (~fritjof@200116b864cc28008cdf581d4c1cc02f.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
00:33:01 <hekkaidekapus> Immediate descendants, if that makes sense (not in the setting you began with, in some other system).
00:33:09 × mcfilib_ quits (sid302703@gateway/web/irccloud.com/x-riwkfcukospcncdx) ()
00:33:19 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
00:33:29 borne joins (~fritjof@200116b8640d8d008cdf581d4c1cc02f.dip.versatel-1u1.de)
00:33:32 mcfilib_ joins (sid302703@gateway/web/irccloud.com/x-kgkbcflsogtbjjaz)
00:33:37 × da39a3ee5e6b4b0d quits (~da39a3ee5@171.5.161.165) (Client Quit)
00:33:43 × mcfilib_ quits (sid302703@gateway/web/irccloud.com/x-kgkbcflsogtbjjaz) (Client Quit)
00:34:09 mcfilib joins (sid302703@gateway/web/irccloud.com/x-pupkwpbkjgigplfb)
00:34:33 blankhart joins (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net)
00:34:50 <ski> (another example is to take, not dynamical systems, but (directed, multi-)graphs. there's an obvious notion of "subgraph", that similarly gives rise to a "truth-value" graph. having two nodes (⌜⊥⌝,⌜⊤⌝, "false" and "true"), and five edges (⌜⊥ : ⊥ ⟶ ⊥⌝,⌜source : ⊤ ⟶ ⊥⌝,⌜target : ⊤ ⟶ ⊥⌝,⌜ends : ⊤ ⟶ ⊤⌝,⌜⊤ : ⊤ ⟶ ⊤⌝)
00:34:58 × Iceland_jack quits (~user@31.124.48.169) (Ping timeout: 246 seconds)
00:35:01 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 272 seconds)
00:35:04 × xff0x quits (~fox@2001:1a81:5348:9f00:a33e:b10d:3d9:e994) (Ping timeout: 240 seconds)
00:35:11 <ski> well, you can take two endofunctions, rather than one, e.g.
00:35:17 × philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Quit: leaving)
00:35:33 <ski> so, at each turn, you can go either left or right
00:35:50 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
00:36:16 xff0x joins (~fox@2001:1a81:5348:9f00:9f14:5df2:6b84:6dea)
00:36:28 <ski> (er .. sorry, should have been ⌜target : ⊥ ⟶ ⊤⌝ ..)
00:36:46 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 244 seconds)
00:37:19 × dnlkrgr quits (~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 265 seconds)
00:37:43 <hekkaidekapus> Nice. Thank you for sharing, I’ll call it a night.
00:38:38 ski nods
00:38:39 philopsos joins (~caecilius@gateway/tor-sasl/caecilius)
00:39:17 da39a3ee5e6b4b0d joins (~da39a3ee5@mx-ll-171.5.161-165.dynamic.3bb.co.th)
00:39:48 <ski> ("Conceptual Mathematics: A First Introduction to Categories" by F. William "Bill" Lawvere,Stephen H. Schanuel in 2009, does go into those examples, a bit)
00:39:55 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
00:39:56 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 240 seconds)
00:40:05 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
00:40:10 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
00:44:26 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
00:46:57 <koz_> :t mapMaybe
00:46:58 <lambdabot> (a -> Maybe b) -> [a] -> [b]
00:47:11 <koz_> @hoogle mapMaybe
00:47:12 <lambdabot> Data.Maybe mapMaybe :: (a -> Maybe b) -> [a] -> [b]
00:47:12 <lambdabot> Data.IntMap.Internal mapMaybe :: (a -> Maybe b) -> IntMap a -> IntMap b
00:47:12 <lambdabot> Data.IntMap.Lazy mapMaybe :: (a -> Maybe b) -> IntMap a -> IntMap b
00:48:20 <ski> @type (=<<) . (maybe mzero return .)
00:48:22 <lambdabot> MonadPlus m => (a -> Maybe b) -> m a -> m b
00:50:18 <MarcelineVQ> not quite as cool as mapPossibly
00:51:48 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:53:45 × jmchael quits (~Chi1thang@87.112.60.168) (Ping timeout: 260 seconds)
00:57:06 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
00:59:52 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
01:00:13 × lambdaman quits (~lambdaman@d23-16-215-123.bchsia.telus.net) (Remote host closed the connection)
01:01:37 × alp quits (~alp@2a01:e0a:58b:4920:dc54:a0f8:3325:44d9) (Ping timeout: 272 seconds)
01:01:41 × blankhart quits (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net) (Ping timeout: 260 seconds)
01:04:50 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
01:05:00 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
01:05:45 × dhil quits (~dhil@195.213.192.34) (Ping timeout: 240 seconds)
01:10:19 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
01:12:29 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
01:13:39 × joaj quits (~joaj@2001:818:e326:8200:5273:55b7:3a86:e6ca) (Ping timeout: 272 seconds)
01:14:38 joaj joins (~joaj@2001:818:e326:8200:9fc:6bde:c18a:1771)
01:14:45 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
01:16:29 × conal quits (~conal@198.8.81.86) (Quit: Computer has gone to sleep.)
01:16:34 blankhart joins (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net)
01:20:09 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
01:20:22 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
01:20:36 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
01:20:38 conal joins (~conal@198.8.81.86)
01:21:19 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
01:22:44 george2829838 joins (450c2c3e@69.12.44.62)
01:23:40 × johnw quits (~johnw@haskell/developer/johnw) (Quit: ZNC - http://znc.in)
01:24:37 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
01:25:25 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
01:25:45 × cyphase quits (~cyphase@unaffiliated/cyphase) (Ping timeout: 240 seconds)
01:26:12 jMCg joins (~jMCg@195.140.213.38)
01:26:18 × conal quits (~conal@198.8.81.86) (Quit: Computer has gone to sleep.)
01:26:43 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
01:28:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:30:07 × george2829838 quits (450c2c3e@69.12.44.62) (Remote host closed the connection)
01:31:11 cyphase joins (~cyphase@unaffiliated/cyphase)
01:32:03 × recon_- quits (~quassel@2602:febc:0:b6::6ca2) (Quit: quity)
01:32:23 recon_- joins (~quassel@208.87.96.9)
01:40:09 × blankhart quits (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net) (Ping timeout: 265 seconds)
01:41:38 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 272 seconds)
01:41:51 Lord_of_Life joins (~Lord@46.217.221.243)
01:51:41 × elliott_ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Quit: WeeChat 2.9)
01:52:17 elliott_ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
01:52:20 × elliott_ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Client Quit)
01:52:37 × NinjaTrappeur quits (~ninja@unaffiliated/ninjatrappeur) (Ping timeout: 260 seconds)
01:52:48 elliott_ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
01:58:31 × cyphase quits (~cyphase@unaffiliated/cyphase) (Ping timeout: 265 seconds)
01:59:34 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
02:01:48 cyphase joins (~cyphase@unaffiliated/cyphase)
02:02:56 NinjaTrappeur joins (~ninja@unaffiliated/ninjatrappeur)
02:03:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
02:03:10 × m0rphism quits (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 272 seconds)
02:03:16 × cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 240 seconds)
02:06:02 × miguel_clean quits (~Miguel@89-72-187-203.dynamic.chello.pl) (Quit: Leaving.)
02:07:36 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
02:08:12 guest123 joins (~user@49.5.6.87)
02:08:39 fionnan joins (~fionnan@109.255.20.201)
02:10:47 inkbottle joins (~inkbottle@aaubervilliers-654-1-81-2.w86-212.abo.wanadoo.fr)
02:12:05 × zebrag quits (~inkbottle@aaubervilliers-654-1-118-216.w86-198.abo.wanadoo.fr) (Ping timeout: 240 seconds)
02:15:22 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
02:15:29 dcoutts_ joins (~dcoutts@unaffiliated/dcoutts)
02:17:23 Jonkimi727406120 joins (~Jonkimi@119.123.243.225)
02:18:22 × dcoutts quits (~dcoutts@unaffiliated/dcoutts) (Ping timeout: 256 seconds)
02:19:11 hackage servant-swagger-ui 0.3.4.3.37.2 - Servant swagger ui https://hackage.haskell.org/package/servant-swagger-ui-0.3.4.3.37.2 (DavidJohnson)
02:19:45 × halbGefressen quits (~halbGefre@2a02:810d:f40:2a9c:40b2:2308:84bd:8b9b) (Quit: halbGefressen)
02:19:58 m0rphism joins (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de)
02:20:36 × Khisanth quits (~Khisanth@56.sub-174-244-145.myvzw.com) (Ping timeout: 240 seconds)
02:23:15 × jollygood2 quits (~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
02:24:09 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
02:25:50 × xff0x quits (~fox@2001:1a81:5348:9f00:9f14:5df2:6b84:6dea) (Ping timeout: 264 seconds)
02:26:41 hackage servant-swagger-ui-core 0.3.4 - Servant swagger ui core components https://hackage.haskell.org/package/servant-swagger-ui-core-0.3.4 (DavidJohnson)
02:26:49 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
02:27:31 xff0x joins (~fox@2001:1a81:5384:5000:270f:7277:a2a:3b14)
02:28:33 <iqubic> :t many
02:28:35 <lambdabot> Alternative f => f a -> f [a]
02:28:40 <iqubic> What does this even do?
02:29:03 <Axman6> runs the f a until it fails and returns all results
02:29:20 <Axman6> @src many
02:29:21 <lambdabot> Source not found. Sorry.
02:30:25 <iqubic> But how would the f a action have multiple results?
02:30:43 <Axman6> f ~ Parser
02:30:43 shinobi_ joins (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
02:31:13 <iqubic> huh? What do you mean?
02:31:13 <Axman6> char :: Char -> Parser Char, many (char 'a') runnagainst "aaabbb" would return "aaa"
02:31:20 <iqubic> Ah I see. That makes sense.
02:31:40 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds)
02:32:03 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection)
02:33:18 <iqubic> How does many work?
02:33:45 × shinobi quits (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
02:34:15 Khisanth joins (~Khisanth@115.sub-174-197-143.myvzw.com)
02:34:15 <Axman6> many f = ((:) <$> f a <*> many f) <|> pure []
02:34:46 <Axman6> one of those recursive calls to many f will eventually return [] because the f failed
02:35:00 <Axman6> uh, should be (:) <$> f <*> ...
02:36:00 <iqubic> So it will run `f a` again and again and again until it fails?
02:36:24 <iqubic> That's very powerful.
02:36:51 <Axman6> it'll run f again (which has type f a, sorry)
02:37:10 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
02:37:12 <Axman6> it is powerful, but can be prone to doing too much
02:37:20 <Axman6> which is why things like manyTill exist
02:37:24 <Axman6> :t manyTill
02:37:26 <lambdabot> error: Variable not in scope: manyTill
02:37:32 <Axman6> @hoogle manyTill
02:37:32 <lambdabot> Text.ParserCombinators.ReadP manyTill :: ReadP a -> ReadP end -> ReadP [a]
02:37:32 <lambdabot> Text.Parsec manyTill :: Stream s m t => ParsecT s u m a -> ParsecT s u m end -> ParsecT s u m [a]
02:37:32 <lambdabot> Text.Parsec.Combinator manyTill :: Stream s m t => ParsecT s u m a -> ParsecT s u m end -> ParsecT s u m [a]
02:37:45 shatriff joins (~vitaliish@176.52.219.10)
02:37:50 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:38:27 <iqubic> What does manyTill do again?
02:38:49 × rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo)
02:38:53 <Axman6> which is something like manyTill fa fend = (fend $> []) <|> ((:) <$> fa <*> manyTill fa fend), i.e., parse as many a's as you can until fend succeeds
02:39:05 rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
02:39:13 <iqubic> Ah.
02:40:17 <iqubic> manyTill letterChar (char ",") "abcdefghi, 12345"
02:40:26 <iqubic> Something like that might return just the letters.
02:41:13 <Axman6> so parsing some numbers in the format [1,2,3,4] might look like: char '[' *> ((:) <$> int <*> manyTill (char ',' *> int) (char ']')
02:41:51 <Axman6> uh, though that won't work for empty lists
02:42:04 <iqubic> Right, except that parser combinators give us something better:
02:42:07 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
02:42:51 <iqubic> https://hackage.haskell.org/package/parser-combinators-1.2.1/docs/Control-Applicative-Combinators.html#v:sepEndBy
02:43:17 <iqubic> Actually, you'd just want sepBy.
02:43:18 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
02:43:20 × rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Client Quit)
02:43:24 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
02:43:38 rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
02:43:45 <iqubic> This is going to useful for remembering how Megaparsec works when doing Advent Of Code tonight.
02:46:14 × joaj quits (~joaj@2001:818:e326:8200:9fc:6bde:c18a:1771) (Ping timeout: 264 seconds)
02:46:27 poi joins (6f63120c@KD111099018012.ppp-bb.dion.ne.jp)
02:46:52 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
02:47:03 <Axman6> yeah I was going to say there's definitely preexisting combinators for exactly this sort of parsing, since these patternsd are so common
02:49:17 <iqubic> Yeah.
02:49:52 <iqubic> I just wrote this for myself: http://dpaste.com/3JUVJ2QXS
02:50:02 <iqubic> I think that should do what I want.
02:50:54 Stanley00 joins (~stanley00@unaffiliated/stanley00)
02:53:36 text70 joins (48b61385@072-182-019-133.res.spectrum.com)
02:53:38 blankhart joins (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net)
02:53:59 × guest123 quits (~user@49.5.6.87) (Read error: Connection reset by peer)
02:54:37 guest123 joins (~user@49.5.6.87)
02:54:38 × lassulus quits (~lassulus@NixOS/user/lassulus) (Ping timeout: 256 seconds)
02:54:48 <koala_man> how can I get the path to a cabal built executable?
02:55:56 vg joins (~vg@139.59.59.230)
02:55:56 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
02:56:17 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
02:56:39 <dibblego> you can use the --installdir flag to cabal install to know where it is, at least
02:56:56 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
02:57:11 × guest123 quits (~user@49.5.6.87) (Remote host closed the connection)
02:57:19 guest123 joins (~user@49.5.6.87)
02:57:33 vg is now known as TooDifficult
02:58:37 × poi quits (6f63120c@KD111099018012.ppp-bb.dion.ne.jp) (Remote host closed the connection)
03:00:38 × irc_user quits (uid423822@gateway/web/irccloud.com/x-fpptyyxiewbpsugc) (Quit: Connection closed for inactivity)
03:01:16 <ezzieyguywuf> so, I'm using config-value (and I really like it!) but I could use some advice, or maybe just bounce some ideas, regarding my config file structure. here is an example of what I currently have, but I'm wondering if there is some better way to have the user provide a list of (match-strings, new-description) pairs. https://dpaste.com/6A6Z4K7LL
03:02:10 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
03:03:36 × blankhart quits (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
03:05:41 drbean joins (~drbean@TC210-63-209-27.static.apol.com.tw)
03:06:38 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
03:08:46 lassulus joins (~lassulus@NixOS/user/lassulus)
03:08:51 <monochrom> koala_man: There are two defaults, depending on v1 commands vs v2 commands. $HOME/.cabal/bin and $HOME/.local/bin
03:09:30 <glguy> ezzieyguywuf, I would say just don't use key-value pairs, instead use a list
03:09:43 <monochrom> I highly recommend customizing $HOME/.cabal/config to set them to what works best for you.
03:09:59 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
03:10:20 <glguy> ezzieyguywuf, like what I have in the example config file here: https://github.com/glguy/irc-core a list of servers
03:11:27 × pjb quits (~t@2a01cb04063ec500c51bcad49f8457d6.ipv6.abo.wanadoo.fr) (Ping timeout: 272 seconds)
03:12:56 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
03:13:09 <ezzieyguywuf> glguy: now, is servers strictly a list, or can it contain a section that would apply to all servers listed?
03:13:32 <ezzieyguywuf> similar to how in the example I posted, any of the matches get the same DebitAccount and CreditAccount
03:13:49 × rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo)
03:13:54 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:14:04 rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
03:14:52 × lassulus quits (~lassulus@NixOS/user/lassulus) (Ping timeout: 256 seconds)
03:17:47 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
03:18:20 × rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Client Quit)
03:18:37 rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
03:18:59 <glguy> I have a separate "default" entry
03:20:14 <texasmynsted> Before I go all crazy... This should be possible right? I want to use parseTimeM and parse a String that may be in one of a dozen formats.
03:21:23 <ezzieyguywuf> glguy: hrm, yes I see, however in my case I would have the equivalent of "servers1", "servers2", "servers3" etc... each needing their own "default1", "default2", "default3", etc, in which case mimicking the approach in irc-core makes a bit less sense I think
03:21:34 <ezzieyguywuf> texasmynsted: yes.
03:22:08 <ezzieyguywuf> texasmynsted: though you'll have to, of course, write a format string for each of the dozens that you wish to match
03:22:22 <texasmynsted> I have that part.
03:22:53 <ezzieyguywuf> texasmynsted: i think there's one that returns a Maybe or something...h/o let me check the doc
03:23:15 <texasmynsted> I am trying to think of the correct way to keep trying until I get a Just or run out of options
03:23:33 <texasmynsted> parseTimeM returns a Maybe
03:24:16 <texasmynsted> I have it working find for a known, single format. It either parses it correctly or leaves it alone.
03:24:49 × RusAlex quits (~Chel@unaffiliated/rusalex) (Ping timeout: 260 seconds)
03:24:56 × guest123 quits (~user@49.5.6.87) (Ping timeout: 240 seconds)
03:25:05 × m0rphism quits (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 240 seconds)
03:25:18 <texasmynsted> Now I want to it to parse it correctly or keep trying until it works, or runs out of formats and thus leaves the value alone
03:25:19 <ezzieyguywuf> ah, yes well there you go.
03:25:47 <ezzieyguywuf> so you could do an fmap over all your formatstrings, and then check if you get any Just's
03:25:56 RusAlex joins (~Chel@unaffiliated/rusalex)
03:25:59 <ezzieyguywuf> or there may be a better way to do that, like "until" or something
03:26:02 <texasmynsted> I guess I could just keep working recursively over a list formats
03:27:43 <ezzieyguywuf> texasmynsted: if I were to take a stab at it, I guess I'd start with `fmap (flip (parseTimeM True defaulteTimeLocale) inputString) listOfFormats` and go from there
03:28:09 <ezzieyguywuf> though again, there may be a more efficient way to do this, i.e. stop at the first match rather than checking each format
03:28:26 <texasmynsted> okay
03:28:37 <texasmynsted> I was thinking something like asum might be of use
03:28:49 × rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo)
03:29:03 rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
03:29:18 <sm[m]> Me too
03:30:33 <texasmynsted> :-)
03:30:40 <texasmynsted> Okay this sounds worth a try then
03:30:46 <texasmynsted> Thank you
03:31:11 hackage implicit-hie-cradle 0.3.0.1 - Auto generate hie-bios cradles https://hackage.haskell.org/package/implicit-hie-cradle-0.3.0.1 (Avi_Dessauer)
03:31:59 <ezzieyguywuf> texasmynsted: maybe something like this? https://dpaste.com/3KGZMHFPX
03:32:47 lassulus joins (~lassulus@NixOS/user/lassulus)
03:33:00 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
03:33:36 × rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Client Quit)
03:33:51 rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
03:34:29 lagothrix is now known as Guest79853
03:34:29 × Guest79853 quits (~lagothrix@unaffiliated/lagothrix) (Killed (verne.freenode.net (Nickname regained by services)))
03:34:35 lagothrix joins (~lagothrix@unaffiliated/lagothrix)
03:35:45 texasmyn_ joins (~texasmyns@212.102.45.103)
03:35:48 <texasmyn_> nice thank you.
03:36:05 × theDon quits (~td@94.134.91.130) (Ping timeout: 240 seconds)
03:36:31 <ezzieyguywuf> texasmyn_: 👍️
03:36:37 <ezzieyguywuf> texasmyn_: good luck!
03:37:50 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
03:38:06 <ezzieyguywuf> texasmyn_: I think fromMaybe can help you clean that up a hair
03:38:20 theDon joins (~td@muedsl-82-207-238-021.citykom.de)
03:38:22 × lassulus quits (~lassulus@NixOS/user/lassulus) (Ping timeout: 246 seconds)
03:38:50 × texasmynsted quits (~texasmyns@212.102.44.36) (Ping timeout: 256 seconds)
03:42:24 blankhart joins (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net)
03:44:46 <glguy> ezzieyguywuf, I don't understand your use-case yet, then
03:45:00 <glguy> ezzieyguywuf, do you know how you'd write it if you didn't have to conform to my existing ideas?
03:46:17 <iqubic> I wish I had a function foo that acts exactly like id if the input is a String, but runs Show on the input otherwise.
03:46:38 <iqubic> Does something like that exist?
03:47:06 <iqubic> Mainly I want to avoid having "\"foobarbaz\"" as the output of this function
03:47:32 <iqubic> I'd probably have to write a typeclass, and then use flexible instances or something.
03:48:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
03:50:56 <glguy> ezzieyguywuf, what about this? https://paste.tomsmeding.com/iuhpMcF1
03:53:15 adm_ joins (~adm@117.208.17.143)
03:54:46 <ezzieyguywuf> glguy: that's perfect!
03:55:05 <ezzieyguywuf> I knew it was doable, I think I was just too deep in it to get there
03:56:14 lassulus joins (~lassulus@NixOS/user/lassulus)
03:56:24 <glguy> I generally don't like user-defined keys in key-value maps
03:56:30 <glguy> (for config)
03:56:41 × Jonkimi727406120 quits (~Jonkimi@119.123.243.225) (Ping timeout: 260 seconds)
03:58:23 <ezzieyguywuf> glguy: i.e. the way I originally had it?
03:58:33 <ezzieyguywuf> b/c yea, that was rubbing me the wrong way
03:58:35 <glguy> yeah, and for the very reason you complained about
03:58:41 hackage implicit-hie-cradle 0.3.0.2 - Auto generate hie-bios cradles https://hackage.haskell.org/package/implicit-hie-cradle-0.3.0.2 (Avi_Dessauer)
03:59:00 <glguy> I don't want the section naming lexical syntax to impose contraints on semantically important configuration stuff
03:59:15 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
03:59:29 × trepanger quits (~z@ics141-225.icsincorporated.com) (Ping timeout: 260 seconds)
03:59:34 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Read error: Connection reset by peer)
03:59:50 <glguy> I know a lot of other languages like this just let you use arbitrary values as keys
04:00:02 × haasn quits (~nand@mpv/developer/haasn) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
04:00:09 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
04:01:22 haasn joins (~nand@mpv/developer/haasn)
04:01:50 × borne quits (~fritjof@200116b8640d8d008cdf581d4c1cc02f.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
04:02:28 × lassulus quits (~lassulus@NixOS/user/lassulus) (Ping timeout: 256 seconds)
04:03:20 × adm_ quits (~adm@117.208.17.143) (Remote host closed the connection)
04:06:02 × rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo)
04:06:03 trepanger joins (~z@ics141-225.icsincorporated.com)
04:06:24 × loller quits (uid358106@gateway/web/irccloud.com/x-rrjevhwdhvmhkvwa) (Quit: Connection closed for inactivity)
04:07:20 dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e)
04:07:59 Jonkimi727406120 joins (~Jonkimi@119.123.243.225)
04:10:53 adm_ joins (~adm@117.208.17.143)
04:12:40 × Jonkimi727406120 quits (~Jonkimi@119.123.243.225) (Ping timeout: 256 seconds)
04:14:13 <texasmyn_> This is what I have so far... https://gist.github.com/mmynsted/e5ef944c65959fee414ce4a56bb8451c
04:15:26 <texasmyn_> My initial test it has not found the format from those I provided, though it should. It is times like this I wish I knew a quick way to throw in some debug logging.
04:20:32 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:21:46 wei2912 joins (~wei2912@unaffiliated/wei2912)
04:23:14 lassulus joins (~lassulus@NixOS/user/lassulus)
04:23:31 <iqubic> Does ghcid work with cabal repl?
04:24:33 nineonine joins (~nineonine@50.216.62.2)
04:25:22 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
04:25:46 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
04:25:52 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
04:27:47 × polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 260 seconds)
04:28:21 <dsal> texasmyn_: Debug.Trace
04:28:36 × drbean quits (~drbean@TC210-63-209-27.static.apol.com.tw) (Ping timeout: 240 seconds)
04:29:04 <texasmyn_> dsal: Okay I will check that out.
04:29:14 <texasmyn_> At least is works in my Tasty tests.
04:29:28 <texasmyn_> I mean At least it works in my Tasty tests.
04:29:30 <MarcelineVQ> iqubic: ghcid -c 'cabal repl'
04:29:41 <iqubic> I've got it. Thanks.
04:30:49 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
04:32:13 <texasmyn_> ooh :-) Yes, looks like Debug.Trace is exactly what I am looking for
04:32:17 <texasmyn_> Thank you dsal
04:35:44 × benjamin-l quits (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) (Ping timeout: 240 seconds)
04:36:09 × text70 quits (48b61385@072-182-019-133.res.spectrum.com) (Remote host closed the connection)
04:36:14 argent0 joins (~argent0@168.227.96.53)
04:36:17 × mbomba quits (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 3.0)
04:36:59 × TooDifficult quits (~vg@139.59.59.230) (Quit: TooDifficult)
04:37:15 × erisco quits (~erisco@d24-57-249-233.home.cgocable.net) (Read error: Connection reset by peer)
04:37:22 TooDifficult joins (~TooDiffic@139.59.59.230)
04:41:21 <monochrom> texasmyn_: My Debug.Trace tutorial: http://www.cs.utoronto.ca/~trebla/CSCC24-2020-Summer/tracing.html
04:41:43 Jonkimi727406120 joins (~Jonkimi@119.123.243.225)
04:41:43 × TooDifficult quits (~TooDiffic@139.59.59.230) (Ping timeout: 246 seconds)
04:41:45 <monochrom> As it happens, my students were also asking how to print debugging messages.
04:42:20 <monochrom> To their discredit, I already gave them the link on the course website long before they asked.
04:42:41 <dibblego> never tell students about Debug.Trace
04:43:27 <monochrom> Denied.
04:43:43 <dibblego> let putStrLn = trace
04:43:44 <monochrom> I have a student who was trying: case putStrLn "hi" of _ -> ...
04:44:10 <dibblego> it's also to give you deniability for when they discover it themselves
04:44:17 × adm_ quits (~adm@117.208.17.143) ()
04:44:26 <monochrom> Down that road is "how do I extract a from IO a" and discovering unsafePerformIO from googling
04:44:33 <dibblego> fun ey?
04:44:41 <monochrom> No, Debug.Trace is infinitely better in comparison.
04:44:43 <dibblego> I cover that question in lecture 1
04:45:00 <dibblego> if you ever ask yourself, "how do I get the a out (f a), the answer is bind, write this in your notes"
04:45:56 × Jonkimi727406120 quits (~Jonkimi@119.123.243.225) (Ping timeout: 240 seconds)
04:46:16 benjamin-l joins (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60)
04:47:19 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 246 seconds)
04:48:08 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:50:05 × ddellacosta quits (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds)
04:50:36 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
04:51:00 × blankhart quits (~blankhart@c-71-232-98-152.hsd1.ma.comcast.net) (Ping timeout: 272 seconds)
04:52:53 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
04:53:19 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:54:32 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
04:54:32 × Unicorn_Princess quits (~Unicorn_P@89-212-115-169.static.t-2.net) (Read error: Connection reset by peer)
04:54:53 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
04:55:25 Unicorn_Princess joins (~Unicorn_P@89-212-115-169.static.t-2.net)
05:01:54 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
05:02:38 <ezzieyguywuf> glguy: I created some more vim stuf for config-value if you're interested, it builds on the syntax file you made but also adds (1) filetype detection, (2) proper handling of comments. https://gitlab.com/ezzieyguywuf/vim-config-value
05:04:58 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
05:09:23 <texasmyn_> wow hello dibblego
05:09:29 <texasmyn_> I never see you here
05:09:36 texasmyn_ is now known as texasmynsted
05:09:44 <texasmynsted> How are things?
05:09:47 × benjamin-l quits (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) (Ping timeout: 260 seconds)
05:09:57 <dibblego> hey mate, pretty good
05:11:03 <texasmynsted> :-)
05:11:35 benjamin-l joins (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61)
05:14:16 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 246 seconds)
05:16:34 boxscape joins (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55)
05:21:15 Jonkimi727406120 joins (~Jonkimi@119.123.243.225)
05:21:19 petersen joins (~petersen@redhat/juhp)
05:25:52 × Jonkimi727406120 quits (~Jonkimi@119.123.243.225) (Ping timeout: 265 seconds)
05:26:56 <texasmynsted> Any new training, or flying or anything?
05:27:48 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
05:30:04 <dibblego> yes, I fly about 20 hours per week, doing written exams lately; did formation and RG endorsement recently
05:30:07 conal joins (~conal@64.71.133.70)
05:32:25 Iceland_jack joins (~user@31.124.48.169)
05:32:35 <texasmynsted> oh nice
05:32:45 <texasmynsted> 20 hours is a lot of flying
05:33:23 <dibblego> from first to last civil twilight, each weekend
05:33:57 <dibblego> also did a night rating, so sometimes then too
05:34:42 <texasmynsted> :-)
05:34:44 <texasmynsted> Wow fun
05:34:55 × alx741 quits (~alx741@186.178.110.121) (Ping timeout: 246 seconds)
05:35:28 <dibblego> day flight is all flight instruction, I fly at night for fun occasionally
05:36:08 × elliott_ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
05:36:36 <texasmynsted> I love the idea of flying but might panic a bit for the landing
05:36:52 <dibblego> just close ya eyes and hope
05:37:47 <texasmynsted> LOL
05:38:13 <dibblego> that's what most of my students do anyway
05:38:13 <texasmynsted> Catch you later.
05:38:19 <dibblego> scratchya
05:40:27 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
05:41:49 conal joins (~conal@64.71.133.70)
05:43:42 Jonkimi727406120 joins (~Jonkimi@119.123.243.225)
05:43:47 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
05:43:57 cads joins (~cads@ip-64-72-99-232.lasvegas.net)
05:48:00 alx741 joins (~alx741@186.178.110.235)
05:48:04 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 240 seconds)
05:49:22 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
05:50:33 × da39a3ee5e6b4b0d quits (~da39a3ee5@mx-ll-171.5.161-165.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:52:38 <glguy> ezzieyguywuf: pull requests encouraged :)
05:53:12 × zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving)
05:54:16 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
05:55:03 pthariensflame joins (~pthariens@2600:6c52:7280:100:3526:4e41:9f18:1bc7)
05:55:16 × pthariensflame quits (~pthariens@2600:6c52:7280:100:3526:4e41:9f18:1bc7) (Client Quit)
05:55:26 × jMCg quits (~jMCg@195.140.213.38) (Remote host closed the connection)
05:57:21 zaquest joins (~notzaques@5.128.210.178)
05:57:24 × zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection)
05:57:45 × livvy quits (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
05:57:53 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:58:22 × MrSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
05:59:09 MrSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
05:59:46 × Techcable quits (znc@irc.techcable.net) (Ping timeout: 256 seconds)
06:01:38 × nullheroes quits (~danielvu@168.235.66.22) (Ping timeout: 256 seconds)
06:03:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
06:03:25 × dmiles quits (~dmiles@c-73-67-179-188.hsd1.wa.comcast.net) (Ping timeout: 240 seconds)
06:03:31 livvy joins (~livvy@gateway/tor-sasl/livvy)
06:04:01 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
06:04:45 × texasmynsted quits (~texasmyns@212.102.45.103) (Ping timeout: 240 seconds)
06:05:54 alp joins (~alp@2a01:e0a:58b:4920:2c52:ef0a:5cc:82b2)
06:08:26 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
06:09:49 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
06:10:26 nullheroes joins (~danielvu@168.235.66.22)
06:11:02 vicfred_ joins (~vicfred@unaffiliated/vicfred)
06:11:23 Techcable joins (znc@irc.techcable.net)
06:12:41 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
06:13:59 × vicfred quits (~vicfred@unaffiliated/vicfred) (Ping timeout: 260 seconds)
06:14:29 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
06:15:56 × nullheroes quits (~danielvu@168.235.66.22) (Ping timeout: 240 seconds)
06:16:08 × Techcable quits (znc@irc.techcable.net) (Ping timeout: 256 seconds)
06:16:17 × mounty quits (~mounty@2001:8000:2f59:0:348e:496f:dd83:259f) (Ping timeout: 260 seconds)
06:18:43 × vicfred_ quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
06:19:13 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
06:21:06 × alp quits (~alp@2a01:e0a:58b:4920:2c52:ef0a:5cc:82b2) (Remote host closed the connection)
06:21:25 alp joins (~alp@2a01:e0a:58b:4920:8402:ce99:23ef:5435)
06:24:38 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
06:25:18 Techcable joins (znc@irc.techcable.net)
06:25:48 × z0k quits (~user@101.50.127.33) (Ping timeout: 265 seconds)
06:26:07 × echoreply quits (~echoreply@unaffiliated/echoreply) (Quit: WeeChat 1.9.1)
06:26:09 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
06:26:26 × xff0x quits (~fox@2001:1a81:5384:5000:270f:7277:a2a:3b14) (Ping timeout: 264 seconds)
06:26:35 echoreply joins (~echoreply@unaffiliated/echoreply)
06:27:02 xff0x joins (~fox@port-92-193-204-144.dynamic.as20676.net)
06:27:40 z0k joins (~user@101.50.127.33)
06:29:08 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 244 seconds)
06:29:26 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
06:29:49 nullheroes joins (~danielvu@168.235.66.22)
06:30:42 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
06:31:19 lambdaman joins (~lambdaman@d23-16-215-123.bchsia.telus.net)
06:31:34 mbomba joins (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca)
06:31:47 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:32:11 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
06:34:49 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
06:35:25 × lambdaman quits (~lambdaman@d23-16-215-123.bchsia.telus.net) (Ping timeout: 240 seconds)
06:36:10 × alp quits (~alp@2a01:e0a:58b:4920:8402:ce99:23ef:5435) (Remote host closed the connection)
06:36:23 × noecho quits (~noecho@static.143.42.203.116.clients.your-server.de) (Quit: ZNC - http://znc.in)
06:36:31 alp joins (~alp@2a01:e0a:58b:4920:c0f7:91e2:75ec:62f6)
06:36:53 noecho joins (~noecho@2a01:4f8:1c0c:80ee::4223)
06:37:03 macrover joins (~macrover@ip68-108-126-211.lv.lv.cox.net)
06:37:53 coot joins (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl)
06:38:26 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:39:01 × hexfive quits (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.)
06:39:37 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
06:39:53 gioyik_ joins (~gioyik@186.112.99.244)
06:42:12 × gioyik quits (~gioyik@186.118.250.147) (Ping timeout: 256 seconds)
06:43:45 keviv_ joins (~keviv@35.142.17.117)
06:47:08 feb joins (~feb@178.162.212.214)
06:48:34 johnw joins (~johnw@haskell/developer/johnw)
06:48:54 sagax joins (~sagax_nb@213.138.71.146)
06:49:57 × alp quits (~alp@2a01:e0a:58b:4920:c0f7:91e2:75ec:62f6) (Ping timeout: 272 seconds)
06:50:28 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:50:29 × kupi quits (uid212005@gateway/web/irccloud.com/x-uzfuhbaegjptzqnv) (Quit: Connection closed for inactivity)
06:52:52 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
06:54:58 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
06:56:31 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
07:01:08 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
07:02:30 jasperr joins (~gazso@91-82-250-42.pool.digikabel.hu)
07:04:06 <jasperr> hello everybody
07:04:25 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 240 seconds)
07:05:05 <jasperr> maybe I am missing something very trivial... I would like to use XsdToHaskell and DtdToHaskell on debian buster distribution
07:05:57 lambdaman joins (~lambdaman@d23-16-215-123.bchsia.telus.net)
07:07:12 × boxscape quits (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Quit: Connection closed)
07:07:20 <jasperr> as far as I see I have all the related ghc-* packages installed from the debian apt repositories, however I cannot find a way to get these utilities... including the -dev packages as well
07:08:38 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-djudanwmexelqxja) (Quit: Connection closed for inactivity)
07:10:14 × DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
07:11:54 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
07:12:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
07:13:54 DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
07:14:08 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 272 seconds)
07:16:58 knupfer joins (~Thunderbi@i5E86B442.versanet.de)
07:18:49 × bitmapper quits (uid464869@gateway/web/irccloud.com/x-azvgqwppafppryvm) (Quit: Connection closed for inactivity)
07:19:43 × ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
07:20:48 × echoreply quits (~echoreply@unaffiliated/echoreply) (Ping timeout: 256 seconds)
07:21:43 × gioyik_ quits (~gioyik@186.112.99.244) (Quit: WeeChat 3.0)
07:23:35 <jasperr> digging a bit I found /usr/bin/DtdToHaskell coming from debian package haxml, XsdToHaskell is simply not provided, I do not understand why
07:24:11 × argent0 quits (~argent0@168.227.96.53) (Remote host closed the connection)
07:27:56 × knupfer quits (~Thunderbi@i5E86B442.versanet.de) (Ping timeout: 240 seconds)
07:30:26 alp joins (~alp@2a01:e0a:58b:4920:bd96:e74f:fabb:2840)
07:31:41 <glguy> jasperr: in that case you might just have to build it outside of the package system
07:32:16 × stree quits (~stree@50-108-78-9.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
07:32:34 stree joins (~stree@50-108-78-9.adr01.mskg.mi.frontiernet.net)
07:35:24 bitmagie joins (~Thunderbi@200116b80644c800d0172d212adf5a3c.dip.versatel-1u1.de)
07:36:26 <jasperr> I see... I do not like this idea that much
07:38:12 dnlkrgr joins (~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de)
07:38:28 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds)
07:40:54 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
07:41:05 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 240 seconds)
07:41:17 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:41:20 dhouthoo joins (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
07:41:22 × jlamothe quits (~jlamothe@198.251.55.207) (Ping timeout: 256 seconds)
07:41:27 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
07:42:06 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Client Quit)
07:43:30 × bitmagie quits (~Thunderbi@200116b80644c800d0172d212adf5a3c.dip.versatel-1u1.de) (Quit: bitmagie)
07:44:55 L29Ah joins (~L29Ah@unaffiliated/l29ah)
07:46:44 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
07:46:45 × tessier quits (~treed@kernel-panic/copilotco) (Ping timeout: 240 seconds)
07:47:14 × Unicorn_Princess quits (~Unicorn_P@89-212-115-169.static.t-2.net) (Quit: Leaving)
07:48:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:48:14 jlamothe joins (~jlamothe@198.251.55.207)
07:48:39 zaquest joins (~notzaques@5.128.210.178)
07:48:41 hackage nothunks 0.1.2 - Examine values for unexpected thunks https://hackage.haskell.org/package/nothunks-0.1.2 (EdskoDeVries)
07:48:42 × zaquest quits (~notzaques@5.128.210.178) (Read error: Connection reset by peer)
07:49:59 sord937 joins (~sord937@gateway/tor-sasl/sord937)
07:52:23 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
07:56:06 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
07:57:16 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
07:57:28 <jasperr> maybe the best is then to contact the Debian Haskell Group
07:57:50 chele joins (~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
07:59:39 ph88 joins (~ph88@2a02:8109:9e00:7e5c:b9be:939f:4d9:5357)
08:02:24 × lassulus quits (~lassulus@NixOS/user/lassulus) (Quit: WeeChat 2.7.1)
08:02:59 <Orbstheorem> Hello, I'm trying to write an inductive type instance over Nat but I can't manage to convince GHC that by base-case and inductive step are disjoint: https://paste.gnugen.ch/raw/fsvt
08:05:03 raichoo joins (~raichoo@dslb-188-101-186-206.188.101.pools.vodafone-ip.de)
08:05:16 <Orbstheorem> I'm not even sure, this is an inductive type instance, so I may aswell describe what I want: Given a type-level "depth" and a tree, I want to make another tree that is complete and has nodes of type `Maybe a` and contain the information of the original tree if such tree contained that node.
08:05:25 <Orbstheorem> s/sure,/sure
08:06:10 echoreply joins (~echoreply@unaffiliated/echoreply)
08:06:20 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds)
08:07:21 bitmagie joins (~Thunderbi@200116b80644c800d0172d212adf5a3c.dip.versatel-1u1.de)
08:09:31 da39a3ee5e6b4b0d joins (~da39a3ee5@ppp-223-24-170-139.revip6.asianet.co.th)
08:10:18 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
08:10:21 ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex)
08:11:00 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Remote host closed the connection)
08:12:43 Varis joins (~Tadas@unaffiliated/varis)
08:13:07 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
08:13:53 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
08:17:31 Lycurgus joins (~niemand@cpe-45-46-137-210.buffalo.res.rr.com)
08:17:41 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:17:43 × lambdaman quits (~lambdaman@d23-16-215-123.bchsia.telus.net) (Quit: Leaving...)
08:18:06 graf_blutwurst joins (~user@2001:171b:226e:adc0:416e:f9ed:b426:e09e)
08:19:15 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
08:20:58 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Client Quit)
08:22:13 × nados quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: Leaving)
08:22:17 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:23:53 × benjamin-l quits (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61) (Ping timeout: 246 seconds)
08:26:05 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
08:28:22 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
08:29:24 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
08:30:59 sleblanc joins (~sleblanc@unaffiliated/sebleblanc)
08:31:00 oxide joins (~lambda@unaffiliated/mclaren)
08:31:46 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
08:31:54 <sleblanc> > let p = isDigit &&& isAlpha
08:31:56 <lambdabot> <no location info>: error:
08:31:56 <lambdabot> not an expression: ‘let p = isDigit &&& isAlpha’
08:32:29 <sleblanc> > (isAlpha &&& isDigit) 'a'
08:32:32 <lambdabot> (True,False)
08:32:39 <sleblanc> > (isAlpha &&& isDigit) '9'
08:32:42 <lambdabot> (False,True)
08:32:59 × RoguePointer quits (~jigen@unaffiliated/roguepointer) (Quit: <>)
08:33:07 <sleblanc> > or $ (isAlpha && isDigit) '9'
08:33:10 <lambdabot> error:
08:33:10 <lambdabot> • Couldn't match expected type ‘Char -> t0 Bool’
08:33:10 <lambdabot> with actual type ‘Bool’
08:33:17 RoguePointer joins (~jigen@94.177.235.178)
08:33:17 × RoguePointer quits (~jigen@94.177.235.178) (Changing host)
08:33:17 RoguePointer joins (~jigen@unaffiliated/roguepointer)
08:33:17 <sleblanc> > or $ (isAlpha &&& isDigit) '9'
08:33:20 <lambdabot> True
08:33:30 <sleblanc> > or $ (isAlpha &&& isDigit) 'a'
08:33:32 <lambdabot> False
08:33:37 <sleblanc> why?
08:33:49 <sleblanc> > or (True, False)
08:33:52 <lambdabot> False
08:34:23 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
08:35:11 hackage clickhouse-haskell 0.1.1.0 - A Haskell library as database client for Clickhouse https://hackage.haskell.org/package/clickhouse-haskell-0.1.1.0 (MaboroshiChan)
08:35:49 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
08:36:04 <idnar> :t or
08:36:06 <lambdabot> Foldable t => t Bool -> Bool
08:36:15 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
08:36:19 heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
08:36:44 bahamas joins (~lucian@unaffiliated/bahamas)
08:37:09 <idnar> sleblanc: the Foldable instance on tuples doesn't do what you want:
08:37:34 <sleblanc> yeah. what is the meaning behind this behaviour?
08:37:40 <idnar> > toList (1, 2)
08:37:42 <lambdabot> error:
08:37:43 <lambdabot> Ambiguous occurrence ‘toList’
08:37:43 <lambdabot> It could refer to
08:37:47 <sleblanc> what use is there for that?
08:38:38 <sleblanc> > Data.Foldable.toList (1,2)
08:38:40 <lambdabot> [2]
08:39:22 <Sose> I'm not sure but I think conceptually a 2-tuple in Haskell is not "a thing with 2 elements" but rather "a thing with 1 element and some context (the first element)"
08:39:37 <Sose> it's a little weird imho
08:40:11 <idnar> well, Foldable (,) is a kind error, so it has to be Foldable ((,) a)
08:40:11 <Sose> atleast when it comes to some instances like Functor and Foldable
08:40:14 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
08:40:22 <sleblanc> it would also give an excuse for not having Foldable (,,) et al.
08:40:42 <sleblanc> idnar, right…
08:41:26 miguel_clean joins (~Miguel@89-72-187-203.dynamic.chello.pl)
08:41:41 <sleblanc> are there any concrete uses of the foldable instance for ((,) a) ?
08:42:00 <idnar> https://mail.haskell.org/pipermail/haskell-cafe/2020-November/132978.html
08:42:27 × da39a3ee5e6b4b0d quits (~da39a3ee5@ppp-223-24-170-139.revip6.asianet.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:42:42 <idnar> this is frequently debated
08:43:13 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 246 seconds)
08:43:28 <jle`> i think there are nice usages of Traversable ((,) w)
08:43:30 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Quit: nineonine)
08:43:38 <idnar> one use is assoc-listish things
08:43:40 <jle`> but that would require Foldable as a superclass
08:43:44 <jle`> so idk
08:43:58 <jle`> i'm not happy with the Foldable instance existing either, it has caused me a lot of headache in the past
08:44:08 <jle`> it sort of directly compromises the ideals of type safety in haskell
08:44:50 <idnar> > sum [("foo", 1), ("bar", 2)]
08:44:52 <lambdabot> error:
08:44:52 <lambdabot> • No instance for (Num ([Char], Integer))
08:44:52 <lambdabot> arising from a use of ‘e_112’
08:45:00 <idnar> ugh
08:45:05 <sleblanc> owch
08:45:20 lassulus joins (~lassulus@NixOS/user/lassulus)
08:45:33 <idnar> > foldr (+) 0 [("foo", 1), ("bar", 2)]
08:45:35 <lambdabot> error:
08:45:35 <lambdabot> • No instance for (Num ([Char], Integer))
08:45:35 <lambdabot> arising from a use of ‘e_1012’
08:46:04 <idnar> > foldMap Sum [("foo", 1), ("bar", 2)]
08:46:06 <lambdabot> error:
08:46:06 <lambdabot> • No instance for (Num ([Char], Integer))
08:46:06 <lambdabot> arising from a use of ‘e_112’
08:46:14 × shatriff quits (~vitaliish@176.52.219.10) (Read error: Connection reset by peer)
08:46:33 <idnar> oh I'm dumb
08:46:34 <sleblanc> something something expecting different results
08:46:41 shatriff joins (~vitaliish@176.52.219.10)
08:47:02 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
08:47:20 kuribas joins (~user@ptr-25vy0i8gptzu7g9n288.18120a2.ip6.access.telenet.be)
08:47:33 <idnar> > foldMap (foldMap Sum) [("foo", 1), ("bar", 2)]
08:47:35 <lambdabot> Sum {getSum = 3}
08:47:48 <idnar> a bit silly
08:48:54 Amras joins (~Amras@unaffiliated/amras)
08:50:50 <sleblanc> sum $ map snd [("foo", 1), ("bar", 2)]
08:50:52 <sleblanc> > sum $ map snd [("foo", 1), ("bar", 2)]
08:50:54 <lambdabot> 3
08:51:30 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
08:53:15 × Amras quits (~Amras@unaffiliated/amras) (Remote host closed the connection)
08:54:05 borne joins (~fritjof@200116b864c920008cdf581d4c1cc02f.dip.versatel-1u1.de)
08:54:40 <Orbstheorem> > fmap (bimap sum sum) [("foo", 1), ("bar", 2)]
08:54:43 <lambdabot> error:
08:54:43 <lambdabot> • Could not deduce (Num Char) arising from a use of ‘sum’
08:54:43 <lambdabot> from the context: (Foldable t, Num d, Num (t d))
08:56:19 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
08:56:29 Amras joins (~Amras@unaffiliated/amras)
08:56:36 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
08:56:46 phasespace joins (~sar@89-162-33-21.fiber.signal.no)
08:56:49 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
08:57:12 × SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Read error: Connection reset by peer)
08:57:42 britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch)
08:58:19 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:9156:658b:3008:cf:28b1)
08:59:16 cfricke joins (~cfricke@unaffiliated/cfricke)
08:59:35 SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net)
08:59:38 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 260 seconds)
09:00:06 × loprakoa[m] quits (loprakoama@gateway/shell/matrix.org/x-zoiumweqktphvybc) (Quit: Idle for 30+ days)
09:00:06 × dyniec[m] quits (dyniecmatr@gateway/shell/matrix.org/x-bzyahcrtvmhlgeby) (Quit: Idle for 30+ days)
09:00:45 × Lycurgus quits (~niemand@cpe-45-46-137-210.buffalo.res.rr.com) (Quit: Exeunt)
09:01:14 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
09:02:01 × mbomba quits (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 3.0)
09:03:10 × dnlkrgr quits (~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) (Quit: WeeChat 2.9)
09:06:31 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
09:06:53 × britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
09:07:17 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
09:11:17 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
09:12:49 berberman_ joins (~berberman@unaffiliated/berberman)
09:13:18 britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch)
09:13:38 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
09:15:27 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
09:16:07 boxscape joins (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55)
09:17:11 hackage mail-pool 2.2.1 - Preconfigured email connection pool on top of smtp. https://hackage.haskell.org/package/mail-pool-2.2.1 (Jappie)
09:19:08 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
09:23:39 fendor joins (~fendor@178.115.131.244.wireless.dyn.drei.com)
09:25:34 Digit joins (~user@fsf/member/digit)
09:26:02 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
09:26:51 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
09:28:21 <Digit> hi. i'm wondering if there's an established/illustrated/expressed relationship between feynman diagrams, and monads, either directly or indirectly (like a shared simplification or augment of understanding or processing or something). or has my brain just started barking up the wrong tree?
09:29:22 <[exa]> Digit: CT has commutative diagrams
09:29:26 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
09:29:56 × danso quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9)
09:30:08 <Digit> category theory. *nods*
09:30:25 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-lkwbhxlzvzytbqoi) (Quit: Connection closed for inactivity)
09:30:31 <boxscape> monads can also be expressed in string diagrams which look kind of similar to FDs https://ncatlab.org/nlab/show/string+diagram but not sure there's an actual connection there
09:31:16 <boxscape> (the string diagrams for monads are on this page https://ncatlab.org/nlab/show/monad )
09:31:31 <[exa]> the feynman diagrams kindof describe a single process with inputs and outputs right?
09:31:50 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
09:32:12 × bitmagie quits (~Thunderbi@200116b80644c800d0172d212adf5a3c.dip.versatel-1u1.de) (Quit: bitmagie)
09:32:25 Yumasi joins (~guillaume@2a01:e0a:5cb:4430:e1ea:8f38:f518:4e69)
09:33:27 <boxscape> the string diagram page contains a link to https://ncatlab.org/nlab/show/%27t+Hooft+double+line+notation which mentions feynman diagrams in the opening paragraph
09:34:36 × lassulus quits (~lassulus@NixOS/user/lassulus) (Ping timeout: 240 seconds)
09:36:46 dnlkrgr joins (~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de)
09:37:01 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
09:37:05 × jespada quits (~jespada@90.254.245.49) (Ping timeout: 240 seconds)
09:37:50 knupfer joins (~Thunderbi@dynamic-046-114-144-045.46.114.pool.telefonica.de)
09:37:54 jespada joins (~jespada@90.254.245.49)
09:40:21 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
09:40:41 lassulus joins (~lassulus@NixOS/user/lassulus)
09:41:15 × wei2912 quits (~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
09:41:37 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
09:42:04 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
09:43:14 <ski> Digit : "The Catsters" <https://www.youtube.com/playlist?list=PLlGXNwjYhXYxKVa67r0pKuYufECy713bv> mentions string diagrams (and also talks about monads in different videos)
09:43:19 × lassulus quits (~lassulus@NixOS/user/lassulus) (Read error: error:1408F10B:SSL routines:ssl3_get_record:wrong version number)
09:43:52 × howdoi quits (uid224@gateway/web/irccloud.com/x-lajkqzxuizaoleyn) (Quit: Connection closed for inactivity)
09:44:22 zaquest joins (~notzaques@5.128.210.178)
09:45:06 <ski> it would be nice to be able to reexport an operation, with a restricted type signature (so that e.g. `Data.Foldable' exports `length :: Foldable t => t a -> Int', while `Prelude' reexports it as `length :: [a] -> Int'
09:45:07 × zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection)
09:46:52 pjb joins (~t@2a01cb04063ec500f481f246a0d62c86.ipv6.abo.wanadoo.fr)
09:47:14 thc202 joins (~thc202@unaffiliated/thc202)
09:47:17 b3z joins (~b3z@vmd41962.contaboserver.net)
09:47:32 <ski> Orbstheorem : it seems `n + 1' (nor `1 + n') is not considered to be disjoint from `0' (i tried `instance (0 <= n,PadTree n) => PadTree (n + 1) where ...', since obviously `instance (depth ~ n + 1,...) => PadTree depth where ...' will obviously overlap with `instance PadTree 0 where ...', can't possibly work ..)
09:48:44 × Lord_of_Life quits (~Lord@46.217.221.243) (Changing host)
09:48:44 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
09:48:53 <boxscape> ski can't you do that simply by defining a new length method in Prelude and say "length :: [a] -> Int; length = length"?
09:49:06 <boxscape> uh
09:49:12 <boxscape> imagine I qualified that length on the rhs
09:52:43 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
09:52:56 <ski> boxscape : the point would be to not have an identifier clash, if you import both (but rather get the most general version (if any. or else, have to disaambiguate))
09:53:17 mouseghost joins (~draco@wikipedia/desperek)
09:53:19 <boxscape> Ah, I see
09:54:32 christo joins (~chris@81.96.113.213)
09:54:37 × fendor quits (~fendor@178.115.131.244.wireless.dyn.drei.com) (Remote host closed the connection)
09:55:04 <ski> Orbstheorem : btw, why "Square" ? .. also, on this line, `data PerfectlyBalancedBinaryTree a = Elems a | Double (PerfectlyBalancedBinaryTree (a,a))' might be interesting to consider. you could also make a GADT one of kind `Nat -> * -> *' (rather than the phantom type `SquareTree' that you have)
09:55:19 dmiles joins (~dmiles@c-73-67-179-188.hsd1.wa.comcast.net)
09:55:51 LKoen joins (~LKoen@105.175.9.109.rev.sfr.net)
09:56:29 lassulus joins (~lassulus@NixOS/user/lassulus)
09:57:22 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
10:00:00 × thallada quits (~thallada@fsf/member/thallada) (Quit: WeeChat 2.4)
10:05:25 m0rphism joins (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de)
10:05:27 × knupfer quits (~Thunderbi@dynamic-046-114-144-045.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
10:05:33 <boxscape> Digit there's also a paragraph here on feynman diagrams as string diagrams https://ncatlab.org/nlab/show/Feynman+diagram#AsStringDiagrams
10:11:14 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection)
10:12:17 × oxide quits (~lambda@unaffiliated/mclaren) (Quit: oxide)
10:12:45 shatriff joins (~vitaliish@176.52.219.10)
10:13:01 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
10:13:15 shatriff joins (~vitaliish@176.52.219.10)
10:16:21 × SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!)
10:22:53 ubert joins (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
10:23:21 × tsrt^ quits (tsrt@ip98-184-89-2.mc.at.cox.net) ()
10:30:40 × lassulus quits (~lassulus@NixOS/user/lassulus) (Ping timeout: 246 seconds)
10:32:00 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
10:33:10 hackage clickhouse-haskell 0.1.2.0 - A Haskell library as database client for Clickhouse https://hackage.haskell.org/package/clickhouse-haskell-0.1.2.0 (MaboroshiChan)
10:38:43 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds)
10:41:03 mastarija joins (~mastarija@93-136-113-7.adsl.net.t-com.hr)
10:41:18 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
10:43:14 danza_ joins (~francesco@151.53.76.12)
10:44:44 × danza quits (~francesco@151.53.79.66) (Ping timeout: 256 seconds)
10:45:30 danza__ joins (~francesco@151.53.67.9)
10:45:46 caef^ joins (caef@ip98-184-89-2.mc.at.cox.net)
10:48:12 × danza_ quits (~francesco@151.53.76.12) (Ping timeout: 272 seconds)
10:51:19 f-a joins (~f-a@151.36.58.162)
10:52:15 SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net)
10:52:27 × SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Remote host closed the connection)
10:54:24 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
10:54:26 SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net)
10:57:35 × SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Client Quit)
10:58:37 whatisRT joins (~whatisRT@2002:5b41:6a33:0:7903:e9c9:42a2:c7c5)
10:58:42 SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net)
10:59:08 × Jonkimi727406120 quits (~Jonkimi@119.123.243.225) (Ping timeout: 256 seconds)
10:59:08 × alp quits (~alp@2a01:e0a:58b:4920:bd96:e74f:fabb:2840) (Remote host closed the connection)
10:59:44 alp joins (~alp@2a01:e0a:58b:4920:b500:dcf8:65db:294b)
11:00:24 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds)
11:00:51 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
11:01:06 × SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Client Quit)
11:01:36 cfricke joins (~cfricke@unaffiliated/cfricke)
11:02:02 SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net)
11:03:22 × SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Client Quit)
11:03:26 danza_ joins (~francesco@151.53.95.77)
11:04:02 × danza__ quits (~francesco@151.53.67.9) (Ping timeout: 272 seconds)
11:06:02 Sheilong joins (uid293653@gateway/web/irccloud.com/x-wyoujgmfddjrgmqq)
11:09:47 SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net)
11:11:12 × o1lo01ol1o quits (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
11:11:37 heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
11:12:11 hackage hw-kafka-client 4.0.0 - Kafka bindings for Haskell https://hackage.haskell.org/package/hw-kafka-client-4.0.0 (alexeyraga)
11:15:11 hackage friendly 0.1.0.2 - Attempt to pretty-print any input https://hackage.haskell.org/package/friendly-0.1.0.2 (EdskoDeVries)
11:16:14 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Ping timeout: 264 seconds)
11:18:48 <mastarija> About the "cross compiling". I have a 64 bit Windows machine, and I have a 64 bit linux / CloudLinux / cPanel server. Since it's cPanel, I don't have a great control over it, however I can upload and execute custom scripts / executables.
11:19:23 <mastarija> Can I just use a VM / WSL to compile locally and then execute on server?
11:19:59 <mastarija> If my program is fairly simple and doesn't depend on dll's and stuff?
11:20:20 <mastarija> I'm guessing it needs to be statically linked?
11:21:23 × philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
11:22:03 fendor joins (~fendor@178.115.131.244.wireless.dyn.drei.com)
11:22:03 × carlomagno quits (~cararell@148.87.23.6) (Remote host closed the connection)
11:25:17 dhil joins (~dhil@195.213.192.34)
11:26:18 <maerwald> static linking on linux and then execute in WSL ubuntu?
11:26:26 tromp_ joins (~tromp@dhcp-077-249-230-040.chello.nl)
11:26:28 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
11:27:34 <mastarija> maerwald, no, basically I want to compile on windows in WSL or some VM and then execute on my cPanel / CloudLinux server.
11:28:13 <mastarija> But since this is WSL or VM Linux, then windows part doesn't really matter I guess :/
11:28:43 <mastarija> I mean, in theory it should work, right?
11:28:50 carlomagno joins (~cararell@148.87.23.11)
11:28:58 Libertinus joins (58c19c04@dsl-trebng21-58c19c-4.dhcp.inet.fi)
11:29:07 <maerwald> I don't understand why you would want to use WSL to create a linux executable
11:29:26 <maerwald> path of maximum resistance?
11:30:54 <mastarija> Yes
11:31:07 <mastarija> I have Windows and I'm too lazy to switch to Linux
11:31:15 <ezzieyguywuf> glguy: I considered a pull request, but having it in a separate repository allows for easy integration with the various vim plugin managers
11:31:17 <mastarija> And I can't compile on my server for "reasons"
11:31:21 <Libertinus> New to irc and Haskell. Where and how should I ask about installation on MacOS Catalina. Watched and "copied" actions on a video but did not succeed. Some old partial installation might interfere
11:31:59 <maerwald> Libertinus: https://www.haskell.org/ghcup/
11:32:09 <Libertinus> Ta!
11:33:03 <mastarija> maerwald, anyway, scratch the Windows part. If I compile Haskell program on linux distro X and try to run it on linux distro Y, will it work?
11:33:09 <Libertinus> That is the procedure I tried. Did not install and I don't have a clue what the error msg means.
11:33:28 <maerwald> mastarija: you can use alpine linux docker image to create a sttic executable
11:33:34 <maerwald> *static
11:34:00 <maerwald> here's an example https://gist.github.com/hasufell/f0893abfbba63ac4ea40feb0520946ee
11:34:34 jamm_ joins (~jamm@unaffiliated/jamm)
11:36:59 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
11:37:26 × MrSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
11:38:06 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
11:38:41 <mastarija> maerwald, I'm assuming the resulting product doesn't require Docker on the target system?
11:38:52 × hc quits (~hc@bsd.pm) (Remote host closed the connection)
11:39:45 danza__ joins (~francesco@151.74.111.235)
11:39:54 <maerwald> that's just an example on how to create static executables: 1. use alpine, 2. install static versions of system libraries, 3. run stack/cabal with --ghc-options='-optl-static -split-sections'
11:40:27 <ski> Libertinus : mentioning the error message might help
11:41:06 <maerwald> mastarija: or try nix and spend a few weeks figuring out how it works: https://github.com/nh2/static-haskell-nix
11:41:24 × uberj_ quits (~uberj@107.170.237.156) (Remote host closed the connection)
11:41:31 <mastarija> XD
11:41:43 uberj_ joins (~uberj@107.170.237.156)
11:41:52 <mastarija> Thanks
11:42:07 × danza_ quits (~francesco@151.53.95.77) (Read error: Connection reset by peer)
11:42:42 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
11:43:03 × roconnor quits (~roconnor@host-45-58-200-239.dyn.295.ca) (Remote host closed the connection)
11:43:58 × Iceland_jack quits (~user@31.124.48.169) (Remote host closed the connection)
11:44:51 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
11:45:33 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
11:45:53 × bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 260 seconds)
11:46:07 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
11:46:40 mouseghost joins (~draco@wikipedia/desperek)
11:48:08 jamm_ joins (~jamm@unaffiliated/jamm)
11:48:26 × danza__ quits (~francesco@151.74.111.235) (Ping timeout: 256 seconds)
11:49:40 <Libertinus> Here's the error msgI got from trying to install HAskell:
11:49:46 <Libertinus> Last login: Thu Dec 3 00:22:46 on consoleanokhi@MacBook-Pro ~ % curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | shWelcome to Haskell!This script will download and install the following binaries: * ghcup - The Haskell toolchain installer (for managing GHC/cabal versions) * ghc - The Glasgow Haskell Compiler *
11:49:47 <Libertinus> cabal - The Cabal build toolghcup installs only into the following directory,which can be removed anytime: /Users/anokhi/.ghcupPress ENTER to proceed or ctrl-c to abort.Note that this script can be re-run at any given time. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload
11:49:47 <Libertinus> Total Spent Left Speed100 8796k 100 8796k 0 0 4903k 0 0:00:01 0:00:01 --:--:-- 4900k[ Info ] Upgrading GHCup...[ Warn ] No GHCup update availableSystem requirements Note: On OS X, in the course of running ghcup you will be given a dialog box to install the command line tools. Accept and the requirements will be installed
11:49:48 <Libertinus> for you. You will then need to run the command again.Press ENTER to proceed or ctrl-c to abort.Installation may take a while.[ Info ] verifying digest of: ghc-8.8.4-x86_64-apple-darwin.tar.xz[ Info ] Unpacking: ghc-8.8.4-x86_64-apple-darwin.tar.xz to /var/folders/3f/fjxj71mn6hj5bzz665k_566r0000gn/T/ghcup-Bl7w0V[ Info ] Installing GHC (this may
11:49:48 <Libertinus> take a while)[ ghc-configure ] not found (too old?)[ ghc-configure ] checking for gcc... gcc[ ghc-configure ] checking whether the C compiler works... no[ ghc-configure ] configure: error: in `/private/var/folders/3f/fjxj71mn6hj5...[ ghc-configure ] configure: error: C compiler cannot create executables[ ghc-configure ] See `config.log' for more
11:49:48 <Libertinus> details[ Error ] Build failed with NonZeroExit 77 "./configure" ["--prefix=/Users/anokhi/.ghcup/ghc/8.8.4"] Check the logs at "/Users/anokhi/.ghcup/logs" and the build directory "/var/folders/3f/fjxj71mn6hj5bzz665k_566r0000gn/T/ghcup-Bl7w0V" for more clues. Make sure to clean up "/var/folders/3f/fjxj71mn6hj5bzz665k_566r0000gn/T/ghcup-Bl7w0V"
11:49:49 <Libertinus> afterwards."_eghcup --cache install ghc recommended" failed!anokhi@MacBook-Pro ~ % curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | shWelcome to Haskell!This script will download and install the following binaries: * ghcup - The Haskell toolchain installer (for managing GHC/cabal versions) * ghc - The Glasgow
11:49:49 × Libertinus quits (58c19c04@dsl-trebng21-58c19c-4.dhcp.inet.fi) (Killed (Sigyn (Spam is off topic on freenode.)))
11:49:50 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
11:50:33 <int-e> :/
11:50:33 <maerwald> ...
11:50:50 lassulus joins (~lassulus@NixOS/user/lassulus)
11:51:10 <maerwald> seems xcode not installed
11:53:37 ClaudiusMaximus joins (~claude@223.153.198.146.dyn.plus.net)
11:54:03 × ClaudiusMaximus quits (~claude@223.153.198.146.dyn.plus.net) (Changing host)
11:54:03 ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus)
11:54:04 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
11:54:17 ChanServ sets mode +o ski
11:54:37 ChanServ sets mode -o ski
11:54:46 christo joins (~chris@81.96.113.213)
11:55:01 ulidtko|k is now known as ulidtko
11:56:45 joaj joins (~joaj@2001:690:2100:110:cceb:227c:edbc:592c)
11:57:08 × Orbstheorem quits (~roosember@hellendaal.orbstheorem.ch) (Quit: WeeChat 2.3)
11:57:23 Aquazi joins (uid312403@gateway/web/irccloud.com/x-hleddgoteowwxjqp)
11:58:09 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
11:58:43 <boxscape> why do value constructors have to begin with an uppercase letter? Distinguishing between a function and a constructor doesn't seem like something that a haskell compiler has to be able to do during parsing
11:58:58 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
11:59:14 × christo quits (~chris@81.96.113.213) (Ping timeout: 260 seconds)
11:59:32 <merijn> boxscape: Eh, because asking yourself "is this maybe a constructor?" every 5 minutes while coding sucks
12:00:05 <boxscape> hm, I guess. I suppose I'm just used to that being a coding convention thing rather than something that's enforced
12:00:36 <boxscape> i.e. readability being a reason for uppercase vs lowercase
12:00:50 solonarv joins (~solonarv@anancy-651-1-197-136.w109-217.abo.wanadoo.fr)
12:01:29 danza__ joins (~francesco@151.46.171.237)
12:01:45 <boxscape> I guess it helps with DataKinds since otherwise you couldn't use constructors without ' without it looking like a type variable to the constructor
12:02:00 Libertinus joins (58c19c04@dsl-trebng21-58c19c-4.dhcp.inet.fi)
12:02:29 <ski> in the MLs, data constructors can begin with both lower and upper case. and so, for constant patterns, you could mistake them for a variable pattern, if you don't recall their being constructors. also, with a typo, they'd become variables
12:02:52 <ski> Libertinus : please don't paste large amounts of text into the channel. use e.g. a paste service/site
12:03:02 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
12:03:06 <boxscape> hm yeah that's fair point
12:03:46 <ski> perhaps one could argue for type families starting with lower case ?
12:04:04 <Libertinus> I tried to paste the error texts i got from trying to install Haskell (platform?) but the window froze. Will try again in a moment. An early perhaps partial installation might interfere. Any attempts at help are appreciated.
12:04:11 hackage haskoin-core 0.17.4 - Bitcoin & Bitcoin Cash library for Haskell https://hackage.haskell.org/package/haskoin-core-0.17.4 (jprupp)
12:04:14 <boxscape> Well, right now lowercase in type *always* means type variable, you'd have to give that up
12:04:26 <boxscape> but that'll likely be given up eventually anyway with Dependent haskell
12:04:29 × whatisRT quits (~whatisRT@2002:5b41:6a33:0:7903:e9c9:42a2:c7c5) (Quit: ZNC 1.8.1 - https://znc.in)
12:05:02 <ski> @where paste
12:05:02 <lambdabot> Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com
12:05:09 <merijn> boxscape: I hope not
12:05:11 <ski> Libertinus : try pasting at that site, e.g. ^
12:05:32 <merijn> tbh, I wouldn't consider Dependent Haskell such an inevitability
12:05:47 <Libertinus> At lambdadots site?
12:05:49 <ski> boxscape : yes. the point being that you can't match on type families
12:05:59 <ski> Libertinus : at <https://paste.tomsmeding.com>
12:06:03 <tdammers> frankly, I kind of suspect that the usefulness of fully dependent haskell is being exaggerated a fair bit
12:06:05 <boxscape> merijn following the proposal discussions at the moment it's not looking inevitable but looks like it has good chances
12:06:10 <boxscape> ski yeah that makes sense
12:06:17 <Libertinus> ski: thank you!
12:06:32 <ski> Libertinus : .. and then, paste the resulting psate link, in here
12:06:41 <boxscape> maybe that paste site should replace gist in the #haskell topic?
12:06:48 <merijn> tdammers: Right. I'd rather not see Dependent Haskell, tbh
12:07:09 hc joins (~hc@bsd.pm)
12:07:26 AlterEgo- joins (~ladew@124-198-158-163.dynamic.caiway.nl)
12:07:41 hackage phonetic-languages-simplified-lists-examples 0.3.0.0 - Simplified and somewhat optimized version of the phonetic-languages-examples. https://hackage.haskell.org/package/phonetic-languages-simplified-lists-examples-0.3.0.0 (OleksandrZhabenko)
12:08:11 <Libertinus> ski: ok - but where do I get such psate link
12:09:02 <Libertinus> ski: on the tomsmeding window i only see my long error msgs now
12:09:04 <ski> copy the link of the paste site into your browser. then create a new paste there, which should appear on a new address, which you can paste in here
12:09:13 <ski> check the location bar
12:09:26 Tario joins (~Tario@201.192.165.173)
12:09:39 <Libertinus> ski: ok, will try. am an old geezer and this is new to me..
12:10:11 <Libertinus> ski: https://paste.tomsmeding.com/SDIcYQr4
12:10:18 cfricke joins (~cfricke@unaffiliated/cfricke)
12:11:03 <merijn> Is there a convenient "keep every Nth element of a list" in libraries?
12:12:51 toorevitimirp joins (~tooreviti@117.182.183.16)
12:13:03 <ski> @type \n -> map head . chunksOf n
12:13:06 <lambdabot> Int -> [b] -> [b]
12:13:15 Orbstheorem joins (~roosember@hellendaal.orbstheorem.ch)
12:13:32 × mastarija quits (~mastarija@93-136-113-7.adsl.net.t-com.hr) (Quit: Leaving)
12:15:37 <ski> <maerwald> seems xcode not installed
12:16:39 <ski> Libertinus : hm, anyway, now your best bet is someone who knows about MacOS to possibly have any clue about what to .. (i don't really)
12:17:34 <tomsmeding> Libertinus: any clue what ghc-configure said right above that line "not found (too old?)"?
12:17:55 <tomsmeding> but yeah I think you're missing the command-line tools
12:18:02 <Libertinus> ski: thank you! I followed a youtube video step by step - they got thirs installed ok, I did not. Will try asking later, have to leave the chat now.
12:18:09 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
12:18:30 <tomsmeding> Libertinus: e.g. https://medium.com/flawless-app-stories/install-command-line-tools-on-macos-catalina-anansewaa-com-6f8c63120fd8
12:18:39 × alp quits (~alp@2a01:e0a:58b:4920:b500:dcf8:65db:294b) (Ping timeout: 272 seconds)
12:18:39 <Libertinus> tomsmeding: a moment
12:19:48 <Libertinus> Tomsmeding: I pasted everything from the terminal window. I do not have ore information than that
12:20:12 <Libertinus> * more than that
12:20:14 <tomsmeding> try doing the `xcode-select --install` from the article I linked; that has a reasonable chance of working and fixing the issue
12:20:46 <Libertinus> was the xcode msg meant to me?
12:20:53 Aleksejs joins (~Aleksejs@haskell.lv)
12:21:06 <ski> (possibly)
12:21:26 f-a parts (~f-a@151.36.58.162) ()
12:21:51 <dminuoso> % data A = A { fooA :: String } | B { fooB :: String }
12:21:51 <yahb> dminuoso:
12:21:54 <dminuoso> % fooA (B "foo")
12:21:55 <yahb> dminuoso: "*** Exception: No match in record selector fooA
12:22:07 <dminuoso> % data A = A { fooA :: String } | B { fooA :: String }
12:22:07 <yahb> dminuoso:
12:22:12 <dminuoso> % fooA (B "foo")
12:22:12 <yahb> dminuoso: "foo"
12:22:30 <tomsmeding> Libertinus: yes sorry
12:22:32 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 244 seconds)
12:23:10 <Aleksejs> Hi, why there's no such thing as Divisable that would unite Integral and Fractional? Then (/) could be of type Divisable a => a -> a -> a
12:23:12 <Libertinus> tomsmeding: my bad I did not spot the article link at first. Wll try to do that. Thanks!
12:23:31 <dminuoso> So Im pondering whether or not to write something like `data A = A { aText :: Text, aInt :: Int } | B { bText :: Text, bInt :: Int } | C { cText :: Text, cInt :: Int, cInt2 :: Int }` or whether to write these as separate data types, and then some `data AnyThing = AnyA A | AnyB B | AnyC C`
12:23:37 <dminuoso> Would you be annoyed about the ergonomics of the latter?
12:23:54 <Orbstheorem> ski: Thanks for you answer, I'll come back to it later today ^^
12:24:08 <dminuoso> This seems like a trade off between introducial partial field selectors and an an annoying additional union type around it
12:25:47 jollygood2 joins (~bc8165ab@217.29.117.252)
12:26:17 <Libertinus> Tomsmeding: Trying to install xcode results i this error msg: Can't install the software because it is not currently available from the Software Update server" Am runing Catalina 10.15.3
12:26:51 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:27:31 <tomsmeding> wat?
12:27:37 <tomsmeding> apple having an outage?
12:28:17 <tomsmeding> Libertinus: perhaps this https://stackoverflow.com/questions/56452358/install-command-line-developer-tools-cant-install-the-software-because-it-is-n 🤷
12:28:18 <hc> oh, is their ocsp responder for "trustd" broken again? =)
12:28:26 <Libertinus> tomsmeding: That's the error msg I get.
12:28:38 <tomsmeding> hc: not even, different server this time :D
12:28:39 <dminuoso> Libertinus: Yeah that happens frequently
12:28:46 <dminuoso> Libertinus: You need to download it directly from their website sometimes.
12:28:47 <tomsmeding> Libertinus: see the first answer for a workaround
12:28:54 <tomsmeding> i.e. what dminuoso says
12:29:08 <Libertinus> ok...
12:29:16 <dminuoso> Just to clarify, that's an Apple bug.
12:29:28 <tomsmeding> sorry for the mess, but then this is not our fault in this specific case :p
12:30:56 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
12:31:25 <ski> Aleksejs : what would the expected laws for it be ?
12:32:52 <Libertinus> Tomsmeding: I am now downloading command line tools for xcode 12.2.
12:32:58 <tomsmeding> nice!
12:33:08 <Libertinus> :)
12:33:30 cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it)
12:33:31 <Libertinus> Spooky face, dat one..
12:33:52 <dminuoso> Aleksejs: What exactly are you looking to unite here? Both give you a notion of dividing (one gives real division, the other gives integral division).
12:33:52 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
12:34:36 × natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
12:34:45 <dminuoso> In fact, the Real superclass lets you do integral division on Real numbers too.
12:35:23 × livvy quits (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds)
12:36:08 × doct0rhu quits (~orctarorg@pool-72-88-158-154.nwrknj.fios.verizon.net) (Remote host closed the connection)
12:36:28 <Libertinus> Tomsmeding: I'd need MAcOS 10.15.4. to bo able to install the xxcode tools I have 10.15.3.
12:36:58 <Libertinus> tomsmeding: the installer says that. I guess I must upgrade my OS
12:37:19 <tomsmeding> that's dumb
12:37:41 <tomsmeding> they don't provide an installer for the previous version or something?
12:37:45 <tomsmeding> (been a while since I used a maC)
12:37:48 <tomsmeding> *mac
12:38:03 <merijn> tomsmeding: They do, but they're on the website not in the appstore, I think
12:38:15 <Libertinus> tomsmeding: I picked to latest non-beta version of the command line tools. Should I see if there is an older version available?
12:38:20 <tomsmeding> the CLT aren't in the app store anyway merijn
12:38:26 <dminuoso> Libertinus: Did you go through the apple website or the app store?
12:38:28 <tomsmeding> Libertinus: I guess so?
12:38:30 <merijn> tomsmeding: Xcode is and you install CLI via xcode
12:38:46 <dminuoso> https://developer.apple.com/download/more/?=command%20line%20tools
12:38:49 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
12:38:54 Nahra joins (~Nahra@unaffiliated/nahra)
12:38:55 <tomsmeding> merijn: as far as I remember you install CLI using xcode-select, which doesn't require an xcode installation
12:38:57 <dminuoso> Is where you should go
12:39:00 <Libertinus> domingo: Apple web site . got the linnk from here
12:39:04 <tomsmeding> though one way to do it is certainly to install xcode
12:39:13 <tomsmeding> but that's... heavy
12:39:23 <dminuoso> merijn: Go make your case again about what a lovely OS macOS is..
12:39:27 <merijn> tomsmeding: Eh, you do need xcode *anyway*
12:39:37 <merijn> tomsmeding: Else you don't have a C compiler or linker
12:39:38 <Libertinus> merijn: do I?
12:39:47 <tomsmeding> don't the CLT give gcc?
12:40:00 <dminuoso> well they give you clang
12:40:09 <tomsmeding> (yes fair)
12:40:14 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds)
12:40:24 <tomsmeding> merijn: if you need xcode anyway, then why does ghcup just install the CLT? ;)
12:40:31 natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
12:40:59 mastarija joins (~mastarija@93-136-113-7.adsl.net.t-com.hr)
12:41:11 <dminuoso> Im confident xcode clt will give you clang+linker
12:41:14 <Libertinus> merijn: I am a non-entity in programing, so if installing xcode makes life simpler for me, I'd like to do that
12:41:16 <dminuoso> and other stuff
12:41:20 <dminuoso> Libertinus: You dont nede xcode.
12:41:27 × Libertinus quits (58c19c04@dsl-trebng21-58c19c-4.dhcp.inet.fi) (Remote host closed the connection)
12:42:07 <tomsmeding> o/
12:43:14 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
12:46:00 Libertinus joins (58c19c04@dsl-trebng21-58c19c-4.dhcp.inet.fi)
12:46:03 <Libertinus> dminuoso: then I need to update my os to be able to install the xcode CLT
12:48:06 <Libertinus> dminuoso: is it possible to update to 10.15.4 and avoid updating to Big sur?
12:48:11 hackage ukrainian-phonetics-basic 0.3.2.0 - A library to work with the basic Ukrainian phonetics and syllable segmentation. https://hackage.haskell.org/package/ukrainian-phonetics-basic-0.3.2.0 (OleksandrZhabenko)
12:49:38 × raichoo quits (~raichoo@dslb-188-101-186-206.188.101.pools.vodafone-ip.de) (Quit: Lost terminal)
12:51:53 alp joins (~alp@2a01:e0a:58b:4920:b500:dcf8:65db:294b)
12:52:55 <tomsmeding> Libertinus: I think the non-haskell internet can help you better with that than we can
12:52:57 drincruz joins (~adriancru@ool-44c748be.dyn.optonline.net)
12:53:39 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
12:54:06 <Libertinus> tomsmeding: you have been most helpful! Will search the net, and return with haskell stuff, eventually. Have a good 'un! :)
12:54:18 <tomsmeding> Cheers!
12:54:35 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
12:54:45 <Libertinus> dminuoso: thank you, too!!
12:55:21 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
12:55:29 <Libertinus> :)
12:57:15 × fendor quits (~fendor@178.115.131.244.wireless.dyn.drei.com) (Remote host closed the connection)
12:58:00 × cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
12:59:55 zaquest joins (~notzaques@5.128.210.178)
13:00:34 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
13:02:13 × LKoen quits (~LKoen@105.175.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
13:04:41 hackage haskoin-core 0.17.5 - Bitcoin & Bitcoin Cash library for Haskell https://hackage.haskell.org/package/haskoin-core-0.17.5 (jprupp)
13:04:42 × zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection)
13:05:01 × m0rphism quits (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 264 seconds)
13:07:01 × Rudd0 quits (~Rudd0@185.189.115.103) (Remote host closed the connection)
13:07:13 × DTZUZU_ quits (~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer)
13:07:22 DTZUZU joins (~DTZUZU@205.ip-149-56-132.net)
13:07:28 × xsarnik0 quits (xsarnik@gateway/shell/fi.muni.cz/x-qqlqhiysrvqfxaju) (Quit: Ping timeout (120 seconds))
13:07:28 × Jajik quits (xchlup2@gateway/shell/fi.muni.cz/x-nixiositsvhijnwj) (Quit: Ping timeout (120 seconds))
13:07:49 × dnlkrgr quits (~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 246 seconds)
13:08:28 × tomsmeding quits (~tomsmedin@tomsmeding.com) (Quit: ZNC 1.7.5 - https://znc.in)
13:08:48 tomsmeding joins (~tomsmedin@tomsmeding.com)
13:09:10 zariuq joins (~zar@fw1.ciirc.cvut.cz)
13:09:33 texasmynsted joins (~texasmyns@212.102.45.115)
13:09:36 × sdx23 quits (~sdx23@unaffiliated/sdx23) (Ping timeout: 240 seconds)
13:09:56 × Rembane quits (~Rembane@li346-36.members.linode.com) (Ping timeout: 240 seconds)
13:10:35 xsarnik0 joins (xsarnik@gateway/shell/fi.muni.cz/x-tgciqxhajxesnkwi)
13:10:41 Jajik joins (xchlup2@gateway/shell/fi.muni.cz/x-xjonixprwtlmdjwb)
13:10:54 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Quit: WeeChat 2.9)
13:10:56 × zar quits (~zar@fw1.ciirc.cvut.cz) (Ping timeout: 240 seconds)
13:11:03 Rembane joins (~Rembane@li346-36.members.linode.com)
13:12:50 sdx23 joins (~sdx23@unaffiliated/sdx23)
13:13:36 LKoen joins (~LKoen@105.175.9.109.rev.sfr.net)
13:15:03 texasmyn_ joins (~texasmyns@212.102.45.103)
13:15:30 gxt joins (~gxt@gateway/tor-sasl/gxt)
13:15:52 geekosaur joins (82659a09@host154-009.vpn.uakron.edu)
13:16:05 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
13:16:47 fendor joins (~fendor@91.141.2.63.wireless.dyn.drei.com)
13:16:51 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
13:16:55 × fendor quits (~fendor@91.141.2.63.wireless.dyn.drei.com) (Remote host closed the connection)
13:16:58 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:9156:658b:3008:cf:28b1) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:18:13 × texasmynsted quits (~texasmyns@212.102.45.115) (Ping timeout: 264 seconds)
13:19:22 chaosmasttter joins (~chaosmast@p200300c4a7122601056aeb346f192a12.dip0.t-ipconnect.de)
13:25:34 × ph88 quits (~ph88@2a02:8109:9e00:7e5c:b9be:939f:4d9:5357) (Quit: Leaving)
13:26:38 mastarija_ joins (~mastarija@93-142-67-36.adsl.net.t-com.hr)
13:28:06 bahamas joins (~lucian@188.24.181.166)
13:28:07 × bahamas quits (~lucian@188.24.181.166) (Changing host)
13:28:07 bahamas joins (~lucian@unaffiliated/bahamas)
13:28:07 <AWizzArd> stylish-haskell suggests to Emacs users to read the “Using external formatters” section of the haskell-mode manual: http://haskell.github.io/haskell-mode/manual/latest/Autoformating.html#Autoformating
13:28:25 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 240 seconds)
13:28:37 <AWizzArd> How will Emacs know about stylish-haskell? Is this backed into haskell-mode itself, the support for this specific formatter?
13:29:12 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
13:29:18 <dminuoso> AWizzArd: haskell-mode will invoke it as an external command
13:29:26 <dminuoso> So its necessary to be on PATH
13:30:00 <dminuoso> (custom-set-variables '(haskell-stylish-on-save t))
13:30:18 × mastarija quits (~mastarija@93-136-113-7.adsl.net.t-com.hr) (Ping timeout: 260 seconds)
13:30:36 <AWizzArd> dminuoso: does stylish also support formatting a (marked) region?
13:32:15 <dminuoso> AWizzArd: Id guess no.
13:32:39 <dminuoso> At best it could only work for a region that is also valid as a top level binding
13:32:56 <dminuoso> Such that you could put the region into a temporary file, treat it as a module, run stylish-haskell on it, and splice it back in
13:33:22 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
13:33:25 × SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Ping timeout: 240 seconds)
13:33:25 <dminuoso> Such a thing is certainly implementable in emacs
13:33:42 monochrom joins (trebla@216.138.220.146)
13:34:04 × drincruz quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 246 seconds)
13:34:04 <dminuoso> AWizzArd: Concretely
13:34:09 SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net)
13:34:15 ph88 joins (~ph88@ip5f5af6cd.dynamic.kabel-deutschland.de)
13:34:41 <dminuoso> AWizzArd: (defcustom haskell-mode-stylish-haskell-path "stylish-haskell" "Path to `stylish-haskell' executable." :group 'haskell :type 'string)
13:34:58 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:9156:658b:3008:cf:28b1)
13:35:06 <AWizzArd> dminuoso: Aah okay, that makes sense!
13:35:30 <dminuoso> So you can override that if you want to
13:35:55 <dminuoso> e.g. through M-x customize-group RET haskell RET
13:36:56 × notzmv quits (~user@unaffiliated/zmv) (Ping timeout: 265 seconds)
13:37:10 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
13:37:31 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
13:39:12 × cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 272 seconds)
13:40:50 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
13:41:36 × mastarija_ quits (~mastarija@93-142-67-36.adsl.net.t-com.hr) (Quit: Leaving)
13:41:49 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Client Quit)
13:42:53 <dminuoso> Does aeson have primitives to parse a string as numeric types?
13:43:44 × texasmyn_ quits (~texasmyns@212.102.45.103) (Ping timeout: 260 seconds)
13:44:46 raichoo joins (~raichoo@dslb-188-101-186-206.188.101.pools.vodafone-ip.de)
13:44:59 <nshepperd2> any regex-tdfa experts here? is there a way to execute a regex in this library 'incrementally'?
13:45:44 <nshepperd2> that is, I want to feed characters in one at a time, and be able to determine after each step whether it is in an accepting, failing, or unfinished state
13:46:05 hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net)
13:46:38 <nshepperd2> (the true purpose of this is that I want to execute a regex within / convert a regex into a parsec-style parser)
13:46:50 × LKoen quits (~LKoen@105.175.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
13:47:47 Sornaensis joins (~kvirc@79.142.232.102.static.router4.bolignet.dk)
13:48:03 Wuzzy joins (~Wuzzy@p549c9976.dip0.t-ipconnect.de)
13:48:34 × jespada quits (~jespada@90.254.245.49) (Ping timeout: 256 seconds)
13:48:38 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:9156:658b:3008:cf:28b1) (Ping timeout: 264 seconds)
13:48:46 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
13:50:03 urodna joins (~urodna@unaffiliated/urodna)
13:50:29 jespada joins (~jespada@90.254.245.49)
13:52:21 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
13:52:42 cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it)
13:53:27 × feb quits (~feb@178.162.212.214) (Remote host closed the connection)
13:53:31 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection)
13:53:37 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
13:54:22 jamm_ joins (~jamm@unaffiliated/jamm)
13:56:06 drincruz joins (~adriancru@ool-44c748be.dyn.optonline.net)
13:56:45 texasmynsted joins (~texasmyns@212.102.45.103)
13:57:47 <nshepperd2> hmm, pcre supports partial matching
14:03:24 laurenceday joins (~leday@173.203.125.91.dyn.plus.net)
14:04:04 lpy joins (~nyd@unaffiliated/elysian)
14:04:53 × laurenceday quits (~leday@173.203.125.91.dyn.plus.net) (Remote host closed the connection)
14:06:51 × sagax quits (~sagax_nb@213.138.71.146) (Read error: Connection reset by peer)
14:08:32 laurenceday joins (~leday@173.203.125.91.dyn.plus.net)
14:11:28 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
14:11:39 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection)
14:12:13 joaoh82 joins (~joaoh82@157-131-134-210.dedicated.static.sonic.net)
14:12:51 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
14:13:23 × zariuq quits (~zar@fw1.ciirc.cvut.cz) (Remote host closed the connection)
14:13:30 zargoertzel joins (~zar@fw1.ciirc.cvut.cz)
14:16:23 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
14:23:12 sunweaver1 joins (~sunweaver@185.163.110.125)
14:23:54 × SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Ping timeout: 260 seconds)
14:23:58 SupaYoshii joins (~supayoshi@213-10-140-13.fixed.kpn.net)
14:24:48 × drincruz quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 272 seconds)
14:28:03 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
14:29:46 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
14:30:17 drincruz joins (~adriancru@ool-44c748be.dyn.optonline.net)
14:30:48 × britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
14:31:10 <siraben> Is there a more efficient structure than a vector of bytestirngs?
14:31:21 <siraben> vector of unboxed vectors of chars?
14:32:37 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
14:33:05 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection)
14:33:09 britva joins (~britva@31-10-157-156.cgn.dynamic.upc.ch)
14:33:49 <merijn> siraben: for what?
14:34:16 <siraben> merijn: https://github.com/siraben/hoac-2020/blob/master/day3.hs
14:34:26 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
14:34:31 <siraben> I switched from list of bytestrings to vector of bytestrings but didn't seem to improve the benchmarks
14:34:31 × britva quits (~britva@31-10-157-156.cgn.dynamic.upc.ch) (Client Quit)
14:34:39 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
14:35:33 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection)
14:35:40 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
14:35:56 Sornaensis|2 joins (~kvirc@077213194197.dynamic.telenor.dk)
14:37:51 × lassulus quits (~lassulus@NixOS/user/lassulus) (Quit: WeeChat 2.9)
14:38:06 <dolio> Seems like a better improvement would be only folding once.
14:38:45 × Sornaensis quits (~kvirc@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 240 seconds)
14:38:50 × darjeeling_ quits (~darjeelin@115.215.41.204) (Ping timeout: 260 seconds)
14:39:35 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
14:39:36 <siraben> In part 2?
14:39:56 <siraben> Ah, right.
14:40:56 <dolio> Sure, althought part 1 is just using a subset of the information of part 2, so you could fold once for both.
14:40:58 christo joins (~chris@81.96.113.213)
14:41:53 <merijn> Any specific reason for optimising this? Or just for shits & giggles? :p
14:42:07 fendor joins (~fendor@91.141.2.63.wireless.dyn.drei.com)
14:42:14 <siraben> shits and giggles
14:42:22 <siraben> also benchmarking is fun :P
14:42:29 LKoen joins (~LKoen@105.175.9.109.rev.sfr.net)
14:43:10 hackage phonetic-languages-simplified-properties-lists 0.3.0.0 - A generalization of the uniqueness-periods-vector-properties package. https://hackage.haskell.org/package/phonetic-languages-simplified-properties-lists-0.3.0.0 (OleksandrZhabenko)
14:43:17 lassulus joins (~lassulus@NixOS/user/lassulus)
14:43:18 × sleblanc quits (~sleblanc@unaffiliated/sebleblanc) (Ping timeout: 256 seconds)
14:45:16 <Taneb> Does GHC have any limits on the number of fields in a record?
14:45:25 <merijn> "probably"
14:46:06 × geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
14:46:33 <dolio> It starts having problems with tuples around 64 elements, so it's possible there's a similar problem with other constructors.
14:48:10 z0 joins (~z0@188.251.71.80)
14:48:12 <merijn> 62
14:48:30 vicfred joins (~vicfred@unaffiliated/vicfred)
14:48:36 <merijn> Tuple size 63 and up are commented out with a comment about GHC segfaulting when the higher ones are added
14:49:01 <dolio> I saw some recent discussion where something larger than 62 was mentioned as working.
14:49:14 × Sornaensis|2 quits (~kvirc@077213194197.dynamic.telenor.dk) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
14:49:24 <oats> it always tickled me that the tuples were manually defined :P
14:49:38 <dolio> I think it was 64 for some SIMD thing.
14:49:47 × joaj quits (~joaj@2001:690:2100:110:cceb:227c:edbc:592c) (Ping timeout: 244 seconds)
14:49:51 <merijn> > 2 * 26 + 10
14:49:53 <lambdabot> 62
14:49:58 <merijn> Nope, 62
14:50:07 <merijn> dolio: https://hackage.haskell.org/package/ghc-prim-0.6.1/docs/src/GHC.Tuple.html :p
14:50:33 <dolio> I didn't say there were tuples bigger than 62 defined in that file.
14:50:42 <oats> the greatest haskell file of all time
14:50:49 <z0> is there a significant difference resource wise between cycling a list vs calculating the index mod length?
14:50:56 joaj joins (~joaj@2001:690:2100:1b:a36f:f7ab:d46c:98f0)
14:51:11 <merijn> z0: If you intend to index said list, yes
14:51:23 <dolio> Anyhow, I'm not sure anyone knows what was failing with tuples that big anyway. It could be unrelated to the constructors.
14:51:28 <oats> indexing lists booooo
14:51:28 <merijn> z0: at least, when you start from the beginning each time
14:51:54 <merijn> oats: How can it be the best Haskell file? It has none of the best functions
14:52:10 darjeeling_ joins (~darjeelin@122.245.218.196)
14:52:33 <oats> merijn: truly you have not reached tuple enlightenment
14:52:48 <merijn> oats: reallyUnsafePtrEquality# is clearly better
14:52:56 <merijn> as is accursedUnutterablePerformIO
14:53:28 <oats> do you like sharing an address space with a malevolent bringer of chaos?
14:54:30 <tomsmeding> yeah some time recently on the mailing list it came up that there was a primop somewhere that returned a 64-tuple, that you couldn't even use because when pattern matching on that tuple ghc said "I don't support tuples longer than 62"
14:55:46 <tomsmeding> this and descendants https://mail.haskell.org/pipermail/ghc-devs/2020-September/019273.html
14:56:38 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:57:31 int-e just made a single constructor type with 1024 Int fields and ghc didn't complain... it's getting slow to compile though.
15:00:11 hackage prolude 0.0.0.12 - ITProTV's custom prelude https://hackage.haskell.org/package/prolude-0.0.0.12 (saramuse)
15:01:06 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
15:01:25 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
15:02:29 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Client Quit)
15:02:57 <exarkun> Anyone know of a nice IRC client library?
15:03:39 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
15:04:13 LKoen_ joins (~LKoen@105.175.9.109.rev.sfr.net)
15:05:23 <solonarv> z0: cycle xs !! n has to follow n cons-cells, xs !! (n `mod` length xs) only has to follow length xs + n `mod` length xs cons cells
15:05:44 <solonarv> (and if you're indexing multiple times, you only have to calculate the length once, of course)
15:06:04 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
15:07:09 × LKoen quits (~LKoen@105.175.9.109.rev.sfr.net) (Ping timeout: 260 seconds)
15:07:36 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Client Quit)
15:08:19 conal joins (~conal@64.71.133.70)
15:08:26 × borne quits (~fritjof@200116b864c920008cdf581d4c1cc02f.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
15:08:55 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
15:09:36 × danza__ quits (~francesco@151.46.171.237) (Read error: Connection reset by peer)
15:10:16 borne joins (~fritjof@200116b864c920008cdf581d4c1cc02f.dip.versatel-1u1.de)
15:10:51 notzmv joins (~user@unaffiliated/zmv)
15:11:02 × mrchampion quits (~mrchampio@216-26-218-246.dynamic.tbaytel.net) (Ping timeout: 260 seconds)
15:12:18 christo joins (~chris@81.96.113.213)
15:13:29 Entertainment joins (~entertain@104.246.132.210)
15:15:03 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
15:16:22 jpds joins (~jpds@gateway/tor-sasl/jpds)
15:16:39 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
15:19:18 <exarkun> in a `consumer :: MonadIO m => MVar () -> ConduitT (Either ByteString IrcEvent) o m ()` when I try to get some events with `events <- takeC 2` I get a type error - Couldn't match type ‘o’ with ‘Either ByteString IrcEvent’
15:19:29 <exarkun> What does using `takeC` have to do with the output type?
15:19:51 <merijn> exarkun: within a do block all lines must have the same output
15:20:18 <merijn> exarkun: "instance Monad m => Monad (ConduitT i o m)"
15:20:27 <merijn> note that both i and o are fixed there
15:20:38 polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
15:23:01 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection)
15:23:27 <exarkun> I think I understand the first part. I'm not sure if I understand "both i and o are fixed there".
15:23:44 gxt joins (~gxt@gateway/tor-sasl/gxt)
15:23:57 <merijn> exarkun: "ConduitT i o m" (with specific types 'i', 'o', and 'm') forms a monad
15:24:04 <exarkun> Ah ok
15:24:22 <merijn> exarkun: Within a do block all "statements" must have the same type (which has to have a Monad instance)
15:24:55 <merijn> exarkun: Remember that "do { x <- foo; bar x }" translate to "foo >>= \x -> bar x"
15:24:58 <merijn> :t (>>=)
15:25:01 <lambdabot> Monad m => m a -> (a -> m b) -> m b
15:25:14 <exarkun> So with that type declaration, the type of `o` will be inferred from what's in the definition of the function, and since `i` is that `Either ...`, using `takeC` like this tells the type checker that `o` must be the same `Either ...`?
15:25:22 <merijn> the 'm' there is "ConduitT i o m" and it must be the same on each side
15:25:59 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 2.9)
15:26:14 <merijn> exarkun: The problem is that "takeC :: ConduitT a a m ()", yeah
15:26:37 <merijn> exarkun: Eh, also note that "events <- takeC 2" probably doesn't do what you expect...
15:26:51 <exarkun> Oh? :/
15:26:56 × Digit quits (~user@fsf/member/digit) (Ping timeout: 256 seconds)
15:27:00 <merijn> exarkun: That will simply forward 2 inputs downstream and 'events' will be () :p
15:27:06 <exarkun> Oof.
15:27:09 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
15:27:11 hackage phonetic-languages-simplified-lists-examples 0.4.0.0 - Simplified and somewhat optimized version of the phonetic-languages-examples. https://hackage.haskell.org/package/phonetic-languages-simplified-lists-examples-0.4.0.0 (OleksandrZhabenko)
15:27:16 <exarkun> Yea. That is not what I expected.
15:27:37 <exarkun> Guess I should read the conduit docs harder.
15:28:26 danza__ joins (~francesco@151.53.83.218)
15:28:26 mrchampion joins (~mrchampio@216-26-218-246.dynamic.tbaytel.net)
15:28:26 <merijn> exarkun: Since "takeC :: Int -> ConduitT a a m ()" note that the Monad here is "ConduitT a a m" so the "result" in "(>>=) :: Monad m => m a -> (a -> m b) -> m b" the 'a' of >>= is just ()
15:28:49 <z0> solonarv: thanks. i guess i always imagine the possibility of some compiler optimization surprising me
15:28:51 <merijn> exarkun: You need to process 2 events at a time?
15:29:48 <exarkun> merijn: Probably not. This is my first conduit-using program ever. I'm actually just trying to throw 4 events in the trash (but also wait for them to happen before moving on).
15:30:18 <merijn> exarkun: that'd be more like "dropC 4" :p
15:30:45 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:30:53 <merijn> exarkun: What do you mean by "wait for them"?
15:30:57 hexo joins (~hexo@gateway/tor-sasl/hexo)
15:31:15 <exarkun> merijn: It's an irc client. I want to send a message after they've been received.
15:31:58 <exarkun> I see `dropC` has a more favorable type for this... `dropC :: Monad m => Int -> ConduitT a o m ()` so the result is still () but the output type is not fixed as the same as the input type.
15:32:03 christo joins (~chris@81.96.113.213)
15:32:06 × DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
15:32:37 <exarkun> Also I see that the conduit docs I was looking at are using `foldC` and I guess that's why they work and my code doesn't ... because foldC also doesn't fix the output and has a useful result type instead of ().
15:33:23 × toorevitimirp quits (~tooreviti@117.182.183.16) (Ping timeout: 260 seconds)
15:34:31 <exarkun> I think I understand `ConduitT` a little better now, at least, thanks
15:34:35 × bahamas quits (~lucian@unaffiliated/bahamas) (Quit: leaving)
15:35:01 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
15:35:16 harwiltz joins (~harwiltz@modemcable052.131-226-192.mc.videotron.ca)
15:36:49 × christo quits (~chris@81.96.113.213) (Ping timeout: 264 seconds)
15:36:52 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
15:37:04 <harwiltz> Hello all. I tried recompiling my XMonad config today, and suddenly the build fails because it can't load XMonad.Actions.Volume.It says that the package xmonad-extras-<hash> is unusable due to missing dependencies, which are all packages with hashes.
15:37:15 <merijn> exarkun: ConduitT is best thought of as a stream/conveyor built "ConduitT i o m r" 'i's go in, 'o's come out, processing might trigger effects 'm' and when done processing input, return 'r'
15:37:27 <harwiltz> When I search for these packages on my system, I find their corresponding libraries but with different hash suffiexs.
15:37:30 _linker_ joins (~linker@2a02:a31a:a041:9a80:2cd0:74ec:fa0:a975)
15:37:31 <harwiltz> suffixes
15:38:04 <merijn> exarkun: So, "dropC 4" consumes the first 4 'i's coming in (and not sending anything out), then all further 'i's get forwarded to whatever you compose dropC with
15:38:08 <exarkun> merijn: makes sense! I had only gotten as far as considering i and o before, m and r were off my radar :)
15:39:01 britva joins (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119)
15:39:45 <merijn> exarkun: So you'd do something like 'do { result <- takeC 4 .| yourFold; stuffWith result }" here the first 4 inputs go into yourFold, after which takeC stops giving data (causing the fold to finish and return a result) the remaining inputs go into "stuffWith result"
15:40:26 <harwiltz> Nvm sorry, just rebuilt xmonad-extras and that solved it
15:40:28 × harwiltz quits (~harwiltz@modemcable052.131-226-192.mc.videotron.ca) (Quit: WeeChat 2.9)
15:42:28 dnlkrgr joins (~dnlkrgr@HSI-KBW-046-005-005-080.hsi8.kabel-badenwuerttemberg.de)
15:43:24 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
15:43:51 christo joins (~chris@81.96.113.213)
15:44:05 <exarkun> merijn: I thiiink I get it. I'll have practice a bit, probably.
15:45:00 <exarkun> I think I keep confusing the `do`-block monad type with the ConduitT result type
15:45:22 <exarkun> That is, mixing them up when thinking about how the pieces fit together.
15:45:40 <merijn> exarkun: For conduit do notation is for "first process inputs with this conduit, then when it finishes, continue with this one, etc."
15:45:59 <merijn> Whereas you want .| for sequencing things into a stream
15:51:05 <exarkun> Hm I don't think I understand the distinction. Is it about where processing "continues" from?
15:51:42 cads joins (~cads@ip-64-72-99-232.lasvegas.net)
15:52:58 <merijn> exarkun: if you have "foo .| bar" inputs go into foo which then yields results to 'bar' for further processing
15:53:56 <exarkun> That part seems pretty straightforward at least :)
15:53:57 Zetagon joins (~leo@c151-177-52-233.bredband.comhem.se)
15:53:57 <merijn> exarkun: But, suppose you want "foo" to, say, first compute something from the first 4 inputs and then use that to transform the rest, then you get code like above "foo = do { result <- takeC 4 .| yourFold; stuffWith result }'
15:54:49 <exarkun> Maybe since I haven't implemented a fold (nor tried to learn how I would do that), only seen `foldC`, that part is harder to follow.
15:55:05 <merijn> So now all inputs go into 'foo', still. But the first 4 inputs to foo get fed into yourFold (due to takeC 4), which returns a result. Then all other inputs to 'foo' (beyond the first 4) get fed into "stuffWith result" (and the output of that goes to bar)
15:57:01 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-braorqjpjuqmensd)
15:57:53 <exarkun> Apart from how exactly folds are implemented, I think I follow that part.
15:58:33 <exarkun> And it seems like it means that the reason I started using do here - to implement some messy, not-very-well-thought-out-yet logic on message inputs and outputs in an imperative style - might not have been wrong
15:59:28 <merijn> exarkun: Yeah, for Conduit you wanna think in pipeline (stages)
15:59:41 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
15:59:59 <merijn> "my input is IRC events and I wanna turn that into output X" and then worry about what that means
16:00:35 Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
16:00:42 urek joins (~urek@2804:7f1:e10a:9644:81a3:232e:2e84:9c43)
16:01:37 exarkun nods
16:02:01 <exarkun> gotta set this aside for now, alas. thanks very much for the hand holding.
16:03:20 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
16:04:56 × hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Read error: Connection reset by peer)
16:05:06 Rudd0 joins (~Rudd0@185.189.115.98)
16:05:25 × Zetagon quits (~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 240 seconds)
16:05:38 × urek quits (~urek@2804:7f1:e10a:9644:81a3:232e:2e84:9c43) (Quit: urek)
16:06:04 codeAlways joins (uid272474@gateway/web/irccloud.com/x-qyqdgokdlfkqbekd)
16:06:09 × codeAlways quits (uid272474@gateway/web/irccloud.com/x-qyqdgokdlfkqbekd) (Client Quit)
16:06:10 urek joins (~urek@2804:7f1:e10a:9644:81a3:232e:2e84:9c43)
16:06:10 Zetagon joins (~leo@c151-177-52-233.bredband.comhem.se)
16:06:26 <nshepperd2> muahaha. i now have a parsing library which embeds both PCRE and Read within scanf, within trifecta
16:06:50 <merijn> nshepperd2: I'm pretty sure there are laws against this...
16:06:50 <nshepperd2> unlimited power~
16:07:01 <merijn> Like the Geneva convention >.>
16:07:06 × ubert quits (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection)
16:07:22 <nshepperd2> all my typeclasses are lawless
16:08:27 <mouseghost> hammurabi codex
16:11:13 <nshepperd2> an example: parse (scanf "%/[a-z]+/s = %r") "foo = True" :: (Text, Bool)
16:11:21 <nshepperd2> ("foo",True)
16:12:05 <nshepperd2> scanf "%/[a-z]+/s = %r" :: Trifecta.Parser (Text, Bool)
16:12:34 <merijn> I'm not sure whether to be impressed or disgusted
16:12:44 <Clint> why not both
16:12:49 <merijn> How do you know the return type? God awful typeclassery?
16:13:01 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:13:33 <AWizzArd> dminuoso: do you know if Stylish-Haskell now also uses the GHC parser? I think in the past it had its own, but it could break after syntax changes.
16:13:44 <nshepperd2> relatively tame typeclassery
16:14:01 <merijn> Is it time for me to dig up my "auto-formatting is bad and you should feel bad" link again? >.>
16:14:45 × z0 quits (~z0@188.251.71.80) (Ping timeout: 240 seconds)
16:14:58 <nshepperd2> I have typeclass instances (Scanf a, Scanf b) => Scanf (a, b) which just combine monadic parsers applicatively
16:16:25 Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk)
16:17:09 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
16:17:31 danso joins (~dan@69-165-210-185.cable.teksavvy.com)
16:17:49 <nshepperd2> (you do have to specify put a type signature if the return type is ambiguous. there's no fancy format string typechecker magic)
16:18:07 pavonia joins (~user@unaffiliated/siracusa)
16:18:35 × fryguybob quits (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (Ping timeout: 256 seconds)
16:19:16 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
16:19:26 Tops2 joins (~Tobias@dyndsl-095-033-024-237.ewe-ip-backbone.de)
16:19:46 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
16:20:31 bitmapper joins (uid464869@gateway/web/irccloud.com/x-hhucsrtimygjrzko)
16:20:45 <AWizzArd> merijn: find that link pls (:
16:23:37 × jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
16:23:49 fryguybob joins (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com)
16:25:57 <merijn> AWizzArd: https://twitter.com/comerijn/status/1257804634833420292
16:27:25 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
16:29:14 <monochrom> You should keep bookmarks of your own tweets.
16:30:40 <merijn> monochrom: I have it bookmarked, actually :p
16:30:41 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
16:30:59 <merijn> After I had to look it up for the 3rd time :p
16:31:19 <monochrom> I guess in the long term the question "how to search through my bookmarks" and it's the same question all over again.
16:33:03 <boxscape> that's obvious, use meta-bookmarks
16:33:44 <merijn> SQLite database, tags and full-text search, duh
16:33:48 <AWizzArd> hr hr hr
16:34:12 jmchael joins (~Chi1thang@87.112.60.168)
16:36:07 <merijn> Facts: Everything is better with SQLite
16:36:24 × borne quits (~fritjof@200116b864c920008cdf581d4c1cc02f.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
16:36:46 borne joins (~fritjof@87.123.105.43)
16:37:36 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
16:38:58 chris8142 joins (~chris8142@srvnet-01-071.ikbnet.co.at)
16:40:17 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
16:41:25 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
16:41:36 × Zetagon quits (~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 272 seconds)
16:43:01 sagax joins (~sagax_nb@213.138.71.146)
16:43:50 × Yumasi quits (~guillaume@2a01:e0a:5cb:4430:e1ea:8f38:f518:4e69) (Ping timeout: 264 seconds)
16:46:42 × chris8142 quits (~chris8142@srvnet-01-071.ikbnet.co.at) (Quit: WeeChat 3.0)
16:46:49 <Chousuke> I think Firefox stores bookmarks in a SQLite database? :P
16:47:03 chris8142 joins (~chris8142@srvnet-01-071.ikbnet.co.at)
16:47:17 <merijn> It does
16:47:22 <solonarv> however it stores them, it definitely has tags (that I don't use :p)
16:47:32 <merijn> Also, literally every browser uses SQLite
16:47:33 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
16:47:40 <Chousuke> as they should
16:47:42 <merijn> thunderbird and Apple's Mail.app use it for email too
16:47:50 <Chousuke> SQLite is good software.
16:47:54 <Chousuke> which is rare.
16:49:33 <[exa]> postgresql is cool too
16:50:03 <merijn> [exa]: Different usecase(s) :p
16:50:06 <[exa]> but that pretty much finishes the list of good relational databases. :]
16:50:10 <[exa]> yes, certainly
16:54:11 <Chousuke> both have a focus on being good at what they do and slowly expanding their capabilities rather than first trying to do everything and figuring out how to do it well only afterwards :P
16:54:29 AlterEgo__ joins (~ladew@124-198-158-163.dynamic.caiway.nl)
16:54:39 × AlterEgo- quits (~ladew@124-198-158-163.dynamic.caiway.nl) (Read error: Connection reset by peer)
16:55:23 loller joins (uid358106@gateway/web/irccloud.com/x-iymviwnzwlbemvjr)
16:55:26 × loller quits (uid358106@gateway/web/irccloud.com/x-iymviwnzwlbemvjr) (Client Quit)
16:55:47 loller_ joins (uid358106@gateway/web/irccloud.com/x-ystjmforbrvlleet)
16:55:55 drincruz_ joins (~adriancru@ool-44c748be.dyn.optonline.net)
16:57:52 phaul joins (~phaul@ruby/staff/phaul)
16:58:58 × drincruz quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 265 seconds)
17:03:04 × shutdown_-h_now quits (~arjan@2001:1c06:2d0b:2312:3da6:b84a:a587:6e3b) (Ping timeout: 240 seconds)
17:05:05 <dsal> sqlite is the sane way to put data into a file.
17:05:16 <dsal> postgres is a pretty good database
17:06:39 <sm[m]> Chousuke++
17:07:08 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
17:09:00 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
17:10:15 christo joins (~chris@81.96.113.213)
17:10:36 × hexo- quits (~hexo@83.167.228.130) (Ping timeout: 240 seconds)
17:11:23 × Adluc quits (~Adluc@2a01:430:17:1::ffff:328) (Ping timeout: 260 seconds)
17:13:53 kritzefitz joins (~kritzefit@212.86.56.80)
17:14:26 × Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 265 seconds)
17:14:33 nineonine_ joins (~nineonine@50.216.62.2)
17:16:49 heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
17:17:02 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 260 seconds)
17:17:02 nineonine_ is now known as nineonine
17:18:24 shutdown_-h_now joins (~arjan@2001:1c06:2d0b:2312:a913:5438:3a24:3de8)
17:20:39 × ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->)
17:21:10 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Ping timeout: 244 seconds)
17:21:20 ClaudiusMaximus joins (~claude@223.153.198.146.dyn.plus.net)
17:21:21 × borne quits (~fritjof@87.123.105.43) (Quit: WeeChat 2.9)
17:21:26 × ClaudiusMaximus quits (~claude@223.153.198.146.dyn.plus.net) (Changing host)
17:21:26 ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus)
17:23:45 × fendor quits (~fendor@91.141.2.63.wireless.dyn.drei.com) (Read error: Connection reset by peer)
17:24:48 borne joins (~fritjof@200116b864c92000f60f2508b10af3d6.dip.versatel-1u1.de)
17:26:11 fendor joins (~fendor@91.141.2.63.wireless.dyn.drei.com)
17:29:07 geekosaur joins (82659a09@host154-009.vpn.uakron.edu)
17:30:15 Adluc joins (~Adluc@2a01:430:17:1::ffff:328)
17:31:51 juuandyy joins (~juuandyy@90.166.144.65)
17:32:08 × alp quits (~alp@2a01:e0a:58b:4920:b500:dcf8:65db:294b) (Remote host closed the connection)
17:32:29 alp joins (~alp@2a01:e0a:58b:4920:d1b5:6b8:6f38:d8f3)
17:34:26 arahael1 joins (~arahael@124-168-0-93.tpgi.com.au)
17:36:19 asthasr joins (~asthasr@162.210.29.120)
17:36:56 × arahael quits (~arahael@124-150-64-50.tpgi.com.au) (Ping timeout: 256 seconds)
17:37:05 pokid joins (~pokid@unaffiliated/pokid)
17:37:28 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
17:37:50 × alp quits (~alp@2a01:e0a:58b:4920:d1b5:6b8:6f38:d8f3) (Ping timeout: 264 seconds)
17:37:52 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
17:38:23 × laurenceday quits (~leday@173.203.125.91.dyn.plus.net) (Quit: Leaving.)
17:38:55 × chaosmasttter quits (~chaosmast@p200300c4a7122601056aeb346f192a12.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
17:39:15 cads2 joins (~cads@ip-64-72-99-232.lasvegas.net)
17:40:42 hexo- joins (~hexo@83.167.228.130)
17:41:34 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
17:41:53 × cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 256 seconds)
17:42:14 × ph88 quits (~ph88@ip5f5af6cd.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
17:43:08 × Tops2 quits (~Tobias@dyndsl-095-033-024-237.ewe-ip-backbone.de) (Quit: Leaving.)
17:43:29 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
17:44:15 Tops2 joins (~Tobias@dyndsl-095-033-024-237.ewe-ip-backbone.de)
17:44:36 × carlomagno quits (~cararell@148.87.23.11) (Ping timeout: 240 seconds)
17:45:48 heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
17:46:20 × cads2 quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 256 seconds)
17:47:49 × anhydrite quits (~anhydrite@4e69b241.skybroadband.com) (Ping timeout: 246 seconds)
17:48:01 × chris8142 quits (~chris8142@srvnet-01-071.ikbnet.co.at) (Quit: WeeChat 3.0)
17:48:06 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 272 seconds)
17:50:26 gioyik joins (~gioyik@186.112.99.244)
17:51:21 Guest4563 joins (~Siempre@4e69b241.skybroadband.com)
17:54:15 hexfive joins (~hexfive@50-47-142-195.evrt.wa.frontiernet.net)
17:55:09 <justsomeguy> What is your opinion of fossil (the version control software that uses sqlite as a back-end)?
17:57:49 carlomagno joins (~cararell@148.87.23.12)
17:58:34 <koz_> Mine is primarily 'whatever its merits, git has network effects and thus it's what'll get used nine times out of ten, merits be damned'.
17:59:00 theorbtwo joins (~theorb@cpc81822-swin19-2-0-cust3.3-1.cable.virginm.net)
17:59:01 × theorb quits (~theorb@cpc81822-swin19-2-0-cust3.3-1.cable.virginm.net) (Ping timeout: 246 seconds)
18:00:26 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection)
18:01:33 <Chousuke> My opinion is that git's good enough :P
18:01:59 <monochrom> :)
18:02:24 <Chousuke> the UI is terrible, but the software itself is solid, so the good reasons to use alternatives just often aren't good enough
18:03:13 <justsomeguy> To be honest I've been using various vcs' and still haven't incorporated any of them into my workflow in a productive way. They mostly serve as extended undo rather than a useful microblog of changes with narrative structure.
18:03:44 × shf quits (~sheaf@2a01:cb19:80cc:7e00:bd72:6c13:4bde:b40f) (Read error: Connection reset by peer)
18:04:25 Ariakenom joins (~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se)
18:04:34 <koz_> My experience with git is roughly this comic: https://xkcd.com/1597/
18:05:09 <Chousuke> I think git was successful because it was such a huge improvement over the status quo in terms of what it enabled you to do, and it arrived at the right time.
18:05:17 <Sonolin> yup
18:05:47 <Sonolin> being created by Linus Torvalds is a lot of free promo as well
18:05:50 <monochrom> haha koz_. Although, I haven't run into that kind of problems. (I'm a casual user.)
18:06:55 <Chousuke> I'm pretty comfortable with git nowadays, so people nuking their projects unnecessarily bothers me somewhat :P
18:08:05 <Chousuke> the UI is bad, but its internal workings are so straightforward that I can always just look up whatever magic incantation I need for the operation I want to do if I can't remember it
18:08:21 <Sonolin> yea once you grok it it is really powerful
18:08:35 ph88 joins (~ph88@95.90.246.205)
18:08:36 <Sonolin> SourceTree is nice for those unwilling to learn
18:10:33 × britva quits (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) (Quit: This computer has gone to sleep)
18:10:34 <koz_> I'm semi-casual. Like, I've learned worse, but git is far from 'good enough' in my opinion. I just tolerate it because if you wanna contribute to basically anything nowadays you _have_ to know it.
18:11:13 <Chousuke> I mean "good enough" in terms of what you can do with it
18:11:35 joaoh82_ joins (~joaoh82@157-131-134-210.dedicated.static.sonic.net)
18:11:41 <Chousuke> The problem with eg. subversion was that if you wanted to use it to untangle a tricky merge, you just couldn't
18:11:41 hackage geos 0.4.0 - Bindings for GEOS. https://hackage.haskell.org/package/geos-0.4.0 (petefrance)
18:12:04 <koz_> I actually used subversion in a professional setting.
18:12:07 <koz_> Never again.
18:12:19 <Chousuke> with git you can make temporary commits and add things piecemeal and rewrite things all you want, and that helps you deal with tricky situations
18:12:19 <koz_> Like, if you can't do the equivalent of .gitignore, you are pretty badly designed IMHO.
18:12:45 <Chousuke> with Subversion you just have a mess in your worktree and no help from the tool :P
18:13:10 geekosaur remembers when svn was a step *up*, though
18:13:18 <geekosaur> everything is relative
18:13:33 <Chousuke> oh yeah, the first source control I used was RCS :)
18:13:33 × Saukk quits (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
18:13:42 <Chousuke> svn is definitely somewhat better than that.
18:13:45 <geekosaur> I started out on SCCS
18:13:49 × joaoh82 quits (~joaoh82@157-131-134-210.dedicated.static.sonic.net) (Ping timeout: 260 seconds)
18:14:07 monochrom came from the time of .cvsignore
18:14:38 × Aquazi quits (uid312403@gateway/web/irccloud.com/x-hleddgoteowwxjqp) (Quit: Connection closed for inactivity)
18:14:54 <dminuoso> Is there a typeclass that gives us sort of equality of Maybe a or say Nothing ~= Just ""
18:15:01 <dminuoso> Or Nothing ~= Just []
18:15:01 <monochrom> So if you also mean that subversion can't do the equivalent of .cvsignore, that's disappointing. subversion was supposed to be one level up above cvs.
18:15:16 <koz_> monochrom: AFAICT, no.
18:15:30 <Chousuke> and Subversion is still decent for completely linear things like configuration, or for storing versions of binary artifacts.
18:15:31 <jle`> dminuoso: compare on fold, maybe
18:15:33 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
18:15:50 alp joins (~alp@2a01:e0a:58b:4920:914d:f2ca:3630:62c6)
18:15:53 <Sonolin> SVN always took *forever* to do anything too
18:16:06 <dminuoso> jle`: Mmm, that would only work on foldables. The "" was supposed to talk about Text actually
18:16:20 <dminuoso> Sorry about that, my brain is currently locked into OverloadedStrings
18:16:24 <Chousuke> that's because if you deploy it the "standard" way, it does a gajillion HTTP requests to the server for pretty much anything
18:16:54 <dminuoso> Also, I might need `Nothing ~= Just 0` as well..
18:17:26 <Chousuke> at one point at work we had a graph showing audit failures against AD
18:17:27 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
18:17:29 × raichoo quits (~raichoo@dslb-188-101-186-206.188.101.pools.vodafone-ip.de) (Quit: Lost terminal)
18:17:32 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
18:17:41 <dminuoso> For context, Im dealing with a particularly bad API that for some "unset" fields it gives me `{ "foo": "" }`, other times it gives me {"foo": null} or it just leaves the attribute away
18:17:43 <Chousuke> and also audit successes
18:17:55 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
18:18:00 <Chousuke> and there were noticeable spikes in those numbers when someone checked out a large svn repo :P
18:18:06 <dminuoso> And I want to write tests that verify that the thing Im putting in is the thing Im getting out..
18:18:08 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
18:18:25 <geekosaur> nothing built in, because it's kinda poorly specified. depending on approach I could see Data.Default or Monoid
18:19:48 <geekosaur> but combining either one with Maybe is a problem
18:20:29 conal joins (~conal@64.71.133.70)
18:21:02 <geekosaur> some custom wrapped Maybe whose comparison function "promotes" Nothing to mempty (and unwraps a Just)?
18:21:36 <dminuoso> % lower x | x == empty = Nothing; lower x = Just x
18:21:37 <yahb> dminuoso:
18:21:52 <dminuoso> % l =&= r == (lower =<< l) == (lower =<< r)
18:21:53 <yahb> dminuoso: ; <interactive>:30:1: error: Precedence parsing error cannot mix `==' [infix 4] and `==' [infix 4] in the same infix expression
18:22:02 <dminuoso> % l =&= r = (lower =<< l) == (lower =<< r)
18:22:02 <yahb> dminuoso:
18:22:14 <dminuoso> % Just "" =&= Nothing
18:22:14 <yahb> dminuoso: True
18:22:21 <dminuoso> Mmm.
18:22:25 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
18:22:57 <dminuoso> geekosaur: ah yeah, promoting the other way seems saner.
18:23:10 <monochrom> dminuoso: I wonder if instead of coding up a special equality, code up a normalization, Just a -> a, Nothing -> mempty or default.
18:23:28 <geekosaur> that was basically what I proposed
18:24:38 <dminuoso> Cheers, I think Ill go that road. I was on the tree of going the other direction, and it felt like unnecessary extra work
18:24:40 <dminuoso> And the bind was weird
18:25:08 <monochrom> @type fold
18:25:09 <lambdabot> (Foldable t, Monoid m) => t m -> m
18:25:16 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
18:25:30 <monochrom> Yeah the normalization looks like fold if the wrapped type is a Foldable.
18:25:47 × LKoen_ quits (~LKoen@105.175.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
18:25:52 <monochrom> Although, to get "Nothing -> 0" you have to jump through the hoop of Sum...
18:26:15 <geekosaur> yeh, the problem there being Text is MonoFoldable…
18:26:58 <monochrom> fromMaybe is a pretty low-tech one-liner solution for all cases.
18:27:30 <monochrom> Don't bring in Day convolution if a simple fromMaybe does the job :)
18:27:41 britva joins (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119)
18:28:38 zyklotomic joins (~ethan@unaffiliated/chocopuff)
18:28:45 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
18:29:07 <zyklotomic> is it a bad idea to have a dependency on something like microlens?
18:29:42 <zyklotomic> I want to use https://hackage.haskell.org/package/microlens for only a very small component just for slightly cleaner code
18:29:51 <zyklotomic> are dependencies usually a bad idea
18:29:54 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 272 seconds)
18:31:23 <geekosaur> actually practically everything in the haskell world has dependencies
18:31:57 <geekosaur> this is not a "everything but the kitchen sink is in base" ecosystem
18:33:11 benjamin-l joins (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e61)
18:34:05 <monochrom> Pulling in a huge library just to use one single thing from it, and it is a one-liner "foo f g x y z = f x (g y z)", that's a bad idea.
18:34:24 <monochrom> Pulling in a huge library because you actually use, say, 60% of it, that's a good idea.
18:34:34 <monochrom> In other words, as always, it depends.
18:35:31 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
18:35:38 × juuandyy quits (~juuandyy@90.166.144.65) (Ping timeout: 256 seconds)
18:36:27 Johan63 joins (910e67ae@customer-145-14-103-174.stosn.net)
18:36:39 <koz_> Also, not everythign that looks like a dependency truly is. vector or containers, for example, come with GHC.
18:36:50 × Johan63 quits (910e67ae@customer-145-14-103-174.stosn.net) (Remote host closed the connection)
18:36:59 <monochrom> vector still doesn't. containers does.
18:37:11 hackage circular 0.2.0 - Circular fixed-sized mutable vectors https://hackage.haskell.org/package/circular-0.2.0 (dschrempf)
18:37:14 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
18:37:15 <monochrom> text did not, but does now, since 8.6 or something
18:37:38 <koz_> monochrom: Wait really? Vector _isn't_ a boot library?
18:37:42 <monochrom> No.
18:37:45 <koz_> TIL.
18:37:54 <koz_> Ah, because it's _array_, right?
18:38:04 <geekosaur> Array's the bootlib, yes
18:38:11 hackage geos 0.4.1 - Bindings for GEOS. https://hackage.haskell.org/package/geos-0.4.1 (petefrance)
18:38:13 <monochrom> containers isn't a boot library in the strictest sense either. But someone decided it's good to include.
18:38:50 <monochrom> And I am grateful that I don't have to take 20 minutes to rebuild text for every new version of GHC.
18:40:03 <geekosaur> wasn't it that it used to be and was never really removed after TH or ghc-lib was reworked to not expose containers?
18:41:02 <monochrom> I don't know. But interesting.
18:41:16 <zyklotomic> that makes sense, it just feels uncomfortable having dependencies for small things, even somehing like vector
18:41:22 <monochrom> I can believe it's more like someone forgot to exclude it, heh.
18:42:12 <geekosaur> ot sure it's "forgot" or "too many people just blindly assume it's there now"
18:42:24 × joaoh82_ quits (~joaoh82@157-131-134-210.dedicated.static.sonic.net) (Ping timeout: 260 seconds)
18:42:26 christo joins (~chris@81.96.113.213)
18:42:48 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
18:42:59 <monochrom> mtl went through several toggles
18:43:59 <monochrom> to give you a sense that these things can be observatinally equivalent to politics.
18:44:30 <monochrom> Don't look for a technical-merit explanation when a political explanation suffices.
18:44:49 joaoh82 joins (~joaoh82@143.179.113.4)
18:47:01 × christo quits (~chris@81.96.113.213) (Ping timeout: 264 seconds)
18:47:43 × joaoh82 quits (~joaoh82@143.179.113.4) (Remote host closed the connection)
18:48:16 joaoh82 joins (~joaoh82@157-131-134-210.dedicated.static.sonic.net)
18:49:32 × jneira quits (5127ade4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.228) (Quit: Connection closed)
18:49:37 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
18:50:16 contiver joins (~contiver@84-115-64-44.wifi.dynamic.surfer.at)
18:50:40 hackage mmsyn7h 0.8.1.0 - Produces a sound recording specified by the Ukrainian text. https://hackage.haskell.org/package/mmsyn7h-0.8.1.0 (OleksandrZhabenko)
18:53:45 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
18:57:10 × geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
18:58:59 × matryoshka quits (~matryoshk@184.75.223.227) (Read error: Connection reset by peer)
18:59:02 matryoshka` joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
18:59:58 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
19:00:00 × contiver quits (~contiver@84-115-64-44.wifi.dynamic.surfer.at) (Ping timeout: 256 seconds)
19:00:50 heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
19:00:53 hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net)
19:01:02 × alp quits (~alp@2a01:e0a:58b:4920:914d:f2ca:3630:62c6) (Remote host closed the connection)
19:01:31 alp joins (~alp@2a01:e0a:58b:4920:914d:f2ca:3630:62c6)
19:01:31 <hyperisco> is there a way to run processes (like createProcess) but work with handles with Text instead of String?
19:02:02 <merijn> zyklotomic: Why though? Isn't great that something as incredibly wired in and unchangeable as "arrays" in other languages can simply be implemented as a library?
19:02:07 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection)
19:02:50 gxt joins (~gxt@gateway/tor-sasl/gxt)
19:02:51 Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk)
19:02:59 <monochrom> That goes to what I sometimes explain to students.
19:03:34 berberman joins (~berberman@unaffiliated/berberman)
19:03:36 <monochrom> It is a triumph of language design that, for example, cons list can be user-defined in Haskell, and even made as efficient as any "built-in primitive" story.
19:03:59 × borne quits (~fritjof@200116b864c92000f60f2508b10af3d6.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
19:04:00 <tomjaguarpaw> hyperisco: What do you mean? Do you want functions like hGetLine :: Handle -> IO Text ?
19:04:08 <hyperisco> yeah
19:04:34 <monochrom> But if everyone did define their own cons lists, inter-operability of two libraries would go out of the Window. It is still a good idea that the standard library provides one version so everyone is on the same page.
19:04:38 <tomjaguarpaw> hyperisco: https://www.stackage.org/lts-13.21/hoogle?q=Handle%20-%3E%20IO%20Text
19:04:43 <tomjaguarpaw> Those?
19:04:50 × berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
19:04:57 <hyperisco> duuno, it isn't loaded
19:05:10 <tomjaguarpaw> Stackage can be pretty slow ...
19:05:18 <hyperisco> there it goes, yes, thanks
19:05:26 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Ping timeout: 264 seconds)
19:05:38 <tomjaguarpaw> You're welcome
19:06:12 heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
19:06:19 kritzefitz joins (~kritzefit@212.86.56.80)
19:06:33 juuandyy joins (~juuandyy@90.166.144.65)
19:06:53 <monochrom> Actually cons list is not even the most convincing example.
19:06:54 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
19:07:02 <monochrom> Here is the most convincing example: Booleans.
19:08:22 <monochrom> Booleans can be user-defined in Haskell. Hackage could be full of user-defined third-party boolean libraries.
19:08:41 hackage haskoin-store 0.38.4 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.38.4 (jprupp)
19:09:31 <monochrom> This is a triumph of core language design. But if we really allowed proliferation of third-party booleans on hackage just because "isn't it cool that GHC is decoupled from booleans?", well that actually is far from cool.
19:09:40 hackage r-glpk-phonetic-languages-ukrainian-durations 0.2.2.0 - Can be used to calculate the durations of the approximations of the Ukrainian phonemes. https://hackage.haskell.org/package/r-glpk-phonetic-languages-ukrainian-durations-0.2.2.0 (OleksandrZhabenko)
19:12:29 <hyperisco> hm I guess there is this too which is a little annoying https://hackage.haskell.org/package/process-1.6.10.0/docs/System-Process.html#v:proc
19:13:50 × boxscape quits (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Ping timeout: 256 seconds)
19:13:50 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
19:14:08 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
19:15:11 × miguel_clean quits (~Miguel@89-72-187-203.dynamic.chello.pl) (Read error: Connection reset by peer)
19:15:17 <tomjaguarpaw> hyperisco: You mean that it takes Strings rather than Texts?
19:15:22 <hyperisco> yes
19:15:44 <tomjaguarpaw> Yeah, I don't know any API that uses Text for createProcess. Perhaps one exists.
19:18:06 geekosaur joins (82659a09@host154-009.vpn.uakron.edu)
19:19:50 × joaoh82 quits (~joaoh82@157-131-134-210.dedicated.static.sonic.net) (Ping timeout: 256 seconds)
19:20:01 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:22:28 Lord_of_Life joins (~Lord@46.217.221.243)
19:22:28 × Lord_of_Life quits (~Lord@46.217.221.243) (Changing host)
19:22:28 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
19:23:30 howdoi joins (uid224@gateway/web/irccloud.com/x-oyiccouvdvnehmhe)
19:23:43 × vicfred quits (~vicfred@unaffiliated/vicfred) (Ping timeout: 246 seconds)
19:25:47 nkatte joins (~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1)
19:25:56 × nkatte quits (~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1) (Read error: Connection reset by peer)
19:26:14 nkatte joins (~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1)
19:28:27 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
19:28:48 DavidEichmann joins (~david@62.110.198.146.dyn.plus.net)
19:31:58 × nkatte quits (~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1) (Quit: nkatte)
19:32:18 nkatte joins (~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1)
19:32:22 × _deepfire quits (~user@80.92.100.69) (Remote host closed the connection)
19:34:55 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
19:36:34 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Read error: Connection reset by peer)
19:36:54 × juuandyy quits (~juuandyy@90.166.144.65) (Ping timeout: 256 seconds)
19:37:13 justsomeguy joins (~justsomeg@216.186.218.241)
19:37:13 × justsomeguy quits (~justsomeg@216.186.218.241) (Changing host)
19:37:13 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
19:37:41 hackage mail-pool 2.2.2 - Preconfigured email connection pool on top of smtp. https://hackage.haskell.org/package/mail-pool-2.2.2 (Jappie)
19:37:59 × nkatte quits (~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1) (Quit: nkatte)
19:40:06 × cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
19:47:18 dyniec[m] joins (dyniecmatr@gateway/shell/matrix.org/x-wodmmdskrlskbezg)
19:48:30 × kuribas quits (~user@ptr-25vy0i8gptzu7g9n288.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
19:49:32 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
19:51:53 × seveg quits (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Quit: WeeChat 3.0)
19:53:03 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Read error: Connection reset by peer)
19:53:35 justsomeguy joins (~justsomeg@216.186.218.241)
19:53:35 × justsomeguy quits (~justsomeg@216.186.218.241) (Changing host)
19:53:35 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
19:56:25 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Read error: Connection reset by peer)
19:56:49 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:58:40 christo joins (~chris@81.96.113.213)
19:59:10 <hyperisco> any reason you can think stack is suddenly taking over a minute to link a small program
19:59:46 × zyklotomic quits (~ethan@unaffiliated/chocopuff) (Ping timeout: 246 seconds)
19:59:52 × joaj quits (~joaj@2001:690:2100:1b:a36f:f7ab:d46c:98f0) (Quit: WeeChat 2.9)
20:00:42 Zetagon joins (~leo@c151-177-52-233.bredband.comhem.se)
20:00:58 danza_ joins (~francesco@151.53.73.59)
20:01:28 <monochrom> bad sector
20:02:34 <hyperisco> man I have enough spurious problems don't be saying that
20:03:10 × danza__ quits (~francesco@151.53.83.218) (Ping timeout: 260 seconds)
20:03:13 × christo quits (~chris@81.96.113.213) (Ping timeout: 264 seconds)
20:03:24 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) ()
20:05:05 × jespada quits (~jespada@90.254.245.49) (Ping timeout: 240 seconds)
20:05:47 × britva quits (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) (Quit: This computer has gone to sleep)
20:06:04 britva joins (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119)
20:07:22 jespada joins (~jespada@90.254.245.49)
20:07:41 hackage chessIO 0.5.0.0 - Basic chess library https://hackage.haskell.org/package/chessIO-0.5.0.0 (mlang)
20:08:19 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
20:15:36 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
20:15:42 hackage mail-pool 2.2.3 - Preconfigured email connection pool on top of smtp. https://hackage.haskell.org/package/mail-pool-2.2.3 (Jappie)
20:17:18 × britva quits (~britva@2a02:aa13:7240:2980:c416:eb6b:963d:a119) (Quit: This computer has gone to sleep)
20:23:12 cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it)
20:23:12 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
20:23:22 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
20:23:45 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
20:24:09 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
20:24:25 <dminuoso> 19:27:29 monochrom | Don't bring in Day convolution if a simple fromMaybe does the job :)
20:24:31 <dminuoso> Hold on, I can use Day convolution here?
20:24:32 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
20:24:46 <geekosaur> heh
20:25:04 <monochrom> No, I'm just tossing out Day convolution blindly as a stereotypical example of advanced math.
20:25:27 <monochrom> Like, "adjunction" is no longer intimidating.
20:27:16 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:27:25 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 246 seconds)
20:27:38 vicfred joins (~vicfred@unaffiliated/vicfred)
20:28:05 knupfer joins (~Thunderbi@200116b82cc3670094f77ab4f8d612cb.dip.versatel-1u1.de)
20:28:49 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
20:30:49 joaoh82 joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
20:31:41 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
20:33:42 × sunweaver1 quits (~sunweaver@185.163.110.125) (Remote host closed the connection)
20:36:46 christo joins (~chris@81.96.113.213)
20:36:47 × nf quits (~n@monade.li) (Quit: Fairfarren.)
20:37:12 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
20:37:28 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
20:37:51 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
20:38:01 <dolio> You mean, basic math that people are scared of. Not advanced math.
20:38:18 × AlterEgo__ quits (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
20:41:59 nf joins (~n@monade.li)
20:43:13 × kosmikus quits (~kosmikus@nullzig.kosmikus.org) (Ping timeout: 256 seconds)
20:43:29 kosmikus joins (~kosmikus@haskell/developer/kosmikus)
20:43:40 Feuermagier joins (~Feuermagi@213.178.26.41)
20:45:23 × Nahra quits (~Nahra@unaffiliated/nahra) (Quit: leaving)
20:48:56 <monochrom> Yeah OK!
20:49:05 Deide joins (~Deide@217.155.19.23)
20:49:31 × nf quits (~n@monade.li) (Quit: Fairfarren.)
20:51:13 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
20:51:37 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
20:52:46 × Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 256 seconds)
20:53:02 × Libertinus quits (58c19c04@dsl-trebng21-58c19c-4.dhcp.inet.fi) (Remote host closed the connection)
20:54:16 lambda joins (~xiretza@mail.xiretza.xyz)
20:56:16 zyklotomic joins (~ethan@210.13.104.210)
20:56:21 philopsos joins (~caecilius@gateway/tor-sasl/caecilius)
20:56:22 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:57:08 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
20:57:16 <sclv> if i want the first Just from a list of Maybes (or Nothing) then `listToMaybe . catMaybes` does the trick
20:57:34 <sclv> I don't recall if there's something slicker, codegolfwise
20:57:39 <sclv> using the First monoid is more verbose
20:57:54 <sclv> maybe like an alternative concat or something?
20:58:15 <jle`> > asum [Nothing, Just 3, Just 4, Nothing, Just 5]
20:58:17 <lambdabot> Just 3
20:58:28 <jle`> not that it's any more readable
20:58:57 <geekosaur> they're doing code golf, readable isn't a constraint
20:59:12 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
20:59:37 <ephemient> :t join . find isJust -- was my first thought, but `asum` probably can't be beat
20:59:39 <lambdabot> Foldable t => t (Maybe a) -> Maybe a
21:00:01 <dminuoso> Maybe monochrom knows how to use Day here? ..
21:00:04 dminuoso smiles
21:00:05 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
21:00:12 geekosaur was poking asum but jle` beat him to it
21:00:16 nf joins (~n@monade.li)
21:00:23 <oats> stupid idea of the day: rename 'Just' to 'A'
21:00:24 × joaoh82 quits (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection)
21:00:28 <dsal> asum is a good thing to know. I've also used it for more effectful stuff like "which of these works?"
21:00:33 <oats> [Nothing, A 3, A 4, Nothing, A 5]
21:00:52 <pjb> s/Nothing/A_Nothing/g
21:00:54 <jle`> Nothing = NotA
21:01:01 joaoh82 joins (~joaoh82@157-131-134-210.dedicated.static.sonic.net)
21:01:12 <dminuoso> If you're going to break hackage, at least break it properly and just flip Nothing and Just.
21:01:13 <jle`> or maybe Nada
21:01:25 <dminuoso> [Just, Nothing 3, Nothing 4, Just, Nothing 5]
21:01:30 <dsal> Just and Unjust
21:01:32 <oats> lol
21:01:42 <monochrom> Since an infinite list is involved, I would take a co-limit in an O-category... >:)
21:02:12 <dminuoso> jle`: Think we should revive the idea we floated around 2-3 years ago, or what Haskell would be if Germany had won the war.
21:02:28 <monochrom> Yikes.
21:02:42 <jle`> i literally have no recollection of this conversation D:
21:02:51 <monochrom> Iron Sky Haskell?
21:02:52 <lambda> hi, looking for a point-free version of `[0,x..]`, something like `multiplesOf`, but I can't find anything - does a function for this exist in base?
21:03:14 × graf_blutwurst quits (~user@2001:171b:226e:adc0:416e:f9ed:b426:e09e) (Remote host closed the connection)
21:03:15 <merijn> lambda: enumFromThen ? :p
21:03:18 × coot quits (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
21:03:18 <merijn> :t enumFromThen
21:03:20 <lambdabot> Enum a => a -> a -> [a]
21:03:25 shf joins (~sheaf@2a01:cb19:80cc:7e00:d9e0:5dd0:4ff3:cac9)
21:03:25 <dminuoso> The language would be called Schönfinkel (I know it's not German, but it it sounds Germany so its too good to pass up on)
21:03:26 <oats> [Nichts, Ein 3, Ein 4, Nichts...]
21:03:27 <merijn> > enumFromThen 0 3
21:03:30 <lambdabot> [0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,7...
21:03:43 <dminuoso> And currying would be schönfinkeln...
21:03:50 <oats> well, s/Ein/Nur
21:03:51 <merijn> lambda: the [..] syntax is just syntactic sugar for various Enum operations
21:04:01 <dminuoso> oats: Dont translate literallz
21:04:07 <dminuoso> Nichts and Ein sound perfect.
21:04:07 <lambda> merijn: oh, yep, totally missed that - I only saw enumFrom
21:04:08 <oats> yassss
21:05:15 <dminuoso> instanz Anwendbar Vielleicht wobei abbilden f Nichts = Nichts; abbilden f (Nur x) = Nur (f x)
21:05:17 <dminuoso> It's perfect
21:05:55 <sclv> thanks for asum, hoogle took me there too
21:05:56 <oats> lololol
21:06:34 <oats> what would monads be called?
21:06:42 <oats> monad, rather
21:07:50 <dminuoso> Well, Monade or Monas have greek stems
21:08:21 <oats> how about "Abflachungzeug" :P
21:08:22 <dminuoso> Depending on how Hitler would have designed the Münchener Schönfinkel Kompilierer, that might have been permissable
21:08:54 conal joins (~conal@64.71.133.70)
21:09:07 <oats> MSK lol, I love it
21:09:44 <zyklotomic> is it possible to have the update record syntax refer to its respective parameter?
21:10:01 <dminuoso> zyklotomic: Not currently
21:10:12 <dminuoso> IIRC there is a proposal in progress to address this.
21:10:35 <zyklotomic> like data Pog = Pog { a :: Int, b :: Int } --> p = Pog 5 7; p = Pog { a = a + 1 } right?
21:10:53 <zyklotomic> just in case I didn't describe it clearly enough
21:11:03 jneira joins (5127ade4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.228)
21:11:06 <jle`> yeah, there's no syntax at the moment
21:11:16 × alx741 quits (~alx741@186.178.110.235) (Quit: alx741)
21:11:26 <jle`> but there are some lightweight lensy solutions for it
21:11:33 <zyklotomic> % right
21:11:34 <yahb> zyklotomic: ; <interactive>:33:1: error:; * No instance for (Show (a0 b0 c0 -> a0 (Either d0 b0) (Either d0 c0))) arising from a use of `print'; (maybe you haven't applied a function to enough arguments?); * In a stmt of an interactive GHCi command: print it
21:11:36 <merijn> RecordWildCards can do it
21:11:46 <jle`> oh yea, but only one at a time
21:11:50 <dminuoso> Mmm, no. RecordDotSyntax doesnt quite do it.
21:11:54 unlink2 joins (~unlink2@p200300ebcf259600971664e9499d7db7.dip0.t-ipconnect.de)
21:11:57 <dminuoso> zyklotomic: The best we have currently is what lens/optics offers us.
21:12:07 <merijn> "f p@Pog{..} = p{ a = a + 1}"
21:12:18 <merijn> jle`: What? No, that should work for any number of fields
21:12:19 <dminuoso> Yeah. RecordWildCards at its worst.
21:12:34 <dminuoso> It's unhygeniec.
21:12:41 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
21:13:10 <zyklotomic> so a naive question at that, hope you don't mind, but would it make sense to make this standard/official syntax, the lensy behavior
21:13:17 <merijn> dminuoso: I wasn't asked for a *good* solution, just *a* solutions
21:13:34 <dminuoso> zyklotomic: So roughly if you had a field _foo with an appropriate lens foo
21:13:34 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
21:13:41 <merijn> zyklotomic: Theoretically? Maybe
21:13:44 × unlink__ quits (~unlink2@p200300ebcf179a00278fd81c0246cc89.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
21:13:49 <jle`> merijn: ah, like, myFunc Pog{..} Pog{..} = ...
21:13:55 <geekosaur> zyklotomic, if you hadn't noticed, there's still a fair amount of argument over what the right approach is
21:13:59 <merijn> zyklotomic: Realistically: It's not happening anytime soon :p
21:14:06 <dminuoso> zyklotomic: oh hold on. No, because its not just syntax.
21:14:19 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
21:14:21 <ephemient> `{-# LANGUAGE NamedFieldPuns #-} f p@Pog {a} = p {a = a + 1}` less unhygenic?
21:14:31 <merijn> zyklotomic: Basically: "Would it make sense for new languages to be designed with lenses for the fields?" 'definitely'
21:14:32 <zyklotomic> because they are technically functions?
21:14:50 <merijn> zyklotomic: "Is it a good idea to *retroactively* change this?" 'probably not'
21:14:54 <dminuoso> zyklotomic: The novelty of optics/lenses is that we get to have a non-syntactical but first-class way of splitting data into whats in focus and whats not.
21:14:55 <zyklotomic> i'm a beginner so a lot of this context is lost on me
21:15:06 <geekosaur> meanwhile many people use lens to do it, but lens is large and you have to derive lenses for your records
21:15:08 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection)
21:15:18 <dminuoso> zyklotomic: Note the *non-syntactical* part here.
21:15:38 <zyklotomic> dminuoso: yes or maybe I should rephrase it, making it more "standard"?
21:15:56 <dminuoso> zyklotomic: Well the rough interface of lens has become de-facto standard in Haskell.
21:15:59 <zyklotomic> like you have to use the very large lenses library
21:15:59 seveg joins (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk)
21:16:04 <zyklotomic> ah I see
21:16:05 <dminuoso> Even the newer library `optics` matches it closely
21:16:22 <dminuoso> zyklotomic: You can use microlenses or optics-core if you want a more lightweight approach
21:16:28 × jollygood2 quits (~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
21:16:46 <zyklotomic> i think a struggle i have had is that "de facto" is very obscure
21:16:48 × seveg quits (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Client Quit)
21:16:50 <zyklotomic> *or finding out what is de facto
21:16:57 <jle`> with library support you could do something like `over #a (+ 3) p`. not quite syntax, just library built on top of the language (if you derive a Generic instance for Pog)
21:17:03 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
21:17:33 <zyklotomic> dminuoso: yup, I asked a question earlier about microlenses but it felt wrong pulling in a dependecy just to modify a data type
21:17:48 alx741 joins (~alx741@186.178.110.235)
21:17:53 <dminuoso> Right. For a single use site I wouldn't consider it.
21:18:11 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:18:25 <zyklotomic> jle`: yeah, I realize it isn't necessarily syntax per se, I meant like part of the "core"? I really don't know what to call it
21:18:37 <zyklotomic> kinda lke how Monads aren't part of the language, they're defined in terms of the language right?
21:18:50 <dminuoso> Well, its both
21:18:59 <sclv> well Monads are part of the language, because "do notation" is baked into the spec
21:19:10 <jle`> yeah heh, it's a little bit of both, but i see the point you're trying to make
21:19:16 <dminuoso> The typeclass Monad is defined in the Haskell report, but the typeclass is just a plain haskell typeclass you could have written yourself
21:19:19 <sclv> you could define the language without Monads and define them independently and you'd have everything but the donation
21:19:22 <sclv> er the notation
21:19:34 <jle`> you're getting a donation?
21:19:36 × nf quits (~n@monade.li) (Quit: Fairfarren.)
21:19:46 nf joins (~n@monade.li)
21:19:51 <zyklotomic> yeah, I think the issue I have is like decoupling which part is which? what is GHC, what is Prelude, what is a seperate package, etc.
21:19:52 <dminuoso> or denotion?
21:20:01 <sclv> wow there's dyslexia and there's swapping in a whole word lol
21:20:10 <dminuoso> zyklotomic: Oh yeah, that GHC part is brought up regularly in various places
21:20:17 <dminuoso> Some argue that GHC shouldnt come in base..
21:20:26 <sclv> Haskell the language is the Report. Then GHC has a bunch of stuff on top
21:20:32 <sclv> Prelude is in the report
21:20:38 <dminuoso> (By GHC I mean the module hierarchy of GHC.xxx)
21:20:52 <sclv> but even in the report there's the "heart" of haskell and then there's the defined libs and functions
21:21:01 <sclv> layers of onion
21:21:05 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
21:21:34 <dminuoso> zyklotomic: I guess this "field update notation" isn't as important in the realm of Haskell, perhaps because of how Haskellers tend to write code it might not see as much use.
21:21:35 <jle`> zyklotomic: there's the base "package" (i use package interchangeably with 'library' here) that's included with ghc, and there is are a few libraries that are used in ghc's source code ('boot packages') which are somewhat considered to be standard/reliable to depend on
21:21:42 <jle`> but there's a bit of a nebulous cloud outside of that
21:22:00 <dminuoso> There's the odd case where I might want it, but I dont think it'd justify a modification to syntax.
21:22:14 <jle`> there is some movement for "built-in lenses" to be built within the language, with a special magic typeclass, i think
21:22:17 seveg joins (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk)
21:22:27 × seveg quits (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Client Quit)
21:22:27 <dminuoso> jle`: you mean OverloadedLabels?
21:22:35 <zyklotomic> dminuoso: could you elaborate on the how Haskellers tend to write code part, curious
21:22:35 <dminuoso> Or even more magical?
21:22:46 <jle`> OverloadedLabels is already here, it supports `over #a (+ 3) p` above
21:23:06 <jle`> dminuoso: i'm tlaking about like HasField
21:23:09 <dminuoso> zyklotomic: I cant put my finger quite on it, but in the past 3 years I can count the occurences of "relative field updates" on a single hand.
21:23:18 <dminuoso> For my own code.
21:23:31 <dminuoso> All were done with optics because the library was already in the code anyway
21:24:06 <koz_> I don't quite understand how this note applies to StateT for MonadLogic: http://hackage.haskell.org/package/logict-0.7.0.3/docs/src/Control.Monad.Logic.Class.html#line-121
21:24:19 <jle`> dminuoso: we're one step away from it, for https://hackage.haskell.org/package/base-4.14.0.0/docs/GHC-Records.html
21:24:30 <koz_> Does that mean that even though you stack StateT s Logic a, the state won't split when the computation does?
21:24:32 <dminuoso> jle`: ah
21:24:50 <zyklotomic> dminuoso: maybe this whole thing is a code smell, I'm doing something with a buffer inside State, and i'm basically pushing on and popping off that buffer
21:24:53 <jle`> but still i think without deeper support for lens within the language, just "having the lens" isn't really good enough
21:25:04 <koz_> I would assume the state _would_ split, as StateT s Logic a ~ s -> Logic (a, s)
21:25:09 <zyklotomic> hence why this idea/want came to my mind
21:25:21 <dminuoso> zyklotomic: Im not saying it never happens. If you want you can show your code, but it's not unreasonable to ask for it.
21:25:43 <dminuoso> More specifically, Im not saying it's a code smell, just that it doesn't happen too often in idiomatic haskell.
21:25:46 <koz_> More precisely - I _want_ each 'solution' to have its own pet state.
21:25:48 <jle`> and yeah, i am not even claiming that deeper support for lens within the language is a good idea
21:25:50 nil joins (~n@monade.li)
21:25:58 <zyklotomic> dminuoso: ah thanks for the offer I see
21:26:23 × nil quits (~n@monade.li) (Client Quit)
21:26:25 <jle`> but i do think optics is the nicest user-friendly lens interface i've seen so far
21:26:30 <dminuoso> Indeed. :)
21:26:47 <dminuoso> It wasnt until optics was released, and I had a long talk with Adam, that I started using it.
21:26:50 <dminuoso> Haven't looked back ever since
21:27:07 <dminuoso> lens was too intimidating with illegible errors
21:27:12 borne joins (~fritjof@200116b864c92000f60f2508b10af3d6.dip.versatel-1u1.de)
21:27:17 × SupaYoshii quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!)
21:27:41 <jle`> lens has an important role in exploring the concepts loose and fast, maybe. i don't think one could have jumped straight to an optics interface
21:27:42 seveg joins (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk)
21:27:52 <jle`> but maybe the same thing could be said of haskell and the rest of the PL ecosystem
21:27:56 <dminuoso> Also what's nice about optics-core is that it has a light dependency footprint and *still* gives you Prism and Iso.
21:28:20 × danza_ quits (~francesco@151.53.73.59) (Quit: Leaving)
21:28:56 <zyklotomic> dminuoso: in fact, uhh it's python https://github.com/fxsjy/jieba/blob/67fa2e36e72f69d9134b8a1037b83fbb070b9775/jieba/__init__.py#L249
21:29:42 <zyklotomic> so i'm basically trying to recreate this algorithm in haskell
21:29:44 <dminuoso> I see.
21:29:51 <zyklotomic> the __cut_DAG function was where I employed State and a buffer, or am I going about it the wrong way
21:30:09 <zyklotomic> and as you can see, there's that pushing and popping off the buffer behavior
21:30:56 <dminuoso> It's hard to say on the spot. Generally, mapping algorithms directly into Haskell is ont ideal
21:31:30 SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net)
21:31:48 <dolio> I think the main thing would be that I wouldn't springle direct record munging all over my code, generally.
21:31:53 __monty__ joins (~toonn@unaffiliated/toonn)
21:32:17 <dolio> There might be some key manipulations to factor out and then refer to elsewhere.
21:32:19 <zyklotomic> yeah, but for this one specifically, I guess I struggled to find any easier way to have this kind of logic i guess
21:33:29 <koz_> As a random aside, I am disappointed that it's not called 'These1s'. :P
21:33:46 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
21:35:05 <dminuoso> zyklotomic: Can you roughly describe what this does?
21:35:56 × macrover quits (~macrover@ip68-108-126-211.lv.lv.cox.net) (Ping timeout: 240 seconds)
21:36:10 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
21:36:24 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds)
21:36:56 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 240 seconds)
21:37:50 <zyklotomic> dminuoso: yeah sure, it is a word segmentation algorithm, algorith wise, it has a split string such as "abcdefg" -> ["a", "bc", "def", "g"], and the part that I shared is checking if the list
21:37:53 × Blkt quits (~Blkt@2a01:4f8:200:2425::adda) (Ping timeout: 272 seconds)
21:37:59 <zyklotomic> ["a", "bc", "def", "g"] can be split any further
21:38:21 <zyklotomic> the imperative python code you see loops through each of these split segments, if the segment is of length 1, it pushes it onto buffer
21:38:31 <dminuoso> Presumably this has to do with Chinese linguistics?
21:38:33 <zyklotomic> if it is not length 1, check if the buffer is empty, if not, split
21:38:35 <zyklotomic> yup lol
21:39:05 <zyklotomic> and so on, if that makes sense
21:39:21 × Zetagon quits (~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection)
21:39:22 <dminuoso> So that sounds like a very simple task for Conduit
21:39:26 × urek quits (~urek@2804:7f1:e10a:9644:81a3:232e:2e84:9c43) (Ping timeout: 246 seconds)
21:39:28 × jespada quits (~jespada@90.254.245.49) (Ping timeout: 256 seconds)
21:40:03 <dminuoso> Or I guess you could do this directly on a list
21:40:19 <dminuoso> in which case such a "buffer" would just be a function argument, wouldnt even bother with StateT here
21:40:21 <zyklotomic> I've no experience with Conduit lol
21:40:36 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
21:40:47 Blkt joins (~Blkt@2a01:4f8:200:2425::adda)
21:41:03 catchme joins (uid355354@gateway/web/irccloud.com/x-tmcodhvuaxunpqgn)
21:41:09 <zyklotomic> I think it was because it felt a lot more complex to make it completely functional when I first started trying to write it
21:41:26 <zyklotomic> could you give a dumb downed reason how Conduit would work
21:41:45 <dminuoso> Let me make up a similar problem and show you how it could be solved
21:42:14 jespada joins (~jespada@90.254.245.49)
21:42:22 × geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
21:42:28 Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk)
21:42:45 joaoh82_ joins (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net)
21:44:03 × dhouthoo quits (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9)
21:45:14 pokid parts (~pokid@unaffiliated/pokid) ()
21:45:24 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:45:43 × seveg quits (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Quit: WeeChat 3.0)
21:46:33 × joaoh82 quits (~joaoh82@157-131-134-210.dedicated.static.sonic.net) (Ping timeout: 265 seconds)
21:47:17 seveg joins (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk)
21:47:29 × nf quits (~n@monade.li) (Quit: Fairfarren.)
21:47:39 nf joins (~n@monade.li)
21:49:55 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
21:50:30 × nf quits (~n@monade.li) (Client Quit)
21:50:43 nf joins (~n@monade.li)
21:51:24 × seveg quits (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Client Quit)
21:52:20 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
21:52:28 seveg joins (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk)
21:52:33 × nf quits (~n@monade.li) (Client Quit)
21:53:34 conal joins (~conal@64.71.133.70)
21:53:50 × seveg quits (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Client Quit)
21:53:54 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
21:53:58 × conal quits (~conal@64.71.133.70) (Client Quit)
21:54:12 × AndreasK quits (uid320732@gateway/web/irccloud.com/x-ylkxsbmenduzxmys) (Quit: Connection closed for inactivity)
21:54:55 nf joins (~n@monade.li)
21:55:07 seveg joins (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk)
21:56:27 davidfg41 joins (~davidfg4@185.204.1.185)
21:57:08 × xcmw quits (~textual@cpe-69-133-55-43.cinci.res.rr.com) (Client Quit)
21:57:26 <zyklotomic> dminuoso: i really appreciate it, but i gotta go, i'll most certainly pop back in if you do create that example
21:58:05 × Techcable quits (znc@irc.techcable.net) (Quit: ZNC - http://znc.in)
21:58:57 Techcable joins (znc@irc.techcable.net)
21:59:42 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 2.9)
22:02:01 × zyklotomic quits (~ethan@210.13.104.210) (Ping timeout: 265 seconds)
22:04:11 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
22:06:34 heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
22:10:25 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
22:14:13 urek joins (~urek@2804:7f1:e10a:9644:81a3:232e:2e84:9c43)
22:14:22 × hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 256 seconds)
22:17:26 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection)
22:19:28 × thc202 quits (~thc202@unaffiliated/thc202) (Quit: thc202)
22:22:48 <ezzieyguywuf> I tried to reproduce this on a smaller program but was unable to do so. Currently, the output shown in the comment above `main` is what I get, but I can't understand why the prompt is being printed AFTER I hit enter. https://dpaste.com/2QFM9VS94
22:22:55 <ezzieyguywuf> the relevant function in `promptMatch`
22:24:49 × sagax quits (~sagax_nb@213.138.71.146) (Remote host closed the connection)
22:25:06 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:25:21 isovector1 joins (~isovector@172.103.216.166.cable.tpia.cipherkey.com)
22:25:21 <ezzieyguywuf> hrm, turns out that changing to TextIO.putStrLn fixes it, but again I was unable to reproduce this on a smaller scale
22:25:24 <ezzieyguywuf> weird
22:25:26 × knupfer quits (~Thunderbi@200116b82cc3670094f77ab4f8d612cb.dip.versatel-1u1.de) (Remote host closed the connection)
22:25:30 <iqubic> jle`: How does OverloadedLabels work with Lens again? Like how do you set that up?
22:25:30 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
22:25:34 knupfer joins (~Thunderbi@200116b82cc36700fd01663be2310e7a.dip.versatel-1u1.de)
22:25:48 <isovector1> jle`: just read your post on shuffling groups and it was the most clarifying thing i've ever seen on groups. thanks!!
22:25:50 <iqubic> I can I get that to automatically generate lenses for my custom data?
22:25:55 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
22:26:00 <ezzieyguywuf> this was my attempt to reproduce https://dpaste.com/CHPNWYGL4
22:26:23 <exarkun> irc-conduit wants a ConduitT with (Either ... IrcMessage) as its output type. What if I have an input to my pipeline for which I want to generate more than one IrcMessage?
22:26:32 <isovector1> jle`: how come you're not on planet haskell?
22:26:35 heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
22:27:36 <isovector1> jle`: oh it looks like your rss feed is broken. most recent post i'm seeing is from 2013
22:27:43 <exarkun> is this what unfoldC is for?
22:27:46 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
22:27:59 × isovector1 quits (~isovector@172.103.216.166.cable.tpia.cipherkey.com) (Remote host closed the connection)
22:28:33 <iqubic> exarkun: It's like unfoldr, but puts outputs into a conduit, instead of a list.
22:30:29 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
22:30:48 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
22:30:49 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
22:31:05 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
22:31:13 <monochrom> ezzieyguywuf: I can reproduce. Expect different behaviour between {build exe and run} and {runghc or ghci}. This is general line-buffering issue. If you use putStr without newline, and you want it to "happen right now", hFlush.
22:31:45 <ezzieyguywuf> monochrom: ah hah, thank you for the tip.
22:33:08 × Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 256 seconds)
22:34:25 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
22:37:44 <dminuoso> monochrom: https://gist.github.com/dminuoso/78b9e52de12306ce5511d367200dbebe
22:37:48 <dminuoso> Works like a charm, cheers!
22:38:31 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection)
22:38:31 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
22:38:51 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
22:40:25 <dminuoso> iqubic: So OverloadedLabels essentially gives you variables identifiable by type level symbols
22:40:31 ces joins (~ces@52d3c113.dynamic-ip.k-net.dk)
22:40:45 <dminuoso> OverloadedLabels is just syntax sugar for `fromLabel @"Foobar"`
22:40:49 <iqubic> How can I use that with Generic Lenes?
22:40:52 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
22:41:36 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
22:41:50 <iqubic> *lenses
22:41:52 <dminuoso> See https://hackage.haskell.org/package/generic-lens-2.0.0.0/docs/Data-Generics-Labels.html
22:42:06 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
22:44:15 <iqubic> That's a bit confusing.
22:45:39 mbomba joins (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca)
22:46:12 <dminuoso> instance ( capital ~ BeginsWithCapital name, IsLabelHelper capital name p f s t a b, pafb ~ p a (f b), psft ~ p s (f t)) => IsLabel name (pafb -> psft) where
22:47:03 <dminuoso> So say you wrote `#_Foo` in your code somehow, this would get desugared into `fromLabel @"_Foo"`
22:47:17 <dminuoso> Then set `name` to "_Foo"
22:47:31 arahael1 is now known as arahael
22:48:00 <iqubic> And just importing Data.Generic.Lens does this for me?
22:48:04 <dminuoso> Based on type inference of the resulting type it knows p, f, s, t, a and b
22:48:17 <dminuoso> And some tyfams/fundeps + generics
22:48:22 <dminuoso> And voila, you have a prism
22:49:51 isovector1 joins (~isovector@172.103.216.166.cable.tpia.cipherkey.com)
22:50:16 <iqubic> Do I need to invoke any fancy template haskell stuff?
22:51:05 <dminuoso> No.
22:51:28 <iqubic> I'm not sure I understand.
22:51:37 <iqubic> It's fine though.
22:53:11 <dminuoso> Very handwavingly, you can imagine the implementation of the above instance to be `instance ... => IsLabel name (pafb -> psft) where fromLabel = to . genericThing`
22:53:37 <dminuoso> The rest from there is just simple plain generics
22:53:38 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:53:56 <dminuoso> The type level symbols is passed into the generics code so it can find the correct field
22:54:51 <iqubic> I understand how that works.
22:54:57 × knupfer quits (~Thunderbi@200116b82cc36700fd01663be2310e7a.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
22:55:12 <iqubic> It's the part about using these lenses in real code.
22:55:17 xcmw joins (~textual@cpe-69-133-55-43.cinci.res.rr.com)
22:55:36 <dminuoso> What do you mean? They are like any other lens
22:56:06 <dminuoso> Potentially not as efficient in degenerate cases, but other than that it's the same
22:57:42 <iqubic> Let's say I have "data Foo a = Foo {Bar :: (Int, a), Baz :: Int}" How would I go about changing the int in the Bar tuple?
22:58:39 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
22:58:41 <dminuoso> Assuming you meant to write bar and baz (lowercase), then that'd be:
22:58:52 <iqubic> I did mean for it to be lowercase.
22:58:59 <dminuoso> f & #bar . _1 %~ f
22:59:05 <dminuoso> err
22:59:08 <dminuoso> x & #bar . _1 %~ f
22:59:15 <iqubic> Oh, is that all?
22:59:19 <dminuoso> Yes.
22:59:32 × cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
22:59:44 sondr3 joins (~sondr3@cm-84.211.56.132.getinternet.no)
23:01:08 <iqubic> I see. Is it possible to use this for other things like as the argument to typed? https://hackage.haskell.org/package/generic-lens-2.0.0.0/docs/Data-Generics-Product-Typed.html#t:HasType
23:01:11 p-core joins (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
23:01:12 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
23:01:36 × DavidEichmann quits (~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection)
23:02:08 <iqubic> Or would I still need to use type applications?
23:02:29 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Remote host closed the connection)
23:02:31 × rdivacky quits (~rdivacky@212.96.173.4) (Read error: Connection reset by peer)
23:02:45 × alp quits (~alp@2a01:e0a:58b:4920:914d:f2ca:3630:62c6) (Ping timeout: 272 seconds)
23:03:34 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
23:03:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:04:28 <dminuoso> That doesn't make much sense..
23:05:50 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
23:07:47 rdivacky joins (~rdivacky@212.96.173.4)
23:08:08 <sondr3> I have a weird problem doing lookups in a Map: https://gist.github.com/sondr3/c76dd36778cef870daff78b32051e228. It's a `Map Text Bool` and looking up "*" fails but "/" and any other texts work
23:08:12 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
23:10:13 × Ariakenom quits (~Ariakenom@h-98-128-229-53.NA.cust.bahnhof.se) (Quit: Leaving)
23:11:54 <dminuoso> % m = M.fromAscList [("+", True),("-",False),("/",True),("*",True)]; m :: M.Map String Boo
23:11:54 <yahb> dminuoso: ; <interactive>:49:86: error:; Not in scope: type constructor or class `Boo'; Perhaps you meant `Bool' (imported from Prelude)
23:11:56 <dminuoso> % m = M.fromAscList [("+", True),("-",False),("/",True),("*",True)]; m :: M.Map String Bool
23:11:56 <yahb> dminuoso:
23:12:04 <dminuoso> % M.lookup "*" m
23:12:04 <yahb> dminuoso: Nothing
23:12:15 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
23:12:24 <dminuoso> % print m
23:12:24 <yahb> dminuoso: fromList [("+",True),("-",False),("/",True),("*",True)]
23:12:25 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
23:12:33 <dminuoso> % lookup "*" (M.toList m)
23:12:34 <yahb> dminuoso: Just True
23:12:37 <dminuoso> huh
23:15:24 <sondr3> At least it's not just me
23:15:25 <dminuoso> Oh
23:15:28 <dminuoso> M.fromAscList
23:15:43 <dminuoso> You're probably violating the precondition that the keys are ascending
23:15:55 <dminuoso> % "*" > "/"
23:15:56 <yahb> dminuoso: False
23:15:59 <dminuoso> There you go.
23:16:04 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
23:16:09 <dminuoso> (It will not check)
23:16:16 <sondr3> Oh, I had no idea that was a thing
23:16:20 <dminuoso> "O(n). Build a map from an ascending list in linear time. The precondition (input list is ascending) is not checked."
23:16:24 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 240 seconds)
23:16:52 Tario joins (~Tario@201.192.165.173)
23:17:04 <sondr3> Oh lord, yeah, I have no idea why I chose that over just M.fromList
23:17:20 <sondr3> That's a brainfart
23:17:31 <sondr3> Thanks dminuoso
23:19:27 × fendor quits (~fendor@91.141.2.63.wireless.dyn.drei.com) (Remote host closed the connection)
23:19:44 conal joins (~conal@64.71.133.70)
23:20:06 × ph88 quits (~ph88@95.90.246.205) (Ping timeout: 256 seconds)
23:21:57 × conal quits (~conal@64.71.133.70) (Client Quit)
23:22:24 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
23:22:33 isovector1 parts (~isovector@172.103.216.166.cable.tpia.cipherkey.com) ("Leaving")
23:23:03 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
23:23:34 × kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection)
23:25:48 conal joins (~conal@64.71.133.70)
23:26:25 ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta)
23:27:37 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 260 seconds)
23:32:58 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
23:33:19 <koz_> :t intercalate
23:33:22 <lambdabot> [a] -> [[a]] -> [a]
23:33:27 <koz_> :t intersperse
23:33:29 <lambdabot> a -> [a] -> [a]
23:34:09 urek__ joins (~urek@2804:7f1:e10a:9644:2492:fd7b:c739:6641)
23:35:41 × urek quits (~urek@2804:7f1:e10a:9644:81a3:232e:2e84:9c43) (Ping timeout: 272 seconds)
23:37:23 <koz_> @hoogle intersperse
23:37:23 <lambdabot> Data.List intersperse :: a -> [a] -> [a]
23:37:23 <lambdabot> Data.List.NonEmpty intersperse :: a -> NonEmpty a -> NonEmpty a
23:37:23 <lambdabot> GHC.OldList intersperse :: a -> [a] -> [a]
23:37:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
23:37:50 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8) (Ping timeout: 264 seconds)
23:38:43 heatsink joins (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2)
23:40:52 × ces quits (~ces@52d3c113.dynamic-ip.k-net.dk) (Ping timeout: 272 seconds)
23:41:04 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 260 seconds)
23:44:06 Vulfe joins (~vulfe@2600:1702:31b0:34e0:a527:3d61:9b10:c6d8)
23:46:25 Tario joins (~Tario@201.192.165.173)
23:46:26 kupi joins (uid212005@gateway/web/irccloud.com/x-jthauiwdetxrewvw)
23:48:23 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
23:50:57 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
23:51:21 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
23:52:21 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
23:52:54 × dhil quits (~dhil@195.213.192.34) (Ping timeout: 272 seconds)
23:54:10 hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
23:56:02 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
23:56:03 × hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
23:56:06 × heatsink quits (~heatsink@2600:1700:bef1:5e10:cd1c:b54e:3baa:b6e2) (Remote host closed the connection)
23:59:05 × p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection)

All times are in UTC on 2020-12-03.