2021-06-09 00:01:55 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-06-09 00:04:06 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 258 seconds) |
2021-06-09 00:05:27 +0200 | ddellacosta | (~ddellacos@89.46.62.128) (Remote host closed the connection) |
2021-06-09 00:06:03 +0200 | ddellacosta | (~ddellacos@89.46.62.128) |
2021-06-09 00:06:50 +0200 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:740c:f2c0:db49:e24b) (Quit: Leaving) |
2021-06-09 00:07:03 +0200 | dudek | (~dudek@185.150.236.112) (Quit: Leaving) |
2021-06-09 00:07:11 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Remote host closed the connection) |
2021-06-09 00:07:27 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) |
2021-06-09 00:09:47 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-09 00:10:37 +0200 | ddellacosta | (~ddellacos@89.46.62.128) (Ping timeout: 258 seconds) |
2021-06-09 00:13:06 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-06-09 00:14:27 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 258 seconds) |
2021-06-09 00:17:51 +0200 | blankhart | (~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net) (Quit: WeeChat 2.8) |
2021-06-09 00:18:02 +0200 | boxscape | (~boxscape@user/boxscape) (Quit: Connection closed) |
2021-06-09 00:18:54 +0200 | tremon | (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in) |
2021-06-09 00:22:51 +0200 | Codaraxis | (~Codaraxis@89.45.7.142) (Read error: Connection reset by peer) |
2021-06-09 00:23:03 +0200 | Codaraxis | (~Codaraxis@89.45.7.142) |
2021-06-09 00:26:38 +0200 | agumonke` | (~user@88.160.31.174) (Read error: Connection reset by peer) |
2021-06-09 00:27:24 +0200 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-06-09 00:27:43 +0200 | yoctocell | (~yoctocell@h87-96-130-155.cust.a3fiber.se) (Quit: Using Circe, the loveliest of all IRC clients) |
2021-06-09 00:27:49 +0200 | xkuru | (~xkuru@user/xkuru) |
2021-06-09 00:28:21 +0200 | notzmv | (~zmv@user/notzmv) |
2021-06-09 00:28:25 +0200 | agumonke` | (~user@88.160.31.174) |
2021-06-09 00:29:37 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Ping timeout: 252 seconds) |
2021-06-09 00:31:13 +0200 | xsperry | (~as@user/xsperry) |
2021-06-09 00:31:17 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-06-09 00:32:09 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 245 seconds) |
2021-06-09 00:34:21 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-09 00:37:46 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 00:40:09 +0200 | <zwro[m]> | hi I'm on Matrix and a little confused. is this freenode or libera? |
2021-06-09 00:40:20 +0200 | <Cajun> | libera |
2021-06-09 00:40:45 +0200 | <zwro[m]> | it's libera, right? |
2021-06-09 00:41:01 +0200 | <geekosaur> | yes |
2021-06-09 00:46:06 +0200 | <zwro[m]> | thanks. I'm noticing some lag |
2021-06-09 00:46:48 +0200 | lbseale | (~lbseale@ip72-194-54-201.sb.sd.cox.net) (Changing host) |
2021-06-09 00:46:48 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-06-09 00:46:49 +0200 | <geekosaur> | I think the bridge is still in testing; it's laggy and it goes down fairly often |
2021-06-09 00:46:54 +0200 | zwro[m] | (~zwromatri@2001:470:69fc:105::1d4) () |
2021-06-09 00:47:05 +0200 | <geekosaur> | welp |
2021-06-09 00:47:25 +0200 | involans | (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) (Ping timeout: 258 seconds) |
2021-06-09 00:47:45 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Quit: Leaving) |
2021-06-09 00:48:00 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-06-09 00:49:31 +0200 | jespada | (~jespada@90.254.242.55) (Ping timeout: 264 seconds) |
2021-06-09 00:50:38 +0200 | jespada | (~jespada@90.254.242.55) |
2021-06-09 00:52:51 +0200 | <sm[m]> | it will also sometimes stop relaying IRC to Matrix, but thankfully that doesn't seem to be affecting this channel much |
2021-06-09 00:54:00 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-09 00:58:31 +0200 | myShoggoth | (~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 264 seconds) |
2021-06-09 00:59:52 +0200 | Bartosz | (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-09 01:01:36 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 258 seconds) |
2021-06-09 01:05:18 +0200 | myShoggoth | (~myShoggot@97-120-89-117.ptld.qwest.net) |
2021-06-09 01:08:15 +0200 | ddellacosta | (~ddellacos@89.46.62.113) |
2021-06-09 01:09:32 +0200 | agumonke` | (~user@88.160.31.174) (Ping timeout: 250 seconds) |
2021-06-09 01:11:42 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-06-09 01:11:49 +0200 | Jin63 | (~Jin@ip-109-41-193-148.web.vodafone.de) |
2021-06-09 01:12:34 +0200 | ddellacosta | (~ddellacos@89.46.62.113) (Ping timeout: 245 seconds) |
2021-06-09 01:13:38 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-06-09 01:16:03 +0200 | hexfive | (~eric@50.35.83.177) |
2021-06-09 01:16:12 +0200 | hexfive | (~eric@50.35.83.177) (Client Quit) |
2021-06-09 01:16:49 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-rc1) |
2021-06-09 01:16:54 +0200 | dhil | (~dhil@195.213.192.47) (Ping timeout: 250 seconds) |
2021-06-09 01:17:59 +0200 | jaevanko | (~jaevanko@2600:1700:1330:2bef:8da6:e24d:9a34:2f32) |
2021-06-09 01:19:02 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) |
2021-06-09 01:19:09 +0200 | Cajun | (~Cajun@ip98-163-211-112.no.no.cox.net) (Quit: Client closed) |
2021-06-09 01:24:19 +0200 | motherfs1 | (~motherfsc@user/motherfsck) |
2021-06-09 01:26:27 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 252 seconds) |
2021-06-09 01:26:38 +0200 | MQ-17J | (~MQ-17J@8.21.10.116) |
2021-06-09 01:26:53 +0200 | ddellacosta | (~ddellacos@89.46.62.50) |
2021-06-09 01:31:24 +0200 | ddellacosta | (~ddellacos@89.46.62.50) (Ping timeout: 252 seconds) |
2021-06-09 01:37:31 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-06-09 01:37:52 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-06-09 01:38:36 +0200 | jamestmartin | (james@jtmar.me) |
2021-06-09 01:39:00 +0200 | jneira | (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Ping timeout: 250 seconds) |
2021-06-09 01:41:35 +0200 | blankhart | (~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net) |
2021-06-09 01:41:37 +0200 | autrim64[m] | (~autrim64m@2001:470:69fc:105::16a1) |
2021-06-09 01:42:02 +0200 | fendor_ | (~fendor@178.165.130.85.wireless.dyn.drei.com) |
2021-06-09 01:42:50 +0200 | Jin63 | AWizzard |
2021-06-09 01:42:54 +0200 | xkuru | (~xkuru@user/xkuru) (Ping timeout: 250 seconds) |
2021-06-09 01:43:40 +0200 | ddellacosta | (~ddellacos@89.46.62.58) |
2021-06-09 01:43:46 +0200 | myShoggoth | (~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 258 seconds) |
2021-06-09 01:44:38 +0200 | fendor | (~fendor@178.115.41.96.wireless.dyn.drei.com) (Ping timeout: 250 seconds) |
2021-06-09 01:47:13 +0200 | AWizzard | (~Jin@ip-109-41-193-148.web.vodafone.de) (Quit: Client closed) |
2021-06-09 01:48:07 +0200 | <jaevanko> | Is it possible to describe a function that takes a function as an argument that has a class bound on it? For example, like this: https://gotbits.net/di.hs |
2021-06-09 01:48:22 +0200 | ddellacosta | (~ddellacos@89.46.62.58) (Ping timeout: 258 seconds) |
2021-06-09 01:49:31 +0200 | xkuru | (~xkuru@user/xkuru) |
2021-06-09 01:51:35 +0200 | <jaevanko> | Wait. That works if I add RankNTypes and jam a forall in there |
2021-06-09 01:51:38 +0200 | <jaevanko> | Hmm :/ |
2021-06-09 01:51:39 +0200 | <geekosaur> | you'd need a forall to introduce a class context in that position, otherwise you put it in the normal place |
2021-06-09 01:52:43 +0200 | <jaevanko> | Is GHC able to inline the definition of lift' so it doesn't have to do dynamic dispatch on the passed in function? |
2021-06-09 01:53:04 +0200 | <jaevanko> | I think that question was malformed |
2021-06-09 01:56:01 +0200 | <jaevanko> | But if I define (+) in terms of that lift', would it have to pass in the typeclass dictionary, or could it optimize it to just dispatch on Value's tag? |
2021-06-09 01:56:34 +0200 | <geekosaur> | I also suspect that doesn't quite do what you'd hoped, specifically because there's no way for it to relate the typeclass to the tag |
2021-06-09 01:57:35 +0200 | <jaevanko> | How do you mean? |
2021-06-09 01:58:02 +0200 | <geekosaur> | \hm, no, I misunderstood what you were doing there. I can't answer your question, either |
2021-06-09 01:58:34 +0200 | <jaevanko> | Guess I'll just try it and squint at some Core |
2021-06-09 02:00:00 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Remote host closed the connection) |
2021-06-09 02:00:33 +0200 | derelict | (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) (Quit: WeeChat 3.1) |
2021-06-09 02:02:02 +0200 | sm_ | sm |
2021-06-09 02:02:46 +0200 | ddellacosta | (~ddellacos@86.106.121.116) |
2021-06-09 02:07:10 +0200 | ddellacosta | (~ddellacos@86.106.121.116) (Ping timeout: 250 seconds) |
2021-06-09 02:07:53 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) |
2021-06-09 02:09:10 +0200 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) (Ping timeout: 252 seconds) |
2021-06-09 02:09:38 +0200 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) |
2021-06-09 02:10:36 +0200 | hmmmas | (~chenqisu1@183.217.201.236) |
2021-06-09 02:11:08 +0200 | agumonke` | (~user@88.163.231.79) |
2021-06-09 02:11:39 +0200 | thedward[m] | (~thedwardm@2001:470:69fc:105::f79) |
2021-06-09 02:13:31 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-06-09 02:17:11 +0200 | pe200012 | (~pe200012@58.248.179.180) |
2021-06-09 02:17:27 +0200 | nkpart | (uid3844@id-3844.highgate.irccloud.com) (Quit: Connection closed for inactivity) |
2021-06-09 02:17:46 +0200 | Guest53 | (~Guest53@2601:640:4080:dca0:196f:8963:ff06:765b) |
2021-06-09 02:18:37 +0200 | agumonke` | (~user@88.163.231.79) (Read error: Connection reset by peer) |
2021-06-09 02:18:39 +0200 | Guest53 | (~Guest53@2601:640:4080:dca0:196f:8963:ff06:765b) (Client Quit) |
2021-06-09 02:20:50 +0200 | agumonke` | (~user@88.163.231.79) |
2021-06-09 02:22:28 +0200 | <slack1256> | If I define `newtype Supremum a b = MkS a deriving Eq` and I load that module on ghci, run `:info Supremum` that prints `instance (Eq a) => Eq (Supremum a)`. That instance context is implicitly declared on my `deriving` clause, is that part of the haskell report? Is that "smartness" specified somewhere? |
2021-06-09 02:22:45 +0200 | Deide | (~Deide@user/deide) (Quit: Seeee yaaaa) |
2021-06-09 02:22:49 +0200 | zeenk | (~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41) (Quit: Konversation terminated!) |
2021-06-09 02:25:27 +0200 | trent | (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) |
2021-06-09 02:25:46 +0200 | <jaevanko> | If you replace the `MkS a` with `MkS b`, would the instance bound change to Eq b? |
2021-06-09 02:27:08 +0200 | <slack1256> | Yes. It seems it does some analysis. |
2021-06-09 02:29:09 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-06-09 02:29:41 +0200 | derelict | (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) |
2021-06-09 02:33:43 +0200 | <geekosaur> | yes, this is defined in the Report |
2021-06-09 02:34:01 +0200 | FunctorPunk | (~igloo@c-73-119-137-166.hsd1.ma.comcast.net) |
2021-06-09 02:34:33 +0200 | <ski> | slack1256 : <https://www.haskell.org/onlinereport/derived.html> |
2021-06-09 02:34:35 +0200 | FunctorPunk | (~igloo@c-73-119-137-166.hsd1.ma.comcast.net) (Client Quit) |
2021-06-09 02:34:49 +0200 | <slack1256> | Thank god. |
2021-06-09 02:34:53 +0200 | <geekosaur> | https://www.haskell.org/onlinereport/haskell2010/haskellch11.html#x18-18300011.1 |
2021-06-09 02:35:52 +0200 | <slack1256> | This is awesome, I feel I can rely on such behaviour now! |
2021-06-09 02:36:18 +0200 | <slack1256> | I was exploring if we should enable some kind of instance context specification on the deriving clauses :fear: . |
2021-06-09 02:38:04 +0200 | renzhi | (~xp@2607:fa49:6500:bc00::e7b) |
2021-06-09 02:38:58 +0200 | xkuru | (~xkuru@user/xkuru) (Ping timeout: 258 seconds) |
2021-06-09 02:39:10 +0200 | <ski> | slack1256 : you can write `deriving instance Eq a => Eq (Supremum a b)' as a separate declaration, if you enable `StandaloneDeriving' |
2021-06-09 02:41:16 +0200 | <slack1256> | Got it. |
2021-06-09 02:41:40 +0200 | xkuru | (~xkuru@user/xkuru) |
2021-06-09 02:41:55 +0200 | renzhi | (~xp@2607:fa49:6500:bc00::e7b) (Client Quit) |
2021-06-09 02:43:04 +0200 | renzhi | (~xp@2607:fa49:6500:bc00::e7b) |
2021-06-09 02:45:17 +0200 | <slack1256> | TIL: `StandaloneDeriving` helps recover `stock` deriving for GADTs and have more specific instance context with stock deriving. |
2021-06-09 02:45:20 +0200 | <slack1256> | Awesome stuff. |
2021-06-09 02:47:01 +0200 | MQ-17J | (~MQ-17J@8.21.10.116) (Ping timeout: 258 seconds) |
2021-06-09 02:53:03 +0200 | fjmorazan | (~quassel@user/fjmorazan) (Quit: fjmorazan) |
2021-06-09 02:53:45 +0200 | fjmorazan | (~quassel@user/fjmorazan) |
2021-06-09 03:02:10 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
2021-06-09 03:03:59 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-09 03:08:09 +0200 | yd502_ | (~yd502@180.168.212.6) |
2021-06-09 03:08:12 +0200 | xkuru | (~xkuru@user/xkuru) (Ping timeout: 252 seconds) |
2021-06-09 03:10:29 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 245 seconds) |
2021-06-09 03:10:31 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Ping timeout: 264 seconds) |
2021-06-09 03:10:33 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Remote host closed the connection) |
2021-06-09 03:10:52 +0200 | otto_s | (~user@p5de2f98e.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-06-09 03:12:26 +0200 | xff0x_ | (~xff0x@2001:1a81:52c9:6b00:ea05:f1db:1e96:7c29) |
2021-06-09 03:14:43 +0200 | geekosaur | (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 264 seconds) |
2021-06-09 03:15:38 +0200 | xff0x | (~xff0x@port-92-193-150-196.dynamic.as20676.net) (Ping timeout: 250 seconds) |
2021-06-09 03:15:55 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b95b:27c0:9816:d7ad) |
2021-06-09 03:22:06 +0200 | fluffyballoon | (~fluffybal@2620:72:0:6480::10f7) (Ping timeout: 250 seconds) |
2021-06-09 03:22:43 +0200 | dualinverter[m] | (~dualinver@2001:470:69fc:105::16a7) |
2021-06-09 03:25:34 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-06-09 03:28:46 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-06-09 03:31:58 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-06-09 03:34:47 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-06-09 03:37:09 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 272 seconds) |
2021-06-09 03:38:27 +0200 | pe200012 | (~pe200012@58.248.179.180) (Ping timeout: 252 seconds) |
2021-06-09 03:38:41 +0200 | pe200012 | (~pe200012@58.248.179.180) |
2021-06-09 03:38:48 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
2021-06-09 03:41:54 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-09 03:43:48 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-09 03:44:38 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-09 03:45:03 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
2021-06-09 03:48:28 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-09 03:50:25 +0200 | haltux | (~haltux@a89-154-181-47.cpe.netcabo.pt) |
2021-06-09 03:57:42 +0200 | pbrisbin | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (Ping timeout: 252 seconds) |
2021-06-09 03:58:57 +0200 | AgentM | (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) |
2021-06-09 04:00:42 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 250 seconds) |
2021-06-09 04:00:58 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-09 04:03:51 +0200 | ddellacosta | (~ddellacos@86.106.121.84) |
2021-06-09 04:05:22 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 244 seconds) |
2021-06-09 04:05:34 +0200 | unyu | (~pyon@user/pyon) |
2021-06-09 04:06:24 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-06-09 04:06:24 +0200 | FinnElija | Guest2126 |
2021-06-09 04:06:24 +0200 | finn_elija | FinnElija |
2021-06-09 04:07:57 +0200 | ddellacosta | (~ddellacos@86.106.121.84) (Ping timeout: 244 seconds) |
2021-06-09 04:09:26 +0200 | Guest2126 | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds) |
2021-06-09 04:11:44 +0200 | td_ | (~td@muedsl-82-207-238-242.citykom.de) (Ping timeout: 258 seconds) |
2021-06-09 04:13:51 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-09 04:15:38 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-09 04:18:19 +0200 | qoelet | (~kumo@139.180.144.166) (Ping timeout: 264 seconds) |
2021-06-09 04:20:13 +0200 | trent | (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 272 seconds) |
2021-06-09 04:21:50 +0200 | qoelet | (~kumo@139.180.144.166) |
2021-06-09 04:22:09 +0200 | ddellacosta | (~ddellacos@86.106.121.69) |
2021-06-09 04:23:17 +0200 | myShoggoth | (~myShoggot@97-120-89-117.ptld.qwest.net) |
2021-06-09 04:26:33 +0200 | ddellacosta | (~ddellacos@86.106.121.69) (Ping timeout: 244 seconds) |
2021-06-09 04:27:31 +0200 | wei2912 | (~wei2912@112.199.250.21) |
2021-06-09 04:27:35 +0200 | myShoggoth | (~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 244 seconds) |
2021-06-09 04:27:57 +0200 | myShoggoth | (~myShoggot@97-120-89-117.ptld.qwest.net) |
2021-06-09 04:28:45 +0200 | qoelet | (~kumo@139.180.144.166) (Quit: WeeChat 2.9) |
2021-06-09 04:29:46 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-09 04:29:47 +0200 | c_wraith | (~c_wraith@adjoint.us) |
2021-06-09 04:30:46 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) (Quit: WeeChat 3.1) |
2021-06-09 04:31:51 +0200 | nattiestnate | (~nate@36.70.194.182) (Quit: WeeChat 3.1) |
2021-06-09 04:33:03 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-09 04:34:21 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 258 seconds) |
2021-06-09 04:35:30 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 258 seconds) |
2021-06-09 04:35:48 +0200 | c_l_ste | (~celeste@ip68-12-146-37.ok.ok.cox.net) (Ping timeout: 250 seconds) |
2021-06-09 04:37:25 +0200 | nilof | (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 258 seconds) |
2021-06-09 04:43:02 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-06-09 04:45:30 +0200 | a6a45081-2b83 | (~aditya@223.226.227.160) |
2021-06-09 04:47:12 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 252 seconds) |
2021-06-09 04:49:39 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
2021-06-09 04:57:23 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
2021-06-09 04:57:28 +0200 | a6a45081-2b83 | (~aditya@223.226.227.160) (Quit: Konversation terminated!) |
2021-06-09 04:59:57 +0200 | Bartosz | (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-09 05:00:03 +0200 | realtime | (~realtime@177.18.185.16) |
2021-06-09 05:00:12 +0200 | realtime | (~realtime@177.18.185.16) (Remote host closed the connection) |
2021-06-09 05:01:52 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
2021-06-09 05:01:55 +0200 | realtime | (~realtime@177.18.185.16) |
2021-06-09 05:03:26 +0200 | realtime | (~realtime@177.18.185.16) (Client Quit) |
2021-06-09 05:03:49 +0200 | realtime | (~realtime@177.18.185.16) |
2021-06-09 05:07:41 +0200 | c_l_ste | (~celeste@ip68-12-146-37.ok.ok.cox.net) |
2021-06-09 05:08:51 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 258 seconds) |
2021-06-09 05:11:40 +0200 | notzmv | (~zmv@user/notzmv) |
2021-06-09 05:13:05 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-09 05:14:41 +0200 | Codaraxis | (~Codaraxis@89.45.7.142) (Remote host closed the connection) |
2021-06-09 05:14:59 +0200 | Codaraxis | (~Codaraxis@89.45.7.142) |
2021-06-09 05:17:31 +0200 | emergence | (~emergence@vm0.max-p.me) (Quit: emergence) |
2021-06-09 05:18:15 +0200 | emergence | (~emergence@vm0.max-p.me) |
2021-06-09 05:19:59 +0200 | relrod | (~relrod@redhat/ansible.staff.relrod) |
2021-06-09 05:21:11 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-09 05:22:56 +0200 | trent | (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) |
2021-06-09 05:25:42 +0200 | <guest61> | ski yes I did, use case of instead of !! or use data structure |
2021-06-09 05:29:23 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-06-09 05:30:24 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds) |
2021-06-09 05:30:37 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-06-09 05:36:14 +0200 | <trent> | Hi everyone, I have started reading about GADTs and want to see if my intuition is correct about them. Are they basically used over standard unions as a way to do 'overloading' of a function's return type? Overloading in the sense of OOP method overloading. |
2021-06-09 05:38:54 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 252 seconds) |
2021-06-09 05:42:09 +0200 | <glguy> | trent, I don't think they have much to do with OOP method overloading |
2021-06-09 05:43:42 +0200 | <trent> | Damn, I was hoping thats all they were used for - to handle different return types |
2021-06-09 05:44:12 +0200 | <trent> | What use are they then? I guess I have started reading about them before I have a use case |
2021-06-09 05:44:57 +0200 | <monochrom> | The GHC user's guide has a very prototypical example. |
2021-06-09 05:47:12 +0200 | <trent> | monochrom: The Term example? Thats where I thought I understood them in this way |
2021-06-09 05:47:44 +0200 | yd502_ | (~yd502@180.168.212.6) (Ping timeout: 250 seconds) |
2021-06-09 05:48:44 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
2021-06-09 05:50:29 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds) |
2021-06-09 06:00:46 +0200 | realtime | (~realtime@177.18.185.16) (Quit: Leaving) |
2021-06-09 06:01:14 +0200 | Adran | (adran@botters/adran) (Quit: Este é o fim.) |
2021-06-09 06:01:25 +0200 | zebrag | (~chris@user/zebrag) (Remote host closed the connection) |
2021-06-09 06:01:32 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-09 06:01:44 +0200 | yd502_ | (~yd502@180.168.212.6) |
2021-06-09 06:01:45 +0200 | <c_wraith> | trent: if all you care about is returning multiple types, you can use regular data types to do that. |
2021-06-09 06:02:00 +0200 | pe200012 | (~pe200012@58.248.179.180) (Ping timeout: 252 seconds) |
2021-06-09 06:02:13 +0200 | pe200012 | (~pe200012@58.248.179.180) |
2021-06-09 06:02:54 +0200 | Adran | (~adran@botters/adran) |
2021-06-09 06:02:55 +0200 | <glguy> | trent, here's a little GADT example: https://bpa.st/FHHA |
2021-06-09 06:02:56 +0200 | <trent> | Then I think I am not 'getting' the use of GADT's. |
2021-06-09 06:03:43 +0200 | <glguy> | With GADTs you can constraint what types each constructor works at, and you can learn those constraints through pattern matching |
2021-06-09 06:04:03 +0200 | <glguy> | parameterized data types no longer have to work for all possible instantiations of their parameters |
2021-06-09 06:04:27 +0200 | <trent> | glguy: What does GADT give you in that example that you wouldnt get with a simple union type? |
2021-06-09 06:04:49 +0200 | <glguy> | trent, change the example not to use a gadt |
2021-06-09 06:05:14 +0200 | <glguy> | make it a simple union type and then fix the file and see where it goes |
2021-06-09 06:05:37 +0200 | <glguy> | ideally you'll have a realization along the way where you get stuck :) |
2021-06-09 06:06:13 +0200 | <glguy> | if not come back with questions, but it's a chance to figure some stuff out |
2021-06-09 06:06:24 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
2021-06-09 06:07:18 +0200 | Adran | (~adran@botters/adran) (Client Quit) |
2021-06-09 06:07:18 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-06-09 06:08:05 +0200 | MQ-17J | (~MQ-17J@8.21.10.116) |
2021-06-09 06:09:24 +0200 | Adran | (~adran@botters/adran) |
2021-06-09 06:11:38 +0200 | hmmmas | (~chenqisu1@183.217.201.236) (Quit: Leaving.) |
2021-06-09 06:14:02 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-06-09 06:15:44 +0200 | <trent> | glguy: thank you for that, I am working through it now. |
2021-06-09 06:16:11 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-06-09 06:18:15 +0200 | wallymathieu[m] | (~wallymath@2001:470:69fc:105::16ae) |
2021-06-09 06:21:31 +0200 | Adran | (~adran@botters/adran) (Quit: Este é o fim.) |
2021-06-09 06:22:15 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-09 06:23:19 +0200 | Hoch | (~Hoch@191.96.170.83) |
2021-06-09 06:23:41 +0200 | ddellacosta | (~ddellacos@89.46.62.125) |
2021-06-09 06:24:35 +0200 | Sgeo_ | (~Sgeo@ool-18b9875e.dyn.optonline.net) |
2021-06-09 06:25:02 +0200 | fendor__ | (~fendor@178.165.130.85.wireless.dyn.drei.com) |
2021-06-09 06:25:04 +0200 | Hoch | (~Hoch@191.96.170.83) () |
2021-06-09 06:25:05 +0200 | spatchkaa_ | (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) |
2021-06-09 06:25:45 +0200 | MidAutumnMoon3 | (~MidAutumn@user/midautumnmoon) |
2021-06-09 06:26:43 +0200 | pierrot_ | (~pi@user/pierrot) |
2021-06-09 06:27:02 +0200 | Adran | (~adran@botters/adran) |
2021-06-09 06:27:58 +0200 | ddellacosta | (~ddellacos@89.46.62.125) (Ping timeout: 244 seconds) |
2021-06-09 06:28:06 +0200 | cheater1__ | (~Username@user/cheater) |
2021-06-09 06:28:42 +0200 | Solarion_ | (~solarion@mail.digitasaru.net) |
2021-06-09 06:28:56 +0200 | evie1 | (~evie@188.27.66.89) |
2021-06-09 06:28:58 +0200 | kmein_ | (~weechat@user/kmein) |
2021-06-09 06:29:03 +0200 | xerox_ | (~edi@user/edi) |
2021-06-09 06:29:06 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-06-09 06:29:06 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (strontium.libera.chat (Nickname regained by services))) |
2021-06-09 06:29:06 +0200 | finn_elija | FinnElija |
2021-06-09 06:29:12 +0200 | fresheye1 | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
2021-06-09 06:29:14 +0200 | Clint_ | (~Clint@user/clint) |
2021-06-09 06:29:35 +0200 | alx741 | (~alx741@181.196.69.18) (Quit: alx741) |
2021-06-09 06:29:37 +0200 | Erutuon_ | (~Erutuon@user/erutuon) |
2021-06-09 06:30:41 +0200 | derelict | (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) (Ping timeout: 272 seconds) |
2021-06-09 06:31:01 +0200 | jespada_ | (~jespada@90.254.242.55) |
2021-06-09 06:32:21 +0200 | yd502_ | (~yd502@180.168.212.6) (Remote host closed the connection) |
2021-06-09 06:32:40 +0200 | TheCoffeMaker_ | (~TheCoffeM@125-121-245-190.fibertel.com.ar) |
2021-06-09 06:32:58 +0200 | Adran | (~adran@botters/adran) (Quit: Este é o fim.) |
2021-06-09 06:33:58 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (*.net *.split) |
2021-06-09 06:33:58 +0200 | fendor_ | (~fendor@178.165.130.85.wireless.dyn.drei.com) (*.net *.split) |
2021-06-09 06:33:58 +0200 | jespada | (~jespada@90.254.242.55) (*.net *.split) |
2021-06-09 06:33:58 +0200 | xsperry | (~as@user/xsperry) (*.net *.split) |
2021-06-09 06:33:58 +0200 | ukari | (~ukari@user/ukari) (*.net *.split) |
2021-06-09 06:33:58 +0200 | Erutuon | (~Erutuon@user/erutuon) (*.net *.split) |
2021-06-09 06:33:58 +0200 | kmein | (~weechat@user/kmein) (*.net *.split) |
2021-06-09 06:33:58 +0200 | pierrot | (~pi@user/pierrot) (*.net *.split) |
2021-06-09 06:33:58 +0200 | kaol | (~kaol@178.62.241.234) (*.net *.split) |
2021-06-09 06:33:58 +0200 | Clint | (~Clint@user/clint) (*.net *.split) |
2021-06-09 06:33:58 +0200 | davean | (~davean@davean.sciesnet.net) (*.net *.split) |
2021-06-09 06:33:58 +0200 | asm | (~alexander@user/asm) (*.net *.split) |
2021-06-09 06:33:58 +0200 | Solarion | (~solarion@mail.digitasaru.net) (*.net *.split) |
2021-06-09 06:33:58 +0200 | spatchkaa | (~spatchkaa@s010600fc8da47b63.gv.shawcable.net) (*.net *.split) |
2021-06-09 06:33:58 +0200 | cheater | (~Username@user/cheater) (*.net *.split) |
2021-06-09 06:33:58 +0200 | Sgeo | (~Sgeo@user/sgeo) (*.net *.split) |
2021-06-09 06:33:58 +0200 | fabfianda | (~fabfianda@net-93-148-121-206.cust.vodafonedsl.it) (*.net *.split) |
2021-06-09 06:33:58 +0200 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (*.net *.split) |
2021-06-09 06:33:58 +0200 | MidAutumnMoon | (~MidAutumn@user/midautumnmoon) (*.net *.split) |
2021-06-09 06:33:58 +0200 | Evie- | (~evie@user/evie-) (*.net *.split) |
2021-06-09 06:33:58 +0200 | xerox | (~edi@user/edi) (*.net *.split) |
2021-06-09 06:33:58 +0200 | tv | (~tv@user/tv) (*.net *.split) |
2021-06-09 06:33:59 +0200 | MidAutumnMoon3 | MidAutumnMoon |
2021-06-09 06:34:02 +0200 | cheater1__ | cheater |
2021-06-09 06:34:23 +0200 | kaol | (~kaol@178.62.241.234) |
2021-06-09 06:35:11 +0200 | mrufrufin | (~dxk@108.235.170.90) |
2021-06-09 06:36:28 +0200 | awth13 | (~user@185.209.196.143) |
2021-06-09 06:36:34 +0200 | Adran | (adran@botters/adran) |
2021-06-09 06:36:58 +0200 | Adran | (adran@botters/adran) (Remote host closed the connection) |
2021-06-09 06:37:24 +0200 | awth13 | (~user@185.209.196.143) (Remote host closed the connection) |
2021-06-09 06:37:40 +0200 | ordinate | (~ordinate@c-68-38-144-3.hsd1.in.comcast.net) (Quit: Leaving) |
2021-06-09 06:37:47 +0200 | awth13 | (~user@185.209.196.143) |
2021-06-09 06:38:16 +0200 | awth13 | (~user@185.209.196.143) (Remote host closed the connection) |
2021-06-09 06:38:38 +0200 | awth13 | (~user@185.209.196.143) |
2021-06-09 06:40:01 +0200 | asm | (~alexander@burner.asm89.io) |
2021-06-09 06:40:02 +0200 | paddymahoney | (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) |
2021-06-09 06:40:13 +0200 | tv | (~tv@user/tv) |
2021-06-09 06:40:46 +0200 | davean | (~davean@davean.sciesnet.net) |
2021-06-09 06:40:49 +0200 | jao | (~mail@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Read error: No route to host) |
2021-06-09 06:41:15 +0200 | ukari | (~ukari@user/ukari) |
2021-06-09 06:41:54 +0200 | slack1256 | (~slack1256@191.125.38.7) (Ping timeout: 250 seconds) |
2021-06-09 06:43:30 +0200 | awth13 | (~user@185.209.196.143) (Quit: ERC (IRC client for Emacs 27.2)) |
2021-06-09 06:43:56 +0200 | awth13 | (~user@185.209.196.143) |
2021-06-09 06:44:03 +0200 | Adran | (adran@botters/adran) |
2021-06-09 06:44:43 +0200 | awth13 | (~user@185.209.196.143) () |
2021-06-09 06:45:45 +0200 | awth13 | (~user@185.209.196.143) |
2021-06-09 06:45:48 +0200 | awth13 | (~user@185.209.196.143) (Remote host closed the connection) |
2021-06-09 06:46:19 +0200 | renzhi | (~xp@2607:fa49:6500:bc00::e7b) (Ping timeout: 245 seconds) |
2021-06-09 06:46:25 +0200 | awth13 | (~user@user/awth13) |
2021-06-09 06:46:58 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-06-09 06:47:11 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-06-09 06:48:11 +0200 | awth13 | (~user@user/awth13) (Client Quit) |
2021-06-09 06:48:44 +0200 | juhp | (~juhp@128.106.188.66) |
2021-06-09 06:49:22 +0200 | <guest61> | cabal and cabal-install are not same thing? |
2021-06-09 06:49:26 +0200 | awth13 | (~user@user/awth13) |
2021-06-09 06:49:47 +0200 | <guest61> | I saw there are cabal and cabal-install in downloads.haskell.org |
2021-06-09 07:00:54 +0200 | UpstreamSalmon | (uid12077@id-12077.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-06-09 07:01:27 +0200 | <int-e> | guest61: There are two packages, Cabal (capital C) is a library that can be used to build stand-alone Setup programs, but is also used by the 'cabal-install' package that provides an executable called 'cabal'... |
2021-06-09 07:02:17 +0200 | awth13 | (~user@user/awth13) (Remote host closed the connection) |
2021-06-09 07:02:30 +0200 | pe200012 | (~pe200012@58.248.179.180) (Ping timeout: 252 seconds) |
2021-06-09 07:02:45 +0200 | pe200012 | (~pe200012@183.236.83.76) |
2021-06-09 07:04:10 +0200 | <int-e> | historically, Cabal the library predates cabal the program by a few years, otherwise the package names would probably be different (say, cabal-lib and cabal) |
2021-06-09 07:09:53 +0200 | AgentM | (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.) |
2021-06-09 07:10:07 +0200 | derelict | (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) |
2021-06-09 07:10:50 +0200 | charukiewicz | (~quassel@irouteince04.i.subnet.rcn.com) (Ping timeout: 252 seconds) |
2021-06-09 07:10:53 +0200 | charukiewicz_ | (~quassel@irouteince04.i.subnet.rcn.com) |
2021-06-09 07:13:09 +0200 | awth13 | (~user@user/awth13) |
2021-06-09 07:16:20 +0200 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection) |
2021-06-09 07:16:35 +0200 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
2021-06-09 07:17:05 +0200 | Cajun | (~Cajun@ip98-163-211-112.no.no.cox.net) |
2021-06-09 07:17:24 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-09 07:18:42 +0200 | phma | (phma@2001:5b0:211f:5688:8179:a979:62a:8bf6) |
2021-06-09 07:19:22 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-09 07:19:22 +0200 | Bartosz | (~textual@24.35.90.211) (Client Quit) |
2021-06-09 07:19:53 +0200 | ddellacosta | (~ddellacos@86.106.121.90) |
2021-06-09 07:20:24 +0200 | arjun | (~user@user/arjun) |
2021-06-09 07:20:28 +0200 | phma_ | (phma@2001:5b0:211f:5688:8179:a979:62a:8bf6) (Ping timeout: 244 seconds) |
2021-06-09 07:20:48 +0200 | <arjun> | https://www.manning.com/books/haskell-in-depth, any reviews on this one people? |
2021-06-09 07:20:56 +0200 | <arjun> | on the fence wether to buy |
2021-06-09 07:22:38 +0200 | blankhart | (~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net) (Ping timeout: 250 seconds) |
2021-06-09 07:23:00 +0200 | blankhart | (~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net) |
2021-06-09 07:24:17 +0200 | ddellacosta | (~ddellacos@86.106.121.90) (Ping timeout: 244 seconds) |
2021-06-09 07:24:30 +0200 | fabfianda | (~fabfianda@net-93-148-121-206.cust.dsl.teletu.it) |
2021-06-09 07:26:38 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-09 07:27:11 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-09 07:30:28 +0200 | <arjun> | hi Bartosz : P |
2021-06-09 07:31:03 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) |
2021-06-09 07:31:46 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-09 07:32:45 +0200 | xff0x_ | (~xff0x@2001:1a81:52c9:6b00:ea05:f1db:1e96:7c29) (Ping timeout: 272 seconds) |
2021-06-09 07:33:22 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-06-09 07:33:27 +0200 | xff0x_ | (~xff0x@2001:1a81:52c9:6b00:ad16:d7f9:3b66:59f3) |
2021-06-09 07:35:01 +0200 | dut | (~dut@user/dut) |
2021-06-09 07:38:59 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-09 07:40:32 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
2021-06-09 07:42:08 +0200 | Guest78 | (~Guest78@115.236.91.18) |
2021-06-09 07:42:36 +0200 | <Guest78> | hello all |
2021-06-09 07:46:07 +0200 | danidiaz | (~ESDPC@static-35-0-85-188.ipcom.comunitel.net) |
2021-06-09 07:47:49 +0200 | <Axman6> | Hello |
2021-06-09 07:48:09 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-06-09 07:48:14 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Read error: Connection reset by peer) |
2021-06-09 07:48:52 +0200 | TheRAt | (~TheRAt@user/therat) |
2021-06-09 07:50:32 +0200 | zmt01 | (~zmt00@user/zmt00) (Quit: Gone.) |
2021-06-09 07:50:43 +0200 | Guest78 | (~Guest78@115.236.91.18) (Quit: Client closed) |
2021-06-09 07:52:20 +0200 | <guest61> | aha, compile ghc on arm successfully |
2021-06-09 07:52:28 +0200 | <Axman6> | noice |
2021-06-09 07:53:57 +0200 | <guest61> | by the way, there's an error in that configure file |
2021-06-09 07:54:23 +0200 | <guest61> | gcc -V -qversion , those two parameters are invalid |
2021-06-09 07:55:28 +0200 | <Axman6> | if it's the ghc configure file, this isn't really the place to report it, the GHC gitlab is probably a better place (perhaps asking in #ghc might help) |
2021-06-09 07:56:27 +0200 | <guest61> | ok |
2021-06-09 07:56:43 +0200 | statusbot1 | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
2021-06-09 07:56:52 +0200 | Codaraxis_ | (~Codaraxis@89.45.7.142) |
2021-06-09 07:57:16 +0200 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection) |
2021-06-09 07:57:21 +0200 | Codaraxis | (~Codaraxis@89.45.7.142) (Read error: Connection reset by peer) |
2021-06-09 07:57:21 +0200 | arjun | (~user@user/arjun) (Ping timeout: 244 seconds) |
2021-06-09 07:57:27 +0200 | Scotty_Trees | (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Read error: Connection reset by peer) |
2021-06-09 07:57:31 +0200 | aerona | (~aerona@2600:6c54:4600:f300:7c57:ac62:2191:e44b) (Read error: Connection reset by peer) |
2021-06-09 07:57:47 +0200 | Scotty_Trees | (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) |
2021-06-09 07:58:40 +0200 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) (Quit: marinelli) |
2021-06-09 08:01:44 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Quit: Leaving) |
2021-06-09 08:01:57 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) |
2021-06-09 08:04:43 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-09 08:07:17 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-06-09 08:13:29 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-06-09 08:13:53 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
2021-06-09 08:13:59 +0200 | yd502_ | (~yd502@180.168.212.6) |
2021-06-09 08:14:57 +0200 | bryan[m] | (~bchreekat@2001:470:69fc:105::16b5) |
2021-06-09 08:24:44 +0200 | xff0x_ | (~xff0x@2001:1a81:52c9:6b00:ad16:d7f9:3b66:59f3) (Ping timeout: 244 seconds) |
2021-06-09 08:25:37 +0200 | xff0x_ | (~xff0x@2001:1a81:52c9:6b00:a719:2b91:3f7b:5d25) |
2021-06-09 08:26:20 +0200 | ridcully | (~ridcully@pd951f269.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-06-09 08:27:02 +0200 | ridcully | (~ridcully@p508ac428.dip0.t-ipconnect.de) |
2021-06-09 08:27:02 +0200 | Sgeo_ | (~Sgeo@ool-18b9875e.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-06-09 08:28:04 +0200 | yd502_ | (~yd502@180.168.212.6) (Ping timeout: 250 seconds) |
2021-06-09 08:28:11 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-09 08:28:26 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-06-09 08:29:04 +0200 | xerox_ | xerox |
2021-06-09 08:29:37 +0200 | yd502_ | (~yd502@180.168.212.6) |
2021-06-09 08:30:00 +0200 | tose | (~tose@ip-85-160-1-181.eurotel.cz) |
2021-06-09 08:30:33 +0200 | dunkeln | (~dunkeln@94.129.65.28) |
2021-06-09 08:32:29 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
2021-06-09 08:33:31 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-06-09 08:33:34 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-09 08:34:19 +0200 | chele | (~chele@user/chele) |
2021-06-09 08:35:27 +0200 | yd502_ | (~yd502@180.168.212.6) (Ping timeout: 252 seconds) |
2021-06-09 08:37:38 +0200 | hughjfchen | (~hughjfche@vmi556545.contaboserver.net) |
2021-06-09 08:38:16 +0200 | hughjfchen | (~hughjfche@vmi556545.contaboserver.net) (Client Quit) |
2021-06-09 08:39:12 +0200 | derelict | (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) (Ping timeout: 244 seconds) |
2021-06-09 08:40:51 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) |
2021-06-09 08:41:45 +0200 | <dminuoso> | optics question. would you rather use `each %> someIx` or `traversed % someIx`? I cant for my life decide which one is better. |
2021-06-09 08:41:56 +0200 | dminuoso | is bikeshedding quite hard here |
2021-06-09 08:42:20 +0200 | <c_wraith> | is each anything like lens's each? |
2021-06-09 08:43:32 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-06-09 08:43:36 +0200 | <c_wraith> | ah, yes it is. |
2021-06-09 08:43:39 +0200 | <dminuoso> | c_wraith: Yeah, except it's fixed to be an indexed traversal |
2021-06-09 08:43:57 +0200 | <c_wraith> | I'd prefer traversed anywhere it works |
2021-06-09 08:44:44 +0200 | <dminuoso> | c_wraith: The key difference is that in optics, `traversed` is a non-indexed traversal, and `each` gives a guaranteed indexed traversal. |
2021-06-09 08:45:04 +0200 | <dminuoso> | And (%) forbids composition if both sides are indexed (requiring you to explicitly opt into <%> which (,)'s the indexes together |
2021-06-09 08:45:50 +0200 | <c_wraith> | Each is the weird ad-hoc class that does whatever someone decided it should. I kind of don't like that. |
2021-06-09 08:46:04 +0200 | <c_wraith> | well, there's itraversed |
2021-06-09 08:46:21 +0200 | <c_wraith> | Not quite as universal as traversed, but it's a lot more obvious what it does |
2021-06-09 08:46:29 +0200 | <dminuoso> | I guess the primary motivation of each is to support tuples |
2021-06-09 08:46:47 +0200 | <dminuoso> | There's also the bit that `each` reads nicely in the optics DSL.. :p |
2021-06-09 08:47:04 +0200 | hmmmas | (~chenqisu1@183.217.201.236) |
2021-06-09 08:47:56 +0200 | michalz | (~michalz@185.246.204.125) |
2021-06-09 08:48:30 +0200 | Scotty_Trees | (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Ping timeout: 244 seconds) |
2021-06-09 08:48:30 +0200 | myShoggoth | (~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 244 seconds) |
2021-06-09 08:50:48 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Remote host closed the connection) |
2021-06-09 08:51:01 +0200 | <dminuoso> | or well, I guess that's not entirely true. the index types get combined at the type level, but many combinators require only a single index |
2021-06-09 08:51:08 +0200 | nschoe | (~quassel@178.251.84.79) |
2021-06-09 08:51:12 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) |
2021-06-09 08:51:26 +0200 | <dminuoso> | (i.e. (%) allows composition just fine, but most of the time your optic must have only a single index type) |
2021-06-09 08:51:40 +0200 | <dminuoso> | c_wraith: Yeah I guess. |
2021-06-09 08:53:03 +0200 | tose | (~tose@ip-85-160-1-181.eurotel.cz) (Remote host closed the connection) |
2021-06-09 08:53:09 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
2021-06-09 08:54:11 +0200 | jophish | (~jophish@2001:470:69fc:105::670) |
2021-06-09 08:54:17 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-09 08:55:13 +0200 | nschoe | (~quassel@178.251.84.79) (Ping timeout: 244 seconds) |
2021-06-09 08:55:25 +0200 | dunkeln | (~dunkeln@94.129.65.28) (Quit: leaving) |
2021-06-09 08:56:20 +0200 | yd502_ | (~yd502@180.168.212.6) |
2021-06-09 08:57:23 +0200 | yd502__ | (~yd502@180.168.212.6) |
2021-06-09 08:58:33 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 252 seconds) |
2021-06-09 08:59:37 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-09 09:00:55 +0200 | yd502_ | (~yd502@180.168.212.6) (Ping timeout: 264 seconds) |
2021-06-09 09:01:27 +0200 | Scotty_Trees | (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) |
2021-06-09 09:01:50 +0200 | nsilv | (~nsilv@212.103.198.210) |
2021-06-09 09:01:56 +0200 | yd502__ | (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
2021-06-09 09:03:07 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:69cc:8900:882e:bc6e) |
2021-06-09 09:09:41 +0200 | xff0x_ | (~xff0x@2001:1a81:52c9:6b00:a719:2b91:3f7b:5d25) (Ping timeout: 244 seconds) |
2021-06-09 09:10:46 +0200 | Bartosz | (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-09 09:10:48 +0200 | xff0x_ | (~xff0x@port-92-195-66-229.dynamic.as20676.net) |
2021-06-09 09:12:52 +0200 | o | niko |
2021-06-09 09:13:54 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-09 09:14:30 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-09 09:16:24 +0200 | MQ-17J | (~MQ-17J@8.21.10.116) (Ping timeout: 244 seconds) |
2021-06-09 09:16:41 +0200 | MQ-17J | (~MQ-17J@8.21.10.116) |
2021-06-09 09:17:10 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-06-09 09:17:44 +0200 | <siers> | can I use lens (in combo with th) to access the "a" which is inside all cases of a disjoint union? Simplest example "Either a a" |
2021-06-09 09:18:45 +0200 | <dminuoso> | siers: use `failing` |
2021-06-09 09:19:17 +0200 | <dminuoso> | Together with unsafeSingular you can even reconstruct a lens from this. |
2021-06-09 09:19:17 +0200 | kenran | (~kenran@200116b82b683c006ea54bdc3ffd5a0f.dip.versatel-1u1.de) |
2021-06-09 09:19:32 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-06-09 09:20:31 +0200 | <dminuoso> | % f :: Lens' (Either (Int, Char) (String, Int)) Int; f = unsafeSingular (_Left . _1 `failing` _Right . _2) -- siers |
2021-06-09 09:20:31 +0200 | <yahb> | dminuoso: |
2021-06-09 09:21:00 +0200 | ddellacosta | (~ddellacos@89.46.62.109) |
2021-06-09 09:21:30 +0200 | ramon | (~ramon@user/ramon) |
2021-06-09 09:21:41 +0200 | <siers> | nice |
2021-06-09 09:23:20 +0200 | <siers> | I think unsafeSingular could be mentioned here then: https://stackoverflow.com/questions/36521208/how-to-make-the-product-of-two-lenses |
2021-06-09 09:23:22 +0200 | <dminuoso> | (I guess you can even use `singular` here) |
2021-06-09 09:23:32 +0200 | agumonke` | (~user@88.163.231.79) (Ping timeout: 250 seconds) |
2021-06-09 09:24:12 +0200 | <siers> | never mind, probably not |
2021-06-09 09:24:25 +0200 | <dminuoso> | % f :: Lens' (Either (Int, Char) (String, Int)) Int; f = singular (_Left . _1 `failing` _Right . _2) |
2021-06-09 09:24:25 +0200 | <yahb> | dminuoso: |
2021-06-09 09:24:47 +0200 | teaSlurper | (~chris@81.96.113.213) |
2021-06-09 09:24:56 +0200 | <dminuoso> | % Left (1, 'f') & f .~ 10 |
2021-06-09 09:24:56 +0200 | <yahb> | dminuoso: Left (10,'f') |
2021-06-09 09:25:04 +0200 | <dminuoso> | % Right ("foo", 20) & f .~ 10 |
2021-06-09 09:25:04 +0200 | <yahb> | dminuoso: Right ("foo",10) |
2021-06-09 09:25:07 +0200 | <siers> | nice |
2021-06-09 09:25:30 +0200 | ddellacosta | (~ddellacos@89.46.62.109) (Ping timeout: 252 seconds) |
2021-06-09 09:26:03 +0200 | <dminuoso> | Yeah, I make heavy use of this trick, as ugly as it is. |
2021-06-09 09:26:53 +0200 | <siers> | why do you think it's ugly? :) |
2021-06-09 09:27:15 +0200 | <siers> | because requires human proof? |
2021-06-09 09:27:18 +0200 | <siers> | it* |
2021-06-09 09:29:46 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 09:30:09 +0200 | <dminuoso> | siers: It's rather, in the type algebra, it's very obvious and visible that this shouldnt even need proof. |
2021-06-09 09:31:00 +0200 | teaSlurper | (~chris@81.96.113.213) (Ping timeout: 252 seconds) |
2021-06-09 09:31:35 +0200 | <dminuoso> | siers: Its the same thing with the article you mentioned |
2021-06-09 09:31:52 +0200 | Erutuon_ | Erutuon |
2021-06-09 09:33:34 +0200 | <dminuoso> | Often I get away with just Folds instead, but if you stare at this, it makes you crave for a more fitting abstraction |
2021-06-09 09:33:35 +0200 | <dminuoso> | https://gist.github.com/dminuoso/d73bf2520faf4e36d3168c8db789727a |
2021-06-09 09:33:44 +0200 | nschoe | (~quassel@178.251.84.79) |
2021-06-09 09:33:50 +0200 | <siers> | you mean shouldn't need proof or should be possible to encode as a proof? |
2021-06-09 09:34:46 +0200 | asm | (~alexander@burner.asm89.io) (Changing host) |
2021-06-09 09:34:46 +0200 | asm | (~alexander@user/asm) |
2021-06-09 09:36:05 +0200 | <dminuoso> | siers: In my problem domain, at least with the representation I chose, sum types are sort of like diamonds. I constantly split them up (with say filteredBy), or I want to join them back together (with summing/unsafeSingular+failingT) |
2021-06-09 09:37:05 +0200 | <dminuoso> | But there's no way to track "these prism-like things are disjoint" for example in the lens/optics ergonomics |
2021-06-09 09:37:14 +0200 | <dminuoso> | You need manual human written proof |
2021-06-09 09:37:17 +0200 | <dminuoso> | Every time. |
2021-06-09 09:37:26 +0200 | <dminuoso> | Or you just shrug and pretend its alright |
2021-06-09 09:38:00 +0200 | <siers> | right, but it's due to a language limitation? or could you technically encode that and carry it along in haskell? |
2021-06-09 09:38:39 +0200 | ubert | (~Thunderbi@p200300ecdf259da7d446db1a2ac53d1c.dip0.t-ipconnect.de) |
2021-06-09 09:38:40 +0200 | <dminuoso> | No idea, really. I just know this act of "splitting/joining sum types" doesnt fit well into lens/optics. |
2021-06-09 09:39:02 +0200 | <siers> | gotcha |
2021-06-09 09:40:21 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-06-09 09:41:07 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 264 seconds) |
2021-06-09 09:42:16 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-09 09:44:19 +0200 | <dminuoso> | The primitive I originally wanted, was some: partition :: (Is k An_AffineFold, Is l An_AffineFold) => Optic' k is a i -> Optic' l is a j -> IxAffineFold (Either i j) a a -- or some such. |
2021-06-09 09:45:23 +0200 | <dminuoso> | But even this representation completely throws away the information, since you're back to square one with the index of (Either i j) |
2021-06-09 09:46:22 +0200 | trent | (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 244 seconds) |
2021-06-09 09:46:25 +0200 | lode | Aardwolf |
2021-06-09 09:46:43 +0200 | Aardwolf | (~lode@77-56-208-202.dclient.hispeed.ch) (Leaving) |
2021-06-09 09:47:42 +0200 | <dminuoso> | And of course its unsafe already, since it demands proof that the provided affine folds are disjoint |
2021-06-09 09:49:27 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-06-09 09:50:48 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-06-09 09:55:02 +0200 | ukari | (~ukari@user/ukari) |
2021-06-09 09:56:21 +0200 | mastarija | (~mastarija@31.217.11.88) |
2021-06-09 09:56:23 +0200 | Chobbes | (~Chobbes@user/chobbes) (Ping timeout: 252 seconds) |
2021-06-09 09:56:41 +0200 | zeenk | (~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41) |
2021-06-09 09:56:46 +0200 | yd502_ | (~yd502@180.168.212.6) |
2021-06-09 09:57:03 +0200 | <mastarija> | Can't remember, how does one "install" a package globally so I can use it from ghci without having to create a project? |
2021-06-09 09:57:16 +0200 | <mastarija> | I thought it was cabal install --lib random |
2021-06-09 09:57:25 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
2021-06-09 09:57:34 +0200 | <Cajun> | last i recall it was `cabal install --lib PACKAGE` |
2021-06-09 09:57:50 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-06-09 09:58:01 +0200 | <mastarija> | Yes, that's what I tried, but ghci still can not find System.Random for some reason |
2021-06-09 09:59:04 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 250 seconds) |
2021-06-09 09:59:10 +0200 | <mastarija> | Oh, I tried for a second time and now I get some error |
2021-06-09 09:59:17 +0200 | <lortabac> | mastarija: you need to make the package visible in ghci |
2021-06-09 09:59:22 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-09 09:59:28 +0200 | <mastarija> | Yes, in that one file |
2021-06-09 09:59:33 +0200 | <mastarija> | I'm gonna check now |
2021-06-09 10:00:03 +0200 | <lortabac> | you can also do it interactively: :set -package PACKAGE_NAME |
2021-06-09 10:00:31 +0200 | <merijn> | mastarija: --lib is *at best* in beta atm |
2021-06-09 10:00:49 +0200 | <mastarija> | That's ok, I just wanted to try something out quickly |
2021-06-09 10:01:03 +0200 | Chobbes | (~Chobbes@user/chobbes) |
2021-06-09 10:01:21 +0200 | <merijn> | mastarija: you can start ghci with a package in scope via "cabal repl --build-depends" |
2021-06-09 10:01:41 +0200 | <merijn> | i.e. "cabal repl --build-depends random-x.y.z" |
2021-06-09 10:01:52 +0200 | yd502_ | (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
2021-06-09 10:02:31 +0200 | <lortabac> | yes, merijn's suggestion is more reliable than mine |
2021-06-09 10:02:44 +0200 | <dminuoso> | +1 to merijn's suggestion |
2021-06-09 10:02:50 +0200 | <merijn> | Also less likely to make your life a pain later :p |
2021-06-09 10:03:25 +0200 | <merijn> | "install --lib" is, effectively, the same as pinning all future build plans/installs to the package version you happen to install right now |
2021-06-09 10:03:37 +0200 | <merijn> | Which, uh, is rather limiting |
2021-06-09 10:05:29 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
2021-06-09 10:05:32 +0200 | <mastarija> | meh.. I just erase that pinning file every so often |
2021-06-09 10:05:52 +0200 | <mastarija> | but yes, --build-depends work nicely |
2021-06-09 10:05:57 +0200 | <mastarija> | Although it's a bit slow to load |
2021-06-09 10:06:06 +0200 | <mastarija> | thanks merijn |
2021-06-09 10:07:29 +0200 | phanf | (~phanf@226.148.192.35.bc.googleusercontent.com) (Quit: leaving) |
2021-06-09 10:07:42 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-06-09 10:09:40 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b95b:27c0:9816:d7ad) (Remote host closed the connection) |
2021-06-09 10:10:52 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-09 10:10:58 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 252 seconds) |
2021-06-09 10:12:12 +0200 | GIANTWORLDKEEPER | (~pjetcetal@2.95.204.25) (Quit: EXIT) |
2021-06-09 10:14:13 +0200 | <merijn> | Should only be slow the first time, I think? |
2021-06-09 10:14:14 +0200 | <dminuoso> | with `cabal install --lib` you very rapidly end up with failure to install anything further from experience. |
2021-06-09 10:14:24 +0200 | <dminuoso> | It works for the first 1-2 packages, and then you cant install anything else. |
2021-06-09 10:14:28 +0200 | <merijn> | It JIT installs the package you need, then loads it inside ghci |
2021-06-09 10:14:34 +0200 | ikex | (~ash@user/ikex) |
2021-06-09 10:14:45 +0200 | <merijn> | If the package is already in the global store (after the first run) it can skip that step |
2021-06-09 10:15:10 +0200 | <dminuoso> | *package with the resolved version + flags. |
2021-06-09 10:15:19 +0200 | brandonh | (~brandonh@151.44.80.15) |
2021-06-09 10:15:25 +0200 | <dminuoso> | If in a different projects you have other constraints that would result in a different version of the same library, it'd have to be rebuilt of course. |
2021-06-09 10:16:39 +0200 | phanf | (~phanf@226.148.192.35.bc.googleusercontent.com) |
2021-06-09 10:17:56 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3429:27e5:c9dc:b9d2) |
2021-06-09 10:19:09 +0200 | emliunix_ | (~emliunix@b4kebweac68.route-server.jp) |
2021-06-09 10:19:45 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-09 10:20:07 +0200 | hendursa1 | (~weechat@user/hendursaga) (Remote host closed the connection) |
2021-06-09 10:20:12 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-06-09 10:21:38 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) |
2021-06-09 10:22:02 +0200 | emliunix__ | (~emliunix@198.144.166.57) (Ping timeout: 250 seconds) |
2021-06-09 10:22:09 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3429:27e5:c9dc:b9d2) (Ping timeout: 245 seconds) |
2021-06-09 10:27:14 +0200 | pera | (~pera@user/pera) |
2021-06-09 10:28:16 +0200 | involans | (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) |
2021-06-09 10:28:24 +0200 | azeem | (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Ping timeout: 245 seconds) |
2021-06-09 10:29:27 +0200 | azeem | (~azeem@176.201.21.77) |
2021-06-09 10:30:03 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-09 10:30:18 +0200 | fendor__ | fendor |
2021-06-09 10:30:39 +0200 | GIANTWORLDKEEPER | (~pjetcetal@2.95.204.25) |
2021-06-09 10:33:15 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) |
2021-06-09 10:33:37 +0200 | xsperry | (~as@user/xsperry) |
2021-06-09 10:33:55 +0200 | thyriaen | (~thyriaen@45.178.73.238) |
2021-06-09 10:34:12 +0200 | <thyriaen> | good morning, my friends - what fun tutorialy resources do you recommend to get into haskell ? I think best would be some kind of problemset to solve - any suggestions ? |
2021-06-09 10:35:06 +0200 | <dexterfoo> | how can I run these 3 ghci commands all together? ":r" ":!clear" "main" |
2021-06-09 10:35:19 +0200 | wallymathieu[m] | (~wallymath@2001:470:69fc:105::16ae) (Read error: Connection reset by peer) |
2021-06-09 10:35:19 +0200 | oak- | (~oakuniver@2001:470:69fc:105::fcd) (Read error: Connection reset by peer) |
2021-06-09 10:35:19 +0200 | dualinverter[m] | (~dualinver@2001:470:69fc:105::16a7) (Read error: Connection reset by peer) |
2021-06-09 10:35:19 +0200 | autrim64[m] | (~autrim64m@2001:470:69fc:105::16a1) (Read error: Connection reset by peer) |
2021-06-09 10:35:19 +0200 | bryan[m] | (~bchreekat@2001:470:69fc:105::16b5) (Read error: Connection reset by peer) |
2021-06-09 10:35:19 +0200 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) (Write error: Connection reset by peer) |
2021-06-09 10:35:19 +0200 | psydroid | (~psydroidm@user/psydroid) (Write error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | jaror[m] | (~jaror@2001:470:69fc:105::265) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | Morrow[m] | (~morrowmma@2001:470:69fc:105::1d0) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | hjulle[m] | (~hjullemat@2001:470:69fc:105::1dd) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | bb010g | (~bb010gmat@2001:470:69fc:105::9a5) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | eddiemundo | (~eddiemund@2001:470:69fc:105::a9c) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | cdsmith | (~cdsmithma@2001:470:69fc:105::284) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | Soft | (~soft-matr@2001:470:69fc:105::c75) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | ac | (~aloiscoch@2001:470:69fc:105::65) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | amesgen[m] | (~amesgenam@2001:470:69fc:105::82b) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | kosmikus[m] | (~andresloe@2001:470:69fc:105::95d) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | Las[m] | (~lasmatrix@2001:470:69fc:105::74e) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | ru0mad[m] | (~ru0madmat@2001:470:69fc:105::9b2) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | jophish | (~jophish@2001:470:69fc:105::670) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | fgaz | (~fgaz@2001:470:69fc:105::842) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) (Write error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | thedward[m] | (~thedwardm@2001:470:69fc:105::f79) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | adziahel[m] | (~adziahelm@2001:470:69fc:105::b4d) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | srid[m] | (~sridmatri@2001:470:69fc:105::1c2) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | cdepillabout[m] | (~cdepillab@2001:470:69fc:105::3d3) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | Drezil | (~drezilkif@2001:470:69fc:105::7f8) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | tomferon[m] | (~tomferon@2001:470:69fc:105::268) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | fabfianda[m] | (~fabfianda@2001:470:69fc:105::6db) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | siraben | (~siraben@user/siraben) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | sm[m] | (~sm@plaintextaccounting/sm) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | kadoban | (~kadoban@user/kadoban) (Read error: Connection reset by peer) |
2021-06-09 10:35:20 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) (Read error: Connection reset by peer) |
2021-06-09 10:35:53 +0200 | thedward[m] | (~thedwardm@2001:470:69fc:105::f79) |
2021-06-09 10:35:54 +0200 | mastarija_ | (~mastarija@31.217.8.68) |
2021-06-09 10:36:20 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 250 seconds) |
2021-06-09 10:36:36 +0200 | ac | (~aloiscoch@2001:470:69fc:105::65) |
2021-06-09 10:36:36 +0200 | sm[m] | (~sm@plaintextaccounting/sm) |
2021-06-09 10:36:36 +0200 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) |
2021-06-09 10:36:36 +0200 | fgaz | (~fgaz@2001:470:69fc:105::842) |
2021-06-09 10:36:36 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) |
2021-06-09 10:36:36 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) |
2021-06-09 10:36:36 +0200 | psydroid | (~psydroidm@2001:470:69fc:105::165) |
2021-06-09 10:36:36 +0200 | fabfianda[m] | (~fabfianda@2001:470:69fc:105::6db) |
2021-06-09 10:36:36 +0200 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) |
2021-06-09 10:36:36 +0200 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) |
2021-06-09 10:36:36 +0200 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) |
2021-06-09 10:36:37 +0200 | Las[m] | (~lasmatrix@2001:470:69fc:105::74e) |
2021-06-09 10:36:37 +0200 | kadoban | (~kadoban@user/kadoban) |
2021-06-09 10:36:37 +0200 | jophish | (~jophish@2001:470:69fc:105::670) |
2021-06-09 10:36:38 +0200 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) |
2021-06-09 10:36:48 +0200 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) |
2021-06-09 10:36:48 +0200 | Morrow[m] | (~morrowmma@2001:470:69fc:105::1d0) |
2021-06-09 10:36:48 +0200 | srid[m] | (~sridmatri@2001:470:69fc:105::1c2) |
2021-06-09 10:36:48 +0200 | wallymathieu[m] | (~wallymath@2001:470:69fc:105::16ae) |
2021-06-09 10:36:48 +0200 | adziahel[m] | (~adziahelm@2001:470:69fc:105::b4d) |
2021-06-09 10:36:48 +0200 | amesgen[m] | (~amesgenam@2001:470:69fc:105::82b) |
2021-06-09 10:36:48 +0200 | kosmikus[m] | (~andresloe@2001:470:69fc:105::95d) |
2021-06-09 10:36:48 +0200 | hjulle[m] | (~hjullemat@2001:470:69fc:105::1dd) |
2021-06-09 10:36:48 +0200 | bb010g | (~bb010gmat@2001:470:69fc:105::9a5) |
2021-06-09 10:36:48 +0200 | cdepillabout[m] | (~cdepillab@2001:470:69fc:105::3d3) |
2021-06-09 10:36:48 +0200 | dualinverter[m] | (~dualinver@2001:470:69fc:105::16a7) |
2021-06-09 10:36:48 +0200 | tomferon[m] | (~tomferon@2001:470:69fc:105::268) |
2021-06-09 10:36:48 +0200 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) |
2021-06-09 10:36:48 +0200 | Drezil | (~drezilkif@2001:470:69fc:105::7f8) |
2021-06-09 10:36:49 +0200 | bryan[m] | (~bchreekat@2001:470:69fc:105::16b5) |
2021-06-09 10:36:49 +0200 | Soft | (~soft-matr@2001:470:69fc:105::c75) |
2021-06-09 10:36:49 +0200 | eddiemundo | (~eddiemund@2001:470:69fc:105::a9c) |
2021-06-09 10:36:49 +0200 | autrim64[m] | (~autrim64m@2001:470:69fc:105::16a1) |
2021-06-09 10:36:50 +0200 | cdsmith | (~cdsmithma@2001:470:69fc:105::284) |
2021-06-09 10:36:50 +0200 | jaror[m] | (~jaror@2001:470:69fc:105::265) |
2021-06-09 10:36:50 +0200 | ru0mad[m] | (~ru0madmat@2001:470:69fc:105::9b2) |
2021-06-09 10:36:51 +0200 | oak- | (~oakuniver@2001:470:69fc:105::fcd) |
2021-06-09 10:37:33 +0200 | Bartosz | (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-09 10:38:56 +0200 | mastarija | (~mastarija@31.217.11.88) (Ping timeout: 250 seconds) |
2021-06-09 10:39:19 +0200 | ubert | (~Thunderbi@p200300ecdf259da7d446db1a2ac53d1c.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-06-09 10:41:49 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-09 10:41:59 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-09 10:42:24 +0200 | <yushyin> | thyriaen: https://www.cis.upenn.edu/~cis194/spring13/lectures.html https://github.com/system-f/fp-course ( https://wiki.haskell.org/Tutorials ) |
2021-06-09 10:42:25 +0200 | siraben | (~siraben@user/siraben) |
2021-06-09 10:43:05 +0200 | <dminuoso> | @where learning |
2021-06-09 10:43:05 +0200 | <lambdabot> | I know nothing about learning. |
2021-06-09 10:43:07 +0200 | <dminuoso> | @where learn |
2021-06-09 10:43:07 +0200 | <lambdabot> | https://wiki.haskell.org/Learning_Haskell |
2021-06-09 10:43:18 +0200 | <thyriaen> | thanks |
2021-06-09 10:43:32 +0200 | ikex | (~ash@user/ikex) (Ping timeout: 264 seconds) |
2021-06-09 10:47:14 +0200 | yoctocell | (~user@h87-96-130-155.cust.a3fiber.se) |
2021-06-09 10:48:10 +0200 | yd502_ | (~yd502@180.168.212.6) |
2021-06-09 10:48:18 +0200 | benin033 | (~benin@183.82.206.233) |
2021-06-09 10:48:33 +0200 | benin03 | (~benin@183.82.206.233) (Ping timeout: 252 seconds) |
2021-06-09 10:48:33 +0200 | benin033 | benin03 |
2021-06-09 10:48:38 +0200 | yoctocell | (~user@h87-96-130-155.cust.a3fiber.se) (Client Quit) |
2021-06-09 10:48:58 +0200 | <dmwit> | dexterfoo: What's wrong with `:r\n:!clear\nmain\n`? |
2021-06-09 10:49:24 +0200 | nsilv | (~nsilv@212.103.198.210) (Ping timeout: 244 seconds) |
2021-06-09 10:49:49 +0200 | <dmwit> | (NB I'm not claiming that meets your needs. I just don't know what your needs are and this is my best idea about how to find them out.) |
2021-06-09 10:50:15 +0200 | yd502__ | (~yd502@58.32.9.235) |
2021-06-09 10:51:28 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
2021-06-09 10:53:28 +0200 | yd502_ | (~yd502@180.168.212.6) (Ping timeout: 272 seconds) |
2021-06-09 10:53:39 +0200 | yoctocell | (~yoctocell@h87-96-130-155.cust.a3fiber.se) |
2021-06-09 10:54:18 +0200 | wonko | (~wjc@62.115.229.50) |
2021-06-09 10:56:41 +0200 | nsilv | (~nsilv@212.103.198.210) |
2021-06-09 10:56:42 +0200 | dhil | (~dhil@195.213.192.47) |
2021-06-09 11:00:35 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-09 11:00:38 +0200 | thyriaen | (~thyriaen@45.178.73.238) (Quit: Leaving) |
2021-06-09 11:01:04 +0200 | yoctocell | (~yoctocell@h87-96-130-155.cust.a3fiber.se) (Remote host closed the connection) |
2021-06-09 11:02:00 +0200 | yoctocell | (~yoctocell@h87-96-130-155.cust.a3fiber.se) |
2021-06-09 11:03:09 +0200 | yd502__ | (~yd502@58.32.9.235) (Ping timeout: 244 seconds) |
2021-06-09 11:04:17 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 272 seconds) |
2021-06-09 11:04:35 +0200 | yd502__ | (~yd502@58.32.9.235) |
2021-06-09 11:05:03 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2021-06-09 11:10:34 +0200 | kris | (~quassel@82-69-3-58.dsl.in-addr.zen.co.uk) |
2021-06-09 11:10:58 +0200 | kris | (~quassel@82-69-3-58.dsl.in-addr.zen.co.uk) (Client Quit) |
2021-06-09 11:11:01 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
2021-06-09 11:11:37 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 244 seconds) |
2021-06-09 11:11:59 +0200 | yoctocell | (~yoctocell@h87-96-130-155.cust.a3fiber.se) (Remote host closed the connection) |
2021-06-09 11:12:22 +0200 | zelmac | (~quassel@82-69-3-58.dsl.in-addr.zen.co.uk) |
2021-06-09 11:14:01 +0200 | ddellacosta | (~ddellacos@89.46.62.112) |
2021-06-09 11:14:30 +0200 | <tomsmeding> | dexterfoo: in case it doesn't, what about `:def R \_ -> Prelude.return (":r\n:!clear\nmain\n")`? Then :R runs that |
2021-06-09 11:15:20 +0200 | <jophish> | The topic here needs updating, the matrix bridge is up and running |
2021-06-09 11:15:29 +0200 | <jophish> | ignore that if you can't see my messages |
2021-06-09 11:15:46 +0200 | jrm | (~jrm@156.34.187.65) (Read error: Connection reset by peer) |
2021-06-09 11:15:49 +0200 | <tomsmeding> | jophish: I can :) |
2021-06-09 11:15:59 +0200 | nsilv | (~nsilv@212.103.198.210) (Remote host closed the connection) |
2021-06-09 11:16:02 +0200 | <tomsmeding> | but isn't it in some kind of beta state? |
2021-06-09 11:16:18 +0200 | jrm | (~jrm@156.34.187.65) |
2021-06-09 11:17:55 +0200 | <jophish> | oh, perhaps |
2021-06-09 11:18:56 +0200 | ddellacosta | (~ddellacos@89.46.62.112) (Ping timeout: 264 seconds) |
2021-06-09 11:21:55 +0200 | mastarija__ | (~mastarija@46.188.129.109) |
2021-06-09 11:22:42 +0200 | yd502__ | (~yd502@58.32.9.235) (Ping timeout: 250 seconds) |
2021-06-09 11:22:59 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
2021-06-09 11:23:15 +0200 | koishi_ | (~koishi_@160.16.113.140) |
2021-06-09 11:23:32 +0200 | nsilv | (~nsilv@212.103.198.210) |
2021-06-09 11:23:51 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 11:24:46 +0200 | pagnol | (~user@014198154145.ctinets.com) |
2021-06-09 11:25:05 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-09 11:25:32 +0200 | mastarija_ | (~mastarija@31.217.8.68) (Ping timeout: 264 seconds) |
2021-06-09 11:25:33 +0200 | xprlgjf | (~gavin@60.27.93.209.dyn.plus.net) |
2021-06-09 11:26:11 +0200 | yoctocell | (~yoctocell@h87-96-130-155.cust.a3fiber.se) |
2021-06-09 11:27:39 +0200 | nsilv | (~nsilv@212.103.198.210) (Client Quit) |
2021-06-09 11:28:06 +0200 | Bartosz | (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-09 11:28:43 +0200 | <gentauro> | If I try to subscract 1 from each value in a list: `map ((-) 1) [1 .. 10]` why is this not equal `[0 .. 9]`? |
2021-06-09 11:28:58 +0200 | <gentauro> | oh |
2021-06-09 11:29:09 +0200 | <wallymathieu[m]> | Hi gentauro |
2021-06-09 11:29:11 +0200 | <gentauro> | `(-) 1 x` got it |
2021-06-09 11:29:30 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-06-09 11:29:51 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 11:30:03 +0200 | <gentauro> | wallymathieu[m]: hi |
2021-06-09 11:30:15 +0200 | <involans> | @gentauro: you might want to user `subtract` here |
2021-06-09 11:30:15 +0200 | <lambdabot> | Unknown command, try @list |
2021-06-09 11:30:37 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-06-09 11:30:39 +0200 | <involans> | `map (subtract 1) [1 .. 10]` |
2021-06-09 11:31:24 +0200 | <dexterfoo> | dmwit: this doesn't seem to work :| tomsmeding: thanks this works! |
2021-06-09 11:31:44 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-06-09 11:31:54 +0200 | <gentauro> | involans: do you know why `(flip (-) 1)` doesn't work? |
2021-06-09 11:32:12 +0200 | <gentauro> | oh, it does :) |
2021-06-09 11:32:50 +0200 | <involans> | Yes - was about to say :) `subtract === flip (-)` |
2021-06-09 11:33:01 +0200 | bramhaag | (~bramhaag@endeavour.servers.alpaca.engineer) (Ping timeout: 265 seconds) |
2021-06-09 11:34:23 +0200 | chddr | (~Thunderbi@31.148.23.125) |
2021-06-09 11:34:38 +0200 | yd502 | (~yd502@180.168.212.6) |
2021-06-09 11:35:18 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-06-09 11:35:42 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 11:36:03 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-09 11:37:23 +0200 | <yushyin> | or (- 1) with -XLexicalNegation :) |
2021-06-09 11:40:48 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2021-06-09 11:40:55 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3429:27e5:c9dc:b9d2) |
2021-06-09 11:41:13 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-06-09 11:41:32 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 11:42:52 +0200 | nsilv | (~nsilv@212.103.198.210) |
2021-06-09 11:45:12 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-09 11:45:32 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3429:27e5:c9dc:b9d2) (Ping timeout: 268 seconds) |
2021-06-09 11:46:35 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-06-09 11:46:44 +0200 | chomwitt | (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Ping timeout: 245 seconds) |
2021-06-09 11:47:24 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 11:48:54 +0200 | emliunix_ | (~emliunix@b4kebweac68.route-server.jp) (Remote host closed the connection) |
2021-06-09 11:52:54 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-06-09 11:53:17 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 11:56:11 +0200 | bramhaag | (~bramhaag@134.195.121.39) |
2021-06-09 11:56:40 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-09 11:58:40 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-06-09 11:59:16 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 12:00:07 +0200 | <involans> | ooh, `LexicalNegation` looks great. Thanks yushyin |
2021-06-09 12:00:45 +0200 | jippiedoe | (~david@77-171-152-62.fixed.kpn.net) |
2021-06-09 12:02:26 +0200 | abraham | (~abraham@173.239.198.148) |
2021-06-09 12:04:21 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-09 12:04:27 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-06-09 12:05:11 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 12:06:44 +0200 | Torro | (Torro@gateway/vpn/protonvpn/torro) |
2021-06-09 12:09:00 +0200 | Erutuon | (~Erutuon@user/erutuon) (Quit: WeeChat 2.8) |
2021-06-09 12:09:12 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-09 12:09:37 +0200 | pbrisbin | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) |
2021-06-09 12:10:22 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-06-09 12:11:13 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 12:12:09 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:69cc:8900:882e:bc6e) (Ping timeout: 245 seconds) |
2021-06-09 12:12:34 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2021-06-09 12:13:24 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2021-06-09 12:16:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-06-09 12:16:56 +0200 | abraham | (~abraham@173.239.198.148) (Quit: Textual IRC Client: www.textualapp.com) |
2021-06-09 12:17:02 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 12:18:55 +0200 | agumonke` | (~user@88.160.31.174) |
2021-06-09 12:22:04 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-06-09 12:22:42 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 12:23:10 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Quit: Leaving) |
2021-06-09 12:23:33 +0200 | brandonh | (~brandonh@151.44.80.15) (Read error: Connection reset by peer) |
2021-06-09 12:26:22 +0200 | poljar1 | (~poljar@93-141-130-48.adsl.net.t-com.hr) |
2021-06-09 12:27:50 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-06-09 12:28:07 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 12:28:19 +0200 | Clint_ | Clint |
2021-06-09 12:28:21 +0200 | brandonh | (~brandonh@151.44.23.230) |
2021-06-09 12:28:34 +0200 | poljar | (~poljar@93-139-12-109.adsl.net.t-com.hr) (Ping timeout: 250 seconds) |
2021-06-09 12:30:57 +0200 | brandonh | (~brandonh@151.44.23.230) (Client Quit) |
2021-06-09 12:31:13 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-06-09 12:31:24 +0200 | agumonke` | (~user@88.160.31.174) (Ping timeout: 252 seconds) |
2021-06-09 12:31:25 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-09 12:33:36 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-06-09 12:35:37 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-09 12:35:56 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 250 seconds) |
2021-06-09 12:36:25 +0200 | mrufrufin | (~dxk@108.235.170.90) () |
2021-06-09 12:37:00 +0200 | nsilv | (~nsilv@212.103.198.210) (Ping timeout: 245 seconds) |
2021-06-09 12:40:04 +0200 | niko | (~niko@libera/staff/niko) (Remote host closed the connection) |
2021-06-09 12:40:36 +0200 | niko | (~niko@libera/staff/niko) |
2021-06-09 12:41:18 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-06-09 12:41:19 +0200 | fabfianda | (~fabfianda@net-93-148-121-206.cust.dsl.teletu.it) (Ping timeout: 245 seconds) |
2021-06-09 12:41:31 +0200 | RohitGoswami[m] | (~rgoswamim@2001:470:69fc:105::16cc) |
2021-06-09 12:41:46 +0200 | fabfianda | (~fabfianda@mob-5-90-253-108.net.vodafone.it) |
2021-06-09 12:42:01 +0200 | hmmmas | (~chenqisu1@183.217.201.236) (Quit: Leaving.) |
2021-06-09 12:42:20 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3429:27e5:c9dc:b9d2) |
2021-06-09 12:43:54 +0200 | yd502 | (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
2021-06-09 12:44:08 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-06-09 12:45:50 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) |
2021-06-09 12:46:51 +0200 | koishi_ | (~koishi_@160.16.113.140) (Quit: /ragequit) |
2021-06-09 12:47:12 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3429:27e5:c9dc:b9d2) (Ping timeout: 268 seconds) |
2021-06-09 12:47:44 +0200 | <raehik> | Years ago there was a handy GHC plugin framework HERMIT. I'm interested in using it but can't get it to build with GHC 8.10 (originally for 7.10? lots of functions now missing). Anyone here who may know more about HERMIT and possibility of using it in 2021? |
2021-06-09 12:48:24 +0200 | _________ | (~nobody@user//x-7881368) (Ping timeout: 245 seconds) |
2021-06-09 12:48:45 +0200 | <gentauro> | involans: hmmm, `-1` should be a number and `- 1` should be a function awaiting for it's second value |
2021-06-09 12:49:06 +0200 | <gentauro> | I mean, you don't write a decimal number like this: `10 . 24` |
2021-06-09 12:50:51 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 12:51:12 +0200 | poljar | (~poljar@93-143-149-172.adsl.net.t-com.hr) |
2021-06-09 12:51:17 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-09 12:51:20 +0200 | koishi_ | (~koishi_@185.209.85.134) |
2021-06-09 12:52:50 +0200 | wonko | (~wjc@62.115.229.50) (Ping timeout: 250 seconds) |
2021-06-09 12:53:07 +0200 | <maerwald> | a single whitespace deciding on semantics is a dangerous path |
2021-06-09 12:53:42 +0200 | poljar1 | (~poljar@93-141-130-48.adsl.net.t-com.hr) (Ping timeout: 250 seconds) |
2021-06-09 12:54:20 +0200 | <tomsmeding> | raehik: does it talk to the GHC library interface? If so, I think making it work with the GHC api of a few years later is basically impossible without a rewrite |
2021-06-09 12:54:54 +0200 | <yushyin> | gentauro: you can have that since ghc9.0.1 and LexicalNegation extension |
2021-06-09 12:55:06 +0200 | <tomsmeding> | unless it uses a very limited portion of the api or something |
2021-06-09 12:55:29 +0200 | <yushyin> | gentauro: https://downloads.haskell.org/ghc/9.0.1/docs/html/users_guide/exts/lexical_negation.html#extension… |
2021-06-09 12:55:35 +0200 | _________ | (~nobody@user//x-7881368) |
2021-06-09 12:56:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-06-09 12:56:23 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 12:56:34 +0200 | <raehik> | tomsmeding: yes it does seem to hook in quite deep into GHC |
2021-06-09 12:56:36 +0200 | dyniec_ | dyniec |
2021-06-09 12:56:50 +0200 | <raehik> | most of the now-missing functions and constructors left in 8.0 - 8.4 :( |
2021-06-09 12:58:35 +0200 | dyniec | (~dyniec@mail.dybiec.info) (Quit: WeeChat 3.0) |
2021-06-09 12:58:46 +0200 | dyniec | (~dyniec@mail.dybiec.info) |
2021-06-09 13:02:42 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 244 seconds) |
2021-06-09 13:02:48 +0200 | pbrisbin | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (Ping timeout: 250 seconds) |
2021-06-09 13:03:14 +0200 | jespada_ | (~jespada@90.254.242.55) (Ping timeout: 250 seconds) |
2021-06-09 13:05:12 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-06-09 13:05:19 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 252 seconds) |
2021-06-09 13:06:19 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 268 seconds) |
2021-06-09 13:06:30 +0200 | jespada | (~jespada@90.254.242.55) |
2021-06-09 13:06:38 +0200 | agumonke` | (~user@88.160.31.174) |
2021-06-09 13:10:52 +0200 | koishi_ | (~koishi_@185.209.85.134) (Quit: /ragequit) |
2021-06-09 13:11:00 +0200 | Cajun | (~Cajun@ip98-163-211-112.no.no.cox.net) (Ping timeout: 250 seconds) |
2021-06-09 13:11:23 +0200 | maerwald | (~maerwald@user/maerwald) (Quit: gone) |
2021-06-09 13:11:54 +0200 | maerwald | (~maerwald@mail.hasufell.de) |
2021-06-09 13:14:03 +0200 | maerwald | (~maerwald@mail.hasufell.de) (Changing host) |
2021-06-09 13:14:03 +0200 | maerwald | (~maerwald@user/maerwald) |
2021-06-09 13:15:09 +0200 | ddellacosta | (~ddellacos@89.46.62.17) |
2021-06-09 13:15:10 +0200 | sciencentistguy | (~sciencent@hacksoc/ordinary-member) |
2021-06-09 13:15:23 +0200 | <gentauro> | 12:53 < maerwald> a single whitespace deciding on semantics is a dangerous path |
2021-06-09 13:15:25 +0200 | <gentauro> | howcome? |
2021-06-09 13:15:35 +0200 | <gentauro> | we do it for decimal numbers right? |
2021-06-09 13:15:48 +0200 | <maerwald> | gentauro: bugs |
2021-06-09 13:15:51 +0200 | <gentauro> | `10.24` is valid while `10 . 24` isn't |
2021-06-09 13:16:08 +0200 | <merijn> | hah |
2021-06-09 13:16:15 +0200 | <merijn> | that's what you think |
2021-06-09 13:16:18 +0200 | <merijn> | :t 10 . 24 |
2021-06-09 13:16:19 +0200 | <lambdabot> | (Num (b -> c), Num (a -> b)) => a -> c |
2021-06-09 13:16:39 +0200 | <gentauro> | maerwald: I understand it would be problematic for `backwards compatibility` reasons |
2021-06-09 13:16:44 +0200 | <gentauro> | merijn: :o |
2021-06-09 13:16:44 +0200 | <maerwald> | no, bugs |
2021-06-09 13:17:13 +0200 | <gentauro> | :t 1 2 7 |
2021-06-09 13:17:14 +0200 | <lambdabot> | (Num t1, Num t2, Num (t1 -> t2 -> t3)) => t3 |
2021-06-09 13:17:19 +0200 | <gentauro> | :| |
2021-06-09 13:17:21 +0200 | <gentauro> | what was that? |
2021-06-09 13:17:23 +0200 | <merijn> | maerwald: tbh, the biggest flaw in haskell is allowing operators without whitespace around them |
2021-06-09 13:17:23 +0200 | <gentauro> | I mean |
2021-06-09 13:17:27 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:fef:c229:4466:542) |
2021-06-09 13:17:28 +0200 | <maerwald> | Compare with rusts misfeature of omitting `return` when the last line doesn't end with a `;` |
2021-06-09 13:17:35 +0200 | brandonh | (~brandonh@151.46.91.125) |
2021-06-09 13:17:40 +0200 | <merijn> | gentauro: "1 :: Num a => a" there is no reason 'a' can't be a function |
2021-06-09 13:17:42 +0200 | <maerwald> | so now you have to BLINK every time at the end of a function body |
2021-06-09 13:17:52 +0200 | <maerwald> | to be sure you don't miss the damn `;` |
2021-06-09 13:17:55 +0200 | <maerwald> | or the lack thereof |
2021-06-09 13:17:56 +0200 | <merijn> | In fact, Num instances exist for functions |
2021-06-09 13:18:11 +0200 | <gentauro> | merijn: `λ> 1 . 2 <interactive>:2:1: error: ` |
2021-06-09 13:18:17 +0200 | <gentauro> | I get an error with my `ghci` |
2021-06-09 13:18:23 +0200 | <gentauro> | do I need to enable `stuff`? |
2021-06-09 13:18:30 +0200 | <merijn> | maerwald: If we had just specified Haskell from the start to make whitespace mandatory around operators 90% of these problems where nonexistent |
2021-06-09 13:18:37 +0200 | <merijn> | gentauro: It's an error because functions aren't printable |
2021-06-09 13:18:45 +0200 | <merijn> | > 1 . 2 -- this errors too |
2021-06-09 13:18:47 +0200 | <lambdabot> | error: |
2021-06-09 13:18:47 +0200 | <lambdabot> | • Could not deduce (Num (b0 -> c)) |
2021-06-09 13:18:47 +0200 | <lambdabot> | (maybe you haven't applied a function to enough arguments?) |
2021-06-09 13:18:57 +0200 | <merijn> | Because there's no Num instance for functions in scope |
2021-06-09 13:19:04 +0200 | <gentauro> | merijn: yeah, but my point was that: |
2021-06-09 13:19:05 +0200 | <gentauro> | > 1.2 |
2021-06-09 13:19:07 +0200 | <lambdabot> | 1.2 |
2021-06-09 13:19:11 +0200 | <gentauro> | is a decimal number |
2021-06-09 13:19:14 +0200 | <dminuoso> | This suggestion "maybe you haven't applied..." is particularly helpful here, merijn! |
2021-06-09 13:19:15 +0200 | <gentauro> | while |
2021-06-09 13:19:18 +0200 | <gentauro> | > 1 . 2 |
2021-06-09 13:19:20 +0200 | <lambdabot> | error: |
2021-06-09 13:19:20 +0200 | <lambdabot> | • Could not deduce (Num (b0 -> c)) |
2021-06-09 13:19:20 +0200 | <lambdabot> | (maybe you haven't applied a function to enough arguments?) |
2021-06-09 13:19:22 +0200 | <gentauro> | becomes a function |
2021-06-09 13:19:24 +0200 | <dminuoso> | (I know where it comes from, but it can be terribly deceiving) |
2021-06-09 13:19:30 +0200 | <merijn> | gentauro: "1 . 2" is valid Haskell expression that can compile just by importing a module |
2021-06-09 13:19:42 +0200 | ddellacosta | (~ddellacos@89.46.62.17) (Ping timeout: 250 seconds) |
2021-06-09 13:19:44 +0200 | <maerwald> | gentauro: in sufficiently polymorphic code, both may compile |
2021-06-09 13:19:53 +0200 | <merijn> | gentauro: https://hackage.haskell.org/package/NumInstances |
2021-06-09 13:20:10 +0200 | <maerwald> | I've had impossible to guess bugs in lens code too, where you'd think it should have been an error |
2021-06-09 13:20:16 +0200 | <maerwald> | but it wasn't |
2021-06-09 13:20:33 +0200 | <merijn> | The other mistakes in Haskell was having unary - |
2021-06-09 13:21:22 +0200 | <merijn> | I swear, we could massively improve Haskell with a time machine, AMP proposal, and the sane plan for mandatory whitespace around operators and removing unary - |
2021-06-09 13:21:43 +0200 | <gentauro> | merijn: do you want to start over again? |
2021-06-09 13:21:45 +0200 | <gentauro> | xD |
2021-06-09 13:21:49 +0200 | <merijn> | Yes |
2021-06-09 13:21:51 +0200 | <maerwald> | merijn: nah, we're busy implementing type level features... no time for cleaning up the language |
2021-06-09 13:22:16 +0200 | <gentauro> | is this how Java become Java? :o |
2021-06-09 13:22:19 +0200 | <dminuoso> | % fix 1 |
2021-06-09 13:22:19 +0200 | <yahb> | dminuoso: ; <interactive>:3:1: error:; * No instance for (Num (() -> ())) arising from a use of `it'; (maybe you haven't applied a function to enough arguments?); * In the first argument of `print', namely `it'; In a stmt of an interactive GHCi command: print it |
2021-06-09 13:22:21 +0200 | <merijn> | maerwald: Can't really clean up some of these issues without Python2-to-3 scenarios, because old code might break |
2021-06-09 13:22:25 +0200 | <dminuoso> | % fix 1 |
2021-06-09 13:22:28 +0200 | <maerwald> | :: for kind signatures is confusing af for me |
2021-06-09 13:22:30 +0200 | <yahb> | dminuoso: [Timed out] |
2021-06-09 13:22:32 +0200 | <dminuoso> | Here. Compiles and runs just fine! |
2021-06-09 13:22:38 +0200 | <gentauro> | :t fix |
2021-06-09 13:22:39 +0200 | <lambdabot> | (a -> a) -> a |
2021-06-09 13:22:40 +0200 | <merijn> | maerwald: TypeInType is crazy nonsense, tbh |
2021-06-09 13:22:44 +0200 | <dminuoso> | If you ever want to fix your numbers, that's the way to go. |
2021-06-09 13:22:47 +0200 | <gentauro> | :t fix 1 |
2021-06-09 13:22:48 +0200 | <lambdabot> | Num (a -> a) => a |
2021-06-09 13:23:07 +0200 | <gentauro> | to `fix 1` equals infinite recursion? |
2021-06-09 13:23:15 +0200 | <merijn> | "maybe" |
2021-06-09 13:23:56 +0200 | <DigitalKiwi> | what is fix |
2021-06-09 13:24:06 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-06-09 13:24:19 +0200 | <dminuoso> | DigitalKiwi: think of it as a tool to create anonymous loops |
2021-06-09 13:24:25 +0200 | <dminuoso> | or anonymous recursion, rather |
2021-06-09 13:24:56 +0200 | edwtjo | (~edwtjo@user/edwtjo) (Quit: WeeChat 3.0) |
2021-06-09 13:25:02 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-06-09 13:25:11 +0200 | <dminuoso> | `ones = 1 : ones` requires a binding, so this is named recursion. Or you can just write `fix (1:)` |
2021-06-09 13:25:22 +0200 | <dminuoso> | (Ignoring tying-the-not here, which you should do) |
2021-06-09 13:25:29 +0200 | <merijn> | DigitalKiwi: fix is the most primitive distilled form of recursion |
2021-06-09 13:25:50 +0200 | <merijn> | DigitalKiwi: Any recursive function can be rewritten as fix + non-recursive function |
2021-06-09 13:26:02 +0200 | <dminuoso> | And any use of fix can be turned into just simple recursion. |
2021-06-09 13:26:19 +0200 | <merijn> | DigitalKiwi: See: https://gist.github.com/merijn/b86649a6aa21bd140803 |
2021-06-09 13:26:30 +0200 | <dminuoso> | One part where fix is particularly handy, is you have a data type and want to create mutually referencing fields |
2021-06-09 13:26:31 +0200 | <Taneb> | merijn: being pedantic, I'm not sure all instances of recursion can be written that way. In particular, polymorphic recursion fails |
2021-06-09 13:27:02 +0200 | <dminuoso> | You can just write `fix $ \d -> Data { f1 = [1,2,3]; f2 = [2,3,4]; f3 = f1 d <> f2 d }` for example |
2021-06-09 13:27:06 +0200 | <merijn> | Taneb: polymorphic recursion requires typeclasses or some such anyway, no? |
2021-06-09 13:27:15 +0200 | <Taneb> | No? Let me write something |
2021-06-09 13:27:16 +0200 | zelmac | (~quassel@82-69-3-58.dsl.in-addr.zen.co.uk) (Quit: zelmac) |
2021-06-09 13:27:17 +0200 | chddr | (~Thunderbi@31.148.23.125) (Ping timeout: 268 seconds) |
2021-06-09 13:27:25 +0200 | <dminuoso> | (This is compact and eloquent, and will use sharing) |
2021-06-09 13:28:55 +0200 | <Taneb> | merijn: https://gist.github.com/Taneb/e17d338384a62297002983e123d8d59d |
2021-06-09 13:29:01 +0200 | <dminuoso> | mfix is far more interesting than fix I think |
2021-06-09 13:29:27 +0200 | <dminuoso> | fix is just handy, but mfix can do things that take a lot more effort than without |
2021-06-09 13:29:57 +0200 | <Taneb> | merijn: I don't think it's possible to write "size" there with fix and a non-recursive function |
2021-06-09 13:29:57 +0200 | <tomsmeding> | maerwald: out of context reply, but re the semicolon issue on the last line with rust: it's not going to typecheck when you make the wrong decision in at most one place, I think |
2021-06-09 13:30:03 +0200 | <Taneb> | Happy to be proven wrong here |
2021-06-09 13:30:27 +0200 | <maerwald> | tomsmeding: it hinders reading flow |
2021-06-09 13:30:31 +0200 | <tomsmeding> | not sure if it's possible to conceive a situation where getting two semicolons wrong makes a type correct program again |
2021-06-09 13:30:45 +0200 | <merijn> | Taneb: hmm, maybe |
2021-06-09 13:31:02 +0200 | <tomsmeding> | agree about the incongruity with the rest of the imperative language though; go full let...in or have a return keyword |
2021-06-09 13:31:07 +0200 | <merijn> | Taneb: You're probably right, but I'm too tired to dedicate any brain cycles too considering a way around it :p |
2021-06-09 13:31:08 +0200 | <hpc> | DigitalKiwi: since it hasn't been mentioned yet, the easiest way to understand fix is that fix (\f -> expression that mentions f) is analogous to f = expression that mentions f |
2021-06-09 13:31:27 +0200 | <merijn> | hpc: I already did that via my map implementation above ;) |
2021-06-09 13:31:34 +0200 | <dminuoso> | hpc: modulo knot tying! |
2021-06-09 13:31:39 +0200 | <Taneb> | merijn: I believe this kind of recursion is invalid in ML, incidentally, but Haskell accepts it without complaint |
2021-06-09 13:31:52 +0200 | pavonia | (~user@user/siracusa) |
2021-06-09 13:31:56 +0200 | <dminuoso> | Which I think should still be mentioned. If you naively write `f = expression that mentions f` your stack will suffer |
2021-06-09 13:32:07 +0200 | <dminuoso> | With fix it wouldnt |
2021-06-09 13:33:12 +0200 | <merijn> | dminuoso: huh? |
2021-06-09 13:33:14 +0200 | <merijn> | dminuoso: Why? |
2021-06-09 13:33:26 +0200 | hmmmas | (~chenqisu1@183.217.201.236) |
2021-06-09 13:33:41 +0200 | <dminuoso> | mmm |
2021-06-09 13:33:47 +0200 | <dminuoso> | ah I guess it wouldnt |
2021-06-09 13:33:51 +0200 | <tomsmeding> | @src fix |
2021-06-09 13:33:51 +0200 | <lambdabot> | fix f = let x = f x in x |
2021-06-09 13:34:32 +0200 | nschoe | (~quassel@178.251.84.79) (Ping timeout: 264 seconds) |
2021-06-09 13:35:20 +0200 | <tomsmeding> | looks like it would be exactly the same, to me |
2021-06-09 13:35:32 +0200 | koishi_ | (~koishi_@67.209.186.120.16clouds.com) |
2021-06-09 13:35:34 +0200 | <dminuoso> | Yeah, I think I misremembered something. |
2021-06-09 13:35:41 +0200 | <dminuoso> | @src cycle |
2021-06-09 13:35:41 +0200 | <lambdabot> | cycle [] = undefined |
2021-06-09 13:35:41 +0200 | <lambdabot> | cycle xs = xs' where xs' = xs ++ xs' |
2021-06-09 13:35:44 +0200 | fabfianda | (~fabfianda@mob-5-90-253-108.net.vodafone.it) (Ping timeout: 250 seconds) |
2021-06-09 13:35:52 +0200 | <dminuoso> | Maybe my brain was wired wrong with this in mind |
2021-06-09 13:36:00 +0200 | fabfianda | (~fabfianda@net-93-148-121-206.cust.vodafonedsl.it) |
2021-06-09 13:36:30 +0200 | <merijn> | yeah |
2021-06-09 13:36:39 +0200 | koishi_ | (~koishi_@67.209.186.120.16clouds.com) (Remote host closed the connection) |
2021-06-09 13:36:42 +0200 | <merijn> | "cycle xs = xs ++ cycle xs" is where you'd lose sharing |
2021-06-09 13:36:58 +0200 | <tomsmeding> | ooooo right sharing |
2021-06-09 13:37:38 +0200 | benin03 | (~benin@183.82.206.233) (Ping timeout: 244 seconds) |
2021-06-09 13:41:14 +0200 | <merijn> | but the problem here is the sharing of the *result* of the recursion, rather than the function itself |
2021-06-09 13:43:32 +0200 | <dminuoso> | That makes sense |
2021-06-09 13:43:58 +0200 | agumonke` | (~user@88.160.31.174) (Ping timeout: 250 seconds) |
2021-06-09 13:44:01 +0200 | boxscape | (~boxscape@user/boxscape) |
2021-06-09 13:49:53 +0200 | kenran | (~kenran@200116b82b683c006ea54bdc3ffd5a0f.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
2021-06-09 13:50:42 +0200 | curiousgay | (~quassel@178.217.208.8) (Ping timeout: 264 seconds) |
2021-06-09 13:52:39 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-06-09 13:53:08 +0200 | Natch | (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Ping timeout: 264 seconds) |
2021-06-09 13:54:25 +0200 | <DigitalKiwi> | what is sharing |
2021-06-09 13:54:59 +0200 | Natch | (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) |
2021-06-09 13:56:00 +0200 | um | (niahifz5l1@user/um) |
2021-06-09 13:56:10 +0200 | um | (niahifz5l1@user/um) () |
2021-06-09 13:56:43 +0200 | hmmmas | (~chenqisu1@183.217.201.236) (Quit: Leaving.) |
2021-06-09 13:56:59 +0200 | <tomsmeding> | let x = complicated_stuff in x + x |
2021-06-09 13:57:12 +0200 | <tomsmeding> | will only compute x once, because its result is _shared_ between its usages |
2021-06-09 13:57:30 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Ping timeout: 268 seconds) |
2021-06-09 13:57:38 +0200 | <tomsmeding> | let l = 1 : l in ... |
2021-06-09 13:57:52 +0200 | <tomsmeding> | there the list and its tail are shared (i.e. point to the same thing in memory) |
2021-06-09 13:57:59 +0200 | <dminuoso> | This is something you can only get with purity in the language. With an impure language, you demand the compiler prove this is a legit transformation., |
2021-06-09 13:58:34 +0200 | <dminuoso> | This might be a good teaser why unsafePerformIO can behave really unexpected, because GHC will make assumptions like the above. |
2021-06-09 13:59:03 +0200 | <dminuoso> | % cycle [1,2,3] |
2021-06-09 13:59:09 +0200 | <yahb> | dminuoso: [1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2 |
2021-06-09 13:59:12 +0200 | <boxscape> | dminuoso when you say "This", do you mean having the compiler automatically introduce sharing into an expression that wouldn't otherwise have it? |
2021-06-09 13:59:59 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-09 14:00:01 +0200 | renzhi | (~xp@2607:fa49:6500:bc00::e7b) |
2021-06-09 14:01:00 +0200 | <dminuoso> | boxscape: fsvo of "automatically", anyhow |
2021-06-09 14:01:06 +0200 | <boxscape> | ok |
2021-06-09 14:01:18 +0200 | pagnol | (~user@014198154145.ctinets.com) (Ping timeout: 250 seconds) |
2021-06-09 14:01:52 +0200 | andreypopp | (~andreypop@94.188.42.16) |
2021-06-09 14:02:57 +0200 | <merijn> | boxscape: CSE (Common Sub-expression Elimination) is an optimisation that exists in GHC, yes |
2021-06-09 14:03:09 +0200 | <boxscape> | right, okay |
2021-06-09 14:03:36 +0200 | <merijn> | boxscape: So if you write "(2 + 2) * (2 + 2)" ghc may decide to compile it as "let x = 2 + 2 in x * x" |
2021-06-09 14:03:59 +0200 | <boxscape> | I remember when I first read (I think in LYAH) that being lazy means every expression is evaluated at most once, I assumed that means CSE is applied to everything |
2021-06-09 14:04:21 +0200 | <boxscape> | (which of course was not at all what was meant by it) |
2021-06-09 14:04:32 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 264 seconds) |
2021-06-09 14:04:42 +0200 | <merijn> | boxscape: Well, that also gets is in the pedantic argument that Haskell is "non-strict" and *not* lazy ;) |
2021-06-09 14:04:51 +0200 | <boxscape> | yes, but I don't think LYAH made that distinction |
2021-06-09 14:04:57 +0200 | <merijn> | Probably not, no |
2021-06-09 14:05:12 +0200 | nsilv | (~nsilv@212.103.198.210) |
2021-06-09 14:06:21 +0200 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
2021-06-09 14:06:52 +0200 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2021-06-09 14:07:40 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-09 14:09:12 +0200 | <boxscape> | (looking at google though, it doesn't seem as though the phrase "at most once" appears in LYAH, actually. It does appear in that context in a few other places) |
2021-06-09 14:10:53 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-09 14:11:22 +0200 | V | (~v@anomalous.eu) (Quit: We're here. We're queer. Connection reset by peer) |
2021-06-09 14:11:55 +0200 | V | (~v@anomalous.eu) |
2021-06-09 14:13:16 +0200 | andreypopp | (~andreypop@94.188.42.16) (Textual IRC Client: www.textualapp.com) |
2021-06-09 14:14:33 +0200 | <boxscape> | LYAH does seem to say on the first page though that laziness implies fusion of list operations |
2021-06-09 14:16:31 +0200 | curiousgay | (~quassel@178.217.208.8) |
2021-06-09 14:17:25 +0200 | <boxscape> | also in another chapter: "Thanks to Haskell's laziness, even if you map something over a list several times and filter it several times, it will only pass over the list once." http://learnyouahaskell.com/higher-order-functions |
2021-06-09 14:17:30 +0200 | <boxscape> | which strikes me as wrong |
2021-06-09 14:17:33 +0200 | <int-e> | boxscape: not really... laziness means that doubleMe(doubleMe(doubleMe(xs))) is evaluated without ever fully evaluating the intermediate lists |
2021-06-09 14:18:12 +0200 | <int-e> | boxscape: fusion is about completely eliminating the intermediate lists; they don't even exist as a cons with unevaluated tail anymore |
2021-06-09 14:18:38 +0200 | <boxscape> | int-e yes, I'd agree with that, I think the text is ignoring that fusion is necessary at all though |
2021-06-09 14:19:01 +0200 | delYsid | (~user@84-115-55-45.cable.dynamic.surfer.at) |
2021-06-09 14:19:16 +0200 | <int-e> | maybe |
2021-06-09 14:19:51 +0200 | <boxscape> | (or rather, implying that you get fusion for free as soon as you have laziness) |
2021-06-09 14:20:58 +0200 | <int-e> | the text is imprecise because it focuses on the values of the list, ignoring its spine |
2021-06-09 14:21:19 +0200 | <boxscape> | yeah that's true |
2021-06-09 14:21:57 +0200 | tose | (~tose@ip-85-160-36-186.eurotel.cz) |
2021-06-09 14:23:53 +0200 | ddellacosta | (~ddellacos@86.106.121.83) |
2021-06-09 14:26:33 +0200 | <merijn> | Even without fusion laziness reduces the operational cost |
2021-06-09 14:26:43 +0200 | <merijn> | Since allocating and GCing in GHC is cheap |
2021-06-09 14:26:54 +0200 | <merijn> | not having to store the entire spine N times certainly matters |
2021-06-09 14:27:12 +0200 | <boxscape> | that's fair |
2021-06-09 14:27:43 +0200 | Torro | (Torro@gateway/vpn/protonvpn/torro) (Quit: leaving) |
2021-06-09 14:28:33 +0200 | ddellacosta | (~ddellacos@86.106.121.83) (Ping timeout: 252 seconds) |
2021-06-09 14:29:28 +0200 | <delYsid> | How do I run Haskell code at build-time to generate a datafile which will be includeed via file-embed? |
2021-06-09 14:30:01 +0200 | <delYsid> | I guess I need to hook into Setup.hs? But I didnt find any good examples yet. |
2021-06-09 14:32:42 +0200 | <merijn> | I would strongly advice on reconsidering at least one of those two >.> |
2021-06-09 14:33:55 +0200 | zebrag | (~chris@user/zebrag) |
2021-06-09 14:35:39 +0200 | <delYsid> | care to elaborate? |
2021-06-09 14:35:58 +0200 | <merijn> | Hooking Setup.hs is super brittle |
2021-06-09 14:36:01 +0200 | <xerox> | delYsid: looks like it, I found this https://cabal.readthedocs.io/en/3.4/cabal-package.html#autogenerated-modules-and-includes and an example in the wild https://github.com/ArgonDesign/acov/search?q=buildversion |
2021-06-09 14:36:11 +0200 | <merijn> | It will break lots of things, such as doctests, etc. |
2021-06-09 14:36:35 +0200 | <merijn> | delYsid: What kinda data do you need to embed? |
2021-06-09 14:36:49 +0200 | <delYsid> | merijn: So is there a better way then Setup.hs? |
2021-06-09 14:37:42 +0200 | <merijn> | Not if you need an external file. But then, if you are gonna generate the file at compile time, do you even need an external file? |
2021-06-09 14:38:13 +0200 | <delYsid> | merijn: I lookup table, essentially... The data is in a text file, and I'd like to move the parser step from runtime to compile-time, since decoding via the Binary instance is way faster... |
2021-06-09 14:38:43 +0200 | <delYsid> | s/I/A/ |
2021-06-09 14:38:58 +0200 | <merijn> | delYsid: But you can just generate your lookup table at compile and embed that, rather than using file-embed, no? |
2021-06-09 14:39:43 +0200 | <delYsid> | I dont understand. I was planning to use decode . embedFile |
2021-06-09 14:39:46 +0200 | <merijn> | file-embed lets you embed external file as ByteString. But TemplateHaskell is much more powerful than that, you can simply convert to your final data structure at compile time and embed that data structure |
2021-06-09 14:39:59 +0200 | <merijn> | delYsid: Right, but that's like, the worst of both worlds? |
2021-06-09 14:40:09 +0200 | <merijn> | delYsid: The decode still happens at runtime |
2021-06-09 14:40:37 +0200 | <delYsid> | true, but its less worse then what I currently have, which is running megaparsec at runtime |
2021-06-09 14:41:11 +0200 | <delYsid> | But I get the idea, however, I have to admit, I am afraid of TH. Whenever I touched it, I almost went mad. |
2021-06-09 14:41:12 +0200 | <merijn> | delYsid: Is your text file generated or static? |
2021-06-09 14:41:23 +0200 | <merijn> | delYsid: file-embed *is* TH, though :p |
2021-06-09 14:41:43 +0200 | pbrisbin | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) |
2021-06-09 14:42:00 +0200 | <delYsid> | Well, the text file is sort of static, yeah. |
2021-06-09 14:42:17 +0200 | <delYsid> | It might change sometime, but its not autogenerated. |
2021-06-09 14:42:37 +0200 | <merijn> | ok, then I think your initial question was already confusing |
2021-06-09 14:43:06 +0200 | <delYsid> | likely, my questions here tend to do that. |
2021-06-09 14:43:27 +0200 | <merijn> | delYsid: Your question parses as: I want to generate a text-file using Haskell code, then embed that file using file-embed. Which is a major PITA, because that'd involve hooking Setup.hs and some kinda preprocessor setup |
2021-06-09 14:43:41 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3429:27e5:c9dc:b9d2) |
2021-06-09 14:43:51 +0200 | <merijn> | delYsid: Whereas "I already have a file and want to embed that" is much less painful |
2021-06-09 14:44:12 +0200 | <merijn> | Because that can be done entirely in TH |
2021-06-09 14:45:52 +0200 | <merijn> | delYsid: If you have both "a text file" and "Haskell code that translates that file into whatever data structure you need at runtime", then doing that conversion in TH is fairly straightforward |
2021-06-09 14:45:54 +0200 | <delYsid> | Well, I know embedFile, and use it. All I want is to run the conversion from text to binary a build-time so that I can load a binary a runtime... I could as well commit the binary file to the repo, but thats ugly man. |
2021-06-09 14:46:38 +0200 | <merijn> | delYsid: Right, but how about this: Rather than than embedding the binary file, "read and convert" the text file at compile time and embed the resulting data structure |
2021-06-09 14:47:00 +0200 | <delYsid> | And pointers on getting me started on that? Its essentially a newtype'd HashMap... |
2021-06-09 14:47:27 +0200 | <merijn> | delYsid: Suppose your final (at runtime) data structure is "YourMap Foo Value" and you have "Text -> Either Error (YourMap Foo Value)" then things are "fairly" easy |
2021-06-09 14:47:42 +0200 | <merijn> | delYsid: Well, you'll want: https://hackage.haskell.org/package/template-haskell-2.17.0.0/docs/Language-Haskell-TH-Syntax.html… |
2021-06-09 14:48:12 +0200 | <merijn> | delYsid: liftTyped turns a *value* (at TH runtime, i.e. compile time) into the TH *representation* of that value |
2021-06-09 14:48:34 +0200 | <delYsid> | oh, neat |
2021-06-09 14:48:41 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3429:27e5:c9dc:b9d2) (Ping timeout: 268 seconds) |
2021-06-09 14:48:45 +0200 | <merijn> | delYsid: I've got a fun library showcasing this |
2021-06-09 14:48:48 +0200 | berberman_ | (~berberman@user/berberman) |
2021-06-09 14:49:04 +0200 | berberman | (~berberman@user/berberman) (Ping timeout: 272 seconds) |
2021-06-09 14:49:05 +0200 | <merijn> | delYsid: https://hackage.haskell.org/package/validated-literals |
2021-06-09 14:49:17 +0200 | <merijn> | delYsid: Which does partial conversions at compile time (and errors if they fail) |
2021-06-09 14:49:46 +0200 | <merijn> | delYsid: The Q (i.e. TH monad) is an instance of MonadIO, so you can just liftIO any filesystem code to run at compile time with no issue |
2021-06-09 14:50:05 +0200 | _________ | (~nobody@user//x-7881368) (Remote host closed the connection) |
2021-06-09 14:50:23 +0200 | <delYsid> | So whats the type of my "compiler" function, then? |
2021-06-09 14:50:47 +0200 | <merijn> | delYsid: And then you could just write "lookup = $( liftIO (readFile path) >>= foo)" where 'foo' is a combination of liftTyped + your decode stuff |
2021-06-09 14:51:24 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-09 14:51:31 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-06-09 14:51:42 +0200 | <merijn> | Simplest case would be "foo = liftTyped . decodeData" (but that's wrong if decodeData can return an Either/throw an exception, which you'd need to handle before liftTyped) |
2021-06-09 14:52:16 +0200 | <merijn> | but the validated-literals code has some examples of how to turn "Either Error a" into 'TExp a' that has a type error at compile time |
2021-06-09 14:52:41 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-06-09 14:52:45 +0200 | <merijn> | delYsid: For example: https://github.com/merijn/validated-literals/blob/master/ValidLiterals.hs#L110-L116 |
2021-06-09 14:53:00 +0200 | wonko | (~wjc@62.115.229.50) |
2021-06-09 14:54:13 +0200 | <merijn> | delYsid: And then valid (or validInteger, etc.) can be used as splices like: https://github.com/merijn/validated-literals/blob/master/examples/Examples.hs#L24-L25 |
2021-06-09 14:55:29 +0200 | <delYsid> | [||val||] ugh, TH... |
2021-06-09 14:55:29 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-09 14:55:31 +0200 | poljar1 | (~poljar@93-139-68-198.adsl.net.t-com.hr) |
2021-06-09 14:55:34 +0200 | tose | (~tose@ip-85-160-36-186.eurotel.cz) (Quit: WeeChat 3.0) |
2021-06-09 14:56:09 +0200 | <merijn> | delYsid: '[|| x ||]' just turns *value* 'x' into "an AST representing the value 'x'" |
2021-06-09 14:56:18 +0200 | <merijn> | delYsid: Since the output of TH is *an AST* |
2021-06-09 14:56:55 +0200 | zmt00 | (~zmt00@user/zmt00) |
2021-06-09 14:56:57 +0200 | <merijn> | So "2" is just the value 2 in the TH code, but "[|| 2 ||]" is "an AST representing the syntax '2'" |
2021-06-09 14:57:14 +0200 | <delYsid> | my problem starts at liftTyped. I dont understand its type signature at all. Because I dont know what Code is... The Q monad confuses me. |
2021-06-09 14:58:06 +0200 | <merijn> | delYsid: Q monad is "IO + GHC" |
2021-06-09 14:58:30 +0200 | poljar | (~poljar@93-143-149-172.adsl.net.t-com.hr) (Ping timeout: 250 seconds) |
2021-06-09 14:58:53 +0200 | <merijn> | delYsid: The Q is the "quasiquoting" monad. i.e. the context in which code that runs at compile time executes |
2021-06-09 14:59:13 +0200 | <merijn> | delYsid: Does the Exp type make sense to you? https://hackage.haskell.org/package/template-haskell-2.17.0.0/docs/Language-Haskell-TH.html#g:20 |
2021-06-09 14:59:45 +0200 | <merijn> | delYsid: i.e., that's just the datatype for Haskell's AST |
2021-06-09 14:59:52 +0200 | <xerox> | I used to be in the same camp til I found https://downloads.haskell.org/~ghc/8.10.3/docs/html/users_guide/glasgow_exts.html#template-haskell it is a very clear explanation I think |
2021-06-09 14:59:54 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds) |
2021-06-09 14:59:57 +0200 | <merijn> | (well, the expression part of the AST, anyway) |
2021-06-09 14:59:59 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 244 seconds) |
2021-06-09 15:00:17 +0200 | <merijn> | brb |
2021-06-09 15:00:23 +0200 | _________ | (~nobody@user//x-7881368) |
2021-06-09 15:01:15 +0200 | alx741 | (~alx741@181.196.69.18) |
2021-06-09 15:01:32 +0200 | brandonh | (~brandonh@151.46.91.125) (Ping timeout: 250 seconds) |
2021-06-09 15:01:41 +0200 | ddellacosta | (~ddellacos@89.46.62.63) |
2021-06-09 15:02:08 +0200 | favonia | (~favonia@user/favonia) |
2021-06-09 15:02:10 +0200 | ddellacosta | (~ddellacos@89.46.62.63) (Remote host closed the connection) |
2021-06-09 15:02:39 +0200 | ddellacosta | (~ddellacos@89.46.62.63) |
2021-06-09 15:03:50 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-09 15:04:01 +0200 | ddellaco_ | (~ddellacos@86.106.121.65) |
2021-06-09 15:04:40 +0200 | <ski> | guest61 : well, i also suggested using `case'-`of' to pick apart the `parse' result, distinguishing between then successful and the failure case, rather than going on to use `fmap' all the time to manipulate the successful result. but also to use `case'-`of', instead of `==' and `/=' (and e.g. using `catMaybes' instead of `filter' and `fmap fromJust'). then i had a few cosmetic changes like removing |
2021-06-09 15:04:46 +0200 | <ski> | redundant brackets, removing all the `$'s, replacing `print' with `putStrLn' with `hPutStrLn stderr', factoring `pure' out of `maybe' |
2021-06-09 15:07:32 +0200 | ddellacosta | (~ddellacos@89.46.62.63) (Ping timeout: 264 seconds) |
2021-06-09 15:10:39 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 272 seconds) |
2021-06-09 15:11:04 +0200 | favonia | (~favonia@user/favonia) |
2021-06-09 15:11:04 +0200 | jolly | (~jolly@208.180.97.158) (Quit: Connection closed) |
2021-06-09 15:11:07 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-06-09 15:14:04 +0200 | jolly | (~jolly@208.180.97.158) |
2021-06-09 15:14:06 +0200 | fabfianda | (~fabfianda@net-93-148-121-206.cust.vodafonedsl.it) (Ping timeout: 250 seconds) |
2021-06-09 15:14:54 +0200 | fabfianda | (~fabfianda@mob-5-90-243-109.net.vodafone.it) |
2021-06-09 15:17:49 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 272 seconds) |
2021-06-09 15:18:52 +0200 | <delYsid> | merijn: So, how do I make my type an instance of Lift? |
2021-06-09 15:19:42 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-06-09 15:21:04 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-06-09 15:22:12 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-09 15:23:44 +0200 | mastarija__ | (~mastarija@46.188.129.109) (Ping timeout: 264 seconds) |
2021-06-09 15:25:50 +0200 | chomwitt | (~Pitsikoko@athedsl-20549.home.otenet.gr) |
2021-06-09 15:26:35 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 245 seconds) |
2021-06-09 15:26:41 +0200 | nsilv | (~nsilv@212.103.198.210) (Ping timeout: 272 seconds) |
2021-06-09 15:29:30 +0200 | kiweun | (~sheepduck@2607:fea8:2a61:4800::6882) (Remote host closed the connection) |
2021-06-09 15:29:53 +0200 | kiweun | (~sheepduck@2607:fea8:2a61:4800::e92f) |
2021-06-09 15:30:01 +0200 | <dminuoso> | delYsid: You write an instance declaration? |
2021-06-09 15:30:12 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-06-09 15:30:51 +0200 | AgentM | (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) |
2021-06-09 15:31:42 +0200 | <dminuoso> | delYsid: All you have to do is specify how to build an Exp from a value of your type. To generate fresh names that cannot be captured, you can use `newName` inside the definition of `lift` |
2021-06-09 15:32:08 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
2021-06-09 15:33:12 +0200 | thyriaen | (~thyriaen@45.178.73.238) |
2021-06-09 15:33:32 +0200 | <merijn> | delYsid: You can DeriveLift |
2021-06-09 15:33:33 +0200 | <jaror[m]> | With (since) 9.0.1 you have to give an implementation of `liftTyped`, that might be harder than implementing `lift`. |
2021-06-09 15:35:21 +0200 | nsilv | (~nsilv@212.103.198.210) |
2021-06-09 15:38:03 +0200 | ddellaco_ | (~ddellacos@86.106.121.65) (Remote host closed the connection) |
2021-06-09 15:38:32 +0200 | ddellacosta | (~ddellacos@86.106.121.65) |
2021-06-09 15:39:40 +0200 | ddellaco_ | (~ddellacos@89.46.62.34) |
2021-06-09 15:39:45 +0200 | <delYsid> | merijn: I did. I even found th-instances-lift for Unboxed Vector, but now I am stuck at HashMap not having a Lift instance... |
2021-06-09 15:40:01 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-06-09 15:43:32 +0200 | ddellacosta | (~ddellacos@86.106.121.65) (Ping timeout: 264 seconds) |
2021-06-09 15:45:04 +0200 | ell8 | (~ellie@user/ellie) |
2021-06-09 15:46:28 +0200 | ell | (~ellie@user/ellie) (Read error: Connection reset by peer) |
2021-06-09 15:46:29 +0200 | ell8 | ell |
2021-06-09 15:46:41 +0200 | jlamothe | (~jlamothe@198.251.57.81) (Quit: leaving) |
2021-06-09 15:47:43 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-09 15:47:48 +0200 | slack1256 | (~slack1256@191.125.180.163) |
2021-06-09 15:49:56 +0200 | geekosaur | (~geekosaur@069-135-003-034.biz.spectrum.com) |
2021-06-09 15:50:21 +0200 | <merijn> | delYsid: You can workaround that like so: https://github.com/merijn/validated-literals/blob/master/examples/ByteString.hs#L28 |
2021-06-09 15:51:54 +0200 | <merijn> | i.e. "AppE <$> [| HM.fromList |] <*> lift x" where "x :: [(k, v)]" |
2021-06-09 15:52:19 +0200 | <jippiedoe> | re: laziness and fusing list operations: I like to think of it in evaluation order; laziness evaluates the f's and g's in `map f . map g` in the same order as the fused `map (f . g)`. Actual fusion/deforestation just removes some indirection with consing and unconsing |
2021-06-09 15:56:00 +0200 | myShoggoth | (~myShoggot@97-120-89-117.ptld.qwest.net) |
2021-06-09 15:57:33 +0200 | jaevanko | (~jaevanko@2600:1700:1330:2bef:8da6:e24d:9a34:2f32) (Quit: Leaving) |
2021-06-09 15:59:20 +0200 | _________ | (~nobody@user//x-7881368) (Remote host closed the connection) |
2021-06-09 15:59:51 +0200 | xff0x_ | (~xff0x@port-92-195-66-229.dynamic.as20676.net) (Ping timeout: 252 seconds) |
2021-06-09 16:00:10 +0200 | xff0x_ | (~xff0x@185.65.135.235) |
2021-06-09 16:00:22 +0200 | biberu\ | (~biberu@user/biberu) |
2021-06-09 16:00:35 +0200 | <delYsid> | oh, it works. |
2021-06-09 16:00:51 +0200 | <merijn> | \o/ |
2021-06-09 16:01:27 +0200 | slac19625 | (~slack1256@191.125.180.163) |
2021-06-09 16:01:30 +0200 | tabemann_ | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
2021-06-09 16:01:48 +0200 | nschoe | (~quassel@178.251.84.79) |
2021-06-09 16:01:49 +0200 | bollu7 | (~bollu@139.59.46.74) |
2021-06-09 16:01:59 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection) |
2021-06-09 16:02:01 +0200 | <dminuoso> | jippiedoe: Wouldn't another major benefit of fusing `map f . map g` into `map (f . g)` be improved locality of cache? |
2021-06-09 16:02:26 +0200 | <merijn> | Yes, no, maybe? |
2021-06-09 16:02:45 +0200 | abbie6 | (~abbie@user/abbie) |
2021-06-09 16:03:04 +0200 | monochrm | (trebla@216.138.220.146) |
2021-06-09 16:03:06 +0200 | <dminuoso> | Well, if the produced data of `f` is still hot in your L1/L2, then surely that's a good thing |
2021-06-09 16:03:18 +0200 | dobblego | (~dibblego@122-199-1-30.ip4.superloop.com) |
2021-06-09 16:03:18 +0200 | dobblego | (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
2021-06-09 16:03:18 +0200 | dobblego | (~dibblego@haskell/developer/dibblego) |
2021-06-09 16:03:23 +0200 | tomjagua1paw | (~tom@li367-225.members.linode.com) |
2021-06-09 16:03:31 +0200 | gentauro_ | (~gentauro@185.107.12.141) |
2021-06-09 16:03:35 +0200 | sciencen1 | (~sciencent@hacksoc/ordinary-member) |
2021-06-09 16:03:46 +0200 | <dminuoso> | If you map twice, then depending on the length of the data, you could be evicting chunks of it |
2021-06-09 16:03:50 +0200 | shapr | (~user@pool-108-28-144-11.washdc.fios.verizon.net) |
2021-06-09 16:03:55 +0200 | samebchase6 | (~samebchas@51.15.68.182) |
2021-06-09 16:03:57 +0200 | lambdap7 | (~lambdap@static.167.190.119.168.clients.your-server.de) |
2021-06-09 16:04:03 +0200 | jlamothe | (~jlamothe@198.251.57.81) |
2021-06-09 16:04:11 +0200 | dustinm- | (~dustinm@static.38.6.217.95.clients.your-server.de) |
2021-06-09 16:04:22 +0200 | zopsi_ | (zopsi@2600:3c00::f03c:91ff:fe14:551f) |
2021-06-09 16:04:24 +0200 | _________ | (~nobody@user//x-7881368) |
2021-06-09 16:04:25 +0200 | urtie | (~arthurvl@deban2.xs4all.space) |
2021-06-09 16:04:46 +0200 | micro_ | (~micro@user/micro) |
2021-06-09 16:05:05 +0200 | Philonous_ | (~Philonous@user/philonous) |
2021-06-09 16:05:23 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
2021-06-09 16:05:28 +0200 | juri__ | (~juri@178.63.35.222) |
2021-06-09 16:06:03 +0200 | dtman34_ | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) |
2021-06-09 16:06:06 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds) |
2021-06-09 16:06:13 +0200 | wagle | (~wagle@quassel.wagle.io) |
2021-06-09 16:06:26 +0200 | bah_ | (~bah@l1.tel) |
2021-06-09 16:06:38 +0200 | <merijn> | dminuoso: That doesn't hold though |
2021-06-09 16:06:38 +0200 | ozzymcdu1f | (~mathieu@81-234-151-21-no94.tbcn.telia.com) |
2021-06-09 16:06:52 +0200 | <merijn> | dminuoso: In a lazy setting the evaluation of the first and second map would be interleaved |
2021-06-09 16:07:07 +0200 | aravk_ | (~aravk@user/aravk) |
2021-06-09 16:07:09 +0200 | <dminuoso> | Ah yes |
2021-06-09 16:07:15 +0200 | shailangsa | (~shailangs@host86-186-177-181.range86-186.btcentralplus.com) (Killed (NickServ (GHOST command used by Shailangsa_))) |
2021-06-09 16:07:21 +0200 | shanemikel_ | (~shanemike@desk.roadwar.net) |
2021-06-09 16:07:30 +0200 | typedfern_ | (~Typedfern@185.red-83-57-142.dynamicip.rima-tde.net) |
2021-06-09 16:08:17 +0200 | <dminuoso> | What's the main benefit of fusion then? Ability of the simplifier to improve `f.g`? |
2021-06-09 16:08:27 +0200 | <merijn> | dminuoso: You get to skip allocating a cons cell |
2021-06-09 16:08:31 +0200 | <dminuoso> | Or is it really just saving extra case-of discriminating on cons? |
2021-06-09 16:08:42 +0200 | <dminuoso> | Ah, it has to create a new one |
2021-06-09 16:08:51 +0200 | boxscape | (~boxscape@user/boxscape) (Quit: Connection closed) |
2021-06-09 16:08:51 +0200 | harry | (~harry@92.234.0.237) |
2021-06-09 16:08:54 +0200 | ptrcmd_ | (~ptrcmd@user/ptrcmd) |
2021-06-09 16:09:19 +0200 | otulp_ | (~otulp@ti0187q162-2423.bb.online.no) |
2021-06-09 16:09:30 +0200 | dmwit_ | (~dmwit@pool-96-255-233-247.washdc.fios.verizon.net) |
2021-06-09 16:09:51 +0200 | troydm1 | (~troydm@host-176-37-124-197.b025.la.net.ua) |
2021-06-09 16:10:07 +0200 | <merijn> | yeah |
2021-06-09 16:10:11 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 272 seconds) |
2021-06-09 16:10:15 +0200 | boxscape | (~boxscape@user/boxscape) |
2021-06-09 16:10:27 +0200 | ddellaco_ | (~ddellacos@89.46.62.34) (Remote host closed the connection) |
2021-06-09 16:10:34 +0200 | myShoggoth | (~myShoggot@97-120-89-117.ptld.qwest.net) (*.net *.split) |
2021-06-09 16:10:34 +0200 | slack1256 | (~slack1256@191.125.180.163) (*.net *.split) |
2021-06-09 16:10:34 +0200 | fabfianda | (~fabfianda@mob-5-90-243-109.net.vodafone.it) (*.net *.split) |
2021-06-09 16:10:34 +0200 | sciencentistguy | (~sciencent@hacksoc/ordinary-member) (*.net *.split) |
2021-06-09 16:10:34 +0200 | niko | (~niko@libera/staff/niko) (*.net *.split) |
2021-06-09 16:10:34 +0200 | michalz | (~michalz@185.246.204.125) (*.net *.split) |
2021-06-09 16:10:34 +0200 | shanemikel | (~shanemike@desk.roadwar.net) (*.net *.split) |
2021-06-09 16:10:34 +0200 | ozzymcduff | (~mathieu@81-234-151-21-no94.tbcn.telia.com) (*.net *.split) |
2021-06-09 16:10:34 +0200 | gentauro | (~gentauro@user/gentauro) (*.net *.split) |
2021-06-09 16:10:34 +0200 | micro | (~micro@user/micro) (*.net *.split) |
2021-06-09 16:10:34 +0200 | bah | (~bah@l1.tel) (*.net *.split) |
2021-06-09 16:10:34 +0200 | aravk | (~aravk@user/aravk) (*.net *.split) |
2021-06-09 16:10:34 +0200 | juri_ | (~juri@178.63.35.222) (*.net *.split) |
2021-06-09 16:10:34 +0200 | otulp | (~otulp@ti0187q162-2423.bb.online.no) (*.net *.split) |
2021-06-09 16:10:34 +0200 | wagle_ | (~wagle@quassel.wagle.io) (*.net *.split) |
2021-06-09 16:10:34 +0200 | Philonous | (~Philonous@user/philonous) (*.net *.split) |
2021-06-09 16:10:34 +0200 | FragByte | (~christian@user/fragbyte) (*.net *.split) |
2021-06-09 16:10:34 +0200 | abbie | (~abbie@user/abbie) (*.net *.split) |
2021-06-09 16:10:34 +0200 | tabemann | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (*.net *.split) |
2021-06-09 16:10:34 +0200 | haask | (~harry@92.234.0.237) (*.net *.split) |
2021-06-09 16:10:34 +0200 | bollu | (~bollu@139.59.46.74) (*.net *.split) |
2021-06-09 16:10:34 +0200 | monochrom | (~trebla@216.138.220.146) (*.net *.split) |
2021-06-09 16:10:34 +0200 | Xnuk | (~xnuk@45.76.202.58) (*.net *.split) |
2021-06-09 16:10:34 +0200 | dy | (~dy@user/dy) (*.net *.split) |
2021-06-09 16:10:34 +0200 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (*.net *.split) |
2021-06-09 16:10:34 +0200 | biberu | (~biberu@user/biberu) (*.net *.split) |
2021-06-09 16:10:34 +0200 | Typedfern | (~Typedfern@185.red-83-57-142.dynamicip.rima-tde.net) (*.net *.split) |
2021-06-09 16:10:34 +0200 | hrnz | (~ulli@cherry.hrnz.li) (*.net *.split) |
2021-06-09 16:10:34 +0200 | tomjaguarpaw | (~tom@li367-225.members.linode.com) (*.net *.split) |
2021-06-09 16:10:34 +0200 | samebchase | (~samebchas@51.15.68.182) (*.net *.split) |
2021-06-09 16:10:34 +0200 | lambdap | (~lambdap@static.167.190.119.168.clients.your-server.de) (*.net *.split) |
2021-06-09 16:10:34 +0200 | earthy | (~arthurvl@deban2.xs4all.space) (*.net *.split) |
2021-06-09 16:10:34 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) (*.net *.split) |
2021-06-09 16:10:34 +0200 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) (*.net *.split) |
2021-06-09 16:10:34 +0200 | dtman34 | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (*.net *.split) |
2021-06-09 16:10:34 +0200 | ptrcmd | (~ptrcmd@user/ptrcmd) (*.net *.split) |
2021-06-09 16:10:34 +0200 | zopsi | (~zopsi@irc.dir.ac) (*.net *.split) |
2021-06-09 16:10:34 +0200 | dustinm | (~dustinm@static.38.6.217.95.clients.your-server.de) (*.net *.split) |
2021-06-09 16:10:34 +0200 | dmwit | (~dmwit@pool-96-255-233-247.washdc.fios.verizon.net) (*.net *.split) |
2021-06-09 16:10:35 +0200 | monochrm | monochrom |
2021-06-09 16:10:35 +0200 | bollu7 | bollu |
2021-06-09 16:10:35 +0200 | otulp_ | otulp |
2021-06-09 16:10:35 +0200 | abbie6 | abbie |
2021-06-09 16:10:35 +0200 | biberu\ | biberu |
2021-06-09 16:10:35 +0200 | dobblego | dibblego |
2021-06-09 16:10:35 +0200 | lambdap7 | lambdap |
2021-06-09 16:10:42 +0200 | myShoggoth | (~myShoggot@97-120-89-117.ptld.qwest.net) |
2021-06-09 16:10:51 +0200 | ddellacosta | (~ddellacos@89.46.62.34) |
2021-06-09 16:10:57 +0200 | fabfianda | (~fabfianda@mob-5-90-243-109.net.vodafone.it) |
2021-06-09 16:11:07 +0200 | Xnuk | (~xnuk@45.76.202.58) |
2021-06-09 16:11:10 +0200 | dy | (~dy@user/dy) |
2021-06-09 16:11:10 +0200 | thyriaen | (~thyriaen@45.178.73.238) (Quit: Leaving) |
2021-06-09 16:14:55 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-06-09 16:14:56 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-06-09 16:16:03 +0200 | FragByte | (~christian@user/fragbyte) |
2021-06-09 16:16:16 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2021-06-09 16:16:54 +0200 | Codaraxis_ | (~Codaraxis@89.45.7.142) (Remote host closed the connection) |
2021-06-09 16:17:42 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds) |
2021-06-09 16:19:11 +0200 | <delYsid> | • GHC internal error: ‘fp’ is not in scope during type checking, but it passed the renamer |
2021-06-09 16:19:15 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
2021-06-09 16:19:20 +0200 | <delYsid> | there be dragons |
2021-06-09 16:19:20 +0200 | fluffyballoon | (~fluffybal@2620:72:0:6480::10f7) |
2021-06-09 16:19:36 +0200 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-06-09 16:19:48 +0200 | <ski> | @ghc |
2021-06-09 16:19:49 +0200 | <lambdabot> | Command stack underflow at command |
2021-06-09 16:20:33 +0200 | niko | (~niko@libera/staff/niko) |
2021-06-09 16:20:45 +0200 | xff0x_ | (~xff0x@185.65.135.235) (Ping timeout: 252 seconds) |
2021-06-09 16:21:02 +0200 | derelict | (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) |
2021-06-09 16:21:13 +0200 | skewerr | (~spoonm@inaba.spoonm.org) |
2021-06-09 16:21:25 +0200 | hrnz | (~ulli@irc.plumbing) |
2021-06-09 16:22:21 +0200 | xff0x_ | (~xff0x@2001:1a81:52c9:6b00:c9ec:1ec0:3ea4:2bb4) |
2021-06-09 16:23:53 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-06-09 16:27:12 +0200 | brandonh | (~brandonh@151.38.222.167) |
2021-06-09 16:28:39 +0200 | just_some_noob6 | (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) |
2021-06-09 16:28:55 +0200 | just_some_noob6 | (~syd@cpc91646-hart11-2-0-cust432.11-3.cable.virginm.net) () |
2021-06-09 16:31:59 +0200 | azeem | (~azeem@176.201.21.77) (Read error: Connection reset by peer) |
2021-06-09 16:32:12 +0200 | azeem | (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) |
2021-06-09 16:32:31 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Quit: Leaving) |
2021-06-09 16:33:55 +0200 | pagnol | (~user@014198154145.ctinets.com) |
2021-06-09 16:33:59 +0200 | troydm1 | (~troydm@host-176-37-124-197.b025.la.net.ua) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
2021-06-09 16:34:11 +0200 | shailangsa | (~shailangs@host86-186-177-181.range86-186.btcentralplus.com) |
2021-06-09 16:34:15 +0200 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) |
2021-06-09 16:34:23 +0200 | michalz | (~michalz@185.246.204.114) |
2021-06-09 16:36:10 +0200 | mastarija__ | (~mastarija@46.188.129.109) |
2021-06-09 16:37:58 +0200 | wonko | (~wjc@62.115.229.50) (Remote host closed the connection) |
2021-06-09 16:38:29 +0200 | gentauro_ | (~gentauro@185.107.12.141) (Changing host) |
2021-06-09 16:38:29 +0200 | gentauro_ | (~gentauro@user/gentauro) |
2021-06-09 16:44:22 +0200 | <delYsid> | merijn: x fp = $(AppE <$> [| fromList |] <*> lift [| x |]) where x = $$(r fp) -- gives me a stage restriction. How do I pass an argument through? |
2021-06-09 16:44:58 +0200 | <delYsid> | ugh, wait |
2021-06-09 16:45:27 +0200 | <delYsid> | x fp = $(AppE <$> [| fromList |] <*> lift $$(r fp)) -- better, but same error |
2021-06-09 16:45:58 +0200 | <delYsid> | r :: FilePath -> Q (TExp [D]) |
2021-06-09 16:46:06 +0200 | <c_wraith> | is r defined in the same file? |
2021-06-09 16:46:12 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-09 16:46:13 +0200 | <c_wraith> | that's what the stage restriction is about |
2021-06-09 16:46:13 +0200 | fabfianda | (~fabfianda@mob-5-90-243-109.net.vodafone.it) (Read error: Connection reset by peer) |
2021-06-09 16:46:26 +0200 | fabfianda | (~fabfianda@net-93-148-121-206.cust.dsl.teletu.it) |
2021-06-09 16:46:42 +0200 | <delYsid> | is there a way to wrap this up without creating *two* internal modules? |
2021-06-09 16:46:43 +0200 | <gentauro_> | «Early June 8, a customer pushed *a valid configuration* change that included the specific circumstances that triggered the bug, which caused 85% of our network to return errors.» so a type error xD https://www.fastly.com/blog/summary-of-june-8-outage |
2021-06-09 16:47:08 +0200 | <c_wraith> | delYsid: you could define r locally instead of at the top level |
2021-06-09 16:47:20 +0200 | <delYsid> | ah |
2021-06-09 16:47:42 +0200 | bontaq | (~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 252 seconds) |
2021-06-09 16:47:45 +0200 | <tdammers> | obvious fix: grep for the number 85 in the codebase, and change all occurrences to 0 |
2021-06-09 16:48:41 +0200 | <merijn> | delYsid: You don't wanna $( the AppE, you just return that |
2021-06-09 16:48:59 +0200 | <merijn> | At least, I think you don't |
2021-06-09 16:49:11 +0200 | <merijn> | ah, wait, I see what's you're doing |
2021-06-09 16:49:34 +0200 | <delYsid> | I think the problem is Exp vs TExp |
2021-06-09 16:49:39 +0200 | <merijn> | delYsid: You wanna get rid of the outer $( and the use "$(x filepath)" somewhere |
2021-06-09 16:49:55 +0200 | bontaq` | (~user@ool-18e47f8d.dyn.optonline.net) |
2021-06-09 16:50:28 +0200 | <merijn> | delYsid: Ah, you're mixing typed and untyped TH too |
2021-06-09 16:50:43 +0200 | <merijn> | $$( is typed TH, but $( and [| are untyped TH |
2021-06-09 16:50:49 +0200 | benin03 | (~benin@183.82.205.134) |
2021-06-09 16:50:57 +0200 | benin03 | (~benin@183.82.205.134) (Client Quit) |
2021-06-09 16:51:05 +0200 | <merijn> | delYsid: "lift $$(r fp)" is also suspificous |
2021-06-09 16:51:20 +0200 | <merijn> | That looks like you just want "r fp", tbh |
2021-06-09 16:51:21 +0200 | <delYsid> | yeah, I told you TH confuses me. |
2021-06-09 16:51:23 +0200 | <delYsid> | But I am close |
2021-06-09 16:51:37 +0200 | <delYsid> | AIUI, I have TExp cos I use liftTyped |
2021-06-09 16:51:49 +0200 | <delYsid> | But I dunno how to get rid of it, $$(...) seemed to do the trick |
2021-06-09 16:52:15 +0200 | <merijn> | delYsid: Let's rewind a bit. Part of the confusingness of TH is that you have *2* "runtimes" (the "runtime" of code that runs at compile time and "normal" runtime) |
2021-06-09 16:52:29 +0200 | fluffyballoon | (~fluffybal@2620:72:0:6480::10f7) (Quit: Client closed) |
2021-06-09 16:52:35 +0200 | <delYsid> | No instance for (Lift (Q (TExp [Opening]))) |
2021-06-09 16:52:50 +0200 | <merijn> | delYsid: The code that runs at compile time is just regular old boring Haskell. But it needs to (in the end) produce an AST that GHC "inserts" into the code that is being compiled |
2021-06-09 16:53:06 +0200 | <merijn> | delYsid: The Q monad let's you 1) do IO and 2) query GHC about code/types |
2021-06-09 16:53:08 +0200 | <delYsid> | I get that part |
2021-06-09 16:53:38 +0200 | <merijn> | delYsid: $(x) takes "Q (TExp a)" and splices the AST produced by that Q action into that part of the code |
2021-06-09 16:54:15 +0200 | <merijn> | delYsid: So "lift $$(r fp)" first runs 'r fp' (at compile time), then splices the AST into the code |
2021-06-09 16:54:16 +0200 | <delYsid> | It only worked when I used $$, but I was only trying it out in ghci, so maybe the repl differs? |
2021-06-09 16:54:49 +0200 | <merijn> | but then 'lift' tries to turn that AST into an AST again |
2021-06-09 16:55:20 +0200 | gentauro_ | (~gentauro@user/gentauro) (Quit: leaving) |
2021-06-09 16:55:21 +0200 | <delYsid> | Couldn't match type ‘TExp [Opening]’ with ‘Exp’ |
2021-06-09 16:55:25 +0200 | <merijn> | delYsid: So you end up trying to splice the AST of "Q (TExp a)" into your code |
2021-06-09 16:55:31 +0200 | <merijn> | delYsid: Ok, that is easy to fix |
2021-06-09 16:55:35 +0200 | gentauro | (~gentauro@user/gentauro) |
2021-06-09 16:55:51 +0200 | <merijn> | delYsid: Replace "[| x |]" with "[|| x ||]" |
2021-06-09 16:56:11 +0200 | <merijn> | ([|| ||] is the typed quotes vs [| |] which produces untyped quotes) |
2021-06-09 16:56:27 +0200 | <delYsid> | Couldn't match type ‘TExp (Q (TExp [Opening]))’ with ‘Exp’ |
2021-06-09 16:56:28 +0200 | bontaq` | bontaq |
2021-06-09 16:56:35 +0200 | <merijn> | can you pastebin the code? |
2021-06-09 16:57:22 +0200 | <delYsid> | to be honest, no. I am stuck on a console |
2021-06-09 16:58:33 +0200 | <delYsid> | The problem is still typed vs untyped, just that [|| x ||] doesnt help because I have no x, I have "r fp" which is Q (TExp [Opening]) |
2021-06-09 16:58:46 +0200 | <merijn> | hold, lemme slap something together |
2021-06-09 16:59:16 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-06-09 16:59:33 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-06-09 16:59:46 +0200 | <merijn> | And then break it down |
2021-06-09 17:00:04 +0200 | <merijn> | https://paste.tomsmeding.com/l6B1l0Pj |
2021-06-09 17:00:22 +0200 | <merijn> | Ok, so the 'r' there is just regular boring old Haskell you know how to write, right? |
2021-06-09 17:01:16 +0200 | <delYsid> | https://blind.guru/TH.hs |
2021-06-09 17:01:27 +0200 | maerwald | (~maerwald@user/maerwald) (Ping timeout: 252 seconds) |
2021-06-09 17:01:30 +0200 | <merijn> | delYsid: Let's breakdown 'x', first we liftIO your boring old IO code into the Q monad. This means we execute *all* of 'r' at compile time (probably 'r' needs to be in a different module from 'x' due to stage restriction) |
2021-06-09 17:02:04 +0200 | Lycurgus | just found googling "legible haskell" amusing |
2021-06-09 17:02:05 +0200 | mastarija__ | (~mastarija@46.188.129.109) (Quit: Leaving) |
2021-06-09 17:02:23 +0200 | <merijn> | So, 'x' is a TH function that produces a (typed) AST that represents a value of type 'YourType' |
2021-06-09 17:02:32 +0200 | <merijn> | delYsid: Let's look at the parts |
2021-06-09 17:02:33 +0200 | maerwald | (~maerwald@mail.hasufell.de) |
2021-06-09 17:02:43 +0200 | maerwald | (~maerwald@mail.hasufell.de) (Changing host) |
2021-06-09 17:02:43 +0200 | maerwald | (~maerwald@user/maerwald) |
2021-06-09 17:02:51 +0200 | <merijn> | "AppE" is a constructor from Exp which represents function application |
2021-06-09 17:03:18 +0200 | <delYsid> | get that |
2021-06-09 17:03:35 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 272 seconds) |
2021-06-09 17:03:48 +0200 | <merijn> | [|| fromList ||] turns the 'fromList' function into 'Q (TExp (a -> b))', i.e. a quasiquote representing a function (probably 'Q (TExp ([k, v] -> HashMap k v)' here) |
2021-06-09 17:04:13 +0200 | favonia | (~favonia@user/favonia) |
2021-06-09 17:04:16 +0200 | <merijn> | So we somehow need to get an AST for [(k, v)] to which we can apply fromList |
2021-06-09 17:04:38 +0200 | <merijn> | delYsid: But what you *have* is not the AST for [(k, v)], but an *actual* list that 'r' just parsed |
2021-06-09 17:05:08 +0200 | <merijn> | delYsid: So we need a function that goes '[(k, v)] -> Q (TExp [(k, v)])' |
2021-06-09 17:05:22 +0200 | <merijn> | delYsid: Which is what liftTyped does |
2021-06-09 17:05:48 +0200 | <c_wraith> | on sufficiently recent versions of GHC... |
2021-06-09 17:05:54 +0200 | <merijn> | Now, since we have AppE and Q is a monad we can do our regular Applicative dance to combine them |
2021-06-09 17:05:58 +0200 | <c_wraith> | I'm a bit sad how recent liftTyped is |
2021-06-09 17:06:00 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
2021-06-09 17:06:02 +0200 | <merijn> | c_wraith: Same |
2021-06-09 17:06:18 +0200 | <merijn> | c_wraith: But at least it's here now! |
2021-06-09 17:07:12 +0200 | ski | . o O ( "Cross-stage persistence" <http://okmij.org/ftp/ML/MetaOCaml.html#CSP> ) |
2021-06-09 17:07:14 +0200 | <merijn> | delYsid: So now that we have 'x' this way, all we need to do to embed your data is call (and splice the result) of 'x' into your actual code, which you'd do using something like 'compileTimeMap = $$(x "path/to/file")' in your code |
2021-06-09 17:08:04 +0200 | <merijn> | delYsid: There's one catch, though. Which is: you cannot call code in the same module as 'x' from 'x' (so your 'r' function needs to be in a different module) and you cannot call 'x' in the module you define it (the stage restriction error before) |
2021-06-09 17:08:31 +0200 | <merijn> | delYsid: Because GHC has to compile 'r' before it can compile 'x' and needs to compile 'x' before you can use it and doing that in the same module is hard |
2021-06-09 17:09:22 +0200 | <delYsid> | Since I dont need r, is there a way to write x such that I dont need a second module? |
2021-06-09 17:09:37 +0200 | Scotty_Trees | (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving) |
2021-06-09 17:10:10 +0200 | <merijn> | delYsid: Sure, you can have the code of 'r' inside 'x' itself, if it only uses library code |
2021-06-09 17:10:30 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 264 seconds) |
2021-06-09 17:11:10 +0200 | Scotty_Trees | (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) |
2021-06-09 17:11:58 +0200 | <merijn> | delYsid: Something like https://paste.tomsmeding.com/NBPCg1ip |
2021-06-09 17:12:13 +0200 | <merijn> | delYsid: assuming parseList is defined in another module |
2021-06-09 17:12:25 +0200 | <delYsid> | I always hit the same issue. I have a TExp but my AppE wants an Exp |
2021-06-09 17:12:58 +0200 | <delYsid> | the modern web is driving me crazy. try "lynx https://paste.tomsmeding.com/NBPCg1ip" and be welcome in my world. |
2021-06-09 17:13:19 +0200 | wroathe_ | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-09 17:13:30 +0200 | chele_ | (~chele@user/chele) |
2021-06-09 17:13:31 +0200 | fendor_ | (~fendor@178.165.130.85.wireless.dyn.drei.com) |
2021-06-09 17:14:18 +0200 | pavonia | (~user@user/siracusa) (Read error: Connection reset by peer) |
2021-06-09 17:14:26 +0200 | hiptobecubic | (~john@c-73-55-99-95.hsd1.fl.comcast.net) |
2021-06-09 17:14:30 +0200 | ell4 | (~ellie@user/ellie) |
2021-06-09 17:15:02 +0200 | kw` | (~user@152.1.137.158) |
2021-06-09 17:15:17 +0200 | nilof | (~olofs@90-227-86-119-no542.tbcn.telia.com) |
2021-06-09 17:15:32 +0200 | chele | (~chele@user/chele) (Killed (lithium.libera.chat (Nickname regained by services))) |
2021-06-09 17:15:32 +0200 | chele_ | chele |
2021-06-09 17:15:52 +0200 | laguneucl | (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) |
2021-06-09 17:16:05 +0200 | wroathe_ | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Client Quit) |
2021-06-09 17:16:06 +0200 | spatchkaa__ | (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) |
2021-06-09 17:16:21 +0200 | poljar | (~poljar@93-139-68-198.adsl.net.t-com.hr) |
2021-06-09 17:16:34 +0200 | pavonia | (~user@user/siracusa) |
2021-06-09 17:16:59 +0200 | MidAutumnMoon3 | (~MidAutumn@user/midautumnmoon) |
2021-06-09 17:17:11 +0200 | nshepperd24 | (~nshepperd@li364-218.members.linode.com) |
2021-06-09 17:17:20 +0200 | <delYsid> | No instance for (Lift (Q (TExp (Q (TExp [Opening]))))) |
2021-06-09 17:17:25 +0200 | comerijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 17:17:25 +0200 | <comerijn> | It's weird that AppE doesn't work, though. It worked in my tests |
2021-06-09 17:17:38 +0200 | <delYsid> | OK, its official, I am just too dumb. But thanks for trying. |
2021-06-09 17:17:40 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-06-09 17:17:44 +0200 | averell- | (~averell@user/averell) |
2021-06-09 17:17:45 +0200 | <comerijn> | hmmm, how much of what I typed got lost? |
2021-06-09 17:17:49 +0200 | wroathe_ | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-09 17:17:53 +0200 | pierrot | (~pi@user/pierrot) |
2021-06-09 17:18:20 +0200 | <comerijn> | delYsid: Naah, it's just unlucky that AppE works on TExp the last time I checked, but doesn't in the latest version |
2021-06-09 17:18:54 +0200 | danidiaz1 | (~ESDPC@static-35-0-85-188.ipcom.comunitel.net) |
2021-06-09 17:18:56 +0200 | fjmorazan_ | (~quassel@user/fjmorazan) |
2021-06-09 17:19:07 +0200 | peutri_ | (~peutri@ns317027.ip-94-23-46.eu) |
2021-06-09 17:19:13 +0200 | <delYsid> | Thats what I was trying to explain. I need a function TExp a -> Exp, somehow. AppE only works with Exp |
2021-06-09 17:19:47 +0200 | nsilv1 | (~nsilv@212.103.198.210) |
2021-06-09 17:19:55 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-06-09 17:19:55 +0200 | oxide_ | (~lambda@user/oxide) |
2021-06-09 17:19:55 +0200 | <comerijn> | delYsid: What I typed before getting dropped was: Well, the easiest hack is to rewrite it to "AppE <$> [| fromList |] <*> lift result" |
2021-06-09 17:19:58 +0200 | hueso_ | (~root@152.170.216.40) |
2021-06-09 17:20:01 +0200 | <delYsid> | Or I just give up and do "fromList $(foo "file")" and call it a day. |
2021-06-09 17:20:04 +0200 | <comerijn> | Which just avoids using typed TH at all |
2021-06-09 17:20:06 +0200 | kmein | (~weechat@user/kmein) |
2021-06-09 17:20:10 +0200 | jackhill_ | (~jackhill@kalessin.dragonsnail.net) |
2021-06-09 17:20:10 +0200 | xerox_ | (~edi@user/edi) |
2021-06-09 17:20:18 +0200 | pbrisbin_ | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) |
2021-06-09 17:20:19 +0200 | slowButP1esent | (~slowButPr@user/slowbutpresent) |
2021-06-09 17:20:23 +0200 | wei2912_ | (~wei2912@112.199.250.21) |
2021-06-09 17:20:26 +0200 | johnw | (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) (Ping timeout: 272 seconds) |
2021-06-09 17:20:39 +0200 | <comerijn> | FYI "unType :: TExp a -> Exp" exists too |
2021-06-09 17:20:45 +0200 | blades_ | (~blades@204.48.29.163) |
2021-06-09 17:21:00 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:fef:c229:4466:542) (Ping timeout: 268 seconds) |
2021-06-09 17:21:49 +0200 | codolio | (~dolio@130.44.130.54) |
2021-06-09 17:21:58 +0200 | pieguy128_ | (~pieguy128@bas1-montreal02-65-92-163-194.dsl.bell.ca) |
2021-06-09 17:22:21 +0200 | <delYsid> | aha! |
2021-06-09 17:22:31 +0200 | <delYsid> | just do lift and not liftTyped, and everything is fine. |
2021-06-09 17:22:33 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-06-09 17:22:41 +0200 | dhouthoo_ | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-06-09 17:22:56 +0200 | dy` | (~dy@user/dy) |
2021-06-09 17:24:12 +0200 | cwraith | (~c_wraith@adjoint.us) |
2021-06-09 17:24:58 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (*.net *.split) |
2021-06-09 17:24:58 +0200 | fabfianda | (~fabfianda@net-93-148-121-206.cust.dsl.teletu.it) (*.net *.split) |
2021-06-09 17:24:58 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (*.net *.split) |
2021-06-09 17:24:58 +0200 | pagnol | (~user@014198154145.ctinets.com) (*.net *.split) |
2021-06-09 17:24:58 +0200 | dy | (~dy@user/dy) (*.net *.split) |
2021-06-09 17:24:58 +0200 | Xnuk | (~xnuk@45.76.202.58) (*.net *.split) |
2021-06-09 17:24:58 +0200 | ell | (~ellie@user/ellie) (*.net *.split) |
2021-06-09 17:24:58 +0200 | nsilv | (~nsilv@212.103.198.210) (*.net *.split) |
2021-06-09 17:24:58 +0200 | chomwitt | (~Pitsikoko@athedsl-20549.home.otenet.gr) (*.net *.split) |
2021-06-09 17:24:58 +0200 | alx741 | (~alx741@181.196.69.18) (*.net *.split) |
2021-06-09 17:24:58 +0200 | poljar1 | (~poljar@93-139-68-198.adsl.net.t-com.hr) (*.net *.split) |
2021-06-09 17:24:58 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (*.net *.split) |
2021-06-09 17:24:58 +0200 | pbrisbin | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (*.net *.split) |
2021-06-09 17:24:58 +0200 | Natch | (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (*.net *.split) |
2021-06-09 17:24:58 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (*.net *.split) |
2021-06-09 17:24:58 +0200 | dhil | (~dhil@195.213.192.47) (*.net *.split) |
2021-06-09 17:24:58 +0200 | BosonCollider | (~olofs@90-227-86-119-no542.tbcn.telia.com) (*.net *.split) |
2021-06-09 17:24:58 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (*.net *.split) |
2021-06-09 17:24:58 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (*.net *.split) |
2021-06-09 17:24:58 +0200 | ridcully | (~ridcully@p508ac428.dip0.t-ipconnect.de) (*.net *.split) |
2021-06-09 17:24:58 +0200 | danidiaz | (~ESDPC@static-35-0-85-188.ipcom.comunitel.net) (*.net *.split) |
2021-06-09 17:24:58 +0200 | blankhart | (~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net) (*.net *.split) |
2021-06-09 17:24:58 +0200 | xerox | (~edi@user/edi) (*.net *.split) |
2021-06-09 17:24:58 +0200 | kmein_ | (~weechat@user/kmein) (*.net *.split) |
2021-06-09 17:24:58 +0200 | pierrot_ | (~pi@user/pierrot) (*.net *.split) |
2021-06-09 17:24:58 +0200 | MidAutumnMoon | (~MidAutumn@user/midautumnmoon) (*.net *.split) |
2021-06-09 17:24:58 +0200 | spatchkaa_ | (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (*.net *.split) |
2021-06-09 17:24:58 +0200 | fendor | (~fendor@178.165.130.85.wireless.dyn.drei.com) (*.net *.split) |
2021-06-09 17:24:58 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (*.net *.split) |
2021-06-09 17:24:58 +0200 | c_wraith | (~c_wraith@adjoint.us) (*.net *.split) |
2021-06-09 17:24:58 +0200 | wei2912 | (~wei2912@112.199.250.21) (*.net *.split) |
2021-06-09 17:24:58 +0200 | fjmorazan | (~quassel@user/fjmorazan) (*.net *.split) |
2021-06-09 17:24:58 +0200 | motherfs1 | (~motherfsc@user/motherfsck) (*.net *.split) |
2021-06-09 17:24:58 +0200 | oxide | (~lambda@user/oxide) (*.net *.split) |
2021-06-09 17:24:58 +0200 | kw | (~user@152.1.137.158) (*.net *.split) |
2021-06-09 17:24:58 +0200 | bruceleewees | (~bruceleew@83.24.248.233.ipv4.supernova.orange.pl) (*.net *.split) |
2021-06-09 17:24:58 +0200 | pieguy128 | (~pieguy128@bas1-montreal02-65-92-163-194.dsl.bell.ca) (*.net *.split) |
2021-06-09 17:24:58 +0200 | blades | (~blades@204.48.29.163) (*.net *.split) |
2021-06-09 17:24:58 +0200 | averell | (~averell@user/averell) (*.net *.split) |
2021-06-09 17:24:58 +0200 | peutri | (~peutri@ns317027.ip-94-23-46.eu) (*.net *.split) |
2021-06-09 17:24:58 +0200 | jackhill | (~jackhill@kalessin.dragonsnail.net) (*.net *.split) |
2021-06-09 17:24:58 +0200 | sh9 | (~sh9@softbank060116136158.bbtec.net) (*.net *.split) |
2021-06-09 17:24:58 +0200 | hueso | (~root@152.170.216.40) (*.net *.split) |
2021-06-09 17:24:58 +0200 | nshepperd2 | (~nshepperd@li364-218.members.linode.com) (*.net *.split) |
2021-06-09 17:24:58 +0200 | dolio | (~dolio@130.44.130.54) (*.net *.split) |
2021-06-09 17:24:58 +0200 | Cale | (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (*.net *.split) |
2021-06-09 17:25:00 +0200 | ell4 | ell |
2021-06-09 17:25:00 +0200 | nshepperd24 | nshepperd2 |
2021-06-09 17:25:00 +0200 | MidAutumnMoon3 | MidAutumnMoon |
2021-06-09 17:25:01 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-06-09 17:26:23 +0200 | Xnuk | (~xnuk@45.76.202.58) |
2021-06-09 17:26:39 +0200 | wroathe_ | wroathe |
2021-06-09 17:26:50 +0200 | <cwraith> | delYsid: like, instead of the whole (AppE <$> [|| fromList ||] <*> liftTyped result) thing, just use [|| fromList result ||] |
2021-06-09 17:27:01 +0200 | cwraith | c_wraith |
2021-06-09 17:27:44 +0200 | Natch | (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) |
2021-06-09 17:27:47 +0200 | comerijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-06-09 17:27:48 +0200 | peterhil | (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
2021-06-09 17:27:53 +0200 | fluffyballoon | (~fluffybal@2620:72:0:6480::10f7) |
2021-06-09 17:28:09 +0200 | jneira | (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) |
2021-06-09 17:29:00 +0200 | ridcully | (~ridcully@p508ac428.dip0.t-ipconnect.de) |
2021-06-09 17:29:00 +0200 | <c_wraith> | yes, I understand that looks weird. quote literals actually do different things depending on the scope of identifiers |
2021-06-09 17:29:09 +0200 | Cale | (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) |
2021-06-09 17:30:31 +0200 | <c_wraith> | it looks up fromList and finds the name is in scope at the top level. So it generates a VarE for that name. It looks up result and finds it's local, so it calls liftTyped on it |
2021-06-09 17:30:47 +0200 | <c_wraith> | it calls liftTyped *on the value*, that is |
2021-06-09 17:31:24 +0200 | alx741 | (~alx741@181.196.69.18) |
2021-06-09 17:31:25 +0200 | <c_wraith> | That's actually one of the hardest parts of TH for me to wrap my head around - what the various name resolution rules inside a quote literal do |
2021-06-09 17:31:29 +0200 | geekosaur | (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 268 seconds) |
2021-06-09 17:31:53 +0200 | motherfs1 | (~motherfsc@user/motherfsck) |
2021-06-09 17:32:22 +0200 | geekosaur | (~geekosaur@069-135-003-034.biz.spectrum.com) |
2021-06-09 17:32:31 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-06-09 17:32:34 +0200 | dhil | (~dhil@195.213.192.47) |
2021-06-09 17:32:40 +0200 | bruceleewees | (~bruceleew@83.24.248.233.ipv4.supernova.orange.pl) |
2021-06-09 17:33:00 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Quit: WeeChat 3.1) |
2021-06-09 17:33:01 +0200 | sh9 | (~sh9@softbank060116136158.bbtec.net) |
2021-06-09 17:33:04 +0200 | jippiedoe | (~david@77-171-152-62.fixed.kpn.net) (Quit: Leaving) |
2021-06-09 17:33:05 +0200 | pbrisbin_ | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (Quit: WeeChat 3.1) |
2021-06-09 17:33:19 +0200 | pbrisbin | (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) |
2021-06-09 17:35:34 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-06-09 17:38:25 +0200 | agumonke` | (~user@88.160.31.174) |
2021-06-09 17:38:27 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-09 17:40:53 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-06-09 17:41:03 +0200 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
2021-06-09 17:41:35 +0200 | <delYsid> | Haha. So TH works now, but I need to wait a few minutes till ghci loads the module. |
2021-06-09 17:41:42 +0200 | <delYsid> | And building also takes a minute. |
2021-06-09 17:43:02 +0200 | <c_wraith> | TH is not fast. |
2021-06-09 17:43:12 +0200 | <c_wraith> | this is why I tend to avoid it when I can :) |
2021-06-09 17:43:19 +0200 | <c_wraith> | even if that means writing lenses by hand :) |
2021-06-09 17:45:13 +0200 | aerona | (~aerona@2600:6c54:4600:f300:8401:a988:a361:a685) |
2021-06-09 17:46:45 +0200 | fendor_ | fendor |
2021-06-09 17:46:52 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2021-06-09 17:47:12 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-09 17:47:59 +0200 | ddellaco_ | (~ddellacos@89.46.62.69) |
2021-06-09 17:48:20 +0200 | ddellacosta | (~ddellacos@89.46.62.34) (Ping timeout: 264 seconds) |
2021-06-09 17:49:33 +0200 | <delYsid> | If someone complains, I'll point them at merijn :-) |
2021-06-09 17:49:48 +0200 | <delYsid> | But I learnt a bunch, thanks for that!" |
2021-06-09 17:51:21 +0200 | wei2912_ | (~wei2912@112.199.250.21) (Quit: Lost terminal) |
2021-06-09 17:52:13 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-09 17:55:17 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
2021-06-09 17:55:30 +0200 | ddellaco_ | (~ddellacos@89.46.62.69) (Ping timeout: 264 seconds) |
2021-06-09 17:56:56 +0200 | ddellacosta | (~ddellacos@86.106.121.108) |
2021-06-09 17:59:21 +0200 | brandonh | (~brandonh@151.38.222.167) (Quit: brandonh) |
2021-06-09 18:00:02 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-09 18:01:08 +0200 | johnw | (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) |
2021-06-09 18:01:17 +0200 | nsilv1 | (~nsilv@212.103.198.210) (Quit: WeeChat 3.0.1) |
2021-06-09 18:04:10 +0200 | azeem | (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-06-09 18:05:59 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 244 seconds) |
2021-06-09 18:07:31 +0200 | ddellaco_ | (~ddellacos@89.46.62.73) |
2021-06-09 18:08:45 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-06-09 18:09:04 +0200 | ddellac__ | (~ddellacos@86.106.121.26) |
2021-06-09 18:09:18 +0200 | ddellacosta | (~ddellacos@86.106.121.108) (Ping timeout: 264 seconds) |
2021-06-09 18:10:46 +0200 | lucubratiuncula | (~guiot@dynamic-adsl-84-220-161-37.clienti.tiscali.it) |
2021-06-09 18:10:59 +0200 | mpt | (~tom@2a02:908:1862:49e0::5) (Quit: WeeChat 3.1) |
2021-06-09 18:11:36 +0200 | lucubratiuncula | (~guiot@dynamic-adsl-84-220-161-37.clienti.tiscali.it) (Client Quit) |
2021-06-09 18:11:48 +0200 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:190f:d7af:8eb9:1d14) |
2021-06-09 18:12:11 +0200 | biberu | (~biberu@user/biberu) |
2021-06-09 18:12:42 +0200 | ddellaco_ | (~ddellacos@89.46.62.73) (Ping timeout: 244 seconds) |
2021-06-09 18:13:02 +0200 | slowButP1esent | slowButPresent |
2021-06-09 18:13:34 +0200 | samebchase6 | samebchase |
2021-06-09 18:15:08 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-09 18:15:17 +0200 | pe200012 | (~pe200012@183.236.83.76) (Ping timeout: 244 seconds) |
2021-06-09 18:16:00 +0200 | knu | (~knu@mue-88-130-62-022.dsl.tropolys.de) |
2021-06-09 18:16:11 +0200 | jess | (~jess@libera/staff/jess) () |
2021-06-09 18:16:41 +0200 | Baloo_ | (~Baloo_@45.83.220.183) |
2021-06-09 18:16:44 +0200 | azeem | (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) |
2021-06-09 18:17:42 +0200 | peutri_ | peutri |
2021-06-09 18:18:29 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-06-09 18:19:07 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-09 18:21:21 +0200 | Bartosz | (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-09 18:21:26 +0200 | azeem | (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Ping timeout: 265 seconds) |
2021-06-09 18:21:56 +0200 | ddellacosta | (~ddellacos@86.106.121.46) |
2021-06-09 18:24:31 +0200 | azeem | (~azeem@176.201.21.77) |
2021-06-09 18:24:44 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-06-09 18:24:54 +0200 | ddellac__ | (~ddellacos@86.106.121.26) (Ping timeout: 264 seconds) |
2021-06-09 18:25:29 +0200 | <knu> | Hey, I'm a bit confused with the behavior of haddock concerning data families |
2021-06-09 18:25:38 +0200 | sqrt2 | (~ben@80-108-18-7.cable.dynamic.surfer.at) (Read error: Connection reset by peer) |
2021-06-09 18:26:01 +0200 | fluffyballoon | (~fluffybal@2620:72:0:6480::10f7) (Quit: Client closed) |
2021-06-09 18:26:17 +0200 | <knu> | A module just defining instances won't list any of them in haddock, instead they are all in the module defining the data family |
2021-06-09 18:26:54 +0200 | <knu> | But if write module Barf (module Barf) where it lists every instance, but says that these are patterns |
2021-06-09 18:27:27 +0200 | sqrt2 | (~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net) |
2021-06-09 18:28:07 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-06-09 18:28:43 +0200 | <knu> | are data family instances equivalent to patterns? |
2021-06-09 18:31:36 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 18:32:06 +0200 | sqrt2 | (~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net) (Ping timeout: 264 seconds) |
2021-06-09 18:33:15 +0200 | <delYsid> | aha! [|| fromList $$(x)) ||] |
2021-06-09 18:33:18 +0200 | azeem | (~azeem@176.201.21.77) (Ping timeout: 252 seconds) |
2021-06-09 18:34:23 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 268 seconds) |
2021-06-09 18:36:34 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-06-09 18:36:38 +0200 | __monty__ | (~toonn@user/toonn) |
2021-06-09 18:37:17 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Remote host closed the connection) |
2021-06-09 18:38:29 +0200 | azeem | (~azeem@176.200.249.22) |
2021-06-09 18:39:03 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds) |
2021-06-09 18:41:38 +0200 | xerox_ | xerox |
2021-06-09 18:46:46 +0200 | motherfs1 | motherfsck |
2021-06-09 18:47:42 +0200 | azeem | (~azeem@176.200.249.22) (Ping timeout: 264 seconds) |
2021-06-09 18:49:05 +0200 | fvr | (uid503686@id-503686.highgate.irccloud.com) |
2021-06-09 18:49:47 +0200 | fvr | (uid503686@id-503686.highgate.irccloud.com) () |
2021-06-09 18:50:22 +0200 | azeem | (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) |
2021-06-09 18:50:34 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-09 18:51:54 +0200 | ikex | (~ash@user/ikex) |
2021-06-09 18:54:44 +0200 | <ski> | knu : huh ? |
2021-06-09 18:55:24 +0200 | <knu> | Jup, it's quite baffling to me |
2021-06-09 18:55:42 +0200 | wonko | (~wjc@62.115.229.50) |
2021-06-09 18:55:46 +0200 | <monochrom> | No, I'm sure ski means no one understands your question, it's incoherent. |
2021-06-09 18:56:18 +0200 | <knu> | Oh, how could I clarify? |
2021-06-09 18:56:20 +0200 | <monochrom> | Well, OK, I'll just speak for myself, I find it incoherent. |
2021-06-09 18:56:27 +0200 | <monochrom> | Show actual code? |
2021-06-09 18:56:41 +0200 | wallymathieu | (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
2021-06-09 18:57:17 +0200 | ozzymcdu1f | (~mathieu@81-234-151-21-no94.tbcn.telia.com) (Remote host closed the connection) |
2021-06-09 18:58:17 +0200 | <knu> | Hm, one moment, I'll upload a preview at hackage |
2021-06-09 18:58:46 +0200 | ozzymcduff | (~mathieu@81-234-151-21-no94.tbcn.telia.com) |
2021-06-09 18:59:40 +0200 | renzhi | (~xp@2607:fa49:6500:bc00::e7b) (Ping timeout: 268 seconds) |
2021-06-09 18:59:56 +0200 | Hecate | (~mariposa@user/hecate) (Quit: PissNet) |
2021-06-09 19:02:02 +0200 | laguneucl | (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Ping timeout: 265 seconds) |
2021-06-09 19:02:39 +0200 | Hecate | (~mariposa@user/hecate) |
2021-06-09 19:03:23 +0200 | <knu> | https://codeshare.io/zydqkN |
2021-06-09 19:04:19 +0200 | <knu> | If I generate haddock for these three modules, in module A I'll see both instances, in module B I'll see nothing and in module C it says pattern Zonk :: Foo Bool |
2021-06-09 19:05:29 +0200 | <monochrom> | Interesting. |
2021-06-09 19:05:34 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
2021-06-09 19:05:59 +0200 | <knu> | And with PatternSynonyms enabled, I can import C (pattern Zonk) |
2021-06-09 19:07:08 +0200 | <knu> | So I'm thinking, that in these cases, patterns and data family instances are the same |
2021-06-09 19:07:49 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2021-06-09 19:09:23 +0200 | danidiaz | (~ESDPC@static-35-0-85-188.ipcom.comunitel.net) |
2021-06-09 19:09:29 +0200 | fluffyballoon | (~fluffybal@2620:72:0:6480::10f7) |
2021-06-09 19:09:47 +0200 | <knu> | It get's worse: |
2021-06-09 19:10:31 +0200 | econo | (uid147250@user/econo) |
2021-06-09 19:10:38 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) |
2021-06-09 19:10:40 +0200 | <monochrom> | They are certainly not the same. You can't use PatternSynonyms to define data family instances. |
2021-06-09 19:10:56 +0200 | <knu> | If I'm with ghci in module A, I can import B (Foo(Barf)) but I can not import C (Foo(Zonk)) |
2021-06-09 19:11:13 +0200 | danidiaz1 | (~ESDPC@static-35-0-85-188.ipcom.comunitel.net) (Ping timeout: 265 seconds) |
2021-06-09 19:11:34 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (*.net *.split) |
2021-06-09 19:11:39 +0200 | <knu> | It'll say, that C doesn't export Foo, so I can import it only by importing all of C or make a pattern import |
2021-06-09 19:12:47 +0200 | <monochrom> | I agree with the compiler about "C doesn't export Foo". This one is basic. |
2021-06-09 19:13:26 +0200 | <knu> | yes, but why doesn't he complain about import B (Foo(Barf)) |
2021-06-09 19:14:04 +0200 | <knu> | also, I can't import C (Zonk) |
2021-06-09 19:14:47 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-06-09 19:16:47 +0200 | <knu> | I'm writing a lib with a lot of data family instances, which I'd like to split in different modules to have a clean namespace. Now I'm forced to choose between modules without haddock, modules in which haddock claims are only patterns and which aren't easily individually importable. |
2021-06-09 19:17:28 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-06-09 19:17:51 +0200 | infinisi1 | (~infinisil@mail.infinisil.com) (Quit: Configuring ZNC, sorry for the joins/quits!) |
2021-06-09 19:18:27 +0200 | infinisil | (~infinisil@mail.infinisil.com) |
2021-06-09 19:18:42 +0200 | <knu> | hm |
2021-06-09 19:19:03 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Read error: Connection reset by peer) |
2021-06-09 19:19:29 +0200 | <ski> | knu : i guess it might be implicitly defining a pattern synonym `Zonk' for `Foo Bool' ? |
2021-06-09 19:19:37 +0200 | <maerwald> | monochrom: did you follow the HasCallstack base/Data.List RFC? I'm wondering what you think about the `Partial` typeclass approach that was brought up (and is used by purescript it seems) |
2021-06-09 19:19:55 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-06-09 19:20:16 +0200 | <monochrom> | I didn't. |
2021-06-09 19:20:17 +0200 | <ski> | knu : try `module C (module A,module C) where ...' and then try `import C (Foo(Zonk))' ? |
2021-06-09 19:20:25 +0200 | spatchkaa__ | spatchkaa |
2021-06-09 19:20:52 +0200 | <maerwald> | https://mail.haskell.org/pipermail/libraries/2021-June/031292.html |
2021-06-09 19:21:00 +0200 | <monochrom> | What is the semantics of Partial? |
2021-06-09 19:21:11 +0200 | <maerwald> | I find it very foggy |
2021-06-09 19:21:24 +0200 | <maerwald> | something like "may call `error`... or not" |
2021-06-09 19:21:27 +0200 | spatchkaa | (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Quit: Leaving) |
2021-06-09 19:21:32 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
2021-06-09 19:21:38 +0200 | <knu> | @ski: Yes, I've tried that one. In this case the import works. In haddock I'll get the data family with both instances and additionally the pattern Zonk |
2021-06-09 19:21:38 +0200 | <lambdabot> | Unknown command, try @list |
2021-06-09 19:22:08 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-06-09 19:22:32 +0200 | <ski> | knu : does that solve your problem ? |
2021-06-09 19:22:37 +0200 | <knu> | So this would be my third option, which would nuke my haddocks, because my data families have about 100 instances |
2021-06-09 19:22:50 +0200 | <ski> | knu : also, what if you try `module C (Foo,module C) where ...' ? |
2021-06-09 19:22:59 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-06-09 19:23:00 +0200 | <knu> | Same result |
2021-06-09 19:23:05 +0200 | <monochrom> | This is deja vu. I think I saw this in a dream some years ago... |
2021-06-09 19:23:33 +0200 | <maerwald> | quite possible |
2021-06-09 19:24:09 +0200 | <monochrom> | Unlike IsPartial, HasCallBack does not automatically propagate. |
2021-06-09 19:24:43 +0200 | ski | . o O ( `promiseTotal :: (IsPartial => a) -> a' ) |
2021-06-09 19:25:00 +0200 | nschoe | (~quassel@178.251.84.79) (Ping timeout: 252 seconds) |
2021-06-09 19:25:04 +0200 | <maerwald> | ski: yeah...which may completely lie |
2021-06-09 19:25:09 +0200 | <ski> | obviously |
2021-06-09 19:25:21 +0200 | <maerwald> | refactored out some stuff, forgot to remove it |
2021-06-09 19:25:23 +0200 | <maerwald> | oops |
2021-06-09 19:25:46 +0200 | <maerwald> | it's basically unsafePerformIO from a different angle |
2021-06-09 19:25:55 +0200 | fabfianda | (~fabfianda@mob-5-90-243-109.net.vodafone.it) |
2021-06-09 19:26:11 +0200 | <maerwald> | you have to do proper local reasoning for it to be correct |
2021-06-09 19:26:23 +0200 | <monochrom> | I think I'm on the fence for this. And regardless of any detail refinement such as "does it propagate?" "does it have actual semantic behaviour?" "how annoying is it going to be?" |
2021-06-09 19:26:31 +0200 | ski | . o O ( "If you lie to the compiler, the compiler will get its revenge!" ) |
2021-06-09 19:26:46 +0200 | Morrow | (~Morrow@37.142.145.18) |
2021-06-09 19:26:54 +0200 | <ski> | maerwald : except it's clearer on what the proof obligation is |
2021-06-09 19:27:05 +0200 | <maerwald> | ski: is it? |
2021-06-09 19:27:29 +0200 | <maerwald> | foo :: FilePath -> IO () -- what if this crashes on non-absolute paths? |
2021-06-09 19:27:33 +0200 | <maerwald> | does it make it partial? |
2021-06-09 19:28:10 +0200 | <maerwald> | wait... now, does it call `error` or `throwIO`, or... |
2021-06-09 19:28:14 +0200 | <maerwald> | and, does the user care? |
2021-06-09 19:28:17 +0200 | <monochrom> | "partial" is not a notion for effects. At least by my definitions. |
2021-06-09 19:28:23 +0200 | <ski> | insofar as the partiality of the relevant operation is specified, at least |
2021-06-09 19:28:31 +0200 | <maerwald> | monochrom: SPJ seemed to consider it an effect |
2021-06-09 19:28:32 +0200 | <ski> | maerwald : imho, no |
2021-06-09 19:28:45 +0200 | <ski> | partiality is a side-effect |
2021-06-09 19:28:57 +0200 | <maerwald> | uuuhm |
2021-06-09 19:28:59 +0200 | <ski> | ("no", to "does it make it partial?") |
2021-06-09 19:29:00 +0200 | Morrow | (~Morrow@37.142.145.18) (Read error: Connection reset by peer) |
2021-06-09 19:29:30 +0200 | <monochrom> | Err wait, nevermind, foo can still be partial from the POV of math function X->Y under Y=IO() |
2021-06-09 19:29:36 +0200 | <ski> | (just like nontermination is a side-effect) |
2021-06-09 19:29:43 +0200 | <knu> | @ski: module C (module A, module C) where actually solves my issue in the prettiest way |
2021-06-09 19:29:43 +0200 | <lambdabot> | Unknown command, try @list |
2021-06-09 19:29:50 +0200 | <knu> | thanks |
2021-06-09 19:30:04 +0200 | <ski> | `foo undefined' would be partial, though |
2021-06-09 19:30:13 +0200 | <ski> | knu : i was just about to ask if your issue was resolved |
2021-06-09 19:30:26 +0200 | <zzz> | imagine i have some type T = TA Bool | TB Bool and i want to have a list [T] where all T values alternate between True and False. Is there a way I can express this constraint at the type level? |
2021-06-09 19:30:26 +0200 | Morrow | (~Morrow@31.154.96.164) |
2021-06-09 19:30:35 +0200 | <maerwald> | monochrom: yeah, there are multiple ways to interpret this |
2021-06-09 19:30:40 +0200 | <knu> | ski: not perfectly, but it's the best solution until now |
2021-06-09 19:30:43 +0200 | <ski> | okay |
2021-06-09 19:30:53 +0200 | <knu> | it still claims to export a lot of patterns |
2021-06-09 19:30:57 +0200 | <ski> | zzz : not alternate between `TA' and `TB', then ? |
2021-06-09 19:31:11 +0200 | <knu> | but I can import them at least without using a pragma |
2021-06-09 19:31:22 +0200 | <zzz> | ski: no, so [TA True, TA False, TA True...] would be valid |
2021-06-09 19:31:50 +0200 | <knu> | and it doesn't spam the documentation with every instance |
2021-06-09 19:31:55 +0200 | <ski> | zzz : how about only storing the initial `Bool', and then a list of `TA's/`TB's, with no `Bool's in them ? |
2021-06-09 19:32:22 +0200 | <monochrom> | I realize that I don't know what to make of: haha :: IO (); haha = do { x <- getLine; print (head x) } |
2021-06-09 19:32:47 +0200 | <ski> | possibly partial |
2021-06-09 19:32:56 +0200 | <monochrom> | Firstly it is not a function. Secondly it is not bottom of IO(). But it still bottoms out. |
2021-06-09 19:32:58 +0200 | <maerwald> | Maybe Partial => IO () |
2021-06-09 19:33:41 +0200 | <ski> | partial on some executions. just like `head' is partial, for some calls to it |
2021-06-09 19:33:52 +0200 | <monochrom> | At which point my usual reaction is "these are useless dichotomies: bottom vs non-bottom, function vs non-function value, partial vs total" |
2021-06-09 19:34:05 +0200 | <maerwald> | everything is a...? |
2021-06-09 19:34:35 +0200 | <ski> | do we need another word for a "dichotomy" which is not decidable, but only observable / semi-decidable ? |
2021-06-09 19:34:58 +0200 | <monochrom> | No. |
2021-06-09 19:35:22 +0200 | <monochrom> | Some undecidable dichotomies are still useful. |
2021-06-09 19:35:26 +0200 | <ski> | knu : btw, i wonder whether `module C (module A,Foo (Zonk)) where ...' would work, too |
2021-06-09 19:35:50 +0200 | <monochrom> | At least, useful for stating useful undecidable problems? haha |
2021-06-09 19:36:40 +0200 | <maerwald> | Anyway, HasCallStack seems much less controversial, but some consider this will have negative effect on... teaching |
2021-06-09 19:38:12 +0200 | <monochrom> | This is because HasCallStack is not nagware but IsPartial is. |
2021-06-09 19:40:04 +0200 | <monochrom> | But I may like to hear how HasCallStack can be negative for teaching. |
2021-06-09 19:41:10 +0200 | <monochrom> | "module C(Foo(Zonk))" should be just fine, but I haven't tested. |
2021-06-09 19:41:12 +0200 | chomwitt | (~Pitsikoko@athedsl-20549.home.otenet.gr) |
2021-06-09 19:41:32 +0200 | <maerwald> | monochrom: https://mail.haskell.org/pipermail/libraries/2021-June/031281.html |
2021-06-09 19:41:35 +0200 | <maerwald> | there are the arguments |
2021-06-09 19:41:57 +0200 | <monochrom> | I am just reading https://downloads.haskell.org/~ghc/8.10.5/docs/html/users_guide/glasgow_exts.html#import-and-export |
2021-06-09 19:42:23 +0200 | <monochrom> | Thanks maerwald |
2021-06-09 19:42:33 +0200 | <knu> | ski: just checked, importing works fine, but haddock now lists Foo with every instance, not only Zonk. At least, there is nothing about patterns. |
2021-06-09 19:43:42 +0200 | Morrow | (~Morrow@31.154.96.164) (Ping timeout: 252 seconds) |
2021-06-09 19:44:04 +0200 | <ski> | knu : "now lists Foo with every instance, not only Zonk" -- is that preferrable ? |
2021-06-09 19:44:34 +0200 | <knu> | for my case no |
2021-06-09 19:44:40 +0200 | <tomsmeding> | delYsid: Sorry to see you having trouble with the paste site! I see I apparently forgot to send a content-type of text/html (that's now fixed). Are there other specific things that don't work for you? |
2021-06-09 19:45:04 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-09 19:45:08 +0200 | <knu> | there a lot of instances, so it should only list importable instances |
2021-06-09 19:45:33 +0200 | <tomsmeding> | incidentally, for the cases where I use a text-mode browser, I use elinks rather than lynx because it has better support for various web constructs, but I don't know what works for you |
2021-06-09 19:47:15 +0200 | danidiaz1 | (~ESDPC@static-35-0-85-188.ipcom.comunitel.net) |
2021-06-09 19:47:24 +0200 | <monochrom> | I ditched lynx for elinks too. |
2021-06-09 19:47:41 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-09 19:47:44 +0200 | <monochrom> | lynx makes you remember hotkeys. elinks offers a browsable menu. |
2021-06-09 19:48:08 +0200 | <tomsmeding> | also, the line numbers table on my paste site works in elinks whereas it doesn't in lynx :p |
2021-06-09 19:48:55 +0200 | <monochrom> | The problem with hotkeys is the long tail. There are a lot of hotkeys you use infrequently enough that you will never remember, but still frequent enough that you still actually need. |
2021-06-09 19:49:26 +0200 | sqrt2 | (~ben@tunnel330957-pt.tunnel.tserv6.fra1.ipv6.he.net) |
2021-06-09 19:49:35 +0200 | <monochrom> | The only merit of lynx is first-to-market, as usual. |
2021-06-09 19:49:38 +0200 | Izem | (~Izem@bras-base-london1483w-grc-38-65-95-41-91.dsl.bell.ca) |
2021-06-09 19:49:50 +0200 | danidiaz | (~ESDPC@static-35-0-85-188.ipcom.comunitel.net) (Ping timeout: 244 seconds) |
2021-06-09 19:49:53 +0200 | <monochrom> | and stronger propaganda. |
2021-06-09 19:49:55 +0200 | <Izem> | what are type annotations in Haskell, expressions? |
2021-06-09 19:50:05 +0200 | <Rembane_> | Izem: No, they are type annotations. |
2021-06-09 19:50:14 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-09 19:50:17 +0200 | <monochrom> | type expressions >:) |
2021-06-09 19:50:36 +0200 | <monochrom> | "everything is an expression" |
2021-06-09 19:50:48 +0200 | <Izem> | ok, I suppose they are just newline delimited also? |
2021-06-09 19:50:55 +0200 | <tomsmeding> | except the things that aren't :p |
2021-06-09 19:51:11 +0200 | <monochrom> | yes until you find out about semicolon |
2021-06-09 19:51:18 +0200 | <boxscape> | I'd say depending on whether they're inline type annotations or type annotations belonging to a declaration, they can be part of an expression or part of a declaration. But they are not these things by themselves |
2021-06-09 19:51:19 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-09 19:51:24 +0200 | pera | (~pera@user/pera) (Ping timeout: 252 seconds) |
2021-06-09 19:52:05 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-09 19:52:13 +0200 | <Izem> | haskell doesn't seem use semi colon insertion |
2021-06-09 19:52:13 +0200 | <monochrom> | I agree with boxscape. |
2021-06-09 19:52:25 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 244 seconds) |
2021-06-09 19:52:26 +0200 | <Izem> | so I guess they are just used in specific places |
2021-06-09 19:53:19 +0200 | <boxscape> | Izem semicolons and braces can be used optionally instead of newlines and indentation |
2021-06-09 19:53:20 +0200 | <boxscape> | % let {semicolon = ";"; colon = ":"} in do {print semicolon; print colon} |
2021-06-09 19:53:20 +0200 | <yahb> | boxscape: ";"; ":" |
2021-06-09 19:54:13 +0200 | <Izem> | impressive |
2021-06-09 19:54:27 +0200 | <ski> | Izem : type signatures are one thing, type ascriptions another |
2021-06-09 19:54:56 +0200 | <Izem> | the former is for functions, the later for simple variables? |
2021-06-09 19:55:05 +0200 | <ski> | no |
2021-06-09 19:55:23 +0200 | <ski> | undefinedBool :: Bool |
2021-06-09 19:55:29 +0200 | <ski> | undefinedBool = undefined :: Bool |
2021-06-09 19:55:52 +0200 | <Izem> | ok |
2021-06-09 19:56:00 +0200 | <Izem> | that looks like a type declaration |
2021-06-09 19:56:02 +0200 | <ski> | the first line is a type signature. the expression (body of the definition, after the `=') on the second line is a type ascription |
2021-06-09 19:56:23 +0200 | <Izem> | have not seen anyone use the word ascription :P |
2021-06-09 19:56:40 +0200 | <boxscape> | (I haven't, either) |
2021-06-09 19:57:05 +0200 | <ski> | data Bool = False | True -- this is a data type declaration (and definition) |
2021-06-09 19:57:09 +0200 | <boxscape> | the haskell report uses type signature for it |
2021-06-09 19:57:23 +0200 | <boxscape> | ("expression type signature", to be precise) |
2021-06-09 19:57:48 +0200 | <Izem> | why did they need a data keyword to distinguish? |
2021-06-09 19:58:02 +0200 | <ski> | it's also possible (with extension), to put an ascription on a pattern |
2021-06-09 19:58:15 +0200 | <ski> | idBool (b :: Bool) = b |
2021-06-09 19:58:26 +0200 | <ski> | or, inside `do' : |
2021-06-09 19:58:36 +0200 | <ski> | b :: Bool <- readLn |
2021-06-09 19:58:49 +0200 | <ski> | or in a lambda expression |
2021-06-09 19:59:00 +0200 | <ski> | \ (b :: Bool) -> ..b.. |
2021-06-09 19:59:03 +0200 | <boxscape> | % True = False |
2021-06-09 19:59:03 +0200 | <yahb> | boxscape: |
2021-06-09 19:59:04 +0200 | <boxscape> | hm |
2021-06-09 19:59:06 +0200 | Bartosz | (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-09 19:59:11 +0200 | <boxscape> | gonna put this at the top level of my next file |
2021-06-09 19:59:44 +0200 | <ski> | Izem : `data' is for declaring data types. there's also `newtype' and `type', which also declares types |
2021-06-09 20:00:09 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-09 20:00:31 +0200 | <ski> | % let !True = False |
2021-06-09 20:00:31 +0200 | <yahb> | ski: *** Exception: <interactive>:7:5-17: Non-exhaustive patterns in True |
2021-06-09 20:00:48 +0200 | <Izem> | ok, so I suspect there are different classes of types |
2021-06-09 20:01:02 +0200 | <Izem> | data is for algebraic data types iirc |
2021-06-09 20:01:26 +0200 | <ski> | `type' declares a new name (possibly parameterized) for an existing type. a type synonym |
2021-06-09 20:02:07 +0200 | <ski> | `data' and `newtype' declares new types, together with ways to construct values of the new type |
2021-06-09 20:02:15 +0200 | <Izem> | does haskell have symbols? |
2021-06-09 20:02:22 +0200 | <Izem> | no need right? |
2021-06-09 20:02:23 +0200 | <ski> | Izem : yes (algebraic data types) |
2021-06-09 20:02:26 +0200 | <ski> | no symbols |
2021-06-09 20:02:28 +0200 | <Izem> | ah kk |
2021-06-09 20:02:42 +0200 | <ski> | you can use constant data constructors, mostly |
2021-06-09 20:02:53 +0200 | <Izem> | interesting |
2021-06-09 20:03:15 +0200 | <ski> | data Weekday = Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
2021-06-09 20:03:45 +0200 | <Izem> | are True and False special? |
2021-06-09 20:04:18 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-09 20:04:20 +0200 | <edmundnoble_> | Nope |
2021-06-09 20:04:26 +0200 | <edmundnoble_> | `data Bool = True | False` |
2021-06-09 20:04:26 +0200 | <boxscape> | only in the sense that they are used by a few builtin constructs, but Bool is declared as a regular type |
2021-06-09 20:04:39 +0200 | <edmundnoble_> | ^ |
2021-06-09 20:05:39 +0200 | <DigitalKiwi> | data Bool = True | False | FileNotFound |
2021-06-09 20:05:56 +0200 | <edmundnoble_> | If you want to define a new datatype, it will be with either `data` or `newtype`, and `newtype` only has subtle operational differences from `data`, it's not fundamentally different at all |
2021-06-09 20:07:11 +0200 | <edmundnoble_> | Type aliases, defined with `type`, have no semantic content and with the exception of a few small things (like error messages changing) could be implemented entirely with preprocessor directives replacing the alias with its contents |
2021-06-09 20:07:14 +0200 | <ski> | Izem : well, there's `OverloadedLabels' <https://downloads.haskell.org/~ghc/8.10.5/docs/html/users_guide/glasgow_exts.html#extension-Overlo…> |
2021-06-09 20:07:18 +0200 | <edmundnoble_> | (er, definition, more than contents) |
2021-06-09 20:07:52 +0200 | <ski> | @src Bool |
2021-06-09 20:07:52 +0200 | <lambdabot> | data Bool = False | True deriving (Eq, Ord) |
2021-06-09 20:08:16 +0200 | <Izem> | cool |
2021-06-09 20:08:25 +0200 | <ski> | (`False' comes before `True', in the `Ord' instance (and also in `Enum',`Bounded' and `Ix') |
2021-06-09 20:09:39 +0200 | <ski> | `Bool' has special support in the `if'-`then'-`else' syntactic sugar (one could just as well use `case'-`of'), and in guards (occuring in pattern-matching, and in list comprehensions) |
2021-06-09 20:09:39 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-06-09 20:09:45 +0200 | <vaibhavsagar[m]> | can I have a `hie.yaml` configuration that specifies both cabal and stack? |
2021-06-09 20:10:19 +0200 | <delYsid> | tomsmeding: Oh, very cool you just picked that up from chatlog! If you send me a link, I can recheck |
2021-06-09 20:10:24 +0200 | <vaibhavsagar[m]> | this project (https://github.com/Avi-D-coder/implicit-hie) seems to have two different files that need to be moved into the correct place |
2021-06-09 20:10:34 +0200 | <Izem> | what's the difference between case-of and guards? |
2021-06-09 20:10:48 +0200 | <ephemient> | if-then-else desugars to case-of in core, IIRC |
2021-06-09 20:11:14 +0200 | <ski> | what's the difference between an apple and a saxophone ? |
2021-06-09 20:11:25 +0200 | <ski> | they are not directly comparable |
2021-06-09 20:11:38 +0200 | <boxscape> | Izem case-of is used to check whether a value has a certain structure, i.e. which constructors its made up of. Guards are used to check arbitrary boolean conditions |
2021-06-09 20:11:52 +0200 | <Izem> | I see |
2021-06-09 20:11:59 +0200 | <ski> | guards can occur both in `case'-`of', and in "ordinary" function parameter pattern-matching |
2021-06-09 20:12:01 +0200 | <tomsmeding> | delYsid: I guess the same links works :) https://paste.tomsmeding.com/NBPCg1ip |
2021-06-09 20:12:16 +0200 | <vaibhavsagar[m]> | guards desugar to case-of too IIRC |
2021-06-09 20:12:29 +0200 | <Izem> | interesting |
2021-06-09 20:12:51 +0200 | <Izem> | guard clauses are really novel |
2021-06-09 20:13:15 +0200 | cactinoob | (~cactinoob@adsl-64-237-237-9.prtc.net) |
2021-06-09 20:13:27 +0200 | <ski> | @src filter |
2021-06-09 20:13:27 +0200 | <lambdabot> | filter _ [] = [] |
2021-06-09 20:13:27 +0200 | <lambdabot> | filter p (x:xs) |
2021-06-09 20:13:27 +0200 | <lambdabot> | | p x = x : filter p xs |
2021-06-09 20:13:27 +0200 | <lambdabot> | | otherwise = filter p xs |
2021-06-09 20:13:41 +0200 | <ski> | this is equivalent to |
2021-06-09 20:14:03 +0200 | <ski> | filter p xs0 = case xs0 of |
2021-06-09 20:14:43 +0200 | <ski> | [ ] -> [ ] |
2021-06-09 20:14:49 +0200 | <ski> | x:xs |
2021-06-09 20:15:04 +0200 | <ski> | | p x -> x : filter p xs |
2021-06-09 20:15:23 +0200 | <ski> | | otherwise -> filter p xs |
2021-06-09 20:16:08 +0200 | <Izem> | thanks |
2021-06-09 20:16:08 +0200 | ikex | (~ash@user/ikex) (Ping timeout: 268 seconds) |
2021-06-09 20:18:31 +0200 | <ski> | Miranda had guards. i'd guess ISWIM had them, too |
2021-06-09 20:19:08 +0200 | kaizen | (uid501599@id-501599.brockwell.irccloud.com) |
2021-06-09 20:19:34 +0200 | <Izem> | yep, though they are different than haskell |
2021-06-09 20:19:48 +0200 | <Izem> | it's like `foo, if bar` |
2021-06-09 20:20:17 +0200 | <delYsid> | tomsmeding: Woohoo! Thanks for fixing the web! :-) |
2021-06-09 20:20:23 +0200 | <delYsid> | (IOW, works for me now) |
2021-06-09 20:20:38 +0200 | <tomsmeding> | delYsid: the line numbers are still kind of borked in lynx, but at least you can read the code :) |
2021-06-09 20:21:06 +0200 | <delYsid> | yeah, about 90% of all paste thingies have the same line number problem, so I guess thats fine |
2021-06-09 20:21:16 +0200 | <tomsmeding> | (they work in elinks) |
2021-06-09 20:21:31 +0200 | <tomsmeding> | (suggests to me that perhaps lynx has some weird handling of html tables) |
2021-06-09 20:22:11 +0200 | <delYsid> | Interesting. I am too old to change browsers, but I really need to remember that one |
2021-06-09 20:22:54 +0200 | <ski> | hm, on a quick scan through Peter J. Landin's "The Next 700 Programming Languages" in 1966-03 at <http://thecorememory.com/Next_700.pdf>, i don't see guards, just conditionals |
2021-06-09 20:23:06 +0200 | <ski> | Izem : yep |
2021-06-09 20:23:26 +0200 | <delYsid> | Now, if someone could fix hackage source links please ... it drives me crazy not being able to casually look at sources, always have to fetch with git and find the reference by hand... |
2021-06-09 20:23:39 +0200 | <delYsid> | But I guess that train has left the station. |
2021-06-09 20:26:00 +0200 | <sm[m]> | delYsid: I use haddock's "source" links on hackage all the time |
2021-06-09 20:26:56 +0200 | <tomsmeding> | sm[m]: in a text-mode browser they suck heavily because the tooltips are inlined |
2021-06-09 20:27:07 +0200 | <sm[m]> | ah |
2021-06-09 20:27:30 +0200 | tomsmeding | wonders how hard it would be to make a basic proxy that filters out those tooltips |
2021-06-09 20:27:37 +0200 | <sm[m]> | Haskell Foundation is keen on accessibility, it could be worth raising on discourse |
2021-06-09 20:27:44 +0200 | <tomsmeding> | delYsid: ^ |
2021-06-09 20:30:28 +0200 | fabfianda | (~fabfianda@mob-5-90-243-109.net.vodafone.it) (Read error: Connection reset by peer) |
2021-06-09 20:30:36 +0200 | <boxscape> | I wish haddock source links worked across packages |
2021-06-09 20:30:41 +0200 | alphacath | (~alpha@host-79-36-63-89.retail.telecomitalia.it) |
2021-06-09 20:30:58 +0200 | <boxscape> | I guess that's not really feasible? |
2021-06-09 20:31:31 +0200 | <Rembane_> | I don't think I know the problem good enough, so I think it's 100% feasible. |
2021-06-09 20:31:47 +0200 | <boxscape> | nice |
2021-06-09 20:33:08 +0200 | alphacath | (~alpha@host-79-36-63-89.retail.telecomitalia.it) () |
2021-06-09 20:33:13 +0200 | <Rembane_> | Because every package knows which other packages it depends on, and if those packages are available somewhere that's linkable, it should be possible to create a link to that place. Either locally or on hackage. |
2021-06-09 20:34:12 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
2021-06-09 20:34:25 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-06-09 20:34:28 +0200 | <boxscape> | hmm I suppose the hackage URLs are pretty stable |
2021-06-09 20:35:31 +0200 | <tomsmeding> | sometimes I see hackage links in doc text that are supposed to go to a different package, but that seem to "strip off one path component too little" |
2021-06-09 20:35:51 +0200 | <tomsmeding> | so you get pkgA-1.0/pkgB-1.0/module.html |
2021-06-09 20:36:18 +0200 | Bartosz | (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-09 20:36:20 +0200 | <boxscape> | interestingly the source link for Bool points to a different package (ghc-prim) https://hackage.haskell.org/package/base-4.15.0.0/docs/Data-Bool.html#t:Bool |
2021-06-09 20:36:22 +0200 | <boxscape> | but it 404s |
2021-06-09 20:36:40 +0200 | <boxscape> | tomsmeding oh it does exactly what you're saying |
2021-06-09 20:37:21 +0200 | <tomsmeding> | oh the whole link is also wrong |
2021-06-09 20:37:41 +0200 | <tomsmeding> | it goes to base-4.15.0.0/ghc-prim-0.7.0/src/GHC-Types.html#Bool but the correct path is ghc-prim-0.7.0/docs/src/GHC-Types.html#Bool |
2021-06-09 20:37:44 +0200 | <tomsmeding> | note the /docs/ |
2021-06-09 20:37:46 +0200 | <boxscape> | yeah |
2021-06-09 20:37:56 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-09 20:38:01 +0200 | <tomsmeding> | wonder how that happens |
2021-06-09 20:38:37 +0200 | Deide | (~Deide@wire.desu.ga) |
2021-06-09 20:38:37 +0200 | Deide | (~Deide@wire.desu.ga) (Changing host) |
2021-06-09 20:38:37 +0200 | Deide | (~Deide@user/deide) |
2021-06-09 20:41:44 +0200 | Bartosz | (~textual@24.35.90.211) (Client Quit) |
2021-06-09 20:42:23 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-09 20:43:39 +0200 | pgib | (~textual@173.38.117.92) |
2021-06-09 20:43:58 +0200 | jco | (~jco@c83-248-173-38.bredband.tele2.se) |
2021-06-09 20:44:00 +0200 | knu | (~knu@mue-88-130-62-022.dsl.tropolys.de) (Quit: Connection closed) |
2021-06-09 20:44:45 +0200 | MQ-17J | (~MQ-17J@8.21.10.116) (Ping timeout: 252 seconds) |
2021-06-09 20:45:03 +0200 | MQ-17J | (~MQ-17J@8.21.10.116) |
2021-06-09 20:45:20 +0200 | <zzz> | can i have an IntMap where the keys are newtype T = T Int ?] |
2021-06-09 20:45:32 +0200 | beka | (~beka@104.193.170-254.PUBLIC.monkeybrains.net) |
2021-06-09 20:46:08 +0200 | <xerox> | zzz: I use this for that purpose https://github.com/minoki/unboxing-vector |
2021-06-09 20:47:09 +0200 | <xerox> | (it's not exactly what you asked for if the container being a Map matters more than it being indexed with a newtype transparently) |
2021-06-09 20:47:17 +0200 | <jco> | Hello, I'm fooling around a bit with trying to convert .edn to .json. Is there a better way to handle the possibility of error when loading a file, than what I do here: http://ix.io/3pnN? I created a `ExceptT` type alias there, to be able to just `throwError` if anything goes wrong. |
2021-06-09 20:50:06 +0200 | <zzz> | xerox: thanks im taking a look. however i really just wanted a newtype indexed IntMap |
2021-06-09 20:51:19 +0200 | MQ-17J | (~MQ-17J@8.21.10.116) (Ping timeout: 244 seconds) |
2021-06-09 20:51:36 +0200 | MQ-17J | (~MQ-17J@8.21.10.116) |
2021-06-09 20:52:02 +0200 | <lyxia> | jco: you could throw the exception in IO |
2021-06-09 20:57:01 +0200 | zeenk | (~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41) (Quit: Konversation terminated!) |
2021-06-09 20:57:50 +0200 | <jco> | lyxia: OK, makes it bit simpler yes. |
2021-06-09 21:00:33 +0200 | v01d4lph4 | (~v01d4lph4@122.160.65.250) |
2021-06-09 21:00:33 +0200 | v01d4lph4 | (~v01d4lph4@122.160.65.250) (Changing host) |
2021-06-09 21:00:33 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) |
2021-06-09 21:01:37 +0200 | <dminuoso> | tomsmeding: I cant help but wonder whether ^ is meaningful to delYsid. |
2021-06-09 21:01:53 +0200 | Izem | (~Izem@bras-base-london1483w-grc-38-65-95-41-91.dsl.bell.ca) () |
2021-06-09 21:02:16 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 21:03:02 +0200 | <tomsmeding> | dminuoso: I wondered that too after sending the message |
2021-06-09 21:04:12 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-06-09 21:05:06 +0200 | v01d4lph4 | (~v01d4lph4@user/v01d4lph4) (Ping timeout: 252 seconds) |
2021-06-09 21:05:28 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 268 seconds) |
2021-06-09 21:05:50 +0200 | <jco> | OK, another question, more related to how to avoid pyramids of doom when doing error handling: http://ix.io/3pnX. There's a better way to write that, right? |
2021-06-09 21:08:28 +0200 | <lyxia> | Re the haddock tooltips issue, it's a known issue https://github.com/haskell/haddock/issues/1250 |
2021-06-09 21:15:14 +0200 | Bartosz | (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-09 21:15:51 +0200 | danso | (~danso@modemcable156.91-20-96.mc.videotron.ca) |
2021-06-09 21:18:58 +0200 | danso | (~danso@modemcable156.91-20-96.mc.videotron.ca) (Read error: Connection reset by peer) |
2021-06-09 21:18:59 +0200 | dan-so | (~danso@modemcable156.91-20-96.mc.videotron.ca) |
2021-06-09 21:19:52 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-09 21:23:00 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-06-09 21:23:33 +0200 | gehmehgeh_ | (~user@user/gehmehgeh) |
2021-06-09 21:24:05 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2021-06-09 21:29:08 +0200 | ramon | (~ramon@user/ramon) (Ping timeout: 264 seconds) |
2021-06-09 21:29:44 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-09 21:30:04 +0200 | infandum | (~user@207.44.105.67.res-cmts.all2.ptd.net) |
2021-06-09 21:31:02 +0200 | <infandum> | I have converted my program to use optparse-applicative. Upon testing, I noticed I accidentally had "option auto" instead of "option str" (or strOption). Yet this bypassed the compilier. Is there a way to type-check this bug? |
2021-06-09 21:31:58 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-09 21:32:10 +0200 | <infandum> | (there are many, many options and will take a while to test them all) |
2021-06-09 21:32:44 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-09 21:33:07 +0200 | <dminuoso> | infandum: By the way, did you get my message regarding optparse-generic? |
2021-06-09 21:34:00 +0200 | <dminuoso> | infandum: And no, there's no easy way. |
2021-06-09 21:34:48 +0200 | <dminuoso> | I'd just avoid `option auto` to begin with, Read is not what you'd likely want |
2021-06-09 21:36:32 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-06-09 21:39:23 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-09 21:41:12 +0200 | <dminuoso> | Recall, that deriving generated Show is supposed to generate syntactically correct Haskell expressions that correspond to the value, and Read that would parse those back into values. |
2021-06-09 21:43:16 +0200 | hiruji | (~hiruji@user/hiruji) (Ping timeout: 272 seconds) |
2021-06-09 21:45:40 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-06-09 21:46:38 +0200 | <xerox> | anybody else getting ghcid stuck after the first try, no reload, after upgrading to 8.10.5? |
2021-06-09 21:47:18 +0200 | <xerox> | not even printing the "All good." |
2021-06-09 21:47:34 +0200 | <jco> | OK, found the answer to my own question. Pyramid of doom avoided with the help of `hoistEither` from the `errors` library. I like it: http://ix.io/3pob. |
2021-06-09 21:49:51 +0200 | notzmv | (~zmv@user/notzmv) |
2021-06-09 21:49:53 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2021-06-09 21:51:05 +0200 | <infandum> | dminuoso: I did (after I just resigned on), but it expired because I took too long. However, I just converted over to optparse-applicative as I could not figure it out and there seemed to be more features with optparse-applicative (but more boilerplate as well). |
2021-06-09 21:51:38 +0200 | <dminuoso> | infandum: https://gist.github.com/dminuoso/d68598ffb112cbe61c3759a530e2d837 |
2021-06-09 21:52:01 +0200 | <dminuoso> | You can use use both together |
2021-06-09 21:52:44 +0200 | kritzefitz_ | (~kritzefit@picard.host.weltraumschlangen.de) |
2021-06-09 21:52:57 +0200 | maerwald | (~maerwald@user/maerwald) (Ping timeout: 268 seconds) |
2021-06-09 21:53:03 +0200 | aerona | (~aerona@2600:6c54:4600:f300:8401:a988:a361:a685) (Quit: Leaving) |
2021-06-09 21:54:06 +0200 | kritzefitz | (~kritzefit@picard.host.weltraumschlangen.de) (Ping timeout: 265 seconds) |
2021-06-09 21:54:06 +0200 | kritzefitz_ | kritzefitz |
2021-06-09 21:54:23 +0200 | <ski> | @type maybe empty pure |
2021-06-09 21:54:24 +0200 | <lambdabot> | Alternative f => Maybe a -> f a |
2021-06-09 21:54:25 +0200 | <ski> | @type maybe mzero return |
2021-06-09 21:54:26 +0200 | <lambdabot> | MonadPlus m => Maybe a -> m a |
2021-06-09 21:54:28 +0200 | <ski> | @type either throwError return |
2021-06-09 21:54:28 +0200 | <lambdabot> | MonadError e m => Either e a -> m a |
2021-06-09 21:54:51 +0200 | <infandum> | dminuoso: I see, the instances were what I was missing |
2021-06-09 21:55:01 +0200 | <infandum> | You should submit that to optparse-generic documentation |
2021-06-09 21:55:34 +0200 | <dminuoso> | infandum: The trick is also the newtype wrapper. At that point you might as well submit the code itself. |
2021-06-09 21:55:46 +0200 | chexum | (~chexum@gateway/tor-sasl/chexum) |
2021-06-09 21:57:43 +0200 | jneira | (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Quit: Connection closed) |
2021-06-09 21:59:27 +0200 | maerwald | (~maerwald@mail.hasufell.de) |
2021-06-09 21:59:42 +0200 | dhouthoo_ | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1) |
2021-06-09 22:00:07 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-09 22:00:08 +0200 | <infandum> | dminuoso: You seem very knowledgeable on this -- is it possible to have the same option name have different help text (and even type) in different entrypoints in optparse-generic? It's possible in optparse-applicative it seems but not in optparse-generic. |
2021-06-09 22:00:36 +0200 | maerwald | (~maerwald@mail.hasufell.de) (Changing host) |
2021-06-09 22:00:36 +0200 | maerwald | (~maerwald@user/maerwald) |
2021-06-09 22:00:46 +0200 | <dminuoso> | Why shouldn't it be possible? |
2021-06-09 22:00:55 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-06-09 22:00:58 +0200 | <infandum> | like: command subcommand1 --arg string and command subcommand2 --arg int? |
2021-06-09 22:01:04 +0200 | AgentM | (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.) |
2021-06-09 22:01:08 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-06-09 22:01:12 +0200 | <dminuoso> | I don't see a reason why it wouldn't work. |
2021-06-09 22:01:21 +0200 | <infandum> | Because the compiler states that within the same record there are two different definitions |
2021-06-09 22:01:26 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Remote host closed the connection) |
2021-06-09 22:01:34 +0200 | <infandum> | or, between the two |
2021-06-09 22:01:37 +0200 | <dminuoso> | Ah I see. Use my Nested newtype wrapper to help out. |
2021-06-09 22:02:23 +0200 | <dminuoso> | You'd create a separate data type for each command, call it `data RC1 = RC1 { arg :: Int <?> "fancy number" }` and `data RC2 = RC2 { arg :: String <?> "fancy string" }` |
2021-06-09 22:02:40 +0200 | <dminuoso> | With OverloadedRecordFields enabled, these could even reside in the same module |
2021-06-09 22:03:08 +0200 | <dminuoso> | And then your command data type would just be `data C = C1 (Nested RC1) | C2 (Nested RC2)` |
2021-06-09 22:03:32 +0200 | <dminuoso> | Of course with each passing step you start accomulate a lot of cruft just to please the weird ergonomics of optparse-generic with non-obvious type level tricks |
2021-06-09 22:03:40 +0200 | <dminuoso> | Better to just write `optparse-applicative` parsers. |
2021-06-09 22:04:16 +0200 | <infandum> | which is ironic as optparse-generic is supposed to make the writing faster haha |
2021-06-09 22:04:22 +0200 | <infandum> | still, very interesting stuff! |
2021-06-09 22:04:35 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2021-06-09 22:04:49 +0200 | <dminuoso> | I can see how optparse-generic is nice to some people when want to quickly get some option parsing with minimal effort. |
2021-06-09 22:05:03 +0200 | juhp | (~juhp@128.106.188.66) (Ping timeout: 252 seconds) |
2021-06-09 22:05:05 +0200 | <dminuoso> | I might even use it for *some* parsers |
2021-06-09 22:05:15 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
2021-06-09 22:05:27 +0200 | <dminuoso> | As long as I'm ready to switch to optparse-applicative directly. Recall, you can combine/mix these freely, best of both worlds. |
2021-06-09 22:05:28 +0200 | <infandum> | yeah, I converted a while back to optparse-generic, but for this huge program with a lot of features and entrypoints it is a little unwieldy |
2021-06-09 22:06:25 +0200 | <dminuoso> | I do a similar thing with Aeson in one of my programs. About 90% of the instances are generated with generics (with deriving-aeson, for extra convenience), but I dont shy away from writing out 10% by hand because the generics dont do what I want. |
2021-06-09 22:06:42 +0200 | <dminuoso> | Or because I wanted to decouple the public representation from the internal one |
2021-06-09 22:07:06 +0200 | fendor | (~fendor@178.165.130.85.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-06-09 22:07:18 +0200 | juhp | (~juhp@128.106.188.66) |
2021-06-09 22:08:24 +0200 | <dminuoso> | infandum: Check out `parseRecord` from otpparse-generic. You can use these instances with the data types where it works, and then use `parseRecord` to glue this into your hand-written rest. |
2021-06-09 22:11:00 +0200 | jneira | (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) |
2021-06-09 22:12:12 +0200 | Bartosz | (~textual@24.35.90.211) |
2021-06-09 22:12:37 +0200 | <delYsid> | sm[m]: I am not on Discourse, mostly does to accessibility :-) |
2021-06-09 22:12:48 +0200 | <delYsid> | s/does/due/ |
2021-06-09 22:12:52 +0200 | haltux | (~haltux@a89-154-181-47.cpe.netcabo.pt) (Remote host closed the connection) |
2021-06-09 22:13:18 +0200 | stefan-_ | (~cri@42dots.de) (Ping timeout: 252 seconds) |
2021-06-09 22:13:32 +0200 | <sm[m]> | ack |
2021-06-09 22:17:15 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2021-06-09 22:17:42 +0200 | stefan-_ | (~cri@42dots.de) |
2021-06-09 22:18:31 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2021-06-09 22:19:23 +0200 | fresheye1 | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
2021-06-09 22:23:12 +0200 | <c_l_ste> | exit |
2021-06-09 22:23:17 +0200 | jco | (~jco@c83-248-173-38.bredband.tele2.se) (Ping timeout: 244 seconds) |
2021-06-09 22:23:20 +0200 | c_l_ste | (~celeste@ip68-12-146-37.ok.ok.cox.net) (Quit: leaving) |
2021-06-09 22:25:06 +0200 | geekosaur | (~geekosaur@069-135-003-034.biz.spectrum.com) (Remote host closed the connection) |
2021-06-09 22:25:07 +0200 | Bartosz | (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-06-09 22:28:38 +0200 | geekosaur | (~geekosaur@069-135-003-034.biz.spectrum.com) |
2021-06-09 22:29:26 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-09 22:30:22 +0200 | spatchkaa | (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) |
2021-06-09 22:31:11 +0200 | mikoto-chan | (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 268 seconds) |
2021-06-09 22:31:45 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-06-09 22:34:44 +0200 | niko | o |
2021-06-09 22:35:17 +0200 | hiruji | (~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6) |
2021-06-09 22:38:08 +0200 | ukari | (~ukari@user/ukari) (Remote host closed the connection) |
2021-06-09 22:38:50 +0200 | ukari | (~ukari@user/ukari) |
2021-06-09 22:40:19 +0200 | sciencen1 | (~sciencent@hacksoc/ordinary-member) (Ping timeout: 272 seconds) |
2021-06-09 22:41:21 +0200 | MQ-17J | (~MQ-17J@8.21.10.116) (Ping timeout: 252 seconds) |
2021-06-09 22:44:36 +0200 | MQ-17J | (~MQ-17J@8.21.10.116) |
2021-06-09 22:49:03 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 252 seconds) |
2021-06-09 22:50:04 +0200 | michalz | (~michalz@185.246.204.114) (Remote host closed the connection) |
2021-06-09 22:50:40 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 244 seconds) |
2021-06-09 22:52:41 +0200 | <jneira> | i think lambdabot got bored in #haskell-es |
2021-06-09 22:53:05 +0200 | <jneira> | how can i convince it to return? :-) |
2021-06-09 22:55:14 +0200 | dhil | (~dhil@195.213.192.47) (Ping timeout: 268 seconds) |
2021-06-09 22:55:17 +0200 | <maerwald> | hmm, there's no #haskell.de anymore? |
2021-06-09 22:56:00 +0200 | <monochrom> | Perchance it's renamed to #haskell-de? Or the people in the original #haskell.de don't bother? |
2021-06-09 22:56:19 +0200 | <ski> | (or are slow to react, perchance) |
2021-06-09 22:56:28 +0200 | <maerwald> | #haskell-de also empty |
2021-06-09 22:56:39 +0200 | <jneira> | iirc channel names were normalized in the igration |
2021-06-09 22:56:42 +0200 | <monochrom> | I know that #haskell.tw took this relocation chance to rename to #haskell-tw |
2021-06-09 22:57:34 +0200 | <monochrom> | Unix philosophy that "move" and "rename" are the same thing >:) |
2021-06-09 22:57:36 +0200 | <ski> | it was suggested that `#haskell-*' would be the proper way, to fall under the same jurisdiction |
2021-06-09 22:58:37 +0200 | bruceleewees | (~bruceleew@83.24.248.233.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2021-06-09 22:59:03 +0200 | <ski> | (this also happened to `#haskell.se' -> `#haskell-se', and `#haskell.scandinavian' -> `#haskell-scandinavian') |
2021-06-09 22:59:05 +0200 | teaSlurper | (~chris@81.96.113.213) |
2021-06-09 22:59:06 +0200 | <monochrom> | Yeah, libera and even previous freenode namespace policy prefers hypthen. But bear in mind that these are just manually followed social constructs, exceptions can happen and don't really fail any algorithm. |
2021-06-09 22:59:52 +0200 | <maerwald> | well, I tried all permutations |
2021-06-09 23:01:52 +0200 | <maerwald> | I'm losing my mother tongue to covid, so I thought maybe... |
2021-06-09 23:03:02 +0200 | <monochrom> | I thought covid didn't attack tongues... >:) |
2021-06-09 23:03:13 +0200 | <monochrom> | your mother lungs, sure >:) |
2021-06-09 23:04:12 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-09 23:04:53 +0200 | <maerwald> | ok, so who can give me OP in #haskell-de |
2021-06-09 23:04:58 +0200 | <maerwald> | I'll talk to myself |
2021-06-09 23:05:08 +0200 | <maerwald> | (in german) |
2021-06-09 23:05:22 +0200 | <geekosaur> | see #haskell-ops |
2021-06-09 23:05:32 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-06-09 23:07:35 +0200 | <pavonia> | Weird. There's even a Czech & Slovak sub-channel, but they forgot about the Germans? :o |
2021-06-09 23:07:51 +0200 | <maerwald> | ZE germanz |
2021-06-09 23:08:04 +0200 | dhil | (~dhil@80.208.56.181) |
2021-06-09 23:08:39 +0200 | <maerwald> | maybe they're all on freenode? |
2021-06-09 23:10:22 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-09 23:10:35 +0200 | xsperry | (~as@user/xsperry) (Remote host closed the connection) |
2021-06-09 23:10:41 +0200 | <ski> | there's two people in the old #haskell.de |
2021-06-09 23:10:53 +0200 | <ski> | (one might be ChanServ, i guess) |
2021-06-09 23:11:01 +0200 | xsperry | (~as@user/xsperry) |
2021-06-09 23:11:23 +0200 | <pavonia> | How many used to be there before the split? |
2021-06-09 23:12:18 +0200 | <ski> | no idea |
2021-06-09 23:12:25 +0200 | <ski> | (never been in there) |
2021-06-09 23:12:38 +0200 | ski | looks at maerwald |
2021-06-09 23:13:50 +0200 | Iryon | (~Iryon@2a02:a31a:a045:3500:5c9:2f58:8faf:5e52) |
2021-06-09 23:14:37 +0200 | <maerwald> | never been there either |
2021-06-09 23:15:46 +0200 | <pavonia> | :D |
2021-06-09 23:15:54 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 264 seconds) |
2021-06-09 23:16:13 +0200 | favonia | (~favonia@user/favonia) |
2021-06-09 23:19:46 +0200 | <ski> | > sum (zipWith ((fromEnum .) . (/=)) "pavonia" "favonia") |
2021-06-09 23:19:47 +0200 | <lambdabot> | 1 |
2021-06-09 23:22:05 +0200 | jneira | (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Quit: Connection closed) |
2021-06-09 23:22:19 +0200 | jneira | (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) |
2021-06-09 23:23:08 +0200 | pavonia | should rename to phavonia for even more confusion |
2021-06-09 23:23:50 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-09 23:24:06 +0200 | <monochrom> | I heard that sometimes "v" means "b" and/or vice versa. |
2021-06-09 23:24:35 +0200 | <monochrom> | or maybe "v" means "beta" |
2021-06-09 23:24:50 +0200 | <favonia> | favonia |
2021-06-09 23:24:50 +0200 | <favonia> | oops sorry for misconfiguration |
2021-06-09 23:24:50 +0200 | favonia | (~favonia@user/favonia) (Quit: Leaving) |
2021-06-09 23:25:39 +0200 | <monochrom> | φαβoνια |
2021-06-09 23:26:33 +0200 | slac19625 | (~slack1256@191.125.180.163) (Ping timeout: 272 seconds) |
2021-06-09 23:26:41 +0200 | wonko | (~wjc@62.115.229.50) (Ping timeout: 268 seconds) |
2021-06-09 23:28:09 +0200 | <tomsmeding> | shapr: unwitting entry to the IOHCC https://gist.github.com/vivshaw/2d25a541c0ff7c689474865e8a75c520 |
2021-06-09 23:32:53 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-06-09 23:33:58 +0200 | juri__ | juri_ |
2021-06-09 23:34:00 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Remote host closed the connection) |
2021-06-09 23:34:21 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-06-09 23:35:47 +0200 | <shapr> | tomsmeding: whoa, that's nice |
2021-06-09 23:35:56 +0200 | chomwitt | (~Pitsikoko@athedsl-20549.home.otenet.gr) (Ping timeout: 268 seconds) |
2021-06-09 23:38:07 +0200 | danidiaz1 | (~ESDPC@static-35-0-85-188.ipcom.comunitel.net) (Read error: Connection reset by peer) |
2021-06-09 23:38:09 +0200 | <dminuoso> | tomsmeding: Mmm, your ircbrowse feels like it has become clunky with all that styling. What happened to the good old raw text? |
2021-06-09 23:38:20 +0200 | <dminuoso> | https://ircbrowse.tomsmeding.com/day/haskell/2021/01/04 is hard to read |
2021-06-09 23:39:51 +0200 | <boxscape> | is that partially just a bug? https://ircbrowse.tomsmeding.com/day/haskell/2021/01/05 is one line per message instead of 3 |
2021-06-09 23:39:58 +0200 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:190f:d7af:8eb9:1d14) (Read error: Connection reset by peer) |
2021-06-09 23:41:14 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-06-09 23:41:24 +0200 | <dminuoso> | boxscape: https://www.youtube.com/watch?v=-pzckbNyqfc |
2021-06-09 23:41:43 +0200 | <boxscape> | :) |
2021-06-09 23:44:53 +0200 | <tomsmeding> | dminuoso: that's your browser and it's the fault of boxscape https://ircbrowse.tomsmeding.com/day/haskell/2021/01/04?id=235938#trid235938 |
2021-06-09 23:45:07 +0200 | <boxscape> | oh no |
2021-06-09 23:45:09 +0200 | ddellacosta | (~ddellacos@86.106.121.46) (Ping timeout: 252 seconds) |
2021-06-09 23:45:12 +0200 | <tomsmeding> | ;) |
2021-06-09 23:45:17 +0200 | <boxscape> | I blame yahb |
2021-06-09 23:45:33 +0200 | <tomsmeding> | By the way I changed no styling, so if anything changed in that regard that's accidental |
2021-06-09 23:45:34 +0200 | <mniip> | who dares |
2021-06-09 23:45:48 +0200 | <tomsmeding> | mniip: follow the link |
2021-06-09 23:45:56 +0200 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 264 seconds) |
2021-06-09 23:46:01 +0200 | <mniip> | sounds like a personal problem to be tbh |
2021-06-09 23:46:03 +0200 | <mniip> | :P |
2021-06-09 23:46:15 +0200 | <boxscape> | I'll handle it in DMs with yahb |
2021-06-09 23:46:31 +0200 | <tomsmeding> | :p |
2021-06-09 23:47:01 +0200 | <tomsmeding> | I guess some fixed column widths can fix this; I can experiment later |
2021-06-09 23:47:33 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-06-09 23:53:40 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-06-09 23:55:35 +0200 | ski | idly wonders where mauke are |
2021-06-09 23:56:50 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-06-09 23:58:28 +0200 | xkuru | (~xkuru@user/xkuru) |
2021-06-09 23:59:24 +0200 | oxide_ | (~lambda@user/oxide) (Read error: Connection reset by peer) |