2021-07-17 00:03:38 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 256 seconds) |
2021-07-17 00:03:44 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-17 00:05:14 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-07-17 00:05:41 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-17 00:09:14 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 268 seconds) |
2021-07-17 00:09:14 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 258 seconds) |
2021-07-17 00:10:11 +0200 | shailangsa | (~shailangs@host86-186-196-229.range86-186.btcentralplus.com) |
2021-07-17 00:14:51 +0200 | KUrare | (~KUrare@user/kurare) (Remote host closed the connection) |
2021-07-17 00:15:07 +0200 | s_ | (~slycelote@user/slycelote) (Quit: Leaving) |
2021-07-17 00:15:16 +0200 | KUrare | (~KUrare@user/kurare) |
2021-07-17 00:15:18 +0200 | Obo | (~roberto@70.pool90-171-81.dynamic.orange.es) (Quit: WeeChat 2.8) |
2021-07-17 00:19:21 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 255 seconds) |
2021-07-17 00:20:08 +0200 | <c_wraith> | Hmm. how does one make haddock render README.md into the index file? |
2021-07-17 00:20:14 +0200 | oxide_ | (~lambda@user/oxide) (Read error: Connection reset by peer) |
2021-07-17 00:21:34 +0200 | HarveyPwca | (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) |
2021-07-17 00:23:25 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 268 seconds) |
2021-07-17 00:23:40 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-17 00:24:43 +0200 | slycelote | (~slycelote@user/slycelote) |
2021-07-17 00:27:37 +0200 | h98 | (~h98@187.83.249.216.dyn.smithville.net) |
2021-07-17 00:29:50 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc02:3500:12c3:7bff:fe6d:d374) (Remote host closed the connection) |
2021-07-17 00:30:07 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc02:3500:12c3:7bff:fe6d:d374) |
2021-07-17 00:30:27 +0200 | bgamari | (~bgamari@72.65.101.148) (Ping timeout: 265 seconds) |
2021-07-17 00:32:18 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-17 00:32:48 +0200 | bgamari | (~bgamari@72.65.101.148) |
2021-07-17 00:34:23 +0200 | acidjnk | (~acidjnk@p200300d0c72b9530b41c89c6d6c03a30.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2021-07-17 00:34:50 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) |
2021-07-17 00:37:39 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-17 00:38:33 +0200 | <h98> | I want a type family "Unwrap a" where if I write "newtype Foo = F Bar" then "Unwrap Foo = Bar"...is this impossible without writing it out explicitly because the left side of the newtype doesn't reference the wrapped type? |
2021-07-17 00:42:02 +0200 | <geekosaur> | you might be interested in Coercible |
2021-07-17 00:42:18 +0200 | <geekosaur> | in short, it already exists |
2021-07-17 00:43:27 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-07-17 00:44:50 +0200 | vysn | (~vysn@user/vysn) (Remote host closed the connection) |
2021-07-17 00:45:13 +0200 | <sm> | or Witch |
2021-07-17 00:48:18 +0200 | <h98> | yeah I know I can coerce (I can also just do it another way), I was just wondering if there was an easy way to write this as a type family |
2021-07-17 00:48:20 +0200 | KUrare | (~KUrare@user/kurare) (Ping timeout: 265 seconds) |
2021-07-17 00:49:29 +0200 | <h98> | obviously Unwrap (f a) = a doesn't work because "Foo" doesn't match "f a" in "newtype Foo = F Bar" |
2021-07-17 00:55:33 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc02:3500:12c3:7bff:fe6d:d374) (Remote host closed the connection) |
2021-07-17 00:55:44 +0200 | bgamari_ | (~bgamari@72.65.101.148) |
2021-07-17 00:55:45 +0200 | <davean> | h98: theres no information at the type level about what is in Foo, so no |
2021-07-17 00:55:50 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc02:3500:12c3:7bff:fe6d:d374) |
2021-07-17 00:56:06 +0200 | bgamari | (~bgamari@72.65.101.148) (Ping timeout: 268 seconds) |
2021-07-17 00:56:41 +0200 | <davean> | coerce doesn't even do this, coerce talks about representations matching |
2021-07-17 00:57:16 +0200 | <h98> | okay that makes sense; thanks! |
2021-07-17 00:57:48 +0200 | <davean> | (This is what type role "nominal" deals with actually!) |
2021-07-17 01:01:31 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc02:3500:12c3:7bff:fe6d:d374) (Ping timeout: 246 seconds) |
2021-07-17 01:11:40 +0200 | noctux | (~noctux@user/noctux) (Read error: Connection reset by peer) |
2021-07-17 01:12:09 +0200 | noctux | (~noctux@user/noctux) |
2021-07-17 01:15:10 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 258 seconds) |
2021-07-17 01:16:05 +0200 | noctux | (~noctux@user/noctux) (Remote host closed the connection) |
2021-07-17 01:17:23 +0200 | Null_A | (~null_a@2601:645:8700:2290:f84f:8a6f:2960:e8a4) (Remote host closed the connection) |
2021-07-17 01:17:27 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-17 01:18:59 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-07-17 01:19:22 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-17 01:20:16 +0200 | noctux | (~noctux@user/noctux) |
2021-07-17 01:24:17 +0200 | dhouthoo_ | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2) |
2021-07-17 01:26:04 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-07-17 01:26:04 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-07-17 01:27:18 +0200 | allbery_b | geekosaur |
2021-07-17 01:30:19 +0200 | pavonia | (~user@user/siracusa) |
2021-07-17 01:31:32 +0200 | jol | (~jol@jol.dev) (Quit: WeeChat 3.2) |
2021-07-17 01:35:34 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 268 seconds) |
2021-07-17 01:35:51 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 255 seconds) |
2021-07-17 01:37:12 +0200 | Guest8638 | (~Guest86@50.47.115.102) |
2021-07-17 01:38:37 +0200 | h98 | (~h98@187.83.249.216.dyn.smithville.net) (Quit: Client closed) |
2021-07-17 01:38:57 +0200 | notzmv | (~zmv@user/notzmv) |
2021-07-17 01:39:27 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 255 seconds) |
2021-07-17 01:40:08 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-17 01:41:21 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-07-17 01:52:57 +0200 | GZJ0X_ | (~GZJ0X@199.193.127.138.16clouds.com) (Ping timeout: 255 seconds) |
2021-07-17 01:56:00 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 265 seconds) |
2021-07-17 01:56:17 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-17 01:56:58 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 265 seconds) |
2021-07-17 02:00:47 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 258 seconds) |
2021-07-17 02:04:56 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-17 02:11:31 +0200 | maerwald | (~maerwald@user/maerwald) (Ping timeout: 258 seconds) |
2021-07-17 02:12:13 +0200 | Guest8638 | (~Guest86@50.47.115.102) (Ping timeout: 246 seconds) |
2021-07-17 02:15:51 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-17 02:16:34 +0200 | mrus | (~mrus@2001:19f0:5:3fd4:5400:3ff:fe48:1820) (Ping timeout: 240 seconds) |
2021-07-17 02:16:54 +0200 | Maxdaman1us | (~Maxdamant@user/maxdamantus) |
2021-07-17 02:16:55 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-17 02:16:56 +0200 | derelict | (~derelict@user/derelict) |
2021-07-17 02:18:20 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds) |
2021-07-17 02:18:42 +0200 | sim590 | (~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 240 seconds) |
2021-07-17 02:21:29 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 255 seconds) |
2021-07-17 02:24:09 +0200 | Null_A | (~null_a@2601:645:8700:2290:f84f:8a6f:2960:e8a4) |
2021-07-17 02:24:45 +0200 | DNH | (~DNH@2a02:8108:1100:16d8:c4df:67d7:d0ec:2764) (Quit: Textual IRC Client: www.textualapp.com) |
2021-07-17 02:27:01 +0200 | Cajun | (~Cajun@ip98-163-211-112.no.no.cox.net) |
2021-07-17 02:27:59 +0200 | turlando | (~turlando@user/turlando) (Ping timeout: 268 seconds) |
2021-07-17 02:39:27 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection) |
2021-07-17 02:39:53 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 258 seconds) |
2021-07-17 02:40:27 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2021-07-17 02:41:39 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-07-17 02:44:07 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-17 02:46:22 +0200 | Null_A | (~null_a@2601:645:8700:2290:f84f:8a6f:2960:e8a4) (Remote host closed the connection) |
2021-07-17 02:50:08 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-07-17 02:52:21 +0200 | Null_A | (~null_a@2601:645:8700:2290:ece9:3dfb:dec3:de97) |
2021-07-17 02:54:24 +0200 | orzo_ | orzo |
2021-07-17 02:57:17 +0200 | lbseale_ | (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
2021-07-17 03:10:04 +0200 | <lechner> | Hi, would someone please be so kind and show me how to use iterateM_ here. I am having a hard time with it. https://salsa.debian.org/lintian/kickoff/-/blob/master/Collect.hs#L100 |
2021-07-17 03:11:26 +0200 | maerwald | (~maerwald@mail.hasufell.de) |
2021-07-17 03:14:15 +0200 | zeenk | (~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3) (Quit: Konversation terminated!) |
2021-07-17 03:14:20 +0200 | <davean> | lechner: you haven't said what you're trying to do because theres not even an attempt to use iterateM_ there |
2021-07-17 03:15:28 +0200 | pesada | (~agua@2804:14c:8793:8e2f:a4d4:3a0b:9f6:6100) |
2021-07-17 03:18:24 +0200 | <lechner> | well, i'd like to implement a counter for the files received. someone here kindly recommended iterateM_ but i am a noobie. i watched this video but can't even separate out the function after 'forever' https://www.youtube.com/watch?v=CFnx1_UjwXs |
2021-07-17 03:18:38 +0200 | agua | (~agua@2804:18:7e:a02e:1:0:239f:a7bb) (Ping timeout: 255 seconds) |
2021-07-17 03:18:58 +0200 | <lechner> | the forever is in my code |
2021-07-17 03:19:48 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 255 seconds) |
2021-07-17 03:21:11 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
2021-07-17 03:22:15 +0200 | maerwald | (~maerwald@mail.hasufell.de) (Ping timeout: 268 seconds) |
2021-07-17 03:22:36 +0200 | Atum_ | (IRC@user/atum/x-2392232) (Quit: Atum_) |
2021-07-17 03:24:45 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-07-17 03:25:39 +0200 | agua | (~agua@2804:18:7e:a02e:1:0:239f:a7bb) |
2021-07-17 03:25:54 +0200 | ukari | (~ukari@user/ukari) |
2021-07-17 03:26:04 +0200 | xff0x | (~xff0x@2001:1a81:53d5:b900:59f3:4e1e:9577:2243) (Ping timeout: 246 seconds) |
2021-07-17 03:28:06 +0200 | xff0x | (~xff0x@2001:1a81:5219:9d00:b696:f328:1841:5724) |
2021-07-17 03:28:10 +0200 | pesada | (~agua@2804:14c:8793:8e2f:a4d4:3a0b:9f6:6100) (Ping timeout: 246 seconds) |
2021-07-17 03:29:56 +0200 | <dsal> | lechner: It's flipped for your needs, so something like: flip iterateM_ 1 $ \n -> do ... |
2021-07-17 03:30:57 +0200 | <dsal> | Then like `pure n'` at the end once you've decided whether there's a message or not. |
2021-07-17 03:32:42 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Remote host closed the connection) |
2021-07-17 03:33:22 +0200 | <lechner> | dsal: why is it flipped, please? |
2021-07-17 03:33:43 +0200 | <dsal> | Or you make `county n = iterateM_ (\x -> a x >> pure (x +1)) 0` and just call `county $ \x -> do ...` |
2021-07-17 03:34:11 +0200 | <dsal> | Well, the initial argument goes at the end and that's pretty awkward to supply with a do block. |
2021-07-17 03:34:48 +0200 | <geekosaur> | did you switch n and a there? |
2021-07-17 03:35:00 +0200 | <lechner> | ah, yes! that was one of my many issues |
2021-07-17 03:35:49 +0200 | shapr | (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 268 seconds) |
2021-07-17 03:38:05 +0200 | neurocyte1 | (~neurocyte@94.16.90.109) |
2021-07-17 03:38:05 +0200 | neurocyte1 | (~neurocyte@94.16.90.109) (Changing host) |
2021-07-17 03:38:05 +0200 | neurocyte1 | (~neurocyte@user/neurocyte) |
2021-07-17 03:40:07 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-07-17 03:40:45 +0200 | neurocyte | (~neurocyte@user/neurocyte) (Ping timeout: 268 seconds) |
2021-07-17 03:40:45 +0200 | neurocyte1 | neurocyte |
2021-07-17 03:41:11 +0200 | <dsal> | Heh. Yeah, I'm barely conscious right now. heh |
2021-07-17 03:42:05 +0200 | <dsal> | `county a` for passing an iteration count to the action `a`. If every iteration will process a message, it's probably a useful abstraction that will make it easier to read your stuff. |
2021-07-17 03:42:15 +0200 | <dsal> | Also maybe name it something not stupid. |
2021-07-17 03:44:19 +0200 | <dsal> | lechner: Consider that abstraction, though. Whatever bugs I typed into irc are there to help you learn. |
2021-07-17 03:48:03 +0200 | smichel17 | (~smichel17@c-73-68-217-18.hsd1.ma.comcast.net) (Quit: smichel17) |
2021-07-17 03:49:50 +0200 | pesada | (~agua@2804:18:48:588b:1:0:277e:35b0) |
2021-07-17 03:50:08 +0200 | agua | (~agua@2804:18:7e:a02e:1:0:239f:a7bb) (Ping timeout: 255 seconds) |
2021-07-17 03:50:46 +0200 | matsurago | (~matsurago@p0111162-vcngn.tkyo.nt.ngn.ppp.ocn.ne.jp) |
2021-07-17 03:51:29 +0200 | derelict | (~derelict@user/derelict) (Ping timeout: 255 seconds) |
2021-07-17 03:54:28 +0200 | <lechner> | dsal: yay, it compiled. thanks so much! i am on a production system and will test it on Sunday. i'll also look into abstractions like you suggested. (and read up on 'pure', as i tried to use 'return') |
2021-07-17 03:58:07 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-17 03:59:52 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds) |
2021-07-17 04:00:17 +0200 | maerwald | (~maerwald@mail.hasufell.de) |
2021-07-17 04:02:35 +0200 | andrews | (~andrews@user/andrews) |
2021-07-17 04:02:56 +0200 | dajoer | (~david@user/gvx) |
2021-07-17 04:05:15 +0200 | andrews | (~andrews@user/andrews) (Client Quit) |
2021-07-17 04:06:31 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 258 seconds) |
2021-07-17 04:11:57 +0200 | alx741 | (~alx741@181.196.68.89) (Quit: alx741) |
2021-07-17 04:12:08 +0200 | <sm> | hey all. Any doctest users aware of a change in default scope/binding rules with GHC 9.0 ? https://github.com/sol/doctest/issues/301 |
2021-07-17 04:15:02 +0200 | alx741 | (~alx741@181.196.68.89) |
2021-07-17 04:15:20 +0200 | td_ | (~td@94.134.91.148) (Ping timeout: 255 seconds) |
2021-07-17 04:15:55 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-17 04:16:57 +0200 | td_ | (~td@muedsl-82-207-238-255.citykom.de) |
2021-07-17 04:16:59 +0200 | zebrag | (~chris@user/zebrag) (Read error: Connection reset by peer) |
2021-07-17 04:18:34 +0200 | <lechner> | sm: hi, i just connected a few dots. thanks for hledger! |
2021-07-17 04:19:36 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds) |
2021-07-17 04:20:23 +0200 | sim590 | (~simon@23.233.248.248) |
2021-07-17 04:20:56 +0200 | keutoi | (~keutoi@157.48.206.170) |
2021-07-17 04:21:28 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2021-07-17 04:25:50 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-07-17 04:27:23 +0200 | <janus> | sm: do you think it might be related to "GADT constructor types now properly adhere to The forall-or-nothing rule" ? |
2021-07-17 04:28:05 +0200 | <sm> | lechner: youre welcome! |
2021-07-17 04:28:31 +0200 | <sm> | janus: hmm let me read up on that |
2021-07-17 04:30:49 +0200 | <sm> | another possible thing I've noticed, derived JSON instances preserving the order of fields with GHC 9.0 (despite same versions of aeson) ? |
2021-07-17 04:31:07 +0200 | <sm> | with GHC 8.10 they seemed randomised |
2021-07-17 04:34:11 +0200 | __xor | _xor |
2021-07-17 04:37:29 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
2021-07-17 04:39:57 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 268 seconds) |
2021-07-17 04:40:49 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-17 04:42:09 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-17 04:45:30 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
2021-07-17 04:46:28 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-17 04:47:07 +0200 | Maxdaman1us | Maxdamantus |
2021-07-17 04:47:09 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
2021-07-17 04:47:41 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-17 05:02:36 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-07-17 05:05:59 +0200 | img | (~img@user/img) |
2021-07-17 05:18:16 +0200 | <dsal> | lechner: `return` is almost always just a longer, more confusing way of spelling `pure` |
2021-07-17 05:19:24 +0200 | <sm> | janus: I don't think so |
2021-07-17 05:20:18 +0200 | <janus> | i wonder if it is really a doctest issue? because surely, doctest shouldn't worry too much about 'low-level' things such as binding names? |
2021-07-17 05:20:30 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-07-17 05:20:55 +0200 | <janus> | if it is related to simplified subsumption or the for-all issue, it should be reproducable outside a doctest... |
2021-07-17 05:21:26 +0200 | <janus> | oh well, i don't know what i am saying, just thinking out loud ;) |
2021-07-17 05:21:48 +0200 | <sm> | yes.. I must dig deeper |
2021-07-17 05:39:41 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-07-17 05:41:37 +0200 | Null_A | (~null_a@2601:645:8700:2290:ece9:3dfb:dec3:de97) (Remote host closed the connection) |
2021-07-17 05:54:52 +0200 | derelict | (~derelict@user/derelict) |
2021-07-17 05:58:16 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 268 seconds) |
2021-07-17 05:59:01 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) |
2021-07-17 06:01:43 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-17 06:06:48 +0200 | <sm> | well it's simply that the bindings in current module (in which the doctests are embedded are not in scope by default |
2021-07-17 06:07:06 +0200 | <sm> | which is.. inconvenient |
2021-07-17 06:09:26 +0200 | <janus> | oh, now i see why you think it is a doctest issue |
2021-07-17 06:09:58 +0200 | <janus> | i think one argument for the doctest-like in cabal-extras is that it is more robust... i havn't tried it though |
2021-07-17 06:16:06 +0200 | mrus | (~mrus@2001:19f0:5:3fd4:5400:3ff:fe48:1820) |
2021-07-17 06:17:44 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 255 seconds) |
2021-07-17 06:32:36 +0200 | alekhine | (~alekhine@c-73-38-152-33.hsd1.ma.comcast.net) |
2021-07-17 06:34:54 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-07-17 06:35:46 +0200 | Null_A | (~null_a@2601:645:8700:2290:ece9:3dfb:dec3:de97) |
2021-07-17 06:45:48 +0200 | Null_A | (~null_a@2601:645:8700:2290:ece9:3dfb:dec3:de97) (Remote host closed the connection) |
2021-07-17 06:48:35 +0200 | Null_A | (~null_a@2601:645:8700:2290:ece9:3dfb:dec3:de97) |
2021-07-17 06:50:46 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-17 06:51:20 +0200 | vysn | (~vysn@user/vysn) |
2021-07-17 06:53:06 +0200 | Null_A | (~null_a@2601:645:8700:2290:ece9:3dfb:dec3:de97) (Ping timeout: 255 seconds) |
2021-07-17 07:00:08 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-07-17 07:03:12 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-17 07:03:40 +0200 | xkuru | (~xkuru@user/xkuru) |
2021-07-17 07:04:06 +0200 | xkuru | (~xkuru@user/xkuru) (Client Quit) |
2021-07-17 07:05:12 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-07-17 07:07:39 +0200 | xkuru | (~xkuru@user/xkuru) |
2021-07-17 07:09:22 +0200 | xkuru | (~xkuru@user/xkuru) (Client Quit) |
2021-07-17 07:09:47 +0200 | hexeme | (~hexeme@user/hexeme) (Quit: co'o ro do) |
2021-07-17 07:11:18 +0200 | hexeme | (~hexeme@user/hexeme) |
2021-07-17 07:17:06 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-17 07:21:42 +0200 | Guest9 | (~Guest9@43.242.116.127) |
2021-07-17 07:26:35 +0200 | keutoi | (~keutoi@157.48.206.170) (Ping timeout: 255 seconds) |
2021-07-17 07:34:49 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 265 seconds) |
2021-07-17 07:34:53 +0200 | Null_A | (~null_a@2601:645:8700:2290:ece9:3dfb:dec3:de97) |
2021-07-17 07:45:29 +0200 | hexeme | (~hexeme@user/hexeme) (Quit: co'o ro do) |
2021-07-17 07:45:35 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-17 07:47:51 +0200 | hexeme | (~hexeme@user/hexeme) |
2021-07-17 07:48:37 +0200 | alekhine | (~alekhine@c-73-38-152-33.hsd1.ma.comcast.net) (Quit: Konversation terminated!) |
2021-07-17 07:48:49 +0200 | qbt | (~edun@user/edun) |
2021-07-17 07:49:46 +0200 | dtman34 | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
2021-07-17 07:50:15 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 255 seconds) |
2021-07-17 07:50:46 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
2021-07-17 07:51:20 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 255 seconds) |
2021-07-17 07:53:52 +0200 | Null_A | (~null_a@2601:645:8700:2290:ece9:3dfb:dec3:de97) (Remote host closed the connection) |
2021-07-17 07:58:31 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-07-17 07:58:49 +0200 | img | (~img@user/img) |
2021-07-17 08:02:07 +0200 | dtman34 | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) |
2021-07-17 08:02:09 +0200 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) |
2021-07-17 08:02:09 +0200 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host) |
2021-07-17 08:02:09 +0200 | turlando | (~turlando@user/turlando) |
2021-07-17 08:03:48 +0200 | sim590 | (~simon@23.233.248.248) (Ping timeout: 258 seconds) |
2021-07-17 08:06:20 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-17 08:06:28 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-17 08:07:01 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-17 08:07:20 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-17 08:11:19 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 246 seconds) |
2021-07-17 08:12:01 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
2021-07-17 08:14:10 +0200 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) (Quit: Reconnecting) |
2021-07-17 08:14:25 +0200 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) |
2021-07-17 08:15:18 +0200 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) (Client Quit) |
2021-07-17 08:15:33 +0200 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) |
2021-07-17 08:15:50 +0200 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) (Changing host) |
2021-07-17 08:15:50 +0200 | zfnmxt | (~zfnmxtzfn@user/zfnmxt) |
2021-07-17 08:21:51 +0200 | zmt00 | (~zmt00@user/zmt00) (Quit: Gone.) |
2021-07-17 08:24:46 +0200 | zmt00 | (~zmt00@user/zmt00) |
2021-07-17 08:26:36 +0200 | mnrmnaugh | (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Quit: Leaving) |
2021-07-17 08:31:12 +0200 | dunkeln | (~dunkeln@94.128.224.230) |
2021-07-17 08:34:46 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-07-17 08:36:48 +0200 | earthy | (~arthurvl@deban2.xs4all.space) (Quit: WeeChat 2.3) |
2021-07-17 08:42:34 +0200 | earthy | (~arthurvl@2001:984:275b:1:ba27:ebff:fea0:40b0) |
2021-07-17 08:45:55 +0200 | keutoi | (~keutoi@157.48.202.216) |
2021-07-17 08:56:14 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-17 09:00:55 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 258 seconds) |
2021-07-17 09:01:26 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-07-17 09:01:29 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) |
2021-07-17 09:02:14 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-17 09:04:14 +0200 | Guest9 | (~Guest9@43.242.116.127) (Ping timeout: 255 seconds) |
2021-07-17 09:11:42 +0200 | matsurago | (~matsurago@p0111162-vcngn.tkyo.nt.ngn.ppp.ocn.ne.jp) (Quit: Leaving) |
2021-07-17 09:18:49 +0200 | fef | (~thedawn@user/thedawn) |
2021-07-17 09:24:14 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-07-17 09:24:49 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-17 09:26:53 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-07-17 09:30:58 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-17 09:31:04 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-07-17 09:33:03 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-07-17 09:33:10 +0200 | agua | (~agua@2804:14c:8793:8e2f:a4d4:3a0b:9f6:6100) |
2021-07-17 09:33:39 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-07-17 09:35:33 +0200 | pesada | (~agua@2804:18:48:588b:1:0:277e:35b0) (Ping timeout: 255 seconds) |
2021-07-17 09:35:39 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-07-17 09:39:41 +0200 | <arahael> | I'm trying to learn how to use "Arrows" (aka HXT), in order to have an 'elegant' way to convert my data types to XML. To do this, I've tried to define a type class that defines `class ToXml a where xml :: IOStateArrow s a XmlTree`, but I don't think I'm doing it right and I would need a phantom-type anyway to use a type class like that. How should I be doing this? |
2021-07-17 09:41:09 +0200 | <arahael> | I want to allow my "toXml" routines to potentially use state as they may need to obtain more informatio than what is captured in my values. (Eg, to look up and resolve stuff from a database) |
2021-07-17 09:42:31 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-17 09:43:15 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-07-17 09:46:05 +0200 | acidjnk | (~acidjnk@p200300d0c72b9530b41c89c6d6c03a30.dip0.t-ipconnect.de) |
2021-07-17 09:47:42 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-17 09:49:18 +0200 | dragestil | (~znc@user/dragestil) |
2021-07-17 09:50:17 +0200 | <arahael> | I'm thinking of avoiding arrows entirely, and just define xml like so: `xml :: a -> State s XmlTree` |
2021-07-17 09:50:31 +0200 | <arahael> | (Well, XmlTrees, really) |
2021-07-17 09:50:38 +0200 | dunkeln | (~dunkeln@94.128.224.230) (Ping timeout: 265 seconds) |
2021-07-17 09:51:05 +0200 | <c_wraith> | "avoid them entirely" has been my experience with arrows |
2021-07-17 09:52:35 +0200 | <arahael> | Heh. Thing is, arrows _sound_ like they'd be nice for what is largely xml transformations. |
2021-07-17 09:54:35 +0200 | benin0369 | (~benin@183.82.204.139) (Ping timeout: 258 seconds) |
2021-07-17 09:56:39 +0200 | fendor | (~fendor@77.119.192.173.wireless.dyn.drei.com) |
2021-07-17 09:57:47 +0200 | _xor | (~xor@74.215.232.67) (Quit: WeeChat 3.2) |
2021-07-17 09:58:55 +0200 | _xor | (~xor@74.215.232.67) |
2021-07-17 09:59:31 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-07-17 09:59:50 +0200 | benin0369 | (~benin@183.82.206.198) |
2021-07-17 10:00:21 +0200 | HarveyPwca | (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) (Remote host closed the connection) |
2021-07-17 10:00:53 +0200 | Pickchea | (~private@user/pickchea) |
2021-07-17 10:01:47 +0200 | GIANTWORLDKEEPR_ | (~pjetcetal@128-71-13-182.broadband.corbina.ru) (Quit: EXIT) |
2021-07-17 10:02:37 +0200 | HarveyPwca | (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) |
2021-07-17 10:02:53 +0200 | HarveyPwca | (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) (Remote host closed the connection) |
2021-07-17 10:04:20 +0200 | <arahael> | Yeah, I can't even find an example for this, I'm going to give up on using arrows for transforming to xml. |
2021-07-17 10:05:27 +0200 | chomwitt | (~Pitsikoko@athedsl-32487.home.otenet.gr) |
2021-07-17 10:07:11 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-07-17 10:09:45 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-07-17 10:10:59 +0200 | dunkeln_ | (~dunkeln@94.128.224.230) |
2021-07-17 10:13:56 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-17 10:15:45 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 250 seconds) |
2021-07-17 10:17:13 +0200 | <arahael> | Yep, I think I should definitely just use the `xml :: a -> State MyState XmlTrees` design. Less flexible, but more sane. |
2021-07-17 10:17:35 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-07-17 10:17:38 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-07-17 10:18:30 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
2021-07-17 10:21:31 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-07-17 10:23:11 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-17 10:26:16 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-07-17 10:26:24 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-07-17 10:28:09 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2021-07-17 10:28:15 +0200 | eggplant_ | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-17 10:29:33 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds) |
2021-07-17 10:29:36 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-07-17 10:30:06 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-07-17 10:30:13 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-17 10:32:42 +0200 | eggplant_ | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds) |
2021-07-17 10:35:42 +0200 | Deide | (~Deide@217.155.19.23) |
2021-07-17 10:35:42 +0200 | Deide | (~Deide@217.155.19.23) (Changing host) |
2021-07-17 10:35:42 +0200 | Deide | (~Deide@user/deide) |
2021-07-17 10:38:04 +0200 | Ouroborosie | (~pjetcetal@128-71-13-182.broadband.corbina.ru) |
2021-07-17 10:39:21 +0200 | zeenk | (~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3) |
2021-07-17 10:42:23 +0200 | Voxelman | (~Voxelman@185.254.75.32) |
2021-07-17 10:46:01 +0200 | <arahael> | Actually I'm weirdly stumped, I've fallen into a deep hole: How do I print XML? I've been parsing with HXT for most of my programs, so ideally I'd like to use the same data types, but how do I print it? |
2021-07-17 10:46:28 +0200 | <arahael> | This page has some examples: https://hackage.haskell.org/package/hxt-9.3.1.22/docs/Text-XML-HXT-Arrow-WriteDocument.html |
2021-07-17 10:46:51 +0200 | sagax | (~sagax@213.138.71.146) |
2021-07-17 10:47:13 +0200 | <arahael> | But... They don't work, at all, when using the sample XmlTree: foo = Ntree (XTag (mkName "foo") []) [] |
2021-07-17 10:47:21 +0200 | <arahael> | The writeDocument just does nothing at all. |
2021-07-17 10:47:36 +0200 | <arahael> | *NTree |
2021-07-17 10:49:33 +0200 | <arahael> | So I'm completely stumped as to why this doesn't work: runX (arr (const foo) >>> writeDocument [] "") |
2021-07-17 10:49:45 +0200 | <arahael> | (It compiles and runs, though(!)) |
2021-07-17 10:51:04 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-07-17 10:52:55 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-17 10:54:18 +0200 | azeem | (~azeem@dynamic-adsl-94-34-31-95.clienti.tiscali.it) (Ping timeout: 240 seconds) |
2021-07-17 10:54:42 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-17 10:54:42 +0200 | <arahael> | I think I need to give up on this HXT, it seems seriously badly documented. :( Maybe I should try something like xml-hamlet. |
2021-07-17 10:55:01 +0200 | azeem | (~azeem@176.200.202.21) |
2021-07-17 10:56:41 +0200 | superbil | (~superbil@1-34-176-171.HINET-IP.hinet.net) (Quit: WeeChat 3.1) |
2021-07-17 10:58:20 +0200 | mcfrdy | (uid507892@user/mcfrdy) () |
2021-07-17 10:59:26 +0200 | Erutuon | (~Erutuon@user/erutuon) (Quit: WeeChat 2.8) |
2021-07-17 10:59:29 +0200 | <arahael> | Oh, wow, just got output. |
2021-07-17 11:01:48 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2021-07-17 11:03:45 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 255 seconds) |
2021-07-17 11:04:24 +0200 | <arahael> | Yep, seems the only thing I was missing was the root node. HXT just silently ignores that. |
2021-07-17 11:06:15 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-07-17 11:07:33 +0200 | dunkeln_ | (~dunkeln@94.128.224.230) (Quit: leaving) |
2021-07-17 11:10:26 +0200 | azeem | (~azeem@176.200.202.21) (Read error: Connection reset by peer) |
2021-07-17 11:10:42 +0200 | azeem | (~azeem@dynamic-adsl-94-34-31-95.clienti.tiscali.it) |
2021-07-17 11:13:23 +0200 | xff0x | (~xff0x@2001:1a81:5219:9d00:b696:f328:1841:5724) (Ping timeout: 255 seconds) |
2021-07-17 11:14:17 +0200 | xff0x | (~xff0x@2001:1a81:5219:9d00:3d14:ef54:1c92:a192) |
2021-07-17 11:18:14 +0200 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) |
2021-07-17 11:18:20 +0200 | acidjnk | (~acidjnk@p200300d0c72b9530b41c89c6d6c03a30.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2021-07-17 11:18:27 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-17 11:18:57 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-07-17 11:21:34 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 244 seconds) |
2021-07-17 11:23:06 +0200 | mcfrdy | (~mcfrdy@user/mcfrdy) |
2021-07-17 11:23:17 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 255 seconds) |
2021-07-17 11:28:10 +0200 | fef | (~thedawn@user/thedawn) |
2021-07-17 11:29:40 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-07-17 11:31:21 +0200 | amanr | (~therojjha@20.204.87.0) |
2021-07-17 11:32:14 +0200 | _xor | (~xor@74.215.232.67) (Quit: brb) |
2021-07-17 11:32:28 +0200 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-07-17 11:33:09 +0200 | Codaraxis | (~Codaraxis@user/codaraxis) (Remote host closed the connection) |
2021-07-17 11:33:34 +0200 | Codaraxis | (~Codaraxis@user/codaraxis) |
2021-07-17 11:42:26 +0200 | _xor | (~xor@74.215.232.67) |
2021-07-17 11:47:18 +0200 | oxide | (~lambda@user/oxide) |
2021-07-17 11:50:23 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-07-17 11:53:10 +0200 | _xor | (~xor@74.215.232.67) (Quit: WeeChat 3.2) |
2021-07-17 11:53:24 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-07-17 11:54:15 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-17 11:54:51 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 265 seconds) |
2021-07-17 11:57:44 +0200 | acidjnk | (~acidjnk@p200300d0c72b9530b41c89c6d6c03a30.dip0.t-ipconnect.de) |
2021-07-17 11:58:47 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 258 seconds) |
2021-07-17 11:59:17 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds) |
2021-07-17 12:04:06 +0200 | slycelote | (~slycelote@user/slycelote) (Read error: Connection reset by peer) |
2021-07-17 12:04:18 +0200 | slycelote | (~slycelote@user/slycelote) |
2021-07-17 12:05:07 +0200 | _xor | (~xor@74.215.232.67) |
2021-07-17 12:08:35 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 244 seconds) |
2021-07-17 12:13:30 +0200 | fef | (~thedawn@user/thedawn) |
2021-07-17 12:14:55 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-07-17 12:19:06 +0200 | chomwitt | (~Pitsikoko@athedsl-32487.home.otenet.gr) (Ping timeout: 258 seconds) |
2021-07-17 12:20:09 +0200 | zaquest | (~notzaques@5.128.210.178) (Remote host closed the connection) |
2021-07-17 12:23:17 +0200 | <arkanoid> | the Error monad link is broken https://wiki.haskell.org/Errormonad.html |
2021-07-17 12:23:17 +0200 | zaquest | (~notzaques@5.128.210.178) |
2021-07-17 12:23:34 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-07-17 12:28:54 +0200 | DNH | (~DNH@2a02:8108:1100:16d8:6178:3a47:8c71:dd89) |
2021-07-17 12:29:15 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 255 seconds) |
2021-07-17 12:29:41 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-17 12:30:59 +0200 | qbt | (~edun@user/edun) (Ping timeout: 258 seconds) |
2021-07-17 12:34:12 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds) |
2021-07-17 12:34:54 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Read error: No route to host) |
2021-07-17 12:38:52 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-07-17 12:42:55 +0200 | Voxelman | (~Voxelman@185.254.75.32) (Read error: Connection reset by peer) |
2021-07-17 12:43:37 +0200 | mrus | (~mrus@2001:19f0:5:3fd4:5400:3ff:fe48:1820) (Ping timeout: 246 seconds) |
2021-07-17 12:44:16 +0200 | kuribas | (~user@ptr-25vy0i9ash1yu2tubi9.18120a2.ip6.access.telenet.be) |
2021-07-17 12:45:22 +0200 | <kuribas> | How does haskell compare to other functional languages? Looking a bit at SML and OCaml, it seems that haskell has far more libraries, and is more practical for real world projects (other than compilers etc). |
2021-07-17 12:46:31 +0200 | <kuribas> | Of course scala and clojure are also popular, but I don't consider clojure a real functional language, it's more a lisp derivative. And Scala is mostly multiparadigm, and also complex and overengineerd. |
2021-07-17 12:47:48 +0200 | <arahael> | kuribas: I use haskell for most of my private hobby/side projects. It's awesule, but I've used F# and Swift, which are somewhat OCaml-inspired. |
2021-07-17 12:48:25 +0200 | <arahael> | kuribas: The biggest most profound difference with Haskell is that it's *lazy*, and has a really really good type system, but in practice that it's lazy makes a big difference to how you use haskell. |
2021-07-17 12:48:52 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Ping timeout: 246 seconds) |
2021-07-17 12:48:54 +0200 | <kuribas> | arahael: how much libraries are there for F#? Or does it just use the C# ecosystem? |
2021-07-17 12:49:05 +0200 | <arahael> | F# is just another .NET language, really, yeah. |
2021-07-17 12:49:17 +0200 | <arahael> | As is C#. :) |
2021-07-17 12:49:20 +0200 | <kuribas> | doesn't that mean that most libraries aren't really made for FP? |
2021-07-17 12:49:27 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) |
2021-07-17 12:50:00 +0200 | <arahael> | Kinda. The way F# copes with nulls is interesting. (It assumes there aren't any). |
2021-07-17 12:50:41 +0200 | <kuribas> | then how do you test if a function returns null? |
2021-07-17 12:51:33 +0200 | <arahael> | kuribas: That's a trap, yeah. In earlier versions, you'd check for it explicitly, and the compiler lets you. But then, the compiler *elides* that check because it thinks better. |
2021-07-17 12:51:44 +0200 | <arahael> | Hopefully they've changed that now. |
2021-07-17 12:53:33 +0200 | <arahael> | Looks like they've changed it - suggesting instead to use pattern matching. Far better: https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/values/null-values |
2021-07-17 12:53:59 +0200 | <arahael> | But anyway, one difference is that Haskell is lazy, so your functions must not have side effects. |
2021-07-17 12:54:30 +0200 | <arahael> | And since that practice is so strictly encouraged (otherwise you risk loosing your sanity), that has a flow-on effect to all of haskell's libraries, too. |
2021-07-17 12:55:34 +0200 | <DigitalKiwi> | haskell is non-strict |
2021-07-17 12:55:52 +0200 | <DigitalKiwi> | https://wiki.haskell.org/Lazy_vs._non-strict |
2021-07-17 12:56:01 +0200 | <arahael> | Yeah - more accurate - thanks for that. |
2021-07-17 12:56:34 +0200 | <DigitalKiwi> | speaking only for myself haskell programmers are lazy ;) |
2021-07-17 12:58:05 +0200 | <arahael> | Hmm. :) |
2021-07-17 13:01:36 +0200 | <DigitalKiwi> | and obsesssed with bottoms |
2021-07-17 13:02:01 +0200 | DigitalKiwi | drops mic |
2021-07-17 13:03:21 +0200 | <Rembane> | I like lazy bottoms and I cannot lie. |
2021-07-17 13:03:45 +0200 | anandprabhu | (~anandprab@94.202.243.198) |
2021-07-17 13:04:04 +0200 | wei2912 | (~wei2912@112.199.250.21) |
2021-07-17 13:05:00 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 268 seconds) |
2021-07-17 13:05:07 +0200 | arahael | suddenly realises why bottom is drawn like _|_ |
2021-07-17 13:05:20 +0200 | enemeth79 | (sid309041@id-309041.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-17 13:05:45 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-07-17 13:06:04 +0200 | <DigitalKiwi> | dibblego twitter avatar lolol |
2021-07-17 13:08:21 +0200 | <kuribas> | arahael: so haskell is the only language that doesn't let you get away coding imperative OO in it? |
2021-07-17 13:09:07 +0200 | <kuribas> | Although imperative style is still quite possible in haskell. OO on the other hand is pretty hard. |
2021-07-17 13:09:35 +0200 | <dibblego> | DigitalKiwi: that's BUMFISH |
2021-07-17 13:09:42 +0200 | Brianmancer | (~Neuromanc@user/briandamag) (Ping timeout: 258 seconds) |
2021-07-17 13:10:01 +0200 | <DigitalKiwi> | is that a new operator |
2021-07-17 13:10:17 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Read error: No route to host) |
2021-07-17 13:11:41 +0200 | <dibblego> | no, it's a pre-landing checklist |
2021-07-17 13:13:08 +0200 | <arahael> | Heh. |
2021-07-17 13:13:36 +0200 | <arahael> | kuribas: If it's subtyping you're referring to, no, I don't think haskell has that. |
2021-07-17 13:13:58 +0200 | <arahael> | kuribas: It does have classes and instances, though, but they behave quite differently. |
2021-07-17 13:14:06 +0200 | <kuribas> | And that's a good thing... |
2021-07-17 13:14:25 +0200 | arahael | thinks so. |
2021-07-17 13:14:37 +0200 | <DigitalKiwi> | https://www.parsonsmatt.org/2017/02/17/object_oriented_programming_in_haskell.html |
2021-07-17 13:14:57 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-07-17 13:16:39 +0200 | ubert | (~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de) |
2021-07-17 13:16:43 +0200 | <DigitalKiwi> | https://hackage.haskell.org/package/hoop |
2021-07-17 13:16:56 +0200 | <DigitalKiwi> | cue bot "haskell can do that!" |
2021-07-17 13:22:23 +0200 | <dibblego> | DigitalKiwi: https://flightscope.gitlab.io/aircraft/checklist/eurofox.pdf page 1, top-right |
2021-07-17 13:23:55 +0200 | Pickchea | (~private@user/pickchea) |
2021-07-17 13:25:30 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 255 seconds) |
2021-07-17 13:26:22 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
2021-07-17 13:26:44 +0200 | enemeth79 | (uid309041@id-309041.tooting.irccloud.com) |
2021-07-17 13:27:32 +0200 | hegstal | (~hegstal@2a02:c7f:7604:8a00:3e00:8986:ae6e:2aac) |
2021-07-17 13:38:49 +0200 | Ouroborosie | (~pjetcetal@128-71-13-182.broadband.corbina.ru) (Remote host closed the connection) |
2021-07-17 13:41:00 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer) |
2021-07-17 13:41:55 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-17 13:43:35 +0200 | anandprabhu | (~anandprab@94.202.243.198) (Quit: Leaving) |
2021-07-17 13:43:39 +0200 | MidAutumnMoon9 | (~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge) |
2021-07-17 13:43:54 +0200 | MidAutumnMoon9 | (~MidAutumn@user/midautumnmoon) |
2021-07-17 13:46:19 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Ping timeout: 268 seconds) |
2021-07-17 13:46:53 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) |
2021-07-17 13:49:08 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-17 13:51:36 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 255 seconds) |
2021-07-17 13:51:43 +0200 | hexfive | (~eric@50.35.83.177) (Quit: WeeChat 3.0) |
2021-07-17 13:55:21 +0200 | jippiedoe | (~david@2a02-a44c-e14e-1-d983-46dc-7f08-a171.fixed6.kpn.net) |
2021-07-17 13:58:55 +0200 | <kuribas> | I've been accused of being a haskell lanuage zealot. But actually I am interested in other languages (logic, FP, dependently typed, etc...). It just doesn't seem to be useful to push for other languages that I know less... |
2021-07-17 13:59:13 +0200 | Ouroborosie | (~pjetcetal@128-71-13-182.broadband.corbina.ru) |
2021-07-17 13:59:21 +0200 | <kuribas> | I could recommend F# instead of haskell, but I don't know it that well, so there is less benefit IMO... |
2021-07-17 14:00:07 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 14:01:40 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer) |
2021-07-17 14:02:29 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-17 14:03:15 +0200 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2021-07-17 14:03:49 +0200 | gentauro | (~gentauro@user/gentauro) |
2021-07-17 14:04:48 +0200 | <kuribas> | Every time I come with rational arguments, I get a reply like "But I don't like types, they get in the way". Or "programming languages don't matter, business logic does". Or "I don't care it's more robust, we want to move fast and solve bugs as we go". |
2021-07-17 14:11:30 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 240 seconds) |
2021-07-17 14:11:41 +0200 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2021-07-17 14:11:50 +0200 | _xor | (~xor@74.215.232.67) (Quit: WeeChat 3.2) |
2021-07-17 14:14:02 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 14:15:10 +0200 | fef | (~thedawn@user/thedawn) (Ping timeout: 244 seconds) |
2021-07-17 14:15:54 +0200 | _xor | (~xor@74.215.232.67) |
2021-07-17 14:16:02 +0200 | mnrmnaugh | (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) |
2021-07-17 14:18:06 +0200 | <dibblego> | get used to it |
2021-07-17 14:18:47 +0200 | <tom__> | kuribas: I feel your pain |
2021-07-17 14:18:53 +0200 | Guest77 | (~Guest77@2402:e280:2117:297:e041:4ae1:dd3c:1f08) |
2021-07-17 14:19:43 +0200 | <tom__> | "Types get in the way" then spends three hours NULL chasing |
2021-07-17 14:20:50 +0200 | <kuribas> | tom__: exactly! I spend far more time thinking about types in clojure than in haskell. |
2021-07-17 14:21:11 +0200 | <maerwald> | types can get in the way, especially since haskell lacks structural typing |
2021-07-17 14:21:34 +0200 | <tom__> | haha sometimes you want types to get in the way |
2021-07-17 14:21:51 +0200 | <maerwald> | I know of at least one Haskell dev who now works full-time with typescript and doesn't regret it |
2021-07-17 14:22:09 +0200 | <maerwald> | I probably wouldn't, but it's a valid position |
2021-07-17 14:22:50 +0200 | peterhil_ | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
2021-07-17 14:22:55 +0200 | <tom__> | Clojure to me is just javascript with some immutability |
2021-07-17 14:22:58 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-07-17 14:23:06 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 255 seconds) |
2021-07-17 14:23:22 +0200 | <kuribas> | maerwald: I find that often, it just amounts to having a bit more boilerplate. Or having duplicate type definitions. |
2021-07-17 14:23:40 +0200 | <maerwald> | it can be a *lot* of boilerplate |
2021-07-17 14:24:00 +0200 | <maerwald> | and prohibits you of expressing certain relationships between data |
2021-07-17 14:24:19 +0200 | <tom__> | Haskell, Rust and Julia - desert island stack |
2021-07-17 14:24:37 +0200 | <tom__> | Havent tried the latter two :D |
2021-07-17 14:24:58 +0200 | <maerwald> | class based solutions don't work well when you need an *actual* data type for serialisation |
2021-07-17 14:25:38 +0200 | brian_da_mage | (~Neuromanc@user/briandamag) |
2021-07-17 14:25:45 +0200 | <maerwald> | typescript is surprisingly simple and powerful on these matters... certainly less elegant and unsound in a few places, but that's the tradeoff the make |
2021-07-17 14:25:47 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 268 seconds) |
2021-07-17 14:26:10 +0200 | <kuribas> | tom__: rust is only my "to learn list" :) |
2021-07-17 14:26:42 +0200 | <kuribas> | maerwald: you can be less elegant and unsound in haskell too... |
2021-07-17 14:27:02 +0200 | <maerwald> | kuribas: yeah, but that usually involves MORE complexity, not less |
2021-07-17 14:27:10 +0200 | <maerwald> | so the opposite of typescript |
2021-07-17 14:27:16 +0200 | thelounge9230681 | (~thelounge@cpe-75-85-161-60.san.res.rr.com) (Remote host closed the connection) |
2021-07-17 14:27:22 +0200 | <tom__> | You can be and then people who don't understand what a theoretical model is say that it must mean Haskell is pointless |
2021-07-17 14:28:12 +0200 | <kuribas> | maerwald: I don't agree |
2021-07-17 14:28:47 +0200 | <maerwald> | well, you *can* do some forms of structural typing/subtyping, but it all ends in esoteric libraries |
2021-07-17 14:29:00 +0200 | <kuribas> | maerwald: so don't do it. |
2021-07-17 14:29:03 +0200 | <maerwald> | while you get all that in TS for free without complexity |
2021-07-17 14:29:45 +0200 | <maerwald> | well, I'm not commenting on which language is better, I'm just commenting on "types can get in the way", because they can |
2021-07-17 14:29:55 +0200 | <kuribas> | maerwald: plenty of ways to get around that: 1) partially applied functions (the Endo trick), create a new type with some of the fields. 3) just make the fields all Maybe. |
2021-07-17 14:30:56 +0200 | <kuribas> | maerwald: there is a difference between "the types sometimes get in the way", and "the types always get in the way", the latter is what they seem to be implying. |
2021-07-17 14:31:02 +0200 | <maerwald> | 1) difficult for serialisation, Show instances, debugging, ... 2) boilerplate, 3) unexpressive, because now you have two cases of `Maybe` |
2021-07-17 14:31:40 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-17 14:32:02 +0200 | <kuribas> | You don't need two cases of Maybe |
2021-07-17 14:32:44 +0200 | <kuribas> | and 4) just put default values. |
2021-07-17 14:33:32 +0200 | <maerwald> | 1. there's no such value, because the computation doesn't return one for the given input, 2. there's no such value, because the computation can *never* return one |
2021-07-17 14:33:45 +0200 | <maerwald> | now you also have to wonder: 3. there's a value, but there shouldn't be one |
2021-07-17 14:33:47 +0200 | <maerwald> | oops |
2021-07-17 14:33:47 +0200 | <kuribas> | IMO, the more you want correctness, the more you are restricted in what you write. It has nothing to do with types (directly). |
2021-07-17 14:34:28 +0200 | <kuribas> | maerwald: if you grab to clojure, you don't care anyway... |
2021-07-17 14:34:48 +0200 | <maerwald> | default values.. what's my default account balance? :p |
2021-07-17 14:34:54 +0200 | <dibblego> | like I said, get used to it |
2021-07-17 14:35:03 +0200 | awth13 | (~user@user/awth13) (Remote host closed the connection) |
2021-07-17 14:35:20 +0200 | <tom__> | ^ yes and get used to makeNegative = (*) -1 |
2021-07-17 14:35:49 +0200 | <kuribas> | Which is my point, haskell can be a nice unsafe language to. Just make a big sum type, and partial functions over it (don't forget to add error messages though...). |
2021-07-17 14:36:17 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
2021-07-17 14:36:21 +0200 | <maerwald> | well, with structural typing you don't need to be partial |
2021-07-17 14:36:24 +0200 | <int-e> | Or unsafeCoerce everything and program untyped lambda calculus? :) |
2021-07-17 14:36:36 +0200 | acidjnk | (~acidjnk@p200300d0c72b9530b41c89c6d6c03a30.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2021-07-17 14:36:48 +0200 | <arahael> | kuribas: Mind you, Clojure seems to offer alternative methods to allow you to type ocrrect code. In particular, Clojure seems to have a fantastic runtime repl. |
2021-07-17 14:37:15 +0200 | <arahael> | kuribas: Such that you're running the live program and debugging it and replacing functions on the fly. |
2021-07-17 14:37:26 +0200 | <int-e> | I like types, they prevent some of the more embarrassing programming errors from being run as code. |
2021-07-17 14:37:44 +0200 | <tom__> | Revenge is forcing them to write a web app in the Lean proof assistant fully verified. |
2021-07-17 14:37:49 +0200 | <tom__> | It has IO. |
2021-07-17 14:38:13 +0200 | krz3si | (~quassel@185.217.117.220) (Ping timeout: 265 seconds) |
2021-07-17 14:38:25 +0200 | <maerwald> | right... clojure: forget a closing bracket, code still compiles, but doesn't compute prime numbers... instead it compiles to a chess engine |
2021-07-17 14:38:42 +0200 | <tom__> | haha |
2021-07-17 14:38:45 +0200 | <maerwald> | type safe? Yeah maybe. But. |
2021-07-17 14:38:48 +0200 | <kuribas> | arahael: I think you never actually used clojure? |
2021-07-17 14:38:57 +0200 | zeenk | (~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3) (Quit: Konversation terminated!) |
2021-07-17 14:39:03 +0200 | <int-e> | tom__: That's deep in "overdoing it" territory. At least if the specification is anything more elaborate than "something in, something out", and even that may be tricky if you interpret it as a promise to fulfil request in finite time. |
2021-07-17 14:39:18 +0200 | yoctocell | (~user@h87-96-130-155.cust.a3fiber.se) |
2021-07-17 14:39:26 +0200 | <kuribas> | arahael: it's a very mediocre runtime IMO, compared to java. Error messages are nearly incomprehensible. Tracing is nice though... |
2021-07-17 14:39:39 +0200 | <tom__> | int-e: Yeah pointless torture :) |
2021-07-17 14:39:50 +0200 | <maerwald> | the only upside of clojure is interactive development |
2021-07-17 14:39:55 +0200 | aman | (~aman@user/aman) |
2021-07-17 14:40:08 +0200 | <tom__> | The haskell compiler feels pretty interactive |
2021-07-17 14:40:29 +0200 | <maerwald> | if HLS works, maybe |
2021-07-17 14:40:37 +0200 | <arahael> | kuribas: Seemed to be effective enough. |
2021-07-17 14:40:53 +0200 | <arahael> | But no, I haven't personally used it. |
2021-07-17 14:41:00 +0200 | <maerwald> | but on the other hand: usually not. Compile times are too slow |
2021-07-17 14:41:12 +0200 | <kuribas> | arahael: clojurists just have a different idea of "correct code". |
2021-07-17 14:41:15 +0200 | <arahael> | I personally quite like ghcid. |
2021-07-17 14:41:27 +0200 | <arahael> | kuribas: Indeed, but I think it's the process of discovery that they like. |
2021-07-17 14:41:57 +0200 | <arahael> | kuribas: In haskell, we seem to prefer to test functions in isolation. Clojure people seem to prefer to test functions in the live system. |
2021-07-17 14:42:00 +0200 | <maerwald> | if you're working on 300+ modules and your Type module has a whitespace change, you're gonna need to restart cabal a few times, because your machine OOMed due to TH |
2021-07-17 14:42:18 +0200 | <tom__> | Which library is recommended for sampling probability distributions? |
2021-07-17 14:42:42 +0200 | <arahael> | maerwald: The amount of memory Haskell uses is crazy high. Sadly, I find it way faster than Swift. :/ |
2021-07-17 14:44:32 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2021-07-17 14:45:45 +0200 | <kuribas> | arahael: lispers will boast about how easy it is to hot patch live systems. They don't tell you that it becomes very hard to see who changed what and when. |
2021-07-17 14:46:03 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 255 seconds) |
2021-07-17 14:46:05 +0200 | <kuribas> | arahael: so you'll end up with CI/CD anyway. |
2021-07-17 14:46:32 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 14:46:34 +0200 | <kuribas> | However a theoretically, a "live" programming environment with integrated version control could be nice. |
2021-07-17 14:46:44 +0200 | <kuribas> | I don't know if that ever has been done. |
2021-07-17 14:47:32 +0200 | <maerwald> | https://hackage.haskell.org/package/optics-th-0.4/docs/Optics-TH.html#v:makeClassy |
2021-07-17 14:47:34 +0200 | <maerwald> | https://hackage.haskell.org/package/optics-th-0.4/docs/Optics-TH.html#v:makeFieldsNoPrefix |
2021-07-17 14:47:36 +0200 | <maerwald> | https://hackage.haskell.org/package/generic-optics-2.2.0.0/docs/Data-Generics-Product-Fields.html#… |
2021-07-17 14:47:38 +0200 | <maerwald> | which one of those to pick? |
2021-07-17 14:48:20 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-17 14:49:00 +0200 | <maerwald> | HasField is kinda cool with those neat type errors |
2021-07-17 14:49:55 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-07-17 14:51:41 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 268 seconds) |
2021-07-17 14:52:55 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
2021-07-17 14:53:54 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Ping timeout: 240 seconds) |
2021-07-17 14:55:06 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 240 seconds) |
2021-07-17 14:55:32 +0200 | fef | (~thedawn@user/thedawn) |
2021-07-17 14:57:13 +0200 | pesada | (~agua@2804:18:48:588b:1:0:277e:35b0) |
2021-07-17 14:57:27 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 14:59:33 +0200 | jippiedoe | (~david@2a02-a44c-e14e-1-d983-46dc-7f08-a171.fixed6.kpn.net) (Ping timeout: 255 seconds) |
2021-07-17 14:59:34 +0200 | azeem | (~azeem@dynamic-adsl-94-34-31-95.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-07-17 15:01:06 +0200 | agua | (~agua@2804:14c:8793:8e2f:a4d4:3a0b:9f6:6100) (Ping timeout: 240 seconds) |
2021-07-17 15:04:25 +0200 | azeem | (~azeem@dynamic-adsl-94-34-31-95.clienti.tiscali.it) |
2021-07-17 15:06:50 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-07-17 15:08:00 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-07-17 15:08:26 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) |
2021-07-17 15:11:29 +0200 | chomwitt | (~Pitsikoko@athedsl-32487.home.otenet.gr) |
2021-07-17 15:16:58 +0200 | hegstal | (~hegstal@2a02:c7f:7604:8a00:3e00:8986:ae6e:2aac) (Remote host closed the connection) |
2021-07-17 15:21:34 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 258 seconds) |
2021-07-17 15:22:43 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-17 15:24:15 +0200 | justLearning96 | (~justLearn@bb42-60-215-35.singnet.com.sg) |
2021-07-17 15:27:14 +0200 | justLearning96 | (~justLearn@bb42-60-215-35.singnet.com.sg) () |
2021-07-17 15:29:20 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2021-07-17 15:31:06 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 240 seconds) |
2021-07-17 15:32:07 +0200 | agua | (~agua@2804:14c:8793:8e2f:a4d4:3a0b:9f6:6100) |
2021-07-17 15:33:28 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 15:34:12 +0200 | pesada | (~agua@2804:18:48:588b:1:0:277e:35b0) (Ping timeout: 255 seconds) |
2021-07-17 15:39:28 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
2021-07-17 15:40:39 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2021-07-17 15:41:43 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-17 15:43:28 +0200 | Guest15 | (~Guest15@2402:e280:2117:297:e041:4ae1:dd3c:1f08) |
2021-07-17 15:43:50 +0200 | xff0x | (~xff0x@2001:1a81:5219:9d00:3d14:ef54:1c92:a192) (Ping timeout: 255 seconds) |
2021-07-17 15:44:20 +0200 | wei2912 | (~wei2912@112.199.250.21) (Quit: Lost terminal) |
2021-07-17 15:44:30 +0200 | xff0x | (~xff0x@port-92-193-131-10.dynamic.as20676.net) |
2021-07-17 15:45:18 +0200 | Guest15 | (~Guest15@2402:e280:2117:297:e041:4ae1:dd3c:1f08) (Client Quit) |
2021-07-17 15:54:00 +0200 | mnrmnaugh | (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Ping timeout: 255 seconds) |
2021-07-17 16:02:29 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) |
2021-07-17 16:02:49 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-07-17 16:04:05 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 255 seconds) |
2021-07-17 16:06:40 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 16:06:43 +0200 | mnrmnaugh | (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) |
2021-07-17 16:08:18 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2021-07-17 16:09:10 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-17 16:19:06 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 240 seconds) |
2021-07-17 16:21:25 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 16:35:11 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-17 16:40:32 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 255 seconds) |
2021-07-17 16:40:56 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 16:44:11 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) |
2021-07-17 16:44:32 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-07-17 16:44:38 +0200 | Guest77 | (~Guest77@2402:e280:2117:297:e041:4ae1:dd3c:1f08) (Quit: Ping timeout (120 seconds)) |
2021-07-17 16:45:50 +0200 | Guest77 | (~Guest77@2402:e280:2117:297:e041:4ae1:dd3c:1f08) |
2021-07-17 16:51:13 +0200 | zebrag | (~chris@user/zebrag) |
2021-07-17 16:55:15 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-07-17 16:56:14 +0200 | Guest77 | (~Guest77@2402:e280:2117:297:e041:4ae1:dd3c:1f08) (Quit: Client closed) |
2021-07-17 16:56:32 +0200 | Guest77 | (~Guest77@2402:e280:2117:297:e041:4ae1:dd3c:1f08) |
2021-07-17 16:57:27 +0200 | fef | admin |
2021-07-17 16:57:36 +0200 | admin | adminll |
2021-07-17 16:57:48 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-17 17:02:55 +0200 | meinside_ | (uid24933@id-24933.brockwell.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-17 17:04:20 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-17 17:08:14 +0200 | smichel17 | (~smichel17@c-73-68-217-18.hsd1.ma.comcast.net) |
2021-07-17 17:08:50 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-07-17 17:09:01 +0200 | texasmynsted | (~texasmyns@99.96.221.112) |
2021-07-17 17:10:23 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Client Quit) |
2021-07-17 17:12:29 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds) |
2021-07-17 17:12:54 +0200 | fradet | (~fradet@216.252.75.247) |
2021-07-17 17:13:31 +0200 | andreas303 | (andreas303@ip227.orange.bnc4free.com) (Ping timeout: 268 seconds) |
2021-07-17 17:14:01 +0200 | Zemyla_ | (~ec2-user@ec2-54-196-11-2.compute-1.amazonaws.com) |
2021-07-17 17:14:08 +0200 | Aleksejs_Home | (~Aleksejs@haskell.lv) (Ping timeout: 268 seconds) |
2021-07-17 17:14:08 +0200 | ajb | (~ajb@cupid.whatbox.ca) (Ping timeout: 268 seconds) |
2021-07-17 17:14:45 +0200 | Zemyla | (~ec2-user@ec2-54-196-11-2.compute-1.amazonaws.com) (Ping timeout: 268 seconds) |
2021-07-17 17:14:57 +0200 | oso | (~oso@2601:58c:c080:a950:e67d:b4e2:c5be:433f) |
2021-07-17 17:15:01 +0200 | andreas303 | (andreas303@ip227.orange.bnc4free.com) |
2021-07-17 17:15:22 +0200 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) (Ping timeout: 268 seconds) |
2021-07-17 17:15:35 +0200 | sim590 | (~simon@modemcable090.207-203-24.mc.videotron.ca) |
2021-07-17 17:15:35 +0200 | <boxscape> | maerwald: the TH versions say "This method of optics generation should only be used when migrating an existing codebase from the lens library to optics" |
2021-07-17 17:15:40 +0200 | ajb | (~ajb@cupid.whatbox.ca) |
2021-07-17 17:15:51 +0200 | <boxscape> | maerwald: this, my final answer is C |
2021-07-17 17:15:56 +0200 | <boxscape> | s/this/thus |
2021-07-17 17:16:00 +0200 | nonzen | (~nonzen@user/nonzen) (Ping timeout: 268 seconds) |
2021-07-17 17:16:00 +0200 | aweinstock | (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) (Ping timeout: 268 seconds) |
2021-07-17 17:16:00 +0200 | hololeap | (~hololeap@user/hololeap) (Ping timeout: 244 seconds) |
2021-07-17 17:16:08 +0200 | <maerwald> | HasField? |
2021-07-17 17:16:20 +0200 | Aleksejs | (~Aleksejs@haskell.lv) |
2021-07-17 17:16:21 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) (Ping timeout: 255 seconds) |
2021-07-17 17:16:34 +0200 | nonzen | (~nonzen@user/nonzen) |
2021-07-17 17:16:46 +0200 | <boxscape> | yeah.. though I thought there was a version of that which uses OverloadedLabels |
2021-07-17 17:17:20 +0200 | <maerwald> | HasField though doesn't allow arbitrary subtyping... it's a simple getter |
2021-07-17 17:17:23 +0200 | aweinstock | (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) |
2021-07-17 17:17:32 +0200 | adminll | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-07-17 17:17:36 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-07-17 17:17:54 +0200 | <maerwald> | with makeClassy style classes you could descend deeper into the structure with the same getter |
2021-07-17 17:18:03 +0200 | Guest9 | (~Guest9@43.242.116.127) |
2021-07-17 17:18:12 +0200 | superbil | (~superbil@1-34-176-171.HINET-IP.hinet.net) |
2021-07-17 17:18:12 +0200 | adminll | (~thedawn@user/thedawn) |
2021-07-17 17:18:30 +0200 | <boxscape> | maerwald: oh actually the TH version links to https://hackage.haskell.org/package/optics-core-0.4/docs/Optics-Label.html as preferred solution |
2021-07-17 17:19:03 +0200 | <boxscape> | that's the OverloadedLabels version I was remembering |
2021-07-17 17:19:04 +0200 | ByronJohnson | (~bairyn@mail.digitalkingdom.org) (Ping timeout: 268 seconds) |
2021-07-17 17:19:12 +0200 | ByronJohnson | (~bairyn@mail.digitalkingdom.org) |
2021-07-17 17:19:41 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) |
2021-07-17 17:21:31 +0200 | Null_A | (~null_a@2601:645:8700:2290:b55a:33c2:1e1d:f229) |
2021-07-17 17:22:44 +0200 | <maerwald> | so there you could also define custom LabelOptic instances that descend into a structure? |
2021-07-17 17:23:27 +0200 | <boxscape> | that seems plausible but I haven't tried doing it |
2021-07-17 17:23:47 +0200 | <maerwald> | I'm leaning towards makeClassy, but I'm not sure |
2021-07-17 17:24:25 +0200 | <boxscape> | I like makeClassy, the main reason I would avoid it personally is that the documentation advises against it |
2021-07-17 17:25:40 +0200 | <maerwald> | so what does LabelOptic give over HasField? |
2021-07-17 17:25:43 +0200 | Ariakenom_ | (~Ariakenom@c83-255-154-140.bredband.tele2.se) |
2021-07-17 17:26:17 +0200 | <texasmynsted> | What is the modern answer to haskell records? Lens? |
2021-07-17 17:26:49 +0200 | <maerwald> | only difference I see is labelOptic is `Optic` and HasField is a `Lens` |
2021-07-17 17:28:24 +0200 | <boxscape> | hm I'm not sure what the concrete differences are |
2021-07-17 17:29:14 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-6-20.prtc.net) |
2021-07-17 17:29:33 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) (Ping timeout: 268 seconds) |
2021-07-17 17:29:35 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-07-17 17:30:52 +0200 | <boxscape> | texasmynsted: there are a few answers to this: In the next version, OverloadedRecordDot is being introduces, which allows one to write something like `personA.company.name`. (Updates are a bit iffy but will improve over time.) In the meantime, lens is definitely still widely used, though optics is a replacement which aims to have better error messages. There is also some research going into row types, but that's further out. |
2021-07-17 17:30:55 +0200 | <boxscape> | s/next version/next version of GHC |
2021-07-17 17:31:36 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-17 17:32:08 +0200 | <boxscape> | (though regarding row types, the vinyl records package allows something similar today) |
2021-07-17 17:33:11 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-07-17 17:35:02 +0200 | Ariakenom__ | (~Ariakenom@c83-255-154-140.bredband.tele2.se) |
2021-07-17 17:35:20 +0200 | enemeth79 | (uid309041@id-309041.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-17 17:35:21 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-07-17 17:35:30 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-6-20.prtc.net) (Quit: Client closed) |
2021-07-17 17:36:09 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds) |
2021-07-17 17:38:40 +0200 | oso | (~oso@2601:58c:c080:a950:e67d:b4e2:c5be:433f) (Ping timeout: 246 seconds) |
2021-07-17 17:38:48 +0200 | Ariakenom_ | (~Ariakenom@c83-255-154-140.bredband.tele2.se) (Ping timeout: 268 seconds) |
2021-07-17 17:39:45 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 255 seconds) |
2021-07-17 17:40:03 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 17:43:24 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 258 seconds) |
2021-07-17 17:43:44 +0200 | kuribas | (~user@ptr-25vy0i9ash1yu2tubi9.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-07-17 17:44:31 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-17 17:45:43 +0200 | keutoi | (~keutoi@157.48.202.216) (Quit: Reconnecting) |
2021-07-17 17:45:53 +0200 | keutoi | (~keutoi@157.48.202.216) |
2021-07-17 17:46:54 +0200 | chris_ | (~chris@81.96.113.213) |
2021-07-17 17:47:16 +0200 | Guest77 | (~Guest77@2402:e280:2117:297:e041:4ae1:dd3c:1f08) (Quit: Client closed) |
2021-07-17 17:53:52 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-17 17:55:47 +0200 | hendursa1 | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-07-17 17:56:16 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-07-17 17:56:22 +0200 | arjun | (~user@user/arjun) |
2021-07-17 17:59:48 +0200 | Guest14 | (~Guest14@76-236-222-208.lightspeed.tukrga.sbcglobal.net) |
2021-07-17 18:03:05 +0200 | <Guest14> | Hello :) |
2021-07-17 18:03:40 +0200 | <Guest14> | I am new to Haskell and am working through the Real World Haskell Book |
2021-07-17 18:03:57 +0200 | econo | (uid147250@user/econo) |
2021-07-17 18:04:27 +0200 | <Guest14> | I have a basic question if anyone would care to listen |
2021-07-17 18:06:02 +0200 | <allbery_b> | best to just ask it rather than asking to ask |
2021-07-17 18:06:11 +0200 | allbery_b | geekosaur |
2021-07-17 18:06:23 +0200 | <davean> | asking to ask is why I wasn't helping |
2021-07-17 18:07:44 +0200 | <Guest14> | splitWith _ [] = [] |
2021-07-17 18:07:45 +0200 | <Guest14> | splitWith a xs = [pre ++ [x]] ++ next |
2021-07-17 18:07:45 +0200 | <Guest14> | where |
2021-07-17 18:07:46 +0200 | <Guest14> | (pre, x:suf) = span a xs |
2021-07-17 18:07:46 +0200 | <Guest14> | next = splitWith a suf |
2021-07-17 18:08:10 +0200 | <Guest14> | I have this program and I run into a problem with x:suf when span a xs is [] becuase there is no head |
2021-07-17 18:09:30 +0200 | chomwitt | (~Pitsikoko@athedsl-32487.home.otenet.gr) (Ping timeout: 240 seconds) |
2021-07-17 18:09:34 +0200 | <int-e> | > let f = splitAt 1 in (f "abc", f "") |
2021-07-17 18:09:36 +0200 | <lambdabot> | (("a","bc"),("","")) |
2021-07-17 18:11:31 +0200 | <int-e> | (So maybe use splitAt instead of the x:suf pattern.) |
2021-07-17 18:11:39 +0200 | <maerwald> | was there a question yet? |
2021-07-17 18:11:45 +0200 | <davean> | No |
2021-07-17 18:12:09 +0200 | <Guest14> | Ok I will give that a try thanks |
2021-07-17 18:12:10 +0200 | <int-e> | They described a problem, close enough. |
2021-07-17 18:12:35 +0200 | <maerwald> | They also described the answer |
2021-07-17 18:12:38 +0200 | <maerwald> | "there is no head" |
2021-07-17 18:12:47 +0200 | <int-e> | @where paste |
2021-07-17 18:12:47 +0200 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2021-07-17 18:13:04 +0200 | <int-e> | maerwald: That's the reason, but not a solution for the problem? |
2021-07-17 18:13:06 +0200 | int-e | shrugs |
2021-07-17 18:13:10 +0200 | <maerwald> | So my answer is: yes |
2021-07-17 18:13:28 +0200 | <int-e> | Well, so sorry for trying to be helpful. |
2021-07-17 18:13:33 +0200 | dajoer | (~david@user/gvx) (Quit: leaving) |
2021-07-17 18:14:08 +0200 | Ariakenom__ | (~Ariakenom@c83-255-154-140.bredband.tele2.se) (Ping timeout: 255 seconds) |
2021-07-17 18:14:09 +0200 | <davean> | int-e: oh do be helpful |
2021-07-17 18:15:04 +0200 | mnrmnaugh | (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Leaving) |
2021-07-17 18:15:14 +0200 | <Guest14> | int-e that worked thank you |
2021-07-17 18:16:19 +0200 | darius-os_ | (uid508861@id-508861.stonehaven.irccloud.com) |
2021-07-17 18:20:42 +0200 | <texasmynsted> | thank you boxscape |
2021-07-17 18:21:29 +0200 | <texasmynsted> | Sounds like optics or vinyl for now |
2021-07-17 18:21:44 +0200 | Guest14 | (~Guest14@76-236-222-208.lightspeed.tukrga.sbcglobal.net) (Quit: Client closed) |
2021-07-17 18:22:07 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-07-17 18:23:04 +0200 | Ariakenom__ | (~Ariakenom@c83-255-154-140.bredband.tele2.se) |
2021-07-17 18:24:27 +0200 | Guest14 | (~Guest14@76-236-222-208.lightspeed.tukrga.sbcglobal.net) |
2021-07-17 18:27:27 +0200 | brian_da_mage | (~Neuromanc@user/briandamag) (Ping timeout: 255 seconds) |
2021-07-17 18:27:58 +0200 | oso | (~oso@2601:58c:c080:a950:e67d:b4e2:c5be:433f) |
2021-07-17 18:30:57 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-17 18:31:11 +0200 | <sm> | g'day all. Speaking of optics.. you experienced [lens] coders, do you find it good or bad for (a) fields and (b) lenses to be visually disctinct from other kinds of bindings (functions, "variables") ? As in eg _field/lens_, field_/lens__, _field/lensL, .... ? |
2021-07-17 18:31:57 +0200 | Ariakenom__ | (~Ariakenom@c83-255-154-140.bredband.tele2.se) (Ping timeout: 255 seconds) |
2021-07-17 18:32:24 +0200 | <sm> | I feel it would be good overall, for avoiding collisions and for human comprehension . But I don't have a lot of lens experience |
2021-07-17 18:33:02 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-07-17 18:33:18 +0200 | norias | (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 255 seconds) |
2021-07-17 18:33:20 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-17 18:34:12 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-07-17 18:36:33 +0200 | Ariakenom__ | (~Ariakenom@c83-255-154-140.bredband.tele2.se) |
2021-07-17 18:36:59 +0200 | retroid_ | (~retro@97e2ba5d.skybroadband.com) |
2021-07-17 18:38:11 +0200 | smichel17 | (~smichel17@c-73-68-217-18.hsd1.ma.comcast.net) (Quit: smichel17) |
2021-07-17 18:40:10 +0200 | <maerwald> | can you derive LabelOptic with deriving via for an inner type? |
2021-07-17 18:41:05 +0200 | retro_ | (~retro@97e2ba5d.skybroadband.com) (Ping timeout: 268 seconds) |
2021-07-17 18:41:42 +0200 | retroid_ | (~retro@97e2ba5d.skybroadband.com) (Ping timeout: 268 seconds) |
2021-07-17 18:42:24 +0200 | retroid_ | (~retro@97e2ba5d.skybroadband.com) |
2021-07-17 18:42:50 +0200 | <oso> | xpost from #haskell-beginners: |
2021-07-17 18:42:52 +0200 | <oso> | I'm passing around a type synonym for Int, but in reality the only constraint it needs to follow is that it's hashable. what constructor do i use for this? my brain says go from `type UID = Int` to `data UID a = Hashable a` but that's very not correct, and google isn't helping much |
2021-07-17 18:43:21 +0200 | <oso> | nvm sorry got an answer there |
2021-07-17 18:48:56 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-17 18:49:57 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-17 18:50:11 +0200 | Guest14 | (~Guest14@76-236-222-208.lightspeed.tukrga.sbcglobal.net) (Quit: Client closed) |
2021-07-17 18:51:02 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 255 seconds) |
2021-07-17 18:51:26 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 18:52:47 +0200 | cheater | (~Username@user/cheater) (Remote host closed the connection) |
2021-07-17 18:53:50 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2021-07-17 18:54:37 +0200 | <glguy> | oso, if you just need to know that something is hashable you'd use it like: stuff :: Hashable a => a -> b -> c |
2021-07-17 18:54:39 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
2021-07-17 18:54:39 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-07-17 18:55:19 +0200 | <glguy> | If a parameter is the uid parameter you can document that like: stuff :: Hashable uid => uid {- ^ the UID -} -> etc |
2021-07-17 18:55:35 +0200 | <oso> | I was trying to do that while also using types to keep my signatures from becoming unwieldy, but first i'll just worry about getting the code working |
2021-07-17 18:55:43 +0200 | keutoi | (~keutoi@157.48.202.216) (Quit: leaving) |
2021-07-17 18:55:53 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 268 seconds) |
2021-07-17 18:55:58 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-07-17 18:56:05 +0200 | cheater | (~Username@user/cheater) |
2021-07-17 18:56:22 +0200 | <glguy> | the documentation for parameters goes in the haddock comments rather than type synonyms |
2021-07-17 18:56:43 +0200 | <oso> | mmk |
2021-07-17 18:57:00 +0200 | chris_ | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-07-17 18:57:52 +0200 | burnside_ | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-07-17 18:57:55 +0200 | smichel17 | (~smichel17@2601:193:8300:4b9::600) |
2021-07-17 18:58:06 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Read error: Connection reset by peer) |
2021-07-17 19:00:31 +0200 | arjun | (~user@user/arjun) (Ping timeout: 250 seconds) |
2021-07-17 19:01:33 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Read error: Connection reset by peer) |
2021-07-17 19:02:18 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-07-17 19:05:40 +0200 | <dsal> | oso: It's tempting to put constraints in the type definitions, but if you take a look at, for example, `Data.Map.Strict` you'll see the type definition is just `data Map k a`. You'd think k would always have to be ordered, but that's not the case. You can create and work on maps that have unorderable keys when you don't do things that require ordering. e.g.: |
2021-07-17 19:05:42 +0200 | <dsal> | > M.elems $ (* 2) <$> M.singleton id 3 |
2021-07-17 19:05:43 +0200 | <lambdabot> | [6] |
2021-07-17 19:07:10 +0200 | <dsal> | The idea is that you only have to constrain things where they actually need to be constrained. The Functor instance, e.g., doesn't care about the keys at all, so why should it require they're ordered? |
2021-07-17 19:08:00 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-17 19:09:25 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-07-17 19:11:52 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-07-17 19:12:32 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2021-07-17 19:13:45 +0200 | <oso> | got it working \o/ |
2021-07-17 19:13:47 +0200 | <oso> | thank you |
2021-07-17 19:15:07 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-07-17 19:16:22 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-17 19:21:49 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-17 19:22:00 +0200 | mnrmnaugh | (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) |
2021-07-17 19:26:35 +0200 | Null_A | (~null_a@2601:645:8700:2290:b55a:33c2:1e1d:f229) (Remote host closed the connection) |
2021-07-17 19:27:45 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 255 seconds) |
2021-07-17 19:28:36 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-07-17 19:41:25 +0200 | Pickchea | (~private@user/pickchea) |
2021-07-17 19:42:19 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-07-17 19:43:14 +0200 | mcfrdy | (~mcfrdy@user/mcfrdy) (Ping timeout: 255 seconds) |
2021-07-17 19:44:09 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 258 seconds) |
2021-07-17 19:44:25 +0200 | mcfrdy | (~mcfrdy@45.67.96.126) |
2021-07-17 19:44:26 +0200 | mcfrdy | (~mcfrdy@45.67.96.126) (Changing host) |
2021-07-17 19:44:26 +0200 | mcfrdy | (~mcfrdy@user/mcfrdy) |
2021-07-17 19:46:09 +0200 | <hololeap> | so, I figured out a way to make a function with an arbitrary number of arguments using type families and type-level lists. but, I have to wonder ... has someone already made this and put it on hackage? |
2021-07-17 19:47:04 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-17 19:47:46 +0200 | <texasmynsted> | wait, why do you want a function with an arbitrary number of arguments? |
2021-07-17 19:48:31 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-07-17 19:49:03 +0200 | <c_wraith> | usually to cover for a lack of other expressiveness |
2021-07-17 19:49:09 +0200 | <c_wraith> | printf is a common example |
2021-07-17 19:49:12 +0200 | <texasmynsted> | Seems to me ideally a function should have exactly one argument |
2021-07-17 19:49:19 +0200 | <c_wraith> | We can't write the type it actually has in Haskell |
2021-07-17 19:49:25 +0200 | <c_wraith> | Because it's a dependent type |
2021-07-17 19:49:51 +0200 | <c_wraith> | So varargs lets us do it anyway and fail at runtime if the programmer got it wrong |
2021-07-17 19:50:07 +0200 | <texasmynsted> | printf solves a problem in a particular way that I think could be solved better, differently |
2021-07-17 19:50:18 +0200 | <c_wraith> | differently? sure. Better? Not really. |
2021-07-17 19:50:21 +0200 | <hololeap> | the motivation was because I had a typeclass with a function, and I encountered some outliers that needed extra arguments passed to that function |
2021-07-17 19:50:47 +0200 | <texasmynsted> | c_wraith: I am not convinced |
2021-07-17 19:50:48 +0200 | <hololeap> | I'd have to write up a blog post or something to get into all the details |
2021-07-17 19:50:57 +0200 | <Rembane> | hololeap: Do it! :D |
2021-07-17 19:51:08 +0200 | <texasmynsted> | yes, that would be a good read |
2021-07-17 19:51:15 +0200 | <c_wraith> | printf is *really* good at doing exactly what it's intended for. Compactly specifying output formatted for monospace devices. |
2021-07-17 19:51:33 +0200 | <texasmynsted> | like regular expressions? |
2021-07-17 19:51:42 +0200 | <c_wraith> | honestly, it's more useful |
2021-07-17 19:52:01 +0200 | <c_wraith> | regular expressions have to involve things like capturing group to really be useful, and those complicate APIs tremendously |
2021-07-17 19:52:05 +0200 | <c_wraith> | printf has no such problems |
2021-07-17 19:52:20 +0200 | <texasmynsted> | Right. I think regular expressions work great but are terrible and the problem is better solved differently |
2021-07-17 19:52:46 +0200 | <EvanR> | compare and contrast serious uses of printf with the expanded version, replicate that across a code base like 50 times and compare xD |
2021-07-17 19:53:12 +0200 | <EvanR> | also, printf for debugging |
2021-07-17 19:53:25 +0200 | <EvanR> | debugging would be harsher without it |
2021-07-17 19:53:56 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-07-17 19:54:27 +0200 | <EvanR> | I'm more interested with this case of some function sometimes needing more arguments |
2021-07-17 19:56:04 +0200 | <texasmynsted> | I am still going with functions should have exactly one argument |
2021-07-17 19:56:30 +0200 | <hololeap> | I mean... they do, technically. |
2021-07-17 19:57:24 +0200 | Null_A | (~null_a@2601:645:8700:2290:b55a:33c2:1e1d:f229) |
2021-07-17 19:57:38 +0200 | <texasmynsted> | yes |
2021-07-17 19:58:02 +0200 | <EvanR> | if the difference is between argument type (A,B) and (A,B,C) it's about argument type and not number |
2021-07-17 19:58:23 +0200 | <texasmynsted> | Okay now we are getting somewhere |
2021-07-17 20:00:32 +0200 | MorrowM | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2021-07-17 20:00:36 +0200 | azeem | (~azeem@dynamic-adsl-94-34-31-95.clienti.tiscali.it) (Ping timeout: 265 seconds) |
2021-07-17 20:00:57 +0200 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Ping timeout: 245 seconds) |
2021-07-17 20:01:47 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 258 seconds) |
2021-07-17 20:03:07 +0200 | azeem | (~azeem@176.201.25.252) |
2021-07-17 20:05:26 +0200 | flukiluke_ | (~flukiluke@168.138.23.5) (Ping timeout: 265 seconds) |
2021-07-17 20:05:49 +0200 | flukiluke | (~flukiluke@2603:c023:c000:6c7e:8945:ad24:9113:a962) |
2021-07-17 20:06:15 +0200 | elcaro | (~anonymous@45.32.191.75) (Ping timeout: 252 seconds) |
2021-07-17 20:07:09 +0200 | elcaro | (~anonymous@45.32.191.75) |
2021-07-17 20:09:18 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 265 seconds) |
2021-07-17 20:09:54 +0200 | pesada | (~agua@2804:18:48:588b:1:0:277e:35b0) |
2021-07-17 20:10:09 +0200 | Core5124 | (~agua@2804:14c:8793:8e2f:642c:be4c:c775:de87) |
2021-07-17 20:13:10 +0200 | __monty__ | (~toonn@user/toonn) |
2021-07-17 20:13:23 +0200 | agua | (~agua@2804:14c:8793:8e2f:a4d4:3a0b:9f6:6100) (Ping timeout: 255 seconds) |
2021-07-17 20:14:11 +0200 | pesada | (~agua@2804:18:48:588b:1:0:277e:35b0) (Ping timeout: 250 seconds) |
2021-07-17 20:15:26 +0200 | azeem | (~azeem@176.201.25.252) (Ping timeout: 268 seconds) |
2021-07-17 20:17:33 +0200 | azeem | (~azeem@176.201.25.252) |
2021-07-17 20:19:56 +0200 | Null_A | (~null_a@2601:645:8700:2290:b55a:33c2:1e1d:f229) (Remote host closed the connection) |
2021-07-17 20:19:57 +0200 | ubert | (~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2021-07-17 20:21:23 +0200 | Ouroborosie | (~pjetcetal@128-71-13-182.broadband.corbina.ru) (Quit: EXIT) |
2021-07-17 20:24:10 +0200 | Ananta-shesha | (~pjetcetal@128-71-13-182.broadband.corbina.ru) |
2021-07-17 20:24:31 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-17 20:24:49 +0200 | azeem | (~azeem@176.201.25.252) (Read error: Connection reset by peer) |
2021-07-17 20:26:00 +0200 | azeem | (~azeem@dynamic-adsl-94-34-31-95.clienti.tiscali.it) |
2021-07-17 20:26:27 +0200 | brian_da_mage | (~Neuromanc@user/briandamag) |
2021-07-17 20:30:14 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-07-17 20:30:56 +0200 | Ananta-shesha | Anantashesha |
2021-07-17 20:31:05 +0200 | Anantashesha | Ananta-shesha |
2021-07-17 20:36:54 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-17 20:37:06 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-17 20:37:39 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) (Remote host closed the connection) |
2021-07-17 20:42:10 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-07-17 20:42:16 +0200 | DNH | (~DNH@2a02:8108:1100:16d8:6178:3a47:8c71:dd89) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-07-17 20:45:49 +0200 | Ananta-shesha | (~pjetcetal@128-71-13-182.broadband.corbina.ru) (Quit: EXIT) |
2021-07-17 20:46:05 +0200 | DNH | (~DNH@2a02:8108:1100:16d8:6178:3a47:8c71:dd89) |
2021-07-17 20:46:05 +0200 | burnside_ | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Read error: Connection reset by peer) |
2021-07-17 20:46:10 +0200 | Ananta-shesha | (~pjetcetal@128-71-13-182.broadband.corbina.ru) |
2021-07-17 20:46:23 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-07-17 20:49:30 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 240 seconds) |
2021-07-17 20:50:08 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-07-17 20:50:11 +0200 | DNH | (~DNH@2a02:8108:1100:16d8:6178:3a47:8c71:dd89) (Client Quit) |
2021-07-17 20:51:17 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-07-17 20:53:36 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-07-17 20:54:09 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds) |
2021-07-17 20:56:50 +0200 | hendursaga | (~weechat@user/hendursaga) (Remote host closed the connection) |
2021-07-17 20:58:27 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
2021-07-17 20:59:24 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-17 21:00:54 +0200 | benin0369 | (~benin@183.82.206.198) (Ping timeout: 255 seconds) |
2021-07-17 21:03:41 +0200 | aallen | (~aallen@072-182-074-253.res.spectrum.com) |
2021-07-17 21:05:55 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-17 21:06:50 +0200 | <texasmynsted> | sigh. |
2021-07-17 21:07:01 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-17 21:07:39 +0200 | <oso> | seconded |
2021-07-17 21:08:52 +0200 | <texasmynsted> | +1 oso |
2021-07-17 21:09:01 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
2021-07-17 21:12:41 +0200 | brian_da_mage | Brianmancer |
2021-07-17 21:14:22 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-07-17 21:14:36 +0200 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2021-07-17 21:17:38 +0200 | Null_A | (~null_a@2601:645:8700:2290:b55a:33c2:1e1d:f229) |
2021-07-17 21:17:38 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-17 21:18:12 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-07-17 21:20:01 +0200 | adminll | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-07-17 21:20:24 +0200 | machinedgod | (~machinedg@24.105.81.50) (Remote host closed the connection) |
2021-07-17 21:21:19 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2021-07-17 21:22:40 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
2021-07-17 21:25:52 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-17 21:30:09 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 255 seconds) |
2021-07-17 21:30:34 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 21:31:03 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 255 seconds) |
2021-07-17 21:32:57 +0200 | <monochrom> | Why so grim? |
2021-07-17 21:33:18 +0200 | <boxscape> | hololeap: one of rae's latest videos is also about varargs https://youtu.be/iGSKqcebhfs |
2021-07-17 21:33:22 +0200 | <monochrom> | You know "grim" and "grin" are just one curvy stroke apart. :) |
2021-07-17 21:33:53 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-07-17 21:33:55 +0200 | <boxscape> | you can't spell slaughter without laughter, you can't spell grim without grin |
2021-07-17 21:34:33 +0200 | <monochrom> | hee hee |
2021-07-17 21:35:42 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) |
2021-07-17 21:35:57 +0200 | <oso> | idk why texas is feeling grim but i'm extremely anxious about a work trip and trying to stuff the feelings down by adding documentation to my heretofore undocumented code |
2021-07-17 21:36:32 +0200 | <monochrom> | My gripe about printf is I will be writing "%d %d %d %d %d %d %d" and then it's the same issue with (Int,Int,Int,Int,Int,Int). And I'm deliberately demonstrating an miscounting error for starters. But this issue is not about vararg, it's about losing structure. |
2021-07-17 21:37:45 +0200 | alx741 | (~alx741@181.196.68.89) (Ping timeout: 265 seconds) |
2021-07-17 21:38:53 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-07-17 21:39:32 +0200 | finsternis | (~X@23.226.237.192) (Remote host closed the connection) |
2021-07-17 21:40:57 +0200 | mcfrdy | (~mcfrdy@user/mcfrdy) (Ping timeout: 255 seconds) |
2021-07-17 21:41:40 +0200 | Ananta-shesha | (~pjetcetal@128-71-13-182.broadband.corbina.ru) (Quit: EXIT) |
2021-07-17 21:43:37 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 268 seconds) |
2021-07-17 21:43:45 +0200 | dmwit | (~dmwit@pool-96-255-233-247.washdc.fios.verizon.net) (Ping timeout: 258 seconds) |
2021-07-17 21:44:57 +0200 | mcfrdy | (~mcfrdy@45.67.96.77) |
2021-07-17 21:44:57 +0200 | mcfrdy | (~mcfrdy@45.67.96.77) (Changing host) |
2021-07-17 21:44:57 +0200 | mcfrdy | (~mcfrdy@user/mcfrdy) |
2021-07-17 21:46:21 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 255 seconds) |
2021-07-17 21:47:45 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 21:48:09 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-17 21:50:23 +0200 | alx741 | (~alx741@186.178.109.120) |
2021-07-17 21:51:08 +0200 | <maerwald> | can you implement varargs in haskell without ambiguitiy due to partial application? |
2021-07-17 21:51:18 +0200 | <maerwald> | (and I'm not talking about the typeclass trick) |
2021-07-17 21:51:27 +0200 | dmwit | (~dmwit@pool-108-18-198-142.washdc.fios.verizon.net) |
2021-07-17 21:51:55 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-07-17 21:52:19 +0200 | <geekosaur> | I think there's a typesafe varargs via TH somewhere on hackage |
2021-07-17 21:52:48 +0200 | <geekosaur> | probably relies on the format string being literal, but you have other problems if it's not anyway |
2021-07-17 21:53:46 +0200 | <c_wraith> | In the general case, there's true ambiguity. There's no general way to distinguish between providing all the arguments that will be provided and partially applying the function. |
2021-07-17 21:54:25 +0200 | <geekosaur> | ^ |
2021-07-17 21:55:06 +0200 | finsternis | (~X@23.226.237.192) |
2021-07-17 21:55:20 +0200 | <c_wraith> | this is why I described varargs as a workaround, not something worth having for itself :) |
2021-07-17 21:56:14 +0200 | Franciman | (~francesco@openglass.it) |
2021-07-17 21:56:21 +0200 | <Franciman> | Hi, does cabal support literate haskell? |
2021-07-17 21:56:26 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 255 seconds) |
2021-07-17 21:56:38 +0200 | <c_wraith> | if you put an .lhs extension on the files, it should find and compile them |
2021-07-17 21:56:56 +0200 | <Franciman> | I have a project using .lhs files, but I get errors |
2021-07-17 21:56:58 +0200 | <Franciman> | wait |
2021-07-17 21:57:19 +0200 | <Franciman> | `unlit' failed in phase `Literate pre-processor'. (Exit code: 1) |
2021-07-17 21:57:31 +0200 | <c_wraith> | so it's trying! |
2021-07-17 21:57:36 +0200 | <Franciman> | it is a module I specified in the other-modules |
2021-07-17 21:57:45 +0200 | <Franciman> | so I wrote ListCursor |
2021-07-17 21:57:49 +0200 | <Franciman> | instead of ListCursor.lhs |
2021-07-17 21:58:08 +0200 | <Franciman> | I am really temped to ignore cabal and automatically go with ghc |
2021-07-17 21:58:11 +0200 | <Franciman> | let me see what I can do |
2021-07-17 21:58:29 +0200 | DNH | (~DNH@2a02:8108:1100:16d8:6178:3a47:8c71:dd89) |
2021-07-17 21:58:35 +0200 | <geekosaur> | so it ran unlit, so it correctly found it was literate haskell. yoou could try running unlit manually and see what it choked on |
2021-07-17 21:58:40 +0200 | <c_wraith> | that error doesn't look like you left out an extension |
2021-07-17 21:58:50 +0200 | <c_wraith> | that error looks like it was incorrect literate haskell |
2021-07-17 21:59:28 +0200 | <Franciman> | uhm |
2021-07-17 22:00:10 +0200 | <Franciman> | geekosaur: how do I call unlit? |
2021-07-17 22:00:16 +0200 | <Franciman> | I don't have an unlit program |
2021-07-17 22:00:32 +0200 | <geekosaur> | it's in the library directory |
2021-07-17 22:01:09 +0200 | <Franciman> | c_wraith: here is my code: https://bpa.st/A7JA |
2021-07-17 22:01:11 +0200 | <geekosaur> | ghc --print-libdir |
2021-07-17 22:01:29 +0200 | <geekosaur> | then unlit < yoursourcefile |
2021-07-17 22:01:48 +0200 | <geekosaur> | with the fukll path to the unlit binary in the libdir |
2021-07-17 22:02:36 +0200 | <Franciman> | geekosaur: sorry to bother again |
2021-07-17 22:02:38 +0200 | <Franciman> | but I get |
2021-07-17 22:02:43 +0200 | <Franciman> | usage: unlit [-q] [-n] [-c] [-#] [-P] [-h label] file1 file2 |
2021-07-17 22:02:47 +0200 | <Franciman> | and there is no help :D |
2021-07-17 22:02:59 +0200 | <Franciman> | oh I am stupid |
2021-07-17 22:03:01 +0200 | <Franciman> | sorry |
2021-07-17 22:03:03 +0200 | <c_wraith> | I don't know if you can mix bird tracks and tex-style literate haskell in one file |
2021-07-17 22:03:10 +0200 | <Franciman> | no ok, same problem |
2021-07-17 22:03:31 +0200 | <Franciman> | c_wraith: uhm let me see |
2021-07-17 22:04:24 +0200 | <geekosaur> | I don't think you can |
2021-07-17 22:04:31 +0200 | <Franciman> | and in fact! |
2021-07-17 22:04:35 +0200 | <Franciman> | thank you all |
2021-07-17 22:04:48 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 255 seconds) |
2021-07-17 22:05:10 +0200 | <Franciman> | only sad thing is that I can't use the # for markdown titles |
2021-07-17 22:05:25 +0200 | peterhil_ | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-17 22:05:27 +0200 | <geekosaur> | unlit could use more documentation but I think it's largely fallen out of use |
2021-07-17 22:05:36 +0200 | juhp | (~juhp@128.106.188.66) (Ping timeout: 258 seconds) |
2021-07-17 22:05:38 +0200 | <Franciman> | nobody likes literate haskell? |
2021-07-17 22:05:53 +0200 | <oso> | you could use the === underline in place of the # for header |
2021-07-17 22:05:56 +0200 | <Franciman> | I mean, I understand, it does not even sync with haddock |
2021-07-17 22:06:01 +0200 | <c_wraith> | in very broad terms, nobody likes literate programming |
2021-07-17 22:06:08 +0200 | <Franciman> | yup, thanks oso |
2021-07-17 22:06:43 +0200 | juhp | (~juhp@128.106.188.66) |
2021-07-17 22:06:59 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-17 22:07:52 +0200 | phma | (phma@2001:5b0:211b:8138:4237:c684:b0bd:87ec) (Read error: Connection reset by peer) |
2021-07-17 22:08:19 +0200 | <maerwald> | Franciman: no, it's not even bidirectional |
2021-07-17 22:08:37 +0200 | <maerwald> | there's a project that fixes that |
2021-07-17 22:08:43 +0200 | <maerwald> | but even then, not sure |
2021-07-17 22:09:09 +0200 | <maerwald> | https://blog.esciencecenter.nl/entangled-1744448f4b9f |
2021-07-17 22:09:25 +0200 | <maerwald> | https://github.com/entangled/entangled |
2021-07-17 22:09:30 +0200 | <Franciman> | entangled is cool, I use it at my job |
2021-07-17 22:09:36 +0200 | <Franciman> | it has some sore points |
2021-07-17 22:09:39 +0200 | <Franciman> | and a lit of bugs |
2021-07-17 22:09:50 +0200 | <Franciman> | lot* lol |
2021-07-17 22:09:52 +0200 | <maerwald> | that's why it's LITerate |
2021-07-17 22:09:54 +0200 | <maerwald> | lol |
2021-07-17 22:09:57 +0200 | <Franciman> | LOL |
2021-07-17 22:10:07 +0200 | <Franciman> | but it does not integrate well with ghc etc |
2021-07-17 22:10:09 +0200 | phma | (phma@2001:5b0:211f:63f8:7d7f:3315:17e4:ee3e) |
2021-07-17 22:11:48 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-07-17 22:13:34 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-07-17 22:16:13 +0200 | <dsal> | Franciman: the last time I wrote literate Haskell, it was in markdown. It's not bad. |
2021-07-17 22:18:02 +0200 | <Franciman> | it is cool yeah |
2021-07-17 22:18:02 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 255 seconds) |
2021-07-17 22:18:25 +0200 | <Franciman> | only thing is, as it seems, it does not mix well with haddock |
2021-07-17 22:18:32 +0200 | <Franciman> | you still have to add haddock special comments |
2021-07-17 22:20:33 +0200 | Guest9 | (~Guest9@43.242.116.127) (Quit: Connection closed) |
2021-07-17 22:21:13 +0200 | <dsal> | Yeah, haddock is lacking in a few ways. I also want TH to work with it. |
2021-07-17 22:22:54 +0200 | <dmj`> | an alternative haddock could be nice, could call it koi pond |
2021-07-17 22:24:15 +0200 | <geekosaur> | there was at some point a discussion on cafe about incompatibilities between haddock markup and markdown that would make supporting both difficult |
2021-07-17 22:29:00 +0200 | azeem | (~azeem@dynamic-adsl-94-34-31-95.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-07-17 22:29:09 +0200 | azeem | (~azeem@dynamic-adsl-94-34-31-95.clienti.tiscali.it) |
2021-07-17 22:32:46 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection) |
2021-07-17 22:34:34 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-17 22:35:56 +0200 | <monochrom> | It is sad that we now have to add "bi-directional" to refer to actual literate programming. |
2021-07-17 22:36:31 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-07-17 22:36:33 +0200 | <monochrom> | Candidly, lhs is merely a nicer syntax for vanilla comments. |
2021-07-17 22:38:15 +0200 | <monochrom> | Literate programming needed to be invented as a thing distinct from mere comments because the biggest part is to present your code in an order the computer doesn't expect. If a system can't do this, it is not literate programming. |
2021-07-17 22:39:48 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-07-17 22:40:48 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 255 seconds) |
2021-07-17 22:40:59 +0200 | vicfred | (~vicfred@user/vicfred) |
2021-07-17 22:41:12 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 22:44:40 +0200 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 268 seconds) |
2021-07-17 22:45:40 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-07-17 22:49:13 +0200 | niemand | (~niemand@p5796acb3.dip0.t-ipconnect.de) |
2021-07-17 22:50:39 +0200 | niemand | (~niemand@p5796acb3.dip0.t-ipconnect.de) (Client Quit) |
2021-07-17 22:51:00 +0200 | acidjnk | (~acidjnk@p200300d0c72b9505d437a5269bf657ec.dip0.t-ipconnect.de) |
2021-07-17 22:51:41 +0200 | Null_A | (~null_a@2601:645:8700:2290:b55a:33c2:1e1d:f229) (Remote host closed the connection) |
2021-07-17 22:52:14 +0200 | <dmj`> | It would be really nice if Haskell abided by industry standards instead of custom stuff, like use toml, markdown, LLVM instead of cabal files, haddock syntax, Cmm |
2021-07-17 22:53:39 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Remote host closed the connection) |
2021-07-17 22:53:57 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-07-17 22:54:04 +0200 | ubert | (~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de) |
2021-07-17 22:55:29 +0200 | <geekosaur> | llvm's not gonna happen unless you want to try to upstream a bunch of stuff so ghc can inform llvm of cps-ed stuff |
2021-07-17 22:56:01 +0200 | <geekosaur> | and then arrange for ghc to be able to do so, but nobody's going to do that until there's somewhere for it to go |
2021-07-17 22:57:04 +0200 | <Rembane> | Sounds like a moment 22 |
2021-07-17 22:57:45 +0200 | <geekosaur> | no, they know what needs to change and how, but it would require a bunch of llvm changes that are more or less ghc-specific |
2021-07-17 22:57:54 +0200 | <geekosaur> | so they're unlikely to ever happen |
2021-07-17 22:58:33 +0200 | <Rembane> | Got it! Then I misread, thank you for the clarification. |
2021-07-17 22:58:48 +0200 | <noctux> | dmj`: industry standards? do you mean XML, more XML and visual-C? :P |
2021-07-17 22:59:16 +0200 | <dmj`> | noctux: yes, XML over SOAP. |
2021-07-17 22:59:30 +0200 | <maerwald> | dmj`: afair someone was actually working on providing a toml interface to cabal? |
2021-07-17 22:59:39 +0200 | Null_A | (~null_a@2601:645:8700:2290:b55a:33c2:1e1d:f229) |
2021-07-17 22:59:41 +0200 | <maerwald> | or maybe I just imagined that |
2021-07-17 23:00:33 +0200 | <dmj`> | geekosaur: what are your thoughts on GRIN as a backend for GHC |
2021-07-17 23:00:36 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds) |
2021-07-17 23:01:29 +0200 | burnsidesLlama | (~burnsides@client-8-82.eduroam.oxuni.org.uk) |
2021-07-17 23:02:35 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2021-07-17 23:04:12 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 255 seconds) |
2021-07-17 23:04:36 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 23:05:18 +0200 | <geekosaur> | looks to me like it really wants to be a whole-program compiler? which ghc kinda doesn't |
2021-07-17 23:05:33 +0200 | burnsidesLlama | (~burnsides@client-8-82.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-07-17 23:05:42 +0200 | <geekosaur> | (and yet kinda does since it "fakes it" via exporting cidode in .hi files) |
2021-07-17 23:05:55 +0200 | <geekosaur> | *code |
2021-07-17 23:07:27 +0200 | <geekosaur> | still, makes me wonder how well grin would work if used thye way ghc would use it instead of whole-program |
2021-07-17 23:07:40 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2021-07-17 23:09:43 +0200 | <geekosaur> | would really need to write out IR files instead of object files and let the backend take it from there, but I'm not sure how well ghc would work with that setup given it doesn't e.g. do that with llvm IR |
2021-07-17 23:11:06 +0200 | <geekosaur> | and you couldn't mix grin backend objects with non-grin backend, like you currently can with llvm vs. asm |
2021-07-17 23:11:25 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 250 seconds) |
2021-07-17 23:13:22 +0200 | <geekosaur> | I think ghc would have to treat grin not as a backend but as a "way" (e.g. static vs. dynamic, or profiled vs. non-profiled) |
2021-07-17 23:13:37 +0200 | <monochrom> | cabal was invented long before "industry standard" existed. |
2021-07-17 23:14:02 +0200 | <monochrom> | Apart from XML. |
2021-07-17 23:14:22 +0200 | <Rembane> | I wonder why industry didn't go with cabal's format. |
2021-07-17 23:15:23 +0200 | <monochrom> | And JVM bytecode. |
2021-07-17 23:15:50 +0200 | <geekosaur> | because it's only friendly to haskell, since haskell is friendly to parsers? |
2021-07-17 23:16:18 +0200 | <dmj`> | ghc-grin forks ghc it seems, exports *all* of the STG somewhere, does the analysis, brings it back and continues on in the pipeline, to great effect. Suppose we went the nuclear option and replaced STG with GRIN. GRIN would inline the eval function (which is currently hardcoded in the RTS), then perform the WPO, then emit LLVM. |
2021-07-17 23:16:19 +0200 | <geekosaur> | and the syntax is at least reminiscent of haskell |
2021-07-17 23:16:34 +0200 | <dmj`> | We could even compile the RTS to GRIN and include it in the optimization phases, which would have the effect of dead code eliminating parts of the RTS that were unused, like GC for example. |
2021-07-17 23:16:50 +0200 | hendursaga | (~weechat@user/hendursaga) (Remote host closed the connection) |
2021-07-17 23:16:52 +0200 | <geekosaur> | interesting |
2021-07-17 23:17:15 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-07-17 23:19:03 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 255 seconds) |
2021-07-17 23:19:03 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 255 seconds) |
2021-07-17 23:19:33 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 23:20:33 +0200 | <dmj`> | benefits from WPO are so large even naive pointer analysis (steensgaard) is an enormous win, would still need a fast interpreter though |
2021-07-17 23:21:12 +0200 | <dmj`> | thomas johnson created STG, then his final work was GRIN, but it never saw prominence in GHC, I wonder why that is |
2021-07-17 23:23:53 +0200 | <geekosaur> | probably because ghc's architecture makes intervening at the stg layer more difficult than it should be |
2021-07-17 23:24:36 +0200 | chomwitt | (~Pitsikoko@athedsl-32487.home.otenet.gr) |
2021-07-17 23:27:20 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 255 seconds) |
2021-07-17 23:30:54 +0200 | <dmj`> | exactly, too much code at that point |
2021-07-17 23:31:20 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 265 seconds) |
2021-07-17 23:33:00 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-07-17 23:33:38 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 23:34:54 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-17 23:35:03 +0200 | <dmj`> | realizing that GRIN's eval inlining is the first step in undoing the overhead of lazy evaluation (while preserving semantics) was pretty mind-blowing |
2021-07-17 23:36:32 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-17 23:37:03 +0200 | mcfrdy | (~mcfrdy@user/mcfrdy) (Ping timeout: 255 seconds) |
2021-07-17 23:37:24 +0200 | mcfrdy | (~mcfrdy@45.67.96.175) |
2021-07-17 23:37:24 +0200 | mcfrdy | (~mcfrdy@45.67.96.175) (Changing host) |
2021-07-17 23:37:24 +0200 | mcfrdy | (~mcfrdy@user/mcfrdy) |
2021-07-17 23:38:52 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-07-17 23:39:26 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) (Quit: -) |
2021-07-17 23:39:52 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
2021-07-17 23:40:32 +0200 | mnrmnaugh | (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Quit: Leaving) |
2021-07-17 23:40:34 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 246 seconds) |
2021-07-17 23:41:19 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) |
2021-07-17 23:42:11 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 255 seconds) |
2021-07-17 23:43:11 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-17 23:44:22 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-07-17 23:46:07 +0200 | vysn | (~vysn@user/vysn) (Remote host closed the connection) |
2021-07-17 23:46:42 +0200 | favonia | (~favonia@user/favonia) |
2021-07-17 23:48:43 +0200 | silverwhitefish | (~hidden@47.202.102.10) (Ping timeout: 258 seconds) |
2021-07-17 23:52:16 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 252 seconds) |
2021-07-17 23:54:04 +0200 | Null_A | (~null_a@2601:645:8700:2290:b55a:33c2:1e1d:f229) (Remote host closed the connection) |
2021-07-17 23:54:40 +0200 | Null_A | (~null_a@2601:645:8700:2290:b55a:33c2:1e1d:f229) |
2021-07-17 23:55:30 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds) |
2021-07-17 23:59:07 +0200 | Null_A | (~null_a@2601:645:8700:2290:b55a:33c2:1e1d:f229) (Ping timeout: 246 seconds) |
2021-07-17 23:59:57 +0200 | euandreh | (~euandreh@2804:14c:33:9fe5:9d95:c71:11e4:3e0f) |