2024/05/14

2024-05-14 00:09:04 +0200sadome(~sadome@user/sadome)
2024-05-14 00:09:05 +0200sadome(~sadome@user/sadome) (Excess Flood)
2024-05-14 00:14:15 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 255 seconds)
2024-05-14 00:15:32 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-05-14 00:16:04 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2024-05-14 00:18:03 +0200michalz(~michalz@185.246.207.203) (Quit: ZNC 1.8.2 - https://znc.in)
2024-05-14 00:21:34 +0200Sgeo(~Sgeo@user/sgeo)
2024-05-14 00:33:23 +0200yin(~yin@user/zero)
2024-05-14 00:37:54 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-05-14 00:39:09 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-05-14 00:43:19 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich)
2024-05-14 00:43:45 +0200acidjnk_new(~acidjnk@p200300d6e714dc37b9c7c34e6fbc03d6.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2024-05-14 00:44:16 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-05-14 00:51:13 +0200Ryan54(~Ryan@2601:602:8b00:b0f0:598b:fb7d:e718:eb36) (Quit: Client closed)
2024-05-14 00:57:23 +0200son0p(~ff@152.203.77.121) (Quit: Leaving)
2024-05-14 01:08:05 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
2024-05-14 01:08:42 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2024-05-14 01:20:27 +0200causal(~eric@50.35.88.207) (Quit: WeeChat 4.1.1)
2024-05-14 01:24:28 +0200son0p(~ff@152.203.77.121)
2024-05-14 01:34:18 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2024-05-14 01:37:24 +0200dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-05-14 01:42:08 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-05-14 01:43:54 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-05-14 01:48:02 +0200yin(~yin@user/zero) (Ping timeout: 252 seconds)
2024-05-14 01:50:00 +0200yin(~yin@user/zero)
2024-05-14 01:56:32 +0200yin(~yin@user/zero) (Ping timeout: 260 seconds)
2024-05-14 01:56:42 +0200mei(~mei@user/mei) (Remote host closed the connection)
2024-05-14 01:57:34 +0200ystael(~ystael@user/ystael) (Ping timeout: 264 seconds)
2024-05-14 01:58:18 +0200yin(~yin@user/zero)
2024-05-14 01:59:06 +0200mei(~mei@user/mei)
2024-05-14 02:02:55 +0200oo_miguel(~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Ping timeout: 272 seconds)
2024-05-14 02:08:31 +0200xdminsy(~xdminsy@117.147.70.240) (Ping timeout: 246 seconds)
2024-05-14 02:09:21 +0200xdminsy(~xdminsy@117.147.70.240)
2024-05-14 02:11:05 +0200yin(~yin@user/zero) (Quit: leaving)
2024-05-14 02:14:35 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
2024-05-14 02:14:38 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 260 seconds)
2024-05-14 02:16:24 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2024-05-14 02:18:40 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
2024-05-14 02:30:10 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds)
2024-05-14 02:32:03 +0200califax(~califax@user/califx) (Remote host closed the connection)
2024-05-14 02:34:44 +0200califax(~califax@user/califx)
2024-05-14 03:03:52 +0200hgolden(~hgolden@2603:8000:9d00:3ed1:2678:8497:aa5c:7fa9) (Remote host closed the connection)
2024-05-14 03:08:52 +0200philopsos(~caecilius@user/philopsos) (Ping timeout: 255 seconds)
2024-05-14 03:11:15 +0200hgolden(~hgolden@2603:8000:9d00:3ed1:2678:8497:aa5c:7fa9)
2024-05-14 03:11:57 +0200otto_s(~user@p5de2fd19.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2024-05-14 03:12:09 +0200philopsos1(~caecilius@user/philopsos)
2024-05-14 03:13:32 +0200otto_s(~user@p5de2fc4f.dip0.t-ipconnect.de)
2024-05-14 03:16:41 +0200philopsos1(~caecilius@user/philopsos) (Ping timeout: 256 seconds)
2024-05-14 03:23:11 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 252 seconds)
2024-05-14 03:24:41 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2024-05-14 03:29:36 +0200philopsos1(~caecilius@user/philopsos)
2024-05-14 03:32:26 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 268 seconds)
2024-05-14 03:34:30 +0200xff0x(~xff0x@2405:6580:b080:900:b7f1:8627:ae1f:1fb0) (Ping timeout: 255 seconds)
2024-05-14 03:55:23 +0200phma(phma@2001:5b0:210b:c738:d0e0:5870:ec8f:f731) (Read error: Connection reset by peer)
2024-05-14 03:55:47 +0200phma(~phma@host-67-44-208-11.hnremote.net)
2024-05-14 03:57:25 +0200Square2(~Square4@user/square)
2024-05-14 04:08:30 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-05-14 04:13:47 +0200td_(~td@i53870933.versanet.de) (Ping timeout: 256 seconds)
2024-05-14 04:15:33 +0200td_(~td@i53870907.versanet.de)
2024-05-14 04:18:04 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 268 seconds)
2024-05-14 04:19:41 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2024-05-14 04:23:59 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds)
2024-05-14 04:25:48 +0200ddellacosta(~ddellacos@ool-44c73d29.dyn.optonline.net)
2024-05-14 04:36:23 +0200philopsos1(~caecilius@user/philopsos) (Ping timeout: 260 seconds)
2024-05-14 04:42:24 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2024-05-14 05:19:24 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Remote host closed the connection)
2024-05-14 05:19:33 +0200danza(~francesco@151.57.214.17)
2024-05-14 05:19:44 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-05-14 05:31:03 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
2024-05-14 05:42:27 +0200paddymahoney(~paddymaho@pool-99-250-26-190.cpe.net.cable.rogers.com)
2024-05-14 05:54:05 +0200mei(~mei@user/mei) (Ping timeout: 240 seconds)
2024-05-14 05:55:20 +0200mei(~mei@user/mei)
2024-05-14 05:55:44 +0200yin(~yin@user/zero)
2024-05-14 05:55:47 +0200aforemny_(~aforemny@i59F516F1.versanet.de)
2024-05-14 05:56:22 +0200aforemny(~aforemny@i59F516F4.versanet.de) (Ping timeout: 246 seconds)
2024-05-14 06:00:56 +0200rekahsoft(~rekahsoft@184.148.6.204) (Ping timeout: 256 seconds)
2024-05-14 06:04:48 +0200yin(~yin@user/zero) (Ping timeout: 255 seconds)
2024-05-14 06:05:35 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2024-05-14 06:06:15 +0200ec(~ec@gateway/tor-sasl/ec)
2024-05-14 06:06:26 +0200yin(~yin@user/zero)
2024-05-14 06:08:46 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-05-14 06:16:28 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Remote host closed the connection)
2024-05-14 06:21:18 +0200rosco(~rosco@yp-146-6.tm.net.my)
2024-05-14 06:22:51 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-05-14 06:23:41 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2024-05-14 06:37:46 +0200remmie(ianremsen@tilde.team) (Ping timeout: 256 seconds)
2024-05-14 06:39:49 +0200 <cheater> i feel like haskell would be better if arguments were non-positional, i.e. you could supply them in any order
2024-05-14 06:40:14 +0200 <cheater> rarely do functions have the same type multiple times, and when they do it's usually like a binary or ternary function and then you can explicitly order them with a tuple
2024-05-14 06:40:39 +0200 <danza> make a product type for that?
2024-05-14 06:41:56 +0200 <cheater> idk what you're saying
2024-05-14 06:42:23 +0200 <cheater> if you look at type sigs, f :: A -> B -> C is basically a tuple. the only reason it's not exactly the same thing as (A, B, C) is currying.
2024-05-14 06:44:17 +0200 <cheater> so what if we had a type constructor that's like (->) but binds less tightly than (->) and doesn't care about order. say (&). You could write f :: X & A -> B -> C & Y & Z -> Out, and then you could go like f a b c x y z, or f a x b y c z, or f x y z a b c
2024-05-14 06:44:29 +0200 <cheater> whatever's useful
2024-05-14 06:46:16 +0200 <danza> other languages that support out-of-order arguments end up with a syntax similar to { arg = val } like one would easily achieve with a product type
2024-05-14 07:00:59 +0200 <cheater> like what languages are you thinking of
2024-05-14 07:09:14 +0200 <glguy> cheater: that would only make sense in a vary narrow subset of Haskell
2024-05-14 07:09:31 +0200 <cheater> why
2024-05-14 07:09:34 +0200 <glguy> > id succ 10
2024-05-14 07:09:35 +0200 <lambdabot> 11
2024-05-14 07:09:37 +0200 <glguy> :t id
2024-05-14 07:09:38 +0200 <lambdabot> a -> a
2024-05-14 07:10:00 +0200 <glguy> You need to know the order of application to even attempt to type-check an expression
2024-05-14 07:10:08 +0200 <cheater> id only has one argument
2024-05-14 07:10:08 +0200 <glguy> function in haskell *only* have one argument
2024-05-14 07:10:18 +0200 <glguy> but that doesn't mean you can't apply the result as a function
2024-05-14 07:10:21 +0200 <cheater> ok ok
2024-05-14 07:10:29 +0200 <cheater> i see where you're coming from
2024-05-14 07:10:29 +0200 <glguy> all functions have one argument; no functions have two
2024-05-14 07:10:34 +0200 <cheater> but i don't think that's an issue
2024-05-14 07:10:38 +0200mei(~mei@user/mei) (Remote host closed the connection)
2024-05-14 07:11:31 +0200michalz(~michalz@185.246.207.193)
2024-05-14 07:11:59 +0200 <glguy> beyond it simply not working with the way types in Haskell work, it'd be a complete disaster for readability
2024-05-14 07:12:17 +0200 <glguy> now to know what: f x y means, you have to work out the types of f, x, and y before you can know which thing is which
2024-05-14 07:12:30 +0200 <cheater> idk that it would be, people say haskell's syntax is a complete disaster for readability too
2024-05-14 07:12:42 +0200 <cheater> yeah you know that one usually when reading code
2024-05-14 07:12:51 +0200 <cheater> if you lose track of that then your code is too messy anyways
2024-05-14 07:12:55 +0200 <glguy> no, that's not a common take on people who've actually used it
2024-05-14 07:13:03 +0200mei(~mei@user/mei)
2024-05-14 07:13:34 +0200remmie(ianremsen@tilde.team)
2024-05-14 07:13:53 +0200 <cheater> have you used the language i'm describing?
2024-05-14 07:15:20 +0200 <glguy> I would avoid using such a language, but I don't think it exists
2024-05-14 07:15:37 +0200 <cheater> so you're basically the "haskell is unreadable" person
2024-05-14 07:16:28 +0200 <glguy> oh, no
2024-05-14 07:20:40 +0200 <danza> "haskell's syntax is a complete disaster" haha nice joke
2024-05-14 07:21:18 +0200 <danza> "... for readability" that is also a good one
2024-05-14 07:22:03 +0200acidjnk_new(~acidjnk@p200300d6e714dc51e96b24be77fae744.dip0.t-ipconnect.de)
2024-05-14 07:22:07 +0200mei(~mei@user/mei) (Remote host closed the connection)
2024-05-14 07:23:55 +0200mei(~mei@user/mei)
2024-05-14 07:30:03 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-05-14 07:30:37 +0200danza(~francesco@151.57.214.17) (Read error: Connection reset by peer)
2024-05-14 07:30:53 +0200danza(~francesco@151.57.195.82)
2024-05-14 07:42:23 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2024-05-14 07:51:08 +0200michalz(~michalz@185.246.207.193) (Quit: ZNC 1.8.2 - https://znc.in)
2024-05-14 07:51:38 +0200euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-05-14 07:52:08 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-05-14 07:52:41 +0200euleritian(~euleritia@dynamic-176-006-192-246.176.6.pool.telefonica.de)
2024-05-14 07:54:06 +0200michalz(~michalz@185.246.207.200)
2024-05-14 07:58:11 +0200danza(~francesco@151.57.195.82) (Ping timeout: 256 seconds)
2024-05-14 08:03:54 +0200 <cheater> yea i know right
2024-05-14 08:04:05 +0200 <cheater> but there are people who *will* say this
2024-05-14 08:04:18 +0200 <cheater> like honestly that's most people who haven't used haskell
2024-05-14 08:19:11 +0200Square2(~Square4@user/square) (Ping timeout: 268 seconds)
2024-05-14 08:26:27 +0200petrichor(~znc-user@user/petrichor)
2024-05-14 08:26:47 +0200Rodney_(~Rodney@176.254.244.83) (Ping timeout: 252 seconds)
2024-05-14 08:27:03 +0200oo_miguel(~Thunderbi@78-11-181-16.static.ip.netia.com.pl)
2024-05-14 08:32:26 +0200iteratee(~kyle@162.218.222.207) (Read error: Connection reset by peer)
2024-05-14 08:32:36 +0200iteratee_(~kyle@162.218.222.207)
2024-05-14 08:33:50 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-05-14 08:36:53 +0200kuribas(~user@2a02:1808:8a:fa84:e473:eba8:6b89:265e)
2024-05-14 08:38:55 +0200iteratee_(~kyle@162.218.222.207) (Read error: Connection reset by peer)
2024-05-14 08:39:10 +0200iteratee(~kyle@162.218.222.207)
2024-05-14 08:41:05 +0200philopsos1(~caecilius@user/philopsos)
2024-05-14 08:44:15 +0200rosco(~rosco@yp-146-6.tm.net.my) (Quit: Lost terminal)
2024-05-14 08:44:19 +0200Rodney_(~Rodney@176.254.244.83)
2024-05-14 08:44:52 +0200kuribas(~user@2a02:1808:8a:fa84:e473:eba8:6b89:265e) (Remote host closed the connection)
2024-05-14 08:45:05 +0200kuribas(~user@2a02:1808:8a:fa84:1e15:b436:3fe1:ba71)
2024-05-14 08:46:13 +0200danse-nr3(~danse-nr3@151.57.194.120)
2024-05-14 08:53:57 +0200kuribas(~user@2a02:1808:8a:fa84:1e15:b436:3fe1:ba71) (Ping timeout: 272 seconds)
2024-05-14 08:57:09 +0200euphores(~SASL_euph@user/euphores)
2024-05-14 09:03:41 +0200rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2024-05-14 09:04:12 +0200rvalue(~rvalue@user/rvalue)
2024-05-14 09:09:12 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-05-14 09:11:12 +0200euleritian(~euleritia@dynamic-176-006-192-246.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-05-14 09:13:21 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 255 seconds)
2024-05-14 09:13:35 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-05-14 09:15:21 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-05-14 09:16:24 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Excess Flood)
2024-05-14 09:16:46 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-05-14 09:17:17 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2024-05-14 09:18:25 +0200Square2(~Square4@user/square)
2024-05-14 09:21:01 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2024-05-14 09:21:14 +0200euleritian(~euleritia@dynamic-176-006-192-246.176.6.pool.telefonica.de)
2024-05-14 09:24:27 +0200ft(~ft@p508db8fc.dip0.t-ipconnect.de) (Quit: leaving)
2024-05-14 09:30:43 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-05-14 09:40:24 +0200gmg(~user@user/gehmehgeh)
2024-05-14 09:47:34 +0200rosco(~rosco@yp-146-6.tm.net.my)
2024-05-14 09:52:07 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2024-05-14 09:53:30 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-05-14 09:58:38 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-05-14 10:02:41 +0200xdminsy(~xdminsy@117.147.70.240) (Quit: Konversation terminated!)
2024-05-14 10:03:05 +0200xdminsy(~xdminsy@117.147.70.240)
2024-05-14 10:11:49 +0200cfricke(~cfricke@user/cfricke)
2024-05-14 10:12:47 +0200kadir(~kadir@85.103.183.96)
2024-05-14 10:23:23 +0200son0p(~ff@152.203.77.121) (Ping timeout: 252 seconds)
2024-05-14 10:24:01 +0200euleritian(~euleritia@dynamic-176-006-192-246.176.6.pool.telefonica.de) (Ping timeout: 255 seconds)
2024-05-14 10:27:08 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-05-14 10:28:30 +0200euleritian(~euleritia@dynamic-176-004-196-081.176.4.pool.telefonica.de)
2024-05-14 10:34:54 +0200chele(~chele@user/chele)
2024-05-14 10:47:11 +0200danse-nr3(~danse-nr3@151.57.194.120) (Ping timeout: 268 seconds)
2024-05-14 10:50:48 +0200danza(~francesco@151.57.194.120)
2024-05-14 10:50:53 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds)
2024-05-14 10:50:53 +0200sawilagar(~sawilagar@user/sawilagar)
2024-05-14 10:53:25 +0200euleritian(~euleritia@dynamic-176-004-196-081.176.4.pool.telefonica.de) (Ping timeout: 256 seconds)
2024-05-14 10:53:34 +0200euleritian(~euleritia@dynamic-176-006-177-053.176.6.pool.telefonica.de)
2024-05-14 10:54:12 +0200danse-nr3(~danse-nr3@151.57.194.120)
2024-05-14 10:57:03 +0200danza(~francesco@151.57.194.120) (Ping timeout: 268 seconds)
2024-05-14 11:00:37 +0200euleritian(~euleritia@dynamic-176-006-177-053.176.6.pool.telefonica.de) (Ping timeout: 272 seconds)
2024-05-14 11:01:16 +0200euleritian(~euleritia@dynamic-176-000-145-069.176.0.pool.telefonica.de)
2024-05-14 11:05:33 +0200rosco(~rosco@yp-146-6.tm.net.my) (Quit: Lost terminal)
2024-05-14 11:05:48 +0200rosco(~rosco@yp-146-6.tm.net.my)
2024-05-14 11:09:52 +0200hseg(~gesh@46.120.21.14)
2024-05-14 11:10:46 +0200 <hseg> Checking for the sake of reproducible builds, is there some way to avoid infecting the executable with the build directory?
2024-05-14 11:11:26 +0200 <hseg> (i'm building with stack)
2024-05-14 11:11:53 +0200 <hseg> (i.e. strings $executable shows references to /home/gesh/.local/share/stack/snapshots/x86_64-linux)
2024-05-14 11:13:23 +0200euleritian(~euleritia@dynamic-176-000-145-069.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-05-14 11:13:40 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-05-14 11:15:37 +0200 <[exa]> hseg: not sure with stack, but I checked a few executables from cabal here and there doesn't seem to be any reference to any local directories
2024-05-14 11:16:03 +0200 <[exa]> hseg: anyway for replroducible builds you might want to have a complete separate clean environment for them, like what debians do with sbuild or so
2024-05-14 11:16:18 +0200 <hseg> oh, definitely
2024-05-14 11:16:39 +0200 <[exa]> actually `sbuild` can build haskelly stacky stuff already so might be the case that reuse is easy there
2024-05-14 11:17:33 +0200 <hseg> wasn't expecting to get fully reproducible builds in one shot, more trying to get closer to reproducibility
2024-05-14 11:17:57 +0200 <hseg> sbuild?
2024-05-14 11:20:16 +0200 <hseg> btw, checking cabal-built ghcid shows such references to build dir
2024-05-14 11:21:06 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2024-05-14 11:21:45 +0200 <hseg> ah, I assume you mean https://sbuild.org
2024-05-14 11:22:01 +0200euleritian(~euleritia@dynamic-176-004-151-001.176.4.pool.telefonica.de)
2024-05-14 11:28:33 +0200euleritian(~euleritia@dynamic-176-004-151-001.176.4.pool.telefonica.de) (Read error: Connection reset by peer)
2024-05-14 11:28:50 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-05-14 11:31:50 +0200danse-nr3(~danse-nr3@151.57.194.120) (Read error: Connection reset by peer)
2024-05-14 11:32:55 +0200danse-nr3(~danse-nr3@151.43.144.199)
2024-05-14 11:36:04 +0200__monty__(~toonn@user/toonn)
2024-05-14 11:38:08 +0200deriamis(deriamis@ec2-54-187-167-69.us-west-2.compute.amazonaws.com) (Quit: ZNC - https://znc.in)
2024-05-14 11:38:23 +0200deriamis(deriamis@ec2-54-187-167-69.us-west-2.compute.amazonaws.com)
2024-05-14 11:40:46 +0200 <ski> cheater : <https://ocaml.org/manual/5.2/lablexamples.html>
2024-05-14 11:43:16 +0200 <cheater> yeah that's not really what i'm talking about
2024-05-14 11:43:41 +0200 <ski> it's labelled arguments, which you can provide out of order
2024-05-14 11:43:49 +0200 <cheater> yes. not what i'm talking about
2024-05-14 11:44:05 +0200 <ski> (can't reaally provide them, out of order, without labelling them)
2024-05-14 11:44:25 +0200 <ski> (at least not, if you want the language to be sane)
2024-05-14 11:44:48 +0200 <cheater> i'll disagree with that last one
2024-05-14 11:45:04 +0200 <cheater> i'm talking about the fact that most often with functions in haskell you either have arguments that all have different types, or just a small amount amount of arguments of equal types, which can be represented as a tuple (or, uncurried, with -> )
2024-05-14 11:45:23 +0200 <cheater> at that point it's easy to figure out which piece goes in which hole
2024-05-14 11:45:23 +0200 <ski> what if the types of `x',`y',`z' are the same as the types of `a',`b',`c' (respectively) ?
2024-05-14 11:45:35 +0200 <danse-nr3> still with this stuff? What is wrong with my suggestion to use a product type?
2024-05-14 11:45:42 +0200 <cheater> i specifically typed out their types ski
2024-05-14 11:45:53 +0200 <ski> not in the application, you did not
2024-05-14 11:46:10 +0200 <cheater> it was an example in the context of what i said before about the type signature
2024-05-14 11:46:27 +0200 <cheater> it was all part of the same example
2024-05-14 11:47:23 +0200 <ski> `x',`y',`z',`a',`b',`c' here are meta-variables, standing for arbitrary expressions. there's no a-priori associatiation of these, to the types `X',`Y',`Z',`A',`B',`C' .. if you mean just actual variable names `x',`y',`z',`a',`b',`c' .. then that's very limited, doesn't scale, isn't really composable
2024-05-14 11:47:39 +0200 <cheater> stop being confused on purpose
2024-05-14 11:47:56 +0200 <ski> Hanlon's razor
2024-05-14 11:48:02 +0200 <cheater> no
2024-05-14 11:48:24 +0200 <ski> i genuienly don't know how you are envisioning this to work
2024-05-14 11:48:39 +0200 <danse-nr3> huh i knew it as occam's razor... or is it different?
2024-05-14 11:48:46 +0200 <ski> no, it's not the same thing
2024-05-14 11:48:51 +0200 <danse-nr3> v
2024-05-14 11:49:14 +0200 <ski> "Don't attribute to malice, what can be adequately explained by ignorance/stupidity."
2024-05-14 11:49:59 +0200 <danse-nr3> i remember occam's as "the simplest explanation is also the most likely" ... but it is lost in the mists of time. Maybe that was misreferenced
2024-05-14 11:50:23 +0200 <ski> perhaps i'd understand it better, cheater, if you made a simple prototype type checker (and maybe parser, if you wish)
2024-05-14 11:50:45 +0200 <ski> danse-nr3 : yea, that's basically that one
2024-05-14 11:50:54 +0200 <lortabac> IIRC generic-lens does something similar to what cheater is proposing
2024-05-14 11:51:10 +0200 <lortabac> you can select a record field by type if there is no ambiguity
2024-05-14 11:51:21 +0200 <ski> danse-nr3 : <https://en.wikipedia.org/wiki/Hanlon's_razor>
2024-05-14 11:51:26 +0200 <danse-nr3> dunno, i just use product types and that gives me 99% of the functionality
2024-05-14 11:51:52 +0200 <danse-nr3> one can also have f (default'{ arg = type })
2024-05-14 11:52:01 +0200 <lortabac> I think it would be nice to have this feature as an IDE action, but not baked in the language
2024-05-14 11:52:40 +0200 <lortabac> if you swap two arguments by mistake and it's obvious enough, an IDE may suggest inverting them
2024-05-14 11:52:52 +0200 <ski> anyway, using records (or labelled multi-arity functions, if available) is one workable approach. what OCaml does, labelled curried arguments, also works
2024-05-14 11:53:16 +0200 <ski> yes
2024-05-14 11:55:09 +0200 <ncf> the unordered arguments thing sounds like it would also be garbage wrt type inference
2024-05-14 11:56:18 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.1)
2024-05-14 11:58:04 +0200random-jellyfish(~developer@user/random-jellyfish) (Ping timeout: 260 seconds)
2024-05-14 11:59:55 +0200 <ski> like, if you can elaborate this in a workable fashion, i'd be interested in taking a look .. i'm just saying i'm not seeing how it could work, in a way i'd consider reasonable
2024-05-14 12:00:21 +0200 <ski> but i don't want to discourage you from pondering it, if you want to
2024-05-14 12:05:30 +0200yin(~yin@user/zero) (Ping timeout: 268 seconds)
2024-05-14 12:06:07 +0200 <cheater> you're right, hold up, let me implement a parser and a type checker real quick
2024-05-14 12:06:56 +0200yin(~yin@user/zero)
2024-05-14 12:14:15 +0200titibandit(~titibandi@user/titibandit)
2024-05-14 12:15:08 +0200 <probie> I wouldn't mind such behaviour to allow elision of names in a system where all arguments are named arguments
2024-05-14 12:22:13 +0200bo_(~bo@198.red-83-56-252.dynamicip.rima-tde.net)
2024-05-14 12:24:40 +0200_bo(~bo@198.red-83-56-252.dynamicip.rima-tde.net) (Ping timeout: 260 seconds)
2024-05-14 12:26:56 +0200ubert(~Thunderbi@2a02:8109:ab8a:5a00:d77a:cc4d:acdd:ee1e)
2024-05-14 12:32:11 +0200son0p(~ff@186.121.14.247)
2024-05-14 12:38:30 +0200rdcdr(~rdcdr@user/rdcdr) (Quit: ZNC 1.8.2+deb3.1 - https://znc.in)
2024-05-14 12:38:57 +0200rdcdr(~rdcdr@user/rdcdr)
2024-05-14 12:56:16 +0200just_started_has(~just_star@2401:4900:1cc9:315f:ac5a:52e5:ce3f:eca3)
2024-05-14 12:56:21 +0200 <just_started_has> hello
2024-05-14 12:56:39 +0200 <just_started_has> i write test :: [Int] -> [Int]
2024-05-14 12:56:39 +0200 <just_started_has> in main.hs
2024-05-14 12:56:40 +0200 <just_started_has> then write test in the ghci of main.hs
2024-05-14 12:56:40 +0200 <just_started_has> it says Variable not in scope
2024-05-14 12:56:41 +0200 <just_started_has> why is that ,
2024-05-14 12:56:41 +0200 <just_started_has> i started haskell 4 hours ago , please forgive this noob question if it is
2024-05-14 12:57:14 +0200 <just_started_has> the doc says variable not in scope only happens when it is not declared but it is
2024-05-14 12:58:08 +0200 <int-e> You can't have just the type signature in a module; you have to have an accompanying definition.
2024-05-14 12:58:23 +0200 <cheater> show us a screenshot of your terminal
2024-05-14 12:59:39 +0200 <int-e> `ghci main.hs` doesn't execute main.hs as a script. It loads it as a Haskell module.
2024-05-14 12:59:48 +0200 <int-e> Or, well, tries to.
2024-05-14 13:01:19 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
2024-05-14 13:01:36 +0200 <just_started_has> one second
2024-05-14 13:02:15 +0200tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection)
2024-05-14 13:02:35 +0200tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2024-05-14 13:03:43 +0200 <just_started_has> https://drive.google.com/file/d/1yTimzu4dD3rL4GZKVTsXlJEDbaU4tXvO/view?usp=drive_link
2024-05-14 13:03:47 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2024-05-14 13:05:07 +0200 <ncf> how are you starting ghci? if you run `ghci main.hs` you should get a nice helpful error about `test` lacking an accompanying binding
2024-05-14 13:05:52 +0200 <just_started_has> i just quit and startedd , yes it does give an error
2024-05-14 13:08:55 +0200 <just_started_has> thx
2024-05-14 13:09:08 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-05-14 13:09:20 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2024-05-14 13:10:00 +0200euleritian(~euleritia@dynamic-176-004-151-001.176.4.pool.telefonica.de)
2024-05-14 13:19:49 +0200danse-nr3(~danse-nr3@151.43.144.199) (Ping timeout: 268 seconds)
2024-05-14 13:20:55 +0200yin(~yin@user/zero) (Quit: leaving)
2024-05-14 13:30:20 +0200 <ski> just_started_has : you can use `:reload' (`:r' for short) to make the interactor reload the files that have changed
2024-05-14 13:31:04 +0200 <just_started_has> yes i just realized that , thanks !!
2024-05-14 13:31:21 +0200 <just_started_has> i thought that it reloadds automatically ? , can it ?
2024-05-14 13:36:09 +0200Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 268 seconds)
2024-05-14 13:36:18 +0200 <ski> you can set up `:e' (`:edit') to launch (or connect to) your editor, in which case when that command terminates, it'll automatically do a `:r'
2024-05-14 13:36:37 +0200Maxdamantus(~Maxdamant@user/maxdamantus)
2024-05-14 13:36:37 +0200 <ski> otherwise, you have to do `:r' manually, after saving
2024-05-14 13:37:53 +0200 <ski> (or you could launch your interactor inside your editor, possibly)
2024-05-14 13:40:26 +0200 <just_started_has> i am using the vim
2024-05-14 13:40:32 +0200 <just_started_has> i think it can
2024-05-14 13:40:51 +0200philopsos1(~caecilius@user/philopsos) (Ping timeout: 272 seconds)
2024-05-14 13:41:49 +0200yin(~yin@user/zero)
2024-05-14 13:44:50 +0200 <just_started_has> ski    thanks  !! this works
2024-05-14 13:45:34 +0200 <ski> just_started_has : <https://downloads.haskell.org/ghc/latest/docs/users_guide/ghci.html#ghci-cmd-:edit>
2024-05-14 13:46:31 +0200yin(~yin@user/zero) (Client Quit)
2024-05-14 13:47:26 +0200ddellacosta(~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 252 seconds)
2024-05-14 13:48:11 +0200euphores(~SASL_euph@user/euphores) (Ping timeout: 268 seconds)
2024-05-14 13:48:18 +0200hseg(~gesh@46.120.21.14) (Read error: Connection reset by peer)
2024-05-14 13:54:44 +0200euphores(~SASL_euph@user/euphores)
2024-05-14 14:03:26 +0200danse-nr3(~danse-nr3@151.57.181.243)
2024-05-14 14:08:46 +0200ocra8(ocra8@user/ocra8) (Quit: WeeChat 4.2.2)
2024-05-14 14:14:25 +0200euleritian(~euleritia@dynamic-176-004-151-001.176.4.pool.telefonica.de) (Read error: Connection reset by peer)
2024-05-14 14:14:42 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-05-14 14:30:53 +0200bliminse(~bliminse@user/bliminse) (Quit: leaving)
2024-05-14 14:32:59 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 264 seconds)
2024-05-14 14:35:38 +0200bliminse(~bliminse@user/bliminse)
2024-05-14 14:35:41 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-05-14 14:48:51 +0200xff0x(~xff0x@ai113088.d.east.v6connect.net)
2024-05-14 15:07:57 +0200jcarpenter2(~lol@2603:3016:1e01:b940:9e16:4716:cb0d:9d39) (Read error: Connection reset by peer)
2024-05-14 15:08:16 +0200jcarpenter2(~lol@2603:3016:1e01:b940:9e16:4716:cb0d:9d39)
2024-05-14 15:08:39 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 268 seconds)
2024-05-14 15:16:53 +0200ystael(~ystael@user/ystael)
2024-05-14 15:23:30 +0200lockna(~lockna@2a01:4f8:10b:14f1::2) (Quit: ZNC 1.8.2 - https://znc.in)
2024-05-14 15:23:44 +0200lockna(~lockna@static.139.16.130.94.clients.your-server.de)
2024-05-14 15:25:33 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2024-05-14 15:26:53 +0200img(~img@user/img)
2024-05-14 15:30:33 +0200esnos(~user@194.29.137.22)
2024-05-14 15:31:50 +0200just_started_has(~just_star@2401:4900:1cc9:315f:ac5a:52e5:ce3f:eca3) (Quit: Client closed)
2024-05-14 15:35:48 +0200thaliaa(uid486183@id-486183.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2024-05-14 15:42:13 +0200 <esnos> Hi, I want to use haskell-mode with corfu as completion backend, does anybody have working setup. I customized '(tab-always-indent 'complete) and tab completion works in other modes, for example in python, but in haskell mode it just intends and I need to use M-tab which is uncomfortable considering I use tab for everything else. I also saw that in other modes completion-at-point is set to C-M-i, which corfu uses I think, but in
2024-05-14 15:42:13 +0200 <esnos> haskell-mode it isn't set to anything, so maybe this is why there are problems.
2024-05-14 15:43:12 +0200 <esnos> Sorry for double message, I started using irc yesterday
2024-05-14 15:47:17 +0200 <danse-nr3> this question is quite emacs-specific esnos, i am afraid we might not be that knowledgeable about that. Anyways usually for developing people use Haskell Language Server as a backend... i am not sure about which emacs client to recommend, i think there are a couple of main ones
2024-05-14 15:50:30 +0200yin(~yin@user/zero)
2024-05-14 15:50:56 +0200 <esnos> I use eglot with hls, but to show possible completions you need company or eglot
2024-05-14 15:52:35 +0200 <danse-nr3> oh then i don't know what corfu is for
2024-05-14 15:56:45 +0200cfricke(~cfricke@user/cfricke)
2024-05-14 16:02:57 +0200 <stefan-__> esnos: I use company-mode and have the following binding in "haskell-mode-map": "("C-SPC" . 'company-complete)" -- additionally I disabled auto-showing the company completions: "(setq company-idle-delay nil)"
2024-05-14 16:10:30 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2024-05-14 16:11:11 +0200euleritian(~euleritia@dynamic-176-004-151-001.176.4.pool.telefonica.de)
2024-05-14 16:14:24 +0200petrichor(~znc-user@user/petrichor) (Quit: ZNC 1.8.2 - https://znc.in)
2024-05-14 16:15:34 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
2024-05-14 16:18:15 +0200hseg(~gesh@46.120.21.14)
2024-05-14 16:20:23 +0200petrichor(~znc-user@user/petrichor)
2024-05-14 16:24:37 +0200ocra8(ocra8@user/ocra8)
2024-05-14 16:35:49 +0200Benzi-Junior(~BenziJuni@232-148-209-31.dynamic.hringdu.is) (Quit: ZNC 1.8.2 - https://znc.in)
2024-05-14 16:36:06 +0200Benzi-Junior(~BenziJuni@232-148-209-31.dynamic.hringdu.is)
2024-05-14 16:43:04 +0200 <esnos> stefan-__, will try similar approach
2024-05-14 16:44:23 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.1)
2024-05-14 16:48:40 +0200dtman34(~dtman34@2601:447:d001:ed50:f596:52e1:73ca:629d) (Quit: ZNC 1.8.2+deb3.1 - https://znc.in)
2024-05-14 16:49:00 +0200dtman34(~dtman34@c-75-72-163-222.hsd1.mn.comcast.net)
2024-05-14 16:58:08 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 260 seconds)
2024-05-14 17:01:16 +0200chele(~chele@user/chele) (Remote host closed the connection)
2024-05-14 17:17:23 +0200random-jellyfish(~developer@ip4-89-238-215-238.euroweb.ro)
2024-05-14 17:17:24 +0200random-jellyfish(~developer@ip4-89-238-215-238.euroweb.ro) (Changing host)
2024-05-14 17:17:24 +0200random-jellyfish(~developer@user/random-jellyfish)
2024-05-14 17:19:19 +0200yin(~yin@user/zero) (Ping timeout: 256 seconds)
2024-05-14 17:21:16 +0200 <stefan-__> esnos: here is my config for eglot and lsp-mode (currently in use): https://gist.github.com/dozed/9b70668200876179b2a5381c53683ca7
2024-05-14 17:24:56 +0200danse-nr3(~danse-nr3@151.57.181.243) (Ping timeout: 268 seconds)
2024-05-14 17:36:16 +0200 <johnw> Part of the answer to my "show" lens question is `re _Show`, which understandably is only valid as a Getter or Fold. There is no valid traversal unless I place an unchecked constraint on the mutation of "no modification that aren't numbers".
2024-05-14 17:38:24 +0200euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-05-14 17:39:48 +0200ph88(~ph88@2a02:8109:9e26:c800:36fd:400b:5478:66f9)
2024-05-14 17:40:04 +0200Square2(~Square4@user/square) (Ping timeout: 255 seconds)
2024-05-14 17:40:23 +0200 <ph88> does someone know a map that can only be read and written to and not delete items?
2024-05-14 17:43:49 +0200 <ncf> (->) ?
2024-05-14 17:45:58 +0200 <ph88> ?
2024-05-14 17:46:25 +0200yin(~yin@user/zero)
2024-05-14 17:51:38 +0200tv(~tv@user/tv) (Quit: derp)
2024-05-14 17:51:55 +0200tv(~tv@user/tv)
2024-05-14 17:56:30 +0200Square(~Square@user/square)
2024-05-14 17:57:23 +0200 <ncf> or search hackage for "total map" if you want something efficient
2024-05-14 17:57:54 +0200 <ncf> but k -> v supports lookup and insertion and not deleting items
2024-05-14 18:01:51 +0200 <EvanR> peanut gallery here, but if you emulate a map that is not total with total map by having the default value be Nothing, then you can still "delete" by "inserting nothing"
2024-05-14 18:02:09 +0200 <EvanR> ph88's plans are ruined
2024-05-14 18:03:47 +0200 <ph88> empire collapsed
2024-05-14 18:08:00 +0200todi(~todi@p57803331.dip0.t-ipconnect.de)
2024-05-14 18:13:35 +0200Square(~Square@user/square) (Ping timeout: 256 seconds)
2024-05-14 18:18:35 +0200yin(~yin@user/zero) (Ping timeout: 252 seconds)
2024-05-14 18:22:02 +0200yin(~yin@user/zero)
2024-05-14 18:27:11 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 256 seconds)
2024-05-14 18:32:25 +0200rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2024-05-14 18:32:29 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 240 seconds)
2024-05-14 18:32:54 +0200rvalue(~rvalue@user/rvalue)
2024-05-14 18:36:02 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2024-05-14 18:36:38 +0200euleritian(~euleritia@dynamic-176-004-151-001.176.4.pool.telefonica.de) (Read error: Connection reset by peer)
2024-05-14 18:36:55 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-05-14 18:39:33 +0200demon-cat(~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net) (Ping timeout: 268 seconds)
2024-05-14 18:39:45 +0200demon-cat(~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net)
2024-05-14 18:40:49 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
2024-05-14 18:42:01 +0200ubert(~Thunderbi@2a02:8109:ab8a:5a00:d77a:cc4d:acdd:ee1e) (Remote host closed the connection)
2024-05-14 18:42:25 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-05-14 18:49:34 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-05-14 18:52:31 +0200qhong(~qhong@DN160vrd000d6kpg009l6c0000fj.stanford.edu) (Read error: Connection reset by peer)
2024-05-14 18:55:13 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 255 seconds)
2024-05-14 18:56:07 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
2024-05-14 19:03:37 +0200infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2024-05-14 19:04:23 +0200ph88(~ph88@2a02:8109:9e26:c800:36fd:400b:5478:66f9) (Ping timeout: 260 seconds)
2024-05-14 19:04:29 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-05-14 19:05:43 +0200infinity0(~infinity0@pwned.gg)
2024-05-14 19:09:37 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
2024-05-14 19:11:11 +0200rosco(~rosco@yp-146-6.tm.net.my) (Quit: Lost terminal)
2024-05-14 19:17:59 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-05-14 19:21:51 +0200pavonia(~user@user/siracusa) (Quit: K-Lined)
2024-05-14 19:22:56 +0200sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 252 seconds)
2024-05-14 19:27:44 +0200johnw(~johnw@69.62.242.138) (Read error: Connection reset by peer)
2024-05-14 19:28:32 +0200johnw(~johnw@69.62.242.138)
2024-05-14 19:31:45 +0200cfricke(~cfricke@user/cfricke)
2024-05-14 19:41:45 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2024-05-14 19:44:38 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 260 seconds)
2024-05-14 19:46:16 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2024-05-14 19:46:23 +0200euphores(~SASL_euph@user/euphores)
2024-05-14 19:55:47 +0200demon-cat(~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net) (Ping timeout: 272 seconds)
2024-05-14 19:57:35 +0200random-jellyfish(~developer@user/random-jellyfish) (Ping timeout: 252 seconds)
2024-05-14 19:57:40 +0200hseg(~gesh@46.120.21.14) (Quit: WeeChat 4.2.2)
2024-05-14 19:59:15 +0200ft(~ft@p508db8fc.dip0.t-ipconnect.de)
2024-05-14 20:00:00 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 255 seconds)
2024-05-14 20:04:22 +0200 <cheater> i wish cabal would allow me module prefixes
2024-05-14 20:05:04 +0200 <cheater> so like i wouldn't have to do vim test/MyCompany/MyProduct/MyProject/Test/Actual/Hierarchy/Here.hs
2024-05-14 20:05:19 +0200 <cheater> instead i'd do vim test/Actual/Hierarchy/Here.hs
2024-05-14 20:06:06 +0200gmg(~user@user/gehmehgeh) (Ping timeout: 260 seconds)
2024-05-14 20:06:26 +0200 <cheater> while the module in Here.hs is still declared as "module MyCompany.MyProduct.MyProject.Test.Actual.Hierarchy.Here where"
2024-05-14 20:07:45 +0200gmg(~user@user/gehmehgeh)
2024-05-14 20:09:16 +0200 <cheater> the part that goes MyCompany/MyProduct/MyProject/ actually doesn't mean anything because it in fact doesn't change in relevant monorepi
2024-05-14 20:09:34 +0200 <cheater> it's just annoying to type out
2024-05-14 20:11:15 +0200 <cheater> so i guess what i really want is for cabal to give me module *file path* prefixes
2024-05-14 20:17:26 +0200ocra8(ocra8@user/ocra8) (Quit: WeeChat 4.2.2)
2024-05-14 20:20:16 +0200 <yin> cheater: just use fzf?
2024-05-14 20:20:20 +0200 <yin> that's not a cabal problem
2024-05-14 20:20:39 +0200 <cheater> overly long paths are a problem
2024-05-14 20:20:40 +0200 <cheater> imo
2024-05-14 20:20:50 +0200 <cheater> and haskell code bases tend to adopt those
2024-05-14 20:21:00 +0200 <cheater> like the whole path to this file would be
2024-05-14 20:21:30 +0200 <yin> why exactly are long paths a problem?
2024-05-14 20:21:52 +0200 <cheater> it would be /home/user/work/my-company/my-company-monorepo/my-product-my-project-package-name/test/MyCompany/MyProduct/MyProject/Test/Actual/Hierarchy/Here.hs
2024-05-14 20:22:01 +0200 <cheater> they're a problem because repeating the same stuff all the time is annoying
2024-05-14 20:22:44 +0200 <cheater> look at how many times stuff repeats just in that path
2024-05-14 20:22:57 +0200demon-cat(~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net)
2024-05-14 20:23:20 +0200 <cheater> usually you start your work by cd'ing to my-company-monorepo
2024-05-14 20:23:31 +0200 <yin> cheater: i literally would type at the terminal `br<CR>Here<CR>' and open that file in vim
2024-05-14 20:23:32 +0200 <cheater> so you skip all of that
2024-05-14 20:23:38 +0200 <yin> it's 8 key presses
2024-05-14 20:23:44 +0200 <cheater> right but that doesn't work if you already have vim
2024-05-14 20:23:55 +0200 <cheater> idk what br is, what is it?
2024-05-14 20:24:12 +0200 <yin> broot
2024-05-14 20:24:20 +0200 <cheater> i am broot?
2024-05-14 20:24:24 +0200 <yin> you can use any fuzzy finder, like fzf
2024-05-14 20:24:36 +0200 <cheater> right
2024-05-14 20:24:44 +0200 <yin> vim works with fzf too
2024-05-14 20:24:57 +0200 <yin> or just use :find
2024-05-14 20:25:05 +0200 <cheater> yeah but then it's yet another level of complexity to think about
2024-05-14 20:25:13 +0200 <cheater> when doing a trivial thing like opening a file
2024-05-14 20:25:22 +0200 <cheater> like making every single thing more complex isn't the solution
2024-05-14 20:25:50 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
2024-05-14 20:26:00 +0200 <cheater> that's like having to perform a song every time you want a sip of water from your cup
2024-05-14 20:26:11 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 256 seconds)
2024-05-14 20:26:13 +0200 <mauke> symlinks, lol
2024-05-14 20:26:18 +0200 <yin> the directory paradigm isn't the problem here, it's how poorly you choose to navigate it
2024-05-14 20:26:27 +0200 <cheater> well it's not about poor navigation really
2024-05-14 20:26:44 +0200 <cheater> it's about the fact that as programmers we are eager to accept all those "you can just"s
2024-05-14 20:27:10 +0200 <cheater> and then 5 years down the line you're doing nothing but "you can just"s
2024-05-14 20:27:14 +0200 <yin> cheater: the fact that fuzzy finders exist prove that as programmers we didn't accept anything
2024-05-14 20:27:17 +0200demon-cat(~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net) (Ping timeout: 240 seconds)
2024-05-14 20:27:32 +0200 <yin> you're supposed to automate your tasks, that's why computers are programmable
2024-05-14 20:27:40 +0200 <cheater> in your paradigm fuzzy finders need to be invoked every single time you want to open a file
2024-05-14 20:27:53 +0200 <cheater> in my suggestion, they don't. you don't need to do anything every time you want to open a file
2024-05-14 20:28:07 +0200 <yin> nothing stops you from having a single root directory with no subfolders where all your files live
2024-05-14 20:28:44 +0200 <cheater> well, it does, because people still want to be able to discriminate code local to a company or to a project from code that is not such
2024-05-14 20:28:49 +0200 <yin> or a single .hs file
2024-05-14 20:29:11 +0200 <yin> cheater: so you want others to craft a solution to your measure?
2024-05-14 20:29:11 +0200 <cheater> yes. if we want to speak nonsense, nothing's stopping me from rewriting everything in cobol
2024-05-14 20:29:25 +0200 <cheater> yes. specifically you
2024-05-14 20:29:30 +0200 <cheater> i will be very unhappy if it's anyone else
2024-05-14 20:29:43 +0200 <cheater> lol
2024-05-14 20:29:44 +0200 <yin> i don't mean to be rude
2024-05-14 20:30:04 +0200ph88(~ph88@2a02:8109:9e26:c800:50c2:30a5:77d8:a72f)
2024-05-14 20:30:23 +0200 <yin> what would your solution to your problem be?
2024-05-14 20:30:38 +0200 <ph88> is there another way to write code for what i'm trying to do? https://play.haskell.org/saved/d94XX4WG
2024-05-14 20:30:55 +0200 <mauke> https://howfuckedismydatabase.com/nosql/
2024-05-14 20:31:04 +0200target_i(~target_i@user/target-i/x-6023099)
2024-05-14 20:31:49 +0200 <ncf> ph88: i can't guess what you're trying to do from just this
2024-05-14 20:31:52 +0200 <mauke> ph88: I can't tell what you're trying to do
2024-05-14 20:32:00 +0200 <mauke> I'm as confused as the compiler
2024-05-14 20:32:26 +0200 <cheater> yin: in the cabal file, under "test-suite test", have "hs-source-dir-prefix: MyCompany/MyProduct/MyProject/Test"
2024-05-14 20:32:46 +0200 <cheater> one line in the cabal file saves a million lines typed over the lifespan of a programmer
2024-05-14 20:33:42 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-05-14 20:34:32 +0200 <ph88> mauke, i'm trying to have a function that given a data which implements a typeclass can return another data that implements the same type class
2024-05-14 20:34:40 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2024-05-14 20:35:17 +0200 <mauke> what does that even mean
2024-05-14 20:35:29 +0200 <mauke> this feels like an XY problem
2024-05-14 20:35:39 +0200 <yin> cheater: i think that would introduce a lot of problems to other unsuspecting users
2024-05-14 20:35:41 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 240 seconds)
2024-05-14 20:35:47 +0200 <yin> i'm sure you can see that
2024-05-14 20:36:22 +0200 <ph88> mauke, ncf rust has something similar https://doc.rust-lang.org/rust-by-example/trait/dyn.html how to explain ?? in OO languages you return a type that implements an interface
2024-05-14 20:36:24 +0200 <cheater> blinded by greed, i am unable to :)
2024-05-14 20:36:35 +0200 <ncf> sounds like existentials
2024-05-14 20:36:53 +0200 <cheater> ph88: you're talking about uh, factories
2024-05-14 20:37:03 +0200 <cheater> ph88: you don't want those here
2024-05-14 20:37:16 +0200 <ncf> what
2024-05-14 20:37:40 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2024-05-14 20:37:42 +0200 <cheater> but what you're really trying to say is something like myfunction :: (MyClass a) => a -> SomeOtherType -> a
2024-05-14 20:37:58 +0200 <cheater> this type signature tells you that the return type, a, will implement MyClass
2024-05-14 20:38:14 +0200 <mauke> data Box = forall a. (Animal a) => MkBox a
2024-05-14 20:38:15 +0200 <yin> cheater: if you're using vim and think 'apt i fzf' is adding too much complexity to your life, the :find and :vim commands are your friends
2024-05-14 20:38:17 +0200 <ph88> cheater, `getSomething :: forall b. Something b => a -> Maybe b`
2024-05-14 20:38:25 +0200demon-cat(~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net)
2024-05-14 20:38:39 +0200 <cheater> ph88: yes, that is something that is done
2024-05-14 20:38:46 +0200 <mauke> hmm, actually ...
2024-05-14 20:38:52 +0200 <cheater> ph88: the question is why you want that
2024-05-14 20:39:13 +0200 <mauke> data Box (c :: Constraint) = forall a. (c a) => MkBox a -- is that legal?
2024-05-14 20:39:32 +0200 <cheater> yin: what is 'apt i fzf'?
2024-05-14 20:39:37 +0200 <mauke> ah, no
2024-05-14 20:39:46 +0200 <mauke> it would have to be (c :: Type -> Constraint) or something
2024-05-14 20:39:52 +0200 <ph88> i have a typeclass for database entities, the functions are enough to save each entity separately. But i need a function to get the relations (dependencies) from one entity to another.
2024-05-14 20:40:15 +0200 <ph88> I don't want to hardcode my schema as haskell types, please don't suggest it
2024-05-14 20:40:32 +0200 <yin> cheater: apt is a popular package manager used on debian distros. that command installs fzf from the official repositories. you should of course use the appropriate command for your system
2024-05-14 20:40:58 +0200 <ph88> mauke, what's that, existential types?
2024-05-14 20:41:01 +0200 <mauke> yes
2024-05-14 20:41:24 +0200 <ph88> do i need GADT for existential types ?
2024-05-14 20:41:32 +0200 <mauke> I don't think so
2024-05-14 20:41:48 +0200 <ncf> no
2024-05-14 20:41:49 +0200 <cheater> yin: that is not the only line one has to type to use fzf for opening every single file.
2024-05-14 20:41:54 +0200 <yin> no, but GADTs imply existential types i'm pretty sure
2024-05-14 20:42:54 +0200 <ph88> data Box (c :: Type -> Constraint) = forall a. (c a) => MkBox a like this ?
2024-05-14 20:43:03 +0200 <cheater> yin: what i'm trying to do here is to contrast for you, on one side, typing one line into a cabal file and that's it, and on the other side, having to invoke an extra tool every single of the thousands of thousands of times you want to do something related to file paths
2024-05-14 20:43:34 +0200 <ncf> ph88: i still have no idea what you're trying to do
2024-05-14 20:44:41 +0200 <raehik> How can I get GHCi to pretty print my TypeErrors on :k! invocations ? It just prints `= (TypeError ...)` :(
2024-05-14 20:46:55 +0200 <ph88> ncf, similar to this https://stackoverflow.com/questions/5699427/what-does-it-mean-for-a-function-to-return-an-interface i don't know how to explain it better. It's an opaque piece of data other than you know what interface methods you can call on it. In haskell it's an opaque piece of data other than you know which typeclass methods you can call on it
2024-05-14 20:47:12 +0200 <yin> cheater: now see it from my side, the side of a person who is trying to help another person solve a problem: you can add a field to a cabal file that will cause inumerous headaches for everyone when normal paths don't work until you find that there's some obscure line hidden in the middle of a project's cabal OR type fzf instead of cd (i actually have it aliased to just 'z')
2024-05-14 20:47:33 +0200 <ncf> ph88: that describes an existential type, but i can't tell if it's what you actually need
2024-05-14 20:47:59 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 264 seconds)
2024-05-14 20:48:14 +0200 <ph88> ncf, i think i need existential types. I only used them once before, still not entirely sure how they work
2024-05-14 20:49:19 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2024-05-14 20:49:20 +0200 <yin> anyways, it's one of many possible solutions for your problem. i don't think an ecosystem's consistency should suffer by trying to solve problems beyond its scope
2024-05-14 20:49:44 +0200 <mauke> ph88: https://play.haskell.org/saved/9CUzFQLl
2024-05-14 20:50:02 +0200 <cheater> cabal files already have lots of such advanced flags. there's no reason to turn our language into the Fischer Price version of itself just because of some conceived notion of "this might be difficult to explain to a newbie"
2024-05-14 20:50:19 +0200 <yin> cheater: are you using vim or neovim?
2024-05-14 20:50:47 +0200 <cheater> vim
2024-05-14 20:50:50 +0200 <yin> cheater: i feel like you're being purposefuly obtuse. this might be a good place to end the conversation
2024-05-14 20:50:58 +0200 <cheater> not at all
2024-05-14 20:51:31 +0200 <yin> i don't think i can help you
2024-05-14 20:51:43 +0200 <cheater> yes, i agree on that