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.