Home liberachat/#haskell: Logs Calendar

Logs on 2021-10-30 (liberachat/#haskell)

00:00:03 × mcglk_ quits (~mcglk@131.191.49.120) (*.net *.split)
00:00:03 × nehsou^ quits (~nehsou@wsip-98-188-242-6.mc.at.cox.net) (*.net *.split)
00:00:03 × Kaiepi quits (~Kaiepi@156.34.44.192) (*.net *.split)
00:00:03 × JSharp quits (sid4580@id-4580.lymington.irccloud.com) (*.net *.split)
00:00:03 × bradparker quits (sid262931@id-262931.uxbridge.irccloud.com) (*.net *.split)
00:00:03 × hendi quits (sid489601@id-489601.lymington.irccloud.com) (*.net *.split)
00:00:03 × Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (*.net *.split)
00:00:03 × Sgeo quits (~Sgeo@user/sgeo) (*.net *.split)
00:00:03 × AlexNoo quits (~AlexNoo@178.34.163.209) (*.net *.split)
00:00:03 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (*.net *.split)
00:00:03 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (*.net *.split)
00:00:03 × _xor quits (~xor@72.49.199.147) (*.net *.split)
00:00:03 × terrorjack quits (~terrorjac@static.3.200.12.49.clients.your-server.de) (*.net *.split)
00:00:03 × pavonia quits (~user@user/siracusa) (*.net *.split)
00:00:04 × carter quits (sid14827@id-14827.helmsley.irccloud.com) (*.net *.split)
00:00:04 × Feuermagier quits (~Feuermagi@user/feuermagier) (*.net *.split)
00:00:04 × pieguy128_ quits (~pieguy128@bras-base-mtrlpq5031w-grc-48-67-70-102-17.dsl.bell.ca) (*.net *.split)
00:00:04 × AndrewYu quits (~andrew@user/andrewyu) (*.net *.split)
00:00:04 × sander quits (~sander@user/sander) (*.net *.split)
00:00:04 × philpax_ quits (sid516926@id-516926.lymington.irccloud.com) (*.net *.split)
00:00:04 × dsal quits (sid13060@id-13060.lymington.irccloud.com) (*.net *.split)
00:00:04 × Gestotterd quits (~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net) (*.net *.split)
00:00:04 × slowtype- quits (~slowtyper@2a02:214c:8630:300:654c:f501:742f:b8e4) (*.net *.split)
00:00:04 × d34df00d quits (~d34df00d@2600:1700:8c60:3a10::48) (*.net *.split)
00:00:04 × martin02 quits (~silas@emasq.stusta.mhn.de) (*.net *.split)
00:00:04 × jneira[m] quits (~jneiramat@2001:470:69fc:105::d729) (*.net *.split)
00:00:04 × nonzen quits (~nonzen@user/nonzen) (*.net *.split)
00:00:04 × Taneb quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (*.net *.split)
00:00:04 × nurupo quits (~nurupo.ga@user/nurupo) (*.net *.split)
00:00:04 × farn quits (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (*.net *.split)
00:00:04 × jocke-l quits (jocke-l@a.x0.is) (*.net *.split)
00:00:04 × oxytocat quits (~alloca@user/suppi) (*.net *.split)
00:00:04 × defanor quits (~defanor@tart.uberspace.net) (*.net *.split)
00:00:04 × xerox quits (~edi@user/edi) (*.net *.split)
00:00:04 × lstor quits (~lstor@user/lstor) (*.net *.split)
00:00:04 × dolio quits (~dolio@130.44.130.54) (*.net *.split)
00:00:04 × n3t quits (n3t@user/n3t) (*.net *.split)
00:00:04 × unmanbearpig quits (~unmanbear@user/unmanbearpig) (*.net *.split)
00:00:04 × NemesisD quits (sid24071@lymington.irccloud.com) (*.net *.split)
00:00:05 × kristjansson_ quits (sid126207@tinside.irccloud.com) (*.net *.split)
00:00:05 × sa quits (sid1055@tinside.irccloud.com) (*.net *.split)
00:00:05 × grfn quits (sid449115@helmsley.irccloud.com) (*.net *.split)
00:00:05 × teehemkay quits (sid14792@lymington.irccloud.com) (*.net *.split)
00:00:05 × mcfilib quits (sid302703@user/mcfilib) (*.net *.split)
00:00:05 × haasn quits (~nand@haasn.dev) (*.net *.split)
00:00:05 × mniip quits (~mniip@libera/staff/mniip) (*.net *.split)
00:00:05 × ggVGc quits (~ggVGc@a.lowtech.earth) (*.net *.split)
00:00:05 × tinwood quits (~tinwood@canonical/tinwood) (*.net *.split)
00:00:05 × truckasaurus quits (sid457088@helmsley.irccloud.com) (*.net *.split)
00:00:05 × urdh quits (~urdh@user/urdh) (*.net *.split)
00:00:05 × ehamberg quits (sid18208@hampstead.irccloud.com) (*.net *.split)
00:00:05 × tritlo quits (sid58727@user/tritlo) (*.net *.split)
00:00:05 × tomku quits (~tomku@user/tomku) (*.net *.split)
00:00:05 × Teacup quits (~teacup@user/teacup) (*.net *.split)
00:00:05 × absence quits (torgeihe@hildring.pvv.ntnu.no) (*.net *.split)
00:00:05 × kevin[m]1 quits (~pnotequal@2001:470:69fc:105::a54) (*.net *.split)
00:00:05 × sudden quits (~cat@user/sudden) (*.net *.split)
00:00:05 × opqdonut quits (opqdonut@pseudo.fixme.fi) (*.net *.split)
00:00:05 × rembo10 quits (~rembo10@remulis.com) (*.net *.split)
00:00:05 × sayola quits (~vekto@dslb-002-201-085-156.002.201.pools.vodafone-ip.de) (*.net *.split)
00:00:05 × Trattue quits (~Trattue@152.70.182.158) (*.net *.split)
00:00:05 × eL_Bart0 quits (eL_Bart0@dietunichtguten.org) (*.net *.split)
00:00:05 × thaumavorio quits (~thaumavor@thaumavor.io) (*.net *.split)
00:00:05 × Sqaure quits (~a@178.62.91.8) (*.net *.split)
00:00:13 absence joins (~absence@hildring.pvv.ntnu.no)
00:00:15 tinwood joins (~tinwood@general.default.akavanagh.uk0.bigv.io)
00:00:17 tomku joins (~tomku@user/tomku)
00:00:17 sudden joins (~cat@h-98-128-128-173.A351.priv.bahnhof.se)
00:00:18 defanor joins (~defanor@tart.uberspace.net)
00:00:19 rembo10 joins (~rembo10@remulis.com)
00:00:22 nehsou^ joins (~nehsou@wsip-98-188-242-6.mc.at.cox.net)
00:00:23 sayola joins (~vekto@dslb-002-201-085-156.002.201.pools.vodafone-ip.de)
00:00:24 Trattue joins (~Trattue@152.70.182.158)
00:00:24 Feuermagier joins (~Feuermagi@2a02:2488:4211:3400:6419:933b:46e0:8942)
00:00:25 ggVGc joins (~ggVGc@a.lowtech.earth)
00:00:26 Kaiepi joins (~Kaiepi@156.34.44.192)
00:00:31 pavonia joins (~user@ip5f5bf406.dynamic.kabel-deutschland.de)
00:00:32 NemesisD joins (sid24071@id-24071.lymington.irccloud.com)
00:00:33 teehemkay joins (sid14792@lymington.irccloud.com)
00:00:36 farn joins (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505)
00:00:37 dsal joins (sid13060@id-13060.lymington.irccloud.com)
00:00:38 × tinwood quits (~tinwood@general.default.akavanagh.uk0.bigv.io) (Changing host)
00:00:38 tinwood joins (~tinwood@canonical/tinwood)
00:00:38 truckasaurus joins (sid457088@id-457088.helmsley.irccloud.com)
00:00:38 mcfilib joins (sid302703@id-302703.helmsley.irccloud.com)
00:00:39 oxytocat joins (~alloca@2a03:4000:f:7ca:7407:d1ff:fe34:8cd0)
00:00:43 sudden is now known as Guest4382
00:00:44 mniip joins (mniip@libera/staff/mniip)
00:00:44 AndrewYu joins (~andrew@andrewyu.org)
00:00:45 × Feuermagier quits (~Feuermagi@2a02:2488:4211:3400:6419:933b:46e0:8942) (Changing host)
00:00:45 Feuermagier joins (~Feuermagi@user/feuermagier)
00:00:46 bradparker joins (sid262931@uxbridge.irccloud.com)
00:00:46 philpax_ joins (sid516926@lymington.irccloud.com)
00:00:46 Raito_Bezarius joins (~Raito@2a01:e0a:5f9:9681:a0a0:bb76:611f:9da7)
00:00:47 JSharp joins (sid4580@id-4580.lymington.irccloud.com)
00:00:47 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:00:48 dolio joins (~dolio@130.44.130.54)
00:00:50 slowtyper joins (~slowtyper@2a02:214c:8630:300:225:64ff:feb7:4668)
00:00:54 hendi joins (sid489601@id-489601.lymington.irccloud.com)
00:00:54 × pavonia quits (~user@ip5f5bf406.dynamic.kabel-deutschland.de) (Changing host)
00:00:55 pavonia joins (~user@user/siracusa)
00:00:55 sa joins (sid1055@id-1055.tinside.irccloud.com)
00:00:59 neurocyte0132889 joins (~neurocyte@46.243.81.22)
00:01:00 jocke-l joins (jocke-l@a.x0.is)
00:01:00 ehamberg joins (sid18208@id-18208.hampstead.irccloud.com)
00:01:05 unmanbearpig joins (~unmanbear@45.76.95.141)
00:01:09 n3t joins (n3t@s45.mydevil.net)
00:01:11 opqdonut joins (opqdonut@pseudo.fixme.fi)
00:01:13 grfn joins (sid449115@helmsley.irccloud.com)
00:01:15 × mcfilib quits (sid302703@id-302703.helmsley.irccloud.com) (Changing host)
00:01:15 mcfilib joins (sid302703@user/mcfilib)
00:01:16 tritlo joins (sid58727@id-58727.hampstead.irccloud.com)
00:01:16 eL_Bart0 joins (eL_Bart0@dietunichtguten.org)
00:01:22 × AndrewYu quits (~andrew@andrewyu.org) (Changing host)
00:01:22 AndrewYu joins (~andrew@user/andrewyu)
00:01:24 carter joins (sid14827@id-14827.helmsley.irccloud.com)
00:01:26 × slowtyper quits (~slowtyper@2a02:214c:8630:300:225:64ff:feb7:4668) (Changing host)
00:01:26 slowtyper joins (~slowtyper@user/slowtyper)
00:01:28 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
00:01:28 wroathe joins (~wroathe@user/wroathe)
00:01:35 _xor joins (~xor@72.49.199.147)
00:01:37 × neurocyte0132889 quits (~neurocyte@46.243.81.22) (Changing host)
00:01:37 neurocyte0132889 joins (~neurocyte@user/neurocyte)
00:01:43 × tritlo quits (sid58727@id-58727.hampstead.irccloud.com) (Changing host)
00:01:43 tritlo joins (sid58727@user/tritlo)
00:01:53 pieguy128 joins (~pieguy128@bas1-quebec14-67-70-102-17.dsl.bell.ca)
00:01:53 onion is now known as yin
00:02:12 nurupo joins (~nurupo.ga@user/nurupo)
00:02:18 jneira[m] joins (~jneiramat@2001:470:69fc:105::d729)
00:02:20 sander joins (~sander@user/sander)
00:02:30 Taneb joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0)
00:02:35 haasn joins (~nand@haasn.dev)
00:02:41 kristjansson_ joins (sid126207@tinside.irccloud.com)
00:02:43 nonzen joins (~nonzen@user/nonzen)
00:02:47 martin02 joins (~silas@2001:4ca0:0:fe00:0:5efe:a96:1bc1)
00:03:00 OscarH joins (~OscarH@90.201.86.195)
00:03:03 Teacup joins (~teacup@user/teacup)
00:03:09 urdh joins (~urdh@user/urdh)
00:03:11 terrorjack joins (~terrorjac@static.3.200.12.49.clients.your-server.de)
00:03:31 thaumavorio joins (~thaumavor@thaumavor.io)
00:05:11 lstor joins (~lstor@user/lstor)
00:05:11 mcglk joins (~mcglk@131.191.49.120)
00:05:11 xerox joins (~edi@user/edi)
00:05:11 kevin[m]1 joins (~pnotequal@2001:470:69fc:105::a54)
00:05:28 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
00:07:30 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
00:08:20 xsperry joins (~xs@user/xsperry)
00:08:22 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
00:10:01 × fendor quits (~fendor@178.115.69.81.wireless.dyn.drei.com) (Remote host closed the connection)
00:18:33 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
00:19:28 guniberas joins (~guniberas@42.191.188.121)
00:20:00 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
00:21:30 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
00:22:05 trillp joins (~trillp@69.233.98.238)
00:29:31 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
00:31:23 Square joins (~a@178.62.91.8)
00:33:30 dustee joins (~dustee@63.81.59.158)
00:35:16 dajoer joins (~david@user/gvx)
00:37:42 × n3t quits (n3t@s45.mydevil.net) (Changing host)
00:37:42 n3t joins (n3t@user/n3t)
00:42:07 × Null_A quits (~null_a@2601:645:8700:2290:19ff:7d99:67c6:79e3) (Remote host closed the connection)
00:42:13 dustee parts (~dustee@63.81.59.158) ()
00:42:42 Null_A joins (~null_a@2601:645:8700:2290:19ff:7d99:67c6:79e3)
00:47:11 × Null_A quits (~null_a@2601:645:8700:2290:19ff:7d99:67c6:79e3) (Ping timeout: 264 seconds)
00:49:11 × alx741 quits (~alx741@181.196.69.253) (Quit: alx741)
00:49:58 iqubic joins (~user@2601:602:9502:c70:367a:1ecd:9a9a:53e8)
00:52:00 × Farzad quits (~FarzadBek@37.49.150.10) (Ping timeout: 260 seconds)
00:52:11 <iqubic> I wish there was a unified API for Sets and Maps. I want a way to write a single mapping function that could take a Set and modify the values or it could take a Map and modify the keys.
00:53:17 × lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
00:53:42 <iqubic> This is slightly different from fmap. Because while fmap will modify the values in a Set, it will also modify the values in a Map and not touch the Keys.
01:01:30 <dsal> Sets are Foldable.
01:01:34 <aegon> iqubic: changing the key of a value on a map is afaik not normally a Map thing
01:01:56 <aegon> maps store static keys -> possibly mutable values
01:02:11 × proboscis quits (~proboscis@115-189-83-58.mobile.spark.co.nz) (Ping timeout: 264 seconds)
01:02:51 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 268 seconds)
01:02:56 <iqubic> aegon, that makes a lot of sense.
01:03:06 <dsal> > foldMap (S.singleton . (*2)) $ S.fromList [1, 2, 2]
01:03:07 <lambdabot> fromList [2,4]
01:03:52 <iqubic> dsal: I'm afraid I don't understand what that code is doing?
01:04:09 <iqubic> Is that modifying the Keys in the map?
01:04:17 <dsal> That's a Set, not a map.
01:04:35 <dsal> It's doing basically the same thing as `fmap (*2) [1, 2, 2]` but with a Set instead of a list.
01:04:38 <dsal> :t foldMap
01:04:39 <lambdabot> (Foldable t, Monoid m) => (a -> m) -> t a -> m
01:04:48 × artemis quits (~artemis@user/artemis) (Ping timeout: 260 seconds)
01:04:49 <iqubic> Right. Is it possible to modify the Keys of a Map?
01:05:04 <aegon> i think to change the keys you'd have to remove the old and andd a new in a transaction so probably put it in an MVar or you could create a whole new map every time
01:05:24 <aegon> it sounds like if you want to perform operations on the keys your looking for something aside from a Map though
01:05:26 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
01:05:36 <iqubic> Yeah. I agree.
01:05:59 <dsal> Well, if I'm really sloppy with what you're saying then there's `mapWithKey` but doing just the keys in isolation doesn't make any sense at all. There's not enough information.
01:06:02 proboscis joins (~proboscis@115-189-133-238.mobile.spark.co.nz)
01:06:29 <iqubic> I've gotten the interface I want. It's fine now.
01:07:37 artemis joins (~artemis@user/artemis)
01:09:36 <dsal> Actually, other way around...
01:09:38 <dsal> > M.mapKeysWith (const ) (*2) $ M.fromList [(1, "a"), (2, "b"), (3, "c")]
01:09:39 <lambdabot> fromList [(2,"a"),(4,"b"),(6,"c")]
01:09:53 <dsal> > M.mapKeysWith const odd $ M.fromList [(1, "a"), (2, "b"), (3, "c")]
01:09:54 <lambdabot> fromList [(False,"b"),(True,"c")]
01:10:15 <dsal> This one at least lets you decide what to do on collision.
01:10:38 <dsal> > M.mapKeys odd $ M.fromList [(1, "a"), (2, "b"), (3, "c")]
01:10:39 <lambdabot> fromList [(False,"b"),(True,"c")]
01:10:43 <dsal> Otherwise, it'll choose for you.
01:10:49 <dsal> > M.mapKeys show $ M.fromList [(1, "a"), (2, "b"), (3, "c")]
01:10:50 <lambdabot> fromList [("1","a"),("2","b"),("3","c")]
01:12:09 <aegon> dsal: i guess this digs into how Data.Map is optimized, but wouldnt that seriously jumble cache coherency on using the map? in an OO langauge that would be recreating the map but i'm not sure if thats as much of a concern in Data.Map land
01:12:11 × proboscis quits (~proboscis@115-189-133-238.mobile.spark.co.nz) (Ping timeout: 245 seconds)
01:12:48 <dsal> I'd assume rekeying a map is not going to be a cheap process in general.
01:14:10 <iqubic> I'm no longer wanting to rekey a map. I've rethought my API here and I've realized that just using a different data structure makes more sense in general.
01:14:58 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 268 seconds)
01:15:14 proboscis joins (~proboscis@115-189-129-63.mobile.spark.co.nz)
01:15:21 × _xor quits (~xor@72.49.199.147) (Quit: WeeChat 3.3)
01:15:32 _xor joins (~xor@72.49.199.147)
01:16:23 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
01:19:32 × mmhat quits (~mmh@55d4be4b.access.ecotel.net) (Quit: WeeChat 3.3)
01:19:35 × proboscis quits (~proboscis@115-189-129-63.mobile.spark.co.nz) (Ping timeout: 264 seconds)
01:20:39 proboscis joins (~proboscis@115-189-134-103.mobile.spark.co.nz)
01:22:54 betelgeuse joins (~betelgeus@94-225-47-8.access.telenet.be)
01:23:47 × yrlnry quits (~mjd@pool-74-109-22-90.phlapa.fios.verizon.net) (Ping timeout: 264 seconds)
01:24:03 vicfred joins (~vicfred@user/vicfred)
01:24:13 × brettgilio quits (~brettgili@x-node.gq) (Quit: Leaving...)
01:27:25 brettgilio joins (~brettgili@x-node.gq)
01:31:19 × trillp quits (~trillp@69.233.98.238) (Quit: nyaa~)
01:33:01 × proboscis quits (~proboscis@115-189-134-103.mobile.spark.co.nz) (Ping timeout: 245 seconds)
01:33:40 ceedon joins (~ceedon@172-11-250-42.lightspeed.tukrga.sbcglobal.net)
01:33:54 proboscis joins (~proboscis@115-189-134-232.mobile.spark.co.nz)
01:35:59 yin is now known as onion
01:37:41 × ceedon quits (~ceedon@172-11-250-42.lightspeed.tukrga.sbcglobal.net) (Remote host closed the connection)
01:39:37 ceedon joins (~ceedon@172-11-250-42.lightspeed.tukrga.sbcglobal.net)
01:43:59 × xff0x quits (~xff0x@2001:1a81:529e:f300:d3c7:e134:91d9:4541) (Ping timeout: 260 seconds)
01:44:02 onion is now known as yin
01:44:16 × ceedon quits (~ceedon@172-11-250-42.lightspeed.tukrga.sbcglobal.net) (Ping timeout: 245 seconds)
01:45:39 xff0x joins (~xff0x@2001:1a81:52e0:c000:6019:bb95:26f0:c29b)
01:47:46 yin is now known as onion
01:49:05 onion is now known as oion
01:49:17 oion is now known as onion
01:50:47 × proboscis quits (~proboscis@115-189-134-232.mobile.spark.co.nz) (Ping timeout: 264 seconds)
01:52:05 proboscis joins (~proboscis@115-189-86-19.mobile.spark.co.nz)
02:04:53 onion is now known as yin
02:06:05 × proboscis quits (~proboscis@115-189-86-19.mobile.spark.co.nz) (Ping timeout: 264 seconds)
02:06:43 proboscis joins (~proboscis@115-189-85-1.mobile.spark.co.nz)
02:06:43 × myShoggoth quits (~myShoggot@97-120-85-195.ptld.qwest.net) (Quit: Leaving)
02:06:51 yin is now known as zzz
02:15:20 <lechner> Hi, can Database.PostgreSQL.Simple connect custom database types like pg-semver with the Haskell semver type, or should I go via text() in the query? Thanks!
02:15:32 × Feuermagier quits (~Feuermagi@user/feuermagier) (Quit: Leaving)
02:15:43 Feuermagier joins (~Feuermagi@user/feuermagier)
02:17:14 × proboscis quits (~proboscis@115-189-85-1.mobile.spark.co.nz) (Ping timeout: 246 seconds)
02:17:45 proboscis joins (~proboscis@115-189-81-242.mobile.spark.co.nz)
02:28:26 × proboscis quits (~proboscis@115-189-81-242.mobile.spark.co.nz) (Ping timeout: 246 seconds)
02:29:12 proboscis joins (~proboscis@115-189-86-194.mobile.spark.co.nz)
02:29:29 × artemis quits (~artemis@user/artemis) (Ping timeout: 264 seconds)
02:30:15 artemis joins (~artemis@user/artemis)
02:36:15 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
02:36:59 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
02:37:36 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 245 seconds)
02:38:43 tungki joins (~tungki@subs31-116-206-15-39.three.co.id)
02:39:44 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:45:56 × proboscis quits (~proboscis@115-189-86-194.mobile.spark.co.nz) (Ping timeout: 245 seconds)
02:46:46 proboscis joins (~proboscis@115-189-81-196.mobile.spark.co.nz)
02:48:05 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 260 seconds)
02:48:25 <iqubic> What does the Foldable instance for Data.Map do? Would the toList function get a list of keys, or a list of values?
02:52:16 Sgeo joins (~Sgeo@user/sgeo)
02:53:04 × td_ quits (~td@muedsl-82-207-238-132.citykom.de) (Ping timeout: 260 seconds)
02:54:23 × xff0x quits (~xff0x@2001:1a81:52e0:c000:6019:bb95:26f0:c29b) (Ping timeout: 264 seconds)
02:54:40 td_ joins (~td@muedsl-82-207-238-253.citykom.de)
02:56:00 xff0x joins (~xff0x@2001:1a81:52f0:9300:e3ac:46aa:98d2:36ad)
02:56:15 × yushyin quits (0Ujx9gMz8O@karif.server-speed.net) (Quit: WeeChat 3.3)
02:56:27 yushyin joins (vmwyqzEgOc@karif.server-speed.net)
02:56:51 <c_wraith> iqubic: looking at the type should answer that
02:57:02 <iqubic> Yeah. I've figure it out now.
02:57:24 lavaman joins (~lavaman@98.38.249.169)
02:58:35 × proboscis quits (~proboscis@115-189-81-196.mobile.spark.co.nz) (Ping timeout: 265 seconds)
02:59:13 proboscis joins (~proboscis@115-189-82-114.mobile.spark.co.nz)
02:59:51 × fef quits (~thedawn@user/thedawn) (Quit: Leaving)
03:06:06 × proboscis quits (~proboscis@115-189-82-114.mobile.spark.co.nz) (Read error: Connection reset by peer)
03:06:23 proboscis joins (~proboscis@115-189-129-117.mobile.spark.co.nz)
03:15:50 × waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 268 seconds)
03:16:09 × ishutin quits (~ishutin@92-249-141-159.pool.digikabel.hu) (Read error: Connection reset by peer)
03:16:32 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
03:16:53 × td_ quits (~td@muedsl-82-207-238-253.citykom.de) (Ping timeout: 264 seconds)
03:18:09 td_ joins (~td@muedsl-82-207-238-113.citykom.de)
03:18:32 ishutin joins (~ishutin@62-165-208-189.pool.digikabel.hu)
03:20:14 × betelgeuse quits (~betelgeus@94-225-47-8.access.telenet.be) (Ping timeout: 246 seconds)
03:23:13 <dsal> lechner: not sure about the specific types you're referring to, but it can do some quite flexible things
03:26:11 <sm> anybody running haskell on macos monterey ? any problems ?
03:26:49 <ski> % :t Data.Map.toList @(Data.Map.Map Int String)
03:26:49 <yahb> ski: Map (Map Int String) a -> [(Map Int String, a)]
03:27:36 <ski> % :t Data.Foldable.toList @(Data.Map.Map Int)
03:27:36 <yahb> ski: Map Int a -> [a]
03:41:19 <lechner> dsal: thanks!
03:43:05 <dsal> lechner: just got to a computer and looked. Yeah, basically you'd just need one of these: https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/Database-PostgreSQL-Simple-FromField.html#t:FromField (and the other direction)
03:44:10 <dsal> Towards the DB is pretty easy because you just need to get a ByteString or something. From the DB, you'll get a lot of metadata and a bytestring
03:45:56 <lechner> dsal: that looks great!
03:48:22 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 265 seconds)
03:50:05 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
04:02:19 × burakcank quits (burakcank@has.arrived.and.is.ready-to.party) (Ping timeout: 252 seconds)
04:07:29 × tungki quits (~tungki@subs31-116-206-15-39.three.co.id) (Remote host closed the connection)
04:08:03 tungki joins (~tungki@subs20-114-142-172-14.three.co.id)
04:09:38 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:09:38 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
04:09:38 wroathe joins (~wroathe@user/wroathe)
04:11:43 × hendursaga quits (~weechat@user/hendursaga) (Remote host closed the connection)
04:14:05 hendursaga joins (~weechat@user/hendursaga)
04:16:15 × LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (Ping timeout: 276 seconds)
04:16:29 zebrag joins (~chris@user/zebrag)
04:16:53 LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao)
04:31:43 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
04:31:52 zzz is now known as yin
04:35:07 yin parts (~z@user/zero) ()
04:35:50 × hueso quits (~root@user/hueso) (Quit: No Ping reply in 180 seconds.)
04:36:23 × Skyfire quits (~pyon@user/pyon) (Quit: WeeChat 3.3)
04:37:00 hueso joins (~root@user/hueso)
04:52:59 mikoto-chan joins (~mikoto-ch@185.237.102.119)
04:55:13 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
05:05:53 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:10:26 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
05:40:10 × faultline quits (~christian@193.27.14.21) (Ping timeout: 260 seconds)
05:57:48 Farzad joins (~FarzadBek@109.203.185.154)
05:57:51 × Farzad quits (~FarzadBek@109.203.185.154) (Client Quit)
06:00:49 × awth13 quits (~awth13@user/awth13) (Remote host closed the connection)
06:03:49 × tungki quits (~tungki@subs20-114-142-172-14.three.co.id) (Ping timeout: 256 seconds)
06:11:24 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
06:13:33 × mikoto-chan quits (~mikoto-ch@185.237.102.119) (Read error: Connection reset by peer)
06:19:15 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
06:19:56 wootehfoot joins (~wootehfoo@user/wootehfoot)
06:20:02 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
06:20:51 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
06:22:54 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
06:24:58 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 265 seconds)
06:32:35 cheater1__ joins (~Username@user/cheater)
06:32:46 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
06:32:49 cheater1__ is now known as cheater
06:34:13 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
06:44:08 Hero joins (~E-Kolay@212.108.153.129)
06:44:11 Hero parts (~E-Kolay@212.108.153.129) ()
06:47:01 zangi joins (~zangi@103.154.230.133)
06:47:38 <zangi> hey, do you need to re-run `hoogle generate` after you run `cabal update`?
06:49:13 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
06:50:51 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:50:51 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
06:50:52 wroathe joins (~wroathe@user/wroathe)
06:55:20 tungki joins (~tungki@subs31-116-206-15-21.three.co.id)
06:55:32 <c_wraith> you should need to. cabal update only updates the index file, not any installed packages
06:55:35 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 264 seconds)
06:55:36 <c_wraith> *shouldn't
06:59:16 × guniberas quits (~guniberas@42.191.188.121) (Ping timeout: 245 seconds)
07:00:02 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
07:00:45 stiell joins (~stiell@gateway/tor-sasl/stiell)
07:02:00 chomwitt joins (~chomwitt@2a02:587:dc12:b600:12c3:7bff:fe6d:d374)
07:02:34 × tungki quits (~tungki@subs31-116-206-15-21.three.co.id) (Remote host closed the connection)
07:03:11 × aegon quits (~mike@174.127.249.180) (Remote host closed the connection)
07:12:16 lavaman joins (~lavaman@98.38.249.169)
07:16:46 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
07:18:23 Farzad joins (~FarzadBek@178.131.28.251)
07:23:55 zincy_ joins (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e)
07:24:39 zincy__ joins (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2)
07:26:09 gehmehgeh joins (~user@user/gehmehgeh)
07:28:01 × zincy_ quits (~zincy@2a00:23c8:970c:4801:45df:961b:bdc0:266e) (Ping timeout: 245 seconds)
07:41:46 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 245 seconds)
07:43:42 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
07:49:07 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) (Remote host closed the connection)
07:54:23 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 264 seconds)
07:55:13 × zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection)
07:56:04 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
08:03:19 × zincy__ quits (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2) (Remote host closed the connection)
08:05:51 hendursa1 joins (~weechat@user/hendursaga)
08:05:54 acidjnk_new joins (~acidjnk@p200300d0c7238d89cc95ba723fa3afc9.dip0.t-ipconnect.de)
08:08:05 mc47 joins (~mc47@xmonad/TheMC47)
08:08:57 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds)
08:16:30 × zangi quits (~zangi@103.154.230.133) (Quit: zangi)
08:19:30 AlexNoo joins (~AlexNoo@178.34.163.209)
08:20:35 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:26:12 Inst__ joins (~Inst@2601:6c4:4080:3f80:9dd3:1e99:a750:2941)
08:27:43 Inst__ is now known as Inst
08:31:47 ikke joins (~kevin@alpine/developer/ikke)
08:32:25 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Quit: mikoto-chan)
08:43:48 lavaman joins (~lavaman@98.38.249.169)
08:48:26 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
08:49:02 × NinjaTrappeur quits (~ninja@user/ninjatrappeur) (Quit: WeeChat 3.3)
08:49:30 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894)
08:49:49 NinjaTrappeur joins (~ninja@user/ninjatrappeur)
08:53:02 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:54:23 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) (Ping timeout: 264 seconds)
08:55:34 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
08:59:04 Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
08:59:04 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
08:59:22 gentauro joins (~gentauro@user/gentauro)
09:03:10 × hendursa1 quits (~weechat@user/hendursaga) (Remote host closed the connection)
09:04:31 jakalx parts (~jakalx@base.jakalx.net) ()
09:04:50 hendursa1 joins (~weechat@user/hendursaga)
09:10:25 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
09:10:58 ChaiTRex joins (~ChaiTRex@user/chaitrex)
09:17:23 zaquest joins (~notzaques@5.128.210.178)
09:23:15 jakalx joins (~jakalx@base.jakalx.net)
09:24:34 ksu joins (~ksu@user/prtr)
09:24:59 × Inst quits (~Inst@2601:6c4:4080:3f80:9dd3:1e99:a750:2941) (Ping timeout: 264 seconds)
09:32:28 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
09:41:31 <unit73e> Sometimes I wonder why tutorials like to teach the wrong way just because it's simpler. I was continuing the SDL2 examples and noticed most examples use surfaces instead of textures but virtually all devices nowadays have a GPU. No point in using software rendering.
09:41:44 <unit73e> That just confuses beginners imo
09:41:53 themc47 joins (~mc47@xmonad/TheMC47)
09:43:29 <unit73e> might be a bit easier to code but in the real world all games use hardware acceleration
09:44:41 × mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 245 seconds)
09:50:07 × themc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
09:53:06 × NinjaTrappeur quits (~ninja@user/ninjatrappeur) (Quit: WeeChat 3.3)
09:53:53 NinjaTrappeur joins (~ninja@user/ninjatrappeur)
10:05:47 × jlamothe quits (~jlamothe@198.251.61.229) (Ping timeout: 264 seconds)
10:13:05 fendor joins (~fendor@178.115.69.81.wireless.dyn.drei.com)
10:17:31 trainlag1602 joins (~saroa@user/trainlag1602)
10:23:27 × LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection)
10:25:34 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
10:26:21 LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao)
10:28:18 wootehfoot joins (~wootehfoo@user/wootehfoot)
10:33:29 <juri_> hey, is there a `mustNotBe` to be the inverse of `shouldBe` in hunit?
10:35:27 zer0bitz joins (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi)
10:36:14 <juri_> oh, sorry, hspec, not hunit.
10:38:46 viluon joins (uid453725@id-453725.helmsley.irccloud.com)
10:38:56 × xff0x quits (~xff0x@2001:1a81:52f0:9300:e3ac:46aa:98d2:36ad) (Remote host closed the connection)
10:39:13 xff0x joins (~xff0x@2001:1a81:52f0:9300:56a6:e6bc:62c4:b7e4)
10:39:35 <juri_> oh, there is. thanks for nothing! :D
10:39:47 <manicennui> https://hackage.haskell.org/package/hspec-expectations-0.8.2/docs/Test-Hspec-Expectations.html
10:39:50 <manicennui> Yeah, just found it.
10:40:17 <juri_> hard to search for. should have just drilled into hackage instead. *shrugs*
10:40:21 <juri_> thanks. :)
10:44:37 lavaman joins (~lavaman@98.38.249.169)
10:45:19 guniberas joins (~guniberas@42.191.188.121)
10:49:35 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 264 seconds)
10:49:48 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
10:51:34 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894)
10:52:20 mmhat joins (~mmh@55d4bc38.access.ecotel.net)
10:53:49 × acidjnk_new quits (~acidjnk@p200300d0c7238d89cc95ba723fa3afc9.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
10:54:57 <maerwald> c_wraith: do you have an account on gitlab.haskell.org?
10:55:53 × xff0x quits (~xff0x@2001:1a81:52f0:9300:56a6:e6bc:62c4:b7e4) (Ping timeout: 264 seconds)
10:55:56 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) (Ping timeout: 245 seconds)
10:56:23 xff0x joins (~xff0x@2001:1a81:52f0:9300:48ef:5b4a:4ac:bf95)
11:07:16 burakcank joins (~burakcank@has.arrived.and.is.ready-to.party)
11:08:27 aga joins (~a@p200300ef973db19d4086f0a6a24fc4dd.dip0.t-ipconnect.de)
11:09:20 <aga> Can I specify the name of the log file when I do $ stack build --profile -- myexe ... ?
11:10:33 <aga> I tried to use the GHC flag -ohi but that doesn't work.
11:12:42 <aga> *exec not build
11:17:33 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
11:17:49 zer0bitz_ joins (~zer0bitz@2a0b:dbc1:2:81c1:dd79:459d:8214:30ba)
11:17:59 ChaiTRex joins (~ChaiTRex@user/chaitrex)
11:18:25 Midjak joins (~Midjak@82-65-111-221.subs.proxad.net)
11:20:45 × zer0bitz quits (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi) (Ping timeout: 268 seconds)
11:22:00 zer0bitz joins (~zer0bitz@2a0b:dbc1:2:81c1:55ef:5d0:c1e8:90b)
11:24:59 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
11:25:17 × zer0bitz_ quits (~zer0bitz@2a0b:dbc1:2:81c1:dd79:459d:8214:30ba) (Ping timeout: 264 seconds)
11:39:02 zer0bitz_ joins (~zer0bitz@2a0b:dbc1:2:81c1:30bc:a359:39b5:99ae)
11:41:43 × zer0bitz quits (~zer0bitz@2a0b:dbc1:2:81c1:55ef:5d0:c1e8:90b) (Ping timeout: 268 seconds)
11:42:20 mc47 joins (~mc47@xmonad/TheMC47)
11:43:03 × NinjaTrappeur quits (~ninja@user/ninjatrappeur) (Quit: WeeChat 3.3)
11:43:52 NinjaTrappeur joins (~ninja@user/ninjatrappeur)
11:45:23 zer0bitz joins (~zer0bitz@2a0b:dbc1:2:81c1:d418:453f:8e01:9edf)
11:48:05 × zer0bitz_ quits (~zer0bitz@2a0b:dbc1:2:81c1:30bc:a359:39b5:99ae) (Ping timeout: 246 seconds)
11:48:06 chisui joins (~chisui@95.33.35.0)
11:49:36 × NinjaTrappeur quits (~ninja@user/ninjatrappeur) (Quit: WeeChat 3.3)
11:50:22 NinjaTrappeur joins (~ninja@user/ninjatrappeur)
11:54:49 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:57:57 × NinjaTrappeur quits (~ninja@user/ninjatrappeur) (Quit: WeeChat 3.3)
11:58:44 NinjaTrappeur joins (~ninja@user/ninjatrappeur)
12:00:47 × NinjaTrappeur quits (~ninja@user/ninjatrappeur) (Client Quit)
12:01:33 NinjaTrappeur joins (~ninja@user/ninjatrappeur)
12:03:18 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 268 seconds)
12:03:44 Lycurgus joins (~juan@98.4.112.204)
12:08:45 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.3)
12:10:24 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:11:08 × zer0bitz quits (~zer0bitz@2a0b:dbc1:2:81c1:d418:453f:8e01:9edf) (Read error: Connection reset by peer)
12:20:54 × chisui quits (~chisui@95.33.35.0) (Quit: Client closed)
12:27:18 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
12:28:44 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
12:32:18 × proboscis quits (~proboscis@115-189-129-117.mobile.spark.co.nz) (Ping timeout: 265 seconds)
12:37:37 proboscis joins (~proboscis@115-189-81-94.mobile.spark.co.nz)
12:38:57 × Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt)
12:39:19 __monty__ joins (~toonn@user/toonn)
12:43:27 benin joins (~benin@183.82.30.38)
12:45:31 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 245 seconds)
12:52:54 wootehfoot joins (~wootehfoo@user/wootehfoot)
12:53:08 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894)
12:53:54 × Raito_Bezarius quits (~Raito@2a01:e0a:5f9:9681:a0a0:bb76:611f:9da7) (Changing host)
12:53:54 Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius)
12:57:12 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
12:57:36 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) (Ping timeout: 245 seconds)
12:59:05 lavaman joins (~lavaman@98.38.249.169)
12:59:24 zincy_ joins (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2)
12:59:28 betelgeuse joins (~betelgeus@94-225-47-8.access.telenet.be)
12:59:46 max22- joins (~maxime@2a01cb0883359800f7ab1f6aa3293843.ipv6.abo.wanadoo.fr)
13:01:54 dariof4 joins (~dariof4@134.0.0.51)
13:02:23 × Alex_test quits (~al_test@178.34.163.209) (Quit: ;-)
13:02:28 × AlexZenon quits (~alzenon@178.34.163.209) (Quit: ;-)
13:03:01 × AlexNoo quits (~AlexNoo@178.34.163.209) (Quit: Leaving)
13:03:41 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 264 seconds)
13:04:05 × asm quits (~alexander@burner.asm89.io) (Changing host)
13:04:05 asm joins (~alexander@user/asm)
13:05:35 kn07_ joins (~kn07_@86.121.23.168)
13:06:02 × kn07_ quits (~kn07_@86.121.23.168) (Remote host closed the connection)
13:07:21 trainlag1602 parts (~saroa@user/trainlag1602) ()
13:17:43 AlexZenon joins (~alzenon@178.34.163.209)
13:18:22 jespada joins (~jespada@181.28.253.200)
13:18:31 × jespada quits (~jespada@181.28.253.200) (Client Quit)
13:18:54 Alex_test joins (~al_test@178.34.163.209)
13:20:57 AlexNoo joins (~AlexNoo@178.34.163.209)
13:26:06 machinedgod joins (~machinedg@24.105.81.50)
13:31:53 × max22- quits (~maxime@2a01cb0883359800f7ab1f6aa3293843.ipv6.abo.wanadoo.fr) (Ping timeout: 264 seconds)
13:32:27 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
13:44:02 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
13:44:40 × nehsou^ quits (~nehsou@wsip-98-188-242-6.mc.at.cox.net) (Remote host closed the connection)
13:46:05 geekosaur joins (~geekosaur@xmonad/geekosaur)
13:47:23 jlamothe joins (~jlamothe@198.251.61.229)
14:00:02 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
14:00:22 zer0bitz joins (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi)
14:07:19 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
14:11:55 Lycurgus joins (~juan@98.4.112.204)
14:14:37 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2) (Remote host closed the connection)
14:14:58 zincy_ joins (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2)
14:17:00 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2) (Remote host closed the connection)
14:30:46 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
14:30:52 dsrt^ joins (~dsrt@wsip-98-188-242-6.mc.at.cox.net)
14:35:41 Hanicef joins (~gustaf@81-229-9-108-no92.tbcn.telia.com)
14:39:25 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 265 seconds)
14:41:10 waleee joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
14:45:55 boxscape_ joins (~boxscape_@i577BCB53.versanet.de)
14:47:29 zincy_ joins (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2)
14:50:51 floridmarshmallo joins (~quickspin@pool-100-19-29-41.phlapa.fios.verizon.net)
14:50:59 burnsidesLlama joins (~burnsides@client-8-89.eduroam.oxuni.org.uk)
14:51:17 × burnsidesLlama quits (~burnsides@client-8-89.eduroam.oxuni.org.uk) (Read error: Connection reset by peer)
14:51:29 burnsidesLlama joins (~burnsides@dhcp168-017.wadham.ox.ac.uk)
14:52:18 × floridmarshmallo quits (~quickspin@pool-100-19-29-41.phlapa.fios.verizon.net) (Client Quit)
14:52:29 <zincy_> Any ideas how to model mealy machines?
14:54:33 <Ollie[m]> zincy_ https://hackage.haskell.org/package/machines-0.7.2/docs/Data-Machine-Mealy.html is one option
14:54:38 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894)
14:54:57 f-a parts (f2a@f2a.jujube.ircnow.org) ()
14:54:59 <zincy_> Is there a way of doing similar with say Streamly?
14:55:05 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
14:55:30 <zincy_> So this is one way of encoding machines as "streams" right?
14:55:47 zer0bitz_ joins (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi)
14:57:28 × waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
14:58:35 × zer0bitz quits (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi) (Ping timeout: 264 seconds)
14:58:51 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) (Ping timeout: 245 seconds)
14:59:02 son0p joins (~ff@181.136.122.143)
14:59:37 <davean> I'm not sure how streamly could do it
14:59:57 <davean> Well I mean in a sesne theres a larger embeding it could do
15:00:06 <davean> what does moeling a mealy machine mean to you?
15:00:20 <zincy_> Here is the problem, I am lost in this design space :D
15:00:29 <davean> I'm pretty sure streamly can't perform operations on a mealy machine - just execute it
15:00:41 <zincy_> Maybe the best thing to do it give Machines a shot and learn the hard way ? :D
15:00:47 <davean> er, to clarrify - operations on the mealy machine as a mathematical object
15:01:15 <zincy_> I am still learning what a Mealy machine is tbh
15:01:30 <zincy_> By modelling I was referring to Haskell code
15:01:47 <zincy_> I.e custom monad vs Machines
15:03:20 <davean> if you have machines questions I can answer them
15:04:06 <zincy_> oh great where do I start :D
15:04:44 <davean> basicly theres two parts - PlanT which is the monad constructor, and MachineT which is the actual engine
15:05:06 <davean> you write your thing as the PlanT monad typically and "compile" it to a machine
15:05:48 <zincy_> Is the Fail data constructor for signifying the machine cannot process the action?
15:06:02 <zincy_> If I have two machines linked
15:06:10 <davean> The thing thats notably abotu machines vs. other iterative streaming libraries is that theres an actual general operation used to step the next result
15:06:36 <zincy_> one produces eithers and the other reads eithers, can the second one use awaits with the unwrapped Right value?
15:06:47 <davean> No
15:06:51 <davean> thats the MonadFail fail
15:07:05 <davean> so maybe?
15:07:18 <zincy_> So when is fail used?
15:07:34 <davean> fail is used to handle the match failure on <- in do notation
15:07:47 <zincy_> Oh so I shouldnt concern myself with it
15:07:50 <zincy_> When writing a plan
15:08:14 <zincy_> The first machine would Just yield Either a b and the other machine would await Either a b
15:09:06 zer0bitz joins (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi)
15:09:13 <davean> MonadFail is how that works in Haskell
15:09:35 <davean> yep thats pretty simple
15:09:36 neurocyte0132889 joins (~neurocyte@185.117.69.128)
15:09:36 × neurocyte0132889 quits (~neurocyte@185.117.69.128) (Changing host)
15:09:36 neurocyte0132889 joins (~neurocyte@user/neurocyte)
15:09:42 <davean> so the thing I was talking about
15:09:52 <davean> awaits :: k i -> Plan k o i
15:09:57 <davean> see how it has a k i?
15:10:01 <davean> you get an actual selector
15:10:09 <davean> you probably want await :: Category k => Plan (k i) o i
15:10:12 <zincy_> So is k i my "query"
15:10:16 <davean> (for what you're talking about there)
15:10:28 <davean> yes, k i is your query saying "under semantic k, give me an i"
15:10:50 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
15:11:11 <davean> but you don't have to do this streaming thing to use mealy machines
15:11:23 <davean> AutomatonM means there is a lifting into machines
15:11:27 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Remote host closed the connection)
15:11:29 <davean> but MealyT m a b exists on its own
15:11:43 Skyfire joins (~pyon@user/pyon)
15:11:47 × zer0bitz_ quits (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi) (Ping timeout: 252 seconds)
15:12:01 <davean> (you'll probably WANT the streaming stuff mind you, but you don't NEED it)
15:12:31 <davean> So to start with we have its a category
15:12:34 <davean> so we get (.) :: forall (b :: k) (c :: k) (a :: k). MealyT m b c -> MealyT m a b -> MealyT m a c
15:13:17 <davean> given a machine reading 'a's, and producing 'b's and a machine reading 'b's and producing 'c's we can compose them into a machine reading 'a's and producing 'c's
15:13:35 <davean> Its also Arrow, so we can lift functions arr :: (b -> c) -> MealyT m b c
15:13:52 kritzefitz joins (~kritzefit@debian/kritzefitz)
15:14:04 <davean> Making sense?
15:14:22 <zincy_> great, the last bit makes sense about composing Mealy machines
15:14:36 <zincy_> Still confused about the k i
15:14:50 <davean> ok, so normally you'd have "Is a"
15:14:51 <zincy_> Is k typically a monadic type to express whether we want to process the input
15:15:00 <davean> no, k isn't monadic
15:15:04 <davean> k is usually Is
15:15:35 <davean> so all the streaming libraries you've used fit their semantics ~ into Is (pushback being a case where that isn't true)
15:15:50 <davean> awaits (Is a) says "give me an a"
15:16:41 <zincy_> So (Is a) is essentially a way of matching on a type that wraps the input?
15:16:59 <davean> It doesn't wrap it, it says it wants it here, let me give a demo
15:17:08 <zincy_> ok
15:17:44 × xff0x quits (~xff0x@2001:1a81:52f0:9300:48ef:5b4a:4ac:bf95) (Ping timeout: 246 seconds)
15:17:45 <davean> awaits (Refl::Is (Either a b))
15:17:54 <davean> there k is (Is (Either a b))
15:18:01 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Remote host closed the connection)
15:18:10 kritzefitz joins (~kritzefit@debian/kritzefitz)
15:18:13 <davean> which forces the i, in k i to be (Either a b)
15:18:27 <davean> (because Is is a GADT with a constraint)
15:18:31 <zincy_> So its like proxy
15:18:34 xff0x joins (~xff0x@2001:1a81:52f0:9300:c38e:4fda:aa4c:3e21)
15:18:34 <davean> Yes
15:18:37 Inst joins (~Inst@2601:6c4:4080:3f80:6122:580e:b697:71e1)
15:18:37 <davean> very much so
15:18:38 <zincy_> Ah cool
15:18:42 <davean> so
15:18:45 <davean> why do we have k at all?
15:18:47 <zincy_> How can it form a category
15:18:49 <davean> Well we can do a LOT MORe
15:19:04 <zincy_> Ooh what more
15:19:04 <davean> we can for example do a stack machine
15:19:09 <davean> https://hackage.haskell.org/package/machines-0.7.2/docs/Data-Machine-Stack.html
15:19:21 <davean> we can "Pop Either a b"
15:19:27 <davean> or we can Push Right 5
15:19:28 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Remote host closed the connection)
15:19:34 kritzefitz joins (~kritzefit@debian/kritzefitz)
15:19:40 <davean> For example
15:19:48 <davean> this is usually custom coded into other libraries
15:19:55 <davean> or
15:20:28 <davean> I have a system that abstracts over files on disk, or data in memory using machines that has two operations "Read" and "Seek" seek returns () but moves our pointer in the file
15:20:47 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds)
15:21:01 <davean> I also have a combinator "Timeout" that allows us to say how long we'll wait for a response before we want to return without data
15:21:02 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Remote host closed the connection)
15:21:05 × aga quits (~a@p200300ef973db19d4086f0a6a24fc4dd.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
15:21:08 kspalaiologos joins (~kspalaiol@user/kspalaiologos)
15:21:09 kritzefitz joins (~kritzefit@debian/kritzefitz)
15:21:20 <davean> So how is it a category? Uh, in the most boring way possible.
15:21:30 <davean> Its not an exciting category
15:22:04 <zincy_> Im finding it hard to see how the (Is a) comes into the examples you gave
15:22:13 <davean> It doesn't
15:22:21 <davean> Is is the equivilent of my Read in the seeking one
15:22:22 <zincy_> oh ok
15:22:31 <davean> Is is the basic fixed query
15:22:45 <davean> you can replace it with more exicting query types
15:22:55 aga joins (~a@p200300ef973db1e74086f0a6a24fc4dd.dip0.t-ipconnect.de)
15:22:57 <zincy_> Ah right
15:22:59 <davean> having a k of Is says "I will only ever ask youfor the next thing"
15:23:10 <davean> Refl is my Read above
15:23:17 <davean> (Refl being a constructor of Is)
15:23:27 <davean> so k is always something specific
15:23:34 <davean> like "Stack"
15:23:35 <zincy_> So you don't have to use Is as k but it is a useful choice
15:23:40 <davean> Right
15:23:52 <davean> You can use sometyhing more exicting
15:23:53 <zincy_> Any category can be used to select the input we want
15:24:05 <davean> and most of them have an identity ish eliment equivilent to Refl
15:24:22 <davean> Doesn't HAVE to be a category actually - awaits isn't constrainted
15:24:34 <davean> await though only knows how to get the default boring query out of a Category
15:24:56 <davean> If its a category, we can do the simple versions
15:25:09 <davean> if its not, we have to do everything manually
15:25:16 × Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt)
15:25:24 <davean> we can only "reason" about it as a category?
15:25:30 × kspalaiologos quits (~kspalaiol@user/kspalaiologos) (Client Quit)
15:25:34 <davean> IDK how to say this pithily
15:26:10 <davean> That all making sense now?
15:26:35 <zincy_> Ah yes k isnt necessarily a category for awaits
15:26:54 <davean> We just only get the simple case when it is
15:26:55 kspalaiologos joins (~kspalaiol@user/kspalaiologos)
15:27:04 <zincy_> Is the difference between awaits vs await one is less manual than the other?
15:27:36 <davean> Yep
15:27:38 <davean> exactly
15:27:40 alx741 joins (~alx741@181.196.69.253)
15:27:52 <davean> awaits is the manual version, await is the onethat just pulls out the identity case
15:28:05 <davean> Category says "we have the right sort of identity laying around"
15:28:20 <davean> Thats ... it
15:28:26 <davean> most boring sense of being categorical
15:28:41 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:28:41 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
15:28:41 wroathe joins (~wroathe@user/wroathe)
15:28:47 <zincy_> Awesome I think this is making sense now!
15:29:07 <zincy_> So say you have this. awaits (Refl::Is (Either a b))
15:29:27 <davean> (Which BTW is exactly "await")
15:29:41 × sm2n quits (~sm2n@user/sm2n) (Remote host closed the connection)
15:29:41 <zincy_> ah interesting
15:29:43 <davean> (If you want to do it non-manually)
15:30:00 sm2n joins (~sm2n@user/sm2n)
15:30:18 <zincy_> And you get a Left which means you dont want to do anything further. Would you just not yield anything
15:30:21 <zincy_> and return ()
15:30:25 <zincy_> Or use Done
15:31:17 <davean> stop ideally, but you can just end your monad
15:31:33 <davean> The difference between plan and machien is machine doesn't "have a value" to "return"
15:31:36 <davean> it just streams
15:31:44 <davean> so any () will be rewriten away when you compile it
15:31:54 <davean> (they're there until you do though, and you can use them - hence the plan)
15:32:00 <zincy_> awesome
15:32:11 × kjak_ quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
15:32:29 <zincy_> So if multiple plans feed off each other is that one machine?
15:32:32 × Inst quits (~Inst@2601:6c4:4080:3f80:6122:580e:b697:71e1) (Remote host closed the connection)
15:32:49 <zincy_> Say one plan relies on two different inputs of other plans
15:32:57 <zincy_> (I guess that is a common use case)
15:33:29 <davean> So yes because you can compose machines.
15:34:03 <zincy_> So compile each plan to a machine then compose machines.
15:34:19 <davean> generally thats the way I'd do it, there are special complicated cases
15:34:24 <davean> but you don't care about complications :)
15:34:44 <zincy_> Okay thank you so much!
15:34:52 <zincy_> This has been tremendously helpful
15:35:01 <zincy_> Do you have any code examples btw?
15:35:13 <zincy_> I found the one on the hackage readme obviously :)
15:36:23 <davean> Haha yes I have examples but my examples are mostly complicated! They mostly exist because I'm using the power
15:36:31 <davean> they're PROBABLY not what you want to look at yet
15:37:23 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2) (Remote host closed the connection)
15:37:29 hippoid joins (~idris@184.105.6.88)
15:38:14 zincy_ joins (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2)
15:38:38 <zincy_> davean: Okay I'll save them till I am ready :)
15:38:44 <zincy_> Time to make some machines
15:38:49 <zincy_> Thanks again!
15:38:51 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 245 seconds)
15:38:56 <davean> No problem
15:39:35 <hippoid> @free x::a->b->c
15:39:35 <lambdabot> h . x y = x (f y) . g
15:39:50 <davean> zincy_: you probably want to look at https://hackage.haskell.org/package/machines-0.7.2/docs/Data-Machine-Process.html it has the "simple cases" for normal stream processing
15:39:57 <davean> and things like ~> for composing
15:40:40 <davean> (~> feeds one machine's output into another's input)
15:40:56 <zincy_> ah yes
15:40:59 <hippoid> in '@free x::a->b->c', how do I know what terms 'f, g, h, x, y' correspond to which types 'a, b, c'?
15:42:00 <hippoid> or in this simpler example
15:42:14 <hippoid> @free x::a->a
15:42:14 <lambdabot> f . x = x . f
15:42:23 <hippoid> where did f come from?
15:46:51 <c_wraith> f is any function that will type-check there
15:47:06 <c_wraith> which is, in fact, any function
15:48:10 <c_wraith> maerwald: I do not have an account there
15:48:16 <hippoid> c_wraith: ok that makes sense. Thanks!
15:50:07 × Farzad quits (~FarzadBek@178.131.28.251) (Quit: Leaving)
15:50:44 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2) (Remote host closed the connection)
15:50:58 max22- joins (~maxime@2a01cb0883359800e36f11616f1a350a.ipv6.abo.wanadoo.fr)
15:52:36 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
15:53:16 fendor_ joins (~fendor@178.115.79.50.wireless.dyn.drei.com)
15:55:18 × kspalaiologos quits (~kspalaiol@user/kspalaiologos) (Quit: Leaving)
15:55:32 × fendor quits (~fendor@178.115.69.81.wireless.dyn.drei.com) (Ping timeout: 246 seconds)
15:56:22 <davean> c_wraith: is that strictly true? Its been almost a year since I played in the scary areas so I'm out of practice
15:57:58 <c_wraith> in the general case, it's any function that will type-check. id is a special case in that it will work with any function at all.
15:58:15 fendor_ is now known as fendor
15:58:51 <davean> right
15:58:58 <davean> Levity and such
15:59:26 jollygood2 joins (~bc8165b6@217.29.117.252)
15:59:42 <monochrom> Ah, right. Suppose f::X->Y, then the equation says (x::Y->Y) . f = f . (x::X->X)
16:00:29 <c_wraith> yeah. you do have to instantiate it at different types
16:00:55 <davean> details!
16:01:22 <davean> Turns out they exist, now what are we going to do?
16:01:24 zmt00 joins (~zmt00@user/zmt00)
16:02:18 <monochrom> exorcise? "the devil is in the details" therefore exorcise the devil i.e. the details!
16:02:43 <monochrom> the details are coming back to haunt you tomorrow ooooooooo....
16:03:38 <monochrom> alternatively I heard that if you offer candies, they'll offer a truce...
16:04:24 <davean> I think in good mathematical tradition I'm going to hide behind a sturdy defense of axiom selection
16:11:04 <jollygood2> hi. excuse me for being completely offtopic, but what browser/specialized program can I use to download page from subscription website for offline browsing? I have a month long subscription to some site that expires in a few days, and I did not have time to access it at all due to some unforeseen circumstances. chrome doesn't even save all simple images, it just links them to the original site
16:11:46 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
16:20:27 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds)
16:21:59 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
16:22:35 × zer0bitz quits (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi) (Ping timeout: 264 seconds)
16:25:04 <ksu> /part/part
16:25:09 <ksu> sorry
16:28:06 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:28:06 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
16:28:06 wroathe joins (~wroathe@user/wroathe)
16:31:17 × sagax quits (~sagax_nb@user/sagax) (Ping timeout: 264 seconds)
16:33:05 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 264 seconds)
16:40:53 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds)
16:41:07 zmt01 joins (~zmt00@user/zmt00)
16:42:23 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 264 seconds)
16:42:38 Farzad joins (~FarzadBek@5.234.230.191)
16:46:01 sagax joins (~sagax_nb@user/sagax)
16:46:33 peterhil joins (~peterhil@dsl-hkibng32-54fb56-2.dhcp.inet.fi)
16:46:44 zmt00 joins (~zmt00@user/zmt00)
16:48:12 × zmt01 quits (~zmt00@user/zmt00) (Ping timeout: 268 seconds)
16:56:14 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894)
16:58:12 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:58:15 zmt01 joins (~zmt00@user/zmt00)
16:59:01 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 252 seconds)
16:59:14 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:59:15 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
16:59:15 wroathe joins (~wroathe@user/wroathe)
17:00:56 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) (Ping timeout: 268 seconds)
17:08:35 yauhsien joins (~yauhsien@61-231-43-13.dynamic-ip.hinet.net)
17:13:17 × dariof4 quits (~dariof4@134.0.0.51) (Ping timeout: 264 seconds)
17:14:37 × dajoer quits (~david@user/gvx) (Quit: leaving)
17:14:37 Null_A joins (~null_a@2601:645:8700:2290:19ff:7d99:67c6:79e3)
17:15:13 dariof4 joins (~dariof4@5.179.181.91)
17:15:20 × Farzad quits (~FarzadBek@5.234.230.191) (Ping timeout: 246 seconds)
17:18:01 zincy_ joins (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2)
17:20:36 × JimL quits (~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 260 seconds)
17:21:47 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894)
17:23:56 JimL joins (~quassel@89-162-2-132.fiber.signal.no)
17:24:27 econo joins (uid147250@user/econo)
17:25:38 × yauhsien quits (~yauhsien@61-231-43-13.dynamic-ip.hinet.net) (Remote host closed the connection)
17:27:07 × aga quits (~a@p200300ef973db1e74086f0a6a24fc4dd.dip0.t-ipconnect.de) (Quit: WeeChat 3.0.1)
17:27:12 yauhsien joins (~yauhsien@61-231-43-13.dynamic-ip.hinet.net)
17:32:23 × yauhsien quits (~yauhsien@61-231-43-13.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
17:34:18 <maerwald> is there a way to hide certain exports with `module Foo ( module Foo ) where`?
17:34:18 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
17:35:26 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
17:36:02 × fendor quits (~fendor@178.115.79.50.wireless.dyn.drei.com) (Remote host closed the connection)
17:36:21 <monochrom> Unfortunately no.
17:41:45 ubert joins (~Thunderbi@178.115.67.5.wireless.dyn.drei.com)
17:42:36 fendor joins (~fendor@178.115.79.50.wireless.dyn.drei.com)
17:42:38 × Null_A quits (~null_a@2601:645:8700:2290:19ff:7d99:67c6:79e3) (Remote host closed the connection)
17:44:11 × burnsidesLlama quits (~burnsides@dhcp168-017.wadham.ox.ac.uk) (Remote host closed the connection)
17:44:42 burnsidesLlama joins (~burnsides@dhcp168-017.wadham.ox.ac.uk)
17:45:47 lavaman joins (~lavaman@98.38.249.169)
17:48:42 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
17:48:53 <dsal> Is `( module Foo )` the same as not having that there?
17:49:04 × burnsidesLlama quits (~burnsides@dhcp168-017.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
17:49:09 Vajb joins (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi)
17:51:17 <maerwald> in my case no
17:51:27 <maerwald> there are several re-exports
17:51:52 <maerwald> some of those export the same things, it's easier to have an exclude list
17:52:24 Sgeo joins (~Sgeo@user/sgeo)
17:52:30 <boxscape_> do you actually have the module itself in its own export list or did you just choose "Foo" as example name twice?
17:52:54 <maerwald> yes
17:53:30 × Hanicef quits (~gustaf@81-229-9-108-no92.tbcn.telia.com) (Quit: leaving)
17:53:47 aegon joins (~mike@174.127.249.180)
17:55:47 <boxscape_> okay right I just read up on what a module exporting itself does, interesting
17:56:06 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2) (Remote host closed the connection)
17:56:08 × Vajb quits (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) (Ping timeout: 265 seconds)
17:56:39 × dariof4 quits (~dariof4@5.179.181.91) (Ping timeout: 268 seconds)
17:57:00 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
17:57:04 zincy_ joins (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2)
17:58:34 dariof4 joins (~dariof4@5.77.103.193)
18:01:07 × machinedgod quits (~machinedg@24.105.81.50) (Remote host closed the connection)
18:02:12 × hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1)
18:02:14 machinedgod joins (~machinedg@24.105.81.50)
18:02:44 hendursaga joins (~weechat@user/hendursaga)
18:02:49 × max22- quits (~maxime@2a01cb0883359800e36f11616f1a350a.ipv6.abo.wanadoo.fr) (Ping timeout: 252 seconds)
18:03:26 Nachtgespenst joins (~user@user/siracusa)
18:04:35 × chomwitt quits (~chomwitt@2a02:587:dc12:b600:12c3:7bff:fe6d:d374) (Ping timeout: 264 seconds)
18:07:58 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Read error: Connection reset by peer)
18:09:39 <maerwald> is there a way to compile windows code without starting a VM?
18:10:44 <maerwald> maybe via wine? :p
18:12:51 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
18:13:20 zebrag joins (~chris@user/zebrag)
18:13:44 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) (Remote host closed the connection)
18:14:10 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
18:14:24 yauhsien joins (~yauhsien@61-231-43-13.dynamic-ip.hinet.net)
18:14:41 <maerwald> https://wiki.haskell.org/GHC_under_Wine
18:14:48 <maerwald> 10 years old stuff on the wiko, as always
18:15:08 <maerwald> "grab the latest windows version of haskell platform: wine HaskellPlatform-2012.4.0.0-setup.exe"
18:15:10 <maerwald> right
18:15:51 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2) (Remote host closed the connection)
18:16:33 <maerwald> apparently, installing powershell in wine isn't easy
18:17:26 kjak joins (~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
18:17:54 <Nachtgespenst> Is the Haskell platform still a thing?
18:18:06 zincy_ joins (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2)
18:18:27 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894)
18:18:42 <maerwald> the solution was to execute a random binary from the internet (as usual on windows)
18:19:10 × yauhsien quits (~yauhsien@61-231-43-13.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
18:20:10 <geekosaur> apparently it still is, although it's not recommended any more
18:20:27 <geekosaur> stack and cabal both provide much more flexible and better solutions
18:20:45 mvk joins (~mvk@2607:fea8:5cc1:300::d3fb)
18:20:47 × ubert quits (~Thunderbi@178.115.67.5.wireless.dyn.drei.com) (Ping timeout: 264 seconds)
18:21:54 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
18:21:55 <maerwald> alright, running ghcup windows installer under wine installed powershell didn't work very well
18:22:06 <shapr> sm: yes, I've recently tried ghc on monterey
18:22:33 <sm> hey shapr, everything working as expected ?
18:22:38 <shapr> didn't see any difference from big sur
18:22:51 <sm> thanks
18:23:08 <shapr> For whatever reason my work mac kernel panics after about 45 minutes of compiling, but that was true with big sur, and monterey didn't make a differenc.
18:23:38 <sclv> the haskell platform is _not_ still a thing. or rather, the webpage exists but it simply recommends using ghcup
18:23:39 <sm> yikes
18:24:20 <shapr> sm: I've tried a bunch of things, but low power mode is the only fix I've found. Everything takes about 1.5 times as long, but at least it finishes.
18:24:21 <sm> shapr: is there an open issue for that ?
18:24:32 <shapr> sm: I don't think it's haskell related.
18:24:57 <sm> ah.. still yikes, but not quite so much
18:26:43 <geekosaur> sclv, haskell.org/platform is still there and does not recommend ghcup
18:26:56 <geekosaur> maybe it's just not reachable these days unless you know the url?
18:26:56 <sclv> geekosaur: yes it does i just checked
18:27:12 <maerwald> https://www.haskell.org/platform/#linux-generic
18:27:41 <sclv> the only exception is windows where it still recommends chocolatey.
18:27:55 <aegon> whoa
18:27:58 <sclv> at this point i think we should make the whole platform page redirect to ghcup since it now handles windows and stack both
18:28:04 <geekosaur> oh, I was looking at from source
18:28:13 <geekosaur> but yes, probably it should just go away
18:28:23 <aegon> [a, b, c, d, e, f, g] <- replicateM 6 $ newMVar 0
18:28:26 <aegon> compiled
18:28:33 <maerwald> apparently, there's powershell via snap?
18:28:44 <aegon> but then as it should be totally failed at runtime
18:28:50 <aegon> is the type checker taking a day off here?
18:31:28 <maerwald> first running arbitrary windows executables, now running snap as root... great
18:32:28 <ski> aegon : length of list is not a part of its type
18:32:33 Farzad joins (~FarzadBek@5.234.230.191)
18:33:07 <aegon> yeah, i guess i thought the pattern matcher would know how many replicate produces but its probaly just [MVar Int)
18:33:20 <aegon> *[MVar Int]
18:33:21 <ski> (a dependently typed programming language might fare better here)
18:33:59 <ski> yes, the command would have type `IO [MVar Int]' there
18:34:40 <aegon> well, thats the first time haskell let me write a malformed program when not interacting with system calls
18:35:05 max22- joins (~maxime@2a01cb08833598001f901fd4ac72f6bc.ipv6.abo.wanadoo.fr)
18:35:07 <ski> let me introduce you to `head'
18:35:14 <awpr> `-Werror=incomplete-uni-patterns`
18:35:28 <boxscape_> does that trigger on pattern matches in a do block?
18:35:39 <ski> might
18:35:41 <awpr> hmm, not sure actually
18:35:52 DNH joins (~DNH@8.43.122.53)
18:35:52 <boxscape_> (they could be totally valid if it's in the List monad for instance)
18:36:38 <awpr> yeah, and it's not really possible for GHC to know whether a MonadFail instance is "desirable" or "undesirable"
18:36:46 <ski> hm, unfortunately, it seems like it doesn't ..
18:37:24 <boxscape_> there's a proposal for this https://github.com/ghc-proposals/ghc-proposals/pull/319
18:38:53 <boxscape_> (well, not this exactly, but this general topic)
18:39:59 <aegon> i need to be a *little* more careful
18:43:10 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Quit: Leaving)
18:43:21 <boxscape_> okay actually the proposal *is* about exactly this "When the -Wincomplete-uni-patterns warning flag is enabled alongside NoFallibleDo, we will warn about the incomplete pattern match."
18:43:48 <maerwald> https://hub.docker.com/r/avalverde/ghc-cross-compiler-windows-x86
18:43:49 <maerwald> uh-oh
18:44:34 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
18:48:01 <johnjay> when i search on google for haskell tutorials top result is... learnyouahaskell
18:48:41 <johnjay> next few in order are tutorialspoint, a wiki, and learn.hfm.io. are these good?
18:49:11 <maerwald> I liked https://www.cis.upenn.edu/~cis194/spring13/
18:49:16 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
18:49:26 <boxscape_> tutorialspoint is bad, never heard of learn.hfm.io, if you mean the HaskellWiki, there's probably too many links there to figure out which one to go with
18:50:09 trillp joins (~trillp@69.233.98.238)
18:50:13 <boxscape_> learnyouahaskell has mixed reviews, it has a lighthearted approachable tone but is maybe a bit outdated at this point and doesn't teach as much as many other resources
18:51:02 <maerwald> what do you mean with outdated? I'd say 90% of the basics didn't change in the last 10 years
18:51:34 <aegon> learnyouahaskell is a good first step but needs some diligent supplimental material to get you to writing a practical bit of haskell
18:51:37 <aegon> imo
18:51:49 <aegon> i usually give people learnyouahaskell because its very approachable in tone
18:51:59 <boxscape_> yeah most of it is probably fine but since it hasn't been touched in many years I suspect there's a few things here and there that don't quite work the same way in modern ghc as they did at the time? To be fair I don't actually know, hence the "maybe"
18:51:59 <maerwald> it doesn't have exercises, so is rather useless
18:52:03 <johnjay> sounds like google wins again this time
18:52:08 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2) (Remote host closed the connection)
18:52:12 × dariof4 quits (~dariof4@5.77.103.193) (Ping timeout: 265 seconds)
18:52:15 <johnjay> if top result is passable but not great, next 3 are bad
18:52:25 <maerwald> johnjay: did you check my link?
18:52:37 <johnjay> no because i can't copy in my tmux atm
18:52:41 <johnjay> sec
18:52:53 <geekosaur> @where books
18:52:53 <lambdabot> https://www.extrema.is/articles/haskell-books, see also @where LYAH, RWH, YAHT, SOE, HR, PIH, TFwH, wikibook, PCPH, HPFFP, HTAC, TwT, FoP, PFAD, WYAH, non-haskell-books
18:53:35 <hpc> https://www.haskell.org/documentation/ - the official big list :P
18:53:55 dariof4 joins (~dariof4@5.11.107.11)
18:53:57 burnsidesLlama joins (~burnsides@dhcp168-017.wadham.ox.ac.uk)
18:54:16 <boxscape_> maerwald example I can think of: learnyouahaskell teaches you to use "let a = ..." in ghci, which isn't necessary anymore. Still works of course, but I wouldn't put it into a modern tutorial
18:54:53 <aegon> learnyouahaskell got me close enough to be able to go grok random fpcomplete posts and some hackage docs. Did a good job of making the syntax / paradigm jump not a barrier to parsing deeper
18:54:57 f-a joins (f2a@f2a.jujube.ircnow.org)
18:55:11 <maerwald> fpcomplete posts aren't for beginners usually
18:55:23 ski still always does the `let' in the interactor
18:55:41 <boxscape_> understandable if you've been used to it for years
18:55:44 <ski> (if i could, i would disable being able to let it out)
18:55:59 <boxscape_> what benefit would that give you?
18:56:12 <ski> not being annoyed by it being enabled ?
18:56:17 <boxscape_> I guess that's fair
18:56:26 kritzefitz_ joins (~kritzefit@picard.host.weltraumschlangen.de)
18:56:40 kritzefitz_ parts (~kritzefit@picard.host.weltraumschlangen.de) ()
18:58:14 <johnjay> fpcomplete looks like any other generic corporate landing page
18:58:19 <johnjay> where are the posts
18:58:21 zincy_ joins (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2)
18:58:41 <boxscape_> they have a learn haskell page here https://www.fpcomplete.com/haskell/learn/
18:59:11 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
18:59:15 <maerwald> they're doing more rust these days (and typescript I think)
18:59:20 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) (Remote host closed the connection)
18:59:21 <boxscape_> I don't actually know how to find that link on the website but google offered it when I searched for fpcomplete
18:59:39 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2) (Remote host closed the connection)
19:00:01 <johnjay> boxscape_: i would never have found that on my own.
19:00:04 zincy_ joins (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2)
19:00:11 <boxscape_> yep not very discoverable
19:00:37 <johnjay> reminds me of a time someone asked me how to read the cdrom on a unix machine
19:00:49 <johnjay> i told him it's "volcheck". that was his response
19:00:50 wootehfoot joins (~wootehfoo@user/wootehfoot)
19:00:59 × burnsidesLlama quits (~burnsides@dhcp168-017.wadham.ox.ac.uk) (Ping timeout: 264 seconds)
19:01:05 <boxscape_> :D
19:01:10 <sm> fpcomplete has always had some of the best beginner content, I would say
19:02:02 <sm> they tried to make it more discoverable but half the community rejected them
19:02:08 <johnjay> (by the way not necessarily true in this case. fpcomplete is on the 2nd page of google results)
19:04:32 <maerwald> sm: huh?
19:04:46 <maerwald> you mean when they tried to fork haskell.org?
19:05:07 mrckndt4 joins (~mrckndt@user/mrckndt)
19:05:26 <geekosaur> you know, there's a difference between "make it more discoverable" and "be obnoxious about it"
19:05:30 <maerwald> I'd say that was a faux pas
19:05:46 <sm> I think that's a divisive and negative way of seeing it, but I won't get into it with you, sorry maerwald
19:05:46 <johnjay> what do you mean fork
19:05:52 <johnjay> like make a website that competes with it?
19:05:54 vicfred joins (~vicfred@user/vicfred)
19:05:56 <maerwald> yeah
19:05:58 <johnjay> you can't literally take someone's website
19:06:10 <geekosaur> haskell-lang.org
19:06:14 <geekosaur> which may still be there
19:06:29 <geekosaur> half the links rewritten to point to fpcomplete-approved versions, etc.
19:06:36 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2) (Remote host closed the connection)
19:06:46 <sm> they removed it in the interest of community harmony
19:06:59 <maerwald> I think they removed it because it didn't work
19:07:11 × mrckndt quits (~mrckndt@user/mrckndt) (Ping timeout: 245 seconds)
19:07:11 mrckndt4 is now known as mrckndt
19:07:12 <lechner> ouch
19:07:20 <f-a> I have got a haddock/hackage question
19:07:50 <geekosaur> that said, imo HF made similar mistakes early on. at least they listened to community input
19:07:57 <f-a> when I reexport functions from another library, the documentation — of course — gets reexported as well, like this https://hackage.haskell.org/package/ansi-terminal-game-1.4.0.0/docs/Terminal-Game.html#t:Hyphenator
19:08:04 <maerwald> geekosaur: yes they did
19:08:39 <f-a> but some times — as in this case — it is a bit wordy or unhelpful, since the setting is another library
19:09:10 <f-a> is there a haddock way to rewrite that specific doc?
19:09:32 <f-a> I thought of defining a function/type with the same name and export that, but it seems a bit cumbersome
19:09:36 <f-a> and lots of work
19:09:53 zincy_ joins (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2)
19:10:14 <johnjay> geekosaur: well is that really a big deal?
19:10:21 <Franciman> lol maerwald
19:10:31 <johnjay> i can fork ubuntu on github but nobody gets mad at me for copying it
19:11:14 <maerwald> johnjay: have you seen any language community that has two competing landing pages? It's pretty confusing for everyone, especially newcomers
19:11:26 <aegon> johnjay: imo fpcomplete has some strong opinions in their articles that seem wrong sometimes
19:11:36 <Franciman> trying to impose yourself as the true source of haskell is something you think about before doing it, if you care about the harmony of the community
19:11:42 <johnjay> oh ok so it's more about SEO
19:11:50 <johnjay> whoever appears first in google is the "real" community
19:11:54 <geekosaur> yeh, it's very much not a way to help newcomers, it just looks like the community is fractured
19:12:18 <geekosaur> which is about the last message you want to send
19:12:21 <Franciman> but fpcomplete puts money in things, they want a return
19:12:21 <aegon> their article on safe exception handling is a great overview, but the tone of it makes excedptions in haskell out to be silly and broken but on the other end of it, it seems complicated but not any of the other two things and not needlessly so
19:12:24 <Franciman> that's what you get from companies
19:12:43 <maerwald> wrt tooling, there's an argument to be made for diversity... but competing landing pages are not
19:13:05 <johnjay> i guess there are some projects like ubuntu that have a company backing it
19:13:12 <lechner> maybe they lost confidence in the community?
19:13:13 <johnjay> but haskell doesn't sound like that
19:13:15 <sclv> hf made absolutely no remotely similar "mistakes"
19:13:32 <Franciman> thanks for the daily source of absolutism
19:13:50 <unit73e> da tru sauce of haskell
19:13:51 <sclv> well its hard being right about everything all the time but i do my best
19:14:19 <johnjay> is hf the main haskell landing page?
19:14:22 <maerwald> sclv: I disagree somewhat, but I don't think it's worthwhile to reiterate it publicly. I think HF has the right intentions, at least.
19:14:29 <sclv> no, thats controlled by the haskell.org committee
19:14:53 <sclv> i don't disagree that hf has been going through a learning process and has a long way to go, and didn't get everything right
19:15:03 <maerwald> and given it's basically bootstrapping itself, maybe one shouldn't be too harsh about communication issues etc
19:15:05 <sclv> i'm just saying there's nothing similar in those issues to fpco
19:16:59 <maerwald> I think we're mostly past the historical drama though
19:17:25 <sclv> rather than just fragmenting everything, hf's problem has, if anything, been mostly paralysis in the face of trying to get too much input from everyone and bend over backwards to reach full consensus on everything, which has meant it just gets stuck or sometimes is totally contradictory
19:18:40 <maerwald> although drama also hat its beauty, does it not?
19:18:48 <Franciman> damn yeah
19:18:56 <geekosaur> only from a distance
19:18:57 <aegon> Haskell: There's a powerfull set of tools in there somewhere
19:19:00 <aegon> :P
19:19:17 <unit73e> linus torlvalds brought some hilarious drama
19:19:26 <unit73e> nowadays not so much
19:19:49 <aegon> when did linus engage with haskell talk, that would be fun to hear
19:20:05 <maerwald> he only mentioned it briefly in one interview I think
19:20:09 <Franciman> he would probably say that it is shit + other shitty shits
19:20:16 <maerwald> and considered it a hype or so
19:20:21 <Franciman> ofc
19:20:26 <aegon> yeah, he's never light in his thoughts
19:20:38 <aegon> i expect some bashing, i think he would bash himself just as easily though
19:20:39 <Franciman> linus' line of thought: can I write a kernel with it?
19:20:51 <Franciman> would it suck?
19:21:05 yauhsien joins (~yauhsien@61-231-43-13.dynamic-ip.hinet.net)
19:21:37 <unit73e> linus doesn't care much about functional programming
19:21:54 <unit73e> john carmack did speak about it and it was positive
19:22:07 <Franciman> git to me means: let's write a kernel
19:22:09 <Franciman> it is awful
19:22:14 <Franciman> but DAMN FAST
19:22:18 <Franciman> and DAMN POWERFUL
19:22:30 <Franciman> linus -> do kernel
19:22:38 <lechner> you curse too much
19:23:26 <aegon> yeah i've heard carmacks talk, sweeney also has been public about doing some experiments in it
19:23:46 <johnjay> this course makes haskell sound pretty interesting. a bunch of academics wanted a functional language so they made on in the 80s
19:24:44 <unit73e> I found out what linus said about it, to sum up he said haskell is nice and but it's not for him because he works on kernels
19:25:04 <unit73e> so nothing unusual there
19:25:20 <johnjay> unit73e: that sounds a lot less good for SEO
19:25:58 × yauhsien quits (~yauhsien@61-231-43-13.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
19:27:39 <aegon> linus wants to write assembly with better syntax
19:28:24 <johnjay> let's just have an operating system written in C. then right on topic of it is some hyper functional langauge like haskell or scheme
19:28:31 <johnjay> could be anything as long as it's functional
19:29:42 <maerwald> aegon: carmack mentioning haskell has been over-hyped a lot. It doesn't seem he really followed up on it :p
19:31:34 <aegon> yeah from the talk he's not enthusiastic about haskell but more respects that functional styled code is more re-usable over time
19:31:55 <Rembane_> Wasn't the idea that he could use the ideas from Haskell in his C++ code?
19:32:09 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2) (Remote host closed the connection)
19:36:38 <ldlework> could he really though
19:37:15 <ldlework> I've tried to take lessons learned from my time with Haskell back to Typescript and it just seems like a pointless struggle
19:38:30 zincy_ joins (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2)
19:38:47 × dariof4 quits (~dariof4@5.11.107.11) (Ping timeout: 264 seconds)
19:39:16 <boxscape_> things like learning to separate pure and impure code are things you can easily apply to other languages as well
19:39:26 <boxscape_> the type system just doesn't enforce it
19:40:18 <johnjay> you could name functions with hungarian notation
19:40:20 dariof4 joins (~dariof4@95.131.44.100)
19:40:23 <johnjay> pfunc is a pure function func
19:40:38 × benin quits (~benin@183.82.30.38) (Quit: The Lounge - https://thelounge.chat)
19:42:09 <zincy_> boxscape_: Is that a good general practice outside of Haskell?
19:42:28 <zincy_> I've heard people saying in Haskell it doesn't really matter separating IO from non IO.
19:43:05 <boxscape_> personally I would say so but idk maybe it depends on what your workflow is or something
19:43:39 <boxscape_> I certainly would appreciate if library designers learned to do it
19:44:12 <boxscape_> I still remember getting stuck for an hour or more not understanding why javascripts string replace function doesn't do what I expected because it's stateful, for some reason
19:44:23 <ikke> Functional core, imperative shell
19:44:34 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 260 seconds)
19:44:38 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2) (Remote host closed the connection)
19:45:06 zincy_ joins (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2)
19:45:06 × MQ-17J quits (~MQ-17J@8.6.144.203) (Read error: Connection reset by peer)
19:45:25 MQ-17J joins (~MQ-17J@8.6.144.203)
19:46:02 <maerwald> zincy_: I also don't think the IO vs non-IO thing is what matters. What matters is that you think about shared mutable state explicitly.
19:46:15 <maerwald> because that's the root of all evil
19:46:50 <maerwald> Java made it popular to not think about it.
19:47:07 <zincy_> So when it comes to other languages isolating non pure code equates mostly to push shared mutable state into the corner of the room
19:47:09 <johnjay> isn't making shared mutable state kind of the point of java?
19:47:17 <maerwald> yeah, it's scary
19:48:00 <johnjay> boxscape_: i think the curse of knowledge is real
19:48:18 <johnjay> once you learn a system, any system, then its weirdness and contradictions seem so normal and matter-of-fact to you
19:48:24 <boxscape_> that's fair
19:48:30 <johnjay> that when someone asks you why something is the case, you literally don't even understand what they're talking about
19:49:09 × Farzad quits (~FarzadBek@5.234.230.191) (Quit: Leaving)
19:49:17 <johnjay> "Why does 2+2 not equal 4 in this case?" "Well duh,that's common sense!"
19:49:30 × guniberas quits (~guniberas@42.191.188.121) (Ping timeout: 268 seconds)
19:49:31 Farzad joins (~FarzadBek@5.234.230.191)
19:49:43 <johnjay> boxscape_: i had a scary convo like that last week when i was writing a script for a game
19:49:58 <geekosaur> flatland. or that variant that was hyperbolic, that I forget the name of now?
19:50:08 <zincy_> Is this the curse of knowledge?
19:50:16 <johnjay> basically i was trying to use a custom ability based its ID. which the game editor displays. but apparently some unrelated string called the order ID is what actually matters
19:50:20 <zincy_> I thought that was I understand the concept but I cannot explain it.
19:50:30 <johnjay> and the 2 people i was talking to didn't even understand why i was confused.
19:50:35 <johnjay> it was like talking to an insane person
19:50:50 × cross_ quits (~cross@spitfire.i.gajendra.net) (Remote host closed the connection)
19:51:06 <johnjay> zincy_: yes exactly. but like. imagine you're in wonderland and asking someone why this drink makes you 10 feet tall. they don't really know
19:51:10 <zincy_> I think you are talking about a lack of knowledge :)
19:51:24 <johnjay> what's scary about is more the pretending to know but not really knowing
19:51:47 <zincy_> Yeah that is a weird place to be.
19:51:58 <johnjay> at least humpty dumpty is honest that he makes up weird definitions with no regard to anybody else
19:52:49 <monochrom> A better reference is emperor's new cloth.
19:55:09 <maerwald> I remember reading quake3 engine code I think and they did annotate side effects in the function documentation.
19:55:42 <maerwald> or maybe it was RtCW
19:55:59 <maerwald> Well, ID had great coders
19:56:13 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
19:56:58 waleee joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
19:57:41 acidjnk_new joins (~acidjnk@p5487db6d.dip0.t-ipconnect.de)
19:59:41 <zincy_> maerwald: "What matters is that you think about shared mutable state explicitly."
19:59:45 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894)
20:00:05 <zincy_> So does this mean basically segregate that nasty stuff from the rest?
20:00:39 justsomeguy joins (~justsomeg@user/justsomeguy)
20:01:21 × waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 245 seconds)
20:01:21 <maerwald> start with not using the filesystem for anything
20:02:08 <maerwald> well, windows solved it... the virus scanner will just lock your files and your program will have to wait :D
20:02:34 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) (Remote host closed the connection)
20:02:42 <zincy_> haha
20:02:43 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894)
20:03:29 acidjnk_new3 joins (~acidjnk@p200300d0c7441135e59462474fdf3062.dip0.t-ipconnect.de)
20:03:31 <maerwald> now you need retry strategies and algorithms to delete files (did you know you can always *move* a file, even if it's locked, but not delete it?)
20:04:59 <maerwald> guess why the recycle bin exists
20:05:19 × juhp quits (~juhp@128.106.188.220) (Ping timeout: 260 seconds)
20:05:59 <maerwald> does Haskell help you with that? No :p
20:06:23 × mvk quits (~mvk@2607:fea8:5cc1:300::d3fb) (Ping timeout: 264 seconds)
20:06:34 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
20:06:58 × acidjnk_new quits (~acidjnk@p5487db6d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
20:07:09 × Skyfire quits (~pyon@user/pyon) (Quit: br)
20:07:28 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:07:28 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
20:07:28 wroathe joins (~wroathe@user/wroathe)
20:07:41 juhp joins (~juhp@128.106.188.220)
20:09:28 Skyfire joins (~pyon@user/pyon)
20:09:46 <maerwald> I worry less about avoiding IO and more about means to make my IO code correct
20:10:41 Guest27 joins (~Guest27@188.64.207.100)
20:11:01 <maerwald> a syscall filter embedded into the RTS would for example be a start
20:11:33 <maerwald> that can throw runtime exceptions if constraints aren't met (because a library misbehaves)
20:12:46 × fendor quits (~fendor@178.115.79.50.wireless.dyn.drei.com) (Read error: Connection reset by peer)
20:14:03 <monochrom> Hrm, a shadow state automaton that simulates the OS's state automaton to predict what the OS would dislike.
20:14:17 <remexre> am I missing something, or is the 9.2.1 manual missing the "Included libraries" section
20:14:20 <remexre> a la https://downloads.haskell.org/ghc/latest/docs/html/users_guide/9.0.1-notes.html#included-libraries
20:14:54 <monochrom> And you need like 6 of them, one for linsucks, one for winblows, one for slowaris, 3 for fragmentedbsd...
20:15:16 <johnjay> you left about malbatrosx
20:16:30 fendor joins (~fendor@178.115.79.50.wireless.dyn.drei.com)
20:21:16 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
20:21:23 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 264 seconds)
20:23:28 chomwitt joins (~chomwitt@ppp-94-68-249-8.home.otenet.gr)
20:27:55 lavaman joins (~lavaman@98.38.249.169)
20:28:21 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2) (Remote host closed the connection)
20:28:22 <hpc> but not temple os
20:28:26 <hpc> that's written 100% in the holy C
20:29:21 ski . o O ( isn't that in ROM ? )
20:32:26 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) (Remote host closed the connection)
20:34:55 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 268 seconds)
20:35:30 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
20:36:06 zincy_ joins (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2)
20:36:13 × zincy_ quits (~zincy@2a00:23c8:970c:4801:e5fe:6e8c:c240:1bb2) (Remote host closed the connection)
20:36:55 brainfreeze joins (~brainfree@2a03:1b20:4:f011::20d)
20:42:52 × proboscis quits (~proboscis@115-189-81-94.mobile.spark.co.nz) (Ping timeout: 252 seconds)
20:43:11 proboscis joins (~proboscis@115-189-129-187.mobile.spark.co.nz)
20:52:33 yauhsien joins (~yauhsien@61-231-61-245.dynamic-ip.hinet.net)
20:54:02 ss4 joins (~wootehfoo@user/wootehfoot)
20:56:58 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds)
20:56:59 × ss4 quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
20:57:22 × yauhsien quits (~yauhsien@61-231-61-245.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
20:58:29 ss4 joins (~wootehfoo@user/wootehfoot)
21:01:26 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 246 seconds)
21:02:22 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Quit: Leaving)
21:02:31 metabulation joins (~wootehfoo@user/wootehfoot)
21:04:01 × metabulation quits (~wootehfoo@user/wootehfoot) (Remote host closed the connection)
21:06:28 × ss4 quits (~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds)
21:08:41 × Farzad quits (~FarzadBek@5.234.230.191) (Quit: Leaving)
21:15:30 yrlnry joins (~mjd@pool-74-109-22-90.phlapa.fios.verizon.net)
21:22:23 × son0p quits (~ff@181.136.122.143) (Remote host closed the connection)
21:23:38 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
21:24:28 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
21:25:19 × jollygood2 quits (~bc8165b6@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
21:28:14 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
21:28:47 yauhsien joins (~yauhsien@61-231-61-245.dynamic-ip.hinet.net)
21:29:16 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds)
21:29:49 × fendor quits (~fendor@178.115.79.50.wireless.dyn.drei.com) (Remote host closed the connection)
21:32:50 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894)
21:33:01 × yauhsien quits (~yauhsien@61-231-61-245.dynamic-ip.hinet.net) (Ping timeout: 245 seconds)
21:33:47 Alleria joins (~textual@user/alleria)
21:34:02 × nitrix quits (~nitrix@user/nitrix) (Quit: Genius is one percent inspiration and ninety-nine percent perspiration)
21:35:17 yauhsien joins (~yauhsien@61-231-61-245.dynamic-ip.hinet.net)
21:37:11 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894) (Ping timeout: 245 seconds)
21:39:54 × yauhsien quits (~yauhsien@61-231-61-245.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
21:42:36 nitrix joins (~nitrix@user/nitrix)
21:44:27 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:44:27 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
21:44:27 wroathe joins (~wroathe@user/wroathe)
21:46:19 × FragByte quits (~christian@user/fragbyte) (Quit: Quit)
21:48:06 FragByte joins (~christian@user/fragbyte)
21:49:14 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
21:49:33 machinedgod joins (~machinedg@24.105.81.50)
21:49:35 × yrlnry quits (~mjd@pool-74-109-22-90.phlapa.fios.verizon.net) (Ping timeout: 264 seconds)
21:50:33 × peterhil quits (~peterhil@dsl-hkibng32-54fb56-2.dhcp.inet.fi) (Ping timeout: 265 seconds)
21:58:25 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
21:58:26 × proboscis quits (~proboscis@115-189-129-187.mobile.spark.co.nz) (Ping timeout: 245 seconds)
22:00:50 × chomwitt quits (~chomwitt@ppp-94-68-249-8.home.otenet.gr) (Ping timeout: 260 seconds)
22:01:23 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
22:01:51 <maerwald> hmm... I want where-clauses that don't have access to the top-level function arguments
22:02:54 <geekosaur> foo = \... where ... ? (hm, probably not)
22:03:33 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
22:04:42 <energizer> is it possible to declare a binary operator to be associative?
22:06:01 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
22:06:49 <hpc> what would that mean in practice?
22:10:48 <energizer> without associativity, i have to choose foldl or foldr. with it, i can just fold without specifying
22:11:04 <hololeap> I'm debugging an build error in gentoo's haskell repo for tasty-discover. it's using v1 cabal stuff to build. when --enable-executable-dynamic configure flag is enabled, I get this when the test suite tries to build:
22:11:09 <hololeap> tasty-discover: error while loading shared libraries: libHStasty-discover-4.2.2-EJsJ69ECwwY3j0AkVuZwAF-ghc8.10.6.so: cannot open shared object file: No such file or directory
22:11:20 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds)
22:12:16 × Guest27 quits (~Guest27@188.64.207.100) (Ping timeout: 256 seconds)
22:12:36 <energizer> oh i think i'm looking for Data.Monoid
22:14:44 <hololeap> energizer: more specifically, Semigroup
22:16:01 <hololeap> although you do need Monoid if you want to use fold from Data.Foldable (since some foldables can be empty)
22:16:43 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:17:13 peterhil joins (~peterhil@dsl-hkibng32-54fb56-2.dhcp.inet.fi)
22:18:17 <energizer> how common is it to use things like Data.Monoid?
22:18:34 <davean> Does anyone not use them?
22:18:43 <hololeap> extremely common/useful
22:18:47 <energizer> cool
22:19:05 <davean> if you don't use them you're seriously weird
22:19:26 <hpc> ^
22:20:31 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d4e:dbb8:1851:3894)
22:22:41 <hololeap> energizer: it's a good idea to memorize/understand everything in Data.Semigroup/Data.Monoid and use them whenever possible. it will help make your code easier to understand and maintain
22:25:09 <hpc> once you understand it, you'll find monoidal structures all over the place
22:25:12 <hpc> like Alternative
22:25:24 <hpc> and categories
22:32:21 × acidsys quits (~LSD@2.lsd.systems) (Quit: I love you.)
22:32:53 acidsys joins (~LSD@2.lsd.systems)
22:33:05 <maerwald> doesn't convey much information though
22:33:11 <maerwald> I dislike how optparse-applicative uses it
22:35:22 × MQ-17J quits (~MQ-17J@8.6.144.203) (Ping timeout: 260 seconds)
22:38:30 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
22:39:16 × jess quits (~jess@libera/staff/jess) ()
22:41:02 × peterhil quits (~peterhil@dsl-hkibng32-54fb56-2.dhcp.inet.fi) (Ping timeout: 260 seconds)
22:46:02 catman joins (~catman@user/catman)
22:49:11 peterhil joins (~peterhil@dsl-hkibng32-54fb56-2.dhcp.inet.fi)
22:49:49 × max22- quits (~maxime@2a01cb08833598001f901fd4ac72f6bc.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
22:51:32 × Midjak quits (~Midjak@82-65-111-221.subs.proxad.net) (Quit: This computer has gone to sleep)
22:53:08 <jackdk> energizer: I can't even make it to the kitchen without tripping over a monoid. They're an extremely flexible tool, and a great introduction to the "let's port algebraic structures to typeclasses" that you see a lot of in Haskell
22:53:56 <hpc> and just to rub it in, algebras themselves have two embedded monoids :D
22:54:51 son0p joins (~ff@181.136.122.143)
22:54:52 <jackdk> hpc: do you have a thing I can ready about that? I haven't heard this one
22:56:03 <hpc> just wikipedia
22:57:44 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
22:58:01 <hpc> an algebra has a ring, and a ring is basically (+), (*), and the distributive property
22:59:10 × acidjnk_new3 quits (~acidjnk@p200300d0c7441135e59462474fdf3062.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
22:59:26 <hpc> if you've ever thought that boolean algebra looks a lot like real algebra, they're the same abstract structure
23:00:02 <jackdk> Gotcha - I remember rings from undergrad. So what are (+) and (*) for algebras?
23:01:07 <hpc> they're me not wanting to type a bunch - https://en.wikipedia.org/wiki/Ring_(mathematics)#Definition is nice and concise
23:01:38 <jackdk> yep, and then by "algebra" you mean https://en.wikipedia.org/wiki/Algebra_over_a_field ?
23:01:42 <hpc> yep
23:02:02 <hpc> that whole algebraic structures sidebar is worth reading
23:02:02 <jackdk> ty for the pointer, I'll take a look
23:05:27 × CannibisIndica quits (~herb@user/mesaboogie) (Ping timeout: 260 seconds)
23:06:29 <hpc> if you want a more difficult rabbit hole to jump down after that, try figuring out what real calculus, lambda calculus, relational calculus, and calculus of constructions have in common
23:07:56 <hpc> (the answer may or may not be as neat and tidy)
23:09:50 <jackdk> stop making me want to quit my day job and go back to uni ;-)
23:11:49 <hpc> never!
23:12:14 × dariof4 quits (~dariof4@95.131.44.100) (Quit: WeeChat 3.3)
23:13:16 Null_A joins (~null_a@2601:645:8700:2290:19ff:7d99:67c6:79e3)
23:14:49 lavaman joins (~lavaman@98.38.249.169)
23:19:37 × son0p quits (~ff@181.136.122.143) (Remote host closed the connection)
23:24:22 × mmhat quits (~mmh@55d4bc38.access.ecotel.net) (Quit: WeeChat 3.3)
23:27:22 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
23:28:10 Midjak joins (~Midjak@82-65-111-221.subs.proxad.net)
23:28:53 × Midjak quits (~Midjak@82-65-111-221.subs.proxad.net) (Read error: Connection reset by peer)
23:29:12 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
23:29:12 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
23:29:12 wroathe joins (~wroathe@user/wroathe)
23:39:23 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 264 seconds)
23:43:43 × xsperry quits (~xs@user/xsperry) (Read error: Connection reset by peer)
23:44:12 CannibisIndica joins (~herb@user/mesaboogie)
23:44:51 CannibisIndica is now known as CannabisIndica
23:45:10 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
23:45:41 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
23:45:49 lavaman joins (~lavaman@98.38.249.169)
23:48:50 <DigitalKiwi> contains "calculus"
23:50:37 machinedgod joins (~machinedg@24.105.81.50)
23:52:35 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds)
23:58:37 × DNH quits (~DNH@8.43.122.53) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:59:54 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds)

All times are in UTC on 2021-10-30.