2021-09-20 00:00:31 +0200 | __monty__ | (~toonn@user/toonn) (Ping timeout: 252 seconds) |
2021-09-20 00:02:05 +0200 | <Izem> | How do I read mappings with three arrows? |
2021-09-20 00:03:04 +0200 | <Izem> | a->[a]->[a] is (a->[a])->[a] or a->([a]->[a]) ? |
2021-09-20 00:03:30 +0200 | <geekosaur> | the latter |
2021-09-20 00:06:22 +0200 | Guest85 | (~Guest85@dynamic-78-30-180-145.adsl.eunet.rs) |
2021-09-20 00:07:33 +0200 | _xor | (~xor@74.215.232.67) (Quit: bbiab) |
2021-09-20 00:07:38 +0200 | <Cajun> | arrows are right associative |
2021-09-20 00:07:40 +0200 | jtomas_ | (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 240 seconds) |
2021-09-20 00:07:55 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-09-20 00:09:14 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-09-20 00:12:41 +0200 | Gurkenglas | (~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de) (Ping timeout: 268 seconds) |
2021-09-20 00:14:25 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-09-20 00:20:35 +0200 | <Franciman> | lol haskell is making fun of me |
2021-09-20 00:20:47 +0200 | <Cajun> | how so? |
2021-09-20 00:21:57 +0200 | <Franciman> | I have these two pieces of code |
2021-09-20 00:21:59 +0200 | <Franciman> | https://bpa.st/TY5Q |
2021-09-20 00:22:01 +0200 | <Franciman> | as you can see |
2021-09-20 00:22:10 +0200 | <Franciman> | in both I define a self-referential term |
2021-09-20 00:22:12 +0200 | <Franciman> | res |
2021-09-20 00:22:15 +0200 | <Franciman> | but I can't understand why |
2021-09-20 00:22:20 +0200 | <Franciman> | in the first case the program loops forever |
2021-09-20 00:22:29 +0200 | <Franciman> | while in the second case it works as I expect |
2021-09-20 00:22:37 +0200 | <Franciman> | is there less laziness in the first eval? |
2021-09-20 00:23:11 +0200 | <Franciman> | or is it related to something else? |
2021-09-20 00:26:11 +0200 | <Franciman> | maybe it is because I have a tuple? |
2021-09-20 00:26:25 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Remote host closed the connection) |
2021-09-20 00:26:43 +0200 | <geekosaur> | does putting ~ in front of the tuple help? |
2021-09-20 00:26:56 +0200 | NoirCode | (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) |
2021-09-20 00:27:18 +0200 | <Franciman> | lemme try |
2021-09-20 00:28:19 +0200 | __monty__ | (~toonn@user/toonn) |
2021-09-20 00:28:34 +0200 | CannabisIndica | (~herb@user/mesaboogie) (Ping timeout: 252 seconds) |
2021-09-20 00:29:21 +0200 | __monty__ | (~toonn@user/toonn) (Client Quit) |
2021-09-20 00:29:54 +0200 | Izem | (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) (Ping timeout: 265 seconds) |
2021-09-20 00:29:58 +0200 | <Franciman> | geekosaur: you are a genious |
2021-09-20 00:30:12 +0200 | <Franciman> | can i ask you what is happening? |
2021-09-20 00:30:25 +0200 | <geekosaur> | ~ in front of a pattern makes it lazy |
2021-09-20 00:30:42 +0200 | <geekosaur> | otherwise it was strictly matching the tuple and that may have caused the looping |
2021-09-20 00:30:43 +0200 | <Franciman> | oh nice! |
2021-09-20 00:30:54 +0200 | <Franciman> | thanks senseii |
2021-09-20 00:32:34 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
2021-09-20 00:37:24 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-09-20 00:37:30 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2021-09-20 00:37:58 +0200 | deejaytee | (~deejaytee@vpn-fn-228.net.ed.ac.uk) |
2021-09-20 00:38:11 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 268 seconds) |
2021-09-20 00:38:37 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-09-20 00:39:12 +0200 | jespada | (~jespada@2803:9800:9842:7a62:edd5:5e74:3ec2:1b19) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-09-20 00:39:14 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-09-20 00:41:46 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2.1) |
2021-09-20 00:44:01 +0200 | deejaytee | (~deejaytee@vpn-fn-228.net.ed.ac.uk) (Ping timeout: 252 seconds) |
2021-09-20 00:44:58 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 260 seconds) |
2021-09-20 00:45:23 +0200 | waleee | (~waleee@h-98-128-228-119.na.cust.bahnhof.se) |
2021-09-20 00:45:28 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-09-20 00:48:10 +0200 | dsrt^ | (~dsrt@12.203.127.82) |
2021-09-20 00:49:43 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
2021-09-20 00:51:13 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 00:51:43 +0200 | ulvarrefr | (~user@185.24.53.152) |
2021-09-20 00:58:10 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-09-20 00:59:18 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-09-20 00:59:32 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-09-20 00:59:48 +0200 | deejaytee | (~deejaytee@vpn-fn-228.net.ed.ac.uk) |
2021-09-20 00:59:55 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-09-20 01:00:11 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-09-20 01:00:12 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-09-20 01:00:12 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-09-20 01:00:35 +0200 | deejaytee | (~deejaytee@vpn-fn-228.net.ed.ac.uk) (Client Quit) |
2021-09-20 01:00:41 +0200 | <Franciman> | geekosaur: sorry, I have another similar problem now |
2021-09-20 01:00:48 +0200 | <Franciman> | I am in the ST monad, and I have |
2021-09-20 01:01:05 +0200 | <Franciman> | res <- runProgram s e (E.bind res bEnv') prog |
2021-09-20 01:01:13 +0200 | <Franciman> | is there a way to make this lazy too? |
2021-09-20 01:01:18 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2021-09-20 01:01:22 +0200 | <Franciman> | I tried with mdo |
2021-09-20 01:01:26 +0200 | <Franciman> | and RecursiveDo |
2021-09-20 01:01:28 +0200 | <Franciman> | but it loops :< |
2021-09-20 01:02:06 +0200 | TranquilEcho | (~grom@user/tranquilecho) (Quit: WeeChat 2.8) |
2021-09-20 01:02:06 +0200 | <geekosaur> | hm. that I don't know but suspect laziness will depend on ST's bind and there may be no way around it |
2021-09-20 01:02:54 +0200 | <Franciman> | this is unfortunate |
2021-09-20 01:02:55 +0200 | <Franciman> | damn |
2021-09-20 01:02:58 +0200 | <Franciman> | thanks |
2021-09-20 01:03:31 +0200 | <geekosaur> | res itself shjould already be lazy since it's irrefutable |
2021-09-20 01:04:05 +0200 | NoirCode | (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) (Ping timeout: 268 seconds) |
2021-09-20 01:05:11 +0200 | dsrt^ | (~dsrt@12.203.127.82) (Remote host closed the connection) |
2021-09-20 01:05:34 +0200 | <Franciman> | uhm, in fact the computation terminates at first |
2021-09-20 01:05:39 +0200 | <Franciman> | but then it says it loops |
2021-09-20 01:05:41 +0200 | <Franciman> | i.e. haskell says |
2021-09-20 01:05:44 +0200 | <Franciman> | ellipse: <<loop>> |
2021-09-20 01:05:54 +0200 | <Franciman> | so ST is doing its perverted magic |
2021-09-20 01:05:56 +0200 | <Franciman> | lol |
2021-09-20 01:06:19 +0200 | <geekosaur> | hm, that implies the loop is somewhere else |
2021-09-20 01:06:39 +0200 | <geekosaur> | <<loop>> means a thunk was reentered while evaluating it to WHNF |
2021-09-20 01:06:53 +0200 | <geekosaur> | i.e. something like x = x |
2021-09-20 01:08:20 +0200 | <Franciman> | is there a way to know what caused the <<loop>> ? |
2021-09-20 01:08:36 +0200 | <geekosaur> | possibly +RTS -xc |
2021-09-20 01:08:54 +0200 | <geekosaur> | may require building with profiling enabled |
2021-09-20 01:10:09 +0200 | <Franciman> | awesome |
2021-09-20 01:10:12 +0200 | <Franciman> | thanks |
2021-09-20 01:10:14 +0200 | <Franciman> | again |
2021-09-20 01:13:41 +0200 | roboguy_ | (~roboguy_@cpe-98-156-4-161.kc.res.rr.com) |
2021-09-20 01:16:28 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-09-20 01:16:39 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-09-20 01:16:40 +0200 | caef^ | (~caef@12.203.127.82) |
2021-09-20 01:17:26 +0200 | hnOsmium0001 | (uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-09-20 01:17:27 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-09-20 01:17:42 +0200 | MQ-17J | (~MQ-17J@8.21.10.6) |
2021-09-20 01:21:22 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2021-09-20 01:24:42 +0200 | NoirCode | (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) |
2021-09-20 01:25:13 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-09-20 01:26:50 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
2021-09-20 01:27:55 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 260 seconds) |
2021-09-20 01:31:16 +0200 | _xor | (~xor@74.215.232.67) |
2021-09-20 01:31:38 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Ping timeout: 260 seconds) |
2021-09-20 01:32:13 +0200 | solomon | (~solomon@cpe-76-168-7-139.socal.res.rr.com) |
2021-09-20 01:34:27 +0200 | hnOsmium0001 | (uid453710@id-453710.hampstead.irccloud.com) |
2021-09-20 01:34:37 +0200 | Guest85 | (~Guest85@dynamic-78-30-180-145.adsl.eunet.rs) (Quit: Client closed) |
2021-09-20 01:39:05 +0200 | sheddow | (~sheddow@2001:4652:3064:0:855:8e28:191f:6ce6) (Ping timeout: 256 seconds) |
2021-09-20 01:43:16 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-09-20 01:51:24 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-09-20 01:51:44 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-09-20 01:53:42 +0200 | nfd | (~nfd@user/nfd) |
2021-09-20 01:54:19 +0200 | solomon | (~solomon@cpe-76-168-7-139.socal.res.rr.com) (Quit: Client closed) |
2021-09-20 01:54:48 +0200 | solomon | (~quassel@cpe-76-168-7-139.socal.res.rr.com) |
2021-09-20 02:04:49 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
2021-09-20 02:08:09 +0200 | CnnibisIndica | (~herb@user/mesaboogie) |
2021-09-20 02:08:12 +0200 | NoirCode_ | (~Izem@8.21.10.23) |
2021-09-20 02:10:52 +0200 | NoirCode | (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) (Ping timeout: 252 seconds) |
2021-09-20 02:14:40 +0200 | kimjetwav | (~user@2607:fea8:235f:9730:89c:c105:9071:1b0f) (Ping timeout: 240 seconds) |
2021-09-20 02:16:46 +0200 | alzgh | (~alzgh@user/alzgh) (Quit: Client closed) |
2021-09-20 02:16:56 +0200 | kimjetwav | (~user@2607:fea8:235f:9730:23ff:5f44:89b9:6bce) |
2021-09-20 02:16:57 +0200 | roboguy_ | (~roboguy_@cpe-98-156-4-161.kc.res.rr.com) () |
2021-09-20 02:19:54 +0200 | kimjetwav | (~user@2607:fea8:235f:9730:23ff:5f44:89b9:6bce) (Remote host closed the connection) |
2021-09-20 02:20:13 +0200 | kimjetwav | (~user@2607:fea8:235f:9730:f832:edbc:11d:9a2e) |
2021-09-20 02:24:10 +0200 | tommd | (~tommd@75-164-130-101.ptld.qwest.net) |
2021-09-20 02:27:51 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-09-20 02:29:10 +0200 | tommd | (~tommd@75-164-130-101.ptld.qwest.net) (Ping timeout: 252 seconds) |
2021-09-20 02:30:37 +0200 | tommd | (~tommd@75-164-130-101.ptld.qwest.net) |
2021-09-20 02:33:58 +0200 | NoirCode_ | (~Izem@8.21.10.23) (Ping timeout: 252 seconds) |
2021-09-20 02:34:18 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
2021-09-20 02:34:51 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-09-20 02:35:56 +0200 | fawful | (~guy@c-76-104-217-93.hsd1.wa.comcast.net) (Quit: WeeChat 3.2) |
2021-09-20 02:39:03 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2021-09-20 02:39:43 +0200 | NoirCode_ | (~Izem@2a09:bac0:14::815:a17) |
2021-09-20 02:41:43 +0200 | NoirCode_ | (~Izem@2a09:bac0:14::815:a17) (Client Quit) |
2021-09-20 02:46:33 +0200 | mousey | (~sky@gateway/tor-sasl/mousey) (Ping timeout: 276 seconds) |
2021-09-20 02:46:39 +0200 | solomon | (~quassel@cpe-76-168-7-139.socal.res.rr.com) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-09-20 02:46:40 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2021-09-20 02:49:57 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-09-20 02:49:57 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-09-20 02:50:00 +0200 | allbery_b | geekosaur |
2021-09-20 02:52:02 +0200 | alx741 | (~alx741@186.178.109.159) (Quit: alx741) |
2021-09-20 02:52:11 +0200 | kimjetwav | (~user@2607:fea8:235f:9730:f832:edbc:11d:9a2e) (Remote host closed the connection) |
2021-09-20 02:52:29 +0200 | kimjetwav | (~user@2607:fea8:235f:9730:33fd:e247:ee73:4faa) |
2021-09-20 02:54:40 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-09-20 02:55:21 +0200 | solomon | (~quassel@cpe-76-168-7-139.socal.res.rr.com) |
2021-09-20 02:59:33 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-09-20 03:08:01 +0200 | solomon_ | (~quassel@cpe-76-168-7-139.socal.res.rr.com) |
2021-09-20 03:08:01 +0200 | solomon | (~quassel@cpe-76-168-7-139.socal.res.rr.com) (Read error: Connection reset by peer) |
2021-09-20 03:08:42 +0200 | tommd | (~tommd@75-164-130-101.ptld.qwest.net) (Ping timeout: 260 seconds) |
2021-09-20 03:10:06 +0200 | solomon_ | (~quassel@cpe-76-168-7-139.socal.res.rr.com) (Remote host closed the connection) |
2021-09-20 03:10:25 +0200 | kimjetwav | (~user@2607:fea8:235f:9730:33fd:e247:ee73:4faa) (Ping timeout: 252 seconds) |
2021-09-20 03:10:28 +0200 | solomon | (~quassel@cpe-76-168-7-139.socal.res.rr.com) |
2021-09-20 03:12:47 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
2021-09-20 03:13:35 +0200 | xff0x | (~xff0x@2001:1a81:5327:1a00:7ba6:6c4f:f759:2f72) (Ping timeout: 268 seconds) |
2021-09-20 03:14:51 +0200 | xff0x | (~xff0x@2001:1a81:5364:5d00:710d:a4b:8dea:f190) |
2021-09-20 03:18:13 +0200 | haykam1 | (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
2021-09-20 03:18:26 +0200 | haykam1 | (~haykam@static.100.2.21.65.clients.your-server.de) |
2021-09-20 03:18:35 +0200 | _xor | (~xor@74.215.232.67) (Quit: bbiab) |
2021-09-20 03:20:59 +0200 | MQ-17J | (~MQ-17J@8.21.10.6) (Ping timeout: 268 seconds) |
2021-09-20 03:22:48 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 03:23:15 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
2021-09-20 03:24:31 +0200 | MQ-17J | (~MQ-17J@2607:fb90:4f:6e7e:1ee7:8f90:78d9:1775) |
2021-09-20 03:30:50 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-09-20 03:30:50 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-09-20 03:30:50 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-09-20 03:31:52 +0200 | hiruji | (~hiruji@user/hiruji) (Ping timeout: 268 seconds) |
2021-09-20 03:32:02 +0200 | hiruji | (~hiruji@user/hiruji) |
2021-09-20 03:32:51 +0200 | solomon | (~quassel@cpe-76-168-7-139.socal.res.rr.com) (Remote host closed the connection) |
2021-09-20 03:33:15 +0200 | solomon | (~quassel@cpe-76-168-7-139.socal.res.rr.com) |
2021-09-20 03:36:24 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2021-09-20 03:38:19 +0200 | solomon | (~quassel@cpe-76-168-7-139.socal.res.rr.com) (Remote host closed the connection) |
2021-09-20 03:39:05 +0200 | vysn | (~vysn@user/vysn) (Remote host closed the connection) |
2021-09-20 03:40:00 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-09-20 03:44:18 +0200 | solomon | (~quassel@cpe-76-168-7-139.socal.res.rr.com) |
2021-09-20 03:49:15 +0200 | solomon | (~quassel@cpe-76-168-7-139.socal.res.rr.com) (Remote host closed the connection) |
2021-09-20 03:52:41 +0200 | MQ-17J | (~MQ-17J@2607:fb90:4f:6e7e:1ee7:8f90:78d9:1775) (Read error: Connection reset by peer) |
2021-09-20 03:53:19 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-09-20 03:55:55 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-09-20 04:01:08 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-09-20 04:01:09 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-09-20 04:01:09 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-09-20 04:04:48 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-09-20 04:06:45 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-09-20 04:08:51 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 265 seconds) |
2021-09-20 04:14:36 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
2021-09-20 04:15:27 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2021-09-20 04:17:24 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-09-20 04:17:58 +0200 | td_ | (~td@muedsl-82-207-238-223.citykom.de) (Ping timeout: 252 seconds) |
2021-09-20 04:18:06 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-09-20 04:23:38 +0200 | yinghua | (~yinghua@2800:2121:1400:1db:8865:3e5b:fd2e:180) (Quit: Leaving) |
2021-09-20 04:26:10 +0200 | waleee | (~waleee@h-98-128-228-119.na.cust.bahnhof.se) (Ping timeout: 252 seconds) |
2021-09-20 04:32:16 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-09-20 04:32:42 +0200 | finley | (~finley@035-134-237-178.res.spectrum.com) |
2021-09-20 04:34:50 +0200 | td_ | (~td@muedsl-82-207-238-087.citykom.de) |
2021-09-20 04:36:18 +0200 | finley | (~finley@035-134-237-178.res.spectrum.com) (Client Quit) |
2021-09-20 04:40:44 +0200 | chris | (~chris@81.96.113.213) |
2021-09-20 04:40:47 +0200 | chris | Guest9008 |
2021-09-20 04:45:11 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
2021-09-20 04:48:54 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-09-20 04:50:55 +0200 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2021-09-20 04:54:16 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-09-20 04:55:15 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 265 seconds) |
2021-09-20 04:57:02 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2021-09-20 05:00:27 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-09-20 05:06:18 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-09-20 05:06:59 +0200 | pfurla_ | (~pfurla@64.145.79.171) |
2021-09-20 05:10:10 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 252 seconds) |
2021-09-20 05:15:28 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 268 seconds) |
2021-09-20 05:19:25 +0200 | wei2912 | (~wei2912@112.199.250.21) |
2021-09-20 05:20:11 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Quit: Leaving) |
2021-09-20 05:22:35 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
2021-09-20 05:29:03 +0200 | Guest9008 | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-09-20 05:32:18 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-09-20 05:33:29 +0200 | _xor | (~xor@74.215.232.67) |
2021-09-20 05:45:30 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-09-20 05:45:58 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-09-20 05:47:32 +0200 | neo1 | (~neo3@cpe-292712.ip.primehome.com) |
2021-09-20 05:53:02 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 06:12:03 +0200 | solomon | (~quassel@cpe-76-168-7-139.socal.res.rr.com) |
2021-09-20 06:15:18 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-09-20 06:25:36 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-09-20 06:26:06 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-09-20 06:29:57 +0200 | cross | (~cross@spitfire.i.gajendra.net) (*.net *.split) |
2021-09-20 06:29:57 +0200 | ptrcmd | (~ptrcmd@user/ptrcmd) (*.net *.split) |
2021-09-20 06:29:57 +0200 | parseval | (sid239098@helmsley.irccloud.com) (*.net *.split) |
2021-09-20 06:29:57 +0200 | rtpg | (sid443069@id-443069.ilkley.irccloud.com) (*.net *.split) |
2021-09-20 06:29:57 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) (*.net *.split) |
2021-09-20 06:29:57 +0200 | rune | (sid21167@id-21167.ilkley.irccloud.com) (*.net *.split) |
2021-09-20 06:29:57 +0200 | SethTisue__ | (sid14912@id-14912.ilkley.irccloud.com) (*.net *.split) |
2021-09-20 06:29:57 +0200 | caasih | (sid13241@id-13241.ilkley.irccloud.com) (*.net *.split) |
2021-09-20 06:29:57 +0200 | sa1 | (sid7690@id-7690.ilkley.irccloud.com) (*.net *.split) |
2021-09-20 06:29:57 +0200 | jonrh | (sid5185@id-5185.ilkley.irccloud.com) (*.net *.split) |
2021-09-20 06:29:57 +0200 | psydroid | (~psydroid@user/psydroid) (*.net *.split) |
2021-09-20 06:29:57 +0200 | rosariopulella[m | (~rosariopu@2001:470:69fc:105::a57) (*.net *.split) |
2021-09-20 06:29:57 +0200 | enemeth79 | (sid309041@id-309041.lymington.irccloud.com) (*.net *.split) |
2021-09-20 06:29:57 +0200 | gaze___ | (sid387101@id-387101.helmsley.irccloud.com) (*.net *.split) |
2021-09-20 06:29:57 +0200 | bjs | (sid190364@user/bjs) (*.net *.split) |
2021-09-20 06:29:57 +0200 | NiKaN | (sid385034@id-385034.helmsley.irccloud.com) (*.net *.split) |
2021-09-20 06:29:57 +0200 | hiepph[m] | (~hiepphmat@2001:470:69fc:105::e3a8) (*.net *.split) |
2021-09-20 06:29:57 +0200 | jneira[m] | (~jneiramat@2001:470:69fc:105::d729) (*.net *.split) |
2021-09-20 06:29:57 +0200 | maerwald[m] | (~maerwaldm@user/maerwald) (*.net *.split) |
2021-09-20 06:29:58 +0200 | lwe[m] | (~dendrumat@2001:470:69fc:105::2f9b) (*.net *.split) |
2021-09-20 06:29:58 +0200 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) (*.net *.split) |
2021-09-20 06:29:58 +0200 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) (*.net *.split) |
2021-09-20 06:29:58 +0200 | blades | (~blades@204.48.29.163) (*.net *.split) |
2021-09-20 06:29:58 +0200 | noctux | (~noctux@user/noctux) (*.net *.split) |
2021-09-20 06:29:58 +0200 | adamCS | (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) (*.net *.split) |
2021-09-20 06:29:58 +0200 | asm | (~alexander@user/asm) (*.net *.split) |
2021-09-20 06:29:58 +0200 | mht | (~mht@2a03:b0c0:3:e0::1e2:c001) (*.net *.split) |
2021-09-20 06:29:58 +0200 | xnbya | (~xnbya@2a01:4f8:c17:cbdd::1) (*.net *.split) |
2021-09-20 06:29:58 +0200 | xacktm | (xacktm@user/xacktm) (*.net *.split) |
2021-09-20 06:29:58 +0200 | even4void | (even4void@came.here.for-some.fun) (*.net *.split) |
2021-09-20 06:30:05 +0200 | rune | (sid21167@id-21167.ilkley.irccloud.com) |
2021-09-20 06:30:05 +0200 | xnbya | (~xnbya@2a01:4f8:c17:cbdd::1) |
2021-09-20 06:30:06 +0200 | parseval | (sid239098@id-239098.helmsley.irccloud.com) |
2021-09-20 06:30:06 +0200 | ptrcmd | (~ptrcmd@user/ptrcmd) |
2021-09-20 06:30:13 +0200 | enemeth79 | (sid309041@id-309041.lymington.irccloud.com) |
2021-09-20 06:30:14 +0200 | bjs | (sid190364@user/bjs) |
2021-09-20 06:30:17 +0200 | gaze___ | (sid387101@id-387101.helmsley.irccloud.com) |
2021-09-20 06:30:19 +0200 | asm | (~alexander@burner.asm89.io) |
2021-09-20 06:30:25 +0200 | SethTisue__ | (sid14912@id-14912.ilkley.irccloud.com) |
2021-09-20 06:30:26 +0200 | cross | (~cross@spitfire.i.gajendra.net) |
2021-09-20 06:30:26 +0200 | mht | (~mht@mht.wtf) |
2021-09-20 06:30:48 +0200 | jonrh | (sid5185@id-5185.ilkley.irccloud.com) |
2021-09-20 06:30:49 +0200 | caasih | (sid13241@id-13241.ilkley.irccloud.com) |
2021-09-20 06:30:50 +0200 | NiKaN | (sid385034@id-385034.helmsley.irccloud.com) |
2021-09-20 06:30:55 +0200 | rtpg | (sid443069@id-443069.ilkley.irccloud.com) |
2021-09-20 06:30:55 +0200 | sa1 | (sid7690@id-7690.ilkley.irccloud.com) |
2021-09-20 06:30:56 +0200 | blades | (~blades@204.48.29.163) |
2021-09-20 06:31:05 +0200 | noctux | (~noctux@user/noctux) |
2021-09-20 06:31:08 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-09-20 06:31:13 +0200 | adamCS | (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) |
2021-09-20 06:31:36 +0200 | xacktm | (xacktm@user/xacktm) |
2021-09-20 06:31:54 +0200 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) |
2021-09-20 06:32:06 +0200 | even4void | (even4void@came.here.for-some.fun) |
2021-09-20 06:36:14 +0200 | hiepph[m] | (~hiepphmat@2001:470:69fc:105::e3a8) |
2021-09-20 06:37:25 +0200 | rosariopulella[m | (~rosariopu@2001:470:69fc:105::a57) |
2021-09-20 06:38:30 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) |
2021-09-20 06:39:50 +0200 | jneira[m] | (~jneiramat@2001:470:69fc:105::d729) |
2021-09-20 06:40:00 +0200 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) |
2021-09-20 06:40:18 +0200 | lwe[m] | (~dendrumat@2001:470:69fc:105::2f9b) |
2021-09-20 06:40:18 +0200 | psydroid | (~psydroid@user/psydroid) |
2021-09-20 06:41:38 +0200 | ixlun | (~ixlun@2001:470:69fc:105::41b3) (*.net *.split) |
2021-09-20 06:41:38 +0200 | IgnatInsarov[m] | (~kindaroma@2001:470:69fc:105::f5d9) (*.net *.split) |
2021-09-20 06:41:38 +0200 | reddishblue[m] | (~reddishbl@2001:470:69fc:105::21eb) (*.net *.split) |
2021-09-20 06:41:38 +0200 | barrucadu | (~barrucadu@carcosa.barrucadu.co.uk) (*.net *.split) |
2021-09-20 06:41:38 +0200 | hexagoxe- | (~hexagoxel@2a01:4f8:c0c:e::2) (*.net *.split) |
2021-09-20 06:41:38 +0200 | acro | (~acro@user/acro) (*.net *.split) |
2021-09-20 06:41:38 +0200 | V | (~v@anomalous.eu) (*.net *.split) |
2021-09-20 06:41:38 +0200 | lightandlight | (sid135476@id-135476.helmsley.irccloud.com) (*.net *.split) |
2021-09-20 06:41:38 +0200 | truckasaurus | (sid457088@id-457088.helmsley.irccloud.com) (*.net *.split) |
2021-09-20 06:41:38 +0200 | tnks | (sid412124@id-412124.helmsley.irccloud.com) (*.net *.split) |
2021-09-20 06:41:38 +0200 | Xnuk | (~xnuk@45.76.202.58) (*.net *.split) |
2021-09-20 06:41:38 +0200 | mrianbloom | (sid350277@id-350277.ilkley.irccloud.com) (*.net *.split) |
2021-09-20 06:41:38 +0200 | edwardk | (sid47016@haskell/developer/edwardk) (*.net *.split) |
2021-09-20 06:41:38 +0200 | bw | (sid2730@user/betawaffle) (*.net *.split) |
2021-09-20 06:41:38 +0200 | bb010g | (~bb010g@2001:470:69fc:105::9a5) (*.net *.split) |
2021-09-20 06:41:38 +0200 | jakefromstatefar | (~jakefroms@2001:470:69fc:105::15ef) (*.net *.split) |
2021-09-20 06:41:38 +0200 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) (*.net *.split) |
2021-09-20 06:41:38 +0200 | aria | (sid380617@id-380617.lymington.irccloud.com) (*.net *.split) |
2021-09-20 06:41:38 +0200 | integral | (sid296274@user/integral) (*.net *.split) |
2021-09-20 06:41:38 +0200 | hsiktas | (sid224847@id-224847.lymington.irccloud.com) (*.net *.split) |
2021-09-20 06:41:38 +0200 | degraafk | (sid71464@id-71464.lymington.irccloud.com) (*.net *.split) |
2021-09-20 06:41:38 +0200 | iphy | (sid67735@id-67735.lymington.irccloud.com) (*.net *.split) |
2021-09-20 06:41:38 +0200 | NinjaTrappeur | (~ninja@user/ninjatrappeur) (*.net *.split) |
2021-09-20 06:41:38 +0200 | craige[m] | (~craigemcw@2001:470:69fc:105::35f1) (*.net *.split) |
2021-09-20 06:41:39 +0200 | robertm | (robertm@rojoma.com) (*.net *.split) |
2021-09-20 06:41:39 +0200 | kritzefitz | (~kritzefit@picard.host.weltraumschlangen.de) (*.net *.split) |
2021-09-20 06:41:39 +0200 | nf | (~n@monade.li) (*.net *.split) |
2021-09-20 06:41:39 +0200 | DigitalKiwi | (~kiwi@2604:a880:400:d0::12fc:5001) (*.net *.split) |
2021-09-20 06:41:39 +0200 | krjst | (~krjst@2604:a880:800:c1::16b:8001) (*.net *.split) |
2021-09-20 06:41:39 +0200 | ringo_ | (~ringo@157.230.117.128) (*.net *.split) |
2021-09-20 06:41:39 +0200 | emergence | (~emergence@vm0.max-p.me) (*.net *.split) |
2021-09-20 06:41:39 +0200 | dyniec | (~dyniec@mail.dybiec.info) (*.net *.split) |
2021-09-20 06:41:39 +0200 | vemek | (~vemek@2a03:b0c0:2:d0::d98:1) (*.net *.split) |
2021-09-20 06:41:39 +0200 | cocreature | (~moritz@2a03:b0c0:3:d0::c8:f001) (*.net *.split) |
2021-09-20 06:41:39 +0200 | thonkpod | (~thonkpod@user/thonkpod) (*.net *.split) |
2021-09-20 06:41:39 +0200 | bsima | (~bsima@simatime.com) (*.net *.split) |
2021-09-20 06:41:47 +0200 | mrianbloom | (sid350277@id-350277.ilkley.irccloud.com) |
2021-09-20 06:41:50 +0200 | iphy | (sid67735@id-67735.lymington.irccloud.com) |
2021-09-20 06:41:50 +0200 | truckasaurus | (sid457088@id-457088.helmsley.irccloud.com) |
2021-09-20 06:41:50 +0200 | kritzefitz | (~kritzefit@picard.host.weltraumschlangen.de) |
2021-09-20 06:41:54 +0200 | degraafk | (sid71464@id-71464.lymington.irccloud.com) |
2021-09-20 06:41:55 +0200 | dyniec | (~dyniec@mail.dybiec.info) |
2021-09-20 06:41:56 +0200 | emergence | (~emergence@vm0.max-p.me) |
2021-09-20 06:41:56 +0200 | Xnuk | (~xnuk@45.76.202.58) |
2021-09-20 06:42:00 +0200 | lightandlight | (sid135476@id-135476.helmsley.irccloud.com) |
2021-09-20 06:42:05 +0200 | V | (~v@anomalous.eu) |
2021-09-20 06:42:09 +0200 | barrucadu | (~barrucadu@carcosa.barrucadu.co.uk) |
2021-09-20 06:42:10 +0200 | robertm | (robertm@lattice.rojoma.com) |
2021-09-20 06:42:13 +0200 | hexagoxel | (~hexagoxel@hexagoxel.de) |
2021-09-20 06:42:14 +0200 | bsima | (~bsima@simatime.com) |
2021-09-20 06:42:16 +0200 | acro | (~acro@user/acro) |
2021-09-20 06:42:17 +0200 | thonkpod | (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) |
2021-09-20 06:42:19 +0200 | NinjaTrappeur | (~ninja@2a00:5880:1404:102::) |
2021-09-20 06:42:19 +0200 | NinjaTrappeur | (~ninja@2a00:5880:1404:102::) (Signing in (NinjaTrappeur)) |
2021-09-20 06:42:19 +0200 | NinjaTrappeur | (~ninja@user/ninjatrappeur) |
2021-09-20 06:42:21 +0200 | thonkpod | (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) (Changing host) |
2021-09-20 06:42:21 +0200 | thonkpod | (~thonkpod@user/thonkpod) |
2021-09-20 06:42:26 +0200 | aria | (sid380617@2a03:5180:f:2::5:cec9) |
2021-09-20 06:42:33 +0200 | integral | (sid296274@user/integral) |
2021-09-20 06:42:34 +0200 | edwardk | (sid47016@haskell/developer/edwardk) |
2021-09-20 06:42:35 +0200 | DigitalKiwi | (~kiwi@192.241.157.119) |
2021-09-20 06:42:39 +0200 | cocreature | (~moritz@2a03:b0c0:3:d0::c8:f001) |
2021-09-20 06:42:41 +0200 | ringo_ | (~ringo@157.230.117.128) |
2021-09-20 06:42:42 +0200 | tnks | (sid412124@2a03:5180:f:1::6:49dc) |
2021-09-20 06:42:44 +0200 | vemek | (~vemek@2a03:b0c0:2:d0::d98:1) |
2021-09-20 06:42:47 +0200 | bw | (sid2730@user/betawaffle) |
2021-09-20 06:42:50 +0200 | hsiktas | (sid224847@2a03:5180:f:2::3:6e4f) |
2021-09-20 06:42:54 +0200 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) |
2021-09-20 06:43:16 +0200 | nf | (~n@monade.li) |
2021-09-20 06:43:32 +0200 | krjst | (~krjst@2604:a880:800:c1::16b:8001) |
2021-09-20 06:43:49 +0200 | eruditass | (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2021-09-20 06:44:33 +0200 | bb010g | (~bb010g@2001:470:69fc:105::9a5) |
2021-09-20 06:45:00 +0200 | reddishblue[m] | (~reddishbl@2001:470:69fc:105::21eb) |
2021-09-20 06:45:10 +0200 | IgnatInsarov[m] | (~kindaroma@2001:470:69fc:105::f5d9) |
2021-09-20 06:46:13 +0200 | ixlun | (~ixlun@2001:470:69fc:105::41b3) |
2021-09-20 06:46:25 +0200 | robertm | (robertm@lattice.rojoma.com) (Client Quit) |
2021-09-20 06:46:33 +0200 | robertm | (robertm@lattice.rojoma.com) |
2021-09-20 06:47:23 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-09-20 06:50:27 +0200 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) |
2021-09-20 06:51:12 +0200 | craige[m] | (~craigemcw@2001:470:69fc:105::35f1) |
2021-09-20 06:51:45 +0200 | jakefromstatefar | (~jakefroms@2001:470:69fc:105::15ef) |
2021-09-20 06:53:49 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-09-20 06:54:11 +0200 | ChanServ | (ChanServ@services.libera.chat) (shutting down) |
2021-09-20 06:54:38 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
2021-09-20 06:58:28 +0200 | ChanServ | (ChanServ@services.libera.chat) |
2021-09-20 06:58:28 +0200 | zinc.libera.chat | +o ChanServ |
2021-09-20 07:07:45 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-09-20 07:09:47 +0200 | eruditass | (uid248673@id-248673.uxbridge.irccloud.com) |
2021-09-20 07:10:55 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-09-20 07:10:55 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-09-20 07:10:55 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-09-20 07:15:10 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2021-09-20 07:16:22 +0200 | eruditass | (uid248673@id-248673.uxbridge.irccloud.com) () |
2021-09-20 07:18:29 +0200 | eruditass | (uid248673@id-248673.uxbridge.irccloud.com) |
2021-09-20 07:25:11 +0200 | cjb | (~cjbayliss@user/cjb) () |
2021-09-20 07:35:08 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
2021-09-20 07:35:57 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-09-20 07:36:19 +0200 | fendor | (~fendor@178.165.185.65.wireless.dyn.drei.com) |
2021-09-20 07:38:03 +0200 | <Guest372> | inside Either do notation, could I turn Just 3 to Right 3? |
2021-09-20 07:38:24 +0200 | <Guest372> | by what? |
2021-09-20 07:39:25 +0200 | <dsal> | It's not clear what you mean by that. |
2021-09-20 07:39:26 +0200 | <pavonia> | You can use pattern matching |
2021-09-20 07:39:56 +0200 | <dsal> | If you have a left and you bind, it's not going to move forward. |
2021-09-20 07:41:42 +0200 | mikoto-chan | (~mikoto-ch@83.137.2.253) |
2021-09-20 07:41:43 +0200 | <Guest372> | a :: Either String Int; a = do { x <- Just 3; return x } Just 3 inside Either is not right |
2021-09-20 07:41:51 +0200 | <dsal> | Oh, I'm too dumb to be answering questions right now. |
2021-09-20 07:42:13 +0200 | <dsal> | @hoogle maybeToRight |
2021-09-20 07:42:14 +0200 | <lambdabot> | Data.Either.Combinators maybeToRight :: b -> Maybe a -> Either b a |
2021-09-20 07:42:14 +0200 | <lambdabot> | Protolude maybeToRight :: l -> Maybe r -> Either l r |
2021-09-20 07:42:14 +0200 | <lambdabot> | Protolude.Either maybeToRight :: l -> Maybe r -> Either l r |
2021-09-20 07:42:20 +0200 | <koala_man> | Guest372: what if it's Nothing? |
2021-09-20 07:42:28 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Quit: WeeChat 3.1) |
2021-09-20 07:42:39 +0200 | <Guest372> | Nothing then Left something |
2021-09-20 07:42:49 +0200 | <dsal> | You have to say what the something is. |
2021-09-20 07:43:04 +0200 | <Guest372> | Left "something" |
2021-09-20 07:43:29 +0200 | <dsal> | x <- maybeToRight "something" (Just 3) |
2021-09-20 07:43:43 +0200 | <Guest372> | :t maybe |
2021-09-20 07:43:44 +0200 | <lambdabot> | b -> (a -> b) -> Maybe a -> b |
2021-09-20 07:44:22 +0200 | <dsal> | > maybe (Left "something" Right (Just 3) |
2021-09-20 07:44:24 +0200 | <lambdabot> | <hint>:1:40: error: |
2021-09-20 07:44:24 +0200 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
2021-09-20 07:44:30 +0200 | <dsal> | > maybe (Left "something") Right (Just 3) |
2021-09-20 07:44:31 +0200 | <lambdabot> | Right 3 |
2021-09-20 07:44:52 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 252 seconds) |
2021-09-20 07:47:13 +0200 | <Guest372> | right, b :: Either String Int here |
2021-09-20 07:48:33 +0200 | <Guest372> | do all monad have something like `maybe' to turn one moand to another? |
2021-09-20 07:48:52 +0200 | <dsal> | No. That's not really a sensible thing to do. |
2021-09-20 07:49:03 +0200 | <Guest372> | turn a monadic value to another |
2021-09-20 07:49:23 +0200 | <dsal> | That's not what you're doing here anyway. |
2021-09-20 07:49:31 +0200 | <dsal> | They do all have fmap, which is the actual thing you want. |
2021-09-20 07:49:43 +0200 | <dsal> | The transformation you're doing doesn't have anything to do with it being a monad. |
2021-09-20 07:49:51 +0200 | <Guest372> | but fmap wont change monad |
2021-09-20 07:51:08 +0200 | <Guest372> | :t (:~:) |
2021-09-20 07:51:09 +0200 | <lambdabot> | error: Data constructor not in scope: :~: |
2021-09-20 07:51:50 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-09-20 07:53:05 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
2021-09-20 07:53:09 +0200 | <dsal> | Sure, so in this case, you have some value and you want that value to be pure in the current monad. That's `pure` |
2021-09-20 07:53:11 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-09-20 07:53:22 +0200 | <dsal> | :t maybe fail pure |
2021-09-20 07:53:23 +0200 | <lambdabot> | MonadFail m => Maybe (m a) -> String -> m a |
2021-09-20 07:53:37 +0200 | <dsal> | :t maybe (fail "wtf") pure |
2021-09-20 07:53:38 +0200 | <lambdabot> | MonadFail m => Maybe a -> m a |
2021-09-20 07:54:29 +0200 | <dsal> | But that's only because the `maybe` function can take (sometimes) take a value out of the Maybe. You can't do that in general. And even in this case, it acknowledges that you can't always do that. |
2021-09-20 07:55:06 +0200 | mikoto-chan | (~mikoto-ch@83.137.2.253) (Quit: mikoto-chan) |
2021-09-20 07:55:20 +0200 | <kaol> | If there was a general operator that would tranform one monad to another, it would make them useless. |
2021-09-20 08:00:08 +0200 | <Guest372> | what about "natural transformation"? |
2021-09-20 08:01:08 +0200 | <Guest372> | :t (~>) |
2021-09-20 08:01:09 +0200 | <lambdabot> | error: |
2021-09-20 08:01:10 +0200 | <lambdabot> | • Variable not in scope: ~> |
2021-09-20 08:01:10 +0200 | <lambdabot> | • Perhaps you meant one of these: |
2021-09-20 08:01:43 +0200 | qbt | (~edun@user/edun) |
2021-09-20 08:05:05 +0200 | chomwitt | (~chomwitt@2a02:587:dc15:500:12c3:7bff:fe6d:d374) |
2021-09-20 08:06:41 +0200 | michalz | (~michalz@185.246.204.61) |
2021-09-20 08:09:10 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-09-20 08:09:10 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-09-20 08:09:10 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-09-20 08:10:05 +0200 | <Axman6> | Guest372: how would you turn Maybe a into Identity a? |
2021-09-20 08:10:17 +0200 | <Axman6> | or Proxy a into anything else? |
2021-09-20 08:11:12 +0200 | oxide | (~lambda@user/oxide) |
2021-09-20 08:13:59 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 246 seconds) |
2021-09-20 08:15:58 +0200 | caef^ | (~caef@12.203.127.82) (Remote host closed the connection) |
2021-09-20 08:18:51 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-09-20 08:19:24 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-09-20 08:19:46 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-09-20 08:20:38 +0200 | Gurkenglas | (~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de) |
2021-09-20 08:23:19 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 08:24:20 +0200 | <Guest372> | I dont know |
2021-09-20 08:28:59 +0200 | michalz | (~michalz@185.246.204.61) (Remote host closed the connection) |
2021-09-20 08:30:59 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
2021-09-20 08:31:26 +0200 | michalz | (~michalz@185.246.204.62) |
2021-09-20 08:35:29 +0200 | gawen | (~gawen@user/gawen) (Quit: cya) |
2021-09-20 08:35:49 +0200 | gawen | (~gawen@user/gawen) |
2021-09-20 08:36:31 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-09-20 08:37:39 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-09-20 08:39:34 +0200 | pfurla_ | (~pfurla@64.145.79.171) (Ping timeout: 260 seconds) |
2021-09-20 08:44:14 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-09-20 08:45:10 +0200 | oxide | (~lambda@user/oxide) (Ping timeout: 240 seconds) |
2021-09-20 08:46:27 +0200 | oxide | (~lambda@user/oxide) |
2021-09-20 08:46:45 +0200 | max22- | (~maxime@2a01cb08833598008dc4cca798d182ee.ipv6.abo.wanadoo.fr) |
2021-09-20 08:47:50 +0200 | michalz | (~michalz@185.246.204.62) (Remote host closed the connection) |
2021-09-20 08:47:57 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:2927:efa3:44fc:5df6) |
2021-09-20 08:49:02 +0200 | michalz | (~michalz@185.246.204.33) |
2021-09-20 08:49:34 +0200 | chele | (~chele@user/chele) |
2021-09-20 08:50:02 +0200 | Brumaire | (~quassel@37.171.164.139) |
2021-09-20 08:56:02 +0200 | jtomas_ | (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) |
2021-09-20 08:57:23 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-09-20 09:01:09 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-09-20 09:07:51 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-09-20 09:12:43 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-09-20 09:12:43 +0200 | jstolarek | (~jstolarek@ers4.neoplus.adsl.tpnet.pl) |
2021-09-20 09:17:23 +0200 | ziman | (~ziman@c25-5.condornet.sk) (Changing host) |
2021-09-20 09:17:23 +0200 | ziman | (~ziman@user/ziman) |
2021-09-20 09:22:04 +0200 | Brumaire | (~quassel@37.171.164.139) (Ping timeout: 252 seconds) |
2021-09-20 09:23:12 +0200 | chris | (~chris@81.96.113.213) |
2021-09-20 09:23:16 +0200 | chris | Guest1692 |
2021-09-20 09:24:50 +0200 | vysn | (~vysn@user/vysn) |
2021-09-20 09:28:07 +0200 | <hololeap> | Guest372: f :: Maybe a -> Identity a ; f (Just x) = Identity x ; f Nothing = Identity ? -- there is way to do it for one of the cases |
2021-09-20 09:29:04 +0200 | <hololeap> | so if you think about natural transformations as something akin to functions, this one would be partial -- one of the inputs would create an undefined output |
2021-09-20 09:29:18 +0200 | Brumaire | (~quassel@37.171.164.139) |
2021-09-20 09:29:40 +0200 | nfd | (~nfd@user/nfd) (Ping timeout: 240 seconds) |
2021-09-20 09:29:46 +0200 | natechan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-09-20 09:31:53 +0200 | ubert | (~Thunderbi@91.141.77.1.wireless.dyn.drei.com) |
2021-09-20 09:32:20 +0200 | NinjaTrappeur | (~ninja@user/ninjatrappeur) (Quit: WeeChat 3.1) |
2021-09-20 09:32:36 +0200 | NinjaTrappeur | (~ninja@user/ninjatrappeur) |
2021-09-20 09:33:04 +0200 | CnnibisIndica | (~herb@user/mesaboogie) (Ping timeout: 252 seconds) |
2021-09-20 09:33:40 +0200 | ulvarrefr | (~user@185.24.53.152) (Remote host closed the connection) |
2021-09-20 09:33:46 +0200 | natechan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-09-20 09:34:52 +0200 | vaucouleur | (~vaucouleu@78.194.70.105) |
2021-09-20 09:35:04 +0200 | skn2 | skn |
2021-09-20 09:36:56 +0200 | <hololeap> | however, since Maybe has two branches and Identity has one, you could supply a default value for when you are given a Nothing: a -> Maybe a -> Identity a |
2021-09-20 09:37:41 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-09-20 09:37:48 +0200 | <hololeap> | that's essentially the `maybe` function, which is specific to how Maybe is structured. there is no general way to do this |
2021-09-20 09:40:53 +0200 | <hololeap> | except to use haskell as a general purpose language, but that's nothing new |
2021-09-20 09:44:15 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-09-20 09:46:24 +0200 | neurocyte013 | (~neurocyte@IP-213157011203.dynamic.medianet-world.de) |
2021-09-20 09:46:24 +0200 | neurocyte013 | (~neurocyte@IP-213157011203.dynamic.medianet-world.de) (Changing host) |
2021-09-20 09:46:24 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) |
2021-09-20 09:46:35 +0200 | nfd | (~nfd@user/nfd) |
2021-09-20 09:46:48 +0200 | rond_ | (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) |
2021-09-20 09:47:35 +0200 | ulvarrefr | (~user@185.24.53.152) |
2021-09-20 09:50:08 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-09-20 09:53:40 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.2.1) |
2021-09-20 09:53:40 +0200 | mousey | (~sky@gateway/tor-sasl/mousey) |
2021-09-20 09:57:01 +0200 | meinside | (uid24933@id-24933.helmsley.irccloud.com) |
2021-09-20 10:04:14 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 10:04:56 +0200 | on^ | (~on@12.203.127.82) |
2021-09-20 10:05:18 +0200 | mousey | (~sky@gateway/tor-sasl/mousey) (Ping timeout: 276 seconds) |
2021-09-20 10:05:51 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-09-20 10:09:12 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
2021-09-20 10:15:19 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
2021-09-20 10:17:45 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-09-20 10:17:45 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-09-20 10:17:48 +0200 | allbery_b | geekosaur |
2021-09-20 10:18:28 +0200 | neurocyte013 | (~neurocyte@ip-213157011203.dynamic.medianet-world.de) |
2021-09-20 10:18:28 +0200 | neurocyte013 | (~neurocyte@ip-213157011203.dynamic.medianet-world.de) (Changing host) |
2021-09-20 10:18:28 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) |
2021-09-20 10:21:00 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Remote host closed the connection) |
2021-09-20 10:21:57 +0200 | sheddow | (~sheddow@2001:4652:3064:0:855:8e28:191f:6ce6) |
2021-09-20 10:23:02 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-09-20 10:23:28 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-09-20 10:25:27 +0200 | tremon | (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) |
2021-09-20 10:26:43 +0200 | vysn | (~vysn@user/vysn) (Remote host closed the connection) |
2021-09-20 10:27:26 +0200 | hnOsmium0001 | (uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-09-20 10:30:52 +0200 | Pickchea | (~private@user/pickchea) |
2021-09-20 10:38:56 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
2021-09-20 10:38:59 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-09-20 10:42:00 +0200 | michalz | (~michalz@185.246.204.33) (Remote host closed the connection) |
2021-09-20 10:43:22 +0200 | michalz | (~michalz@185.246.204.61) |
2021-09-20 10:49:06 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-09-20 10:54:23 +0200 | azeem | (~azeem@2a00:801:3c5:e7ed:96db:1881:5af8:10cd) (Read error: Connection reset by peer) |
2021-09-20 10:54:40 +0200 | azeem | (~azeem@emp-91-123.eduroam.uu.se) |
2021-09-20 10:57:10 +0200 | Phantastes | (~Phantaste@c-67-173-229-120.hsd1.co.comcast.net) |
2021-09-20 11:01:37 +0200 | Brumaire | (~quassel@37.171.164.139) (Ping timeout: 265 seconds) |
2021-09-20 11:03:36 +0200 | burnsidesLlama | (~burnsides@dhcp168-026.wadham.ox.ac.uk) |
2021-09-20 11:06:02 +0200 | Guest1692 | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-09-20 11:11:23 +0200 | reyaboj | (~reyaboj@103.69.150.85) |
2021-09-20 11:12:46 +0200 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) |
2021-09-20 11:13:08 +0200 | chris | (~chris@81.96.113.213) |
2021-09-20 11:13:12 +0200 | chris | Guest3607 |
2021-09-20 11:16:15 +0200 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-09-20 11:18:07 +0200 | Guest3607 | (~chris@81.96.113.213) (Ping timeout: 252 seconds) |
2021-09-20 11:21:30 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
2021-09-20 11:26:29 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Ping timeout: 264 seconds) |
2021-09-20 11:29:15 +0200 | Phantastes | (~Phantaste@c-67-173-229-120.hsd1.co.comcast.net) (Quit: Client closed) |
2021-09-20 11:37:29 +0200 | reyaboj | (~reyaboj@103.69.150.85) (Ping timeout: 256 seconds) |
2021-09-20 11:39:06 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-09-20 11:39:31 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-09-20 11:41:13 +0200 | slurmz | (~slurmz@71-212-119-5.tukw.qwest.net) |
2021-09-20 11:47:15 +0200 | mousey | (~sky@gateway/tor-sasl/mousey) |
2021-09-20 11:50:13 +0200 | x28girl | (~x28girl@user/x28girl) (Quit: Leaving) |
2021-09-20 11:50:21 +0200 | arjun | (~Srain@user/arjun) |
2021-09-20 11:51:22 +0200 | <arjun> | hi. how do i sequence a bunch of Char actions and get a Text value ? since String is [Char] but Text isn't, and i am sure interconverting them isn't the way to go here |
2021-09-20 11:52:08 +0200 | <arjun> | usecase:- i have a fn charP :: Char -> Parser Char, that parses that specific character |
2021-09-20 11:52:09 +0200 | <dminuoso> | What is a "Char action"? |
2021-09-20 11:52:17 +0200 | <arjun> | dminuoso: ^ |
2021-09-20 11:52:24 +0200 | <maerwald> | fmap T.singleton |
2021-09-20 11:52:35 +0200 | <dminuoso> | arjun: depends a bit what the right way is. |
2021-09-20 11:52:56 +0200 | <dminuoso> | Is this just some odd instance where you need a Text, or are you generally processing some textual data and want most of that in Text? |
2021-09-20 11:53:30 +0200 | <arjun> | now i am looking to make a fn called textP that takes a text string and makes a parser for that string composed of little char parsers |
2021-09-20 11:53:39 +0200 | <merijn> | Which parser are you using? |
2021-09-20 11:53:40 +0200 | <arjun> | maerwald: ? |
2021-09-20 11:53:52 +0200 | <arjun> | merijn: writing my own, just base |
2021-09-20 11:53:53 +0200 | <maerwald> | arjun: Parsers usually have a functor instance |
2021-09-20 11:54:28 +0200 | MidAutumnMoon | (~MidAutumn@user/midautumnmoon) (Quit: Ping timeout (120 seconds)) |
2021-09-20 11:54:34 +0200 | <merijn> | arjun: Most parser have builtin primitives for grabbing entire chunks at a time, so you don't have to go through parsing N individual characters and turning those into Text later |
2021-09-20 11:54:54 +0200 | <merijn> | maerwald: His question (I think) was "how do I parse *multiple* characters into Text" |
2021-09-20 11:55:02 +0200 | <merijn> | Not just a single Char parser |
2021-09-20 11:55:14 +0200 | <dminuoso> | No this is more XY |
2021-09-20 11:55:15 +0200 | <maerwald> | `charP` looks like parsing a single Char |
2021-09-20 11:55:15 +0200 | <arjun> | maerwald: yus |
2021-09-20 11:55:24 +0200 | <arjun> | yus |
2021-09-20 11:55:51 +0200 | <dminuoso> | Between the lines Im reading: how can I build `string` for `string "foo"` |
2021-09-20 11:55:57 +0200 | <maerwald> | charP' c = T.singleton <$> charP c |
2021-09-20 11:56:13 +0200 | <dminuoso> | See: 11:53:30 arjun | now i am looking to make a fn called textP that takes a text string and makes a parser for that string composed of little char parsers |
2021-09-20 11:56:26 +0200 | <maerwald> | which givem you `charP' :: Char -> Parser Text` |
2021-09-20 11:56:41 +0200 | <dminuoso> | So I'd start a bit earlier: What is it that you're trying to solve, really. |
2021-09-20 11:56:58 +0200 | <arjun> | maerwald: you got it |
2021-09-20 11:57:39 +0200 | <arjun> | dminuoso: writing a parser from scratch, just base, for some metadata i need on my static site generator . |
2021-09-20 11:58:16 +0200 | <arjun> | and i am using Text as the type for textual data than using String |
2021-09-20 11:58:44 +0200 | <dminuoso> | If this has to be base, Id just use ReadP and stick to String. |
2021-09-20 11:58:56 +0200 | <dminuoso> | It's got a few gotchas, but oh well. |
2021-09-20 11:59:21 +0200 | <maerwald> | oh god no |
2021-09-20 11:59:34 +0200 | <maerwald> | ReadP/ReadS are abominations |
2021-09-20 11:59:34 +0200 | <merijn> | dminuoso: oof |
2021-09-20 11:59:49 +0200 | <merijn> | dminuoso: Don't tell people to self-harm, please >.> |
2021-09-20 11:59:50 +0200 | <dminuoso> | Yes they are, but honestly, I wouldn't self-impose "cant depend on megaparsec/attoparsec" in the first place. |
2021-09-20 12:00:03 +0200 | <dminuoso> | Self-rolling parser combinators likely causes same or more oofs. |
2021-09-20 12:00:11 +0200 | <maerwald> | it's a gread exercise |
2021-09-20 12:00:19 +0200 | <maerwald> | using ReadP isn't, it's just... anger |
2021-09-20 12:00:25 +0200 | <merijn> | At least self-rolling parser combinators is fairly straightforward *and* educational |
2021-09-20 12:00:31 +0200 | dminuoso | shrugs |
2021-09-20 12:00:35 +0200 | <merijn> | ReadP just makes me want to head desk |
2021-09-20 12:00:50 +0200 | <arjun> | maerwald: now if i -- textP txt = seqenceA $ list of bunch of charP thats mapped over txt |
2021-09-20 12:01:11 +0200 | <arjun> | i get Parser [Text] instead of Parser Text right ? |
2021-09-20 12:01:15 +0200 | <dminuoso> | arjun: You're better of using T.pack rather than T.singleton. |
2021-09-20 12:01:32 +0200 | <dminuoso> | `T.pack <$> sequenceA ...` |
2021-09-20 12:01:57 +0200 | <arjun> | dminuoso: ah yes, ofcource! |
2021-09-20 12:02:01 +0200 | <maerwald> | arjun: you mappend |
2021-09-20 12:02:18 +0200 | <maerwald> | fmap mconcat $ sequenceA |
2021-09-20 12:02:19 +0200 | <maerwald> | I think |
2021-09-20 12:02:38 +0200 | <maerwald> | we're not writing a high-performance parser that way |
2021-09-20 12:02:40 +0200 | <maerwald> | but uh |
2021-09-20 12:02:40 +0200 | <dminuoso> | maerwald: At that point, really just use T.pack once, rather than creating a bunch of singleton texts and mappening them together again. |
2021-09-20 12:02:47 +0200 | <arjun> | maerwald: right! |
2021-09-20 12:02:59 +0200 | <arjun> | this is just a learning exercise on my part guys, we can chill : P |
2021-09-20 12:03:09 +0200 | <dminuoso> | merijn: Plus, I dont get why people hate ReadP *that* *much*. |
2021-09-20 12:03:44 +0200 | <maerwald> | dminuoso: my cat can tell when I'm using ReadP by the amount of increased noise |
2021-09-20 12:04:25 +0200 | <dminuoso> | As amusing as that phrasing is, can you break it down in rational arguments? |
2021-09-20 12:04:56 +0200 | <maerwald> | yeah: if you were to design the worst parser API, it would be ReadP |
2021-09-20 12:06:14 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-09-20 12:06:22 +0200 | meinside | (uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-09-20 12:07:47 +0200 | azeem | (~azeem@emp-91-123.eduroam.uu.se) (Read error: Connection reset by peer) |
2021-09-20 12:08:19 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 265 seconds) |
2021-09-20 12:08:30 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
2021-09-20 12:10:09 +0200 | azeem | (~azeem@emp-91-123.eduroam.uu.se) |
2021-09-20 12:10:16 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-09-20 12:13:13 +0200 | Guest|55 | (~Guest|55@217.62.90.146.dyn.plus.net) |
2021-09-20 12:13:17 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 264 seconds) |
2021-09-20 12:14:13 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
2021-09-20 12:18:06 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.2.1) |
2021-09-20 12:18:57 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-09-20 12:18:59 +0200 | azeem | (~azeem@emp-91-123.eduroam.uu.se) (Ping timeout: 246 seconds) |
2021-09-20 12:20:59 +0200 | slurmz | (~slurmz@71-212-119-5.tukw.qwest.net) (Quit: Leaving) |
2021-09-20 12:22:47 +0200 | azeem | (~azeem@emp-91-123.eduroam.uu.se) |
2021-09-20 12:23:56 +0200 | Guest|55 | (~Guest|55@217.62.90.146.dyn.plus.net) (Quit: Connection closed) |
2021-09-20 12:30:27 +0200 | Everything | (~Everythin@37.115.210.35) |
2021-09-20 12:32:47 +0200 | <Franciman> | Haskell's laziness: a world of pain with some niceties |
2021-09-20 12:37:14 +0200 | jollygood2 | (~bc8165b6@217.29.117.252) |
2021-09-20 12:38:09 +0200 | pera | (~pera@user/pera) |
2021-09-20 12:40:28 +0200 | <tdammers> | time for bogoparse: enumerate all possible parse trees, and then check each one until you find one that matches the input |
2021-09-20 12:40:29 +0200 | jespada | (~jespada@2803:9800:9842:7a62:edd5:5e74:3ec2:1b19) |
2021-09-20 12:40:40 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-09-20 12:40:44 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-09-20 12:41:22 +0200 | <int-e> | tdammers: then fuse parse tree generation and check and derive an efficient algroithm? |
2021-09-20 12:41:44 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-09-20 12:41:51 +0200 | <tdammers> | galaxy brain move right there |
2021-09-20 12:42:43 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 12:43:56 +0200 | <int-e> | I'm not sure how well this works, but https://en.wikipedia.org/wiki/CYK_algorithm can maybe be thought of it that way if you do bottom-up generation and *also* throw in some dynamic programming |
2021-09-20 12:44:52 +0200 | <int-e> | Of course, quadratic time isn't what you want for practical parsers. |
2021-09-20 12:45:49 +0200 | vysn | (~vysn@user/vysn) |
2021-09-20 12:48:01 +0200 | <kuribas> | Franciman: I don't quite understand the drama around lazyness. Sometimes it's mildly inconvenient when tracing stuff, but otherwise I haven't found it a big problem. |
2021-09-20 12:48:26 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-09-20 12:48:33 +0200 | <tdammers> | well, the thing with Haskell's non-strict evaluation is that it's usually fine, but on the rare occasions when it's not, it's *really* not |
2021-09-20 12:48:35 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 12:48:56 +0200 | <tdammers> | tracking down performance problems in Haskell is really expert-level work |
2021-09-20 12:49:14 +0200 | <dminuoso> | :s/Haskell/any language/ |
2021-09-20 12:49:36 +0200 | <tdammers> | yes, but Haskell makes it particularly tricky to at least follow along |
2021-09-20 12:50:23 +0200 | <int-e> | "just look at the STG core" |
2021-09-20 12:50:24 +0200 | <int-e> | ;) |
2021-09-20 12:50:49 +0200 | <tdammers> | it gets worse when you're trying to figure out *compiler* performance problems |
2021-09-20 12:51:05 +0200 | <dminuoso> | Sure, but that is as complicated with any compiler. |
2021-09-20 12:51:23 +0200 | <dminuoso> | It takes an expert to look at some assembly and even understand that it's a compiler problem. |
2021-09-20 12:51:31 +0200 | <tdammers> | maybe |
2021-09-20 12:51:47 +0200 | <dminuoso> | You cant even determine whether a given problem is compiler related, if you dont understand how that compiler works. |
2021-09-20 12:51:49 +0200 | <kuribas> | The first solution for performance problems is to fix the architecture. |
2021-09-20 12:51:56 +0200 | <tdammers> | but then, "why does this 200-line module take six hours to compile and eat up 60 gigabytes of RAM" is not something I've ever lived through in, say, C++ |
2021-09-20 12:52:11 +0200 | <kuribas> | Linear optimizations are the last thing you want to optimize for, not the first. |
2021-09-20 12:52:55 +0200 | <int-e> | One of my least favorite things is that sometimes, bad inlining decisions can impede the selector shortcut logic in the garbage collector. "it works fine with -O0 but leaks memory with -O2" is really not what you want |
2021-09-20 12:53:00 +0200 | <tdammers> | kuribas: I'm not talking about linear optimizations. I'm talking about things going accidentally quadratic because you hit an edge case in the optimizer, or because things are getting shared that you didn't expect to, or something like that |
2021-09-20 12:53:14 +0200 | <kuribas> | tdammers: that sounds nasty :) |
2021-09-20 12:53:24 +0200 | <EvanR> | in areas of programming where apparently designers tried to make things accessible to "non-experts" or... I don't know what to call it, we have some very interesting resulting software. |
2021-09-20 12:53:32 +0200 | <tdammers> | yes. that's the kind of stuff where things not being fine are *really* not find |
2021-09-20 12:53:40 +0200 | <tdammers> | s/find/fine/ |
2021-09-20 12:53:54 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-09-20 12:54:13 +0200 | <kuribas> | tdammers: compiler bugs are nasty, and I have run into a few. But they are not a feature of the language. |
2021-09-20 12:54:28 +0200 | <tdammers> | EvanR: by "expert-level", I meant that in order to understand some Haskell performance regressions, it's not enough to be an expert at the language itself, you also have to understand how the compiler works under the hood. |
2021-09-20 12:54:29 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 12:54:29 +0200 | <EvanR> | things are hard in engineering, requiring significant insight and skill to do |
2021-09-20 12:54:41 +0200 | <jollygood2> | tdammers, I'd like to see an example of that (200 lines module taking 6 hours to compile, consuming 60 GB). I have never encountered anything remotely similar in the 3 years I've used haskell for all my personal projects |
2021-09-20 12:54:57 +0200 | <Franciman> | kuribas: I have an algorithm which loops forever when put in a monadic computation |
2021-09-20 12:54:59 +0200 | <EvanR> | how did programming end up being a thing you could supposedly get by with without much skill |
2021-09-20 12:55:04 +0200 | <Franciman> | and does not loop forever when used purely |
2021-09-20 12:55:10 +0200 | <Franciman> | also, what tdammers said |
2021-09-20 12:55:28 +0200 | <Franciman> | what's hard |
2021-09-20 12:55:34 +0200 | <Franciman> | is understanding what is happening |
2021-09-20 12:55:39 +0200 | <kuribas> | Franciman: sure, you can get loops without lazyness as well. |
2021-09-20 12:55:41 +0200 | <Franciman> | I know this is strange given that haskell is declarative |
2021-09-20 12:55:45 +0200 | <Franciman> | not saying that |
2021-09-20 12:55:51 +0200 | <Franciman> | the problem is that with laziness I am lost |
2021-09-20 12:55:54 +0200 | <Franciman> | I don't know what happens |
2021-09-20 12:56:03 +0200 | <Franciman> | i know that in declarative programming this does not need to be a problem |
2021-09-20 12:56:09 +0200 | <kuribas> | And perhaps ghc should be better in detecting loops. |
2021-09-20 12:56:12 +0200 | <Franciman> | but in this particular case, I need to know what's wrong |
2021-09-20 12:56:24 +0200 | <Franciman> | and I cannot |
2021-09-20 12:56:29 +0200 | <EvanR> | "I don't know things" is a common problem with younger people on the internet nowadays! |
2021-09-20 12:56:37 +0200 | <kuribas> | I find that a binary search usually works to pinpoint the guilty code. |
2021-09-20 12:56:40 +0200 | <tdammers> | EvanR: I did not say that. I do believe that programming should require skill; the problem is that writing performant Haskell code, mastery of the language itself is sometimes not enough, you also need to know and understand its implementation |
2021-09-20 12:56:52 +0200 | <EvanR> | I don't know X, followed a ways behind by, I can't do X |
2021-09-20 12:57:40 +0200 | <EvanR> | you sometimes have to understand the implementation of haskell, now compare to how often you have to understand the implementation of not haskell xD |
2021-09-20 12:57:54 +0200 | <EvanR> | probably all the time |
2021-09-20 12:58:09 +0200 | <tdammers> | that's not my experience, no |
2021-09-20 12:58:10 +0200 | <EvanR> | down to the machine |
2021-09-20 12:58:49 +0200 | <EvanR> | the idea that it's not important how most of it works is this weird idea in programming as opposed to engineering |
2021-09-20 12:58:50 +0200 | <tdammers> | with most of the other languages I've worked with, having a good mental model of the language itself is generally enough to figure out performance issues |
2021-09-20 12:58:57 +0200 | <int-e> | EvanR: |
2021-09-20 12:59:01 +0200 | <int-e> | oops |
2021-09-20 12:59:31 +0200 | <int-e> | for most other languages, the mental model of the language is a sufficiently accurate model of the target machine. |
2021-09-20 12:59:31 +0200 | <EvanR> | haskell is different in that a mental model of the language works more often! |
2021-09-20 12:59:49 +0200 | <EvanR> | without getting into the weeds |
2021-09-20 12:59:53 +0200 | <EvanR> | but you still have to |
2021-09-20 12:59:58 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-09-20 13:00:11 +0200 | <Franciman> | EvanR: haskell is also different in that it is hard to inspect the actual model |
2021-09-20 13:00:16 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 13:00:19 +0200 | <Franciman> | what tools do we have? |
2021-09-20 13:00:20 +0200 | <EvanR> | "actual model" ? |
2021-09-20 13:00:22 +0200 | <Franciman> | can I see thunks? |
2021-09-20 13:00:28 +0200 | <dminuoso> | tdammers: perhaps it's difficult to make this determination based on personal observation. If your daily work with Haskell involves problem domains that make performance regressions either likely or relevant, there's a much higher chance of you being confronted with it. |
2021-09-20 13:00:32 +0200 | <Franciman> | I don't even have proper stack traces sometimes |
2021-09-20 13:00:35 +0200 | <EvanR> | you might mean the not model |
2021-09-20 13:00:40 +0200 | <dminuoso> | Say, a C programmer working on Linux likely needs to know a lot about GCC. |
2021-09-20 13:00:41 +0200 | max22- | (~maxime@2a01cb08833598008dc4cca798d182ee.ipv6.abo.wanadoo.fr) (Ping timeout: 264 seconds) |
2021-09-20 13:00:41 +0200 | <int-e> | Unfortunately, laziness kind of abstracts from memory use. So you have to unpack that level of abstraction... and that's really hard, because the relation isn't very direct. |
2021-09-20 13:00:42 +0200 | <Franciman> | I mean the implementation |
2021-09-20 13:00:51 +0200 | <dminuoso> | That doesn't mean the average C programmer must know about GCC. |
2021-09-20 13:00:58 +0200 | alx741 | (~alx741@186.178.109.159) |
2021-09-20 13:01:16 +0200 | <tdammers> | dminuoso: possible... but I'm not really talking about compile-specific quirks. |
2021-09-20 13:01:19 +0200 | <dminuoso> | Me personally have had only a single compiler related problem in 3 years of Haskell, and that one was quickly identified after 2 hours. |
2021-09-20 13:01:55 +0200 | <tdammers> | I'm talking about simple things, such as it not being obvious when a particular suspected-expensive calculation runs, or even how often |
2021-09-20 13:02:08 +0200 | <sshine> | dminuoso, knowledge of evaluation semantics. |
2021-09-20 13:02:49 +0200 | <int-e> | dminuoso: C compilers don't rewrite your code nearly as heavily as GHC does. |
2021-09-20 13:03:03 +0200 | <EvanR> | perhaps I don't look at programming like a programmer but a scientist, and I'm never surprised when theories and stories suddenly fail and you have to go back to basics |
2021-09-20 13:03:04 +0200 | <int-e> | I really think this is a price we pay for abstraction. |
2021-09-20 13:03:11 +0200 | <tdammers> | in a strict language, when you write an expression, it will run when the explicit control flow reaches that point. but in a lazy language, it might run in a different thread, at some later point, or not at all, or multiple times |
2021-09-20 13:03:30 +0200 | <int-e> | So maybe we should compare this to SQL rather than C. |
2021-09-20 13:03:46 +0200 | <tdammers> | don't get me wrong, most of the time this is great, because the compiler tends to make OK choices, and it frees you from the burden of thinking about evaluation order and all that |
2021-09-20 13:03:50 +0200 | <int-e> | Where you often have to understand just how exactly your DBS optimizes a particular query. |
2021-09-20 13:03:53 +0200 | <Franciman> | I like that in haskell to know what's evaluated, you need to start from the end of the program :D |
2021-09-20 13:03:55 +0200 | <Franciman> | a sort of dual |
2021-09-20 13:03:57 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-09-20 13:04:00 +0200 | <clever> | tdammers: lazy blackholing, is one case where it may run multiple times |
2021-09-20 13:04:10 +0200 | <tdammers> | int-e: yes, SQL is similar. it's *usually* fine, but when it's not, it's *really* not |
2021-09-20 13:04:29 +0200 | <EvanR> | Franciman: you mean... the beginning? xD (the top of your expression tree) |
2021-09-20 13:04:44 +0200 | <Franciman> | ahah exactly |
2021-09-20 13:04:55 +0200 | <clever> | when haskell decides to evaluate a thunk, it will grab a mutex, and temporarily turn that thunk into a black hole |
2021-09-20 13:05:11 +0200 | <clever> | any other threads trying to read that value, will then block until the core doing the computation, has an answer |
2021-09-20 13:05:11 +0200 | <Franciman> | you can't know how a function is evaluated if you don't know where it is called |
2021-09-20 13:05:13 +0200 | <Franciman> | and how |
2021-09-20 13:05:23 +0200 | <clever> | but lazy blackholing, skips that mutex |
2021-09-20 13:05:32 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-09-20 13:05:40 +0200 | <clever> | so 2 threads may wind up running the same computation in parallel, and the 2nd one to finish, overwrites the result of the 1st |
2021-09-20 13:05:53 +0200 | azeem | (~azeem@emp-91-123.eduroam.uu.se) (Ping timeout: 246 seconds) |
2021-09-20 13:05:54 +0200 | <clever> | but its pure, so the 2nd result is identical, and all you did was waste a bit of cpu time |
2021-09-20 13:06:02 +0200 | <tdammers> | yep |
2021-09-20 13:06:08 +0200 | <EvanR> | haskell really makes you appreciate "mental models" of normal programming languages and *their* intricacies and weird bullshit they do sometimes, stuff that confounds programming in those normal languages |
2021-09-20 13:06:09 +0200 | <int-e> | clever: you also destroyed some sharing |
2021-09-20 13:06:15 +0200 | <tdammers> | you can also make a similar thing slightly more explicit using STM |
2021-09-20 13:06:15 +0200 | <clever> | but you avoided a mutex |
2021-09-20 13:06:22 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 13:06:39 +0200 | <clever> | int-e: yeah, i learned about this, in the context of `ghc -j20` |
2021-09-20 13:07:14 +0200 | <clever> | int-e: something in ghc is re-making an inter-module cache on each operation, and un-doing the evaluation, and then every thread repeats that work in parallel, so the more threads you use, the worse the compile time becomes |
2021-09-20 13:07:29 +0200 | <int-e> | if only the compiler knew which functions produce big results and which produce small ones... |
2021-09-20 13:07:40 +0200 | xff0x | (~xff0x@2001:1a81:5364:5d00:710d:a4b:8dea:f190) (Ping timeout: 240 seconds) |
2021-09-20 13:07:53 +0200 | pera | (~pera@user/pera) (Ping timeout: 264 seconds) |
2021-09-20 13:08:21 +0200 | <int-e> | (give me a halting oracle and I'll write a better compiler ;-) ) |
2021-09-20 13:09:31 +0200 | <clever> | int-e: what about a hint the programmer gives to the compiler? to force lazy black-holing off for certain thunks? |
2021-09-20 13:10:03 +0200 | <clever> | something more lazy then forcing it to just not be a thunk |
2021-09-20 13:10:08 +0200 | azeem | (~azeem@emp-91-123.eduroam.uu.se) |
2021-09-20 13:10:19 +0200 | <EvanR> | more laziness, two tildes |
2021-09-20 13:10:25 +0200 | <int-e> | clever: you can probably wrap GHC.Exts.noDuplicate# into something pure |
2021-09-20 13:10:42 +0200 | AlexNoo_ | (~AlexNoo@94.233.241.181) |
2021-09-20 13:11:29 +0200 | <int-e> | which will probably be quite close to unsafePerformIO . evaluate |
2021-09-20 13:11:54 +0200 | <int-e> | since the former does noDuplicate# and the latter forces the evaluation |
2021-09-20 13:12:05 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-09-20 13:12:14 +0200 | <tdammers> | EvanR: apply a heuristic that tells you how likely the program is to crash eventually; if that likelyhood exceeds a reasonable threshold (say 50%), just crash the program immediately. very efficient. |
2021-09-20 13:12:15 +0200 | <int-e> | (noDuplicate# forces taking a mutex) |
2021-09-20 13:12:29 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 13:12:29 +0200 | <clever> | int-e: ahh |
2021-09-20 13:12:59 +0200 | <EvanR> | tdammers: intriguing, but what have I done to have this suggested to me specifically |
2021-09-20 13:13:08 +0200 | <clever> | tdammers: ive seen somebody make a joke before, about running the tests every time you save, if any tests fail, immediately revert all changes, back to what git said it is |
2021-09-20 13:13:16 +0200 | <clever> | tdammers: if you wrote buggy code, start over from scratch :P |
2021-09-20 13:13:56 +0200 | <EvanR> | also over 50% of the time, that 50% is vastly exceeded so we're screwed |
2021-09-20 13:14:01 +0200 | <hpc> | someone linked to a ghc bug here a few weeks ago, where if your code didn't typecheck it deleted the file |
2021-09-20 13:14:19 +0200 | <hpc> | 100% real bug |
2021-09-20 13:14:24 +0200 | <clever> | hpc: :D |
2021-09-20 13:14:26 +0200 | AlexNoo | (~AlexNoo@178.34.163.108) (Ping timeout: 260 seconds) |
2021-09-20 13:14:40 +0200 | <EvanR> | or was it a bug |
2021-09-20 13:14:48 +0200 | <EvanR> | maybe ahead of its time really |
2021-09-20 13:14:50 +0200 | AlexZenon | (~alzenon@178.34.163.108) (Ping timeout: 268 seconds) |
2021-09-20 13:14:50 +0200 | Alex_test | (~al_test@178.34.163.108) (Ping timeout: 268 seconds) |
2021-09-20 13:15:07 +0200 | <tdammers> | EvanR: "more laziness" |
2021-09-20 13:16:59 +0200 | <EvanR> | i hope the next 700 programming languages all incorporate the good parts of haskell as far as is possible |
2021-09-20 13:17:43 +0200 | <EvanR> | there's enough complaints about laziness that i'm not sure haskell's version of it is part of that... |
2021-09-20 13:17:59 +0200 | <Cajun> | so far the main programming languages have incorporated parts of it, like python's list comprehensions. though it completely disregarded types because muh pythonic way :P |
2021-09-20 13:18:01 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-09-20 13:18:20 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 13:18:28 +0200 | Alex_test | (~al_test@94.233.241.181) |
2021-09-20 13:18:34 +0200 | AlexZenon | (~alzenon@94.233.241.181) |
2021-09-20 13:18:41 +0200 | <EvanR> | pythong aside i mean the next next 700 lol |
2021-09-20 13:19:01 +0200 | <EvanR> | 700 - 1400 |
2021-09-20 13:19:25 +0200 | <Cajun> | if gpt-1000 doesnt beat us out by then :P |
2021-09-20 13:20:04 +0200 | <hpc> | gpt-3 can write kubernetes yaml, what else is there? |
2021-09-20 13:20:38 +0200 | <Cajun> | its quite good at html |
2021-09-20 13:20:54 +0200 | <hpc> | nobody writes html anymore |
2021-09-20 13:22:43 +0200 | <EvanR> | so the web is that far gone now |
2021-09-20 13:23:15 +0200 | <EvanR> | not only everything is in a browser but it runs on AI |
2021-09-20 13:23:22 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
2021-09-20 13:23:23 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-09-20 13:24:11 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 13:24:47 +0200 | <Cajun> | so it can do HTML by description, React by description, React by variable name alone, Figma by description, Spreadsheet by description, and SQL |
2021-09-20 13:27:01 +0200 | <merijn> | dminuoso: Because ReadP is really, *really*, REALLY, *REALLY* hard to reason about |
2021-09-20 13:27:35 +0200 | <merijn> | dminuoso: Unless your grammar is absolutely, positively, trivial, it's very hard to understand how stuff gets parsed with ReadP |
2021-09-20 13:28:17 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Ping timeout: 264 seconds) |
2021-09-20 13:28:17 +0200 | <merijn> | dminuoso: I've spent days fighting parse failures relating to the lack of left-biased in <|> and figuring out how to correctly manually left-bias is a major PITA |
2021-09-20 13:28:33 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-09-20 13:28:38 +0200 | <merijn> | (brb, patch reboot) |
2021-09-20 13:28:39 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Client Quit) |
2021-09-20 13:31:54 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 13:33:05 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 264 seconds) |
2021-09-20 13:33:37 +0200 | <raehik> | I know I can tell cabal where to look for libs with --extra-lib-dirs . Can I configure that in a config file, or for my whole system? |
2021-09-20 13:34:14 +0200 | <raehik> | I can't figure out where cabal searches for libs -- it certainly doesn't seem like $PATH, since I have the dir I want to use on it |
2021-09-20 13:34:14 +0200 | <merijn> | raehik: ~/.cabal/config |
2021-09-20 13:34:14 +0200 | <EvanR> | could be worse, your could be using yacc/bison xD |
2021-09-20 13:34:27 +0200 | <merijn> | EvanR: tbh, yacc/bison are more easy to debug |
2021-09-20 13:34:32 +0200 | <EvanR> | I knew you'd say that |
2021-09-20 13:35:02 +0200 | <merijn> | I TAed compilers for 4 years with flex/bison. I've had to dive into their debug facilities whenever students get stuck :p |
2021-09-20 13:35:10 +0200 | <EvanR> | I too subscribe to "ancient unix tools are awesome and easy to use and understand" xD |
2021-09-20 13:35:12 +0200 | <merijn> | You can actually output very detailed representations |
2021-09-20 13:35:17 +0200 | <raehik> | merijn: ah, I misread the docs, envvars just become entries in the config. ty! |
2021-09-20 13:35:43 +0200 | <merijn> | I'm not saying flex/bison are *easy*, I said they're *easier to debug* |
2021-09-20 13:36:02 +0200 | <merijn> | EvanR: ReadP (and, honestly, all of the parsecs) provide no way to debug besides "trial and error" |
2021-09-20 13:36:28 +0200 | <merijn> | flex/bison allow dumping out the entire generated state machine *including* pointers which state transitions are ambiguous |
2021-09-20 13:36:45 +0200 | aidy | (~aidy@2001:470:69fc:105::c7b4) |
2021-09-20 13:36:47 +0200 | <merijn> | While those aren't particularly simple to understand, they *can* be understood |
2021-09-20 13:37:13 +0200 | <EvanR> | it's kind of amazing debugging works anywhere for anything, it's humbling |
2021-09-20 13:37:42 +0200 | <sshine> | is there something like QuickCheck's Gen that doesn't depend on all of QuickCheck? |
2021-09-20 13:38:55 +0200 | <EvanR> | merijn: yeah earlier the response to laziness being hard to understand was (a joke?) to dump STG core xD |
2021-09-20 13:38:59 +0200 | aidy | (~aidy@2001:470:69fc:105::c7b4) (Quit: Reconnecting) |
2021-09-20 13:39:14 +0200 | aidy | (~aidy@2001:470:69fc:105::c7b4) |
2021-09-20 13:39:28 +0200 | neo1 | (~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 252 seconds) |
2021-09-20 13:39:54 +0200 | <EvanR> | the matrix has too way too much info for the visual decoder, much easier to look at raw, blonde brunette redhead |
2021-09-20 13:40:18 +0200 | xff0x | (~xff0x@2001:1a81:5364:5d00:710d:a4b:8dea:f190) |
2021-09-20 13:40:37 +0200 | <merijn> | EvanR: The bison state diagrams are actually fairly accessible, imo. Far more so than STG/Core |
2021-09-20 13:41:01 +0200 | <merijn> | They do require you know a bit about how LALR(1) parser generators work, though |
2021-09-20 13:41:04 +0200 | <EvanR> | says the guy who grades bison homework xD |
2021-09-20 13:41:17 +0200 | jollygood2 | (~bc8165b6@217.29.117.252) (Quit: http://www.okay.uz/) |
2021-09-20 13:41:32 +0200 | jollygood2 | (~bc8165b6@217.29.117.252) |
2021-09-20 13:41:53 +0200 | aidy | (~aidy@2001:470:69fc:105::c7b4) () |
2021-09-20 13:42:07 +0200 | <merijn> | EvanR: We didn't look at their bison unless they had a problem in the lab, so that was, like, 4-8 times a year in a one month period with me not touching bison at any point in between |
2021-09-20 13:42:16 +0200 | <EvanR> | joking aside, do you have any ideas on similar "good ways" to get a handle on parsec style parsers? |
2021-09-20 13:42:44 +0200 | <EvanR> | even hypothetically |
2021-09-20 13:43:24 +0200 | <EvanR> | (trial and error have gotten me this far in all computer topics though xD) |
2021-09-20 13:43:24 +0200 | <merijn> | You'd need to integrate some way to output diagnostics into the definition of the parser combinator |
2021-09-20 13:43:40 +0200 | <merijn> | Which probably means you are limited to Selective |
2021-09-20 13:43:50 +0200 | <EvanR> | Selective? |
2021-09-20 13:43:52 +0200 | <merijn> | Since you can't do Monads |
2021-09-20 13:43:57 +0200 | <merijn> | EvanR: Selective Functors |
2021-09-20 13:44:04 +0200 | <sshine> | https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf |
2021-09-20 13:44:23 +0200 | <merijn> | EvanR: Probably the best paper (together with Build Systems a la Carte) from the past 5 or so years :p |
2021-09-20 13:44:42 +0200 | <merijn> | I really wanna see more Selective stuff |
2021-09-20 13:44:47 +0200 | <sshine> | I haven't had a chance to use Selective yet. |
2021-09-20 13:45:18 +0200 | <merijn> | sshine: I've been (on and off) looking into adding selective support to optparse-applicative |
2021-09-20 13:45:20 +0200 | <raehik> | merijn: mmm I'm not all that happy with the solution. --extra-lib-dirs never works "recursively"/for dependencies, I had to solve that with a cabal.project file. It feels weird. Why can't I globally configure cabal to search for libraries in X? |
2021-09-20 13:45:29 +0200 | asm | (~alexander@burner.asm89.io) (Changing host) |
2021-09-20 13:45:29 +0200 | asm | (~alexander@user/asm) |
2021-09-20 13:45:33 +0200 | sheddow | (~sheddow@2001:4652:3064:0:855:8e28:191f:6ce6) (Ping timeout: 256 seconds) |
2021-09-20 13:45:46 +0200 | <merijn> | raehik: You can, though? Using ~/.cabal/config as I said? |
2021-09-20 13:46:17 +0200 | jstolarek | (~jstolarek@ers4.neoplus.adsl.tpnet.pl) (Ping timeout: 264 seconds) |
2021-09-20 13:46:20 +0200 | aidy | (~aidy@2001:470:69fc:105::c7b4) |
2021-09-20 13:46:28 +0200 | <raehik> | oh, by writing extra-lib-dirs in there? I tried that, and it didn't work for building a dependency that needed a lib in that dir |
2021-09-20 13:47:09 +0200 | <merijn> | "it didn't work" isn't close to specific enough to say anything useful about |
2021-09-20 13:47:11 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-09-20 13:47:53 +0200 | jstolarek | (~jstolarek@ers4.neoplus.adsl.tpnet.pl) |
2021-09-20 13:48:31 +0200 | <raehik> | Sorry. extra-lib-dirs whether as CLI arg or entry in config, doesn't seem to apply for building dependencies |
2021-09-20 13:49:02 +0200 | <raehik> | I get the same "missing required dependencies: x, y" that I do for if I didn't use extra-lib-dirs |
2021-09-20 13:49:19 +0200 | <EvanR> | merijn, so what you're saying is monadic parsing is too powerful to debug so to speak, and reigning in the language power would open up legitimate possibilities for analysis |
2021-09-20 13:49:40 +0200 | <merijn> | raehik: Is the dependency not using pkg-config depends? |
2021-09-20 13:49:41 +0200 | <raehik> | It does work for the main package I'm building. But it depends on hmatrix, which needs some math libs, and my Windows setup stores them elsewhere |
2021-09-20 13:49:43 +0200 | leah2 | (~leah@vuxu.org) (Remote host closed the connection) |
2021-09-20 13:49:57 +0200 | <merijn> | In that case lib-dirs is irrelevant, but whether pkg-config knows about them |
2021-09-20 13:50:25 +0200 | <geekosaur> | I don't think windows uses pkg-config? |
2021-09-20 13:50:33 +0200 | <merijn> | EvanR: Monadic parsing could allow for "runtime" debugging (i.e. given a specific input, report debug output how we got where we are and why we're stuck) |
2021-09-20 13:50:50 +0200 | <merijn> | EvanR: Selective, on the other hand, allows for *offline* debugging |
2021-09-20 13:51:01 +0200 | <raehik> | I'm using MSYS2 -- I don't think I have the full story on how libs are located |
2021-09-20 13:51:14 +0200 | <merijn> | EvanR: i.e. with selective you could output diagnostics without having to apply the parser to an input |
2021-09-20 13:51:42 +0200 | <merijn> | :t (>>=) |
2021-09-20 13:51:43 +0200 | <lambdabot> | Monad m => m a -> (a -> m b) -> m b |
2021-09-20 13:51:52 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) |
2021-09-20 13:51:56 +0200 | leah2 | (~leah@vuxu.org) |
2021-09-20 13:52:03 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-09-20 13:52:08 +0200 | <aidy> | I'm wanting a newtype for "monad transformer applied to monad" for use with deriving via, does anyone know if this exists already? |
2021-09-20 13:52:08 +0200 | <aidy> | `newtype ApplyT (f :: (* -> *) -> * -> *) (m :: * -> *) a = ApplyT { unApplyT :: f m a }` |
2021-09-20 13:52:10 +0200 | <merijn> | EvanR: It's the infamous "actual effects depend on the value of 'a'" problem introduced by the 2nd argument of >>= |
2021-09-20 13:52:14 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 260 seconds) |
2021-09-20 13:53:46 +0200 | <EvanR> | results are fact dependent, your milage may vary |
2021-09-20 13:54:00 +0200 | <merijn> | EvanR: You need to parse an 'a' from the input before you can find out what the parser of the next bit looks like with >>=. Selective introduces the option to "speculatively" inspect the "derived" effects |
2021-09-20 13:54:29 +0200 | <merijn> | Anyway, the paper that sshine linked gives a nice overview of how they compare to applicative and monad and potential uses |
2021-09-20 13:56:19 +0200 | <EvanR> | reading it |
2021-09-20 13:58:25 +0200 | max22- | (~maxime@2a01cb08833598007475ea3c05333f7b.ipv6.abo.wanadoo.fr) |
2021-09-20 13:59:03 +0200 | <EvanR> | select :: Selective f => f (Either a b) -> f (a -> b) -> f b |
2021-09-20 13:59:05 +0200 | <EvanR> | cool |
2021-09-20 13:59:26 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
2021-09-20 14:01:00 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) |
2021-09-20 14:06:20 +0200 | pera | (~pera@137.221.132.200) |
2021-09-20 14:06:44 +0200 | pera | Guest3214 |
2021-09-20 14:13:20 +0200 | nschoe | (~quassel@178.251.84.79) |
2021-09-20 14:13:36 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Ping timeout: 276 seconds) |
2021-09-20 14:15:23 +0200 | <dminuoso> | 14:14:53 merijn | [11:36:02] EvanR: ReadP (and, honestly, all of the parsecs) provide no way to debug besides "trial and error" |
2021-09-20 14:15:49 +0200 | <dminuoso> | And a handrolled parser, by what appears to be a beginner, is likely to have any sort of debugging assistance? |
2021-09-20 14:16:01 +0200 | <dminuoso> | I find that to be a brave assertion. |
2021-09-20 14:22:08 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-09-20 14:25:01 +0200 | <dminuoso> | If you claim that not even any of the parsecs offer sane debugging methods, how is a haskell beginner likely to do anything more sensible? At that point you might as well just use ReadP. :p |
2021-09-20 14:28:40 +0200 | nfd | (~nfd@user/nfd) (Ping timeout: 240 seconds) |
2021-09-20 14:30:44 +0200 | <maerwald> | dminuoso: stop :p |
2021-09-20 14:31:49 +0200 | jtomas_ | (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Remote host closed the connection) |
2021-09-20 14:36:22 +0200 | <merijn> | dminuoso: They will at least understand what they wrote |
2021-09-20 14:36:36 +0200 | <merijn> | dminuoso: My point is that ReadP behaves unlike every other parser combinator in very confusing ways |
2021-09-20 14:36:42 +0200 | <merijn> | Like the lack of left-bias |
2021-09-20 14:37:05 +0200 | <merijn> | Which means that, if you know how to write good parsers using *parsec, your parsers with ReadP will probably be a broken mess |
2021-09-20 14:39:03 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) |
2021-09-20 14:39:27 +0200 | <sshine> | merijn, megaparsec has pretty good error messages. |
2021-09-20 14:39:34 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-09-20 14:39:37 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
2021-09-20 14:39:53 +0200 | <dminuoso> | Sometimes. |
2021-09-20 14:41:09 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-09-20 14:41:33 +0200 | <dminuoso> | In the widely used paring libraries, trifecta is the only one I'd tag with "good" error messages. |
2021-09-20 14:41:58 +0200 | <dminuoso> | At the cost of weird performance and ergonomics. |
2021-09-20 14:44:10 +0200 | <merijn> | megaparsec has good error messages if you implement that stuff |
2021-09-20 14:44:30 +0200 | ec_ | ec |
2021-09-20 14:46:13 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-09-20 14:47:30 +0200 | fendor_ | (~fendor@178.115.62.148.wireless.dyn.drei.com) |
2021-09-20 14:49:40 +0200 | fendor | (~fendor@178.165.185.65.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
2021-09-20 14:49:53 +0200 | max22- | (~maxime@2a01cb08833598007475ea3c05333f7b.ipv6.abo.wanadoo.fr) (Ping timeout: 264 seconds) |
2021-09-20 14:50:13 +0200 | pbrisbin | (~patrick@pool-173-49-147-250.phlapa.fios.verizon.net) |
2021-09-20 14:51:07 +0200 | dextaa | (~DV@user/dextaa) (Ping timeout: 252 seconds) |
2021-09-20 14:51:55 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-09-20 14:55:53 +0200 | <sshine> | merijn, if you add good labels you mean? |
2021-09-20 14:55:55 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds) |
2021-09-20 14:55:56 +0200 | slack1256 | (~slack1256@181.203.21.137) |
2021-09-20 14:56:43 +0200 | rcg | (~rcg@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) |
2021-09-20 14:56:53 +0200 | rcg | NoirCode |
2021-09-20 14:57:32 +0200 | <sshine> | I think they're often good by default for helping me as a developer debug the parser while I'm building it. for really good user-faced error messages, I think they're quite ok, especially compared to a bunch of real-world interpreters. but nothing like Elm. not sure how to get that for free. |
2021-09-20 14:58:03 +0200 | <NoirCode> | `data RealFloat a => Complex a = !a :+ !a` -- Why does this have the type class operator => ? |
2021-09-20 14:58:36 +0200 | <geekosaur> | there's been some discussion of that on haskell-cafe because of folks who want Gaussian integers |
2021-09-20 14:58:57 +0200 | <geekosaur> | but mostly I think it's just to hook it into Num |
2021-09-20 15:00:13 +0200 | <geekosaur> | without *some* typeclass association you can't use 0 to mean 0 :+ 0, for example (fromInteger "promotion" of literals) |
2021-09-20 15:00:37 +0200 | <geekosaur> | or fromRational as approppriate |
2021-09-20 15:01:10 +0200 | <sshine> | https://dev.to/sshine/comment/1502i -- an example of a filename parser and a bunch of failed parses with accompanying error messages. I think they're good... |
2021-09-20 15:03:58 +0200 | <NoirCode> | Is (Complex a) is the context, or is that being defined here? |
2021-09-20 15:04:17 +0200 | <dminuoso> | NoirCode: Where did you see this? |
2021-09-20 15:04:18 +0200 | <geekosaur> | Complex is being defined, RealFloat is the context |
2021-09-20 15:05:14 +0200 | <geekosaur> | and this is kinda obsolete, DatatypeContexts is mostly useless and highly misleading and was dropped in Haskell2010 |
2021-09-20 15:05:35 +0200 | neurocyte013 | (~neurocyte@IP-213157011203.dynamic.medianet-world.de) |
2021-09-20 15:05:35 +0200 | neurocyte013 | (~neurocyte@IP-213157011203.dynamic.medianet-world.de) (Changing host) |
2021-09-20 15:05:35 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) |
2021-09-20 15:05:56 +0200 | <NoirCode> | dminuoso: I saw this while reading "A Gentle Introduction to Haskell 98" |
2021-09-20 15:06:21 +0200 | <dminuoso> | Oh that. The most misleading title of a Haskell resource I've ever seen. :-) |
2021-09-20 15:06:35 +0200 | enick_736 | (~matrixbot@130.44.141.131) |
2021-09-20 15:06:41 +0200 | <int-e> | haha, "gentle" |
2021-09-20 15:06:46 +0200 | <dminuoso> | Yeah. :) |
2021-09-20 15:07:12 +0200 | <dminuoso> | I would have replaced Gentle with Terse. |
2021-09-20 15:07:12 +0200 | <int-e> | It makes sense if you add [for seaseoned theoretical computer scientists] at the end |
2021-09-20 15:07:21 +0200 | <int-e> | -e |
2021-09-20 15:07:21 +0200 | <dminuoso> | Or that. |
2021-09-20 15:07:30 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) (Client Quit) |
2021-09-20 15:07:39 +0200 | <dminuoso> | It's still a great resource, if you're in its audience. |
2021-09-20 15:07:44 +0200 | <NoirCode> | geekosaur: Why is it the context if it has a data declaration? |
2021-09-20 15:07:52 +0200 | <NoirCode> | s/it/RealFloat/ |
2021-09-20 15:08:04 +0200 | <dminuoso> | NoirCode: With datatype contexts you could could constraint the types used when constructing values of that. |
2021-09-20 15:08:31 +0200 | <dminuoso> | So with that (dated, old) datatype context, you could create some value of `x :+ y` only if the type of x/y also had an instance RealFlow. |
2021-09-20 15:09:05 +0200 | <dminuoso> | It's largely deprecated since putting constraints on *constructing* values adds little value and just artificially constraints and reduces the amounts of useful code, at no benefit. |
2021-09-20 15:09:09 +0200 | neurocyte013 | (~neurocyte@IP-213157011203.dynamic.medianet-world.de) |
2021-09-20 15:09:09 +0200 | neurocyte013 | (~neurocyte@IP-213157011203.dynamic.medianet-world.de) (Changing host) |
2021-09-20 15:09:09 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) |
2021-09-20 15:09:21 +0200 | <dminuoso> | Instead we now put constraints on functions that *use* the components using a typeclasses methods |
2021-09-20 15:09:43 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) (Client Quit) |
2021-09-20 15:09:55 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Quit: quit) |
2021-09-20 15:10:42 +0200 | <dminuoso> | Which means you can construct Complex with anything as its contained type, even String - any function that doesn't even use RealFloat on the components can still work with it. |
2021-09-20 15:10:49 +0200 | <dminuoso> | Now we have |
2021-09-20 15:11:00 +0200 | <dminuoso> | `data Complex a = !a :+ !a` |
2021-09-20 15:11:34 +0200 | neurocyte013 | (~neurocyte@IP-213157011203.dynamic.medianet-world.de) |
2021-09-20 15:11:34 +0200 | neurocyte013 | (~neurocyte@IP-213157011203.dynamic.medianet-world.de) (Changing host) |
2021-09-20 15:11:34 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) |
2021-09-20 15:13:10 +0200 | <NoirCode> | Ok |
2021-09-20 15:15:40 +0200 | <NoirCode> | "constraints on functions" -- Are these the typeclass contexts? |
2021-09-20 15:16:04 +0200 | <geekosaur> | yes |
2021-09-20 15:16:20 +0200 | <dminuoso> | Sometimes "context" is also called "constraint" |
2021-09-20 15:16:35 +0200 | <geekosaur> | actually constraints are a little more general, but an introduction to haskell 98 won't talk about e.g. type equivalences |
2021-09-20 15:16:48 +0200 | argento | (~argent0@168-227-96-53.ptr.westnet.com.ar) |
2021-09-20 15:17:11 +0200 | <geekosaur> | (not only were they not in haskell 98, they're specific to ghc and not in any standard) |
2021-09-20 15:17:41 +0200 | max22- | (~maxime@2a01cb0883359800a22f50bb05ce20b5.ipv6.abo.wanadoo.fr) |
2021-09-20 15:20:30 +0200 | Guest3214 | (~pera@137.221.132.200) (Quit: leaving) |
2021-09-20 15:22:21 +0200 | AlexNoo_ | AlexNoo |
2021-09-20 15:22:57 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2021-09-20 15:23:09 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
2021-09-20 15:24:52 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
2021-09-20 15:25:12 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-09-20 15:25:12 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-09-20 15:25:12 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-09-20 15:29:29 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Ping timeout: 264 seconds) |
2021-09-20 15:29:54 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-09-20 15:32:29 +0200 | argento | (~argent0@168-227-96-53.ptr.westnet.com.ar) (Ping timeout: 264 seconds) |
2021-09-20 15:35:13 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-09-20 15:37:54 +0200 | <kuribas> | Why does dhall give me an error on two records: [{field1 = ..}, {field1 = ..}], but not one one [{field1 = ..}]? |
2021-09-20 15:38:27 +0200 | <kuribas> | unexpected '{' |
2021-09-20 15:39:34 +0200 | <kuribas> | should I regret using dhall? |
2021-09-20 15:42:14 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-09-20 15:43:21 +0200 | dextaa | (~DV@user/dextaa) |
2021-09-20 15:45:04 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.2.1) |
2021-09-20 15:45:21 +0200 | NoirCode | (~rcg@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) (Quit: NoirCode) |
2021-09-20 15:46:42 +0200 | <ldlework> | kuribas: what's dhall |
2021-09-20 15:46:53 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 264 seconds) |
2021-09-20 15:47:06 +0200 | <kuribas> | ldlework: https://dhall-lang.org/ |
2021-09-20 15:47:16 +0200 | <kuribas> | oh, missing a '=' |
2021-09-20 15:47:25 +0200 | <kuribas> | thanks for the unhelpful error message... |
2021-09-20 15:47:37 +0200 | <ldlework> | Ah a config language |
2021-09-20 15:47:39 +0200 | <kuribas> | now: Error: List elements should all have the same type |
2021-09-20 15:51:01 +0200 | <kuribas> | ah, missing a field... |
2021-09-20 15:51:35 +0200 | kenran | (~kenran@200116b82bb5db00fc92955da774ba70.dip.versatel-1u1.de) |
2021-09-20 15:52:00 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-09-20 15:53:31 +0200 | jollygood2 | (~bc8165b6@217.29.117.252) (Quit: http://www.okay.uz/ (Ping timeout)) |
2021-09-20 15:57:59 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-09-20 15:59:04 +0200 | fendor_ | (~fendor@178.115.62.148.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-09-20 16:03:49 +0200 | kimjetwav | (~user@2607:fea8:235f:9730:9e3e:4049:c202:abc9) |
2021-09-20 16:06:03 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds) |
2021-09-20 16:08:14 +0200 | Brumaire | (~quassel@37.164.120.216) |
2021-09-20 16:10:49 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-09-20 16:12:04 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-09-20 16:12:10 +0200 | jstolarek | (~jstolarek@ers4.neoplus.adsl.tpnet.pl) (Ping timeout: 240 seconds) |
2021-09-20 16:13:17 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection) |
2021-09-20 16:13:54 +0200 | Null_A | (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) |
2021-09-20 16:14:01 +0200 | lambdabot | (~lambdabot@silicon.int-e.eu) |
2021-09-20 16:14:01 +0200 | lambdabot | (~lambdabot@silicon.int-e.eu) (Changing host) |
2021-09-20 16:14:01 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) |
2021-09-20 16:15:17 +0200 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-09-20 16:15:50 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
2021-09-20 16:17:28 +0200 | hnOsmium0001 | (uid453710@id-453710.hampstead.irccloud.com) |
2021-09-20 16:18:34 +0200 | nvmd | (~nvmd@user/nvmd) (Ping timeout: 252 seconds) |
2021-09-20 16:18:41 +0200 | Null_A | (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) (Ping timeout: 264 seconds) |
2021-09-20 16:20:08 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 246 seconds) |
2021-09-20 16:20:56 +0200 | chris | (~chris@81.96.113.213) |
2021-09-20 16:21:00 +0200 | chris | Guest1557 |
2021-09-20 16:22:01 +0200 | zebrag | (~chris@user/zebrag) |
2021-09-20 16:23:20 +0200 | alzgh | (~alzgh@user/alzgh) |
2021-09-20 16:25:01 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-09-20 16:32:06 +0200 | cuz | (~user@38.140.58.234) |
2021-09-20 16:36:25 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection) |
2021-09-20 16:36:52 +0200 | lambdabot | (~lambdabot@silicon.int-e.eu) |
2021-09-20 16:36:52 +0200 | lambdabot | (~lambdabot@silicon.int-e.eu) (Changing host) |
2021-09-20 16:36:52 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) |
2021-09-20 16:37:03 +0200 | finsternis | (~X@23.226.237.192) (Ping timeout: 250 seconds) |
2021-09-20 16:38:05 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-09-20 16:39:42 +0200 | <dsal> | I was really hoping to like dhall, but I've not been successful at that yet. |
2021-09-20 16:40:50 +0200 | hiruji` | (~hiruji@2606:6080:1001:f:ed79:9361:ea0e:3e88) |
2021-09-20 16:42:45 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-09-20 16:43:02 +0200 | hiruji | (~hiruji@user/hiruji) (Ping timeout: 260 seconds) |
2021-09-20 16:49:11 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 246 seconds) |
2021-09-20 16:50:45 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
2021-09-20 16:51:08 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Client Quit) |
2021-09-20 16:51:21 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
2021-09-20 16:52:55 +0200 | kayvank | (~user@52-119-115-185.PUBLIC.monkeybrains.net) |
2021-09-20 16:53:09 +0200 | mikolaj_ | (~mikon@duch.mimuw.edu.pl) (Quit: leaving) |
2021-09-20 16:53:18 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 260 seconds) |
2021-09-20 16:54:32 +0200 | mikolaj | (~mikolaj@purple.well-typed.com) (Quit: leaving) |
2021-09-20 16:56:37 +0200 | cheater | (~Username@user/cheater) |
2021-09-20 16:58:48 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-09-20 16:59:51 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Quit: Leaving) |
2021-09-20 17:01:27 +0200 | vgtw | (~vgtw@c-9164205c.07-348-756d651.bbcust.telenor.se) (Ping timeout: 240 seconds) |
2021-09-20 17:01:55 +0200 | vgtw | (~vgtw@c-9164205c.07-348-756d651.bbcust.telenor.se) |
2021-09-20 17:02:43 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-09-20 17:03:01 +0200 | cfricke | (~cfricke@user/cfricke) (Client Quit) |
2021-09-20 17:04:57 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-09-20 17:05:28 +0200 | vgtw | (~vgtw@c-9164205c.07-348-756d651.bbcust.telenor.se) (Client Quit) |
2021-09-20 17:05:51 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
2021-09-20 17:08:02 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
2021-09-20 17:08:03 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-09-20 17:08:43 +0200 | MQ-17J | (~MQ-17J@8.21.10.6) |
2021-09-20 17:08:46 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-09-20 17:09:08 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 246 seconds) |
2021-09-20 17:10:42 +0200 | kenran | (~kenran@200116b82bb5db00fc92955da774ba70.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
2021-09-20 17:12:03 +0200 | son0p | (~ff@181.136.122.143) |
2021-09-20 17:12:50 +0200 | <Ollie[m]> | Does the Haskell RTS have a way for us to ask a running process "which cost centers are you currently in?" Obivously something I only expect to be possible if we build with profiling |
2021-09-20 17:13:00 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Ping timeout: 276 seconds) |
2021-09-20 17:13:14 +0200 | <geekosaur> | possibly via the event log |
2021-09-20 17:14:02 +0200 | <Ollie[m]> | Oh, if that's streamed out then yea, I could probably write something to get the most recent cost center |
2021-09-20 17:14:07 +0200 | <Ollie[m]> | (per capability) |
2021-09-20 17:14:49 +0200 | <geekosaur> | it's supposed to be streamed, there's at least one event log viewer that expects to be fed via a pipe from the process in question |
2021-09-20 17:15:08 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-09-20 17:15:16 +0200 | <geekosaur> | may n0ot be flushed often enough for you though, that'd slow things down a lot |
2021-09-20 17:15:41 +0200 | oxide | (~lambda@user/oxide) (Ping timeout: 264 seconds) |
2021-09-20 17:16:03 +0200 | oxide | (~lambda@user/oxide) |
2021-09-20 17:17:24 +0200 | <Ollie[m]> | As long as it does eventually flush even if my program is hung, I'd be happy |
2021-09-20 17:17:29 +0200 | <Ollie[m]> | (guess what I'm debugging...) |
2021-09-20 17:18:50 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-09-20 17:18:53 +0200 | <geekosaur> | depends on how the program is hung, I'd guess |
2021-09-20 17:19:16 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-09-20 17:19:41 +0200 | <Ollie[m]> | I was hoping it wouldn't (e.g., being stuck on taking an MVar would still cause a flush to eventually happen) |
2021-09-20 17:19:44 +0200 | <Ollie[m]> | But I can just try that and see |
2021-09-20 17:20:08 +0200 | <geekosaur> | right, but if it's stuck in e.g. a loop that doesn't allocate, it's unlikely to ever flush |
2021-09-20 17:26:05 +0200 | int-e | (~noone@int-e.eu) (Remote host closed the connection) |
2021-09-20 17:26:37 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
2021-09-20 17:27:01 +0200 | int-e | (~noone@int-e.eu) |
2021-09-20 17:27:43 +0200 | neurocyte013 | (~neurocyte@IP-213157011203.dynamic.medianet-world.de) |
2021-09-20 17:27:43 +0200 | neurocyte013 | (~neurocyte@IP-213157011203.dynamic.medianet-world.de) (Changing host) |
2021-09-20 17:27:43 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) |
2021-09-20 17:27:45 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) (Client Quit) |
2021-09-20 17:28:43 +0200 | neurocyte013 | (~neurocyte@IP-213157011203.dynamic.medianet-world.de) |
2021-09-20 17:28:43 +0200 | neurocyte013 | (~neurocyte@IP-213157011203.dynamic.medianet-world.de) (Changing host) |
2021-09-20 17:28:43 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) |
2021-09-20 17:29:32 +0200 | Null_A | (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) |
2021-09-20 17:31:17 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Ping timeout: 264 seconds) |
2021-09-20 17:32:09 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 265 seconds) |
2021-09-20 17:33:14 +0200 | flouflou | (~flouflou@modemcable032.110-177-173.mc.videotron.ca) |
2021-09-20 17:33:20 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-09-20 17:33:46 +0200 | natechan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-09-20 17:33:57 +0200 | neightchan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-09-20 17:36:59 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 265 seconds) |
2021-09-20 17:38:56 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
2021-09-20 17:39:46 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:2927:efa3:44fc:5df6) (Quit: WeeChat 2.8) |
2021-09-20 17:45:21 +0200 | favonia | (~favonia@user/favonia) |
2021-09-20 17:47:11 +0200 | leah2 | (~leah@vuxu.org) (Remote host closed the connection) |
2021-09-20 17:47:28 +0200 | leah2 | (~leah@vuxu.org) |
2021-09-20 17:51:55 +0200 | Brumaire | (~quassel@37.164.120.216) (Ping timeout: 252 seconds) |
2021-09-20 17:52:07 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-09-20 17:52:15 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
2021-09-20 18:00:11 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) (Ping timeout: 265 seconds) |
2021-09-20 18:02:01 +0200 | zaquest | (~notzaques@5.128.210.178) (Remote host closed the connection) |
2021-09-20 18:06:53 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-09-20 18:08:02 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-09-20 18:09:25 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2021-09-20 18:09:46 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-09-20 18:20:43 +0200 | nfd | (~nfd@user/nfd) |
2021-09-20 18:23:14 +0200 | Guest1557 | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-09-20 18:23:24 +0200 | wei2912 | (~wei2912@112.199.250.21) (Quit: Lost terminal) |
2021-09-20 18:24:38 +0200 | argento | (~argent0@168-227-96-53.ptr.westnet.com.ar) |
2021-09-20 18:25:10 +0200 | vgtw | (~vgtw@c-6a60205c.07-348-756d651.bbcust.telenor.se) |
2021-09-20 18:28:58 +0200 | zaquest | (~notzaques@5.128.210.178) |
2021-09-20 18:29:00 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.2.1) |
2021-09-20 18:30:23 +0200 | chris | (~chris@81.96.113.213) |
2021-09-20 18:30:24 +0200 | chris | Guest8687 |
2021-09-20 18:30:41 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 264 seconds) |
2021-09-20 18:32:12 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
2021-09-20 18:34:53 +0200 | Guest8687 | (~chris@81.96.113.213) (Ping timeout: 264 seconds) |
2021-09-20 18:36:12 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 18:36:22 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
2021-09-20 18:36:55 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-09-20 18:37:30 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
2021-09-20 18:38:46 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 260 seconds) |
2021-09-20 18:39:00 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-09-20 18:41:16 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-09-20 18:41:36 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
2021-09-20 18:42:15 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-09-20 18:44:23 +0200 | arjun | (~Srain@user/arjun) (Remote host closed the connection) |
2021-09-20 18:44:33 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-09-20 18:44:33 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-09-20 18:44:33 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-09-20 18:45:30 +0200 | k`` | (~user@152.1.137.158) |
2021-09-20 18:48:05 +0200 | <k``> | I have a philosophical question. Say there was an instance of Control.Lens.At.At for `Proxy` . Would type Index (Proxy a) = a, and type IxVal (Proxy a) = Void? Or would they both be Void? |
2021-09-20 18:48:59 +0200 | vgtw | (~vgtw@c-6a60205c.07-348-756d651.bbcust.telenor.se) (Quit: ZNC - https://znc.in) |
2021-09-20 18:50:17 +0200 | hsiktas | (sid224847@2a03:5180:f:2::3:6e4f) (Quit: Connection closed for inactivity) |
2021-09-20 18:50:49 +0200 | <int-e> | k``: shouldn't the index (domain) be Void regardless? Which gives you a choice for the IxVal (codomain)... |
2021-09-20 18:53:14 +0200 | vgtw | (~vgtw@c-6a60205c.07-348-756d651.bbcust.telenor.se) |
2021-09-20 18:53:51 +0200 | argento | (~argent0@168-227-96-53.ptr.westnet.com.ar) (Quit: leaving) |
2021-09-20 18:54:28 +0200 | <k``> | Hmm. Say you have `data Void1 a` (EmptyDecl). Seems like in this case the Index is forced to be `Void` , and the IxVal can be `a`. I was thinking for some reason that `Proxy` and `Void1` would have their domains and codomains flipped. |
2021-09-20 18:57:00 +0200 | <k``> | Like `Proxy` and that `Void1` are like terminal and initial objects? But maybe that's a canard. |
2021-09-20 18:57:53 +0200 | <k``> | Or, rather, arrows, not objects. |
2021-09-20 18:58:01 +0200 | neurocyte013 | (~neurocyte@ip-213157011203.dynamic.medianet-world.de) |
2021-09-20 18:58:01 +0200 | neurocyte013 | (~neurocyte@ip-213157011203.dynamic.medianet-world.de) (Changing host) |
2021-09-20 18:58:01 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) |
2021-09-20 19:02:24 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.2) |
2021-09-20 19:02:25 +0200 | xsperry | (~as@user/xsperry) (Ping timeout: 268 seconds) |
2021-09-20 19:02:46 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-09-20 19:03:27 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2021-09-20 19:04:17 +0200 | azeem | (~azeem@emp-91-123.eduroam.uu.se) (Ping timeout: 264 seconds) |
2021-09-20 19:04:21 +0200 | Everything | (~Everythin@37.115.210.35) () |
2021-09-20 19:05:16 +0200 | azeem | (~azeem@2a00:801:42c:d12a:a34:e929:4827:2f9a) |
2021-09-20 19:05:53 +0200 | <nshepperd2> | i think it's the other way around |
2021-09-20 19:07:18 +0200 | <nshepperd2> | Void1 can be considered a map of anything to anything, for the purposes of At, because one can't exist |
2021-09-20 19:08:29 +0200 | <nshepperd2> | Proxy can only be considered an empty map (ie. the domain is Void) because it exists but can't carry any information |
2021-09-20 19:12:16 +0200 | <k``> | So, rephrased again, `Proxy a` holds a value of `a` at exactly 0 positions? That does make more sense. |
2021-09-20 19:14:09 +0200 | <k``> | And `Void1 a` is `Void` at all positions `a` ? |
2021-09-20 19:17:56 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Remote host closed the connection) |
2021-09-20 19:18:33 +0200 | tomjones | (~tomjones@80-196-109-198-dynamic.dk.customer.tdc.net) |
2021-09-20 19:18:34 +0200 | <tomjones> | l |
2021-09-20 19:19:35 +0200 | <tomjones> | Hi. I have a question regarding pretty printing, namely removing quotes when printing a list of strings: example https://pastebin.com/giUPEw82 |
2021-09-20 19:19:50 +0200 | nschoe | (~quassel@178.251.84.79) (Ping timeout: 260 seconds) |
2021-09-20 19:20:10 +0200 | burnsidesLlama | (~burnsides@dhcp168-026.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-09-20 19:20:40 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
2021-09-20 19:22:07 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-09-20 19:22:07 +0200 | kimjetwav | (~user@2607:fea8:235f:9730:9e3e:4049:c202:abc9) (Read error: Connection reset by peer) |
2021-09-20 19:23:40 +0200 | <monochrom> | So don't use show. |
2021-09-20 19:24:25 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-09-20 19:27:40 +0200 | <k``> | tomjaguarpaw: More specifically, `foldMap prettypri` |
2021-09-20 19:27:45 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-09-20 19:28:01 +0200 | <k``> | Oh sorry, you want it to show as a list? |
2021-09-20 19:29:36 +0200 | <tomjones> | Correct, I want it to show as a list |
2021-09-20 19:31:57 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-09-20 19:33:40 +0200 | MQ-17J | (~MQ-17J@8.21.10.6) (Ping timeout: 252 seconds) |
2021-09-20 19:36:46 +0200 | vaucouleur | (~vaucouleu@78.194.70.105) (Read error: Connection reset by peer) |
2021-09-20 19:36:56 +0200 | <tomsmeding> | there is showList__: https://hackage.haskell.org/package/base-4.15.0.0/docs/GHC-Show.html#v:showList__ |
2021-09-20 19:37:08 +0200 | <tomsmeding> | I have _no_ idea why that has a double-underscore suffix |
2021-09-20 19:37:55 +0200 | <tomsmeding> | apparently before base 4.13 it was showListWith, now it's showList__ ? |
2021-09-20 19:38:44 +0200 | slac54110 | (~slack1256@181.203.117.211) |
2021-09-20 19:38:56 +0200 | <tomsmeding> | oh I'm stupid. The Show class has a showList function that shows a list of the things, so that showList__ function clearly cannot also be called showList. |
2021-09-20 19:39:14 +0200 | MQ-17J | (~MQ-17J@8.21.10.6) |
2021-09-20 19:39:15 +0200 | tomsmeding | wonders why it was renamed to this stupid name |
2021-09-20 19:40:19 +0200 | <monochrom> | intended-for-internal-use functions usually don't get the best names. |
2021-09-20 19:40:51 +0200 | chris | (~chris@81.96.113.213) |
2021-09-20 19:40:53 +0200 | slack1256 | (~slack1256@181.203.21.137) (Ping timeout: 264 seconds) |
2021-09-20 19:40:55 +0200 | chris | Guest8631 |
2021-09-20 19:40:58 +0200 | <monochrom> | Given that good names are a scarcity, it is probably wise, leave the scarce good names for things more people use. |
2021-09-20 19:41:41 +0200 | kuribas | (~user@ptr-25vy0i7z6miqkyi8626.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-09-20 19:42:09 +0200 | Brumaire | (~quassel@81-64-14-121.rev.numericable.fr) |
2021-09-20 19:42:19 +0200 | <k``> | Ah, the joys of designing APIs for unqualified import. |
2021-09-20 19:42:47 +0200 | kayvank | (~user@52-119-115-185.PUBLIC.monkeybrains.net) (Ping timeout: 246 seconds) |
2021-09-20 19:43:02 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-09-20 19:45:14 +0200 | Guest8631 | (~chris@81.96.113.213) (Ping timeout: 246 seconds) |
2021-09-20 19:45:28 +0200 | <dminuoso> | tomsmeding: You'll have to ask Simon, it was from his first cut of the GHC base libraries back from 2001. |
2021-09-20 19:45:32 +0200 | <dminuoso> | The Marlow one. |
2021-09-20 19:45:41 +0200 | xff0x | (~xff0x@2001:1a81:5364:5d00:710d:a4b:8dea:f190) (Ping timeout: 264 seconds) |
2021-09-20 19:45:59 +0200 | xff0x | (~xff0x@83.236.31.114) |
2021-09-20 19:45:59 +0200 | Lycurgus | (~juan@98.4.112.204) |
2021-09-20 19:46:27 +0200 | <monochrom> | I wouldn't be surprised if it's "It's already 3AM, that's why" |
2021-09-20 19:46:32 +0200 | rond_ | (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed) |
2021-09-20 19:46:43 +0200 | <dminuoso> | well, there were quite a few functions suffixed with double underscore |
2021-09-20 19:46:45 +0200 | <dminuoso> | In that commit |
2021-09-20 19:46:54 +0200 | tomsmeding | is stupid |
2021-09-20 19:47:08 +0200 | <tomsmeding> | the real function you should use is in Text.Show, namely showListWith, not in GHC.Show |
2021-09-20 19:47:19 +0200 | <dminuoso> | readRational__, readList__, there was also Handle__ |
2021-09-20 19:47:24 +0200 | <monochrom> | I myself, when writing code to show in lecture, would do that. "I should check the return value of write(), but it's already 3AM so meh" |
2021-09-20 19:47:29 +0200 | <tomsmeding> | somehow I didn't see showListWith in the hackage search thing for newer base versions |
2021-09-20 19:47:32 +0200 | <dminuoso> | Perhaps these were identifiers intended to be used internally |
2021-09-20 19:47:56 +0200 | <monochrom> | My students saw that and commented "can relate" :) |
2021-09-20 19:48:00 +0200 | <dminuoso> | +readRational__ :: String -> Rational -- we export this one (non-std) |
2021-09-20 19:48:00 +0200 | <tomsmeding> | tomjones: use showListWith from Text.Show |
2021-09-20 19:48:08 +0200 | <dminuoso> | monochrom: heh. :) |
2021-09-20 19:48:40 +0200 | <tomsmeding> | :t showListWith showString |
2021-09-20 19:48:41 +0200 | <lambdabot> | error: |
2021-09-20 19:48:41 +0200 | <lambdabot> | • Variable not in scope: showListWith :: (String -> ShowS) -> t |
2021-09-20 19:48:41 +0200 | <lambdabot> | • Perhaps you meant one of these: |
2021-09-20 19:48:47 +0200 | <tomsmeding> | @import Text.Show |
2021-09-20 19:48:47 +0200 | <lambdabot> | Unknown command, try @list |
2021-09-20 19:48:51 +0200 | <tomsmeding> | % import Text.Show |
2021-09-20 19:48:52 +0200 | <yahb> | tomsmeding: |
2021-09-20 19:48:56 +0200 | <tomsmeding> | % :t showListWith showString |
2021-09-20 19:48:56 +0200 | <yahb> | tomsmeding: [String] -> ShowS |
2021-09-20 19:49:11 +0200 | <tomsmeding> | % :t ($ "") . showListWith showString |
2021-09-20 19:49:11 +0200 | <yahb> | tomsmeding: [String] -> String |
2021-09-20 19:49:30 +0200 | <alexfmpe[m]> | does Data.Time.Format provide some way to output day of month with ordinal suffix ? |
2021-09-20 19:49:37 +0200 | <dminuoso> | But sometimes you dont even remember yourself why. A while ago I reverted my own commit that made absolute no sense, it seemed completely superfluous, even the comments didn't help me explain why I wrote that (3 months earlier). |
2021-09-20 19:49:44 +0200 | <dminuoso> | Last week we learned why. |
2021-09-20 19:50:24 +0200 | <tomsmeding> | dminuoso: sounds like a good story |
2021-09-20 19:51:01 +0200 | <dminuoso> | Sadly it's very domain specific, so it wouldn't make for a fun story as the intersection of Cumulux VXLAN experts and Haskellers is extraordinarily small. |
2021-09-20 19:51:23 +0200 | <tomsmeding> | sad |
2021-09-20 19:51:41 +0200 | <dminuoso> | Yeah, I have a whole bag of such fun stories that I will probably take into my grave. :( |
2021-09-20 19:52:25 +0200 | MQ-17J | (~MQ-17J@8.21.10.6) (Ping timeout: 252 seconds) |
2021-09-20 19:52:52 +0200 | <tomsmeding> | alexfmpe[m]: doesn't seem like it |
2021-09-20 19:52:53 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 264 seconds) |
2021-09-20 19:53:27 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2) |
2021-09-20 19:53:30 +0200 | <geekosaur> | we had something similar in xmonad the other day, we wondered why some operation did things the slow exponential way and fixed it, and the Tabbed layout broke because it depended on things being updated as it went |
2021-09-20 19:53:49 +0200 | Xe | (~cadey@tailscale/xe) (Ping timeout: 268 seconds) |
2021-09-20 19:54:00 +0200 | <alexfmpe[m]> | madness |
2021-09-20 19:54:24 +0200 | Xe | (~cadey@tailscale/xe) |
2021-09-20 19:56:01 +0200 | <orzo> | IORef has pointer-comparision identity. Is there a way i can show that identity for debugging like printf("%p") in C? |
2021-09-20 19:59:29 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 264 seconds) |
2021-09-20 20:00:14 +0200 | <k``> | geekosaur: Ugh, yes sorry about that. |
2021-09-20 20:00:31 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-09-20 20:01:09 +0200 | mousey | (~sky@gateway/tor-sasl/mousey) (Remote host closed the connection) |
2021-09-20 20:01:18 +0200 | mousey | (~sky@gateway/tor-sasl/mousey) |
2021-09-20 20:02:38 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.2.1) |
2021-09-20 20:02:42 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-09-20 20:06:17 +0200 | enick_736 | (~matrixbot@130.44.141.131) (Quit: Bridge terminating on SIGTERM) |
2021-09-20 20:08:48 +0200 | jstolarek | (~jstolarek@ers4.neoplus.adsl.tpnet.pl) |
2021-09-20 20:09:30 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-09-20 20:09:30 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-09-20 20:09:30 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-09-20 20:09:51 +0200 | <Cale> | orzo: I was going to say "maybe if you tear the thing apart", but it seems like the MutVar# primitive type in GHC doesn't really support any more operations that'd let you do that. Equality goes via sameMutVar# :: MutVar# d a -> MutVar# d a -> Int# |
2021-09-20 20:10:11 +0200 | burnsidesLlama | (~burnsides@dhcp168-026.wadham.ox.ac.uk) |
2021-09-20 20:10:37 +0200 | talismanick | (~talismani@76.78.246.236) |
2021-09-20 20:13:56 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 246 seconds) |
2021-09-20 20:14:19 +0200 | <monochrom> | Probably the address keeps getting moved by GC so they don't bother expose it. |
2021-09-20 20:14:55 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds) |
2021-09-20 20:15:41 +0200 | burnsidesLlama | (~burnsides@dhcp168-026.wadham.ox.ac.uk) (Ping timeout: 246 seconds) |
2021-09-20 20:17:05 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 246 seconds) |
2021-09-20 20:18:13 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-09-20 20:19:08 +0200 | neurocyte013 | (~neurocyte@IP-213157011203.dynamic.medianet-world.de) |
2021-09-20 20:19:08 +0200 | neurocyte013 | (~neurocyte@IP-213157011203.dynamic.medianet-world.de) (Changing host) |
2021-09-20 20:19:08 +0200 | neurocyte013 | (~neurocyte@user/neurocyte) |
2021-09-20 20:20:06 +0200 | nvmd | (~nvmd@user/nvmd) |
2021-09-20 20:23:44 +0200 | vgtw | (~vgtw@c-6a60205c.07-348-756d651.bbcust.telenor.se) (Ping timeout: 246 seconds) |
2021-09-20 20:24:41 +0200 | max22- | (~maxime@2a01cb0883359800a22f50bb05ce20b5.ipv6.abo.wanadoo.fr) (Ping timeout: 264 seconds) |
2021-09-20 20:27:15 +0200 | vgtw | (~vgtw@c-6a60205c.07-348-756d651.bbcust.telenor.se) |
2021-09-20 20:27:39 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-09-20 20:29:36 +0200 | burnsidesLlama | (~burnsides@dhcp168-026.wadham.ox.ac.uk) |
2021-09-20 20:30:38 +0200 | vgtw_ | (~vgtw@c-6a60205c.07-348-756d651.bbcust.telenor.se) |
2021-09-20 20:30:47 +0200 | Guest72 | (~Guest72@117.223.48.235) |
2021-09-20 20:31:53 +0200 | vgtw | (~vgtw@c-6a60205c.07-348-756d651.bbcust.telenor.se) (Ping timeout: 264 seconds) |
2021-09-20 20:32:29 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) (Ping timeout: 264 seconds) |
2021-09-20 20:32:38 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 260 seconds) |
2021-09-20 20:32:39 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-09-20 20:32:54 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Quit: quit) |
2021-09-20 20:33:34 +0200 | <Guest72> | I have a doubt regarding foldl and foldr. If I we do foldl (+) 0 xs I can understand that expressions get accumulated because of lazy evaluation. But what I don't get is that if we do foldr (+) 0 [1..10] |
2021-09-20 20:34:02 +0200 | renzhi | (~xp@2607:fa49:6500:b100::1d9d) (Ping timeout: 260 seconds) |
2021-09-20 20:34:17 +0200 | <Guest72> | by definition of foldr there is a whole expression (1+(2+ ...(10+0) ...) in the memory |
2021-09-20 20:34:38 +0200 | <Guest72> | so wont that also cause memory problem |
2021-09-20 20:34:41 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2021-09-20 20:34:53 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 264 seconds) |
2021-09-20 20:35:28 +0200 | <c_wraith> | most notably, that will cause stack problems |
2021-09-20 20:35:35 +0200 | <maerwald> | yes |
2021-09-20 20:36:08 +0200 | talismanick | (~talismani@76.78.246.236) (Read error: Connection reset by peer) |
2021-09-20 20:36:18 +0200 | <c_wraith> | but unlike foldl, it won't create a giant think first! it'll just go directly to excessive stack use. |
2021-09-20 20:36:22 +0200 | <k``> | Guest72: Yeah, the `foldr` expression generates a lot of thunks before evaluating, though it won't fail with recent GHC versions that can grow the stack basically without limit. |
2021-09-20 20:36:24 +0200 | <c_wraith> | *thunk |
2021-09-20 20:36:58 +0200 | <k``> | *sorry, meant stack use rather than thunks. |
2021-09-20 20:37:05 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 20:37:09 +0200 | slac54110 | (~slack1256@181.203.117.211) (Remote host closed the connection) |
2021-09-20 20:37:19 +0200 | <Guest72> | I dont see the difference |
2021-09-20 20:37:27 +0200 | <c_wraith> | they're both bad |
2021-09-20 20:37:41 +0200 | <c_wraith> | the difference is technical and mostly unimportant |
2021-09-20 20:37:50 +0200 | <tomsmeding> | @src foldr |
2021-09-20 20:37:50 +0200 | <lambdabot> | foldr f z [] = z |
2021-09-20 20:37:50 +0200 | <lambdabot> | foldr f z (x:xs) = f x (foldr f z xs) |
2021-09-20 20:37:52 +0200 | <tomsmeding> | @src foldl |
2021-09-20 20:37:52 +0200 | <lambdabot> | foldl f z [] = z |
2021-09-20 20:37:52 +0200 | <lambdabot> | foldl f z (x:xs) = foldl f (f z x) xs |
2021-09-20 20:38:02 +0200 | <k``> | In practice, GHC can turn the `foldl` version into a tight, strict loop. So that matters. |
2021-09-20 20:38:31 +0200 | <tomsmeding> | if you evaluate 'foldr (+) 0 [1..5]', in one step that simplifies to '1 + foldr (+) 0 [2..5]' |
2021-09-20 20:38:40 +0200 | <c_wraith> | I wouldn't trust it to. I'd just use foldl' and forget foldl exists |
2021-09-20 20:38:44 +0200 | <tomsmeding> | so you recurse into the foldr, remembering the 1 |
2021-09-20 20:39:19 +0200 | <tomsmeding> | if, on the other hand, you evalate 'foldl (+) 0 [1..5]', in one step that simplifies to 'foldl (+) (0 + 1) [2..5]' |
2021-09-20 20:39:33 +0200 | slack1256 | (~slack1256@191.126.227.73) |
2021-09-20 20:39:33 +0200 | <tomsmeding> | so you have to remember this whole subcomputation "0 + 1" |
2021-09-20 20:40:08 +0200 | <tomsmeding> | remembering "1" is just pushing the value on the stack, which is relatively cheap (using foldl' would be much better still, of course) |
2021-09-20 20:40:11 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Remote host closed the connection) |
2021-09-20 20:40:33 +0200 | <tomsmeding> | but remembering "0 + 1" means that you have to allocate an (unevaluated) thunk on the heap |
2021-09-20 20:41:14 +0200 | jstolarek | (~jstolarek@ers4.neoplus.adsl.tpnet.pl) (Ping timeout: 246 seconds) |
2021-09-20 20:41:14 +0200 | <tomsmeding> | Guest72: it's both bad in this case (use foldl' here, it's much better for summing integers), but as c_wraith says, foldl is just a bit worse than foldr here due to technical reasons |
2021-09-20 20:41:38 +0200 | <Guest72> | why is it not pushed to the stack in the case of foldl |
2021-09-20 20:41:53 +0200 | talismanick | (~talismani@76.78.246.236) |
2021-09-20 20:42:01 +0200 | talismanick | (~talismani@76.78.246.236) (Client Quit) |
2021-09-20 20:42:06 +0200 | <tomsmeding> | (with foldl', the "f z x" -- that is, 0 + 1 in the first step -- is evaluated immediately to 1, which is then passed on directly as an argument: no stack usage at all!) |
2021-09-20 20:42:28 +0200 | <tomsmeding> | Guest72: because of technical details about how the GHC runtime system works :p |
2021-09-20 20:42:42 +0200 | chris | (~chris@81.96.113.213) |
2021-09-20 20:42:46 +0200 | chris | Guest8455 |
2021-09-20 20:42:54 +0200 | <tomsmeding> | (something with the STG machine) |
2021-09-20 20:43:09 +0200 | talismanick | (~talismani@76.78.246.236) |
2021-09-20 20:43:11 +0200 | talismanick | (~talismani@76.78.246.236) (Remote host closed the connection) |
2021-09-20 20:43:35 +0200 | <dminuoso> | We named them foldl and foldl' as a way of filtering out unfit developers without stress tolerance "Why is there no foresight in this library design". |
2021-09-20 20:43:47 +0200 | <dminuoso> | Morally debatable darwinism. |
2021-09-20 20:43:48 +0200 | <tomsmeding> | the intuitive difference is that when you evaluate 'foldl', you're not yet sure whether you're actually going to use that "f z x" in the end, so it has to be kept unevaluated because Haskell is lazy |
2021-09-20 20:43:49 +0200 | Guest8455 | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-09-20 20:43:59 +0200 | <tomsmeding> | dminuoso: heh |
2021-09-20 20:45:55 +0200 | renzhi | (~xp@2607:fa49:6500:b100::5845) |
2021-09-20 20:46:54 +0200 | <Guest72> | ok |
2021-09-20 20:47:07 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-09-20 20:47:15 +0200 | vgtw_ | (~vgtw@c-6a60205c.07-348-756d651.bbcust.telenor.se) (Quit: ZNC - https://znc.in) |
2021-09-20 20:47:20 +0200 | <tomsmeding> | Guest72: ah, you said: "by definition of foldr there is a whole expression (1+(2+ ...(10+0) ...) in the memory" |
2021-09-20 20:47:22 +0200 | <Guest72> | IT foldr has problems, why is many functions implemented in terms of it |
2021-09-20 20:47:32 +0200 | <dminuoso> | foldr has no problem, it's just a different tool |
2021-09-20 20:47:48 +0200 | <tomsmeding> | no, in fact, due to the mentioned technical details, there will just be the values 1, 2, ..., 10 on the stack, not the whole expression as a series of thunks in memory :) |
2021-09-20 20:47:49 +0200 | <dminuoso> | foldr is, conceptually, a way to transform a list |
2021-09-20 20:47:55 +0200 | <dminuoso> | foldl' is, conceptually, a loop. |
2021-09-20 20:47:58 +0200 | <k``> | Lazily `foldl` on a map to start with the larger keys seems legit? |
2021-09-20 20:48:36 +0200 | <dminuoso> | If you want to accumulate the sum, you'd do this with loop-semantics, rather than turning your list into a call-structure that resembles the initial list and then force that.. |
2021-09-20 20:48:58 +0200 | <dminuoso> | The annoying thing is that the names of `foldr` and `foldl'` suggest they're similar/related - but their purposes are very unrelated. |
2021-09-20 20:49:15 +0200 | <monochrom> | foldr (+) is a memory hog in both lazy and eager evaluation. No one disputes that. |
2021-09-20 20:49:18 +0200 | <tomsmeding> | (it's just the implementations that are related) |
2021-09-20 20:49:29 +0200 | <monochrom> | But foldr (||) is th interesting one. |
2021-09-20 20:50:31 +0200 | oxide | (~lambda@user/oxide) (Quit: oxide) |
2021-09-20 20:50:57 +0200 | MQ-17J | (~MQ-17J@35.50.35.3) |
2021-09-20 20:51:06 +0200 | <monochrom> | If you complain about names, foldr and foldl were named way back in the 90s or even 80s, when people were just starting, you can't expect anyone to have much foresight. |
2021-09-20 20:51:41 +0200 | <monochrom> | I bet you if you invent a really new thing today you are going to misname it despite best effort and good faith. |
2021-09-20 20:51:57 +0200 | <[exa]> | I wonder what the foldr/foldl/foldl' naming would look like today |
2021-09-20 20:52:03 +0200 | <monochrom> | Has happened over and over again throughout thousands of years of history. |
2021-09-20 20:52:28 +0200 | Null_A | (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) (Remote host closed the connection) |
2021-09-20 20:52:42 +0200 | talismanick | (~talismani@76.78.246.236) |
2021-09-20 20:52:46 +0200 | vgtw | (~vgtw@c-6a60205c.07-348-756d651.bbcust.telenor.se) |
2021-09-20 20:54:22 +0200 | <monochrom> | There are two known generalizations of foldr today. They go off in different directions. |
2021-09-20 20:54:25 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-09-20 20:54:35 +0200 | <monochrom> | One direction is catamorphism. The other is Foldable's foldr. |
2021-09-20 20:54:55 +0200 | <dsal> | Aren't they both catamorphisms? |
2021-09-20 20:55:10 +0200 | <monochrom> | That would imply two names. One is catamorphism. The other still has to say some kind of "fold" and "right". |
2021-09-20 20:55:14 +0200 | <monochrom> | No. |
2021-09-20 20:55:45 +0200 | <monochrom> | You can define a binary tree instance of Foldable. Then its catamorphism is emphatically not its foldr. |
2021-09-20 20:57:59 +0200 | finsternis | (~X@23.226.237.192) |
2021-09-20 20:58:30 +0200 | max22- | (~maxime@2a01cb0883359800f35acda3ecfc604d.ipv6.abo.wanadoo.fr) |
2021-09-20 20:58:47 +0200 | talismanick | (~talismani@76.78.246.236) (Quit: Using Circe, the loveliest of all IRC clients) |
2021-09-20 21:01:58 +0200 | <monochrom> | The names foldr and foldl can be justified in a context, such as Bird's algebra of programming, in which you postulate the list type without any directional bias, unlike the actual list type we use. |
2021-09-20 21:02:23 +0200 | Izem | (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) |
2021-09-20 21:02:58 +0200 | <monochrom> | For example, Bird and colleagues just stated: you have the empty list, you have singleton lists, you can ++ two lists. |
2021-09-20 21:04:15 +0200 | <monochrom> | and ++ is associative, at least denotationally. (Oh we know cost-countingly it is going to be ugly...) |
2021-09-20 21:04:29 +0200 | burnsidesLlama | (~burnsides@dhcp168-026.wadham.ox.ac.uk) () |
2021-09-20 21:04:50 +0200 | Izem | (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) (Quit: Izem) |
2021-09-20 21:05:40 +0200 | <tomsmeding> | _is_ there a better average-case finite list datastructure than Seq? |
2021-09-20 21:06:09 +0200 | <monochrom> | If you now specify foldr and foldl by saying what happens to each of those 3 cases, they are very much mirror images. |
2021-09-20 21:07:00 +0200 | mousey | (~sky@gateway/tor-sasl/mousey) (Ping timeout: 276 seconds) |
2021-09-20 21:07:10 +0200 | <tomsmeding> | like, that empty/singleton/++ API can be easily implemented using a binary tree with great complexity (constant time), but then 'head' has ugly (linear) complexity |
2021-09-20 21:07:24 +0200 | <monochrom> | 40 years later, that spirit is revived by Foldable, in which both foldr and foldl are two facets of foldMap, at least mathematically. |
2021-09-20 21:08:26 +0200 | mousey | (~sky@gateway/tor-sasl/mousey) |
2021-09-20 21:09:36 +0200 | <[exa]> | monochrom: wow, thanks |
2021-09-20 21:10:09 +0200 | <[exa]> | tomsmeding: depends a lot on how you define the average case :] |
2021-09-20 21:10:40 +0200 | alx741 | (~alx741@186.178.109.159) (Quit: alx741) |
2021-09-20 21:10:44 +0200 | <monochrom> | "foldMap is The One! foldMap restores the balance between the Left Side and the Right Side!" teeheehee! |
2021-09-20 21:10:52 +0200 | <tomsmeding> | [exa]: that's true :p |
2021-09-20 21:10:59 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-09-20 21:11:02 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-09-20 21:11:11 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-09-20 21:11:24 +0200 | <tomsmeding> | "it depends" |
2021-09-20 21:11:31 +0200 | Guest72 | (~Guest72@117.223.48.235) (Quit: Client closed) |
2021-09-20 21:11:49 +0200 | <[exa]> | tomsmeding: like, reproducing the 2-3 fingertree with some ugly tricks for reducing the amount of reorganization could be interesting |
2021-09-20 21:12:24 +0200 | [exa] | <- a fan of BB[α] trees |
2021-09-20 21:12:57 +0200 | <[exa]> | also I hope that Seq still has the fingertree inside. |
2021-09-20 21:13:58 +0200 | <monochrom> | uuuhhh wait, is that busy beaver trees?!! |
2021-09-20 21:14:23 +0200 | <[exa]> | no, the weight-balanced ones |
2021-09-20 21:14:26 +0200 | <awpr> | I wrote a package to replace long-lived DLists with a concrete data structure in the codebase I was working on a few years ago; it had cons, snoc, appending and prepending SmallArrays, and concatenation |
2021-09-20 21:14:27 +0200 | <[exa]> | not sure where BB comes from tho |
2021-09-20 21:14:35 +0200 | <monochrom> | Oh, balanced binary |
2021-09-20 21:14:42 +0200 | <[exa]> | "bounded balance" yeah |
2021-09-20 21:14:53 +0200 | <monochrom> | oops, yeah, bounded |
2021-09-20 21:15:03 +0200 | <awpr> | I left it out of my open-sourcing push because I figured there wouldn't be any demand for it, but is there after all? |
2021-09-20 21:15:30 +0200 | <[exa]> | awpr: there's certainly less demanded stuff on hackage |
2021-09-20 21:15:41 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-09-20 21:15:41 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-09-20 21:15:41 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-09-20 21:15:50 +0200 | <k``> | Last I checked, `Seq` is still a 2-3 finger tree. |
2021-09-20 21:15:52 +0200 | <awpr> | basically it's for the same purpose as GHC's Bag type, but in a standalone package: accumulating big piles of stuff over a while / several different modules, and eventually flattening it to a list |
2021-09-20 21:15:53 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Read error: Connection reset by peer) |
2021-09-20 21:16:00 +0200 | <[exa]> | \o/ |
2021-09-20 21:16:11 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-09-20 21:16:14 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 246 seconds) |
2021-09-20 21:16:31 +0200 | <[exa]> | awpr: write a cool README, the demand might just appear :D |
2021-09-20 21:17:10 +0200 | <awpr> | cool, I'll see what I can do. I kinda just figured there must surely be something like this on Hackage already, but I didn't find one |
2021-09-20 21:17:25 +0200 | <nfd> | alright i've got a contrived one. brace yourselves :D |
2021-09-20 21:17:31 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-09-20 21:18:11 +0200 | <nfd> | any of y'all 1.) use ghcide (perhaps with vim?) and 2.) have a good way of picking different ghcide builds without massive waits for different stack resolvers |
2021-09-20 21:18:23 +0200 | econo | (uid147250@user/econo) |
2021-09-20 21:18:42 +0200 | kenran | (~kenran@200116b82bb5db00373ef547531b4d5d.dip.versatel-1u1.de) |
2021-09-20 21:18:43 +0200 | <monochrom> | I skip stack, so I don't wait for stack resolvers |
2021-09-20 21:18:52 +0200 | <monochrom> | But I don't actually use ghcide. |
2021-09-20 21:18:56 +0200 | favonia | (~favonia@user/favonia) |
2021-09-20 21:19:04 +0200 | <nfd> | i've got this really funny sitch where i have ghcide installed through arch (sort of a special hell, yes...) and it's built against a point release of ghc that doesn't even *have* a resolver |
2021-09-20 21:19:26 +0200 | <maerwald> | it isn't even a resolver |
2021-09-20 21:19:31 +0200 | <maerwald> | it's a static package set |
2021-09-20 21:19:40 +0200 | <maerwald> | only cabal has a resolver |
2021-09-20 21:20:07 +0200 | <monochrom> | But I think it is still a useful story to tell. If I use ghcup to order the computer to install multiple GHCs and multiple HLSs and whatnot, I am no longer at the mercy of some other opague middle-person. |
2021-09-20 21:20:46 +0200 | <nfd> | right; if i could predict ghc versions based on either cabal or the declared static package set that'd be great |
2021-09-20 21:21:11 +0200 | <jneira[m]> | explicitness is good, but requires (a little bit) more work and knowledge |
2021-09-20 21:21:15 +0200 | <nfd> | doesn't matter so long as i pick a binary such that ghcide will Just Work for a given project |
2021-09-20 21:21:37 +0200 | <jneira[m]> | nfd: base package version usually is a good pointer |
2021-09-20 21:21:42 +0200 | <nfd> | i could handle this manually, but that could potentially imply a lot of waiting around and a lot of ide reconfiguration |
2021-09-20 21:22:13 +0200 | <awpr> | if "complicit" -> "complicity", then "explicit" -> "explicity"? I'm definitely gonna use that overgeneralization from now on |
2021-09-20 21:22:37 +0200 | xsperry | (~as@user/xsperry) |
2021-09-20 21:23:01 +0200 | <monochrom> | Would you like to take a course on complexit analysis? >:) |
2021-09-20 21:24:53 +0200 | <nfd> | monochrom: totally valid choice. on the other hand, if what you want is "it doesn't have to be a reproducible build, but i want to be able to set up a dev environment and not deal with Dependency Hell on any random machine that i want with relatively little effort," well, it leaves a bit to be desired |
2021-09-20 21:26:03 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Quit: mikoto-chan) |
2021-09-20 21:26:16 +0200 | <nfd> | the more i can just declare the better |
2021-09-20 21:26:41 +0200 | <nfd> | and i guess the fixed-point of that idea is probably "just use Nix lmao" |
2021-09-20 21:27:08 +0200 | <nfd> | but it's a bit afield of "i want to pick ghcide versions automatically that match my project's ghc version" |
2021-09-20 21:27:15 +0200 | pera | (~pera@user/pera) |
2021-09-20 21:31:52 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2021-09-20 21:35:28 +0200 | chris | (~chris@81.96.113.213) |
2021-09-20 21:35:32 +0200 | chris | Guest9212 |
2021-09-20 21:36:06 +0200 | <tomsmeding> | awpr: I was under the impression that the general case was -ness, where -y is an exception :p |
2021-09-20 21:36:55 +0200 | <tomsmeding> | nfd: I hear that the vscode plugin can automatically download the right HLS version, but I'm not sure |
2021-09-20 21:36:58 +0200 | <geekosaur> | it's english, what's a general case without an infinite number of exceptions? :þ |
2021-09-20 21:37:36 +0200 | <tomsmeding> | geekosaur: as long as the number of exceptions is not actually infinite, you can still talk about one version occurring more often than the other :p |
2021-09-20 21:37:43 +0200 | nvmd | (~nvmd@user/nvmd) (Quit: Later, nerds.) |
2021-09-20 21:37:58 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Remote host closed the connection) |
2021-09-20 21:38:09 +0200 | <tomsmeding> | (well I guess with a frequency table you can talk about that even _with_ infinite exceptions) |
2021-09-20 21:38:41 +0200 | <nfd> | tomsmeding: hmm, neat |
2021-09-20 21:39:17 +0200 | <monochrom> | If both are infinite, we can still talk about density, lim n->oo (general instances of length <= n) / (exception instances of length <= n) |
2021-09-20 21:39:18 +0200 | <tomsmeding> | it shouldn't be hard to build similar functionality for vim :p |
2021-09-20 21:40:27 +0200 | <monochrom> | for example prime numbers occur less often than composite numbers in that sense! |
2021-09-20 21:41:14 +0200 | <tomsmeding> | monochrom: with words we have the fortunate situation that given a particular setting, we generally have frequency lists that prevent us from having to compute densities :) |
2021-09-20 21:41:36 +0200 | <monochrom> | :) |
2021-09-20 21:42:58 +0200 | Izem | (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) |
2021-09-20 21:44:05 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-09-20 21:47:29 +0200 | son0p | (~ff@181.136.122.143) (Ping timeout: 264 seconds) |
2021-09-20 21:47:52 +0200 | ubert | (~Thunderbi@91.141.77.1.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
2021-09-20 21:47:58 +0200 | tommd | (~tommd@75-164-130-101.ptld.qwest.net) |
2021-09-20 21:48:28 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-09-20 21:48:28 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-09-20 21:48:28 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-09-20 21:51:32 +0200 | acidjnk | (~acidjnk@p200300d0c703cb9700deea61f82c37e2.dip0.t-ipconnect.de) |
2021-09-20 21:52:38 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 246 seconds) |
2021-09-20 21:52:44 +0200 | phma_ | (~phma@host-67-44-208-198.hnremote.net) |
2021-09-20 21:52:56 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-09-20 21:53:03 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-09-20 21:53:17 +0200 | phma | (~phma@host-67-44-208-97.hnremote.net) (Read error: Connection reset by peer) |
2021-09-20 21:53:20 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-09-20 21:54:20 +0200 | slac19939 | (~slack1256@191.126.227.79) |
2021-09-20 21:54:43 +0200 | yinghua | (~yinghua@2800:2121:1400:1db:3d91:483:36a2:ad4f) |
2021-09-20 21:56:29 +0200 | slack1256 | (~slack1256@191.126.227.73) (Ping timeout: 264 seconds) |
2021-09-20 21:58:35 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-09-20 22:01:11 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-09-20 22:03:50 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 246 seconds) |
2021-09-20 22:05:59 +0200 | waleee | (~waleee@h-98-128-228-119.na.cust.bahnhof.se) |
2021-09-20 22:09:29 +0200 | pavonia | (~user@user/siracusa) |
2021-09-20 22:16:17 +0200 | slac19939 | (~slack1256@191.126.227.79) (Ping timeout: 264 seconds) |
2021-09-20 22:16:39 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
2021-09-20 22:20:23 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-09-20 22:20:25 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Remote host closed the connection) |
2021-09-20 22:20:59 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
2021-09-20 22:22:03 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-09-20 22:25:07 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-09-20 22:25:11 +0200 | yauhsien | (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 246 seconds) |
2021-09-20 22:25:16 +0200 | Guest4618 | (~Guest46@117.211.2.131) |
2021-09-20 22:25:55 +0200 | benin036932301 | (~benin@183.82.205.89) (Ping timeout: 268 seconds) |
2021-09-20 22:26:31 +0200 | Guest4618 | rahul |
2021-09-20 22:26:46 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-09-20 22:33:19 +0200 | kenran | (~kenran@200116b82bb5db00373ef547531b4d5d.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
2021-09-20 22:34:51 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-09-20 22:35:03 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Quit: WeeChat 3.2) |
2021-09-20 22:36:10 +0200 | qbt | (~edun@user/edun) (Ping timeout: 240 seconds) |
2021-09-20 22:36:49 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-09-20 22:37:28 +0200 | k`` | (~user@152.1.137.158) (Remote host closed the connection) |
2021-09-20 22:38:43 +0200 | mikoto-chan | (~mikoto-ch@83.137.2.248) |
2021-09-20 22:42:46 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-09-20 22:43:10 +0200 | Izem | (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) (Quit: Izem) |
2021-09-20 22:43:20 +0200 | Lycurgus | (~juan@98.4.112.204) (Quit: Exeunt) |
2021-09-20 22:44:36 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-09-20 22:46:10 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 240 seconds) |
2021-09-20 22:51:10 +0200 | __monty__ | (~toonn@user/toonn) |
2021-09-20 22:52:07 +0200 | MQ-17J | (~MQ-17J@35.50.35.3) (Ping timeout: 265 seconds) |
2021-09-20 22:52:24 +0200 | Izem | (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) |
2021-09-20 22:52:31 +0200 | MQ-17J | (~MQ-17J@2607:fb90:885b:9d69:d154:b72d:fdec:ad62) |
2021-09-20 22:52:55 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-09-20 22:55:00 +0200 | nvmd | (~nvmd@user/nvmd) |
2021-09-20 22:58:07 +0200 | tomjones | (~tomjones@80-196-109-198-dynamic.dk.customer.tdc.net) (Remote host closed the connection) |
2021-09-20 22:58:12 +0200 | solomon | (~quassel@cpe-76-168-7-139.socal.res.rr.com) (Ping timeout: 268 seconds) |
2021-09-20 22:58:17 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-09-20 22:59:27 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-09-20 22:59:50 +0200 | tomjones | (~tomjones@80-196-109-198-dynamic.dk.customer.tdc.net) |
2021-09-20 22:59:58 +0200 | Null_A | (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) |
2021-09-20 23:00:51 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-09-20 23:03:17 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-09-20 23:04:34 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-09-20 23:04:36 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2021-09-20 23:06:16 +0200 | tomjones | (~tomjones@80-196-109-198-dynamic.dk.customer.tdc.net) (Remote host closed the connection) |
2021-09-20 23:06:32 +0200 | tomjones | (~tomjones@80-196-109-198-dynamic.dk.customer.tdc.net) |
2021-09-20 23:06:46 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-09-20 23:07:36 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds) |
2021-09-20 23:07:42 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-09-20 23:09:34 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-09-20 23:09:37 +0200 | Null_A | (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) (Remote host closed the connection) |
2021-09-20 23:09:38 +0200 | rahul | (~Guest46@117.211.2.131) (Quit: Client closed) |
2021-09-20 23:10:08 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Quit: WeeChat 3.1) |
2021-09-20 23:10:10 +0200 | Null_A | (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) |
2021-09-20 23:11:34 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-09-20 23:13:17 +0200 | tomjones | (~tomjones@80-196-109-198-dynamic.dk.customer.tdc.net) (Remote host closed the connection) |
2021-09-20 23:13:26 +0200 | on^ | (~on@12.203.127.82) (Remote host closed the connection) |
2021-09-20 23:13:34 +0200 | tomjones | (~tomjones@80-196-109-198-dynamic.dk.customer.tdc.net) |
2021-09-20 23:15:21 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-09-20 23:15:42 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2021-09-20 23:17:47 +0200 | tomjones | (~tomjones@80-196-109-198-dynamic.dk.customer.tdc.net) (Remote host closed the connection) |
2021-09-20 23:18:04 +0200 | tomjones | (~tomjones@80-196-109-198-dynamic.dk.customer.tdc.net) |
2021-09-20 23:19:46 +0200 | Null_A | (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) (Remote host closed the connection) |
2021-09-20 23:20:05 +0200 | nctcf^ | (~nctcf@12.203.127.82) |
2021-09-20 23:20:20 +0200 | Null_A | (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) |
2021-09-20 23:21:53 +0200 | azeem | (~azeem@2a00:801:42c:d12a:a34:e929:4827:2f9a) (Ping timeout: 246 seconds) |
2021-09-20 23:23:09 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-09-20 23:24:16 +0200 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-09-20 23:26:22 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-09-20 23:28:37 +0200 | tomjones | (~tomjones@80-196-109-198-dynamic.dk.customer.tdc.net) (Remote host closed the connection) |
2021-09-20 23:28:55 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Quit: Leaving) |
2021-09-20 23:28:55 +0200 | tomjones | (~tomjones@80-196-109-198-dynamic.dk.customer.tdc.net) |
2021-09-20 23:30:17 +0200 | Null_A | (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) (Remote host closed the connection) |
2021-09-20 23:30:51 +0200 | Null_A | (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) |
2021-09-20 23:32:06 +0200 | tomjones | (~tomjones@80-196-109-198-dynamic.dk.customer.tdc.net) (Remote host closed the connection) |
2021-09-20 23:32:15 +0200 | MQ-17J | (~MQ-17J@2607:fb90:885b:9d69:d154:b72d:fdec:ad62) (Read error: Connection reset by peer) |
2021-09-20 23:32:40 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-09-20 23:33:46 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-09-20 23:35:32 +0200 | michalz | (~michalz@185.246.204.61) (Remote host closed the connection) |
2021-09-20 23:39:05 +0200 | mikoto-chan | (~mikoto-ch@83.137.2.248) (Ping timeout: 264 seconds) |
2021-09-20 23:39:41 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Ping timeout: 264 seconds) |
2021-09-20 23:40:14 +0200 | CnnibisIndica | (~herb@user/mesaboogie) |
2021-09-20 23:41:59 +0200 | sagax | (~sagax_nb@user/sagax) (Ping timeout: 268 seconds) |
2021-09-20 23:42:05 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-09-20 23:42:19 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-09-20 23:44:00 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-09-20 23:44:43 +0200 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection) |
2021-09-20 23:44:50 +0200 | max22- | (~maxime@2a01cb0883359800f35acda3ecfc604d.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
2021-09-20 23:44:54 +0200 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
2021-09-20 23:46:20 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-09-20 23:48:00 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-09-20 23:49:53 +0200 | nvmd | (~nvmd@user/nvmd) (Ping timeout: 264 seconds) |
2021-09-20 23:50:33 +0200 | nvmd | (~nvmd@user/nvmd) |
2021-09-20 23:52:04 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-09-20 23:55:17 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Quit: Leaving) |
2021-09-20 23:55:26 +0200 | Null_A | (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) (Remote host closed the connection) |
2021-09-20 23:56:00 +0200 | Null_A | (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) |
2021-09-20 23:59:29 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |