2022-02-22 00:00:02 +0100 | <dvdrw> | is GHC2021 the delayed Haskell2020? |
2022-02-22 00:00:36 +0100 | <dvdrw> | or was a new report never in the works, but a set of extensions (to Haskell98?) first, and then whatever comes of it |
2022-02-22 00:00:50 +0100 | <geekosaur> | sort of. the standards process is stuck anmd has been for years, so ghc is kinda taking over and proposing its own. |
2022-02-22 00:01:37 +0100 | jespada | (~jespada@148.252.132.52) |
2022-02-22 00:01:48 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-02-22 00:02:05 +0100 | <dvdrw> | oic |
2022-02-22 00:03:07 +0100 | <geekosaur> | and part of why the standards process is stuck is nobody wants to formally document things like the exact behavior of type families |
2022-02-22 00:03:39 +0100 | <geekosaur> | r going on between the type families camp and the functional dependencies camp |
2022-02-22 00:03:57 +0100 | <geekosaur> | which means MultiParamTypeClasses can't be standardized because it needs one or the other |
2022-02-22 00:04:16 +0100 | <dvdrw> | I can imagine, I think I heard someone from the committee once say Haskell2010 was a nightmare to formalise |
2022-02-22 00:04:41 +0100 | <dvdrw> | C++ can probably afford it with the manpower they can acquire |
2022-02-22 00:04:55 +0100 | <dolio> | I think I once saw someone say that FlexibleContexts were bad, but I don't recall the reason being very compelling. |
2022-02-22 00:05:16 +0100 | <Zemyla> | Even C++ couldn't get concepts in. |
2022-02-22 00:06:26 +0100 | <dvdrw> | Zemyla: C++ has been trying to get concepts ever since templates and C++11 |
2022-02-22 00:07:06 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) |
2022-02-22 00:08:04 +0100 | jespada | (~jespada@148.252.132.52) (Read error: Connection reset by peer) |
2022-02-22 00:08:36 +0100 | Ariakenom_ | (~Ariakenom@h-82-196-111-63.NA.cust.bahnhof.se) (Quit: Leaving) |
2022-02-22 00:09:45 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 00:09:49 +0100 | jgeerds | (~jgeerds@55d4b9df.access.ecotel.net) |
2022-02-22 00:11:29 +0100 | <geekosaur> | hm, whoops, that line earlier got mangled |
2022-02-22 00:11:30 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 00:11:41 +0100 | <geekosaur> | "andthen there's the tug of war…" |
2022-02-22 00:13:50 +0100 | <janus> | dvdrw: don't they have concepts in C++20? or do they not qualify because features have been cut? |
2022-02-22 00:14:53 +0100 | <dvdrw> | janus: They've implemented concepts in C++20, but it's a smaller featureset than the people pushing it wanted. It's basically syntactic sugar (and slightly better errors) for what was possible with C++17 templates |
2022-02-22 00:15:14 +0100 | <dvdrw> | I couldn't list the limitations off the top of my head, but they're a bit lackluster |
2022-02-22 00:15:38 +0100 | <dvdrw> | Also, last time I checked, GCC didn't check concept constraints on template variables lol |
2022-02-22 00:17:01 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 00:18:10 +0100 | zeenk | (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) (Quit: Konversation terminated!) |
2022-02-22 00:20:03 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-22 00:20:42 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 250 seconds) |
2022-02-22 00:21:17 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-02-22 00:27:49 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 00:28:06 +0100 | ChanServ | +o litharge |
2022-02-22 00:28:07 +0100 | litharge | -bo *!*@98.38.249.169 litharge |
2022-02-22 00:29:05 +0100 | <zzz> | what happened to data Scientific? |
2022-02-22 00:29:25 +0100 | <dsal> | What do you mean? |
2022-02-22 00:30:18 +0100 | <zzz> | nevermind, I misunderstood something I just read |
2022-02-22 00:30:35 +0100 | <dsal> | Science can be confusing. |
2022-02-22 00:30:44 +0100 | jgeerds | (~jgeerds@55d4b9df.access.ecotel.net) (Ping timeout: 252 seconds) |
2022-02-22 00:33:53 +0100 | cosimone | (~user@93-34-132-33.ip49.fastwebnet.it) (Ping timeout: 250 seconds) |
2022-02-22 00:34:43 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 00:34:54 +0100 | acidjnk | (~acidjnk@p200300d0c7363f76650908051e62c7e6.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-02-22 00:34:57 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds) |
2022-02-22 00:35:18 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-02-22 00:35:18 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 00:38:47 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 00:44:31 +0100 | spacenautx | (~spacenaut@user/spacenautx) (Quit: WeeChat 3.4) |
2022-02-22 00:45:17 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) (Remote host closed the connection) |
2022-02-22 00:45:17 +0100 | spacenautx | (~spacenaut@user/spacenautx) |
2022-02-22 00:50:01 +0100 | spacenautx | (~spacenaut@user/spacenautx) (Client Quit) |
2022-02-22 00:50:57 +0100 | <zzz> | "It does not matter how slowly you go so long as you do not stop." |
2022-02-22 00:52:58 +0100 | spacenautx | (~spacenaut@user/spacenautx) |
2022-02-22 00:53:59 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2022-02-22 00:56:56 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 01:00:55 +0100 | sonny | (~sonny@bras-base-london1483w-grc-30-74-12-157-79.dsl.bell.ca) (Quit: Going offline, see ya! (www.adiirc.com)) |
2022-02-22 01:00:59 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-02-22 01:01:20 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 01:03:03 +0100 | chenqisu1 | (~chenqisu1@183.217.200.249) |
2022-02-22 01:03:19 +0100 | spacenautx | (~spacenaut@user/spacenautx) (Quit: WeeChat 3.4) |
2022-02-22 01:07:40 +0100 | yrlnry | (~mjd@pool-74-109-20-19.phlapa.fios.verizon.net) |
2022-02-22 01:18:20 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 01:19:56 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 01:23:05 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2022-02-22 01:23:07 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 01:23:49 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 01:24:17 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds) |
2022-02-22 01:30:42 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-02-22 01:31:15 +0100 | jlamothe | (~jlamothe@198.251.61.229) (Ping timeout: 252 seconds) |
2022-02-22 01:32:48 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 01:34:20 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-22 01:34:20 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-22 01:34:20 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-22 01:36:57 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-02-22 01:39:43 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-02-22 01:42:23 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) |
2022-02-22 01:45:49 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-02-22 01:45:57 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-22 01:46:42 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-22 01:50:11 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 01:51:15 +0100 | mason0 | (~bc8147f2@cerf.good1.com) |
2022-02-22 01:51:59 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2022-02-22 01:52:15 +0100 | emf | (~emf@c-73-97-137-43.hsd1.wa.comcast.net) |
2022-02-22 01:53:28 +0100 | mvk | (~mvk@2607:fea8:5cdc:bf00::99e7) |
2022-02-22 01:53:50 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 01:54:57 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-22 01:55:00 +0100 | emf | (~emf@c-73-97-137-43.hsd1.wa.comcast.net) (Client Quit) |
2022-02-22 01:55:00 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) |
2022-02-22 01:55:16 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2022-02-22 01:56:36 +0100 | mason0 | (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Ping timeout)) |
2022-02-22 01:59:17 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds) |
2022-02-22 02:01:10 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-02-22 02:02:31 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 02:04:29 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 02:06:14 +0100 | andreas303 | (andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com) |
2022-02-22 02:06:46 +0100 | andreas303 | (andreas303@ip227.orange.bnc4free.com) |
2022-02-22 02:07:34 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-02-22 02:07:45 +0100 | <chronon> | Wow, from a quick glance through the scrollback I can see this is where the clever people hang out. My brain melted. |
2022-02-22 02:10:43 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-02-22 02:13:17 +0100 | dvdrw | (~dvdrw@user/dvdrw) (Ping timeout: 240 seconds) |
2022-02-22 02:13:56 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 02:16:12 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
2022-02-22 02:16:38 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 02:16:49 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-02-22 02:21:35 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 02:21:57 +0100 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-02-22 02:25:51 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 02:26:18 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Quit: ec) |
2022-02-22 02:29:09 +0100 | acidsys | (~LSD@2a03:4000:55:d20::3) (Excess Flood) |
2022-02-22 02:31:57 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds) |
2022-02-22 02:33:17 +0100 | mason0 | (~bc8147f2@cerf.good1.com) |
2022-02-22 02:37:08 +0100 | acidsys | (~LSD@2a03:4000:55:d20::3) |
2022-02-22 02:37:58 +0100 | <pavonia> | One of our mottos is: Haskell – the c stands for "clever" |
2022-02-22 02:40:16 +0100 | cjb | (~cjb@user/cjb) (Ping timeout: 260 seconds) |
2022-02-22 02:41:39 +0100 | joo-_ | (~joo-_@fsf/member/joo--) (Ping timeout: 272 seconds) |
2022-02-22 02:43:17 +0100 | joo-_ | (~joo-_@80-62-116-157-mobile.dk.customer.tdc.net) |
2022-02-22 02:43:18 +0100 | joo-_ | (~joo-_@80-62-116-157-mobile.dk.customer.tdc.net) (Changing host) |
2022-02-22 02:43:18 +0100 | joo-_ | (~joo-_@fsf/member/joo--) |
2022-02-22 02:44:07 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 02:45:19 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 02:46:40 +0100 | BrokenClutch | (~pioneer@2804:d41:c291:0:6129:66a9:49aa:83e7) |
2022-02-22 02:46:58 +0100 | <BrokenClutch> | Yeaay, three months doing haskell \o/ |
2022-02-22 02:48:40 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 02:54:51 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-22 02:59:37 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) (Quit: WeeChat 3.4) |
2022-02-22 03:02:36 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds) |
2022-02-22 03:04:14 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2022-02-22 03:04:25 +0100 | vysn | (~vysn@user/vysn) |
2022-02-22 03:06:20 +0100 | <FernandoChu[m]> | silly question, is there a name for constructors that have been applied to a type variable? like `[a]`, `Maybe b`, etc. Would be nice if that name also included those that have been applied to concrete types as well like `State [a] Int`, `Foo (Maybe b) [String]` etc |
2022-02-22 03:06:39 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 03:07:09 +0100 | <BrokenClutch> | :FernandoChu Type constructors? |
2022-02-22 03:07:09 +0100 | <ski> | what about `Either Int' ? |
2022-02-22 03:07:41 +0100 | <ski> | (or `Either e', if you prefer) |
2022-02-22 03:07:49 +0100 | <FernandoChu[m]> | ski: isn't that a concrete type? |
2022-02-22 03:08:12 +0100 | <FernandoChu[m]> | yeah Either e would be one of those things I'm looking to name |
2022-02-22 03:08:16 +0100 | <FernandoChu[m]> | oh wait no |
2022-02-22 03:08:17 +0100 | ridcully_ | (~ridcully@p508acc81.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-02-22 03:08:31 +0100 | <FernandoChu[m]> | it's a partiall applied "thing idk it's name" |
2022-02-22 03:08:39 +0100 | <FernandoChu[m]> | s/partiall/partially/ |
2022-02-22 03:08:46 +0100 | <ski> | i tend to call type expressions, having kind `*' (or `Type', if you prefer), "concrete types" |
2022-02-22 03:09:16 +0100 | <FernandoChu[m]> | me too, my earlier comment was a mistake |
2022-02-22 03:09:16 +0100 | lavaman | (~lavaman@98.38.249.169) (Read error: Connection reset by peer) |
2022-02-22 03:09:36 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-22 03:09:58 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 03:11:35 +0100 | <FernandoChu[m]> | my question arises because this is what FlexibleContent/Instances seems to apply and I was writing my notes |
2022-02-22 03:12:01 +0100 | <FernandoChu[m]> | the wiki calls them "arbitrary types" https://gitlab.haskell.org/haskell/prime/-/wikis/FlexibleContexts |
2022-02-22 03:12:25 +0100 | <FernandoChu[m]> | which I'm not sure I like |
2022-02-22 03:12:40 +0100 | <ski> | i think "arbitrary" there just means "no restriction" |
2022-02-22 03:13:14 +0100 | <ski> | (or, maybe just with some few specific restrictions) |
2022-02-22 03:13:25 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-02-22 03:14:41 +0100 | <FernandoChu[m]> | so many technical terms I forgot about the natural language interpretation haha |
2022-02-22 03:14:46 +0100 | <FernandoChu[m]> | yeah that seems to be the case |
2022-02-22 03:15:02 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-02-22 03:16:07 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 03:17:28 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-22 03:18:47 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:25f4:e878:3056:b5be) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-02-22 03:21:14 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-02-22 03:22:37 +0100 | mvk | (~mvk@2607:fea8:5cdc:bf00::99e7) (Ping timeout: 240 seconds) |
2022-02-22 03:24:21 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-02-22 03:28:02 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 03:29:27 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-02-22 03:31:10 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 03:31:41 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-22 03:35:37 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds) |
2022-02-22 03:36:12 +0100 | justAstache | (~justache@user/justache) (Remote host closed the connection) |
2022-02-22 03:36:48 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 03:37:08 +0100 | justAstache | (~justache@user/justache) |
2022-02-22 03:37:57 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-22 03:37:58 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-22 03:37:58 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-22 03:47:38 +0100 | xff0x | (~xff0x@2001:1a81:5339:f000:1ec4:ce6f:8558:a9e8) (Ping timeout: 260 seconds) |
2022-02-22 03:49:09 +0100 | xff0x | (~xff0x@2001:1a81:5372:9200:5fc7:2f1:341d:525f) |
2022-02-22 03:51:53 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2022-02-22 03:54:40 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 03:56:56 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2022-02-22 03:58:37 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) (Ping timeout: 240 seconds) |
2022-02-22 04:02:21 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 04:04:35 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 04:07:56 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-22 04:08:57 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds) |
2022-02-22 04:10:37 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
2022-02-22 04:12:03 +0100 | ridcully_ | (~ridcully@p508ace91.dip0.t-ipconnect.de) |
2022-02-22 04:15:06 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-02-22 04:20:10 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 04:21:44 +0100 | waleee | (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
2022-02-22 04:22:43 +0100 | td_ | (~td@muedsl-82-207-238-047.citykom.de) (Ping timeout: 256 seconds) |
2022-02-22 04:24:41 +0100 | td_ | (~td@muedsl-82-207-238-240.citykom.de) |
2022-02-22 04:24:41 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 04:26:29 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 04:28:59 +0100 | Nahra | (~user@static.161.95.99.88.clients.your-server.de) |
2022-02-22 04:31:51 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
2022-02-22 04:35:23 +0100 | BrokenClutch | (~pioneer@2804:d41:c291:0:6129:66a9:49aa:83e7) () |
2022-02-22 04:36:08 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4) |
2022-02-22 04:37:03 +0100 | Null_A | (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) |
2022-02-22 04:39:30 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-22 04:41:32 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 04:41:42 +0100 | Null_A | (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2022-02-22 04:42:32 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 04:43:14 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
2022-02-22 04:44:15 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-02-22 04:44:27 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
2022-02-22 04:45:11 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 04:45:48 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 04:48:42 +0100 | acidsys | (~LSD@2a03:4000:55:d20::3) (Excess Flood) |
2022-02-22 05:00:24 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Remote host closed the connection) |
2022-02-22 05:00:24 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Read error: Connection reset by peer) |
2022-02-22 05:01:12 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 05:01:18 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 05:01:34 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 05:05:50 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 250 seconds) |
2022-02-22 05:05:50 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 05:09:32 +0100 | joegard | (~joegard@179.33.119.167) |
2022-02-22 05:10:38 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-02-22 05:11:20 +0100 | joegard | (~joegard@179.33.119.167) (Quit: Client closed) |
2022-02-22 05:13:15 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2022-02-22 05:16:09 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-22 05:18:35 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 05:20:12 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2022-02-22 05:24:05 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 05:24:54 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
2022-02-22 05:25:01 +0100 | mbuf | (~Shakthi@223.178.77.186) |
2022-02-22 05:25:22 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-22 05:25:23 +0100 | acidsys | (~LSD@2a03:4000:55:d20::3) |
2022-02-22 05:26:12 +0100 | nehsou^ | (~nehsou@50.233.120.162) (Ping timeout: 240 seconds) |
2022-02-22 05:26:49 +0100 | MochizukisLastTh | (~Mochizuki@121-83-4-20f1.osk2.eonet.ne.jp) |
2022-02-22 05:29:25 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 05:31:18 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-22 05:31:18 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-22 05:31:18 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-22 05:36:27 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 272 seconds) |
2022-02-22 05:36:36 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds) |
2022-02-22 05:36:38 +0100 | deadmarshal | (~deadmarsh@95.38.117.172) |
2022-02-22 05:45:42 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2022-02-22 05:46:23 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 05:51:09 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 05:51:51 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 05:54:12 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-02-22 05:56:10 +0100 | benin | (~benin@59.88.179.150) (Quit: Ping timeout (120 seconds)) |
2022-02-22 05:56:32 +0100 | benin | (~benin@59.88.179.150) |
2022-02-22 05:57:06 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 06:03:54 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:475:42ee:cbdc:5ced) |
2022-02-22 06:05:47 +0100 | Null_A | (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) |
2022-02-22 06:10:36 +0100 | Null_A | (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2022-02-22 06:15:17 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 06:15:40 +0100 | komikat | (~komikat@183.82.154.44) |
2022-02-22 06:17:38 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-22 06:17:38 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-22 06:17:38 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-22 06:19:48 +0100 | komikat | (~komikat@183.82.154.44) (Ping timeout: 240 seconds) |
2022-02-22 06:20:25 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 06:21:52 +0100 | komikat_ | (~komikat@183.82.154.44) |
2022-02-22 06:22:41 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 272 seconds) |
2022-02-22 06:31:49 +0100 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-02-22 06:32:36 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 240 seconds) |
2022-02-22 06:37:22 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 06:51:21 +0100 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Quit: Leaving) |
2022-02-22 06:54:38 +0100 | komikat_ | (~komikat@183.82.154.44) (Remote host closed the connection) |
2022-02-22 06:54:50 +0100 | komikat | (~komikat@183.82.154.44) |
2022-02-22 06:59:13 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 06:59:51 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 07:00:37 +0100 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2022-02-22 07:00:40 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Ping timeout: 272 seconds) |
2022-02-22 07:01:45 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2022-02-22 07:02:33 +0100 | komikat | (~komikat@183.82.154.44) (Remote host closed the connection) |
2022-02-22 07:03:08 +0100 | komikat_ | (~komikat@183.82.154.44) |
2022-02-22 07:07:47 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Quit: Leaving) |
2022-02-22 07:08:17 +0100 | komikat_ | (~komikat@183.82.154.44) (Ping timeout: 272 seconds) |
2022-02-22 07:09:00 +0100 | benin | (~benin@59.88.179.150) (Ping timeout: 240 seconds) |
2022-02-22 07:09:18 +0100 | komikat | (~komikat@183.82.154.44) |
2022-02-22 07:09:36 +0100 | whound | (~dust@2409:4071:4e8b:a664:ed93:7b31:fb42:6202) |
2022-02-22 07:10:12 +0100 | whound | dust__ |
2022-02-22 07:10:37 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 07:10:41 +0100 | benin | (~benin@59.88.179.150) |
2022-02-22 07:12:42 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) |
2022-02-22 07:13:17 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2022-02-22 07:13:48 +0100 | komikat | (~komikat@183.82.154.44) (Ping timeout: 240 seconds) |
2022-02-22 07:15:31 +0100 | komikat_ | (~komikat@183.82.154.44) |
2022-02-22 07:15:50 +0100 | komikat_ | (~komikat@183.82.154.44) (Remote host closed the connection) |
2022-02-22 07:16:03 +0100 | komikat | (~komikat@183.82.154.44) |
2022-02-22 07:16:07 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-22 07:20:22 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-02-22 07:20:41 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-22 07:23:04 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-02-22 07:23:31 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-02-22 07:24:03 +0100 | benin | (~benin@59.88.179.150) (Ping timeout: 256 seconds) |
2022-02-22 07:25:22 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
2022-02-22 07:26:58 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 07:29:00 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds) |
2022-02-22 07:29:07 +0100 | coot | (~coot@213.134.190.95) |
2022-02-22 07:33:16 +0100 | xff0x | (~xff0x@2001:1a81:5372:9200:5fc7:2f1:341d:525f) (Ping timeout: 245 seconds) |
2022-02-22 07:34:20 +0100 | xff0x | (~xff0x@2001:1a81:5372:9200:8a1a:331:2fa:81ab) |
2022-02-22 07:48:02 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 07:50:01 +0100 | mjrosenb | (~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net) (Ping timeout: 268 seconds) |
2022-02-22 07:50:39 +0100 | xff0x | (~xff0x@2001:1a81:5372:9200:8a1a:331:2fa:81ab) (Quit: xff0x) |
2022-02-22 07:51:09 +0100 | dust__ | (~dust@2409:4071:4e8b:a664:ed93:7b31:fb42:6202) (Quit: Konversation terminated!) |
2022-02-22 07:51:56 +0100 | dust_ | (~dust@2409:4071:4e8b:a664:ed93:7b31:fb42:6202) |
2022-02-22 07:52:45 +0100 | dust_ | dust__ |
2022-02-22 07:57:09 +0100 | yauhsienhuangtw | (~Yau-Hsien@61-231-19-150.dynamic-ip.hinet.net) (Quit: Leaving) |
2022-02-22 07:58:15 +0100 | xff0x | (~xff0x@2001:1a81:5372:9200:8a1a:331:2fa:81ab) |
2022-02-22 07:59:02 +0100 | sander | (~sander@user/sander) (Ping timeout: 240 seconds) |
2022-02-22 07:59:18 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) |
2022-02-22 08:04:02 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds) |
2022-02-22 08:04:58 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 08:05:19 +0100 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-02-22 08:06:12 +0100 | mjrosenb | (~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net) |
2022-02-22 08:09:17 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 08:09:43 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 272 seconds) |
2022-02-22 08:10:17 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2022-02-22 08:11:13 +0100 | coot | (~coot@213.134.190.95) |
2022-02-22 08:12:41 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 08:15:01 +0100 | vysn | (~vysn@user/vysn) |
2022-02-22 08:16:58 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) |
2022-02-22 08:17:10 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2022-02-22 08:18:10 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-02-22 08:21:40 +0100 | komikat | (~komikat@183.82.154.44) (Remote host closed the connection) |
2022-02-22 08:23:53 +0100 | acidjnk | (~acidjnk@p200300d0c71a321635f6942ae4ff7a88.dip0.t-ipconnect.de) |
2022-02-22 08:26:11 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2022-02-22 08:27:30 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 08:32:01 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 08:33:08 +0100 | benin | (~benin@59.88.179.150) |
2022-02-22 08:33:51 +0100 | dust__ | (~dust@2409:4071:4e8b:a664:ed93:7b31:fb42:6202) (Quit: Konversation terminated!) |
2022-02-22 08:34:08 +0100 | benin | (~benin@59.88.179.150) (Client Quit) |
2022-02-22 08:35:19 +0100 | benin | (~benin@59.88.179.150) |
2022-02-22 08:35:34 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 260 seconds) |
2022-02-22 08:37:07 +0100 | dextaa_ | (~dextaa@user/dextaa) (Read error: Connection reset by peer) |
2022-02-22 08:37:36 +0100 | ss4 | (~wootehfoo@user/wootehfoot) |
2022-02-22 08:38:59 +0100 | mason0 | (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout)) |
2022-02-22 08:40:25 +0100 | dextaa_ | (~dextaa@user/dextaa) |
2022-02-22 08:40:53 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Ping timeout: 256 seconds) |
2022-02-22 08:42:56 +0100 | cosimone | (~user@93-34-132-33.ip49.fastwebnet.it) |
2022-02-22 08:45:11 +0100 | benin | (~benin@59.88.179.150) (Ping timeout: 272 seconds) |
2022-02-22 08:46:28 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:1947:6ff5:3916:a376) |
2022-02-22 08:47:43 +0100 | Ariakenom | (~Ariakenom@2001:9b1:efe:9d00:a0f2:d28e:55b:1ed5) |
2022-02-22 08:47:51 +0100 | fendor | (~fendor@178.115.60.54.wireless.dyn.drei.com) |
2022-02-22 08:48:41 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 08:48:48 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 08:51:51 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:475:42ee:cbdc:5ced) (Remote host closed the connection) |
2022-02-22 08:53:21 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 08:53:35 +0100 | yauhsien | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-02-22 08:53:42 +0100 | Ariakenom_ | (~Ariakenom@h-82-196-111-63.NA.cust.bahnhof.se) |
2022-02-22 08:53:48 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 240 seconds) |
2022-02-22 08:53:52 +0100 | cynomys | (~cynomys@user/cynomys) (Ping timeout: 256 seconds) |
2022-02-22 08:55:02 +0100 | Midjak | (~Midjak@82.66.147.146) (Quit: Leaving) |
2022-02-22 08:56:09 +0100 | MajorBiscuit | (~MajorBisc@c-001-029-040.client.tudelft.eduvpn.nl) |
2022-02-22 08:57:02 +0100 | Ariakenom | (~Ariakenom@2001:9b1:efe:9d00:a0f2:d28e:55b:1ed5) (Ping timeout: 240 seconds) |
2022-02-22 08:58:02 +0100 | komikat | (~komikat@183.82.154.239) |
2022-02-22 09:00:03 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2022-02-22 09:02:06 +0100 | kristjansson | (sid126207@id-126207.tinside.irccloud.com) (Excess Flood) |
2022-02-22 09:02:23 +0100 | zeenk | (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) |
2022-02-22 09:02:27 +0100 | kristjansson | (sid126207@id-126207.tinside.irccloud.com) |
2022-02-22 09:04:00 +0100 | neurocyte0917090 | (~neurocyte@IP-213157011045.dynamic.medianet-world.de) |
2022-02-22 09:04:00 +0100 | neurocyte0917090 | (~neurocyte@IP-213157011045.dynamic.medianet-world.de) (Changing host) |
2022-02-22 09:04:00 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) |
2022-02-22 09:06:52 +0100 | benin | (~benin@59.92.239.104) |
2022-02-22 09:09:06 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 09:10:03 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 09:13:03 +0100 | kuribas | (~user@ptr-25vy0iagvdrvz4nz7gs.18120a2.ip6.access.telenet.be) |
2022-02-22 09:17:27 +0100 | chele | (~chele@user/chele) |
2022-02-22 09:18:31 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Remote host closed the connection) |
2022-02-22 09:18:46 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 09:18:47 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 09:22:23 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-02-22 09:23:31 +0100 | alMalsamo | (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection) |
2022-02-22 09:24:37 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-02-22 09:25:37 +0100 | img | (~img@user/img) |
2022-02-22 09:27:31 +0100 | img | (~img@user/img) (Client Quit) |
2022-02-22 09:27:55 +0100 | ccntrq | (~Thunderbi@imx92-1-78-204-187-6.fbx.proxad.net) |
2022-02-22 09:28:32 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Remote host closed the connection) |
2022-02-22 09:28:54 +0100 | img | (~img@user/img) |
2022-02-22 09:29:35 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-22 09:35:19 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 09:37:45 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-22 09:39:43 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 09:40:22 +0100 | cynomys | (~cynomys@user/cynomys) |
2022-02-22 09:40:24 +0100 | mastarija | (~mastarija@2a05:4f46:e04:6000:d8c:f8d:c71e:751e) |
2022-02-22 09:40:43 +0100 | fendor | (~fendor@178.115.60.54.wireless.dyn.drei.com) (Remote host closed the connection) |
2022-02-22 09:41:01 +0100 | fendor | (~fendor@178.115.60.54.wireless.dyn.drei.com) |
2022-02-22 09:42:18 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2022-02-22 09:42:34 +0100 | max22- | (~maxime@2a01cb08833598000dbf298a01dd3327.ipv6.abo.wanadoo.fr) |
2022-02-22 09:43:24 +0100 | dextaa_ | (~dextaa@user/dextaa) (Remote host closed the connection) |
2022-02-22 09:44:36 +0100 | vorpuni | (~pvorp@2001:861:3881:c690:d322:f659:136d:eef6) |
2022-02-22 09:44:59 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 09:49:02 +0100 | wonko | (~wjc@user/wonko) |
2022-02-22 09:49:24 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds) |
2022-02-22 09:49:35 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-02-22 09:51:12 +0100 | komikat | (~komikat@183.82.154.239) (Remote host closed the connection) |
2022-02-22 09:51:53 +0100 | komikat | (~komikat@183.82.154.239) |
2022-02-22 09:52:26 +0100 | yauhsien | (~Yau-Hsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 09:55:47 +0100 | cfricke | (~cfricke@user/cfricke) |
2022-02-22 09:56:15 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 09:59:42 +0100 | jespada | (~jespada@85.255.234.190) |
2022-02-22 10:00:09 +0100 | alex[m]12345 | (~alexchete@2001:470:69fc:105::1:1001) (Quit: You have been kicked for being idle) |
2022-02-22 10:10:10 +0100 | yauhsien_ | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 10:11:07 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 10:11:26 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-02-22 10:12:41 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2022-02-22 10:12:59 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2022-02-22 10:14:18 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-02-22 10:15:06 +0100 | yauhsien_ | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
2022-02-22 10:17:48 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) (Ping timeout: 240 seconds) |
2022-02-22 10:19:22 +0100 | <merijn> | :O |
2022-02-22 10:19:28 +0100 | <merijn> | https://twitter.com/GabriellaG439/status/1495957520459915266 |
2022-02-22 10:19:32 +0100 | <merijn> | That's genius |
2022-02-22 10:19:45 +0100 | yauhsien_ | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 10:20:14 +0100 | arievw | (~arievw@85.148.234.95) |
2022-02-22 10:21:05 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) |
2022-02-22 10:21:33 +0100 | komikat | (~komikat@183.82.154.239) (Remote host closed the connection) |
2022-02-22 10:26:35 +0100 | <[exa]> | that's wunderbar |
2022-02-22 10:27:07 +0100 | arievw | (~arievw@85.148.234.95) (Quit: Nettalk6 - www.ntalk.de) |
2022-02-22 10:27:12 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 10:28:53 +0100 | AlexNoo_ | (~AlexNoo@178.34.160.240) |
2022-02-22 10:29:25 +0100 | shriekingnoise | (~shrieking@201.231.16.156) (Quit: Quit) |
2022-02-22 10:29:29 +0100 | Alex_test_ | (~al_test@178.34.160.240) |
2022-02-22 10:29:32 +0100 | AlexZenon_2 | (~alzenon@178.34.160.240) |
2022-02-22 10:31:08 +0100 | AlexNoo__ | (~AlexNoo@178.34.160.240) |
2022-02-22 10:31:54 +0100 | AlexZenon | (~alzenon@178.34.160.240) (Ping timeout: 256 seconds) |
2022-02-22 10:32:04 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 10:32:08 +0100 | AlexZenon | (~alzenon@178.34.160.240) |
2022-02-22 10:32:35 +0100 | jespada_ | (~jespada@85.255.234.190) |
2022-02-22 10:32:37 +0100 | AlexNoo | (~AlexNoo@178.34.160.240) (Ping timeout: 240 seconds) |
2022-02-22 10:32:45 +0100 | jespada | (~jespada@85.255.234.190) (Ping timeout: 256 seconds) |
2022-02-22 10:33:24 +0100 | yauhsien_ | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-02-22 10:33:29 +0100 | Alex_test | (~al_test@178.34.160.240) (Ping timeout: 272 seconds) |
2022-02-22 10:33:41 +0100 | AlexNoo | (~AlexNoo@178.34.160.240) |
2022-02-22 10:34:06 +0100 | AlexZenon_2 | (~alzenon@178.34.160.240) (Ping timeout: 260 seconds) |
2022-02-22 10:34:10 +0100 | Alex_test_ | (~al_test@178.34.160.240) (Ping timeout: 256 seconds) |
2022-02-22 10:34:11 +0100 | yauhsien_ | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 10:34:26 +0100 | Alex_test | (~al_test@178.34.160.240) |
2022-02-22 10:34:37 +0100 | AlexNoo_ | (~AlexNoo@178.34.160.240) (Ping timeout: 240 seconds) |
2022-02-22 10:35:36 +0100 | vorpuni | (~pvorp@2001:861:3881:c690:d322:f659:136d:eef6) (Ping timeout: 250 seconds) |
2022-02-22 10:35:45 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-02-22 10:36:09 +0100 | AlexNoo__ | (~AlexNoo@178.34.160.240) (Ping timeout: 256 seconds) |
2022-02-22 10:36:17 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 252 seconds) |
2022-02-22 10:36:36 +0100 | acidjnk | (~acidjnk@p200300d0c71a321635f6942ae4ff7a88.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2022-02-22 10:36:45 +0100 | alp | (~alp@user/alp) |
2022-02-22 10:37:18 +0100 | komikat | (~komikat@183.82.154.239) |
2022-02-22 10:39:16 +0100 | yauhsien_ | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-02-22 10:39:45 +0100 | AlexZenon | (~alzenon@178.34.160.240) (Quit: ;-) |
2022-02-22 10:40:21 +0100 | Alex_test | (~al_test@178.34.160.240) (Quit: ;-) |
2022-02-22 10:41:05 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2022-02-22 10:41:21 +0100 | AlexNoo | (~AlexNoo@178.34.160.240) (Quit: Leaving) |
2022-02-22 10:45:11 +0100 | jstolarek | (~jstolarek@staticline-31-183-182-85.toya.net.pl) |
2022-02-22 10:48:28 +0100 | ss4 | (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
2022-02-22 10:48:48 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-02-22 10:49:04 +0100 | dvdrw | (~dvdrw@user/dvdrw) |
2022-02-22 10:49:43 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 10:51:47 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) (Remote host closed the connection) |
2022-02-22 10:52:41 +0100 | __monty__ | (~toonn@user/toonn) |
2022-02-22 10:53:45 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2022-02-22 10:53:50 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 10:55:58 +0100 | polyphem | (~rod@2a02:810d:840:8754:2123:9506:671d:c7f0) (Ping timeout: 250 seconds) |
2022-02-22 10:56:31 +0100 | AlexZenon | (~alzenon@178.34.160.240) |
2022-02-22 10:57:03 +0100 | polyphem | (~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17) |
2022-02-22 10:57:26 +0100 | Alex_test | (~al_test@178.34.160.240) |
2022-02-22 10:57:35 +0100 | vorpuni | (~pvorp@2001:861:3881:c690:d322:f659:136d:eef6) |
2022-02-22 10:59:02 +0100 | polyphem | (~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17) (Client Quit) |
2022-02-22 11:01:17 +0100 | mastarija | (~mastarija@2a05:4f46:e04:6000:d8c:f8d:c71e:751e) (Ping timeout: 240 seconds) |
2022-02-22 11:01:47 +0100 | polyphem | (~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17) |
2022-02-22 11:04:00 +0100 | <tomsmeding> | neat |
2022-02-22 11:04:16 +0100 | <dminuoso> | Hah that's really something |
2022-02-22 11:05:10 +0100 | <tomsmeding> | I wonder how well that scales beyond nice examples though |
2022-02-22 11:06:22 +0100 | <tomsmeding> | It's nice to be able to write `sum / length` instead of `lift2 (/) sum length`, but I'd guess that you'd have <20 occurrences of this in an actual codebase |
2022-02-22 11:06:38 +0100 | <tomsmeding> | (not saying it's bad: certainly nice to have) |
2022-02-22 11:07:03 +0100 | m5zs7k | (aquares@web10.mydevil.net) (Ping timeout: 272 seconds) |
2022-02-22 11:07:23 +0100 | jgeerds | (~jgeerds@55d4b9df.access.ecotel.net) |
2022-02-22 11:07:26 +0100 | alp | (~alp@user/alp) (Remote host closed the connection) |
2022-02-22 11:07:45 +0100 | alp | (~alp@user/alp) |
2022-02-22 11:08:09 +0100 | <[exa]> | I guess it could work for vectors right? "broadcasting" ops over vectors is super useful |
2022-02-22 11:08:15 +0100 | m5zs7k | (aquares@web10.mydevil.net) |
2022-02-22 11:12:15 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 11:12:37 +0100 | jgeerds | (~jgeerds@55d4b9df.access.ecotel.net) (Ping timeout: 250 seconds) |
2022-02-22 11:12:46 +0100 | <merijn> | tomsmeding: That's not what it's doing, though |
2022-02-22 11:12:59 +0100 | <merijn> | tomsmeding: It's much more efficient than liftA2 too |
2022-02-22 11:13:25 +0100 | <merijn> | the liftA2 blows up memory on big, lazy things |
2022-02-22 11:14:48 +0100 | <merijn> | sum (or length, whichever is forced first) will materialise the entire thing, then it will stay alive until the other finishes evaluating and *then* can things be GCed |
2022-02-22 11:14:53 +0100 | <merijn> | the fold example is incremental |
2022-02-22 11:18:03 +0100 | <tomsmeding> | merijn: note that I wrote lift2, not liftA2 |
2022-02-22 11:18:04 +0100 | ubert1 | (~Thunderbi@2a02:8109:9880:303c:b499:2e2d:5a8b:934e) |
2022-02-22 11:18:13 +0100 | <tomsmeding> | I know that you'd need a special combinator for folds |
2022-02-22 11:20:53 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 11:23:12 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 11:27:37 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds) |
2022-02-22 11:27:46 +0100 | AlexNoo | (~AlexNoo@178.34.160.240) |
2022-02-22 11:32:10 +0100 | <tomsmeding> | merijn: https://hackage.haskell.org/package/foldl-1.4.12/docs/src/Control.Foldl.html#line-291 |
2022-02-22 11:32:13 +0100 | <tomsmeding> | it's literally liftA2 |
2022-02-22 11:32:34 +0100 | <tomsmeding> | (with a well-chosen Applicative instance) |
2022-02-22 11:34:05 +0100 | <kuribas> | liftA2 is constant for folds. |
2022-02-22 11:34:13 +0100 | <kuribas> | it just operates on the end result. |
2022-02-22 11:34:13 +0100 | <tomsmeding> | indeed |
2022-02-22 11:34:30 +0100 | <tomsmeding> | I realised that after looking at the Num instance and going "wait, what? Oh, of course" |
2022-02-22 11:35:23 +0100 | <tomsmeding> | [exa]: vectors are usually instances of Num precisely for that reason I think |
2022-02-22 11:35:56 +0100 | <tomsmeding> | except if intended as linear algebra vectors I guess, then (*) is a bit dodgy perhaps |
2022-02-22 11:36:26 +0100 | <dvdrw> | `signum' and `abs' are a bit dubious to pick an implementation for, too |
2022-02-22 11:36:59 +0100 | <tomsmeding> | they are for all non-scalar stuff |
2022-02-22 11:37:07 +0100 | vorpuni | (~pvorp@2001:861:3881:c690:d322:f659:136d:eef6) (Ping timeout: 256 seconds) |
2022-02-22 11:37:18 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 11:37:26 +0100 | <tomsmeding> | matrices, polynomials |
2022-02-22 11:38:16 +0100 | <tomsmeding> | hindsight says that perhaps it should have been Ring { (+), (*), (-), negate }, Ring => Num { abs, signum } |
2022-02-22 11:38:43 +0100 | <tomsmeding> | though that has the downside of more verbose instance declarations |
2022-02-22 11:38:55 +0100 | <geekosaur> | yet another attempt to redesign Num… |
2022-02-22 11:38:59 +0100 | <tomsmeding> | :D |
2022-02-22 11:39:06 +0100 | <geekosaur> | hackage has several failed attempts already |
2022-02-22 11:39:29 +0100 | <tomsmeding> | you know what would be nice? the ability to give instances for a whole tree of type classes compactly in a single clause |
2022-02-22 11:39:41 +0100 | <dvdrw> | https://xkcd.com/927/ :) |
2022-02-22 11:40:01 +0100 | <tomsmeding> | like, instance Monad Thing where fmap = ... ; pure = ... ; (<*>) = ... ; return = ... ; (>>=) = ... |
2022-02-22 11:40:09 +0100 | <tomsmeding> | bad example because this has lots of redundancy as well |
2022-02-22 11:40:15 +0100 | <geekosaur> | at some point one has to accept that Num exists for programmer convenience |
2022-02-22 11:40:33 +0100 | <tomsmeding> | then you could split up Num in lots of fine-grained classes, without the downside of making instance declarations much more verbose |
2022-02-22 11:40:38 +0100 | <dvdrw> | tomsmeding: maybe allow for lower typeclasses to use higher typeclass functions for default implementations? |
2022-02-22 11:40:45 +0100 | <tomsmeding> | and less people would have complained about FAM I guess |
2022-02-22 11:40:47 +0100 | <geekosaur> | already can |
2022-02-22 11:41:01 +0100 | <dminuoso> | dvdrw: that's already perfectly possible. |
2022-02-22 11:41:05 +0100 | <geekosaur> | many people backform Applicative instances with <*> = `ap` |
2022-02-22 11:41:09 +0100 | <[exa]> | tomsmeding: does it do the fusion though, to avoid making the intermediate vectors? for me the explicit fold there kinda materializes the efficiency expectation there |
2022-02-22 11:41:15 +0100 | <dminuoso> | dvdrw: Look how default Generic implementations usually work. |
2022-02-22 11:41:28 +0100 | <dminuoso> | (They dont even have to be subclasses, they can be arbitrary classes) |
2022-02-22 11:41:35 +0100 | <tomsmeding> | dvdrw: key thing is DefaultSignatures |
2022-02-22 11:41:46 +0100 | <tomsmeding> | though of course Functor/Applicative don't do it because legacy |
2022-02-22 11:41:52 +0100 | <dvdrw> | huh, didn't know that |
2022-02-22 11:41:57 +0100 | <tomsmeding> | [exa]: what's "it" you're referring to? |
2022-02-22 11:42:10 +0100 | <dminuoso> | tomsmeding: Honestly I'd find it detesting if `rg "instance Functor Foo"` wouldn't be fruitful. |
2022-02-22 11:42:12 +0100 | <[exa]> | tomsmeding: Num instance for vectors |
2022-02-22 11:42:20 +0100 | <tomsmeding> | dminuoso: very good point |
2022-02-22 11:42:32 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
2022-02-22 11:42:34 +0100 | <tomsmeding> | [exa]: ah, but fusion is a whole separate problem from operators like these |
2022-02-22 11:42:48 +0100 | <merijn> | dvdrw: You can use DefaultSignatures extension for that |
2022-02-22 11:42:56 +0100 | <[exa]> | yeah, it looked to me that the fold there could give a nice hint |
2022-02-22 11:42:58 +0100 | <tomsmeding> | if a user writes `map (*2) (map (+3) v)`, you probably want fusion as well |
2022-02-22 11:43:26 +0100 | <tomsmeding> | so not having easy broadcasting Num operators for your vectors doesn't allow you to ignore fusion :p |
2022-02-22 11:43:45 +0100 | <merijn> | dvdrw: basically lets you have a signature and default implementation that is "less general" that the normal type, see: https://github.com/merijn/validated-literals/blob/master/ValidLiterals.hs#L87-L89 |
2022-02-22 11:44:16 +0100 | <dminuoso> | tomsmeding: perhaps what you really want is some editor guidance. Say you let the editor know you want to write `instance Foo Monad`, and it will create a special buffer with `instance Functor where fmap = liftM; instance Applicative where pure = return; (<*>) = liftAP; instance Monad where return = ...; (>>=) = ...;`, and put your cursor directly to the definition of return |
2022-02-22 11:44:28 +0100 | <dminuoso> | Or just insert it right into your haskell editor buffer |
2022-02-22 11:44:35 +0100 | <dminuoso> | With HLS that should be doable |
2022-02-22 11:44:56 +0100 | <tomsmeding> | dminuoso: maybe that does most of the job indeed |
2022-02-22 11:45:59 +0100 | <tomsmeding> | dminuoso: I was thinking of a fragmentation of Num along the lines of this (linearity being irrelevant to the point) https://hackage.haskell.org/package/linear-base-0.1.0/docs/Data-Num-Linear.html |
2022-02-22 11:46:31 +0100 | <tomsmeding> | making a new type an instance of the right stuff will be awfully verbose |
2022-02-22 11:46:58 +0100 | <dvdrw> | merijn: that's a pretty cool feature |
2022-02-22 11:47:21 +0100 | <tomsmeding> | editor support would be nice, but then you slowly degenerate to java-like "let's generate all the code, then it's not bad that everything is hugely boilerplaty" |
2022-02-22 11:47:28 +0100 | <dminuoso> | Btw, I wish we had some way to attach metadata to constructors outside the type system. |
2022-02-22 11:47:35 +0100 | <tomsmeding> | I'm not saying my multi-instance declaration is the nicest solution either though |
2022-02-22 11:48:56 +0100 | <dminuoso> | It would be so neat if I could do something like `data Meta = Meta Int String; data State = Loaded {~ Meta 10 "loaded" ~} | Fixed {~ Meta 20 "fixed" ~}` |
2022-02-22 11:49:13 +0100 | <dminuoso> | With that meta data being accessible in say generics or TH... |
2022-02-22 11:49:29 +0100 | <lortabac> | clojure has something similar IIRC |
2022-02-22 11:50:27 +0100 | <turlando> | Is there a way to import a data constructor without the record accessor functions? |
2022-02-22 11:50:41 +0100 | <dminuoso> | turlando: import Foo (Foo(Foo)) |
2022-02-22 11:50:54 +0100 | <dminuoso> | Okay, perhaps a bit confusing with the overloaded usage of Foo here.. |
2022-02-22 11:51:05 +0100 | <dminuoso> | import Mod (TypeCon(DataCon)) |
2022-02-22 11:51:06 +0100 | <geekosaur> | actually I think no |
2022-02-22 11:51:15 +0100 | <turlando> | Yeah, it's confusing and I've tried it but with no luck, let me try harder |
2022-02-22 11:51:37 +0100 | <dminuoso> | geekosaur: Mmm, would that give me record accessors regardless? |
2022-02-22 11:51:37 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 11:51:42 +0100 | <geekosaur> | yes |
2022-02-22 11:51:47 +0100 | <dminuoso> | Uh that's surprising |
2022-02-22 11:51:59 +0100 | <geekosaur> | this is why 9.2 has an extension to not generate them |
2022-02-22 11:52:01 +0100 | <turlando> | nope: Not in scope: data constructor ‘Frame’ |
2022-02-22 11:52:12 +0100 | <turlando> | with: import Simulator.Frame (Frame(Frame)) |
2022-02-22 11:52:12 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) |
2022-02-22 11:52:31 +0100 | <geekosaur> | hm, that should importboth type and data constructor |
2022-02-22 11:52:46 +0100 | komikat | (~komikat@183.82.154.239) (Remote host closed the connection) |
2022-02-22 11:52:49 +0100 | <geekosaur> | (but no control over fields) |
2022-02-22 11:53:21 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-02-22 11:53:35 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit) |
2022-02-22 11:53:45 +0100 | <geekosaur> | actually, I wonder if you could export a bidirectional pattern synonym and not export the datacon itself |
2022-02-22 11:54:01 +0100 | komikat | (~komikat@183.82.154.239) |
2022-02-22 11:54:16 +0100 | <geekosaur> | you'd need to turn on the extension that lets you say `pattern Foo` in the export list |
2022-02-22 11:54:36 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-02-22 11:54:45 +0100 | <geekosaur> | ExplicitNamespaces |
2022-02-22 11:54:48 +0100 | <turlando> | True that, but seems to me a bit of overkill since I need this in a module only so far |
2022-02-22 11:56:17 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) (Ping timeout: 240 seconds) |
2022-02-22 11:58:36 +0100 | foul_owl | (~kerry@23.82.193.88) (Ping timeout: 256 seconds) |
2022-02-22 12:00:03 +0100 | komikat | (~komikat@183.82.154.239) (Remote host closed the connection) |
2022-02-22 12:00:06 +0100 | <turlando> | stack clean && stack build did the trick :\ |
2022-02-22 12:02:08 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-02-22 12:02:37 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-02-22 12:06:21 +0100 | notzmv | (~zmv@user/notzmv) |
2022-02-22 12:06:21 +0100 | komikat | (~komikat@183.82.154.239) |
2022-02-22 12:08:21 +0100 | tomsmeding | is happy to not have had build caching issues yet, neither stack nor cabal |
2022-02-22 12:08:41 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 12:11:20 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 12:13:50 +0100 | foul_owl | (~kerry@23.82.193.89) |
2022-02-22 12:15:48 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 12:17:32 +0100 | fendor_ | (~fendor@178.165.167.221.wireless.dyn.drei.com) |
2022-02-22 12:20:02 +0100 | fendor | (~fendor@178.115.60.54.wireless.dyn.drei.com) (Ping timeout: 250 seconds) |
2022-02-22 12:21:03 +0100 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) |
2022-02-22 12:21:18 +0100 | ccntrq1 | (~Thunderbi@2a01:e34:eccb:b060:8793:de70:3992:9c12) |
2022-02-22 12:23:03 +0100 | ccntrq | (~Thunderbi@imx92-1-78-204-187-6.fbx.proxad.net) (Ping timeout: 272 seconds) |
2022-02-22 12:23:03 +0100 | ccntrq1 | ccntrq |
2022-02-22 12:23:47 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) |
2022-02-22 12:24:16 +0100 | DNH | (~DNH@2a02:8109:b740:2c4:e0aa:430d:d615:45f4) |
2022-02-22 12:29:10 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 12:31:48 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds) |
2022-02-22 12:31:49 +0100 | alphabeta | (~kilolympu@31.205.200.235) |
2022-02-22 12:32:36 +0100 | kilolympus | (~kilolympu@vpn-fn-229.net.ed.ac.uk) (Ping timeout: 256 seconds) |
2022-02-22 12:33:03 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 12:33:39 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 12:37:14 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 12:38:50 +0100 | raym | (~raym@user/raym) (Ping timeout: 256 seconds) |
2022-02-22 12:39:40 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-02-22 12:41:03 +0100 | pokhu | (~rishi@103.206.114.112) |
2022-02-22 12:45:22 +0100 | raym | (~raym@user/raym) |
2022-02-22 12:48:37 +0100 | <dvdrw> | ski: awpr: Church-encoded constrained existential did it :) (Pretty similar to your ForSome) |
2022-02-22 12:52:51 +0100 | <ski> | dvdrw : hm ? |
2022-02-22 12:53:44 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 12:53:53 +0100 | jm_jj | (~jmjj@mobile-user-c3a5cc-243.dhcp.inet.fi) |
2022-02-22 12:54:44 +0100 | <dvdrw> | ski: `(foldl1 (>>) $ map ftog) :: [exists a. Show a => F a] -> (exists a. Show a => G a)' |
2022-02-22 12:55:04 +0100 | <dvdrw> | ...that should be a `(.)' |
2022-02-22 12:55:48 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-02-22 12:56:41 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-22 12:56:54 +0100 | <ski> | s/=>/*>/ |
2022-02-22 12:57:03 +0100 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-02-22 12:57:39 +0100 | <dvdrw> | that's because of the existential quantifier? |
2022-02-22 12:57:47 +0100 | <ski> | (yes and) no |
2022-02-22 12:58:38 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 12:58:51 +0100 | <ski> | to consume a value of type `Cxt => T', you have to provide evidence for the constraint `Cxt', and then you can consume the resulting value of type `T' |
2022-02-22 12:58:57 +0100 | MochizukisLastTh | (~Mochizuki@121-83-4-20f1.osk2.eonet.ne.jp) (Ping timeout: 256 seconds) |
2022-02-22 12:59:28 +0100 | <ski> | to produce a value of type `Cxt => T', you get to assume (you will be handed) evidence for the constraint `Cxt', and then you have to produce a value of type `T' |
2022-02-22 13:00:01 +0100 | <ski> | to produce a value of type `Cxt *> T', you have to provide evidence for the constraint `Cxt', and then you also have to produce a value of type `T' |
2022-02-22 13:01:15 +0100 | <ski> | to consume a value of type `Cxt *> T', you will be provided/handed (you can assume) evidence for the constraint `Cxt', and then you will also be given a value of type `T' to consume |
2022-02-22 13:01:52 +0100 | <dvdrw> | ah, I see |
2022-02-22 13:01:53 +0100 | <ski> | `Cxt *> T' is to `Cxt => T' what `(U,V) ' is to `U -> V' |
2022-02-22 13:02:23 +0100 | <ski> | `*>' is most commonly used directly inside `exists', just like `=>' is most commonly used directly inside `forall' |
2022-02-22 13:02:36 +0100 | ByronJohnson | (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (K-Lined) |
2022-02-22 13:02:36 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-02-22 13:02:47 +0100 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2022-02-22 13:02:47 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-22 13:03:10 +0100 | <dvdrw> | Do these arrows have a name? |
2022-02-22 13:03:59 +0100 | <ski> | here's one way you can simulate `Cxt *> T' : `data CxtWithT = Cxt => WrapCxtWithT T'. or, using `GADTs' syntax, `data CxtWithT where WrapCxtWithT :: Cxt => T -> CxtWithT' |
2022-02-22 13:05:06 +0100 | <ski> | (another way to simulate `Cxt *> T' is `forall o. (Cxt => T -> o) -> o'. this is the CPS / Church/Scott encoding) |
2022-02-22 13:05:57 +0100 | <dvdrw> | Indeed that's how I've written it for my `ForSome ctx f' type |
2022-02-22 13:06:41 +0100 | <dvdrw> | `forall r. (forall a. c a => tag a -> r) -> r' |
2022-02-22 13:07:35 +0100 | <dvdrw> | er, ...ctx a... |
2022-02-22 13:07:49 +0100 | <ski> | "Do these arrows have a name?" -- not really. the notation `*>' is something i've used for years, in here, to explain this distinction, and to be able to talk about this stuff |
2022-02-22 13:08:36 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-02-22 13:08:49 +0100 | <ski> | although, it seems that the word "provide" may be useful to talk about it |
2022-02-22 13:08:57 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-22 13:09:30 +0100 | <ski> | @hoogle Dict |
2022-02-22 13:09:30 +0100 | <lambdabot> | Data.Constraint data Dict |
2022-02-22 13:09:30 +0100 | <lambdabot> | Data.Constraint Dict :: a => Dict a |
2022-02-22 13:09:30 +0100 | <lambdabot> | Data.Vinyl.Core data Dict c a |
2022-02-22 13:10:27 +0100 | <ski> | that is `data Dict c = c => Dict', expressing `c *> ()'. which is itself one example of using `*>', not directly nested inside `exists' |
2022-02-22 13:11:36 +0100 | cynomys | (~cynomys@user/cynomys) (Ping timeout: 250 seconds) |
2022-02-22 13:12:23 +0100 | acidjnk | (~acidjnk@p200300d0c71a3216f19af2eb8990af00.dip0.t-ipconnect.de) |
2022-02-22 13:13:31 +0100 | ski | . o O ( <https://hackage.haskell.org/package/constraints-0.13.3/docs/Data-Constraint.html> ) |
2022-02-22 13:16:16 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 13:17:11 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 13:22:53 +0100 | spacenautx | (~spacenaut@user/spacenautx) |
2022-02-22 13:23:42 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 13:29:43 +0100 | mastarija | (~mastarija@2a05:4f46:e04:6000:d8cc:eac0:596a:75bb) |
2022-02-22 13:30:30 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
2022-02-22 13:31:36 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-22 13:32:05 +0100 | coot | (~coot@213.134.190.95) |
2022-02-22 13:33:27 +0100 | <ehammarstrom> | Since this compiles https://paste.tomsmeding.com/3IYPsd1g would this be considered a "proof" that ((g . f) .) = (g .) . (f .)? I guess given that I trust GHC (?) |
2022-02-22 13:34:22 +0100 | deadmarshal | (~deadmarsh@95.38.117.172) (Ping timeout: 256 seconds) |
2022-02-22 13:34:37 +0100 | <ehammarstrom> | Shoot, forgot to include `f :: Int -> Bool` and `g :: Bool -> Char` in the paste |
2022-02-22 13:34:56 +0100 | notabled1 | notableduck |
2022-02-22 13:35:17 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds) |
2022-02-22 13:35:42 +0100 | <ski> | was just going to ask about those |
2022-02-22 13:37:07 +0100 | <ski> | what does `(g . hb) . (f . ha)' have to do with `(g .) . (f .)' ? |
2022-02-22 13:38:20 +0100 | <ski> | and you haven't really provided any argument or check that two things are equal, you've just showed that some (separate) stuff type-checks |
2022-02-22 13:38:21 +0100 | <ehammarstrom> | ski: I thought of them as "hole a" and "hole b", filling in the missing args |
2022-02-22 13:38:24 +0100 | alMalsamo | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-02-22 13:38:42 +0100 | <ski> | (g .) . (f .) |
2022-02-22 13:38:51 +0100 | <ski> | = \h -> ((g .) . (f .)) h |
2022-02-22 13:38:59 +0100 | <ski> | = \h -> (g .) ((f .) h) |
2022-02-22 13:39:07 +0100 | <ski> | = \h -> g . (f . h) |
2022-02-22 13:39:40 +0100 | <ski> | this doesn't seem too related to your `\ha hb -> (g . hb) . (f . ha)' |
2022-02-22 13:39:55 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-22 13:41:32 +0100 | <ski> | (anyway, what `forall g f. ((g . f) .) = (g .) . (f .)' is really about is associativity. perhaps one could prove his as a consequence of a free theorem, hmm) |
2022-02-22 13:41:38 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds) |
2022-02-22 13:41:59 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 13:42:41 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-22 13:44:17 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-02-22 13:44:20 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2022-02-22 13:45:24 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 13:45:51 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-22 13:47:18 +0100 | <ski> | oh, just noticed your comment in the paste said `((g . f) . _) = (g . _) . (f . _)'. it's not too clear what you mean by that (although, you seem to have interpreted `(g . _) . (f . _)' as `(g . hb) . (f . ha)', but then what does those `hb' and `ha' have to do with the `h' that you get when you similarly interpret `((g . f) . _)' as `(g . f) . h' ?) in any case, it would seem to be different from your `((g |
2022-02-22 13:47:24 +0100 | <ski> | . f) .) = (g .) . (f .)' above |
2022-02-22 13:49:02 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2022-02-22 13:52:07 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-02-22 13:52:12 +0100 | yauhsien_ | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 13:52:31 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
2022-02-22 13:53:25 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-22 13:54:24 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) |
2022-02-22 13:54:35 +0100 | deadmarshal | (~deadmarsh@95.38.117.172) |
2022-02-22 13:54:50 +0100 | andreabedini | (~andreabed@8s8kj68c1m9cwyq773h2.ip6.superloop.com) |
2022-02-22 13:56:33 +0100 | alphabeta | (~kilolympu@31.205.200.235) (Quit: Quitting IRC :() |
2022-02-22 13:56:45 +0100 | yauhsien_ | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-02-22 13:56:52 +0100 | kilolympus | (~kilolympu@31.205.200.235) |
2022-02-22 13:58:37 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) (Ping timeout: 240 seconds) |
2022-02-22 14:02:14 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 14:03:41 +0100 | xff0x | (~xff0x@2001:1a81:5372:9200:8a1a:331:2fa:81ab) (Ping timeout: 245 seconds) |
2022-02-22 14:03:50 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-02-22 14:04:31 +0100 | xff0x | (~xff0x@2001:1a81:5372:9200:6a39:7582:9b2d:4f3d) |
2022-02-22 14:06:06 +0100 | chenqisu1 | (~chenqisu1@183.217.200.249) (Ping timeout: 256 seconds) |
2022-02-22 14:06:06 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 14:07:39 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-22 14:11:34 +0100 | jespada_ | (~jespada@85.255.234.190) (Ping timeout: 260 seconds) |
2022-02-22 14:14:34 +0100 | AlexNoo | (~AlexNoo@178.34.160.240) (Quit: Leaving) |
2022-02-22 14:14:46 +0100 | Alex_test | (~al_test@178.34.160.240) (Quit: ;-) |
2022-02-22 14:14:56 +0100 | DNH | (~DNH@2a02:8109:b740:2c4:e0aa:430d:d615:45f4) (Ping timeout: 245 seconds) |
2022-02-22 14:15:04 +0100 | AlexZenon | (~alzenon@178.34.160.240) (Quit: ;-) |
2022-02-22 14:18:05 +0100 | o-90 | (~o-90@gateway/tor-sasl/o-90) |
2022-02-22 14:20:32 +0100 | AlexZenon | (~alzenon@178.34.160.240) |
2022-02-22 14:20:41 +0100 | AlexNoo | (~AlexNoo@178.34.160.240) |
2022-02-22 14:22:16 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 14:22:21 +0100 | Alex_test | (~al_test@178.34.160.240) |
2022-02-22 14:24:18 +0100 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-02-22 14:25:01 +0100 | nil | (~user@134.209.106.31) |
2022-02-22 14:25:37 +0100 | xff0x | (~xff0x@2001:1a81:5372:9200:6a39:7582:9b2d:4f3d) (Ping timeout: 240 seconds) |
2022-02-22 14:25:49 +0100 | <nil> | It is possible to use linear-base's mutable hash map to do something like: for (i in [1..100]) { hm.insert(i, i); print(i); } ? |
2022-02-22 14:26:43 +0100 | xff0x | (~xff0x@2001:1a81:5372:9200:4da8:4717:4e75:17ef) |
2022-02-22 14:27:03 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 14:28:04 +0100 | <nil> | HashMap's constructors (empty and fromList) require the return types to be `Ur a`, so no `IO`. :-/ |
2022-02-22 14:29:12 +0100 | o-90 | (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection) |
2022-02-22 14:30:52 +0100 | nil | (~user@134.209.106.31) (Remote host closed the connection) |
2022-02-22 14:32:18 +0100 | <merijn> | possibly? seems needlesly complicated for something trivially achieved by a fold seems overkill... |
2022-02-22 14:32:41 +0100 | andreabedini | (~andreabed@8s8kj68c1m9cwyq773h2.ip6.superloop.com) (Quit: WeeChat 3.3) |
2022-02-22 14:33:02 +0100 | max22- | (~maxime@2a01cb08833598000dbf298a01dd3327.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds) |
2022-02-22 14:39:12 +0100 | yauhsien_ | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 14:41:49 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 14:42:05 +0100 | deadmarshal | (~deadmarsh@95.38.117.172) (Ping timeout: 256 seconds) |
2022-02-22 14:43:21 +0100 | benin | (~benin@59.92.239.104) (Quit: The Lounge - https://thelounge.chat) |
2022-02-22 14:43:43 +0100 | benin | (~benin@59.92.239.104) |
2022-02-22 14:44:47 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 14:48:18 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 14:49:17 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2022-02-22 14:49:20 +0100 | komikat | (~komikat@183.82.154.239) (Read error: Connection reset by peer) |
2022-02-22 14:49:23 +0100 | yauhsien_ | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-02-22 14:49:35 +0100 | komikat | (~komikat@183.82.154.239) |
2022-02-22 14:49:38 +0100 | fryguybob | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) |
2022-02-22 14:50:51 +0100 | mastarija | (~mastarija@2a05:4f46:e04:6000:d8cc:eac0:596a:75bb) (Quit: Leaving) |
2022-02-22 14:53:34 +0100 | acidjnk | (~acidjnk@p200300d0c71a3216f19af2eb8990af00.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-02-22 14:56:09 +0100 | yauhsien_ | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 14:56:11 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-02-22 14:56:41 +0100 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
2022-02-22 14:56:52 +0100 | hololeap | (~hololeap@user/hololeap) (Excess Flood) |
2022-02-22 14:57:20 +0100 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2022-02-22 14:57:48 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds) |
2022-02-22 14:59:08 +0100 | hololeap | (~hololeap@user/hololeap) |
2022-02-22 15:01:23 +0100 | yauhsien_ | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
2022-02-22 15:02:36 +0100 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2022-02-22 15:05:39 +0100 | bahamas | (~lucian@84.232.140.52) |
2022-02-22 15:06:24 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 15:10:15 +0100 | doyougnu | (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) |
2022-02-22 15:10:42 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 15:15:30 +0100 | deadmarshal | (~deadmarsh@95.38.117.172) |
2022-02-22 15:18:23 +0100 | max22- | (~maxime@2a01cb088335980021dd241f5bb447ef.ipv6.abo.wanadoo.fr) |
2022-02-22 15:19:04 +0100 | AlexNoo_ | (~AlexNoo@178.34.160.252) |
2022-02-22 15:19:32 +0100 | deadmarshal | (~deadmarsh@95.38.117.172) (Ping timeout: 240 seconds) |
2022-02-22 15:21:28 +0100 | Alex_test | (~al_test@178.34.160.240) (Ping timeout: 256 seconds) |
2022-02-22 15:22:02 +0100 | AlexZenon | (~alzenon@178.34.160.240) (Ping timeout: 256 seconds) |
2022-02-22 15:22:19 +0100 | AlexNoo | (~AlexNoo@178.34.160.240) (Ping timeout: 256 seconds) |
2022-02-22 15:23:56 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-22 15:23:56 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-22 15:23:56 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-22 15:24:11 +0100 | benin | (~benin@59.92.239.104) (Ping timeout: 272 seconds) |
2022-02-22 15:24:52 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-02-22 15:25:11 +0100 | Alex_test | (~al_test@178.34.160.252) |
2022-02-22 15:25:49 +0100 | Alex_test_ | (~al_test@178.34.160.252) |
2022-02-22 15:25:56 +0100 | benin | (~benin@59.92.239.104) |
2022-02-22 15:25:57 +0100 | AlexZenon | (~alzenon@178.34.160.252) |
2022-02-22 15:26:14 +0100 | AlexZenon_2 | (~alzenon@178.34.160.252) |
2022-02-22 15:26:21 +0100 | shriekingnoise | (~shrieking@201.231.16.156) |
2022-02-22 15:28:45 +0100 | Null_A | (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) |
2022-02-22 15:28:56 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 15:29:37 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-02-22 15:31:46 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 15:32:25 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 15:33:41 +0100 | Null_A | (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
2022-02-22 15:34:08 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2022-02-22 15:34:25 +0100 | AlexZenon_2 | (~alzenon@178.34.160.252) (Quit: ;-) |
2022-02-22 15:34:59 +0100 | Alex_test_ | (~al_test@178.34.160.252) (Quit: ;-) |
2022-02-22 15:35:53 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 15:36:18 +0100 | AlexNoo_ | AlexNoo |
2022-02-22 15:36:47 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit) |
2022-02-22 15:36:59 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2022-02-22 15:40:39 +0100 | bahamas | (~lucian@84.232.140.52) (Ping timeout: 272 seconds) |
2022-02-22 15:41:19 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2022-02-22 15:42:09 +0100 | gawen | (~gawen@user/gawen) (Quit: cya) |
2022-02-22 15:42:32 +0100 | rtsn | (~nstr@user/rtsn) |
2022-02-22 15:45:05 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
2022-02-22 15:47:36 +0100 | gawen | (~gawen@user/gawen) |
2022-02-22 15:52:50 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 15:53:23 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-02-22 15:54:56 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-02-22 15:54:59 +0100 | rembo10 | (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-02-22 15:55:56 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 15:55:58 +0100 | rembo10 | (~rembo10@remulis.com) |
2022-02-22 15:56:13 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) |
2022-02-22 15:57:49 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-02-22 15:58:26 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-02-22 16:00:26 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:1947:6ff5:3916:a376) (Quit: WeeChat 2.8) |
2022-02-22 16:00:36 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) (Ping timeout: 250 seconds) |
2022-02-22 16:01:28 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) |
2022-02-22 16:02:29 +0100 | arjun | (~arjun@user/arjun) |
2022-02-22 16:04:05 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
2022-02-22 16:04:22 +0100 | arjun | (~arjun@user/arjun) (Remote host closed the connection) |
2022-02-22 16:04:31 +0100 | wonko | (~wjc@user/wonko) (Ping timeout: 245 seconds) |
2022-02-22 16:06:12 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds) |
2022-02-22 16:07:44 +0100 | komikat | (~komikat@183.82.154.239) (Remote host closed the connection) |
2022-02-22 16:07:53 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:1947:6ff5:3916:a376) |
2022-02-22 16:09:56 +0100 | bahamas | (~lucian@84.232.140.52) |
2022-02-22 16:13:05 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 16:14:45 +0100 | hololeap_ | (~hololeap@user/hololeap) |
2022-02-22 16:15:24 +0100 | mbuf | (~Shakthi@223.178.77.186) (Quit: Leaving) |
2022-02-22 16:16:22 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-02-22 16:16:23 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 16:16:26 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 256 seconds) |
2022-02-22 16:17:56 +0100 | hololeap | (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
2022-02-22 16:18:39 +0100 | doyougnu | (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 272 seconds) |
2022-02-22 16:19:35 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-02-22 16:23:46 +0100 | komikat | (~komikat@183.82.154.239) |
2022-02-22 16:23:58 +0100 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-02-22 16:26:21 +0100 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 256 seconds) |
2022-02-22 16:29:19 +0100 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.com) |
2022-02-22 16:29:19 +0100 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
2022-02-22 16:29:19 +0100 | dibblego | (~dibblego@haskell/developer/dibblego) |
2022-02-22 16:29:22 +0100 | <fendor[m]> | did someone else notice that cabal's test-show-detail is ignored/missing in github actions? I thought `--test-show-details=direct` should always show the output of the test-stream... |
2022-02-22 16:29:28 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2022-02-22 16:32:50 +0100 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-02-22 16:34:04 +0100 | komikat | (~komikat@183.82.154.239) (Remote host closed the connection) |
2022-02-22 16:34:28 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 272 seconds) |
2022-02-22 16:34:42 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 16:34:43 +0100 | komikat | (~komikat@183.82.154.239) |
2022-02-22 16:34:47 +0100 | komikat | (~komikat@183.82.154.239) (Remote host closed the connection) |
2022-02-22 16:34:59 +0100 | komikat | (~komikat@183.82.154.239) |
2022-02-22 16:37:56 +0100 | spacenautx | (~spacenaut@user/spacenautx) (Quit: WeeChat 3.4) |
2022-02-22 16:39:33 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 16:50:34 +0100 | max22- | (~maxime@2a01cb088335980021dd241f5bb447ef.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
2022-02-22 16:51:14 +0100 | max22- | (~maxime@2a01cb088335980027fe609829d061d7.ipv6.abo.wanadoo.fr) |
2022-02-22 16:57:13 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 16:57:27 +0100 | shapr | (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2022-02-22 16:58:56 +0100 | shapr | (~user@pool-173-73-44-186.washdc.fios.verizon.net) |
2022-02-22 16:59:21 +0100 | xkuru | (~xkuru@user/xkuru) |
2022-02-22 16:59:21 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-02-22 16:59:29 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-02-22 17:00:12 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 240 seconds) |
2022-02-22 17:00:24 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 17:01:10 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:1947:6ff5:3916:a376) (Quit: WeeChat 2.8) |
2022-02-22 17:02:07 +0100 | joegard | (~joegard@179.33.119.167) |
2022-02-22 17:03:00 +0100 | zebrag | (~chris@user/zebrag) |
2022-02-22 17:04:52 +0100 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2022-02-22 17:07:09 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Ping timeout: 256 seconds) |
2022-02-22 17:09:00 +0100 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 240 seconds) |
2022-02-22 17:09:19 +0100 | jespada | (~jespada@85.255.234.190) |
2022-02-22 17:10:38 +0100 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
2022-02-22 17:12:31 +0100 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.com) |
2022-02-22 17:12:31 +0100 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
2022-02-22 17:12:31 +0100 | dibblego | (~dibblego@haskell/developer/dibblego) |
2022-02-22 17:13:28 +0100 | joegard | (~joegard@179.33.119.167) (Quit: Client closed) |
2022-02-22 17:17:29 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 17:21:21 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 17:21:54 +0100 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2022-02-22 17:22:36 +0100 | bahamas | (~lucian@84.232.140.52) (Ping timeout: 240 seconds) |
2022-02-22 17:32:03 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection) |
2022-02-22 17:32:18 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) |
2022-02-22 17:37:30 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 17:38:57 +0100 | dust_ | (~dust@2409:4071:4e8b:a664:ed93:7b31:fb42:6202) |
2022-02-22 17:40:42 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 17:43:00 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-02-22 17:44:01 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-02-22 17:45:12 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) |
2022-02-22 17:47:07 +0100 | komikat | (~komikat@183.82.154.239) (Read error: Connection reset by peer) |
2022-02-22 17:47:24 +0100 | komikat | (~komikat@183.82.154.239) |
2022-02-22 17:47:57 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-02-22 17:48:37 +0100 | Benzi-Junior | (~BenziJuni@dsl-149-66-61.hive.is) (Ping timeout: 240 seconds) |
2022-02-22 17:50:26 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 260 seconds) |
2022-02-22 17:50:37 +0100 | ph88 | (~ph88@ip5f5af71f.dynamic.kabel-deutschland.de) (Quit: Leaving) |
2022-02-22 17:54:12 +0100 | Vajb | (~Vajb@2001:999:274:c862:3b86:e1e1:5bff:355e) |
2022-02-22 17:54:23 +0100 | <kronicma1> | hey folks, does anyone know what the proper term is for a freer/operational monad where all Return/Pure and Bind/Impure are defined in the same gadt as the instructions? |
2022-02-22 17:54:23 +0100 | <fendor[m]> | I forgot, does dropping support for a ghc version require a major version bump? |
2022-02-22 17:54:54 +0100 | <kronicma1> | rather than defining the instructions in a functor and having FFree/Operationl be polymorphic over functors and having Return:: a -> FFree f a and such |
2022-02-22 17:57:01 +0100 | <ski> | (s/polymorphic/parametric/) |
2022-02-22 17:57:21 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-02-22 17:57:43 +0100 | <kronicma1> | oops thanks ski |
2022-02-22 17:58:52 +0100 | <kronicma1> | i've seen the technique a lot in various haskell and ocaml libraries but not sure if it has it's own name besides freer/operational monads (which are slightly different cause of the separation) |
2022-02-22 17:59:08 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 17:59:17 +0100 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 256 seconds) |
2022-02-22 17:59:22 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2022-02-22 18:01:19 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) |
2022-02-22 18:01:32 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 18:02:27 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 18:03:18 +0100 | <ski> | kronicma1 : "deep embedding" of eDSL might be slightly relevant |
2022-02-22 18:03:35 +0100 | Vajb | (~Vajb@2001:999:274:c862:3b86:e1e1:5bff:355e) (Ping timeout: 256 seconds) |
2022-02-22 18:04:07 +0100 | <ski> | (note that if you want it to be a monad, then it really should be an abstract data type (so that you can simulate the appropriate quotient of the representation data structure)) |
2022-02-22 18:05:08 +0100 | <ski> | (an alternative is to fuse `Bind' with the primitive operations. or possibly to go CPS, which is close) |
2022-02-22 18:06:28 +0100 | <turlando> | I've a question about style/architecture. I'm implementing a discrete event simulator. Right now I ask the user to implement a function that takes the current state, an incoming event to produce the resulting state. I have a function that folds over the events with the state transition function to produce the final result. So far so good. Now I want the user to be able to schedule or unschedule events from within the state transition function and I'm |
2022-02-22 18:06:28 +0100 | <turlando> | not sure what's the cleanest approach. I'm thinking of changing the state transition function so that it gets an "environment" (state + future events) and produces an "environment", coupling it with functions to manipulate it to schedule events and updating the state. What do you think? |
2022-02-22 18:07:14 +0100 | <lyxia> | kronicma1: isn't that Fix (for example in data-fix) |
2022-02-22 18:07:38 +0100 | <ski> | i think kronicma1 also wanted the recursion baked in |
2022-02-22 18:09:18 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) (Remote host closed the connection) |
2022-02-22 18:11:25 +0100 | CATS | (~apic@brezn2.muc.ccc.de) |
2022-02-22 18:11:47 +0100 | <kronicma1> | lyxia, I don't think that's it |
2022-02-22 18:11:56 +0100 | <kronicma1> | Here's an example of what I'm talking about: https://github.com/s-zeng/haskell-monads-showcase/blob/master/app/DiskFS.hs#L223 |
2022-02-22 18:12:09 +0100 | <c_wraith> | turlando: from the point of view of your interface, isn't that all just a state? |
2022-02-22 18:12:34 +0100 | <c_wraith> | turlando: like, why does it need to change at all to accommodate that use pattern? |
2022-02-22 18:12:36 +0100 | <kronicma1> | You can see how it has the bind and pure baked in rather than the normal operational/ffree way of separating those two off into a different gadt |
2022-02-22 18:13:17 +0100 | <lyxia> | I see, yeah Fix still keeps the "Bind" separate. |
2022-02-22 18:13:40 +0100 | <ski> | BindTryCreateFile :: String -> String -> Simulator a -> Simulator a -- &c. |
2022-02-22 18:14:16 +0100 | <turlando> | c_wraith because the "client" right now has no notion of the event list (which is an opaque type being a priority lists of client-defined events) |
2022-02-22 18:15:22 +0100 | <lyxia> | I don't think it has a dedicated name, IMO it's still the free/operational monad approach even if you don't get a standalone type to give it the same name. |
2022-02-22 18:15:25 +0100 | <ski> | BindTryCreateFile f s c >>= k = BindTryCreateFile f s (c >>= k) |
2022-02-22 18:15:49 +0100 | <ski> | tryCreateFile f s = BindTryCreateFile f s (Return ()) |
2022-02-22 18:16:21 +0100 | <ski> | (s/Return/Pure/, i suppose) |
2022-02-22 18:16:36 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds) |
2022-02-22 18:17:42 +0100 | <ski> | but you could also go `newtype Simulator a = MkSimulator ((a -> Action) -> Action)', where `data Action = TryCreateFile String String Action | ...', which is the CPS |
2022-02-22 18:17:59 +0100 | <c_wraith> | turlando: ah. I think I'd need to see a much more detailed breakdown to really understand. But I can think of a few different directions you could go, like using a sort of Has-pattern for the state, or registering clients with an update function that lets them operate only on portions of the total state. There are a lot of other options available as well, depending on details |
2022-02-22 18:18:25 +0100 | <ski> | (you could include a `Result r' alternative in `Action r', and do `forall r. (a -> Action r) -> Action r', if you wanted to be able to export a final result) |
2022-02-22 18:18:46 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-02-22 18:19:22 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 18:20:05 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-02-22 18:21:48 +0100 | <turlando> | c_wraith thank you, but there might be a misunderstanding: I call "clients" what is using the interface, namely just a typeclass as of now. So I'm not sure about the registering thing |
2022-02-22 18:22:16 +0100 | turlando | is ski is talking to me |
2022-02-22 18:22:26 +0100 | <turlando> | s/is/is not sure/ |
2022-02-22 18:23:06 +0100 | ajb_ | (~ajb@cupid.whatbox.ca) (Remote host closed the connection) |
2022-02-22 18:23:35 +0100 | <ski> | turlando : i was in the kronicma1 conversation |
2022-02-22 18:23:49 +0100 | ski | calls the `/me' police |
2022-02-22 18:24:22 +0100 | <turlando> | Sorry, the 'Simulator a' caught my attention |
2022-02-22 18:24:42 +0100 | <ski> | nw. it was in the example kronicma1 linked to |
2022-02-22 18:25:01 +0100 | <ski> | (also, i'm not sure what you mean by "unschedule events") |
2022-02-22 18:25:01 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 18:25:45 +0100 | ubert1 | (~Thunderbi@2a02:8109:9880:303c:b499:2e2d:5a8b:934e) (Remote host closed the connection) |
2022-02-22 18:26:36 +0100 | <turlando> | Just removing an event from the future event list, actually I'm not even sure it has an use case, I'm more interested in the scheduling part |
2022-02-22 18:26:50 +0100 | doyougnu | (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) |
2022-02-22 18:27:22 +0100 | <c_wraith> | I think you're making things too complicated by thinking of it as something outside of the state |
2022-02-22 18:27:34 +0100 | <c_wraith> | It is quite literally part of the state |
2022-02-22 18:28:02 +0100 | <ski> | at least it could be |
2022-02-22 18:28:30 +0100 | <turlando> | So you suggest to make it part of non-user-defined state, right? |
2022-02-22 18:28:45 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-02-22 18:28:58 +0100 | <c_wraith> | Well, make part of the state user-defined |
2022-02-22 18:30:04 +0100 | <c_wraith> | But really, this whole thing needs code - at least type signatures. That would make the conversation a lot more useful. |
2022-02-22 18:30:28 +0100 | <c_wraith> | Maybe you want a data type like Mealy which closes over local state. |
2022-02-22 18:30:50 +0100 | <c_wraith> | Maybe you want the global state augmented |
2022-02-22 18:31:20 +0100 | <c_wraith> | There are just too many degrees of freedom in text. |
2022-02-22 18:31:57 +0100 | econo | (uid147250@user/econo) |
2022-02-22 18:33:51 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-02-22 18:33:55 +0100 | <turlando> | I can show you part of the thing. For instance the simulation interface https://github.com/turlando/discrete-event-simulator/blob/master/src/Simulator.hs#L12-L17 |
2022-02-22 18:35:31 +0100 | bahamas | (~lucian@84.232.140.52) |
2022-02-22 18:35:39 +0100 | <ski> | oh, you also had something called `Simulator' there :) |
2022-02-22 18:35:47 +0100 | <ski> | (er, `Simulation') |
2022-02-22 18:35:50 +0100 | <turlando> | :) |
2022-02-22 18:36:01 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-02-22 18:36:06 +0100 | <turlando> | Here is an example "client" https://github.com/turlando/discrete-event-simulator/blob/master/src/Simulator/Example/Server.hs |
2022-02-22 18:36:30 +0100 | <turlando> | (just simulating a single threaded server, again, confusing naming) |
2022-02-22 18:37:56 +0100 | <ski> | oh, `CalendarEvent event' is a type synonym |
2022-02-22 18:38:10 +0100 | <ski> | (or family, i guess ?) |
2022-02-22 18:38:39 +0100 | <ski> | incorrect `Show' instances detected |
2022-02-22 18:38:46 +0100 | <turlando> | Yes, consisting of the discrete time instant and the user-defined event. And they're collected into a Calendar type, which is basically a priority list |
2022-02-22 18:38:51 +0100 | Vajb | (~Vajb@2001:999:274:c862:3b86:e1e1:5bff:355e) |
2022-02-22 18:39:09 +0100 | <turlando> | (the calendar is the future event list I mentioned above) |
2022-02-22 18:39:58 +0100 | <turlando> | So yeah, I'm not sure what's the most idiomatic way to implement adding new events from within the transition function or if it's a good idea at all |
2022-02-22 18:40:42 +0100 | <c_wraith> | ok, so after reviewing most of the code there - why is Simulation a class at all? |
2022-02-22 18:41:39 +0100 | <ski> | turlando : do you have multiple instances of `Simulator' ? do you have any operations which are polymorphic over `Simulator' instances ? |
2022-02-22 18:41:40 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 18:42:01 +0100 | <c_wraith> | yeah, the same question ski has. :) |
2022-02-22 18:42:10 +0100 | <ski> | turlando : anyway, please don't abuse `Show' for custom pretty-printing |
2022-02-22 18:42:17 +0100 | <turlando> | The run function in the Simulator module is polymorphic over Simulation |
2022-02-22 18:43:03 +0100 | <c_wraith> | But why is it a class? |
2022-02-22 18:43:15 +0100 | <turlando> | ski sorry, as you can see it's a quick and dirty thing as of now, I want to fix it when I get the Simulator design right, it just use that show to print the result in a eye-scanning-friendly manner |
2022-02-22 18:43:15 +0100 | Vajb | (~Vajb@2001:999:274:c862:3b86:e1e1:5bff:355e) (Ping timeout: 256 seconds) |
2022-02-22 18:43:25 +0100 | <ski> | could `Simulation' be a record ? |
2022-02-22 18:44:15 +0100 | <turlando> | Why do you suggest to change it to a record? |
2022-02-22 18:44:19 +0100 | <ski> | turlando : well, from that response, hopefully you're at least aware that you're not supposed to use `Show' like that (although perhaps not aware of why) |
2022-02-22 18:44:54 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 18:45:06 +0100 | <c_wraith> | because classes tie behavior to types. You can't change behavior without changing types. With a record of functions, you can change behavior without changing types. |
2022-02-22 18:45:39 +0100 | <ski> | (or, if you don't really need multiple instances at all, you could directly use the implementation (or maybe use something like Backpack, which would give another way to swap out different implementations, although at compile-time)) |
2022-02-22 18:46:03 +0100 | <c_wraith> | If you keep going in that direction, you eventually end up with a type kind of like Mealy. Or maybe Fold. |
2022-02-22 18:46:06 +0100 | <ski> | what c_wraith just said can be a pro, as well as a con, depending on what you're after |
2022-02-22 18:46:24 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-22 18:48:18 +0100 | <turlando> | First of all, thank you a lot for the effort you're putting into this. Secondly, I'm not sure I'm understanding everything. Could you elaborate a bit more the "change behavior without changing types" thing please? |
2022-02-22 18:48:46 +0100 | dust_ | (~dust@2409:4071:4e8b:a664:ed93:7b31:fb42:6202) (Quit: Konversation terminated!) |
2022-02-22 18:50:05 +0100 | <turlando> | The Server's State and Event are supposed to have a single behavior over the simulation, so I thought a class would be a good fit so that I also handling the "running" bits externally, but I think I'm missing the point |
2022-02-22 18:50:19 +0100 | <turlando> | s/I also/I also can/ |
2022-02-22 18:50:28 +0100 | <turlando> | s/handling/handle/ |
2022-02-22 18:50:35 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) |
2022-02-22 18:50:57 +0100 | MajorBiscuit | (~MajorBisc@c-001-029-040.client.tudelft.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-02-22 18:51:11 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-02-22 18:51:24 +0100 | <romesrf> | hello, I'm running quickcheck with tasty but I don't get the falsifiable counter example |
2022-02-22 18:51:35 +0100 | <romesrf> | *** Failed! Falsified (after 1 test): |
2022-02-22 18:51:37 +0100 | <romesrf> | Use --quickcheck-replay=805757 to reproduce. |
2022-02-22 18:52:04 +0100 | <romesrf> | I'm using cabal, how would I run the tests and output the counter example? |
2022-02-22 18:52:44 +0100 | <romesrf> | I've also seen --quickcheck-verbose mentioned online -- but I don't know where to pass the flags |
2022-02-22 18:52:46 +0100 | <sclv> | you can run the test executable directly. |
2022-02-22 18:52:59 +0100 | <sclv> | its under dist-newstyle and the "list-bin" command will find it |
2022-02-22 18:53:58 +0100 | polyphem | (~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17) (Quit: WeeChat 3.4) |
2022-02-22 18:54:06 +0100 | <romesrf> | Just did, but unfortunately I still get no counter example |
2022-02-22 18:54:49 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-02-22 18:54:51 +0100 | <romesrf> | the test is Gen Bool, and I'm using Test.Tasty.Quickcheck.testProperty |
2022-02-22 18:55:38 +0100 | <sclv> | running it directly lets you pass the flags more easily, is why i suggested |
2022-02-22 18:55:57 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-02-22 18:56:09 +0100 | <romesrf> | oh! |
2022-02-22 18:56:20 +0100 | <c_wraith> | turlando: can you imagine ever wanting to transform an existing Simulation? like say... filterEvents :: (event -> Bool) -> Simulation state event result -> Simulation state event result |
2022-02-22 18:56:23 +0100 | <romesrf> | thank you :) |
2022-02-22 18:56:28 +0100 | <sclv> | you can even run it with --help to get a pretty good listing of what the options are |
2022-02-22 18:56:35 +0100 | jao | (~jao@68.235.43.174) |
2022-02-22 18:56:40 +0100 | <romesrf> | sclv: that did it, ty |
2022-02-22 18:56:51 +0100 | <ProfSimm> | Why have both do notation and >> |
2022-02-22 18:57:15 +0100 | <ski> | turlando : if you have `run :: Simulation state event result -> state -> Calendar event -> (result,[Frame state event])', using `data Simulation state event result = MkSimulation {transition :: state -> CalendarEvent event -> state,result :: [Frame state event] -> result}', then you can pass different records of type `Simulation State Event Result' to `run', without having to change to different state, |
2022-02-22 18:57:21 +0100 | <ski> | event, or result types |
2022-02-22 18:57:31 +0100 | <c_wraith> | ProfSimm: sometimes it's easier to not have a lot have a lot of nested infix applications |
2022-02-22 18:57:55 +0100 | jlamothe | (~jlamothe@198.251.61.229) |
2022-02-22 18:58:04 +0100 | <ski> | (whether that would be desirable or not is a different question) |
2022-02-22 18:58:04 +0100 | <ProfSimm> | c_wraith: if we wrap do {} around >> application and replace >> with ; it's the same source |
2022-02-22 18:58:14 +0100 | <c_wraith> | ProfSimm: also, do notation adds sugar for more than (>>) |
2022-02-22 18:58:30 +0100 | <ProfSimm> | Does it |
2022-02-22 18:58:33 +0100 | arcadiancomp | (~anon626@96-91-245-193-static.hfc.comcastbusiness.net) (Quit: Leaving) |
2022-02-22 18:59:06 +0100 | <c_wraith> | :t \f mx my -> do { x <- mx ; y <- my ; f x y } -- ProfSimm |
2022-02-22 18:59:07 +0100 | <lambdabot> | Monad m => (t1 -> t2 -> m b) -> m t1 -> m t2 -> m b |
2022-02-22 18:59:11 +0100 | dalek_caan | (~Thunderbi@109.252.124.86) |
2022-02-22 18:59:27 +0100 | <dolio> | @undo do { x ; y ; z } |
2022-02-22 18:59:27 +0100 | <lambdabot> | x >> y >> z |
2022-02-22 18:59:44 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-02-22 18:59:44 +0100 | <ski> | @undo do { x <- mx ; y <- my ; f x y } |
2022-02-22 18:59:44 +0100 | <lambdabot> | mx >>= \ x -> my >>= \ y -> f x y |
2022-02-22 18:59:54 +0100 | <ProfSimm> | Thanks |
2022-02-22 19:00:06 +0100 | <c_wraith> | ProfSimm: also, that assertion isn't true the instant any of your statements involve infix operators with lower precedence than (>>) |
2022-02-22 19:00:38 +0100 | <ski> | @undo do {x <- mx; let {y = ey}; Just z <- mz; f x y z} |
2022-02-22 19:00:39 +0100 | <lambdabot> | mx >>= \ x -> let { y = ey} in mz >>= \ a -> case a of { Just z -> f x y z; _ -> fail ""} |
2022-02-22 19:01:05 +0100 | <turlando> | c_wraith: no, but I might need to run the simulation with different conditions (e.g. terminate at a given Instant) |
2022-02-22 19:01:38 +0100 | <ski> | @undo [f x y z | x <- xs,let y = e,Just z <- mzs,p x y z] |
2022-02-22 19:01:38 +0100 | <lambdabot> | concatMap (\ x -> let { y = e} in concatMap (\ a -> case a of { Just z -> if p x y z then [f x y z] else []; _ -> []}) mzs) xs |
2022-02-22 19:01:47 +0100 | <turlando> | ski: I'm tryinf to figure out the implications of that |
2022-02-22 19:01:54 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 19:02:14 +0100 | <ski> | turlando : well, you lose the "unique-implementation-per-type", and also the ability to have FDs |
2022-02-22 19:03:35 +0100 | <turlando> | I'm not sure it's a great loss, but from what I imagine, it makes sense to only have a single implementation per (State, Event, Result) triplet. I'm trying to imagine when it might not be the case |
2022-02-22 19:03:47 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-22 19:04:26 +0100 | emf | (~emf@c-73-97-137-43.hsd1.wa.comcast.net) |
2022-02-22 19:05:00 +0100 | alp | (~alp@user/alp) (Ping timeout: 240 seconds) |
2022-02-22 19:05:52 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 19:07:04 +0100 | <ski> | i guess we're still also wondering if you have multiple instances of `Simulation' in mind at all |
2022-02-22 19:08:32 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-02-22 19:09:26 +0100 | <turlando> | ski: yes in the sense that in the same codebase I might implement different simulations and no in the sense that usually you're using a single simulation at any given moment |
2022-02-22 19:09:33 +0100 | <turlando> | Not sure if it answers the question though |
2022-02-22 19:10:35 +0100 | <ski> | and you'd want to share code (more than `run') that's polymorphic over that ? |
2022-02-22 19:11:35 +0100 | bahamas | (~lucian@84.232.140.52) (Ping timeout: 256 seconds) |
2022-02-22 19:14:04 +0100 | dalek_caan | (~Thunderbi@109.252.124.86) () |
2022-02-22 19:14:33 +0100 | <turlando> | Right now as an example I can definitely think of another function: runUntil that takes an upper bound Instant |
2022-02-22 19:14:40 +0100 | zeenk | (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) (Quit: Konversation terminated!) |
2022-02-22 19:15:25 +0100 | <turlando> | (I'm not trying to justify my design choises, I'm trying to understand what is wrong and why) |
2022-02-22 19:17:59 +0100 | Akiva | (~Akiva@user/Akiva) |
2022-02-22 19:18:51 +0100 | <ski> | well .. i'm not sure there needs to be something wrong with your design. however, newbies to type classes (expecially if they have prior exposure to OO) tend to often misuse (and overuse) them |
2022-02-22 19:19:24 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-02-22 19:19:48 +0100 | <ski> | @where existential-antipattern |
2022-02-22 19:19:49 +0100 | <lambdabot> | "Haskell Antipattern: Existential Typeclass" by Luke Palmer at <http://lukepalmer.wordpress.com/2010/01/24/haskell-antipattern-existential-typeclass/> |
2022-02-22 19:20:07 +0100 | <ski> | is somewhat related (though a more advanced example of misuse/overuse) |
2022-02-22 19:20:18 +0100 | <ski> | (not that there's anything wrong with existentials, per se) |
2022-02-22 19:21:28 +0100 | analognoise | (~analognoi@185.202.221.26) |
2022-02-22 19:23:21 +0100 | <turlando> | Thank you a lot ski, I will read it now. Do you think that choosing typelcasses over records can have implications on how I can implement the missing feature I was talking about before, namely scheduling new events from within the simulation? |
2022-02-22 19:24:27 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 19:24:45 +0100 | <dolio> | Personally, I think that article is over-cited. But I haven't been paying close attention to what's being done in this case. |
2022-02-22 19:25:43 +0100 | cfricke | (~cfricke@user/cfricke) |
2022-02-22 19:26:56 +0100 | <ehammarstrom> | ski: Regarding the ((g . f) . _) = (g . _) . (f . _) earlier, a haskell program that reduces both of them to the same type (without executing it) isn't that a proof of some equality? Or would I have to explicitly have an "equality"-check in the type level? Here's the paste for reference: https://paste.tomsmeding.com/Fa1LgtV7 |
2022-02-22 19:27:21 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 19:27:57 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 19:30:41 +0100 | mikoto-chan | (~mikoto-ch@213.177.151.239) |
2022-02-22 19:31:02 +0100 | deadmarshal | (~deadmarsh@95.38.119.78) |
2022-02-22 19:32:04 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 19:32:22 +0100 | Guest85 | (~Guest85@134.101.5.46) |
2022-02-22 19:32:25 +0100 | Guest85 | (~Guest85@134.101.5.46) (Write error: Broken pipe) |
2022-02-22 19:33:23 +0100 | Midjak | (~Midjak@82.66.147.146) |
2022-02-22 19:34:04 +0100 | <ski> | turlando : the existential thing was mostly an aside. you're not doing anything existential, that i can see |
2022-02-22 19:34:45 +0100 | <ski> | turlando : it's still unclear to me what you want from this new event scheduling, how you want to structure it |
2022-02-22 19:35:15 +0100 | Guest68 | (~Guest68@134.101.5.46) |
2022-02-22 19:35:37 +0100 | deadmarshal | (~deadmarsh@95.38.119.78) (Ping timeout: 256 seconds) |
2022-02-22 19:36:15 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) (Ping timeout: 272 seconds) |
2022-02-22 19:37:00 +0100 | alp | (~alp@user/alp) |
2022-02-22 19:37:11 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-22 19:37:25 +0100 | <ski> | ehammarstrom : `False' and `True' have the same type, but are not equal. perhaps you could argue something from free theorems / parametricity, though. however, your `hb' is irrelevant (a misunderstanding) |
2022-02-22 19:39:10 +0100 | <turlando> | ski: honestly, I have no idea other than what I proposed before (changing the state transition function so that it gets an "environment" (state + future events) and produces an "environment", coupling it with functions to manipulate it to schedule events and updating the state) or changing the state transition function adding another parameter (the calendar) and making it return (newstate, newcalendar) |
2022-02-22 19:41:48 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-02-22 19:42:40 +0100 | vysn | (~vysn@user/vysn) |
2022-02-22 19:43:18 +0100 | <ski> | where do these "future events" come from ? |
2022-02-22 19:43:22 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-02-22 19:44:23 +0100 | <turlando> | ski: either from a user defined list or from a randomly generated one, in both cases they end up in the Calendar type |
2022-02-22 19:45:30 +0100 | <ski> | but they could also come from transitions on earlier events scheduling more events ? |
2022-02-22 19:46:11 +0100 | nek0 | (~nek0@nek0.eu) (Quit: The Lounge - https://thelounge.chat) |
2022-02-22 19:46:11 +0100 | deadmarshal | (~deadmarsh@95.38.119.78) |
2022-02-22 19:46:12 +0100 | <ski> | do you want the transition for an event to be able to see other (presumably only future ?) events ? change (e.g. remove) them ? |
2022-02-22 19:46:57 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:283e:efa7:e0c6:e848) |
2022-02-22 19:47:33 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-02-22 19:48:06 +0100 | jao | (~jao@68.235.43.174) (Remote host closed the connection) |
2022-02-22 19:48:45 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-02-22 19:49:00 +0100 | jao | (~jao@68.235.43.174) |
2022-02-22 19:49:02 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 19:49:17 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 240 seconds) |
2022-02-22 19:51:35 +0100 | <turlando> | ski: Sorry for not mentioning it in my previous message, I was just referring to the current state of the code. Yes, an event might be depending on another event, and specifically the happening of a certain event might cause the scheduling of another event in the future. E.g. a system detects a failing component and schedules the replacement of it in the future. Regarding your last question: I'm not sure if I want the transition to be able to see future |
2022-02-22 19:51:35 +0100 | <turlando> | events; it might be handy but I don't have an use case for it right now. Regarding removing events: initially I didn't want to permit it, but since I allow to add new events, it might make sense to allow the removal too |
2022-02-22 19:51:51 +0100 | norg[m] | (~norgmatri@2001:470:69fc:105::1:c809) |
2022-02-22 19:52:17 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 19:54:51 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-02-22 19:57:31 +0100 | <maerwald> | anyone ever used Database.PostgreSQL.Simple.Notification successfully? |
2022-02-22 19:57:47 +0100 | <ski> | it seems to me it's probably be easier to reason about the event scheduling, if they can't see (or even change/retract) other scheduled events |
2022-02-22 19:58:02 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:436f:e6b2:c8c4:a5a1) (Ping timeout: 240 seconds) |
2022-02-22 19:58:24 +0100 | <ski> | (just because you can add doesn't mean it would have to make sense to remove, imho) |
2022-02-22 19:58:36 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-02-22 19:58:48 +0100 | ski | was reminded of simulators for VHDL |
2022-02-22 19:59:25 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Ping timeout: 256 seconds) |
2022-02-22 19:59:27 +0100 | <turlando> | ski: I just noticed another problem: if the scheduling of a dependent event is randomic, as in I might need to sample from a random distribution, the transition function might depend on the Random monad (?), and my signature no longer works |
2022-02-22 20:00:04 +0100 | jespada | (~jespada@85.255.234.190) (Read error: Connection reset by peer) |
2022-02-22 20:00:34 +0100 | dextaa_ | (~dextaa@user/dextaa) |
2022-02-22 20:01:31 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:fb55:f4b:9349:d06d) |
2022-02-22 20:01:35 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 272 seconds) |
2022-02-22 20:06:47 +0100 | doyougnu | (~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 256 seconds) |
2022-02-22 20:06:50 +0100 | <ski> | (i guess i was thinking, "an event might be depending on another event", depending in the sense of another event scheduling it, or in the sense of the transition of the first event depending on whether it can see the other event being scheduled) |
2022-02-22 20:07:27 +0100 | <ski> | .. so, i'm still not sure what you intend by "dependent event" |
2022-02-22 20:07:41 +0100 | polyphem | (~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17) |
2022-02-22 20:08:28 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-22 20:09:03 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 20:09:29 +0100 | nek0 | (~nek0@nek0.eu) |
2022-02-22 20:11:10 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-22 20:15:05 +0100 | Ranhir | (~Ranhir@157.97.53.139) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) |
2022-02-22 20:16:04 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 20:16:09 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2022-02-22 20:17:30 +0100 | vicfred | (~vicfred@user/vicfred) |
2022-02-22 20:18:34 +0100 | Codaraxis | (~Codaraxis@user/codaraxis) |
2022-02-22 20:20:39 +0100 | pokhu | (~rishi@103.206.114.112) () |
2022-02-22 20:21:48 +0100 | deadmarshal | (~deadmarsh@95.38.119.78) (Ping timeout: 240 seconds) |
2022-02-22 20:24:38 +0100 | bahamas | (~lucian@84.232.140.52) |
2022-02-22 20:27:44 +0100 | <turlando> | As you said ski: "depending in the sense of another event scheduling it" |
2022-02-22 20:28:00 +0100 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) |
2022-02-22 20:29:02 +0100 | coot | (~coot@213.134.190.95) |
2022-02-22 20:29:27 +0100 | bahamas | (~lucian@84.232.140.52) (Ping timeout: 272 seconds) |
2022-02-22 20:29:48 +0100 | <Zemyla> | turlando: Can you use the IO monad and a RandomGen IOVar? |
2022-02-22 20:31:22 +0100 | <turlando> | Zemyla why an IOVar? |
2022-02-22 20:34:27 +0100 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection) |
2022-02-22 20:34:32 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 20:34:42 +0100 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
2022-02-22 20:35:26 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-22 20:35:26 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-22 20:35:26 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-22 20:40:18 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2022-02-22 20:41:11 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 20:42:51 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 245 seconds) |
2022-02-22 20:45:14 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2022-02-22 20:46:27 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
2022-02-22 20:46:31 +0100 | Lord_of_Life_ | Lord_of_Life |
2022-02-22 20:47:42 +0100 | fendor_ | (~fendor@178.165.167.221.wireless.dyn.drei.com) (Remote host closed the connection) |
2022-02-22 20:50:14 +0100 | jm_jj | (~jmjj@mobile-user-c3a5cc-243.dhcp.inet.fi) (Quit: Leaving) |
2022-02-22 20:53:56 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) |
2022-02-22 20:56:05 +0100 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 256 seconds) |
2022-02-22 20:56:37 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) |
2022-02-22 20:57:59 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 21:01:01 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 21:03:24 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-02-22 21:04:07 +0100 | <ProfSimm> | Isn't it a flaw to allow a Map to be converted toList, when it's not a list |
2022-02-22 21:04:24 +0100 | <ProfSimm> | Makes all types kinda blurry in terms of semantics |
2022-02-22 21:04:27 +0100 | <dolio> | Why? |
2022-02-22 21:04:30 +0100 | bahamas | (~lucian@84.232.140.52) |
2022-02-22 21:04:42 +0100 | <ProfSimm> | dolio: well what's the order of items in a map |
2022-02-22 21:05:06 +0100 | <dolio> | For Data.Map, it's the ordering on the keys. |
2022-02-22 21:05:26 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-02-22 21:05:33 +0100 | juhp | (~juhp@128.106.188.82) (Ping timeout: 272 seconds) |
2022-02-22 21:05:51 +0100 | <ProfSimm> | dolio: what is that ordering |
2022-02-22 21:05:55 +0100 | <monochrom> | Is it also a flaw to convert Maybe to list? |
2022-02-22 21:06:15 +0100 | <ProfSimm> | monochrom: well it is a list |
2022-02-22 21:06:18 +0100 | <dolio> | It's what's defined in the Ord type class that most Data.Map functions depend on. |
2022-02-22 21:07:13 +0100 | juhp | (~juhp@128.106.188.82) |
2022-02-22 21:07:35 +0100 | <byorgey> | ProfSimm: Data.Map is an ordered map, just like e.g. TreeMap in Java, if you're familiar with that |
2022-02-22 21:07:42 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-02-22 21:08:05 +0100 | <ProfSimm> | So what is an unordered map |
2022-02-22 21:08:28 +0100 | <ProfSimm> | I mean OMap is ordered, I thought. |
2022-02-22 21:08:31 +0100 | <ProfSimm> | Data.Map.Ordered |
2022-02-22 21:08:35 +0100 | <byorgey> | I would have some sympathy for the argument that you should not be able to convert e.g. a HashMap to a list, though in practice I think it is fine as long as the documentation says "you cannot rely on the order of the elements in the resulting list" |
2022-02-22 21:09:03 +0100 | <ProfSimm> | byorgey: "you should not rely on [feature that exists]" famous last words :P |
2022-02-22 21:09:11 +0100 | <byorgey> | ProfSimm: I know =) |
2022-02-22 21:09:21 +0100 | bahamas | (~lucian@84.232.140.52) (Ping timeout: 272 seconds) |
2022-02-22 21:09:23 +0100 | <byorgey> | I hadn't heard of Data.Map.Ordered before, but it looks like it's keeping track of the order *in which things were inserted* |
2022-02-22 21:09:35 +0100 | <ProfSimm> | byorgey: yes, well it's some order I guess |
2022-02-22 21:09:40 +0100 | <monochrom> | I haven't seen anyone relying on HashMap's toList order. |
2022-02-22 21:09:50 +0100 | <ProfSimm> | monochrom: it's not always intentional |
2022-02-22 21:10:24 +0100 | <ProfSimm> | monochrom: imagine you map the keys to something that creates duplicates and you overwrite on name collision. So now you accidentally depend on the order of toList |
2022-02-22 21:10:25 +0100 | <monochrom> | No, I haven't seen anyone doing that accidentally either. |
2022-02-22 21:10:37 +0100 | <ProfSimm> | Well I just provided an example |
2022-02-22 21:11:07 +0100 | <ProfSimm> | monochrom: in JS, object iteration had no specific order. |
2022-02-22 21:11:21 +0100 | <ProfSimm> | monochrom: no one therefore relied on it and all was fine. |
2022-02-22 21:11:40 +0100 | <ProfSimm> | monochrom: Just kidding, it caused bunch of hard to debug issues in bunch of software, so the spec was updated to maintain specific order |
2022-02-22 21:12:09 +0100 | <monochrom> | I'm talking about the Haskell community, not the JS community. |
2022-02-22 21:12:39 +0100 | yauhsien_ | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) |
2022-02-22 21:12:56 +0100 | <dolio> | What does the example even mean? |
2022-02-22 21:12:58 +0100 | <ProfSimm> | Sure, but let's not pretend Haskellers are some kind of infallible beings who at every step of their program think "wait, this came from a map like 10 000 lines ago, so I must ensure this code is order invariant" |
2022-02-22 21:13:10 +0100 | <maerwald> | people rely on bugs. All the time |
2022-02-22 21:13:21 +0100 | <ProfSimm> | Also. |
2022-02-22 21:13:37 +0100 | <maerwald> | Software doesn't easily allow to distinguish bugs and features |
2022-02-22 21:13:40 +0100 | <ProfSimm> | monochrom: if there was no specific order in toList, it'd mean it's not deterministic |
2022-02-22 21:13:51 +0100 | <ProfSimm> | maerwald: absolutely |
2022-02-22 21:14:03 +0100 | <polyphem> | is Maps toList a natural transformation as a mapping between Functors Map k v -> [(k,v)] ? It also not only transforms the Functor (Map v) to [] but also the contents v to (k,v) ? |
2022-02-22 21:14:19 +0100 | <maerwald> | and in Haskell we have this odd notion of API that relates mainly to *types* and not *behavior* (or even *laws*) |
2022-02-22 21:14:52 +0100 | <maerwald> | so your bugfix is PVP compliant, but you still cause a backend on the other end of the world to crash |
2022-02-22 21:16:30 +0100 | x88x88x | (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) |
2022-02-22 21:17:07 +0100 | <geekosaur> | https://xkcd.com/1172/ |
2022-02-22 21:18:14 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 21:19:06 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 250 seconds) |
2022-02-22 21:19:08 +0100 | <byorgey> | polyphem: Data.Map.toList is a natural transformation from Map k -> ([] . (k,)), yes (I know '.' is not actually legal syntax for composition of type constructors) |
2022-02-22 21:19:20 +0100 | <byorgey> | polyphem: I don't know what your second question means though |
2022-02-22 21:19:32 +0100 | kenran | (~kenran@200116b82b49e8006646f20137f4ed5b.dip.versatel-1u1.de) |
2022-02-22 21:20:51 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-02-22 21:21:41 +0100 | <monochrom> | I think the second question is answered by "Map k -> ([] . (k,))" too. |
2022-02-22 21:21:42 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 21:22:37 +0100 | <polyphem> | byorgey: ok , nvm , i was wondering if its still a natural composition if it also modifies the type inside the functor , but you restated it as : Compose [] (k,) |
2022-02-22 21:23:10 +0100 | <polyphem> | s/natural composition/natural transformation/ |
2022-02-22 21:25:52 +0100 | <monochrom> | BTW I had been procrastinating learning horizontal composition of two natural transformations until a few days ago. I had not felt like I needed to know. |
2022-02-22 21:26:42 +0100 | <monochrom> | Then a few days ago I was learning monad morphisms. Naturally, a natural transformation that furthermore "preserves return" and "preserves join". |
2022-02-22 21:27:14 +0100 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-02-22 21:27:35 +0100 | <monochrom> | I finally realized that just to state "preserves join" I need the horizontal composition of join and join. :) |
2022-02-22 21:27:45 +0100 | <byorgey> | =D |
2022-02-22 21:29:19 +0100 | <polyphem> | monochrom: the tongue keeps playing where the tooth hurts :) |
2022-02-22 21:29:43 +0100 | <ski> | @type \fk fv -> M.mapKeysMonotonic fk . M.map fv |
2022-02-22 21:29:44 +0100 | <lambdabot> | (k1 -> k2) -> (a1 -> a2) -> M.Map k1 a1 -> M.Map k2 a2 |
2022-02-22 21:29:48 +0100 | yauhsien_ | (~yauhsien@61-231-19-150.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2022-02-22 21:29:48 +0100 | <ski> | @type \fk fv -> M.mapKeysWith (<>) fk . M.map fv |
2022-02-22 21:29:50 +0100 | <lambdabot> | (Ord k2, Semigroup a1) => (k1 -> k2) -> (a2 -> a1) -> M.Map k1 a2 -> M.Map k2 a1 |
2022-02-22 21:29:53 +0100 | <ski> | @type \ks fk fv m -> M.fromList [(k,fv v) | k <- ks,Just v <- [m M.!? (fk k)]] |
2022-02-22 21:29:54 +0100 | <lambdabot> | (Ord k1, Ord k2) => [k1] -> (k1 -> k2) -> (t -> a) -> M.Map k2 t -> M.Map k1 a |
2022-02-22 21:30:02 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) (Ping timeout: 240 seconds) |
2022-02-22 21:30:17 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) |
2022-02-22 21:30:41 +0100 | <polyphem> | ski: barely not flooding :) |
2022-02-22 21:30:47 +0100 | Pickchea | (~private@user/pickchea) |
2022-02-22 21:31:01 +0100 | ski | glances around nervously |
2022-02-22 21:31:50 +0100 | ski | still can never recall which is the horizontal and which is the vertical one |
2022-02-22 21:32:13 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) |
2022-02-22 21:33:32 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-02-22 21:34:11 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) |
2022-02-22 21:35:19 +0100 | <monochrom> | Heh a lot of "left, right", "horizontal, vertical" namings in category theory were very accidental and arbitrary. |
2022-02-22 21:35:54 +0100 | <monochrom> | Comparing to particle physics. The "top" quark is much heavier than the "bottom" quark. Ah, no wonder why they are so unstable. >:) |
2022-02-22 21:36:03 +0100 | <monochrom> | s/Comparing/Comparable/ |
2022-02-22 21:36:49 +0100 | <ski> | ok, "vertical composition" is "composition", and "horizontal composition" is "lifted composition" (i'm sure i'll quickly forget this again) |
2022-02-22 21:36:49 +0100 | kuribas | (~user@ptr-25vy0iagvdrvz4nz7gs.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
2022-02-22 21:37:04 +0100 | <ski> | (yea, i don't like the "left adjoint","right adjoint" naming, either) |
2022-02-22 21:37:55 +0100 | <byorgey> | I just remember the picture with two parallel morphisms going from left to right, and a natural transformation as an arrow going from the top morphism to the bottom. Then vertical and horizontal composition correspond to putting those cells next to each other vertically or horizontally. |
2022-02-22 21:38:05 +0100 | <byorgey> | Of course that's yet another thing to remember, but somehow I find it easier |
2022-02-22 21:38:22 +0100 | <monochrom> | Left adjoint is at least mnemonicable by "Hom(F x, y)" ooohhh F is on the left. |
2022-02-22 21:38:29 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 21:38:37 +0100 | <monochrom> | Now, left and right Kan extensions, I still haven't figured out how. |
2022-02-22 21:38:58 +0100 | <ski> | except if you get into the habit of writing `A <---< F B' |
2022-02-22 21:39:11 +0100 | <monochrom> | Yikes haha. |
2022-02-22 21:39:17 +0100 | <ski> | (i do that, fairly often) |
2022-02-22 21:39:27 +0100 | gdd | (~gdd@129.199.146.230) (Quit: WeeChat 3.3) |
2022-02-22 21:39:42 +0100 | <monochrom> | How would you like "source adjoint" and "target adjoint"? |
2022-02-22 21:39:58 +0100 | <ski> | might work |
2022-02-22 21:40:21 +0100 | <ski> | (i'm already using "pre-inverse" and "post-inverse", rather that "left-inverse" and "right-inverse") |
2022-02-22 21:40:24 +0100 | <polyphem> | ski: isn't your third function Profunctor dimap |
2022-02-22 21:40:35 +0100 | <ski> | polyphem : something like that |
2022-02-22 21:40:50 +0100 | spacenautx | (~spacenaut@user/spacenautx) |
2022-02-22 21:41:10 +0100 | <ski> | polyphem : my lambdabot queries were basically questions "do you want co- or contra- variance in the keys ? are the key types ordered ? are the value types semigroups ?" |
2022-02-22 21:41:17 +0100 | Null_A | (~null_a@2601:645:8700:2290:a4fb:481a:7fa9:b909) (Ping timeout: 240 seconds) |
2022-02-22 21:41:26 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 21:42:11 +0100 | Batzy | (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-02-22 21:42:35 +0100 | Batzy | (~quassel@user/batzy) |
2022-02-22 21:42:36 +0100 | ccntrq | (~Thunderbi@2a01:e34:eccb:b060:8793:de70:3992:9c12) (Ping timeout: 240 seconds) |
2022-02-22 21:42:58 +0100 | <ski> | ("are the key types ordered ?" implicitly suggests "are the key mappings order morphisms ?") |
2022-02-22 21:43:01 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) |
2022-02-22 21:47:03 +0100 | <ProfSimm> | Can I make a map which is NOT iterable by design |
2022-02-22 21:47:40 +0100 | gdd | (~gdd@129.199.146.230) |
2022-02-22 21:47:51 +0100 | <monochrom> | Sure. |
2022-02-22 21:48:00 +0100 | <ski> | monochrom : right Kan extension is `G . F >---> H' iff `G >---> H <- F' (or `H / F'). left Kan extension is `H >---> G . F' iff `H /| F >---> G'. so, they're right and left adjoints of `(. F)' (precomposition) |
2022-02-22 21:49:23 +0100 | <monochrom> | Ah, yeah, I need to spend more time on that connection. |
2022-02-22 21:49:40 +0100 | <ski> | (or with more traditional notation, `Ran_F H' resp. `Lan_F H') |
2022-02-22 21:49:41 +0100 | pavonia | (~user@user/siracusa) |
2022-02-22 21:53:03 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 272 seconds) |
2022-02-22 21:55:00 +0100 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 252 seconds) |
2022-02-22 21:57:20 +0100 | <ski> | given `phi :: forall a. G (F a) -> H a', we (via CoYoneda) get `stage phi :: forall b. G b -> Ran F H b', where `Ran F H b' is `forall a. (b -> F a) -> H a' |
2022-02-22 21:58:07 +0100 | <ski> | similarly, given `psi :: forall a. H a -> G (F a)', we (via Yoneda) get `costage psi :: forall b. Lan F H b -> G b', where `Lan F H b' is `exists a. (H a,F a -> b)' |
2022-02-22 21:58:30 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 22:00:47 +0100 | Ariakenom_ | (~Ariakenom@h-82-196-111-63.NA.cust.bahnhof.se) (Quit: Leaving) |
2022-02-22 22:02:16 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 22:02:19 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.4) |
2022-02-22 22:02:46 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
2022-02-22 22:02:59 +0100 | alx741 | (~alx741@181.199.42.143) |
2022-02-22 22:04:07 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2022-02-22 22:04:50 +0100 | Flonk8 | (~Flonk@vps-zap441517-1.zap-srv.com) |
2022-02-22 22:06:20 +0100 | alx741 | (~alx741@181.199.42.143) (Read error: Connection reset by peer) |
2022-02-22 22:06:21 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 272 seconds) |
2022-02-22 22:06:21 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Ping timeout: 256 seconds) |
2022-02-22 22:06:57 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2022-02-22 22:07:14 +0100 | vorpuni | (~pvorp@2001:861:3881:c690:d322:f659:136d:eef6) |
2022-02-22 22:07:27 +0100 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2022-02-22 22:07:29 +0100 | Flonk8 | Flonk |
2022-02-22 22:10:51 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4) |
2022-02-22 22:12:53 +0100 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
2022-02-22 22:13:09 +0100 | <EvanR> | ProfSimm, I assume by design means implementation rather than interface. Since you can present whatever interface to your ADT |
2022-02-22 22:13:09 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-22 22:13:45 +0100 | <EvanR> | to construct something intentionally omitting a feature seems unusual though xD |
2022-02-22 22:19:24 +0100 | acidjnk | (~acidjnk@p200300d0c71f74276499fb418a282b02.dip0.t-ipconnect.de) |
2022-02-22 22:20:49 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 22:23:19 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 22:24:24 +0100 | natechan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2022-02-22 22:24:25 +0100 | v0rpun1 | (~pvorp@2001:861:3881:c690:f6b3:6910:f82d:9617) |
2022-02-22 22:25:24 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds) |
2022-02-22 22:26:06 +0100 | Slerba | (~Slerba@85-76-49-165-nat.elisa-mobile.fi) |
2022-02-22 22:26:08 +0100 | jgeerds | (~jgeerds@55d4b9df.access.ecotel.net) |
2022-02-22 22:26:12 +0100 | natechan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2022-02-22 22:26:25 +0100 | Slerba | (~Slerba@85-76-49-165-nat.elisa-mobile.fi) () |
2022-02-22 22:26:28 +0100 | Batzy | (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-02-22 22:26:30 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-22 22:26:30 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-22 22:26:30 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-22 22:27:35 +0100 | Batzy | (~quassel@user/batzy) |
2022-02-22 22:27:45 +0100 | lottaquestions_ | (~nick@2607:fa49:5041:a200:11a4:6cdd:1796:d5ed) (Quit: Konversation terminated!) |
2022-02-22 22:28:02 +0100 | lottaquestions_ | (~nick@2607:fa49:5041:a200:77ff:49ec:2b9c:10c4) |
2022-02-22 22:29:02 +0100 | ajb | (~ajb@cupid.whatbox.ca) |
2022-02-22 22:29:35 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-02-22 22:29:48 +0100 | alp | (~alp@user/alp) (Ping timeout: 240 seconds) |
2022-02-22 22:30:54 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 22:35:49 +0100 | benin | (~benin@59.92.239.104) (Quit: Ping timeout (120 seconds)) |
2022-02-22 22:35:50 +0100 | <freeman42x[m]> | any good solution for `data X = A { x :: Int } | B { x :: Int, y :: Char }` and running `y (A 3)` compiling but throwing at runtime? I was told to avoid using records at all and write manual lenses for them but that seems a bad compromise |
2022-02-22 22:36:09 +0100 | benin | (~benin@59.92.239.104) |
2022-02-22 22:40:08 +0100 | zeenk | (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) |
2022-02-22 22:40:57 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-02-22 22:46:47 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-22 22:46:47 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-22 22:46:47 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-22 22:46:52 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-02-22 22:47:59 +0100 | <dolio> | Can't the appropriate optics be generated? Lens for x, traversal for y. |
2022-02-22 22:48:48 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 22:49:48 +0100 | mikoto-chan | (~mikoto-ch@213.177.151.239) (Ping timeout: 240 seconds) |
2022-02-22 22:50:58 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
2022-02-22 22:53:20 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 22:55:07 +0100 | <ski> | newtype Map k v = MkMap (k -> Maybe v) -- not iterable |
2022-02-22 22:55:45 +0100 | <ski> | (cue covariant vs. contravariant powerset functor) |
2022-02-22 22:57:39 +0100 | Katarushisu | (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Ping timeout: 250 seconds) |
2022-02-22 22:58:12 +0100 | jstolarek | (~jstolarek@staticline-31-183-182-85.toya.net.pl) (Ping timeout: 256 seconds) |
2022-02-22 22:58:26 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-02-22 23:00:11 +0100 | jgeerds | (~jgeerds@55d4b9df.access.ecotel.net) (Remote host closed the connection) |
2022-02-22 23:00:49 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-22 23:04:10 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-02-22 23:04:51 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-02-22 23:05:51 +0100 | Megant | (megant@user/megant) (Ping timeout: 256 seconds) |
2022-02-22 23:07:17 +0100 | Megant | (megant@user/megant) |
2022-02-22 23:07:54 +0100 | <freeman42x[m]> | <dolio> "Can't the appropriate optics..." <- to generate them you need to keep the records, doesn't it? and keeping the records allows others to misuse them in the way mentioned |
2022-02-22 23:08:15 +0100 | jgeerds | (~jgeerds@55d4b9df.access.ecotel.net) |
2022-02-22 23:09:58 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 23:10:17 +0100 | kenran | (~kenran@200116b82b49e8006646f20137f4ed5b.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
2022-02-22 23:13:32 +0100 | <dolio> | Turn off the field accessors and use the optics. |
2022-02-22 23:13:55 +0100 | alp | (~alp@user/alp) |
2022-02-22 23:14:17 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 23:16:02 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) |
2022-02-22 23:18:58 +0100 | jespada | (~jespada@85.255.234.190) |
2022-02-22 23:19:34 +0100 | <freeman42x[m]> | <dolio> "Turn off the field accessors and..." <- how do you achieve that? |
2022-02-22 23:21:52 +0100 | <dolio> | NoFieldSelectors language setting, I think. |
2022-02-22 23:23:25 +0100 | cynomys | (~cynomys@user/cynomys) |
2022-02-22 23:26:08 +0100 | Guest|86 | (~Guest|86@136.228.217.112) |
2022-02-22 23:26:41 +0100 | Guest|86 | (~Guest|86@136.228.217.112) (Client Quit) |
2022-02-22 23:28:32 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-02-22 23:30:52 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-02-22 23:31:57 +0100 | Null_A | (~null_a@2601:645:8700:2290:44bc:7304:7645:6729) (Ping timeout: 240 seconds) |
2022-02-22 23:32:29 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 23:33:20 +0100 | komikat | (~komikat@183.82.154.239) (Remote host closed the connection) |
2022-02-22 23:34:01 +0100 | komikat | (~komikat@183.82.154.239) |
2022-02-22 23:35:01 +0100 | spacenautx | (~spacenaut@user/spacenautx) (Ping timeout: 272 seconds) |
2022-02-22 23:36:35 +0100 | spacenautx | (~spacenaut@user/spacenautx) |
2022-02-22 23:36:46 +0100 | Katarushisu | (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) |
2022-02-22 23:37:50 +0100 | v0rpun1 | (~pvorp@2001:861:3881:c690:f6b3:6910:f82d:9617) (Remote host closed the connection) |
2022-02-22 23:38:17 +0100 | <gentauro> | how can I refactor this? `((\foo -> concat <$> foo) . mergeValues . concat)`. The `foo` part … |
2022-02-22 23:38:23 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds) |
2022-02-22 23:38:46 +0100 | <dolio> | fmap concat . mergeValues . concat |
2022-02-22 23:38:56 +0100 | <ski> | dang, beat me to it :) |
2022-02-22 23:39:14 +0100 | <monochrom> | I was dense and thought of section syntax only. |
2022-02-22 23:39:43 +0100 | <ski> | gentauro> :t mergeValues |
2022-02-22 23:40:02 +0100 | <gentauro> | dolio: thx |
2022-02-22 23:40:18 +0100 | cynomys | (~cynomys@user/cynomys) (Quit: Lost terminal) |
2022-02-22 23:40:43 +0100 | alx741 | (~alx741@157.100.197.240) (Read error: Connection reset by peer) |
2022-02-22 23:41:07 +0100 | cynomys | (~cynomys@user/cynomys) |
2022-02-22 23:41:38 +0100 | alt-romes | (~romes@44.190.189.46.rev.vodafone.pt) |
2022-02-22 23:42:37 +0100 | komikat | (~komikat@183.82.154.239) (Ping timeout: 272 seconds) |
2022-02-22 23:42:38 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:106a:7188:c314:3535) (Remote host closed the connection) |
2022-02-22 23:42:41 +0100 | spacenautx | (~spacenaut@user/spacenautx) (Ping timeout: 256 seconds) |
2022-02-22 23:44:06 +0100 | romesrf | (~romes@44.190.189.46.rev.vodafone.pt) (Ping timeout: 256 seconds) |
2022-02-22 23:44:28 +0100 | spacenautx | (~spacenaut@user/spacenautx) |
2022-02-22 23:44:36 +0100 | dextaa_ | (~dextaa@user/dextaa) (Remote host closed the connection) |
2022-02-22 23:45:03 +0100 | spacenautx | (~spacenaut@user/spacenautx) (Max SendQ exceeded) |
2022-02-22 23:45:16 +0100 | <freeman42x[m]> | <dolio> "NoFieldSelectors language..." <- that extension seems to have been merged but in the proposal it says: "Enabling this extension will beak Template Haskell which assumes the presence of a field selector." won't that prevent generating lenses via TH? |
2022-02-22 23:45:43 +0100 | <dolio> | Dunno. |
2022-02-22 23:47:29 +0100 | <dolio> | In the past, when you generate lenses, the field names would be like `_field`. And then the fact that someone might be able to write something that throws an exception by using the weird field accessors isn't really worth worrying about. |
2022-02-22 23:47:42 +0100 | <dvdrw> | it sounds like it'll lift your code into undefined behaviour :) |
2022-02-22 23:47:45 +0100 | komikat | (~komikat@183.82.154.239) |
2022-02-22 23:48:00 +0100 | <gentauro> | ski: I will soon release the code as "open source" so you will have plenty of time to "review it" (which will be very much appreciated) |
2022-02-22 23:48:03 +0100 | <gentauro> | :) |
2022-02-22 23:48:10 +0100 | <geekosaur> | doesn't that extension go along with others that mroe or less replace generating accessors via TH? |
2022-02-22 23:48:19 +0100 | jespada | (~jespada@85.255.234.190) (Read error: Connection reset by peer) |
2022-02-22 23:48:20 +0100 | rtsn | (~nstr@user/rtsn) (Quit: Lost terminal) |
2022-02-22 23:49:10 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Read error: Connection reset by peer) |
2022-02-22 23:49:13 +0100 | <ski> | gentauro : just wondering if one or both of those `concat's could be elided |
2022-02-22 23:49:14 +0100 | bontaq` | (~user@ool-45779fe5.dyn.optonline.net) |
2022-02-22 23:50:54 +0100 | spacenautx | (~spacenaut@user/spacenautx) |
2022-02-22 23:53:18 +0100 | <gentauro> | ski: the complete line is: `fmap concat . mergeValues . concat <$> mapM (mapConcurrently aux) (chunksOf chk mids)`. I was guessing that I perhaps could use some `concatMap`? |
2022-02-22 23:58:08 +0100 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-02-22 23:58:36 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-02-22 23:59:07 +0100 | alx741 | (~alx741@157.100.197.240) |
2022-02-22 23:59:29 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-02-22 23:59:51 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |