2021-12-05 00:00:32 +0100 | <juri_> | grr. infinite type error. oh, fun. |
2021-12-05 00:02:21 +0100 | fabfianda | (~fabfianda@net-109-115-246-237.cust.vodafonedsl.it) (Read error: Connection reset by peer) |
2021-12-05 00:03:39 +0100 | fabfianda | (~fabfianda@net-109-115-246-237.cust.vodafonedsl.it) |
2021-12-05 00:04:16 +0100 | debdut | (~debdut@115.187.40.134) |
2021-12-05 00:04:52 +0100 | <juri_> | oh. remove the definitions, and it's all happy. |
2021-12-05 00:04:55 +0100 | <juri_> | crud. |
2021-12-05 00:06:16 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-05 00:07:24 +0100 | debdut | (~debdut@115.187.40.134) (Client Quit) |
2021-12-05 00:08:12 +0100 | debdut | (~debdut@115.187.40.134) |
2021-12-05 00:08:34 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Quit: Leaving) |
2021-12-05 00:11:05 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-12-05 00:12:32 +0100 | <EvanR> | an infinite error you say |
2021-12-05 00:12:36 +0100 | <EvanR> | > fix error |
2021-12-05 00:12:37 +0100 | <lambdabot> | "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Ex... |
2021-12-05 00:12:57 +0100 | debdut | (~debdut@115.187.40.134) (Client Quit) |
2021-12-05 00:14:05 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) |
2021-12-05 00:14:15 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2021-12-05 00:14:25 +0100 | pavonia | (~user@user/siracusa) |
2021-12-05 00:16:12 +0100 | debdut | (~debdut@115.187.40.134) |
2021-12-05 00:16:17 +0100 | rusty | (~rustyboy@2a02:2f0e:5610:ab00:b16b:f583:26df:4061) (Remote host closed the connection) |
2021-12-05 00:16:32 +0100 | <hololeap> | there's a potential semigroup on (Bool, a) where it stops at (True, a) and ignores any farther arguments. is there a name for this? |
2021-12-05 00:17:24 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) |
2021-12-05 00:18:27 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2021-12-05 00:18:39 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
2021-12-05 00:19:23 +0100 | xff0x | (~xff0x@2001:1a81:53e7:c700:da53:be98:ac38:235d) (Ping timeout: 252 seconds) |
2021-12-05 00:20:01 +0100 | xff0x | (~xff0x@2001:1a81:53e7:c700:4988:289c:a66b:6fe) |
2021-12-05 00:20:33 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-12-05 00:22:07 +0100 | <hololeap> | kind of a hybrid between First and Any |
2021-12-05 00:23:04 +0100 | <EvanR> | by just mapping to First you don't need to answer this xD |
2021-12-05 00:26:04 +0100 | <EvanR> | is there a way to "stick an a" on any semigroup like that and have it make sense... I guess not |
2021-12-05 00:26:36 +0100 | <EvanR> | there's Tagged but that's a phantom |
2021-12-05 00:28:03 +0100 | <hololeap> | that's true, I could foldMap (f :: a -> First a) |
2021-12-05 00:29:45 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 00:30:04 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 00:30:24 +0100 | <EvanR> | was thinking (Bool,a) -> First a |
2021-12-05 00:30:38 +0100 | <EvanR> | oh, tuple foldable |
2021-12-05 00:30:49 +0100 | <maerwald> | "lol" </> "/bar" -> "/bar" -- another bug on windows :p |
2021-12-05 00:31:37 +0100 | <EvanR> | no laughing on windows 👔 |
2021-12-05 00:32:06 +0100 | <maerwald> | "/bar" on windows is equivalent to "bar", so the result should be "lol\\bar" |
2021-12-05 00:32:43 +0100 | zebrag | (~chris@user/zebrag) (Remote host closed the connection) |
2021-12-05 00:36:19 +0100 | zebrag | (~chris@user/zebrag) |
2021-12-05 00:36:48 +0100 | debdut | (~debdut@115.187.40.134) (Quit: debdut) |
2021-12-05 00:38:28 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 00:38:46 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 00:39:08 +0100 | <juri_> | windows. nevermore. |
2021-12-05 00:40:20 +0100 | <sm> | listening to a recent SPJ podcast interview, I was reminded that in a sense, it's Windows users that have paid for Haskell |
2021-12-05 00:41:42 +0100 | <juri_> | good. getting something good from evil does not mean you owe fealty to evil. you should congratulate those who held the line against evil, and move on. |
2021-12-05 00:41:45 +0100 | <maerwald> | they never paid me any money |
2021-12-05 00:42:12 +0100 | <sm> | microsoft paid SPJ (at least) to do whatever he wanted (GHC maintenance) for years |
2021-12-05 00:42:20 +0100 | <EvanR> | surprised to see accursedUnutterablePerformIO in latest bytestring code xD |
2021-12-05 00:42:29 +0100 | ss4 | (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
2021-12-05 00:42:31 +0100 | <EvanR> | thought that was censored a while back |
2021-12-05 00:42:38 +0100 | johnw | (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) (Quit: ZNC - http://znc.in) |
2021-12-05 00:42:45 +0100 | <sm> | microsoft's money came from Windows users. Therefore, we should kind of thank windows users once in a while |
2021-12-05 00:43:06 +0100 | <EvanR> | anyway, is there a sane way to fold over 2 bytes at a time |
2021-12-05 00:43:46 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (Quit: ZNC - https://znc.in) |
2021-12-05 00:45:37 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 00:45:54 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 00:46:38 +0100 | <juri_> | sm: windows users don't donate to microsoft. they pay, or they can't use their computers. thanking someone for being a victim is not healthy. |
2021-12-05 00:47:32 +0100 | cowgirl | (~coderobe@archlinux/trusteduser/coderobe) |
2021-12-05 00:47:36 +0100 | cowgirl | (~coderobe@archlinux/trusteduser/coderobe) (Killed (K-Lined)) |
2021-12-05 00:48:32 +0100 | <EvanR> | I'm a windows user and I didn't pay |
2021-12-05 00:48:46 +0100 | <EvanR> | only occasionally I can't read whatever is behind the watermark |
2021-12-05 00:49:13 +0100 | <EvanR> | ghcup on windows works great thanks for that |
2021-12-05 00:49:36 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) |
2021-12-05 00:49:41 +0100 | alx741 | (~alx741@186.178.108.253) (Ping timeout: 256 seconds) |
2021-12-05 00:49:45 +0100 | axeman | (~quassel@2a02:8109:a3c0:b10:7b24:ebdc:13ed:79b5) |
2021-12-05 00:50:02 +0100 | <maerwald[m]> | EvanR: I accept bitcoin |
2021-12-05 00:50:51 +0100 | <maerwald[m]> | ADA is too low right now :p |
2021-12-05 00:52:40 +0100 | <geekosaur> | microsoft's money didn't come from windows users. it came from *office* users |
2021-12-05 00:53:08 +0100 | vicfred | (~vicfred@user/vicfred) (Quit: Leaving) |
2021-12-05 00:54:53 +0100 | namkeleser | (~namkelese@101.175.128.51) |
2021-12-05 00:54:59 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-05 00:56:39 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 00:56:56 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 00:57:05 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Read error: No route to host) |
2021-12-05 00:57:35 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2021-12-05 01:00:17 +0100 | pfurla | (~pfurla@201.17.118.230) (Quit: gone to sleep. ZZZzzz…) |
2021-12-05 01:01:11 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-12-05 01:03:11 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 01:03:30 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 01:05:20 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2021-12-05 01:07:09 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 01:07:28 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 01:07:38 +0100 | maroloccio | (~marolocci@151.53.155.184) |
2021-12-05 01:09:18 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 01:09:36 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 01:09:45 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:9dad:b7eb:58e3:98e6) |
2021-12-05 01:11:25 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 01:11:42 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 01:11:43 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 01:12:01 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 01:14:56 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 245 seconds) |
2021-12-05 01:16:15 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) (Ping timeout: 256 seconds) |
2021-12-05 01:16:15 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds) |
2021-12-05 01:22:49 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds) |
2021-12-05 01:23:38 +0100 | alx741 | (~alx741@186.178.108.253) |
2021-12-05 01:26:29 +0100 | xff0x | (~xff0x@2001:1a81:53e7:c700:4988:289c:a66b:6fe) (Ping timeout: 252 seconds) |
2021-12-05 01:26:47 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:9dad:b7eb:58e3:98e6) (Quit: gone to sleep. ZZZzzz…) |
2021-12-05 01:27:14 +0100 | xff0x | (~xff0x@2001:1a81:53e7:c700:1510:f8b4:a5f5:28f) |
2021-12-05 01:29:14 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-12-05 01:29:14 +0100 | pfurla | (~pfurla@201.17.118.230) |
2021-12-05 01:34:15 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e5135c37e9089e8a354.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2021-12-05 01:35:23 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2021-12-05 01:36:10 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-12-05 01:36:41 +0100 | chenqisu1 | (~chenqisu1@183.217.200.156) |
2021-12-05 01:40:36 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-05 01:45:43 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 256 seconds) |
2021-12-05 01:47:07 +0100 | <arahael> | ^^ that. |
2021-12-05 01:48:03 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::9788) |
2021-12-05 01:59:06 +0100 | <yin> | why is GeneralizedNewtypeDeriving not allowed in Safe Haskell? |
2021-12-05 02:01:46 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-05 02:03:45 +0100 | <geekosaur> | https://stackoverflow.com/questions/17137111/why-isnt-generalizednewtypederiving-a-safe-haskell |
2021-12-05 02:04:15 +0100 | <geekosaur> | includes not only an explanation but also a link to a ghc ticket with examples of why it's unsafe |
2021-12-05 02:08:14 +0100 | retro_ | (~retro@97e2ba2e.skybroadband.com) |
2021-12-05 02:09:58 +0100 | <geekosaur> | from what I just read, the original concerns were mostly addressed with the roles system but it also brought in new questions |
2021-12-05 02:10:59 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-12-05 02:11:00 +0100 | <int-e> | Well with GND using `coerce` nowadays it /should/ be safe. |
2021-12-05 02:11:31 +0100 | <geekosaur> | https://mail.haskell.org/pipermail/haskell-cafe/2015-April/118970.html ff |
2021-12-05 02:11:52 +0100 | retroid_ | (~retro@97e2ba2e.skybroadband.com) (Ping timeout: 268 seconds) |
2021-12-05 02:11:55 +0100 | <geekosaur> | apparently there's still some thorny questions |
2021-12-05 02:12:29 +0100 | hololeap | (~hololeap@user/hololeap) (Excess Flood) |
2021-12-05 02:12:35 +0100 | retroid_ | (~retro@97e2ba2e.skybroadband.com) |
2021-12-05 02:13:06 +0100 | retro_ | (~retro@97e2ba2e.skybroadband.com) (Ping timeout: 268 seconds) |
2021-12-05 02:13:27 +0100 | <int-e> | and the exactl meaning of "safe" |
2021-12-05 02:13:38 +0100 | <int-e> | is still unclear |
2021-12-05 02:14:01 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-12-05 02:14:40 +0100 | <int-e> | But thanks, I guess "coerce breaks abstraction via newtype" is also the reason why Data.Coerce is marked unsafe. |
2021-12-05 02:16:49 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (Quit: ZNC - https://znc.in) |
2021-12-05 02:16:54 +0100 | maroloccio | (~marolocci@151.53.155.184) (Quit: WeeChat 3.0) |
2021-12-05 02:17:06 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-12-05 02:17:27 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-12-05 02:19:36 +0100 | maroloccio | (~marolocci@151.53.155.184) |
2021-12-05 02:19:46 +0100 | maroloccio | (~marolocci@151.53.155.184) (Client Quit) |
2021-12-05 02:20:08 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-12-05 02:20:15 +0100 | maroloccio | (~marolocci@151.53.155.184) |
2021-12-05 02:22:50 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) |
2021-12-05 02:29:56 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (Quit: ZNC - https://znc.in) |
2021-12-05 02:33:16 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) |
2021-12-05 02:44:10 +0100 | <yin> | geekosaur: thanks |
2021-12-05 02:46:42 +0100 | <yin> | i wish i could have Safe and add an exception. like {-# UnsafeException trace #-} |
2021-12-05 02:46:47 +0100 | axeman | (~quassel@2a02:8109:a3c0:b10:7b24:ebdc:13ed:79b5) (Ping timeout: 252 seconds) |
2021-12-05 02:46:50 +0100 | abrantesasf | (~abrantesa@187.36.170.211) |
2021-12-05 02:47:53 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-12-05 02:48:37 +0100 | <geekosaur> | reexport trace from a module marked Trusted? |
2021-12-05 02:51:42 +0100 | <geekosaur> | …hm, how does that even work with modern stack/cabal? trust is marked in the package database, which is synthetic |
2021-12-05 02:52:10 +0100 | <yin> | i'm getting "incompatible Safe Haskell flags! (Safe, Trustworthy) |
2021-12-05 02:52:21 +0100 | <yin> | i'm doing something wrong i think |
2021-12-05 02:52:30 +0100 | <geekosaur> | right, that module cannot be marked Safe |
2021-12-05 02:52:48 +0100 | <geekosaur> | if it were then it wouldn't be allowed to import trace |
2021-12-05 02:53:13 +0100 | <yin> | hmm |
2021-12-05 02:53:24 +0100 | jmorris | (uid433911@id-433911.hampstead.irccloud.com) |
2021-12-05 02:53:34 +0100 | <geekosaur> | alternatively I suppose you could mark Debug.Trace itself as Trustworthy |
2021-12-05 02:53:46 +0100 | <geekosaur> | but that might be going farther than you want |
2021-12-05 02:54:10 +0100 | <yin> | if i add Safe to default-extensions in my .cabal file, does that mean that all submodules are marked as safe? |
2021-12-05 02:55:39 +0100 | <yin> | is it a stupid thing to add Safe in default-extensions even? |
2021-12-05 02:55:42 +0100 | <geekosaur> | yes, if I understand "submodule" correctly. (hierarchical modules aren't, really, they're just an organizational aid for people) |
2021-12-05 02:55:57 +0100 | <geekosaur> | I think most people would avoid that, yes |
2021-12-05 02:56:11 +0100 | <yin> | ok that makes sense |
2021-12-05 02:56:17 +0100 | <geekosaur> | in part because of what int-e said earlier: "safe" is not well defined at present |
2021-12-05 02:57:26 +0100 | <geekosaur> | as best I can tell, it is intended to mean "cannot be used to define unsafeCoerce" — but that's already true of Debug.Trace, so it should be at least Trustworthy |
2021-12-05 02:57:59 +0100 | <geekosaur> | which is why "Safe Haskell" is confusing and largely avoided; it's inconsistent |
2021-12-05 03:01:19 +0100 | <yin> | i think i remember a nice enough system from rust (?) where you marked individual functions as "trust me, i'm being responsible with {unsafe method}" |
2021-12-05 03:04:59 +0100 | <EvanR> | a nice sentiment |
2021-12-05 03:06:59 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-05 03:06:59 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-05 03:06:59 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-05 03:07:18 +0100 | <yin> | :P |
2021-12-05 03:10:59 +0100 | retro_ | (~retro@97e2ba2e.skybroadband.com) |
2021-12-05 03:13:23 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep) |
2021-12-05 03:14:46 +0100 | retroid_ | (~retro@97e2ba2e.skybroadband.com) (Ping timeout: 268 seconds) |
2021-12-05 03:15:16 +0100 | <geekosaur> | well, actually there are other problems. like iirc the reason for Debug.Trace not being Trustworthy is it's left to the developer to decide what is Trustworthy or not |
2021-12-05 03:15:29 +0100 | retroid_ | (~retro@97e2ba2e.skybroadband.com) |
2021-12-05 03:15:35 +0100 | <geekosaur> | but then with base any module you mark Trustworthy becomes Trustworthy everywhere |
2021-12-05 03:15:48 +0100 | <geekosaur> | when you might want it for only one stack/cabal project |
2021-12-05 03:16:00 +0100 | retro_ | (~retro@97e2ba2e.skybroadband.com) (Ping timeout: 268 seconds) |
2021-12-05 03:16:07 +0100 | <geekosaur> | which is a downside of storing Trustworthy in the package db |
2021-12-05 03:17:03 +0100 | <geekosaur> | also, hm. the other Debug.Trace functions don't expose IO in any way so they are fine, but I haven't vetted traceIO |
2021-12-05 03:17:37 +0100 | <geekosaur> | it may be fine if the only use of IO is sequencing, but it may not |
2021-12-05 03:17:51 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b) |
2021-12-05 03:19:00 +0100 | hololeap | (~hololeap@user/hololeap) (Read error: Connection reset by peer) |
2021-12-05 03:19:05 +0100 | xff0x | (~xff0x@2001:1a81:53e7:c700:1510:f8b4:a5f5:28f) (Ping timeout: 268 seconds) |
2021-12-05 03:19:28 +0100 | xff0x | (~xff0x@2001:1a81:53e7:c700:5d29:4d4d:a0f8:12e7) |
2021-12-05 03:19:44 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-12-05 03:19:55 +0100 | <geekosaur> | also: if the package db for a stack/cabal project is created once for the project and retained, such that you could mark modules Trustworthy and have it stick, you now have additional metadata that's not part of the project definition (cabal files, stack.yaml/cabal.project, etc.) |
2021-12-05 03:20:45 +0100 | <geekosaur> | so if you duplicate that project or transport it somewhere else or nuke and regenerate the package db, you have to remember to mark modules as Trustworthy again |
2021-12-05 03:22:47 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b) (Ping timeout: 268 seconds) |
2021-12-05 03:24:04 +0100 | <geekosaur> | I'd be interested in hearing from sm or sclv about that one |
2021-12-05 03:25:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-05 03:25:39 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds) |
2021-12-05 03:26:32 +0100 | <sm> | no real insight from me I'm afraid, except maximising the immutable and reproducible parts is always good |
2021-12-05 03:29:18 +0100 | zincy_ | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
2021-12-05 03:29:38 +0100 | tom_ | (~tom@2a00:23c8:970c:4801:8164:4807:4ccb:62f3) |
2021-12-05 03:29:41 +0100 | xff0x | (~xff0x@2001:1a81:53e7:c700:5d29:4d4d:a0f8:12e7) (Ping timeout: 252 seconds) |
2021-12-05 03:30:09 +0100 | zincy_ | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Read error: Connection reset by peer) |
2021-12-05 03:30:26 +0100 | sm | feels reproducible builds is higher priority than marking things safe |
2021-12-05 03:31:35 +0100 | zincy | (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (Ping timeout: 250 seconds) |
2021-12-05 03:31:38 +0100 | <geekosaur> | yin ^ this is more or less what you're fighting |
2021-12-05 03:31:40 +0100 | xff0x | (~xff0x@2001:1a81:5227:8600:681d:a189:70c5:145e) |
2021-12-05 03:31:41 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2021-12-05 03:31:41 +0100 | abrantesasf | (~abrantesa@187.36.170.211) (Remote host closed the connection) |
2021-12-05 03:31:42 +0100 | zincy | (~tom@2a00:23c8:970c:4801:8164:4807:4ccb:62f3) |
2021-12-05 03:32:02 +0100 | tom__ | (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (Ping timeout: 268 seconds) |
2021-12-05 03:33:56 +0100 | <yin> | i get it |
2021-12-05 03:37:18 +0100 | <zwro[m]> | what's an easy way to build a n-bit type where i can use Data.Bits where n is arbitrary? |
2021-12-05 03:37:21 +0100 | alx741 | (~alx741@186.178.108.253) (Ping timeout: 256 seconds) |
2021-12-05 03:39:21 +0100 | <zwro[m]> | where i can do `complement 0b0011001` for instance and get 0b1100110 |
2021-12-05 03:40:03 +0100 | <zwro[m]> | (this would be a Word7) |
2021-12-05 03:40:51 +0100 | <yin> | list of Bool with a Bits instance? |
2021-12-05 03:40:52 +0100 | <awpr> | newtype around Integer (or Int if you're sure you won't need more than 64 / the platform native bit width) is a reasonably easy way to implement it |
2021-12-05 03:41:24 +0100 | <awpr> | with a phantom Nat type parameter: `newtype Bit (n :: Nat) = Bit Integer` |
2021-12-05 03:42:12 +0100 | <yin> | oh that might be better |
2021-12-05 03:42:45 +0100 | <awpr> | then with KnownNat constraints on the typeclass instances and the appropriate masking / bounds checking / whatever you prefer, it can be made to behave like an n-bit integer |
2021-12-05 03:46:26 +0100 | <zwro[m]> | that's KindSignatures, right? |
2021-12-05 03:47:25 +0100 | <zwro[m]> | and which Nat is that? |
2021-12-05 03:48:07 +0100 | <awpr> | yeah, it's a kind signature, and as far as I know there's only one Nat type, exported from Data.TypeNats and a few other places |
2021-12-05 03:48:41 +0100 | <zwro[m]> | it's not GHC.TypeLits ? |
2021-12-05 03:49:11 +0100 | <awpr> | oh, it's GHC.TypeNats and not Data, but yeah, that's one of the other places it's exported from |
2021-12-05 03:50:00 +0100 | <zwro[m]> | ok, i've got some reading to do |
2021-12-05 03:50:08 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b) |
2021-12-05 03:50:11 +0100 | <zwro[m]> | ty |
2021-12-05 03:51:56 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3) |
2021-12-05 03:52:02 +0100 | <yin> | i have no idea how to estimate performance of type level stuff |
2021-12-05 03:52:22 +0100 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-12-05 03:54:19 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3) |
2021-12-05 03:56:03 +0100 | namkeleser | (~namkelese@101.175.128.51) (Ping timeout: 256 seconds) |
2021-12-05 03:58:13 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-12-05 03:58:37 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-12-05 04:00:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-05 04:05:02 +0100 | namkeleser | (~namkelese@101.175.128.51) |
2021-12-05 04:11:02 +0100 | alx741 | (~alx741@186.178.108.253) |
2021-12-05 04:12:16 +0100 | <EvanR> | yin, static types are only checked at compile time |
2021-12-05 04:12:37 +0100 | <EvanR> | so runtime performance is great |
2021-12-05 04:14:30 +0100 | zebrag | (~chris@user/zebrag) |
2021-12-05 04:14:33 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 04:15:18 +0100 | maroloccio | (~marolocci@151.53.155.184) (Quit: WeeChat 3.0) |
2021-12-05 04:19:17 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds) |
2021-12-05 04:20:01 +0100 | <yin> | what about space? |
2021-12-05 04:20:40 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b) (Remote host closed the connection) |
2021-12-05 04:21:15 +0100 | <EvanR> | types don't exist at runtime so they take zero space! |
2021-12-05 04:22:47 +0100 | <yin> | how would the type literal solution above compare to something like type Bin = [Bool] with a Bits instance? |
2021-12-05 04:23:55 +0100 | <EvanR> | the Nat suggestion was so you can work with multiple size bit vectors safely? |
2021-12-05 04:24:12 +0100 | <EvanR> | not involved in the runtime bit banging |
2021-12-05 04:25:41 +0100 | renzhi | (~xp@2607:fa49:6500:b100::5cef) (Ping timeout: 268 seconds) |
2021-12-05 04:26:10 +0100 | <yin> | oh i must have misundertood what was being asked then |
2021-12-05 04:27:13 +0100 | <EvanR> | :t 1234 .|. 4321 |
2021-12-05 04:27:14 +0100 | <lambdabot> | (Bits a, Num a) => a |
2021-12-05 04:27:22 +0100 | <yin> | i thought you were talking about dynamically sized words |
2021-12-05 04:27:22 +0100 | <EvanR> | (1234::Integer) .|. 4321 |
2021-12-05 04:27:36 +0100 | <EvanR> | > (1234::Integer) .|. 4321 |
2021-12-05 04:27:38 +0100 | <lambdabot> | 5363 |
2021-12-05 04:27:48 +0100 | <EvanR> | more like fixed size n that you choose |
2021-12-05 04:28:06 +0100 | <yin> | yup i get it now |
2021-12-05 04:28:30 +0100 | <unclechu> | Hey, when I turn on GHC2021 extension my type family fails to compile. It’s poly-kinded. |
2021-12-05 04:28:30 +0100 | <unclechu> | `type family ToSigned (x ∷ k) ∷ Signed a where ToSigned (x ∷ Nat) = P x` |
2021-12-05 04:28:30 +0100 | <unclechu> | GHC complains that “Expected kind ‘k’, but ‘x :: Nat’ has kind ‘Nat’” |
2021-12-05 04:28:55 +0100 | <unclechu> | Any ideas why does this happen? A bug or maybe some included extension? |
2021-12-05 04:28:59 +0100 | <yin> | what would be a good approach for dynamic? |
2021-12-05 04:29:54 +0100 | <EvanR> | what does dynamic mean here |
2021-12-05 04:30:37 +0100 | <yin> | n depending on some input for instance |
2021-12-05 04:30:48 +0100 | <EvanR> | oof |
2021-12-05 04:31:44 +0100 | <yin> | is this dependent type territory? |
2021-12-05 04:31:50 +0100 | <EvanR> | if your code works for all n, then it's a matter of convincing the type system that your parser produces the correct type of value corresponding to that unknown input value |
2021-12-05 04:32:52 +0100 | <EvanR> | you can also bundle the unknown value in a... dependent pair... |
2021-12-05 04:33:19 +0100 | <EvanR> | but the parser is tricky |
2021-12-05 04:34:16 +0100 | <yin> | or just go with [[Bool]] :) |
2021-12-05 04:34:42 +0100 | <EvanR> | if you don't care about the types, Integer would probably be faster |
2021-12-05 04:35:35 +0100 | <yin> | sure but then this conversation is no fun |
2021-12-05 04:35:41 +0100 | td_ | (~td@muedsl-82-207-238-245.citykom.de) (Ping timeout: 252 seconds) |
2021-12-05 04:37:13 +0100 | td_ | (~td@muedsl-82-207-238-182.citykom.de) |
2021-12-05 04:37:40 +0100 | <yin> | is GHC smart enough to optimize a list or n-tuple of bools in memory? |
2021-12-05 04:38:03 +0100 | <yin> | as in more efficiently allocate it? |
2021-12-05 04:39:07 +0100 | <EvanR> | no |
2021-12-05 04:39:19 +0100 | <yin> | :( |
2021-12-05 04:40:31 +0100 | <EvanR> | a list is either made of list nodes or is made of nothing after it's optimized out |
2021-12-05 04:40:42 +0100 | <yin> | i wonder how feasable that would be |
2021-12-05 04:41:45 +0100 | <yin> | wait wdym by that last part? |
2021-12-05 04:41:48 +0100 | <EvanR> | a normal n tuple of bools can't be packed together since tuples hold lazy values |
2021-12-05 04:42:29 +0100 | <EvanR> | there's unpacked tuples though |
2021-12-05 04:42:32 +0100 | <EvanR> | er, unboxed |
2021-12-05 04:42:43 +0100 | <yin> | what about unboxed? |
2021-12-05 04:42:59 +0100 | <yin> | yes i was just about to ask :) |
2021-12-05 04:43:57 +0100 | <yin> | -O2 should take care of that anyways, right? |
2021-12-05 04:43:59 +0100 | <EvanR> | an unboxed bool is still a whole word I think |
2021-12-05 04:44:40 +0100 | <yin> | iirc something changed in 9.2 |
2021-12-05 04:44:41 +0100 | <EvanR> | instead of a pointer to a bool box, it's just the bool data |
2021-12-05 04:45:43 +0100 | <yin> | it's now 8 bits instead of Word (?) smething like that |
2021-12-05 04:47:10 +0100 | <yin> | this inner works of GHC is beyond my level of understanding |
2021-12-05 04:47:22 +0100 | <EvanR> | I do not know |
2021-12-05 04:52:19 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2021-12-05 04:52:19 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-12-05 04:52:19 +0100 | finn_elija | FinnElija |
2021-12-05 04:53:17 +0100 | chenqisu1 | (~chenqisu1@183.217.200.156) (Ping timeout: 256 seconds) |
2021-12-05 04:54:49 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2021-12-05 04:56:48 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-12-05 04:57:20 +0100 | img | (~img@user/img) |
2021-12-05 05:01:52 +0100 | arjun | (~user@user/arjun) |
2021-12-05 05:09:14 +0100 | xff0x | (~xff0x@2001:1a81:5227:8600:681d:a189:70c5:145e) (Ping timeout: 252 seconds) |
2021-12-05 05:09:54 +0100 | xff0x | (~xff0x@2001:1a81:5227:8600:4d3a:2f6a:351b:d244) |
2021-12-05 05:16:09 +0100 | hololeap_ | (~hololeap@user/hololeap) |
2021-12-05 05:17:20 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) |
2021-12-05 05:18:53 +0100 | sunmountain | (~sunmounta@206.217.205.57) |
2021-12-05 05:19:41 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 252 seconds) |
2021-12-05 05:20:05 +0100 | <EvanR> | at some point there were proposals to do something with FilePath, such as change it to ByteString. Did anything ever happen |
2021-12-05 05:21:17 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-12-05 05:21:53 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::9788) (Ping timeout: 252 seconds) |
2021-12-05 05:22:15 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
2021-12-05 05:23:48 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-12-05 05:26:31 +0100 | hololeap | (~hololeap@user/hololeap) (Read error: Connection reset by peer) |
2021-12-05 05:26:43 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2021-12-05 05:27:44 +0100 | <c_wraith> | the real problem is that there is no right answer. |
2021-12-05 05:32:18 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) |
2021-12-05 05:32:59 +0100 | jmorris | (uid433911@id-433911.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-05 05:33:03 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-05 05:37:17 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2021-12-05 05:39:41 +0100 | xff0x | (~xff0x@2001:1a81:5227:8600:4d3a:2f6a:351b:d244) (Ping timeout: 268 seconds) |
2021-12-05 05:40:05 +0100 | xff0x | (~xff0x@2001:1a81:5227:8600:2d6c:ad13:e9b9:6c25) |
2021-12-05 05:45:22 +0100 | <dmj`> | @package filepath-bytestring |
2021-12-05 05:45:22 +0100 | <lambdabot> | https://hackage.haskell.org/package/filepath-bytestring |
2021-12-05 05:45:37 +0100 | Lycurgus | (~juan@98.4.112.204) |
2021-12-05 05:46:44 +0100 | <EvanR> | looks promising |
2021-12-05 05:53:35 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-12-05 05:54:20 +0100 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 252 seconds) |
2021-12-05 05:56:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-05 06:03:04 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 06:05:26 +0100 | deadmarshal | (~deadmarsh@95.38.231.28) |
2021-12-05 06:07:06 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 06:09:59 +0100 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-12-05 06:16:24 +0100 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-05 06:18:24 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-12-05 06:20:38 +0100 | namkeleser | (~namkelese@101.175.128.51) (Quit: Client closed) |
2021-12-05 06:21:22 +0100 | pfurla | (~pfurla@201.17.118.230) (Quit: gone to sleep. ZZZzzz…) |
2021-12-05 06:27:00 +0100 | nfd | (~nfd@user/nfd) |
2021-12-05 06:28:31 +0100 | <nfd> | alright, i could use an AoC day 4 rubberduck for a moment, because i seem too sleepy to get something pretty simple here: |
2021-12-05 06:30:16 +0100 | <nfd> | i'm writing a megaparsec parser for reading cards in day 4, and it keeps dying after the first line of the first card on the example data, because it's not expecting the leading space |
2021-12-05 06:30:29 +0100 | <nfd> | ``parseCard = hspace *> sepBy (many ((,False) <$> lexeme number)) eol`` |
2021-12-05 06:30:42 +0100 | <nfd> | ...but i thought that leading hspace call should've done it. |
2021-12-05 06:30:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-05 06:31:02 +0100 | <nfd> | (i'll pastebin the whole thing if anyone wants ofc) |
2021-12-05 06:33:35 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-12-05 06:37:43 +0100 | mbuf | (~Shakthi@122.174.197.155) |
2021-12-05 06:38:15 +0100 | <nfd> | (my previous attempts were way too zealous about eating whitespace, and just read the rest of the file as one massive one-lined card) |
2021-12-05 06:41:35 +0100 | deadmarshal | (~deadmarsh@95.38.231.28) (Ping timeout: 256 seconds) |
2021-12-05 06:44:21 +0100 | <dsal> | nfd: what is lexeme? |
2021-12-05 06:47:46 +0100 | chenqisu1 | (~chenqisu1@183.217.200.156) |
2021-12-05 06:51:31 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b) |
2021-12-05 06:51:31 +0100 | fabfianda | (~fabfianda@net-109-115-246-237.cust.vodafonedsl.it) (Read error: Connection reset by peer) |
2021-12-05 06:51:45 +0100 | fabfianda | (~fabfianda@net-109-115-246-237.cust.vodafonedsl.it) |
2021-12-05 06:52:09 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2021-12-05 06:53:38 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-12-05 07:05:35 +0100 | namkeleser | (~namkelese@101.175.128.51) |
2021-12-05 07:06:29 +0100 | <nfd> | (got it; obviously put it in the wrong spot) |
2021-12-05 07:08:22 +0100 | <nfd> | still a bit to iron out, but :) |
2021-12-05 07:10:20 +0100 | deadmarshal | (~deadmarsh@95.38.231.28) |
2021-12-05 07:13:13 +0100 | dignissimus | (~dignissim@88-104-68-62.dynamic.dsl.as9105.com) |
2021-12-05 07:14:04 +0100 | <nfd> | alright, now i'm cooking with gas. to allow this to be a lesson for everyone: |
2021-12-05 07:14:13 +0100 | <nfd> | `parseCard = sepEndBy (hspace *> some ((,False) <$> lexeme number)) eol` |
2021-12-05 07:15:25 +0100 | Lycurgus | (~juan@98.4.112.204) (Quit: Exeunt) |
2021-12-05 07:16:32 +0100 | <dignissimus> | I'm reading integers so I wanted to use Int, but I want to divide these numbers and the reuslt is probably not an integer, how should I approach this while making sure the code doesn't become too ugly (Adevent of Code) https://paste.tomsmeding.com/KrceTN3w |
2021-12-05 07:20:25 +0100 | <EvanR> | well |
2021-12-05 07:21:11 +0100 | <EvanR> | if you literally want to use division to get points on a line with algebraic certitude, you can use Rational |
2021-12-05 07:21:57 +0100 | <EvanR> | but it's not necessary for that problem because the lines are only horizontal vertical or diagonal |
2021-12-05 07:22:25 +0100 | <dignissimus> | Oh, even in part 2?? |
2021-12-05 07:22:39 +0100 | <EvanR> | yeah read the text more carefully |
2021-12-05 07:23:25 +0100 | arjun | (~user@user/arjun) (Remote host closed the connection) |
2021-12-05 07:23:40 +0100 | <EvanR> | (in general if you wanted to use / with integers you can from fromInteger first to get a Double, and all that that entails. Or Rational) |
2021-12-05 07:23:53 +0100 | <EvanR> | use* fromInteger |
2021-12-05 07:23:57 +0100 | <EvanR> | fromIntegral! |
2021-12-05 07:24:46 +0100 | <dignissimus> | My only concern is that if I replace all the variables with (fromIntegral x) the code might look really messy |
2021-12-05 07:25:03 +0100 | <dignissimus> | Do I need to use a helper function? |
2021-12-05 07:25:43 +0100 | <EvanR> | sometimes I define fi = fromIntegral, but it needs a type signature if you intend to use it at more than one type |
2021-12-05 07:26:10 +0100 | <EvanR> | (and if I do... I put a type sig anyway and pick a better name!) |
2021-12-05 07:26:24 +0100 | <EvanR> | (if I intend to use it at 1 type) |
2021-12-05 07:26:54 +0100 | <EvanR> | you're right it'll look messy |
2021-12-05 07:27:18 +0100 | <EvanR> | and won't even work if go with Double lol |
2021-12-05 07:34:37 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
2021-12-05 07:42:17 +0100 | int-e | (~noone@int-e.eu) (Quit: Reconnecting) |
2021-12-05 07:42:26 +0100 | int-e | (~noone@int-e.eu) |
2021-12-05 07:47:24 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) |
2021-12-05 07:48:24 +0100 | shailangsa | (~shailangs@host86-162-150-209.range86-162.btcentralplus.com) (Ping timeout: 265 seconds) |
2021-12-05 07:49:16 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) |
2021-12-05 07:50:39 +0100 | Techcable | (~Techcable@168.235.93.147) (Ping timeout: 256 seconds) |
2021-12-05 07:53:41 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
2021-12-05 07:55:14 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 07:59:13 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 08:11:51 +0100 | <EvanR> | that's cool vector algorithms sort is much faster than Data.List sort |
2021-12-05 08:12:44 +0100 | <int-e> | Well it should be :) |
2021-12-05 08:13:39 +0100 | <int-e> | (As optimized as it is, the Data.List sort still dereferences a ton of random pointers, something you don't do when sorting an array in place) |
2021-12-05 08:22:32 +0100 | <EvanR> | yeah it seems any time a list becomes materialized and stays around, bad things happen |
2021-12-05 08:26:20 +0100 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2021-12-05 08:26:54 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-05 08:27:25 +0100 | zaquest | (~notzaques@5.130.79.72) |
2021-12-05 08:27:49 +0100 | shailangsa | (~shailangs@host86-186-142-82.range86-186.btcentralplus.com) |
2021-12-05 08:28:40 +0100 | yauhsien | (~yauhsien@2402:7500:4e5:d897:ecaa:ad5f:48c0:a8a4) |
2021-12-05 08:29:31 +0100 | <dmj`> | lists are great as control structures (for loop replacement), but not so good for representing data |
2021-12-05 08:35:50 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-12-05 08:37:03 +0100 | gabiruh_ | (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in) |
2021-12-05 08:37:17 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) |
2021-12-05 08:40:20 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 08:41:09 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) |
2021-12-05 08:46:52 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 08:47:09 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 08:48:49 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 08:49:07 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 08:51:10 +0100 | thevishy | (~Nishant@2405:201:f005:c007:fd4c:a570:99e4:8844) |
2021-12-05 08:53:06 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) |
2021-12-05 08:54:02 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 08:54:11 +0100 | emf_ | (~emf@2620:10d:c090:400::5:d28b) (Ping timeout: 252 seconds) |
2021-12-05 08:54:19 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 08:55:59 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 09:00:55 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-05 09:02:38 +0100 | hgolden | (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) |
2021-12-05 09:05:00 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-12-05 09:11:07 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-12-05 09:13:54 +0100 | axeman | (~quassel@ip5f5aeb08.dynamic.kabel-deutschland.de) |
2021-12-05 09:15:27 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-05 09:24:15 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-12-05 09:25:08 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 09:26:48 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 09:27:06 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 09:30:58 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-12-05 09:33:11 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 09:33:29 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 09:34:52 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-05 09:38:47 +0100 | chenqisu12 | (~chenqisu1@183.217.201.63) |
2021-12-05 09:39:27 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-12-05 09:39:55 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 09:40:13 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 09:41:09 +0100 | chenqisu1 | (~chenqisu1@183.217.200.156) (Ping timeout: 256 seconds) |
2021-12-05 09:48:49 +0100 | yauhsien | (~yauhsien@2402:7500:4e5:d897:ecaa:ad5f:48c0:a8a4) (Ping timeout: 252 seconds) |
2021-12-05 09:53:01 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 09:53:18 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 09:54:58 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 09:55:16 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 09:55:26 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) |
2021-12-05 09:55:47 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e5135c37e9089e8a354.dip0.t-ipconnect.de) |
2021-12-05 09:58:56 +0100 | Techcable | (~Techcable@168.235.93.147) |
2021-12-05 10:00:13 +0100 | sky_lounge[m] | (~skylounge@2001:470:69fc:105::efa6) (Quit: You have been kicked for being idle) |
2021-12-05 10:00:29 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-12-05 10:03:47 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 10:04:05 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 10:05:32 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-12-05 10:07:46 +0100 | Jonno_FTW | (~come@user/jonno-ftw/x-0835346) (Ping timeout: 265 seconds) |
2021-12-05 10:08:21 +0100 | Jonno_FTW | (~come@api.carswap.me) |
2021-12-05 10:10:01 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 10:10:19 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 10:10:41 +0100 | deadmarshal | (~deadmarsh@95.38.231.28) (Ping timeout: 256 seconds) |
2021-12-05 10:13:59 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 10:14:17 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 10:16:29 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) |
2021-12-05 10:17:36 +0100 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-12-05 10:17:36 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-12-05 10:17:39 +0100 | allbery_b | geekosaur |
2021-12-05 10:18:18 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 10:18:35 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 10:22:41 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 10:25:36 +0100 | deadmarshal | (~deadmarsh@95.38.231.28) |
2021-12-05 10:27:13 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-05 10:30:10 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-05 10:31:39 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-05 10:33:36 +0100 | flukiluke | (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Remote host closed the connection) |
2021-12-05 10:34:32 +0100 | flukiluke | (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) |
2021-12-05 10:46:53 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-05 10:49:14 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-12-05 10:49:17 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-12-05 10:49:37 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 10:49:58 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f5ec:bb0e:161e:528b) (Remote host closed the connection) |
2021-12-05 10:50:19 +0100 | Pickchea | (~private@user/pickchea) |
2021-12-05 10:51:59 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 10:52:17 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 10:53:57 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 10:54:05 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) |
2021-12-05 10:54:15 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 10:54:16 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2021-12-05 10:55:55 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 10:56:14 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 11:00:18 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 11:00:35 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 11:02:15 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 11:02:33 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 11:03:06 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-05 11:05:01 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 11:05:18 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) |
2021-12-05 11:05:19 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 11:06:03 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-12-05 11:07:21 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-12-05 11:08:23 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
2021-12-05 11:10:07 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2021-12-05 11:10:10 +0100 | Lord_of_Life_ | Lord_of_Life |
2021-12-05 11:12:34 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) |
2021-12-05 11:14:45 +0100 | <Square> | is there a way to make a partial function "complete" by just catching non handled cases? |
2021-12-05 11:17:22 +0100 | <tomsmeding> | Square: you need to return _something_ in all cases -- that's the point of being a total function |
2021-12-05 11:17:33 +0100 | <tomsmeding> | what are you going to return in non-handled cases? |
2021-12-05 11:18:09 +0100 | <Square> | I was thinking "Left SomeErrorType" |
2021-12-05 11:19:26 +0100 | <tomsmeding> | right, if you function return type is 'Either SomeErrorType Value', and you can generate some kind of standard error type, then you can do that |
2021-12-05 11:20:25 +0100 | Guest|22 | (~Guest|22@188.163.27.147) |
2021-12-05 11:20:53 +0100 | Guest|22 | (~Guest|22@188.163.27.147) (Client Quit) |
2021-12-05 11:22:33 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 11:22:50 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 11:24:44 +0100 | <Square> | tomsmeding, what im after is avoiding to implement the error handling case whenever i do this. Hopefully like "dealWithNonHandled $ (\(MySumTypeCaseC x) -> Right x) value" |
2021-12-05 11:26:22 +0100 | <tomsmeding> | ah, in that specific shape you can't make this |
2021-12-05 11:26:53 +0100 | <tomsmeding> | what you can do, is (\case MySumTypeCaseC x -> Right x ; _ -> somedefaultstuff) value |
2021-12-05 11:26:56 +0100 | <tomsmeding> | if you turn on LambdaCase |
2021-12-05 11:27:12 +0100 | <tomsmeding> | if you don't like LambdaCase, of course (\v -> case v of MySu... |
2021-12-05 11:28:52 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 11:29:10 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 11:30:18 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection) |
2021-12-05 11:31:02 +0100 | max22- | (~maxime@2a01cb0883359800e6d6eb63f9f5fddc.ipv6.abo.wanadoo.fr) |
2021-12-05 11:31:05 +0100 | <tomsmeding> | Square: a way to see that what you want is impossible, is: what would the type of dealWithNonHandled be? |
2021-12-05 11:31:09 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-12-05 11:31:15 +0100 | <tomsmeding> | and what would its argument be |
2021-12-05 11:32:00 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-12-05 11:32:21 +0100 | <Square> | tomsmeding, i see how its impossible. Just hoped there was a trick around it =D |
2021-12-05 11:32:32 +0100 | <Square> | ill go with LambdaCase. Good enough |
2021-12-05 11:33:55 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds) |
2021-12-05 11:37:27 +0100 | simendsjo | (~user@84.211.91.241) |
2021-12-05 11:38:07 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-12-05 11:42:00 +0100 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-12-05 11:44:34 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-05 11:46:46 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 11:47:01 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-12-05 11:47:21 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-12-05 11:49:01 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 11:49:18 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 11:50:24 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e52b:eca6:e736:3c6b) |
2021-12-05 11:53:08 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-12-05 11:54:35 +0100 | fabfianda | (~fabfianda@net-109-115-246-237.cust.vodafonedsl.it) (Ping timeout: 252 seconds) |
2021-12-05 11:54:57 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e52b:eca6:e736:3c6b) (Ping timeout: 252 seconds) |
2021-12-05 11:55:14 +0100 | fabfianda | (~fabfianda@mob-5-90-255-224.net.vodafone.it) |
2021-12-05 11:55:28 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-12-05 11:56:23 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-12-05 11:57:28 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) |
2021-12-05 11:57:31 +0100 | lstor | (~lstor@user/lstor) (Remote host closed the connection) |
2021-12-05 11:58:11 +0100 | MoC | (~moc@user/moc) |
2021-12-05 11:58:37 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2021-12-05 12:00:19 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 12:00:37 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 12:01:07 +0100 | Guest|85 | (~Guest|85@35.85-84-235.dynamic.clientes.euskaltel.es) |
2021-12-05 12:01:11 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 252 seconds) |
2021-12-05 12:04:29 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 12:04:47 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 12:05:35 +0100 | fabfianda | (~fabfianda@mob-5-90-255-224.net.vodafone.it) (Ping timeout: 252 seconds) |
2021-12-05 12:07:19 +0100 | AndreasK | (sid320732@id-320732.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-05 12:07:56 +0100 | aegon | (~mike@174.127.249.180) |
2021-12-05 12:08:33 +0100 | <aegon> | what are the keyboard shortcuts to search within a package on hackage? where can i find them if i forget next time. :P |
2021-12-05 12:09:56 +0100 | Guest|85 | (~Guest|85@35.85-84-235.dynamic.clientes.euskaltel.es) (Quit: Connection closed) |
2021-12-05 12:10:58 +0100 | <maerwald> | s |
2021-12-05 12:15:15 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 12:15:33 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 12:19:11 +0100 | <aegon> | thanks :) |
2021-12-05 12:21:29 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 12:21:47 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 12:25:27 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 12:25:45 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 12:27:33 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi) |
2021-12-05 12:27:47 +0100 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-12-05 12:28:26 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-05 12:30:01 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 256 seconds) |
2021-12-05 12:30:25 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2021-12-05 12:32:02 +0100 | eyJhb | (~eyJhb@user/eyjhb) (Quit: Clever message) |
2021-12-05 12:32:33 +0100 | narendraj9 | (~user@2a02:8109:b63f:ff7c::57b2) |
2021-12-05 12:32:55 +0100 | eyJhb | (~eyJhb@user/eyjhb) |
2021-12-05 12:33:31 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:9dad:b7eb:58e3:98e6) |
2021-12-05 12:33:38 +0100 | <pragma-> | aegon: it's easy to remember the key is 's' because "s" stands for "sedimentologically" |
2021-12-05 12:34:12 +0100 | InternetCitizen4 | (~fuzzypixe@tchebychev.ensimag.fr) |
2021-12-05 12:34:39 +0100 | <InternetCitizen4> | screw arch linux for enforcing dynamic linking 'ghc -dynamic' my ass |
2021-12-05 12:34:54 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 12:35:05 +0100 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-12-05 12:35:11 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 12:39:03 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 12:39:21 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 12:41:01 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 12:41:19 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 12:42:15 +0100 | <maerwald> | pick a better distro |
2021-12-05 12:43:31 +0100 | cosimone | (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) |
2021-12-05 12:45:17 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 12:45:23 +0100 | <InternetCitizen4> | like ? |
2021-12-05 12:45:35 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 12:47:33 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 12:47:43 +0100 | <maerwald> | or better yet, switch to windows |
2021-12-05 12:47:50 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 12:48:07 +0100 | bbear100 | (~bbear@2a01:e34:ec2b:d430:e0dd:e718:df68:1877) |
2021-12-05 12:48:07 +0100 | <bbear100> | Hi |
2021-12-05 12:48:34 +0100 | <bbear100> | just wanted to know if there is a better API than the [a..b] one for generating sequences of numbers |
2021-12-05 12:49:09 +0100 | <bbear100> | my use case: I want to generate contiguous integer but I don't know if a > b or b > a, but I want the sequence to be in reverse order in the former case. |
2021-12-05 12:50:23 +0100 | <aegon> | bbear100: guards will get you there |
2021-12-05 12:50:33 +0100 | max22- | (~maxime@2a01cb0883359800e6d6eb63f9f5fddc.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
2021-12-05 12:50:57 +0100 | max22- | (~maxime@2a01cb0883359800e6d6eb63f9f5fddc.ipv6.abo.wanadoo.fr) |
2021-12-05 12:51:13 +0100 | <maerwald> | InternetCitizen4: I don't know... openSUSE? |
2021-12-05 12:51:45 +0100 | <aegon> | maerwald: i can't tell if your trollin :P |
2021-12-05 12:51:52 +0100 | <maerwald> | aegon: I'm not |
2021-12-05 12:52:00 +0100 | <maerwald> | they have competent packagers |
2021-12-05 12:52:08 +0100 | <maerwald> | something that's missing in most distros |
2021-12-05 12:52:52 +0100 | <aegon> | gentoo! just package yourself :P |
2021-12-05 12:53:02 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-05 12:53:11 +0100 | <maerwald> | I did gentoo deving for 4 years and will never go back to that madness |
2021-12-05 12:53:16 +0100 | <bbear100> | archlinux if you like reading doc and running pre-compiled vanilla linux with decent community support |
2021-12-05 12:53:42 +0100 | <maerwald> | bbear100: they asked about an alternative to arch, because arch is broken sh*t :p |
2021-12-05 12:53:54 +0100 | <bbear100> | it's not *that* broken |
2021-12-05 12:54:00 +0100 | <maerwald> | for Haskell, it is |
2021-12-05 12:54:17 +0100 | <fendor[m]> | it is fine, as long as you use ghcup ;D |
2021-12-05 12:54:48 +0100 | <bbear100> | I'm using stack. Lesson in life: never use your distro package libraries for development workflow |
2021-12-05 12:55:01 +0100 | <maerwald> | I'm on fedora... but not because I believe in it. The main issue is that you can't easily switch gcc versions, which you sometimes need for Haskell deving |
2021-12-05 12:55:21 +0100 | max22- | (~maxime@2a01cb0883359800e6d6eb63f9f5fddc.ipv6.abo.wanadoo.fr) (Ping timeout: 245 seconds) |
2021-12-05 12:56:26 +0100 | <aegon> | bbear100: you mean you always want a descending sequence? |
2021-12-05 12:56:37 +0100 | <bbear100> | not always, can be up or down |
2021-12-05 12:56:40 +0100 | <bbear100> | I have another question: |
2021-12-05 12:57:00 +0100 | <bbear100> | how can you define (+) for a datastructure like `data Point = Point Int Int` ? |
2021-12-05 12:57:17 +0100 | <bbear100> | Do you really need to make it an instance of `Num` ? |
2021-12-05 12:58:01 +0100 | <bbear100> | can I just define it? |
2021-12-05 12:58:19 +0100 | <aegon> | yeah, instance num but if your really doing points, you can just derive it with the stock one |
2021-12-05 12:58:26 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:9dad:b7eb:58e3:98e6) (Quit: gone to sleep. ZZZzzz…) |
2021-12-05 12:58:29 +0100 | <aegon> | it'll do the right thing |
2021-12-05 12:58:40 +0100 | <bbear100> | deriving Num will work ? |
2021-12-05 12:59:18 +0100 | <aegon> | and Eq, not sure if Ord will be sane |
2021-12-05 12:59:37 +0100 | <aegon> | i doubt Ord would be sane |
2021-12-05 13:00:27 +0100 | xkuru | (~xkuru@user/xkuru) |
2021-12-05 13:01:37 +0100 | <bbear100> | • Can't make a derived instance of ‘Num Point’: |
2021-12-05 13:01:38 +0100 | <bbear100> | ‘Num’ is not a stock derivable class (Eq, Show, etc.) |
2021-12-05 13:02:17 +0100 | <bbear100> | too bad |
2021-12-05 13:02:25 +0100 | xff0x | (~xff0x@2001:1a81:5227:8600:2d6c:ad13:e9b9:6c25) (Ping timeout: 252 seconds) |
2021-12-05 13:02:45 +0100 | <maerwald> | aegon: I don't think you can derive that |
2021-12-05 13:02:53 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-05 13:03:17 +0100 | xff0x | (~xff0x@2001:1a81:5227:8600:e134:3a0d:618c:1205) |
2021-12-05 13:05:45 +0100 | <aegon> | yeah, i was trying to get it to work and realizing it's not gonna work, just came back from that |
2021-12-05 13:08:09 +0100 | <bbear100> | you can't redifine (+) for any type right, but you actually have to make it an instance of the correct typeclass, right ' |
2021-12-05 13:09:52 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 13:10:10 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 13:10:48 +0100 | <aegon> | bbear100: yeah, your gonna need to figure out what each thing in Num means for your Point, you could make a non (+) function and use that instead |
2021-12-05 13:11:05 +0100 | <aegon> | i don't think i'm understanding your needs on the contigous but this is a quick paste https://paste.tomsmeding.com/EjB6Yung |
2021-12-05 13:14:17 +0100 | <tomsmeding> | bbear100: in fact: |
2021-12-05 13:14:22 +0100 | <tomsmeding> | % :t (+) |
2021-12-05 13:14:23 +0100 | <yahb> | tomsmeding: Num a => a -> a -> a |
2021-12-05 13:14:34 +0100 | <tomsmeding> | (+) is defined for _precisely_ those types that implement Num |
2021-12-05 13:14:46 +0100 | <tomsmeding> | because it is a method of the Num class |
2021-12-05 13:15:34 +0100 | <aegon> | bbear100: the hackage docs have good info on what the minimum required definitions are and what rules they need to satisfy |
2021-12-05 13:15:48 +0100 | <bbear100> | ha allright |
2021-12-05 13:16:15 +0100 | <aegon> | https://hackage.haskell.org/package/base-4.16.0.0/docs/Prelude.html#g:7 |
2021-12-05 13:16:36 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-12-05 13:16:39 +0100 | <maerwald> | void linux actually looks nice, but I'm not sure |
2021-12-05 13:16:42 +0100 | desantra | (~skykanin@user/skykanin) |
2021-12-05 13:18:40 +0100 | <aegon> | bbear100: if you treat (*) as distributive you could make a num instance but i think your looking for something besides Num with Points, Maybe a Vector class or something similar would fit more naturally |
2021-12-05 13:18:51 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:9dad:b7eb:58e3:98e6) |
2021-12-05 13:18:57 +0100 | <bbear100> | yes nevermind I don't really need a function |
2021-12-05 13:19:14 +0100 | <bbear100> | Just want to try things. |
2021-12-05 13:19:23 +0100 | <bbear100> | BTW, is there a counterSet available in the prelude ? |
2021-12-05 13:19:43 +0100 | <bbear100> | like you can tell how many times an element is in the set ? |
2021-12-05 13:19:54 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:9dad:b7eb:58e3:98e6) (Client Quit) |
2021-12-05 13:20:13 +0100 | narendraj9 | (~user@2a02:8109:b63f:ff7c::57b2) (Remote host closed the connection) |
2021-12-05 13:21:42 +0100 | Pickchea | (~private@user/pickchea) |
2021-12-05 13:22:02 +0100 | Megant | (megant@user/megant) (Ping timeout: 252 seconds) |
2021-12-05 13:23:10 +0100 | <aegon> | i think thats a Bag |
2021-12-05 13:23:11 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) |
2021-12-05 13:23:25 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 13:23:42 +0100 | Megant | (megant@user/megant) |
2021-12-05 13:23:42 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 13:24:30 +0100 | <aegon> | bbear100: https://hackage.haskell.org/package/multiset-0.3.4.3/docs/Data-MultiSet.html |
2021-12-05 13:24:38 +0100 | <aegon> | or i'm old and now its being called a multi-set |
2021-12-05 13:27:28 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-12-05 13:28:23 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds) |
2021-12-05 13:29:19 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-12-05 13:31:56 +0100 | xff0x | (~xff0x@2001:1a81:5227:8600:e134:3a0d:618c:1205) (Ping timeout: 252 seconds) |
2021-12-05 13:32:55 +0100 | namkeleser | (~namkelese@101.175.128.51) (Ping timeout: 256 seconds) |
2021-12-05 13:33:29 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds) |
2021-12-05 13:33:31 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-05 13:34:06 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) |
2021-12-05 13:35:33 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:9dad:b7eb:58e3:98e6) |
2021-12-05 13:36:28 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:9dad:b7eb:58e3:98e6) (Client Quit) |
2021-12-05 13:38:39 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2021-12-05 13:39:38 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 252 seconds) |
2021-12-05 13:41:36 +0100 | <InternetCitizen4> | is Parsec in base? :/ |
2021-12-05 13:41:57 +0100 | <geekosaur> | no |
2021-12-05 13:42:27 +0100 | <geekosaur> | base is kept small, because it can only be upgraded with ghc |
2021-12-05 13:42:48 +0100 | <geekosaur> | there is a parser in base, but it's a pretty slow and bad one (ReadP) |
2021-12-05 13:42:57 +0100 | <geekosaur> | used by Read instances |
2021-12-05 13:43:31 +0100 | <geekosaur> | parsec does ship with ghc but it's still upgradeable, unlike base |
2021-12-05 13:46:40 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-12-05 13:46:40 +0100 | Farzad | (~FarzadBek@37.98.106.33) |
2021-12-05 13:48:24 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) |
2021-12-05 13:49:46 +0100 | <Farzad> | guys anyone using postgresql-simple here? |
2021-12-05 13:50:53 +0100 | polezaivsani | (~polezaivs@orangeshoelaces.net) |
2021-12-05 13:53:19 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-12-05 13:53:59 +0100 | xff0x | (~xff0x@2001:1a81:5227:8600:e134:3a0d:618c:1205) |
2021-12-05 13:54:00 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 13:56:05 +0100 | hololeap_ | hololeap |
2021-12-05 13:56:39 +0100 | <aegon> | Farzad: yep |
2021-12-05 13:57:15 +0100 | <Farzad> | can you direct me to an example usage of RowParser? I cant find any on google |
2021-12-05 13:58:25 +0100 | deadmarshal | (~deadmarsh@95.38.231.28) (Ping timeout: 256 seconds) |
2021-12-05 13:59:46 +0100 | <InternetCitizen4> | geekosaur: oh so it does ship with ghc that's good |
2021-12-05 14:01:27 +0100 | <aegon> | i've never used them :| but it looks like you pass it a conversion that runs in io and you get that |
2021-12-05 14:01:33 +0100 | <aegon> | sorry, not much help there |
2021-12-05 14:03:00 +0100 | <Farzad> | aegon: np, thanks anyway |
2021-12-05 14:03:19 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-12-05 14:04:59 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 14:05:16 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 14:06:56 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 14:07:14 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 14:09:51 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) |
2021-12-05 14:10:03 +0100 | <dignissimus> | My day 5 solution, I think my haskell is improving: https://paste.tomsmeding.com/ykQKkds8 |
2021-12-05 14:10:26 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 252 seconds) |
2021-12-05 14:10:34 +0100 | <dignissimus> | Any feedback on the code? This time I made use of helper functions becuse last time it was difficult to read |
2021-12-05 14:12:11 +0100 | aegon | (~mike@174.127.249.180) (Remote host closed the connection) |
2021-12-05 14:13:59 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) |
2021-12-05 14:14:17 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
2021-12-05 14:15:57 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 14:16:15 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 14:16:43 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-12-05 14:16:49 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) |
2021-12-05 14:19:36 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-12-05 14:20:12 +0100 | kuribas | (~user@ptr-25vy0i87ls363spjkfx.18120a2.ip6.access.telenet.be) |
2021-12-05 14:20:19 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-12-05 14:20:50 +0100 | <kuribas> | What's this BS: https://blog.klipse.tech/databook/2020/10/02/generic-data-structures.html |
2021-12-05 14:20:53 +0100 | <kuribas> | "FP Languages that are statically typed (e.g. Haskell and Ocaml) are not compliant with this principle." |
2021-12-05 14:20:57 +0100 | <kuribas> | I can represent generic data structures in haskell just fine thank you. |
2021-12-05 14:21:16 +0100 | <kuribas> | I probably don't want to, but I can... |
2021-12-05 14:21:32 +0100 | imdoor | (~imdoor@balticom-142-78-50.balticom.lv) |
2021-12-05 14:23:30 +0100 | <Franciman> | what does generic mean? |
2021-12-05 14:25:03 +0100 | <kuribas> | unityped I suppose. |
2021-12-05 14:25:30 +0100 | <kuribas> | One big sumtype to rule them all :) |
2021-12-05 14:26:38 +0100 | <Franciman> | honestly what the heck |
2021-12-05 14:26:45 +0100 | <Franciman> | I can't wait to finish my garbage collector, btw |
2021-12-05 14:26:52 +0100 | kennyd | (~bc8165b6@cerf.good1.com) |
2021-12-05 14:27:01 +0100 | <Franciman> | then I'll be able to start experimenting more freely with the evaluator |
2021-12-05 14:27:06 +0100 | <Franciman> | and make it FFAST |
2021-12-05 14:27:23 +0100 | <Franciman> | i'll be finally able to draw coherent conclusions re. haskell's evaluation behaviour |
2021-12-05 14:28:23 +0100 | <kuribas> | BTW, to me this "data-oriented programming" looks just like an interpreter design. |
2021-12-05 14:28:48 +0100 | <kuribas> | You write your logic as static data, then write an interpreter to apply it. |
2021-12-05 14:29:15 +0100 | <kuribas> | That definitely doesn't require "generic" only data. |
2021-12-05 14:29:37 +0100 | <Franciman> | to me data-oriented programming is basically |
2021-12-05 14:29:40 +0100 | <Franciman> | try to make things fit in the cache |
2021-12-05 14:30:00 +0100 | <Franciman> | otherwise I don't need anybody to tell me I should first think about data and how it flows |
2021-12-05 14:30:08 +0100 | <Franciman> | because that's on of the core pillars of fp |
2021-12-05 14:30:15 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-05 14:30:18 +0100 | <Franciman> | we already design our data and write functions on it |
2021-12-05 14:30:28 +0100 | <kuribas> | Franciman: yeah, that was before the clojure crowd took over the term... |
2021-12-05 14:30:46 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) |
2021-12-05 14:30:51 +0100 | <Franciman> | what I miss in haskell, but let me say this clear, it's my fault |
2021-12-05 14:30:56 +0100 | <Franciman> | is being able to predict what goes where |
2021-12-05 14:30:59 +0100 | <Franciman> | in the cache |
2021-12-05 14:31:05 +0100 | deadmarshal | (~deadmarsh@95.38.231.28) |
2021-12-05 14:31:10 +0100 | <Franciman> | and allowing super fast cache refs |
2021-12-05 14:31:25 +0100 | <kuribas> | Then use unboxed vectors. |
2021-12-05 14:31:51 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds) |
2021-12-05 14:31:52 +0100 | max22- | (~maxime@2a01cb0883359800155b4e4e6792e366.ipv6.abo.wanadoo.fr) |
2021-12-05 14:32:58 +0100 | <kuribas> | And write strict loops. |
2021-12-05 14:34:33 +0100 | <kuribas> | But in haskell data is code, in the sense that data is lambdas and infinite structures. |
2021-12-05 14:34:40 +0100 | <kuribas> | So it's inherently not inspectable. |
2021-12-05 14:35:11 +0100 | simendsjo | (~user@84.211.91.241) (Remote host closed the connection) |
2021-12-05 14:35:11 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
2021-12-05 14:35:25 +0100 | <kuribas> | For most problems that works fine, you just write your code so that you don't *need* to inspect the logic. |
2021-12-05 14:36:43 +0100 | son0p | (~ff@181.136.122.143) |
2021-12-05 14:39:35 +0100 | max22- | (~maxime@2a01cb0883359800155b4e4e6792e366.ipv6.abo.wanadoo.fr) (Ping timeout: 252 seconds) |
2021-12-05 14:39:48 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-05 14:40:55 +0100 | <juri_> | kuribas: unboxed vectors don't work with Data.Parallel. |
2021-12-05 14:41:27 +0100 | <kuribas> | juri_: you don't want parallism at that granularity... |
2021-12-05 14:41:43 +0100 | <kuribas> | juri_: except for SIMD. |
2021-12-05 14:43:27 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-05 14:48:17 +0100 | chenqisu12 | (~chenqisu1@183.217.201.63) (Ping timeout: 256 seconds) |
2021-12-05 14:48:22 +0100 | azimut_ | (~azimut@gateway/tor-sasl/azimut) |
2021-12-05 14:49:20 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-05 14:50:57 +0100 | deadmarshal | (~deadmarsh@95.38.231.28) (Ping timeout: 252 seconds) |
2021-12-05 14:52:15 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds) |
2021-12-05 14:54:14 +0100 | darchitect | (~darchitec@2a00:23c6:3584:df00:7dec:bf13:8fa:748c) |
2021-12-05 14:54:26 +0100 | alx741 | (~alx741@186.178.108.253) (Ping timeout: 252 seconds) |
2021-12-05 14:54:32 +0100 | <darchitect> | hi guys |
2021-12-05 14:55:29 +0100 | <darchitect> | first time using irc so sorry for stupid questions, but I'm just a beginner on my "Haskell journey" and was wondering if this is the right place to ask code-related questions ? |
2021-12-05 14:56:05 +0100 | sunmountain | (~sunmounta@206.217.205.57) (Ping timeout: 252 seconds) |
2021-12-05 14:56:41 +0100 | darchite` | (~user@2a00:23c6:3584:df00:7dec:bf13:8fa:748c) |
2021-12-05 14:57:40 +0100 | <darchite`> | test |
2021-12-05 14:57:48 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Quit: WeeChat 3.3) |
2021-12-05 14:58:03 +0100 | <darchitect> | test |
2021-12-05 14:58:05 +0100 | <darchitect> | ? |
2021-12-05 14:58:37 +0100 | <dignissimus> | darchitect: It is |
2021-12-05 14:58:41 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-12-05 14:58:54 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) |
2021-12-05 14:58:55 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-05 14:59:23 +0100 | max22- | (~maxime@2a01cb0883359800ca908bdf23b4cd25.ipv6.abo.wanadoo.fr) |
2021-12-05 14:59:45 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 15:00:34 +0100 | Guest76 | (~Guest76@wireless-student-pt10-183-60.lut.ac.uk) |
2021-12-05 15:01:59 +0100 | dignissimus | (~dignissim@88-104-68-62.dynamic.dsl.as9105.com) (Quit: Bye!) |
2021-12-05 15:02:08 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e5135c37e9089e8a354.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2021-12-05 15:02:32 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) |
2021-12-05 15:02:35 +0100 | <kuribas> | darchitect: if it is haskell code, yes. |
2021-12-05 15:03:00 +0100 | <kuribas> | darchitect: if it is not haskell code, but relevant to haskell, then also yes. |
2021-12-05 15:05:49 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 15:07:03 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2021-12-05 15:07:28 +0100 | alx741 | (~alx741@186.178.109.217) |
2021-12-05 15:08:15 +0100 | desantra | (~skykanin@user/skykanin) (Quit: WeeChat 3.3) |
2021-12-05 15:08:19 +0100 | <darchitect> | thanks a lot, will keep it mind ! |
2021-12-05 15:11:26 +0100 | desantra | (~skykanin@user/skykanin) |
2021-12-05 15:12:39 +0100 | InternetCitizen4 | (~fuzzypixe@tchebychev.ensimag.fr) (Ping timeout: 256 seconds) |
2021-12-05 15:12:45 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-12-05 15:17:26 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 245 seconds) |
2021-12-05 15:17:56 +0100 | <Guest76> | hi all, im a new haskell user and am stuck on a problem, can i ask questions here? |
2021-12-05 15:18:05 +0100 | axeman | (~quassel@ip5f5aeb08.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2021-12-05 15:18:50 +0100 | <geekosaur> | yes |
2021-12-05 15:19:42 +0100 | <kuribas> | don't ask to ask |
2021-12-05 15:21:40 +0100 | <Guest76> | im trying to create a function where the function takes list and a character it searches through the list for and partitions each part of the list where it occurs for example countsplit "hello world" 'o' would be [4,2,3], here is my code https://paste.tomsmeding.com/dP0Nji7h |
2021-12-05 15:23:55 +0100 | <kuribas> | Guest76: that's not valid haskell syntax. |
2021-12-05 15:24:13 +0100 | <kuribas> | Guest76: I am not even sure what it's supposed to do... |
2021-12-05 15:25:15 +0100 | <kuribas> | length(head(xs)) head(xs) is of type `a`, so it doesn't have a length (in general). |
2021-12-05 15:25:16 +0100 | <Guest76> | it's meant to search the list for each instance of a character / number and find how many characters are before it and hence the list of numbers as the result |
2021-12-05 15:25:36 +0100 | <Guest76> | qutie new to functional paradigm so sorry if it looks bad |
2021-12-05 15:25:54 +0100 | <kuribas> | And xs could be the empty list, so `head xs` will crash. |
2021-12-05 15:26:08 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 268 seconds) |
2021-12-05 15:26:45 +0100 | <Guest76> | ok |
2021-12-05 15:27:06 +0100 | <kuribas> | Guest76: you are recursing on the list, so you don't know what is before it, unless you pass that to the recursive case. |
2021-12-05 15:27:38 +0100 | <kuribas> | Guest76: also, [4, 3, 2] is not of type [[Int]] |
2021-12-05 15:28:18 +0100 | <Guest76> | yes thats what im trying to do, trying to recurse through the list for each instance of a character and find the length of how many characters are before that letter so in my example you saw 4,3,2 since before the first o there was 4 characters etc... |
2021-12-05 15:29:04 +0100 | genieliu | (~genieliu@111.193.167.10) |
2021-12-05 15:30:33 +0100 | <kuribas> | Guest76: that's not what head does... |
2021-12-05 15:30:37 +0100 | <kuribas> | > head [1, 2, 3] |
2021-12-05 15:30:39 +0100 | <lambdabot> | 1 |
2021-12-05 15:30:42 +0100 | <kuribas> | > head [] |
2021-12-05 15:30:43 +0100 | <Guest76> | ok so does head only take the first element |
2021-12-05 15:30:43 +0100 | <lambdabot> | *Exception: Prelude.head: empty list |
2021-12-05 15:31:11 +0100 | <kuribas> | Guest76: you're asking about previous elements, but they are not passed to the function... |
2021-12-05 15:31:17 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 252 seconds) |
2021-12-05 15:31:18 +0100 | <Guest76> | ok |
2021-12-05 15:31:37 +0100 | <kuribas> | Guest76: function programming is easy, you cannot access anything that you don't pass to the function. |
2021-12-05 15:31:39 +0100 | zebrag | (~chris@user/zebrag) |
2021-12-05 15:31:48 +0100 | <kuribas> | Unlike OO. |
2021-12-05 15:32:18 +0100 | <Guest76> | Yes, I only have OO experience so the new ideas are slightly confusing |
2021-12-05 15:32:38 +0100 | <Guest76> | So would it be a better idea to do it through a list comprehension or can i do it through pattern matching? |
2021-12-05 15:33:03 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-05 15:34:25 +0100 | <kuribas> | Guest76: If you want to "remember" the amount of previous characters, you need to pass it. |
2021-12-05 15:34:42 +0100 | <kuribas> | Guest76: You can make an auxiliary function. |
2021-12-05 15:34:58 +0100 | <kuribas> | Also fix the type of countsplit. |
2021-12-05 15:35:19 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 252 seconds) |
2021-12-05 15:35:49 +0100 | <Guest76> | Okay, so countsplit, at the end [[Int]] isn't the type of the list I want, so it is just [Int]? |
2021-12-05 15:36:06 +0100 | <kuribas> | :t [[1, 2], [3, 4, 5]] |
2021-12-05 15:36:07 +0100 | <lambdabot> | Num a => [[a]] |
2021-12-05 15:36:13 +0100 | <kuribas> | :t [1, 2, 3] |
2021-12-05 15:36:14 +0100 | <lambdabot> | Num a => [a] |
2021-12-05 15:36:16 +0100 | <Guest76> | got it |
2021-12-05 15:36:19 +0100 | <Guest76> | Okay |
2021-12-05 15:36:35 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-12-05 15:36:47 +0100 | <kuribas> | Guest76: it also depends on your course. You are probably expected to use functions that you have already seens before. |
2021-12-05 15:37:42 +0100 | <Guest76> | I think we have to create them just for this function since this is on its own with nothing else attached to it |
2021-12-05 15:38:15 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) |
2021-12-05 15:38:23 +0100 | <Guest76> | So for an auxillary function, can you explain to me what one is please since I don't think I've came across the term before |
2021-12-05 15:38:43 +0100 | <geekosaur> | helper function |
2021-12-05 15:39:42 +0100 | <Guest76> | so a function where you use where underneath |
2021-12-05 15:40:00 +0100 | <Guest76> | I have used those before but they were never told as auxillary functions |
2021-12-05 15:40:37 +0100 | <geekosaur> | no, "where" isn't related. just a function that uses another function to do part of the work |
2021-12-05 15:40:55 +0100 | <geekosaur> | either as part of recursion or to avoid duplicating code |
2021-12-05 15:41:02 +0100 | <kuribas> | Guest76: How to write this function should be in the course material. |
2021-12-05 15:41:54 +0100 | <Guest76> | So in the case of my problem, I can use an auxillary function to split the list into indexes where the character occurs then find the lengths of each of those indexes |
2021-12-05 15:42:01 +0100 | <Guest76> | That is what I am getting at |
2021-12-05 15:42:30 +0100 | <kuribas> | no, countsplitaux :: Eq a => Int -> [a] -> a -> [Int] |
2021-12-05 15:42:43 +0100 | <kuribas> | you pass the current index to the function. |
2021-12-05 15:43:25 +0100 | <Guest76> | Why would I need the Int at the start of the function definition? |
2021-12-05 15:45:35 +0100 | <kuribas> | it's the current index |
2021-12-05 15:46:40 +0100 | <Guest76> | On the question it says it can only have 2 arguments [a] and a so would I have to do that in a separate function and use that within countsplit |
2021-12-05 15:46:41 +0100 | kennyd | (~bc8165b6@cerf.good1.com) (Quit: CGI:IRC) |
2021-12-05 15:47:03 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-12-05 15:47:06 +0100 | xsperry | (~xs@user/xsperry) () |
2021-12-05 15:47:15 +0100 | kennyd | (~bc8165b6@cerf.good1.com) |
2021-12-05 15:48:09 +0100 | <kuribas> | yes |
2021-12-05 15:48:50 +0100 | <kennyd> | Guest76, countsplit xs y = go 0 xs y where go {- your main definition goes in here -}. the point of this is to avoid passing index, which would always be 0, to the countsplit as the user of that function |
2021-12-05 15:49:06 +0100 | <kuribas> | > let countsplit l x = fold $ zipWith ($) (map (\y i -> if x == y then [i] else []) l) [0..] in countsplit "hello world" 'o' |
2021-12-05 15:49:08 +0100 | <lambdabot> | [4,7] |
2021-12-05 15:49:34 +0100 | <Guest76> | Ok, I shall give that a go. So I am going to try and create a function which would make 'hello world' 'o' into ['hell', ' w', 'rld'] then find the length of those |
2021-12-05 15:49:40 +0100 | <Guest76> | thank you very much kuribas |
2021-12-05 15:49:47 +0100 | <Guest76> | thank you kennyd |
2021-12-05 15:49:48 +0100 | <kuribas> | Guest76: don't use that |
2021-12-05 15:50:00 +0100 | <Guest76> | dont use what sorry? |
2021-12-05 15:50:10 +0100 | <kuribas> | my example |
2021-12-05 15:50:33 +0100 | <Guest76> | yeah i am not going to or else i wont learn (y) |
2021-12-05 15:50:54 +0100 | <kennyd> | Guest76, if that is your end goal I'd create sublists directly instead of generating indices first |
2021-12-05 15:50:55 +0100 | <Guest76> | I appreciate your help and being patient with me |
2021-12-05 15:51:26 +0100 | desantra | (~skykanin@user/skykanin) (Quit: WeeChat 3.3) |
2021-12-05 15:51:26 +0100 | <Guest76> | kennyd thats what im going to do i think |
2021-12-05 15:51:41 +0100 | deadmarshal | (~deadmarsh@95.38.231.28) |
2021-12-05 15:51:53 +0100 | <Guest76> | i had a look on google turns out there are modules i can use but unfortunately we are not allowed to use anu |
2021-12-05 15:51:56 +0100 | <Guest76> | any |
2021-12-05 15:52:06 +0100 | <kennyd> | yeah |
2021-12-05 15:52:11 +0100 | jkaye | (~jkaye@2601:281:8300:7530:5a4f:5910:1ea1:e61f) |
2021-12-05 15:52:22 +0100 | <bbear100> | How can you use do notation in ghci ? |
2021-12-05 15:52:57 +0100 | <kennyd> | > splitOn "o" "hello world" |
2021-12-05 15:52:59 +0100 | <lambdabot> | ["hell"," w","rld"] |
2021-12-05 15:53:18 +0100 | <kennyd> | bbear100, you can use semicolons |
2021-12-05 15:53:20 +0100 | <Guest76> | yeah thats what i want but isnt that in a module |
2021-12-05 15:53:22 +0100 | <tomsmeding> | > do { x <- [1,2,3] ; y <- [4,5,6] ; return (x + y) } |
2021-12-05 15:53:24 +0100 | <lambdabot> | [5,6,7,6,7,8,7,8,9] |
2021-12-05 15:53:29 +0100 | <geekosaur> | bbear100, probably with braces. ghci has a multiline mode (two, actually) but it's painful |
2021-12-05 15:53:46 +0100 | <kennyd> | Guest76, it is |
2021-12-05 15:53:47 +0100 | <bbear100> | ok :+1: |
2021-12-05 15:53:59 +0100 | <geekosaur> | and just naïvely hitting return won't do what you want |
2021-12-05 15:54:08 +0100 | <kennyd> | Guest76, nevermind that, was just testing if it worked in lambdabot |
2021-12-05 15:54:14 +0100 | <Guest76> | going to have to create a function to do that then |
2021-12-05 15:54:15 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Quit: CiaoSen) |
2021-12-05 15:55:58 +0100 | <kennyd> | Guest76, your type would be countsplit :: Eq a => [a] -> a -> [[a]] |
2021-12-05 15:56:21 +0100 | deadmarshal | (~deadmarsh@95.38.231.28) (Ping timeout: 256 seconds) |
2021-12-05 15:56:25 +0100 | <Guest76> | why not [[Int]]? |
2021-12-05 15:57:13 +0100 | <kennyd> | ["hell"," w","rld"] is not [[Int]] |
2021-12-05 15:57:43 +0100 | <Guest76> | I want to make that into [4,2,3] as that will be how many characters are in each element |
2021-12-05 15:58:45 +0100 | <kennyd> | you don't need that step if the goal is to take "hello world" and 'o', and return ["hell"," w","rld"] |
2021-12-05 15:59:22 +0100 | <bbear100> | do you have the feeling that you do serious mental gymnastic when coding in haskell ? |
2021-12-05 15:59:53 +0100 | <bbear100> | I'd like to be a bit more comfortable with automatisms |
2021-12-05 16:00:06 +0100 | <Guest76> | I want [4,2,3] returned, ["hell"," w","rld"] is what the indexes of [4,2,3] will be from due to that being the length of each element of ["hell"," w","rld"] |
2021-12-05 16:00:50 +0100 | <kennyd> | Guest76, ok, then Eq a => [a] -> a -> [Int] |
2021-12-05 16:01:12 +0100 | xsperry | (~xs@user/xsperry) |
2021-12-05 16:01:31 +0100 | <bbear100> | map length ["hell"," w","rld"] ? |
2021-12-05 16:02:14 +0100 | <Guest76> | kennyd I had that before so thats good that i had the right idea |
2021-12-05 16:03:06 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 16:03:08 +0100 | <Guest76> | bbear100 Yeah I do sometimes lol, especially as im a beginner and that is what im trying to acheive yeah, just need to get that list from ["hello world"] 'o' now |
2021-12-05 16:03:23 +0100 | unyu | (~pyon@user/pyon) (Quit: WeeChat 3.3) |
2021-12-05 16:04:35 +0100 | unyu | (~pyon@user/pyon) |
2021-12-05 16:06:11 +0100 | xkuru | (~xkuru@user/xkuru) |
2021-12-05 16:06:19 +0100 | axeman | (~quassel@2a02:8109:a3c0:b10:91ce:4409:54:e379) |
2021-12-05 16:11:05 +0100 | <xsperry> | @hoogle Eq a => a -> [a] -> [Int] |
2021-12-05 16:11:06 +0100 | <lambdabot> | Data.List elemIndices :: Eq a => a -> [a] -> [Int] |
2021-12-05 16:11:06 +0100 | <lambdabot> | GHC.OldList elemIndices :: Eq a => a -> [a] -> [Int] |
2021-12-05 16:11:06 +0100 | <lambdabot> | BasePrelude elemIndices :: Eq a => a -> [a] -> [Int] |
2021-12-05 16:11:30 +0100 | <xsperry> | Data.List.elemIndices is in base, so you may be able to use it, if this is part of larger excercise |
2021-12-05 16:11:45 +0100 | kuribas | (~user@ptr-25vy0i87ls363spjkfx.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-12-05 16:11:55 +0100 | <xsperry> | > elemIndices 'o' "hello world" |
2021-12-05 16:11:56 +0100 | <lambdabot> | [4,7] |
2021-12-05 16:13:11 +0100 | <Guest76> | xsperry unfortunately it isn't, they specifically said that no modules are to be used at any point |
2021-12-05 16:13:21 +0100 | <bbear100> | why don't you write your own function? |
2021-12-05 16:13:27 +0100 | <Guest76> | thats what i am doing now haha |
2021-12-05 16:17:29 +0100 | genieliu | (~genieliu@111.193.167.10) (Ping timeout: 252 seconds) |
2021-12-05 16:17:44 +0100 | <bbear100> | using takeWhile and an accumulator for the length should work |
2021-12-05 16:19:05 +0100 | <kennyd> | > [ i | (i,x) <- zip [0..] "hello world", x=='o'] |
2021-12-05 16:19:07 +0100 | <lambdabot> | [4,7] |
2021-12-05 16:20:45 +0100 | <Guest76> | thanks for the help and explanations everyone going to give this a good go now (y) |
2021-12-05 16:21:08 +0100 | <kennyd> | neat solution that I, admittedly, stole from lambdabot :) |
2021-12-05 16:21:20 +0100 | <kennyd> | > zip [0..] "hello world" |
2021-12-05 16:21:21 +0100 | <lambdabot> | [(0,'h'),(1,'e'),(2,'l'),(3,'l'),(4,'o'),(5,' '),(6,'w'),(7,'o'),(8,'r'),(9,... |
2021-12-05 16:21:59 +0100 | <kennyd> | @src elemIndices |
2021-12-05 16:22:00 +0100 | <lambdabot> | elemIndices x = findIndices (x==) |
2021-12-05 16:22:03 +0100 | <kennyd> | @src findIndices |
2021-12-05 16:22:04 +0100 | <lambdabot> | findIndices p xs = [ i | (x,i) <- zip xs [0..], p x] |
2021-12-05 16:22:25 +0100 | Farzad | (~FarzadBek@37.98.106.33) (Ping timeout: 256 seconds) |
2021-12-05 16:23:21 +0100 | polezaivsani | (~polezaivs@orangeshoelaces.net) (Ping timeout: 252 seconds) |
2021-12-05 16:25:09 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 16:25:29 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 16:27:20 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 16:27:38 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 16:27:56 +0100 | hook54321 | (sid149355@user/hook54321) (Ping timeout: 252 seconds) |
2021-12-05 16:28:02 +0100 | taktoa[c] | (sid282096@id-282096.tinside.irccloud.com) (Ping timeout: 240 seconds) |
2021-12-05 16:29:28 +0100 | __monty__ | (~toonn@user/toonn) |
2021-12-05 16:29:37 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-05 16:30:38 +0100 | hook54321 | (sid149355@user/hook54321) |
2021-12-05 16:31:13 +0100 | taktoa[c] | (sid282096@id-282096.tinside.irccloud.com) |
2021-12-05 16:31:18 +0100 | gzj | (~GZJ0X@216.24.178.99.16clouds.com) |
2021-12-05 16:36:31 +0100 | son0p | (~ff@181.136.122.143) (Remote host closed the connection) |
2021-12-05 16:37:42 +0100 | gzj | (~GZJ0X@216.24.178.99.16clouds.com) (Remote host closed the connection) |
2021-12-05 16:41:47 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-12-05 16:42:59 +0100 | desantra | (~skykanin@user/skykanin) |
2021-12-05 16:44:06 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) |
2021-12-05 16:44:34 +0100 | <xsperry> | > [ i | (i,'o') <- zip [0..] "hello world"] |
2021-12-05 16:44:36 +0100 | <lambdabot> | [4,7] |
2021-12-05 16:47:15 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 16:47:17 +0100 | johnjay | (~pi@192.142.100.50) (Ping timeout: 256 seconds) |
2021-12-05 16:47:33 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 16:48:50 +0100 | johnjay | (~pi@154.6.152.74) |
2021-12-05 16:49:03 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-12-05 16:51:13 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 16:51:31 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 16:53:11 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 16:53:29 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 16:54:08 +0100 | cheater | (~Username@user/cheater) |
2021-12-05 16:54:16 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-12-05 16:55:17 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e52b:eca6:e736:3c6b) |
2021-12-05 16:55:59 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-05 16:57:05 +0100 | <bbear100> | > guestFoo :: String -> Char -> [Int] |
2021-12-05 16:57:05 +0100 | <bbear100> | guestFoo inputStr token = guestFoo' 0 inputStr token |
2021-12-05 16:57:06 +0100 | <bbear100> | where guestFoo' n (x:xs) token |
2021-12-05 16:57:06 +0100 | <bbear100> | | x == token = (n:(guestFoo' (n+1) xs token)) |
2021-12-05 16:57:07 +0100 | <lambdabot> | error: |
2021-12-05 16:57:07 +0100 | <lambdabot> | Variable not in scope: guestFoo :: String -> Char -> [Int] |
2021-12-05 16:57:07 +0100 | <bbear100> | | otherwise = guestFoo' (n+1) xs token |
2021-12-05 16:57:07 +0100 | <bbear100> | guestFoo' _ null = null |
2021-12-05 16:57:30 +0100 | <bbear100> | > guestFoo :: String -> Char -> [Int] |
2021-12-05 16:57:30 +0100 | <bbear100> | > guestFoo inputStr token = guestFoo' 0 inputStr token |
2021-12-05 16:57:31 +0100 | <bbear100> | > where guestFoo' n (x:xs) token |
2021-12-05 16:57:31 +0100 | <bbear100> | > | x == token = (n:(guestFoo' (n+1) xs token)) |
2021-12-05 16:57:31 +0100 | <lambdabot> | error: |
2021-12-05 16:57:31 +0100 | <lambdabot> | Variable not in scope: guestFoo :: String -> Char -> [Int] |
2021-12-05 16:57:32 +0100 | <bbear100> | > | otherwise = guestFoo' (n+1) xs token |
2021-12-05 16:57:32 +0100 | <lambdabot> | <hint>:1:25: error: parse error on input ‘=’ |
2021-12-05 16:57:32 +0100 | <bbear100> | > guestFoo' _ null = null |
2021-12-05 16:57:32 +0100 | <lambdabot> | <hint>:1:3: error: parse error on input ‘where’ |
2021-12-05 16:57:33 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-05 16:57:42 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) |
2021-12-05 16:58:03 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds) |
2021-12-05 16:58:09 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) |
2021-12-05 16:59:39 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e52b:eca6:e736:3c6b) (Ping timeout: 252 seconds) |
2021-12-05 17:02:39 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2021-12-05 17:04:21 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-12-05 17:05:25 +0100 | <bbear100> | Guest76 https://0bin.net/paste/1qYvulRI#Xu76HUnNZ88TgrVcjrmxhNwUL91uOvOIDqxA3ztb97J |
2021-12-05 17:05:47 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) |
2021-12-05 17:05:50 +0100 | bbear100 | (~bbear@2a01:e34:ec2b:d430:e0dd:e718:df68:1877) (Quit: Client closed) |
2021-12-05 17:07:36 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-05 17:07:52 +0100 | <gentauro> | `While building package network-3.1.1.1 (scroll up to its section to see the error)` :S |
2021-12-05 17:07:57 +0100 | Farzad | (~FarzadBek@185.212.51.70) |
2021-12-05 17:07:58 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-05 17:08:13 +0100 | <gentauro> | no `lsp-haskell` on the `apple m1` :( |
2021-12-05 17:09:01 +0100 | <gentauro> | I noticed that `stack` doesn't really care about `m1` unless you make an alias like: `stack='stack --arch=aarch64'` |
2021-12-05 17:10:08 +0100 | gentauro | even though I have added the `arch: aarch64` to `.stack/global-project/stack.yaml` |
2021-12-05 17:11:41 +0100 | <gentauro> | perhaps I should aim for building it for the `rosetta x64` and execute it with emulation |
2021-12-05 17:11:47 +0100 | <gentauro> | but, that would suck |
2021-12-05 17:11:54 +0100 | <gentauro> | all network "emulated" :-\ |
2021-12-05 17:14:31 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 245 seconds) |
2021-12-05 17:18:50 +0100 | Vajb | (~Vajb@nalkaylds2h97nzof-2.v6.elisa-mobile.fi) |
2021-12-05 17:20:16 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-12-05 17:23:58 +0100 | <maerwald> | gentauro: network package was fixed |
2021-12-05 17:25:30 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-05 17:26:14 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 17:26:55 +0100 | <maerwald> | https://hackage.haskell.org/package/network-3.1.2.5/changelog |
2021-12-05 17:28:22 +0100 | <EvanR> | Guest76, here's a helpful predefined list function |
2021-12-05 17:28:27 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-12-05 17:28:38 +0100 | <EvanR> | > span (=='o') "hello world" |
2021-12-05 17:28:39 +0100 | <lambdabot> | ("","hello world") |
2021-12-05 17:28:45 +0100 | <EvanR> | thonk |
2021-12-05 17:28:52 +0100 | <EvanR> | > span (/='o') "hello world" |
2021-12-05 17:28:54 +0100 | <lambdabot> | ("hell","o world") |
2021-12-05 17:28:59 +0100 | <EvanR> | > break (=='o') "hello world" |
2021-12-05 17:29:01 +0100 | <lambdabot> | ("hell","o world") |
2021-12-05 17:29:33 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-05 17:32:35 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 17:32:52 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 17:33:20 +0100 | connrs | (~connrs@user/connrs) (Read error: Connection reset by peer) |
2021-12-05 17:33:48 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Read error: Connection reset by peer) |
2021-12-05 17:34:46 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e52b:eca6:e736:3c6b) |
2021-12-05 17:35:53 +0100 | connrs | (~connrs@user/connrs) |
2021-12-05 17:36:17 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) |
2021-12-05 17:38:49 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 17:39:07 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 17:40:47 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 17:40:50 +0100 | hololeap_ | (~hololeap@user/hololeap) |
2021-12-05 17:41:05 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 17:41:15 +0100 | hololeap | (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
2021-12-05 17:41:38 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
2021-12-05 17:42:53 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:f767:b15a:e5b1:96f0) |
2021-12-05 17:43:44 +0100 | pgib | (~textual@173.38.117.87) |
2021-12-05 17:45:24 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 17:45:42 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 17:46:21 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-05 17:46:39 +0100 | neurocyte0132889 | (~neurocyte@94.46.79.27) |
2021-12-05 17:46:39 +0100 | neurocyte0132889 | (~neurocyte@94.46.79.27) (Changing host) |
2021-12-05 17:46:39 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-12-05 17:47:52 +0100 | Hanicef | (~gustaf@81-229-9-108-no92.tbcn.telia.com) |
2021-12-05 17:51:29 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-12-05 17:52:42 +0100 | notzmv | (~zmv@user/notzmv) |
2021-12-05 17:54:18 +0100 | desantra | (~skykanin@user/skykanin) (Read error: Connection reset by peer) |
2021-12-05 17:57:28 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-12-05 17:58:05 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-12-05 17:59:56 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-12-05 18:00:00 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-05 18:00:00 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-05 18:00:00 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-05 18:00:18 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-12-05 18:01:40 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-05 18:02:36 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-05 18:03:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-12-05 18:04:11 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 252 seconds) |
2021-12-05 18:05:00 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
2021-12-05 18:05:04 +0100 | deadmarshal | (~deadmarsh@95.38.231.28) |
2021-12-05 18:05:25 +0100 | sebeko | (uid530526@id-530526.helmsley.irccloud.com) |
2021-12-05 18:06:03 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds) |
2021-12-05 18:15:09 +0100 | tito | (tito@tilde.team) (Quit: WeeChat 3.2.1) |
2021-12-05 18:15:14 +0100 | renzhi | (~xp@2607:fa49:6500:b100::5cef) |
2021-12-05 18:16:27 +0100 | tito | (tito@tilde.team) |
2021-12-05 18:19:58 +0100 | <dsal> | Hey, someone fixed the compiler on my mac. Thanks, someone. |
2021-12-05 18:20:24 +0100 | <Franciman> | \o/ |
2021-12-05 18:20:26 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3) |
2021-12-05 18:20:39 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2021-12-05 18:21:09 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-12-05 18:23:14 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-05 18:28:06 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
2021-12-05 18:28:46 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2021-12-05 18:32:26 +0100 | <EvanR> | is your compiler running? |
2021-12-05 18:32:31 +0100 | <EvanR> | better catch it |
2021-12-05 18:32:47 +0100 | <juri_> | my compiler is too lazy to run. |
2021-12-05 18:33:43 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-05 18:33:53 +0100 | deadmarshal | (~deadmarsh@95.38.231.28) (Ping timeout: 256 seconds) |
2021-12-05 18:36:52 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 18:37:37 +0100 | econo | (uid147250@user/econo) |
2021-12-05 18:38:00 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-12-05 18:38:17 +0100 | axeman | (~quassel@2a02:8109:a3c0:b10:91ce:4409:54:e379) (Ping timeout: 252 seconds) |
2021-12-05 18:39:41 +0100 | <dsal> | I have no idea what my compiler is doing. Benchmarks are varying so wildly that it could be doing anything. |
2021-12-05 18:39:55 +0100 | <Franciman> | dsal: writing a compiler for your language? |
2021-12-05 18:40:47 +0100 | <dsal> | No, just doing AoC stuff. But when I try to speed something up, it just sort of goes random. |
2021-12-05 18:41:06 +0100 | <dsal> | Benchmarks I was running last night in 500ms are now taking 14s -- in code I didn't change. |
2021-12-05 18:41:19 +0100 | <dsal> | This didn't seem to change when I moved away from rosetta. |
2021-12-05 18:41:37 +0100 | <Franciman> | dsal: did you learn about STG machine? |
2021-12-05 18:41:39 +0100 | <Franciman> | et similia |
2021-12-05 18:41:58 +0100 | <Franciman> | this seems to help understanding what goes on |
2021-12-05 18:43:38 +0100 | <sebeko> | Was there a separate channel for haskell AoC? |
2021-12-05 18:44:46 +0100 | <dsal> | Franciman: Not sure what that is. |
2021-12-05 18:45:08 +0100 | <dsal> | It's getting voodoo for me, though. All I've done since last night was plugged my computer in and moved it to a different room. |
2021-12-05 18:45:21 +0100 | <Franciman> | if you speak italian, we are discussing them in #haskell-it-offtopic |
2021-12-05 18:45:37 +0100 | <Franciman> | same, dear dsal. same T.T |
2021-12-05 18:45:38 +0100 | <dsal> | I've since also shifted to a native compiler, but that doesn't seem to be an issue. |
2021-12-05 18:45:50 +0100 | <Franciman> | optimisation is _hard_ |
2021-12-05 18:46:53 +0100 | abccgr | (abccgr@117.194.180.165) |
2021-12-05 18:46:55 +0100 | <dsal> | I'd be fine if it were at least *consistent*. :) |
2021-12-05 18:46:59 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2021-12-05 18:46:59 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-12-05 18:46:59 +0100 | finn_elija | FinnElija |
2021-12-05 18:47:15 +0100 | <Franciman> | are you optimizing haskell, dsal ? |
2021-12-05 18:47:18 +0100 | <sebeko> | dsal: you can always try running on linux (say online) and see if it is at all caused by your machine |
2021-12-05 18:48:04 +0100 | <dsal> | I've got a thinkpad next to me. It seems way happier. |
2021-12-05 18:48:24 +0100 | <dsal> | Franciman: I was trying to, but doing it with inconsistent benchmarks is a really dumb idea. |
2021-12-05 18:49:04 +0100 | <dsal> | A few years ago, I was doing this and my (intel) mac was consistently faster than my Linux machine. |
2021-12-05 18:49:58 +0100 | <Franciman> | do you use criterion for getting some statistcal info |
2021-12-05 18:50:01 +0100 | <Franciman> | ? |
2021-12-05 18:50:39 +0100 | <dsal> | Yeah |
2021-12-05 18:50:48 +0100 | <Franciman> | i see |
2021-12-05 18:50:52 +0100 | <sebeko> | You could also bench functions separately to bisect the problem I think 🤔 |
2021-12-05 18:50:55 +0100 | <dsal> | But it's not subtle at all. |
2021-12-05 18:51:07 +0100 | <dsal> | Literally zero changes, went from 500ms to 13s |
2021-12-05 18:51:11 +0100 | <dsal> | ~14s |
2021-12-05 18:51:41 +0100 | <dsal> | The only thing that actually changed was plugging in my laptop. |
2021-12-05 18:51:56 +0100 | <dsal> | Switching compilers off of rosetta didn't help, but it didn't hurt, so... OK? |
2021-12-05 18:52:03 +0100 | <dsal> | But I'm going to stop thinking about this. :) |
2021-12-05 18:52:23 +0100 | <Franciman> | lol |
2021-12-05 18:52:26 +0100 | <Franciman> | awesum |
2021-12-05 18:52:27 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) (Quit: Leaving) |
2021-12-05 18:52:29 +0100 | <Franciman> | this may be a bug |
2021-12-05 18:52:41 +0100 | <sebeko> | When I was going crazy from something like this, the problem was I saved the file :D |
2021-12-05 18:52:50 +0100 | <Franciman> | lol |
2021-12-05 18:53:44 +0100 | <gentauro> | 17:26 < maerwald> https://hackage.haskell.org/package/network-3.1.2.5/changelog |
2021-12-05 18:54:05 +0100 | <gentauro> | maerwald: I have to jump on the GHC-901 wagon :o https://www.stackage.org/lts-18.18/package/network-3.1.1.1 |
2021-12-05 18:55:00 +0100 | <gentauro> | maerwald: might be the right thing to do as LTS is not really working properly on the M1 anyway xD |
2021-12-05 18:56:08 +0100 | <InternetCitizen> | if I want to use something like Megaparsec or attoparsec, do I have to use cabal/stack? |
2021-12-05 18:56:43 +0100 | <Franciman> | not necessarily, but it would be much easier yes |
2021-12-05 18:57:00 +0100 | <InternetCitizen> | I'm not too sure how Haskell dependency management works, I know I can just use stack but this is a simple AOC problem and I'd really like to simply compile my code with plain old GHC and a makefile |
2021-12-05 18:57:11 +0100 | <sebeko> | Have to? No I think there is ghc-pkg or something |
2021-12-05 18:57:36 +0100 | <sebeko> | Cabal has yaml files and is very easy to setup for aoc |
2021-12-05 18:57:59 +0100 | <sebeko> | there are even templates on reddit ;) |
2021-12-05 18:59:00 +0100 | <InternetCitizen> | I see, maybe I will just use Parsec |
2021-12-05 18:59:31 +0100 | <Franciman> | InternetCitizen: if you have cabal installed |
2021-12-05 18:59:50 +0100 | <Franciman> | cabal has a much lighter way than stack at getting you started in this case |
2021-12-05 19:00:07 +0100 | <Franciman> | the chief problem of not using cabal is that attoparsec and megaparsec have their dependencies |
2021-12-05 19:00:12 +0100 | <Franciman> | so you have to also compile them |
2021-12-05 19:00:45 +0100 | <Franciman> | of not using cabal/stack* |
2021-12-05 19:00:52 +0100 | <Franciman> | yeah parsec is a good tradeoff |
2021-12-05 19:04:26 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-12-05 19:04:57 +0100 | Vajb | (~Vajb@nalkaylds2h97nzof-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
2021-12-05 19:05:06 +0100 | hololeap_ | (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
2021-12-05 19:05:08 +0100 | <EvanR> | dsal, first, performance something that runs very quickly can be very sensitive to OS conditions. Like memory cache, i/o cache, other processes |
2021-12-05 19:05:55 +0100 | <EvanR> | second, to get a feel for what's happening you might want to accumulate a lot of samples and check mean and std deviation |
2021-12-05 19:05:57 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-05 19:06:11 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-12-05 19:06:38 +0100 | <EvanR> | I don't know how deterministic the GC is either |
2021-12-05 19:09:35 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) |
2021-12-05 19:10:21 +0100 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-12-05 19:11:38 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-12-05 19:12:06 +0100 | <dsal> | gentauro: I've mostly been having good luck with LTS on m1. This new machine has had a few oddities. |
2021-12-05 19:13:51 +0100 | axeman | (~quassel@2a02:8109:a3c0:b10:9fd2:9b38:d0eb:7d85) |
2021-12-05 19:14:09 +0100 | <dsal> | My problem seems to be some kind of linker madness. |
2021-12-05 19:14:57 +0100 | dhruvasagar | (~dhruvasag@49.207.222.205) |
2021-12-05 19:15:42 +0100 | <dsal> | If I roll back to an older version of my code before I added a new benchmark, I get ~400ms on this benchmark. |
2021-12-05 19:15:52 +0100 | <dsal> | Ha, then I rolled it forward and now it's ~600ms. |
2021-12-05 19:25:01 +0100 | deadmarshal | (~deadmarsh@95.38.231.28) |
2021-12-05 19:27:05 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 256 seconds) |
2021-12-05 19:27:53 +0100 | <janus> | InternetCitizen: if you use cabal/scripts or files, you can have each AoC day be self-contained. no need for separate configuration files |
2021-12-05 19:28:35 +0100 | <janus> | you just stick a header on each day speciying its dependencies, then cabal/stack can run it |
2021-12-05 19:29:06 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e52b:eca6:e736:3c6b) (Remote host closed the connection) |
2021-12-05 19:30:46 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 19:30:46 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 245 seconds) |
2021-12-05 19:31:03 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 19:31:38 +0100 | deadmarshal | (~deadmarsh@95.38.231.28) (Ping timeout: 252 seconds) |
2021-12-05 19:32:10 +0100 | Lycurgus | (~juan@98.4.112.204) |
2021-12-05 19:33:02 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2021-12-05 19:36:13 +0100 | notzmv | (~zmv@user/notzmv) |
2021-12-05 19:37:04 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) |
2021-12-05 19:39:07 +0100 | <EvanR> | "don't attempt to mutate vector after unsafeThaw unless you know how to prevent GHC from aliasing buffers accidentally. We don't" xD |
2021-12-05 19:39:58 +0100 | johnw | (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) |
2021-12-05 19:40:35 +0100 | <InternetCitizen> | janus: I'm not very familar with the header technique ... |
2021-12-05 19:40:42 +0100 | <InternetCitizen> | what does it onsist of? |
2021-12-05 19:41:19 +0100 | <janus> | InternetCitizen: look at https://cabal.readthedocs.io/en/latest/cabal-commands.html#cabal-v2-run and scroll down to "v2-run also supports running script files" |
2021-12-05 19:41:39 +0100 | <InternetCitizen> | thank you very much |
2021-12-05 19:42:05 +0100 | yauhsien | (~yauhsien@61-231-32-247.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
2021-12-05 19:43:48 +0100 | <EvanR> | it's pretty convenient, except for the initial delay to run the file |
2021-12-05 19:44:36 +0100 | <EvanR> | though when iterating AoC attempts you have to recompile and relink anyway |
2021-12-05 19:46:29 +0100 | jkaye | (~jkaye@2601:281:8300:7530:5a4f:5910:1ea1:e61f) (Ping timeout: 252 seconds) |
2021-12-05 19:47:01 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-12-05 19:47:57 +0100 | Lycurgus | (~juan@98.4.112.204) (Quit: Exeunt) |
2021-12-05 19:49:20 +0100 | mbuf | (~Shakthi@122.174.197.155) (Quit: Leaving) |
2021-12-05 19:49:47 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-12-05 19:51:27 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 19:51:45 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 19:52:08 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.3) |
2021-12-05 19:52:23 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-12-05 19:53:09 +0100 | <raehik> | Which of Nat and Natural should I use for easy type-level naturals? on Hackage it sounds like they've been merged recently, maybe? but there are Integer <-> Natural funcs but none for Nat |
2021-12-05 19:55:59 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 19:56:11 +0100 | bradparker | (sid262931@uxbridge.irccloud.com) (Read error: Connection reset by peer) |
2021-12-05 19:56:16 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 19:56:20 +0100 | bradparker | (sid262931@id-262931.uxbridge.irccloud.com) |
2021-12-05 19:59:55 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 20:00:13 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 20:00:21 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-05 20:01:03 +0100 | <awpr> | before the merge, `Natural` was not possible to use at type level. if you care about compatibility with GHC < 9.2, `Nat` is the only choice |
2021-12-05 20:01:30 +0100 | <awpr> | if you're writing an application that only needs to build with GHC 9.2+, there's no difference between the two (it's literally `type Nat = Natural` |
2021-12-05 20:02:18 +0100 | <awpr> | ah, it's been a few minutes, since that message, so I'll ping: raehik |
2021-12-05 20:02:46 +0100 | Cajun | (~Cajun@user/cajun) |
2021-12-05 20:02:59 +0100 | <raehik> | awpr: ahhhh. I see, it's because I hadn't actually being using Natural at the type level until now, just with datakinds |
2021-12-05 20:03:28 +0100 | <raehik> | ahhhh and it's because I'm on Stack GHC which isn't 9.2 yet >:( |
2021-12-05 20:04:01 +0100 | <awpr> | hmm, DataKinds is exactly about promoting term-level data to type level, so I don't understand the last message |
2021-12-05 20:04:57 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2021-12-05 20:05:39 +0100 | <awpr> | hmm... GHC 8.6.5 actually accepts using `Natural` as a kind. but maybe it's impossible to construct a type-level thing of that kind? |
2021-12-05 20:05:48 +0100 | <raehik> | ah sry I mean typefamilies then. I wasn't putting Naturals in the type level but they got returned by a type family, and I had slightly confused myself |
2021-12-05 20:06:20 +0100 | <raehik> | and just now yeah, I used it as a kind. but as you say, hadn't tried constructed a type level one |
2021-12-05 20:06:48 +0100 | <awpr> | ah right, indeed that wouldn't have required the unified Nat/Natural yet |
2021-12-05 20:07:23 +0100 | max22- | (~maxime@2a01cb0883359800ca908bdf23b4cd25.ipv6.abo.wanadoo.fr) (Ping timeout: 252 seconds) |
2021-12-05 20:08:35 +0100 | <raehik> | so I'll use Natural everywhere I can, and Nat for while I can't upgrade to GHC 9.2. until Stackage moves their nightlies |
2021-12-05 20:08:38 +0100 | <raehik> | thx awpr ! |
2021-12-05 20:09:46 +0100 | axeman | (~quassel@2a02:8109:a3c0:b10:9fd2:9b38:d0eb:7d85) (Quit: No Ping reply in 180 seconds.) |
2021-12-05 20:10:18 +0100 | <awpr> | yeah, the only thing I know of that this unification _really_ changes is the ability to use the same definition for term and type level: `data Thing = Thing Natural` pre-unification can't be promoted usefully, it'd have to be `data Thing a = Thing a` and `type TermThing = Thing Natural` and `type TypeThing = Thing Nat` to treat them differently |
2021-12-05 20:10:31 +0100 | ss4 | (~wootehfoo@user/wootehfoot) |
2021-12-05 20:11:00 +0100 | <awpr> | so if you don't need to do that very specific thing, I think it shouldn't affect you and you should be fine just using `Nat` for type-level and `Natural` for term-level |
2021-12-05 20:11:01 +0100 | axeman | (~quassel@2a02:8109:a3c0:b10:c575:40eb:1f86:4317) |
2021-12-05 20:11:05 +0100 | AlexNoo_ | (~AlexNoo@178.34.151.83) |
2021-12-05 20:11:07 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-12-05 20:11:26 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2021-12-05 20:11:28 +0100 | FarzadBekran_ | (~FarzadBek@185.212.51.70) |
2021-12-05 20:11:44 +0100 | <raehik> | what do you mean by promotion - is that something GHC can do? (I only know that from singletons) |
2021-12-05 20:12:25 +0100 | <awpr> | promotion is the term for what DataKinds enables: if `data Thing = MkThing`, then `x :: Proxy MkThing` uses the promoted data constructor `MkThing` |
2021-12-05 20:12:43 +0100 | Techcable | (~Techcable@168.235.93.147) (Quit: ZNC - https://znc.in) |
2021-12-05 20:12:56 +0100 | Techcable_ | (~Techcable@168.235.93.147) |
2021-12-05 20:13:03 +0100 | <janus> | i think you can use stack with newer compilers, you just have to put extra-deps for every single dep that is broken in the snapshot you use |
2021-12-05 20:13:33 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Ping timeout: 256 seconds) |
2021-12-05 20:14:04 +0100 | <awpr> | (there isn't any built-in promotion of normal functions, only data constructors) |
2021-12-05 20:14:26 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 256 seconds) |
2021-12-05 20:14:40 +0100 | AlexNoo | (~AlexNoo@178.34.151.83) (Ping timeout: 256 seconds) |
2021-12-05 20:14:41 +0100 | <awpr> | re janus yes, I've built all the packages I maintain under Stack with 9.2, with a moderate amount of effort in manually fiddling with dependencies |
2021-12-05 20:15:00 +0100 | <awpr> | so it's definitely possible if you really must have new features for any reason |
2021-12-05 20:15:07 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-05 20:15:49 +0100 | Farzad | (~FarzadBek@185.212.51.70) (Ping timeout: 256 seconds) |
2021-12-05 20:19:29 +0100 | pgib | (~textual@173.38.117.87) (Ping timeout: 252 seconds) |
2021-12-05 20:21:09 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-12-05 20:26:33 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 20:26:51 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 20:28:31 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 20:28:48 +0100 | abccgr | (abccgr@117.194.180.165) (Remote host closed the connection) |
2021-12-05 20:28:49 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 20:29:30 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e52b:eca6:e736:3c6b) |
2021-12-05 20:31:55 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) |
2021-12-05 20:32:03 +0100 | thevishy | (~Nishant@2405:201:f005:c007:fd4c:a570:99e4:8844) (Quit: Leaving) |
2021-12-05 20:32:29 +0100 | max22- | (~maxime@2a01cb08833598006b46964008321399.ipv6.abo.wanadoo.fr) |
2021-12-05 20:33:32 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e52b:eca6:e736:3c6b) (Ping timeout: 240 seconds) |
2021-12-05 20:34:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-12-05 20:37:09 +0100 | <janus> | how do i find out which package a symbol is exported from? |
2021-12-05 20:37:46 +0100 | <janus> | when i do ":t (.:)" it says aeson, but i believe that the symbol is reexported from another library, because i didn't do ":m +Data.Aeson" |
2021-12-05 20:39:39 +0100 | <boxscape> | janus: maybe try misspelling it, ghc might suggest the correct spelling along with where it's imported from |
2021-12-05 20:40:26 +0100 | <boxscape> | % joiin -- example |
2021-12-05 20:40:26 +0100 | <yahb> | boxscape: ; <interactive>:14:1: error:; * Variable not in scope: joiin; * Perhaps you meant `join' (imported from Control.Monad) |
2021-12-05 20:41:24 +0100 | <dmj`> | janus: you can use PackageImports to be explicit about it, import "base" Control.Monad (forM_) |
2021-12-05 20:42:26 +0100 | <boxscape> | (also if ghc finds that something is a valid holefit it will also say from where it's imported) |
2021-12-05 20:48:29 +0100 | jkaye | (~jkaye@2601:281:8300:7530:3bdb:266b:f9cc:b3bc) |
2021-12-05 20:49:43 +0100 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Read error: Connection reset by peer) |
2021-12-05 20:50:21 +0100 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2021-12-05 20:50:39 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-12-05 20:52:58 +0100 | <__monty__> | Is there a function like enumFromTo/([x..y]) but that does descending ranges too without resorting to enumFromThenTo? |
2021-12-05 20:53:32 +0100 | <__monty__> | I mean, without explicitly doing so, if the function internally uses enumFromThenTo, that's fine. |
2021-12-05 20:54:50 +0100 | <pragma-> | the full monty |
2021-12-05 20:54:52 +0100 | <tomsmeding> | enumImplicitFromTo x y = if y < x then enumFromThenTo x (x - 1) y else enumFromTo x y |
2021-12-05 20:55:03 +0100 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 252 seconds) |
2021-12-05 20:55:26 +0100 | gentauro | `You are using snapshot: nightly-2021-12-04` |
2021-12-05 20:55:29 +0100 | gentauro | `stack ghci` |
2021-12-05 20:55:46 +0100 | gentauro | `ghci> /private/tmp/nix-shell-96787-0/rc: line 3: 96791 Segmentation fault: 11 '/usr/local/bin/stack' $STACK_IN_NIX_EXTRA_ARGS '--internal-re-exec-version=2.7.3' '--arch=aarch64' 'ghci'` |
2021-12-05 20:55:50 +0100 | <gentauro> | LEL |
2021-12-05 20:55:57 +0100 | <gentauro> | I guess it's a no HaskLEL on the M1 .. |
2021-12-05 20:56:44 +0100 | <gentauro> | why can't Levondo deliver laptops like in a timely manner? (end of Q1 2022 / start Q2 2022) #firstworldproblems |
2021-12-05 20:57:02 +0100 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
2021-12-05 20:57:16 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-12-05 20:57:17 +0100 | <__monty__> | tomsmeding: I know the implementation is very simple, just seems like a silly thing to need to implement. I'd probably do reverse [y..x] though, doesn't rely on them being Num per se : ) |
2021-12-05 20:57:48 +0100 | Hanicef | (~gustaf@81-229-9-108-no92.tbcn.telia.com) (Quit: leaving) |
2021-12-05 20:58:12 +0100 | <monochrom> | It also relies on Ord. "y<x" |
2021-12-05 20:58:36 +0100 | <tomsmeding> | __monty__: right, 'pred x' is better than 'x - 1' |
2021-12-05 20:58:51 +0100 | <monochrom> | After a while, you realize that it relies on so many externalities, you begin to appreciate how, at least, it doesn't belong in Enum. |
2021-12-05 20:58:52 +0100 | <tomsmeding> | reduces constraints from Num+Ord+Enum to Ord+Enum |
2021-12-05 20:58:57 +0100 | <EvanR> | reverse destroys your laziness |
2021-12-05 21:01:19 +0100 | <EvanR> | > [0 % 1 .. 5 % 1] |
2021-12-05 21:01:21 +0100 | <lambdabot> | [0 % 1,1 % 1,2 % 1,3 % 1,4 % 1,5 % 1] |
2021-12-05 21:01:26 +0100 | <EvanR> | > [0 % 2 .. 5 % 2] |
2021-12-05 21:01:28 +0100 | <lambdabot> | [0 % 1,1 % 1,2 % 1,3 % 1] |
2021-12-05 21:01:45 +0100 | <EvanR> | what is 'Enum' supposed to be anyway xD |
2021-12-05 21:01:58 +0100 | <tomsmeding> | isn't that like the prime complaint about the class |
2021-12-05 21:02:01 +0100 | <tomsmeding> | that the semantics are unclear |
2021-12-05 21:02:15 +0100 | <tomsmeding> | > [1.2 .. 4.5] |
2021-12-05 21:02:16 +0100 | <lambdabot> | [1.2,2.2,3.2,4.2] |
2021-12-05 21:02:33 +0100 | <tomsmeding> | at least Ratio's implementation is consistent with Double's |
2021-12-05 21:03:15 +0100 | <EvanR> | > [0/2 .. 5/2] |
2021-12-05 21:03:17 +0100 | <lambdabot> | [0.0,1.0,2.0,3.0] |
2021-12-05 21:03:22 +0100 | <tomsmeding> | wait wat |
2021-12-05 21:03:22 +0100 | <EvanR> | overshoot |
2021-12-05 21:03:29 +0100 | <tomsmeding> | ok the overshoot is consistent |
2021-12-05 21:03:31 +0100 | <tomsmeding> | but wat |
2021-12-05 21:03:47 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) (Remote host closed the connection) |
2021-12-05 21:04:09 +0100 | <EvanR> | "I'm going to add 1 and you can't stop me!!!" |
2021-12-05 21:04:59 +0100 | <tomsmeding> | > ([1.0 .. 3.4], [1.0 .. 3.6]) |
2021-12-05 21:05:01 +0100 | <lambdabot> | ([1.0,2.0,3.0],[1.0,2.0,3.0,4.0]) |
2021-12-05 21:05:05 +0100 | <tomsmeding> | why does it round |
2021-12-05 21:05:08 +0100 | <tomsmeding> | that makes no sense at all |
2021-12-05 21:05:11 +0100 | juhp | (~juhp@128.106.188.82) (Ping timeout: 256 seconds) |
2021-12-05 21:05:26 +0100 | <EvanR> | oof |
2021-12-05 21:06:05 +0100 | <tomsmeding> | I'm still not quite convinced the Enum class is useless as a whole, but that Double instance is just plain madness |
2021-12-05 21:06:32 +0100 | <c_wraith> | I still believe the only correct instance for Float and Double counts the number of ulps you increment by |
2021-12-05 21:06:40 +0100 | <__monty__> | tomsmeding: Right, that's even better. |
2021-12-05 21:06:47 +0100 | juhp | (~juhp@128.106.188.82) |
2021-12-05 21:06:59 +0100 | sprout_ | (~quassel@2a02:a467:ccd6:1:bde9:c3fb:c9c:3dee) |
2021-12-05 21:06:59 +0100 | <c_wraith> | No one would ever use it then, because it would be obviously wrong for their case, instead of non-obviously wrong |
2021-12-05 21:07:27 +0100 | <__monty__> | monochrom: Didn't say it belongs in Enum. Just the kind of relatively common thing I'd expect in a common (probably base) library. |
2021-12-05 21:07:34 +0100 | <EvanR> | something about a functor from category of reals to category of integers wrt ordering |
2021-12-05 21:08:11 +0100 | <EvanR> | nvm lol |
2021-12-05 21:08:33 +0100 | <tomsmeding> | what are the objects and morphisms in a category of integers :p |
2021-12-05 21:09:01 +0100 | <EvanR> | (objects are integers, x < y would be a morphism if it were true |
2021-12-05 21:10:10 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:9dad:b7eb:58e3:98e6) |
2021-12-05 21:10:15 +0100 | <EvanR> | if someone said give me an mapping from Int to Double, that might leaves some questions. |
2021-12-05 21:10:31 +0100 | <tomsmeding> | EvanR: https://ncatlab.org/nlab/show/partial+order#AsACategoryWithExtraProperties |
2021-12-05 21:10:32 +0100 | <EvanR> | (an injective mapping) |
2021-12-05 21:10:38 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:ed9e:6da6:fee6:2db6) (Ping timeout: 252 seconds) |
2021-12-05 21:12:18 +0100 | <EvanR> | > toEnum 50 :: Float |
2021-12-05 21:12:19 +0100 | <lambdabot> | 50.0 |
2021-12-05 21:12:31 +0100 | <EvanR> | > toEnum 500000000 :: Float |
2021-12-05 21:12:32 +0100 | <lambdabot> | 5.0e8 |
2021-12-05 21:12:37 +0100 | <EvanR> | come on.. |
2021-12-05 21:13:13 +0100 | <EvanR> | > toEnum (maxBound `div` 2) :: Float |
2021-12-05 21:13:14 +0100 | <lambdabot> | 4.611686e18 |
2021-12-05 21:13:23 +0100 | <EvanR> | > maxBound `div` 2 |
2021-12-05 21:13:24 +0100 | <lambdabot> | error: |
2021-12-05 21:13:24 +0100 | <lambdabot> | • Ambiguous type variable ‘a0’ arising from a use of ‘show_M806950334028... |
2021-12-05 21:13:24 +0100 | <lambdabot> | prevents the constraint ‘(Show a0)’ from being solved. |
2021-12-05 21:13:25 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2021-12-05 21:13:29 +0100 | <EvanR> | > maxBound `div` 2 :: Int |
2021-12-05 21:13:30 +0100 | <lambdabot> | 4611686018427387903 |
2021-12-05 21:13:40 +0100 | <EvanR> | look look it's wrong! |
2021-12-05 21:15:18 +0100 | <EvanR> | I guess you can think of it as a fuzzy or noisy association between Int and floats |
2021-12-05 21:16:06 +0100 | <EvanR> | the farther you go the worse it gets like a hyperbolic plane |
2021-12-05 21:18:15 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:9dad:b7eb:58e3:98e6) (Quit: gone to sleep. ZZZzzz…) |
2021-12-05 21:18:39 +0100 | <tomsmeding> | > fromEnum (toEnum 10000000000000000 :: Float) -- EvanR possibly clearer example |
2021-12-05 21:18:40 +0100 | <lambdabot> | 10000000272564224 |
2021-12-05 21:19:19 +0100 | sm[i]_ | sm[i] |
2021-12-05 21:19:20 +0100 | sm[i] | (~user@li229-222.members.linode.com) (Changing host) |
2021-12-05 21:19:20 +0100 | sm[i] | (~user@plaintextaccounting/sm) |
2021-12-05 21:19:56 +0100 | <tomsmeding> | injective mapping from Int64 to either Float or Double would be impossible by the pigeonhole principle, and the fact that 0.0 == -0.0 :p |
2021-12-05 21:21:05 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:e52b:eca6:e736:3c6b) |
2021-12-05 21:21:14 +0100 | <EvanR> | > show (100 * (10000000272564224 - 10000000000000000) % 10000000000000000) ++ "%" |
2021-12-05 21:21:16 +0100 | <lambdabot> | "16636 % 6103515625%" |
2021-12-05 21:21:20 +0100 | <EvanR> | close enough xD |
2021-12-05 21:22:13 +0100 | <EvanR> | > showFFloat (Just 9) (16636/6103515625) "" |
2021-12-05 21:22:15 +0100 | <lambdabot> | "0.000002726" |
2021-12-05 21:22:34 +0100 | <tomsmeding> | you can kind of see that from the numbers already :p |
2021-12-05 21:22:43 +0100 | <EvanR> | lol |
2021-12-05 21:22:44 +0100 | <tomsmeding> | point of it being a power of 10 |
2021-12-05 21:23:16 +0100 | <EvanR> | morally injective |
2021-12-05 21:24:12 +0100 | <Profpatsch> | How do we know any of the streaming/Bundle stuff in the implementation of Vector actually does anything? |
2021-12-05 21:24:14 +0100 | <tomsmeding> | > fromEnum (toEnum 8000000000000000001 :: Double) |
2021-12-05 21:24:16 +0100 | <lambdabot> | 8000000000000000000 |
2021-12-05 21:24:19 +0100 | <EvanR> | pigeonhole though? there are 2^64 Int64s, but less than that Doubles |
2021-12-05 21:24:27 +0100 | <EvanR> | oh I see |
2021-12-05 21:24:34 +0100 | <Profpatsch> | There’s a lot of undocumented magic that seems to be hoping that fusion happens |
2021-12-05 21:24:35 +0100 | <tomsmeding> | EvanR: Double is a 64 bit value :p |
2021-12-05 21:24:50 +0100 | <EvanR> | a lot of values are reserved and don't represent numbers |
2021-12-05 21:25:08 +0100 | <EvanR> | to be exploited for fun and profit |
2021-12-05 21:25:10 +0100 | <Profpatsch> | How would I verify it actually does something as pertaining to speed? |
2021-12-05 21:25:14 +0100 | <tomsmeding> | Profpatsch: you might want to try the -ddump-rule-firings option to GHC |
2021-12-05 21:25:45 +0100 | <Profpatsch> | But e.g. aeson returns a Vector from its Array type |
2021-12-05 21:25:57 +0100 | <tomsmeding> | and perhaps -fno-enable-rewrite-rules to compare |
2021-12-05 21:26:12 +0100 | <Profpatsch> | Now, looking at its code |
2021-12-05 21:26:14 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-05 21:26:26 +0100 | <tomsmeding> | https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/exts/rewrite_rules.html?highlight=… |
2021-12-05 21:26:46 +0100 | <Profpatsch> | https://hackage.haskell.org/package/aeson-2.0.2.0/docs/src/Data.Aeson.Parser.Internal.html#arrayVa… |
2021-12-05 21:27:15 +0100 | <Profpatsch> | It *still* constructs a list, then converts it to a Vector (O(n)), then reverses the vector (O(n) again) |
2021-12-05 21:27:38 +0100 | <Profpatsch> | And then the question remains whether the underlying data is actually garbage collected in the end |
2021-12-05 21:28:06 +0100 | <Profpatsch> | It does pass the length to the list to the vector library |
2021-12-05 21:28:17 +0100 | <tomsmeding> | Profpatsch: I would bet that reverse . fromListN is getting fused -- that's kind of the point of the rules. But try -ddump-rule-rewrites. |
2021-12-05 21:28:19 +0100 | <Profpatsch> | But god knows what the performance improvementes of that are |
2021-12-05 21:28:20 +0100 | <EvanR> | yeah, does aeson's parser depend on the input bytestring later, or is everything copies out |
2021-12-05 21:28:30 +0100 | <EvanR> | copied |
2021-12-05 21:28:33 +0100 | <Profpatsch> | vector certainly doesn’t document it |
2021-12-05 21:28:39 +0100 | <tomsmeding> | and see the docs page I linked |
2021-12-05 21:29:40 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) |
2021-12-05 21:29:44 +0100 | <EvanR> | I guess it can't really use the input string directly because of string escapes |
2021-12-05 21:29:44 +0100 | <Profpatsch> | tomsmeding: thing is, I know how rewrite rules work roundabout. But I don’t trust whether Vector actually works as advertised |
2021-12-05 21:29:51 +0100 | <tomsmeding> | then check :p |
2021-12-05 21:29:53 +0100 | <Profpatsch> | And even then it doesn’t document anything |
2021-12-05 21:30:08 +0100 | <EvanR> | even if it did document stuff having a way to verify is good lol |
2021-12-05 21:30:45 +0100 | <Profpatsch> | like, as far as I can see vector has like 10 benchmarks |
2021-12-05 21:31:02 +0100 | <Profpatsch> | So what does that tell me |
2021-12-05 21:31:09 +0100 | <Profpatsch> | lol https://github.com/haskell/vector/issues/229 |
2021-12-05 21:31:12 +0100 | <tomsmeding> | and if you checked and you found something interesting, that may be a good opportunity for a PR to vector :) |
2021-12-05 21:32:13 +0100 | <Profpatsch> | I just can’t build any trust in such a fundamental library |
2021-12-05 21:32:39 +0100 | <Profpatsch> | So I won’t use it because stuff is advertised but there’s no way to use it without falling down a rabbit hole |
2021-12-05 21:33:00 +0100 | <EvanR> | I'm using vector right now for audio and no rabbit hole |
2021-12-05 21:33:13 +0100 | <EvanR> | (because not having any performance problems yet) |
2021-12-05 21:33:36 +0100 | <Profpatsch> | e.g. with Vec in rust I can be sure that it’s optimized to death |
2021-12-05 21:33:51 +0100 | <Profpatsch> | And the performance will be pretty obvious and is documented liberally |
2021-12-05 21:34:30 +0100 | <EvanR> | in general using haskell and caring about the compiled code at the same time is a step up in effort |
2021-12-05 21:34:46 +0100 | <tomsmeding> | Profpatsch: is the purpose of you talking about this here, trying to get someone to do something about it? Or something else? |
2021-12-05 21:37:23 +0100 | <tomsmeding> | also, something else: you note the reverse . fromListN pattern in aeson. Did you notice that this is a (potential) problem in a benchmark? Or is this premature optimisation? ;) |
2021-12-05 21:37:42 +0100 | <tomsmeding> | though I'm all for premature optimisation if it's fun |
2021-12-05 21:37:50 +0100 | <Profpatsch> | tomsmeding: No, just trying to figure out whether I should use Vector for a parser I’m writing |
2021-12-05 21:38:00 +0100 | <tomsmeding> | instead of? |
2021-12-05 21:38:42 +0100 | <Profpatsch> | Just returning a []. And going down the rabbit hole of checking how aeson does it, and figuring out that everything is kinda undocumented and it’s not easy to see why things are done |
2021-12-05 21:39:09 +0100 | <tomsmeding> | as in, you're parsing a list value? |
2021-12-05 21:39:44 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) (Remote host closed the connection) |
2021-12-05 21:39:48 +0100 | <Profpatsch> | For example https://github.com/haskell/aeson/commit/2f24e555d86a36fdda6d4cad79976004b382ab3b |
2021-12-05 21:39:55 +0100 | <Profpatsch> | This is a commit touching the aeson parser liberally |
2021-12-05 21:40:12 +0100 | <tomsmeding> | I think that depends a lot on how you're parsing that value and how you're going to use the value. If you know in advance how long the list is going to be, and it's going to be kept around / accessed randomly, go for vector for sure, regardless of whether the fusion rules actually do anything or not |
2021-12-05 21:40:13 +0100 | <Profpatsch> | with no commit description |
2021-12-05 21:40:16 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) |
2021-12-05 21:40:18 +0100 | VoidNoir0 | (~VoidNoir0@72.80.203.52) |
2021-12-05 21:40:35 +0100 | <Profpatsch> | which introduces the change to how Vector is used |
2021-12-05 21:40:51 +0100 | <tomsmeding> | if you don't know the length in advance, you can't do much better than returning a list, perhaps postfixed with a fromList -- but that doesn't need to be done by your parser |
2021-12-05 21:40:58 +0100 | <Profpatsch> | I guess I’m just complaining how shitty the code quality of even very basic libraries is |
2021-12-05 21:41:04 +0100 | <tomsmeding> | but that all assumes your parser is building the list trivially by consing |
2021-12-05 21:41:25 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2021-12-05 21:41:55 +0100 | <tomsmeding> | Profpatsch: "shitty" is kind of unkind to the people that do the hard work. :) I do agree that more documentation about performance, and investigation into performance, would be quite beneficial. |
2021-12-05 21:42:08 +0100 | <Profpatsch> | So what I gather is that if I have a sequence of a known list, I should use Vector |
2021-12-05 21:42:14 +0100 | <tomsmeding> | But I'm 100% sure this is because of a lack of manpower |
2021-12-05 21:42:16 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) (Remote host closed the connection) |
2021-12-05 21:42:24 +0100 | <Profpatsch> | tomsmeding: No, sorry, if you do a major change to a base library, you better document what you are doing. |
2021-12-05 21:42:27 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) |
2021-12-05 21:42:29 +0100 | <Profpatsch> | Otherwise it’s just shitty code. |
2021-12-05 21:42:38 +0100 | <EvanR> | oh man, X Y problems |
2021-12-05 21:43:03 +0100 | <EvanR> | you can't figure out how to write a parser so the library vector sucks xD |
2021-12-05 21:43:05 +0100 | <tomsmeding> | Profpatsch: if you have a sequence of known length, and you're going to do more to it than just traverse it once |
2021-12-05 21:43:20 +0100 | <tomsmeding> | and it's long |
2021-12-05 21:43:25 +0100 | <tomsmeding> | if it's short then it doesn't matter anyway |
2021-12-05 21:43:38 +0100 | <c_wraith> | Profpatsch: ? that change is pretty obvious. take advantage of known lengths, move the bytestring unescaping to C |
2021-12-05 21:44:05 +0100 | <c_wraith> | Profpatsch: it's just a performance tweak. |
2021-12-05 21:44:15 +0100 | <c_wraith> | Profpatsch: and that's what the patch description says |
2021-12-05 21:45:10 +0100 | <tomsmeding> | Profpatsch: and note that these considerations that I gave are still independent on whether vector's fusion rules actually do anything :) |
2021-12-05 21:45:30 +0100 | <Profpatsch> | I’m not going to argue about this lol, I just think we should do better. |
2021-12-05 21:45:53 +0100 | <tomsmeding> | "we" should indeed. And someone's gotta pay for that -- either with money or with time |
2021-12-05 21:45:55 +0100 | <Profpatsch> | Take that as you will |
2021-12-05 21:46:14 +0100 | <tomsmeding> | and people are hard at work at fixing that, not least at the Haskell Foundation :) |
2021-12-05 21:46:49 +0100 | <c_wraith> | I mean, I don't see anything bad here. Maybe it's not utopian, but it's better than average. |
2021-12-05 21:47:06 +0100 | <c_wraith> | And I don't mean average for Haskell. I mean average for software development. |
2021-12-05 21:47:21 +0100 | <dsal> | aeson does seem to be quite near the most popular library on hackage, but it would be nice if they used the tools a bit better. |
2021-12-05 21:49:10 +0100 | pfurla | (~pfurla@201.17.118.230) |
2021-12-05 21:52:07 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 21:52:25 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 21:56:04 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-05 21:56:15 +0100 | azimut_ | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2021-12-05 21:56:36 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) |
2021-12-05 21:56:41 +0100 | Codaraxis | (~Codaraxis@user/codaraxis) (Ping timeout: 256 seconds) |
2021-12-05 21:56:59 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2021-12-05 21:56:59 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) (Remote host closed the connection) |
2021-12-05 21:58:39 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 21:58:57 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 21:58:58 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e180970d7f4a6232670.dip0.t-ipconnect.de) |
2021-12-05 22:01:17 +0100 | burnsidesLlama | (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2021-12-05 22:05:34 +0100 | zincy_ | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
2021-12-05 22:06:11 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-12-05 22:07:51 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 22:08:08 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 22:09:04 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) |
2021-12-05 22:10:25 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) (Remote host closed the connection) |
2021-12-05 22:10:41 +0100 | imdoor | (~imdoor@balticom-142-78-50.balticom.lv) (Remote host closed the connection) |
2021-12-05 22:11:49 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) |
2021-12-05 22:13:31 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
2021-12-05 22:13:52 +0100 | axeman | (~quassel@2a02:8109:a3c0:b10:c575:40eb:1f86:4317) (Remote host closed the connection) |
2021-12-05 22:14:31 +0100 | sayola | (~vekto@dslb-092-072-095-186.092.072.pools.vodafone-ip.de) (Ping timeout: 245 seconds) |
2021-12-05 22:14:34 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-05 22:14:55 +0100 | <boxscape> | How do I include newlines in a CPP pragma? |
2021-12-05 22:15:37 +0100 | zincy_ | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Remote host closed the connection) |
2021-12-05 22:15:38 +0100 | <boxscape> | s/pragma/macro |
2021-12-05 22:15:51 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) |
2021-12-05 22:16:26 +0100 | <boxscape> | Wait I think I remember now |
2021-12-05 22:16:32 +0100 | <boxscape> | it's not possible and you have to work around it with {;} |
2021-12-05 22:16:57 +0100 | sayola | (~vekto@dslb-092-072-095-186.092.072.pools.vodafone-ip.de) |
2021-12-05 22:17:44 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-12-05 22:18:44 +0100 | <tomsmeding> | yeah impossible, that's also a thing in C |
2021-12-05 22:19:11 +0100 | <boxscape> | okay, thanks for confirming |
2021-12-05 22:19:26 +0100 | <tomsmeding> | though in C there's IIRC nothing that needs actual hard newlines, except CPP macros, which you can't generate from CPP macros anyway :) |
2021-12-05 22:19:35 +0100 | <boxscape> | right, good point |
2021-12-05 22:19:54 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) (Remote host closed the connection) |
2021-12-05 22:19:55 +0100 | FarzadBekran_ | (~FarzadBek@185.212.51.70) (Remote host closed the connection) |
2021-12-05 22:20:41 +0100 | <boxscape> | :/ I can't use a macro here anyway because recursion is not allowed |
2021-12-05 22:20:59 +0100 | cjb | (~cjb@user/cjb) |
2021-12-05 22:21:04 +0100 | <tomsmeding> | just iterate the preprocessor over your file! |
2021-12-05 22:21:13 +0100 | <tomsmeding> | then it becomes turing complete :) |
2021-12-05 22:21:17 +0100 | <tomsmeding> | also: templatehaskell |
2021-12-05 22:21:42 +0100 | <boxscape> | TH seems like too much effort |
2021-12-05 22:21:49 +0100 | <tomsmeding> | can relate |
2021-12-05 22:22:10 +0100 | <boxscape> | realistically there should be a way to just use a regular Haskell function to remove the code duplication here, but I can't figure it out https://paste.tomsmeding.com/ei7jlZip |
2021-12-05 22:22:38 +0100 | <c_wraith> | the duplication in the instances? |
2021-12-05 22:22:48 +0100 | <boxscape> | no, in genericEscape and genericUnescape |
2021-12-05 22:22:55 +0100 | <boxscape> | I'm trying to combine them into one function |
2021-12-05 22:23:02 +0100 | <boxscape> | main problem is I need (Typeable (Parsed a)) or (Typeable a) in the local function, and I can't get that if I don't know which one of them I need |
2021-12-05 22:23:13 +0100 | <c_wraith> | because the instances have some unnecessary code duplication in them. :P |
2021-12-05 22:23:36 +0100 | <boxscape> | yeah, that's because they are simplified here :) |
2021-12-05 22:23:42 +0100 | <boxscape> | they don't have any duplication in the actual code |
2021-12-05 22:24:55 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) |
2021-12-05 22:25:06 +0100 | <boxscape> | though I've only tried combining the two on the actual code, I should probably try it on the simplified code |
2021-12-05 22:25:14 +0100 | cosimone | (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Quit: ERC (IRC client for Emacs 27.1)) |
2021-12-05 22:25:40 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2021-12-05 22:25:46 +0100 | <c_wraith> | the simplified code seems like you could probably RankNTypes your way through it |
2021-12-05 22:26:35 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2021-12-05 22:30:01 +0100 | <hololeap> | @unmtl [StateT s m a] |
2021-12-05 22:30:01 +0100 | <lambdabot> | [StateT s m a] |
2021-12-05 22:30:27 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-05 22:30:27 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-05 22:30:27 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-05 22:30:32 +0100 | <hololeap> | @unmtl StateT s (Writer w) a |
2021-12-05 22:30:33 +0100 | <lambdabot> | s -> (a, s, w) |
2021-12-05 22:30:54 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-05 22:34:56 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
2021-12-05 22:36:53 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 22:37:11 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 22:37:27 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) |
2021-12-05 22:37:51 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-12-05 22:38:04 +0100 | <boxscape> | this is about how far I get :/ https://paste.tomsmeding.com/mGzaUClb |
2021-12-05 22:38:15 +0100 | <boxscape> | just no idea how I could fulfill that constraint |
2021-12-05 22:41:02 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 22:41:20 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 22:43:29 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 22:43:47 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 22:44:41 +0100 | Guest76 | (~Guest76@wireless-student-pt10-183-60.lut.ac.uk) (Quit: Client closed) |
2021-12-05 22:48:39 +0100 | <hololeap> | @hoogle (Monad m, Monoid a) => [StateT s m a] -> StateT [s] m a |
2021-12-05 22:48:40 +0100 | <lambdabot> | No results found |
2021-12-05 22:51:03 +0100 | <hololeap> | :t StateT . (\l ss -> sequenceA <$> sequenceA (l <*> ss)) . fmap runStateT :: (Monad m, Monoid a) => [StateT s m a] -> StateT [s] m a |
2021-12-05 22:51:04 +0100 | <lambdabot> | (Monad m, Monoid a) => [StateT s m a] -> StateT [s] m a |
2021-12-05 22:51:31 +0100 | <hololeap> | i'm a bit surprised this doesn't exist on hoogle |
2021-12-05 22:51:39 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds) |
2021-12-05 22:53:10 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-12-05 22:53:22 +0100 | <hololeap> | maybe this would be easier with the zoom optic |
2021-12-05 22:55:04 +0100 | kennyd | (~bc8165b6@cerf.good1.com) (Quit: CGI:IRC) |
2021-12-05 22:56:14 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Ping timeout: 252 seconds) |
2021-12-05 22:56:14 +0100 | justSleigh | (~justache@user/justache) (Quit: The Lounge - https://thelounge.chat) |
2021-12-05 22:56:47 +0100 | xsperry | (~xs@user/xsperry) () |
2021-12-05 22:57:24 +0100 | <boxscape> | tomsmeding: turns out I *can* use a CPP macro, I just have to supply the name of the function as well so I can call that name recursively instead of the macro itself |
2021-12-05 22:57:59 +0100 | justSleigh | (~justache@user/justache) |
2021-12-05 22:58:26 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) (Remote host closed the connection) |
2021-12-05 22:59:26 +0100 | emf | (~emf@2620:10d:c090:400::5:3b6) |
2021-12-05 22:59:35 +0100 | <boxscape> | I'll just keep a comment saying "Fun challenge: Try to do this using a polymorphic function instead of a macro" in the code to nerdsnipe innocent passers-by |
2021-12-05 23:00:08 +0100 | <Rembane> | "How to lower the efficiency of your team in one simple step." |
2021-12-05 23:00:09 +0100 | xsperry | (~xs@user/xsperry) |
2021-12-05 23:01:59 +0100 | <boxscape> | :) luckily I'm doing this in a one-man team and I've already nerdsniped myself so now I'm immune |
2021-12-05 23:02:27 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) |
2021-12-05 23:04:15 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-12-05 23:04:51 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-12-05 23:05:27 +0100 | <Rembane> | Sweet! :) |
2021-12-05 23:05:56 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-12-05 23:08:03 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 23:08:21 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 23:10:01 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 23:10:19 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 23:10:26 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-05 23:12:06 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 23:12:23 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 23:14:04 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 23:14:22 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 23:15:29 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-05 23:18:15 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 23:18:33 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 23:20:13 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 23:20:31 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 23:24:29 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 23:24:47 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 23:26:05 +0100 | Lycurgus | (~juan@98.4.112.204) |
2021-12-05 23:27:39 +0100 | Lycurgus | (~juan@98.4.112.204) () |
2021-12-05 23:28:41 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 245 seconds) |
2021-12-05 23:30:43 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 23:31:01 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 23:31:28 +0100 | jakzale | (6291399afa@2604:bf00:561:2000::1e4) (Changing host) |
2021-12-05 23:31:28 +0100 | jakzale | (6291399afa@user/jakzale) |
2021-12-05 23:33:51 +0100 | ss4 | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2021-12-05 23:34:50 +0100 | MoC | (~moc@user/moc) (Quit: Konversation terminated!) |
2021-12-05 23:36:57 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 23:37:15 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 23:37:20 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-12-05 23:37:32 +0100 | max22- | (~maxime@2a01cb08833598006b46964008321399.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
2021-12-05 23:38:47 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2021-12-05 23:40:48 +0100 | notzmv | (~zmv@user/notzmv) |
2021-12-05 23:41:20 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 252 seconds) |
2021-12-05 23:41:21 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds) |
2021-12-05 23:41:50 +0100 | kennyd | (~bc8165b6@83.167.180.121) |
2021-12-05 23:41:59 +0100 | pavonia | (~user@user/siracusa) |
2021-12-05 23:43:20 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-12-05 23:45:27 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 23:45:45 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 23:46:39 +0100 | emf | (~emf@2620:10d:c090:400::5:3b6) (Ping timeout: 252 seconds) |
2021-12-05 23:47:35 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) (Remote host closed the connection) |
2021-12-05 23:48:14 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-12-05 23:48:34 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection) |
2021-12-05 23:48:51 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) |
2021-12-05 23:50:02 +0100 | emf | (~emf@2620:10d:c090:400::5:3b6) |
2021-12-05 23:52:35 +0100 | vgtw_ | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) |
2021-12-05 23:53:25 +0100 | hskpractice | (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds) |
2021-12-05 23:53:59 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (Ping timeout: 256 seconds) |
2021-12-05 23:54:58 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-12-05 23:58:44 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) |
2021-12-05 23:59:49 +0100 | aweinstock | (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) |