2021/02/05

2021-02-05 00:00:34 +0100 <monochrom> Refusing to go to school would require parent consent.
2021-02-05 00:01:16 +0100fendor(~fendor@178.115.130.101.wireless.dyn.drei.com) (Ping timeout: 276 seconds)
2021-02-05 00:02:34 +0100DataComputist(~lumeng@50.43.26.251) (Ping timeout: 276 seconds)
2021-02-05 00:02:53 +0100xsperry(~as@unaffiliated/xsperry) (Disconnected by services)
2021-02-05 00:03:04 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-05 00:03:06 +0100xsperry(~as@unaffiliated/xsperry)
2021-02-05 00:03:40 +0100DataComputist(~lumeng@50.43.26.251)
2021-02-05 00:05:14 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-02-05 00:06:24 +0100carlomagno(~cararell@148.87.23.9)
2021-02-05 00:06:24 +0100carlomagno1(~cararell@148.87.23.13) (Remote host closed the connection)
2021-02-05 00:06:41 +0100nineoni__(~nineonine@50.216.62.2) (Remote host closed the connection)
2021-02-05 00:07:13 +0100nineonine(~nineonine@50.216.62.2)
2021-02-05 00:07:48 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
2021-02-05 00:09:22 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 240 seconds)
2021-02-05 00:09:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-02-05 00:10:58 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-hckhahxtjpgetknl)
2021-02-05 00:12:53 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-02-05 00:14:16 +0100ukari(~ukari@unaffiliated/ukari)
2021-02-05 00:15:35 +0100 <koala_man> cursive as in looped cursive? I think that died in the 70s around here, and good riddance
2021-02-05 00:18:12 +0100 <koala_man> it was replaced by a form of italic cursive that used the same letter shapes as print, just joined together for efficiency
2021-02-05 00:21:29 +0100fendor_(~fendor@178.115.130.101.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-02-05 00:21:40 +0100 <ph88^> is it possible get information about which line throw openFile: does not exist (No such file or directory) ? i already tried with +RTS -xc i get a stacktrace without line numbers
2021-02-05 00:22:09 +0100Tesseraction(~Tesseract@unaffiliated/tesseraction) (Ping timeout: 264 seconds)
2021-02-05 00:23:10 +0100Benzi-Junior(~BenziJuni@dsl-149-64-174.hive.is) (Ping timeout: 258 seconds)
2021-02-05 00:23:46 +0100 <ski> koala_man : dunno
2021-02-05 00:24:06 +0100Benzi-Junior(~BenziJuni@dsl-149-67-143.hive.is)
2021-02-05 00:24:09 +0100 <ski> i think one contributing factor was that my programmable pocket calculator (naturally) had block letters
2021-02-05 00:25:38 +0100 <ski> i also recall changing the model digits, that you were supposed to imitate and copy, in the first-year math schoolbooks, so that the zero had a slash though it, the one had a "flag" and a "foot", and the seven a horizontal stroke through it (that last one, the calculator didn't have)
2021-02-05 00:26:39 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-02-05 00:27:43 +0100Tesseraction(~Tesseract@unaffiliated/tesseraction)
2021-02-05 00:28:26 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8527:2d6c:6fbd:96de) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-05 00:29:57 +0100napping(~brandon@174-20-93-137.mpls.qwest.net) (Ping timeout: 264 seconds)
2021-02-05 00:31:30 +0100chrisdotcode(~chrisdotc@unaffiliated/chrisdotcode) (Quit: self-rip)
2021-02-05 00:37:46 +0100renzhi(~renzhi@2607:fa49:6500:6f00::1e43)
2021-02-05 00:38:51 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 00:39:53 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 256 seconds)
2021-02-05 00:44:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-02-05 00:46:59 +0100ransom(~c4264035@2a09:bac0:98::830:861e) (Quit: Textual IRC Client: www.textualapp.com)
2021-02-05 00:47:05 +0100themba_(~themba@bcde0474.skybroadband.com) (Ping timeout: 240 seconds)
2021-02-05 00:54:40 +0100writenix(~quassel@200.99.115.89.rev.vodafone.pt)
2021-02-05 00:55:25 +0100napping(~brandon@174-20-93-137.mpls.qwest.net)
2021-02-05 00:55:47 +0100jrp(05501e8f@5.80.30.143) (Quit: Connection closed)
2021-02-05 00:56:11 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving)
2021-02-05 00:56:24 +0100hackageeither-list-functions 0.0.4.4 - Functions involving lists of Either https://hackage.haskell.org/package/either-list-functions-0.0.4.4 (chris_martin)
2021-02-05 00:57:26 +0100polyrain(~polyrain@124.177.21.171)
2021-02-05 00:58:13 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c)
2021-02-05 01:00:25 +0100napping(~brandon@174-20-93-137.mpls.qwest.net) (Ping timeout: 276 seconds)
2021-02-05 01:01:53 +0100writenix(~quassel@200.99.115.89.rev.vodafone.pt) (Remote host closed the connection)
2021-02-05 01:02:50 +0100writenix(~quassel@200.99.115.89.rev.vodafone.pt)
2021-02-05 01:03:03 +0100writenix(~quassel@200.99.115.89.rev.vodafone.pt) (Client Quit)
2021-02-05 01:05:31 +0100Bobbias(~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41)
2021-02-05 01:06:39 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-02-05 01:07:51 +0100Bobbias(~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) (Read error: Connection reset by peer)
2021-02-05 01:08:10 +0100evanjs(~evanjs@075-129-098-007.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-05 01:09:58 +0100Ishutin(~Ishutin@92-249-182-126.pool.digikabel.hu)
2021-02-05 01:10:47 +0100shush(~pawn@2603-8000-3703-51f4-543f-96f4-bf63-1a0d.res6.spectrum.com)
2021-02-05 01:10:47 +0100evanjs(~evanjs@075-129-098-007.res.spectrum.com)
2021-02-05 01:12:25 +0100 <shush> Is haskell not imperative by default? I'm hearing this idea of lazy-execution. Does that mean it does it not run one function before another unless the other function depends on the one function?
2021-02-05 01:12:45 +0100 <Axman6> correct*
2021-02-05 01:12:56 +0100Ishutin_(~Ishutin@87-97-30-255.pool.digikabel.hu) (Ping timeout: 240 seconds)
2021-02-05 01:13:21 +0100 <Axman6> depending on how the code is written. the IO executes sequentially, as so many other monads
2021-02-05 01:13:26 +0100 <Axman6> IO monad*
2021-02-05 01:13:36 +0100forgottenone(~forgotten@176.42.30.142) (Ping timeout: 240 seconds)
2021-02-05 01:14:05 +0100napping(~brandon@174-20-93-137.mpls.qwest.net)
2021-02-05 01:14:51 +0100 <monochrom> You will need to split "execution" into two notions, one for I/O (still in code order as other languages, not lazy) and one for non-I/O (lambda calculus, lazy)
2021-02-05 01:14:56 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-02-05 01:15:23 +0100 <monochrom> Our community terminology is "execution" for the I/O part, "evaluation" for the lambda calculus part.
2021-02-05 01:15:31 +0100livvy_(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-02-05 01:15:41 +0100 <Axman6> yeah this is really the more important point
2021-02-05 01:15:46 +0100 <monochrom> You haven't thought of this because no one needed this for other languages (puny, pfft)
2021-02-05 01:16:36 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-02-05 01:16:40 +0100 <monochrom> In Scheme land and SML land, they can freely say "evaluation" because in their world "evaluation" = "execution" = "run". You can't do this in Haskell.
2021-02-05 01:16:49 +0100bgamari_(~bgamari@72.65.104.37)
2021-02-05 01:17:21 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
2021-02-05 01:17:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 01:17:25 +0100bgamari(~bgamari@72.65.102.135) (Ping timeout: 240 seconds)
2021-02-05 01:17:45 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2021-02-05 01:18:06 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 01:21:49 +0100napping(~brandon@174-20-93-137.mpls.qwest.net) (Ping timeout: 258 seconds)
2021-02-05 01:24:39 +0100 <Axman6> shush: does that help at all?
2021-02-05 01:24:44 +0100 <ski> shush : Haskell is not imperative, in the sense that evaluating expressions in Haskell won't cause any side-effects (e.g. evaluating `print 42' won't print anything). evaluating an expression yields its value. however, you can still *represent/encode/embed* imperative programming, by having values (called actions), that *represents* "effects" (no "side-" here, the effect is an explicit (although usually
2021-02-05 01:24:50 +0100 <ski> rather coarse-grained) part of the result value, it's not happening "on the side" of computing a result value)
2021-02-05 01:25:31 +0100 <shush> Axman6: That does thanks
2021-02-05 01:25:46 +0100 <ski> and these actions can be "executed", performing the effects they describe (and also typically computing some end-value as a result of the effectful computation)
2021-02-05 01:25:58 +0100 <Axman6> as an example of this, when we talk about evaluation, the way that sum $ map (2^) [1..100] executes is quite different to length $ map (2^) [1..100 -- the latter will not evaluate any of the items in the list, because it doesn't need to to know the length of the list, where as sum has to evaluate each item
2021-02-05 01:26:02 +0100 <shush> It's really cool that it does this by default though
2021-02-05 01:26:27 +0100 <shush> It leads to some really interesting things with parallel computing no?
2021-02-05 01:26:53 +0100 <Axman6> in theory yes, but in practice getting that right is sometimes difficult.
2021-02-05 01:27:00 +0100 <ski> @quote world's.best.imperative
2021-02-05 01:27:00 +0100 <lambdabot> SPJ says: Haskell is the world's best imperative language.
2021-02-05 01:27:17 +0100 <Axman6> you can always evaluate all parts of a haskell exprtession in parallel, but the overhead of that is almost never worth it
2021-02-05 01:27:29 +0100 <shush> Axman6: All one would need to do is think about state dependencies (state B depends on state A, etc).
2021-02-05 01:27:43 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-05 01:27:46 +0100 <ski> Simon's referring to the great ease by which one can construct, combine, and represent actions, there
2021-02-05 01:28:03 +0100 <shush> Axman6: Why would there be more overhead to evaluate parts in parallel?
2021-02-05 01:28:08 +0100 <Axman6> a single thread will wvaluate sum $ map (2^) [1..100] faster than you would be able to distribute the small computations which lead to the result
2021-02-05 01:28:46 +0100 <shush> Axman6: Wouldn't it be better for the system to do this (the hardware)?
2021-02-05 01:28:53 +0100 <ski> (that doesn't mean imperative programming in Haskell is now easy. there's still lots of potential problems you could stumble upon. but Haskell has insulated that away from the pure evaluation of expressions part of the language)
2021-02-05 01:29:19 +0100 <Axman6> but, we do also have very powerful ways to describe how to evaluate things in parallel, for example http://hackage.haskell.org/package/parallel/docs/Control-Parallel-Strategies.html
2021-02-05 01:29:57 +0100 <ski> shush : perhaps, but we don't have the hardware for doing that
2021-02-05 01:30:18 +0100 <ephemient> we have things like http://hackage.haskell.org/package/repa too
2021-02-05 01:30:39 +0100 <ski> (perhaps FPGA things could help to some extent on that front, though)
2021-02-05 01:30:55 +0100 <Axman6> REDUCERON!
2021-02-05 01:31:02 +0100skiwas just about to mention ..
2021-02-05 01:32:13 +0100 <shush> ephemient: I like your funny words functional man
2021-02-05 01:32:18 +0100 <ski> even Lisp machines are no more ..
2021-02-05 01:32:26 +0100 <shush> "High performance, regular, shape polymorphic parallel arrays." o.o
2021-02-05 01:32:33 +0100 <Axman6> we also have monad-par: https://hackage.haskell.org/package/monad-par-0.3.5/docs/Control-Monad-Par.html
2021-02-05 01:32:48 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 01:32:49 +0100skimisses Data Parallel Haskell
2021-02-05 01:32:53 +0100 <Axman6> which is a way to describing the dependencies between different computations to have them evaluated in parallel
2021-02-05 01:32:57 +0100xiinotulp(~q@node-usw.pool-125-24.dynamic.totinternet.net)
2021-02-05 01:33:00 +0100napping(~brandon@174-20-93-137.mpls.qwest.net)
2021-02-05 01:33:04 +0100 <Axman6> -Odph
2021-02-05 01:33:08 +0100Jd007(~Jd007@162.156.11.151) (Quit: Jd007)
2021-02-05 01:34:18 +0100forgottenone(~forgotten@176.42.26.20)
2021-02-05 01:34:49 +0100ski. o O ( `IVar' )
2021-02-05 01:36:16 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-02-05 01:36:25 +0100plutoniix(~q@node-upb.pool-125-24.dynamic.totinternet.net) (Ping timeout: 265 seconds)
2021-02-05 01:37:21 +0100 <Axman6> shush: repa is about performing operations on arrays which get evaluated in parallel automatically. regular = not sparse, share polymorphic means they can have arbitrary dimensions
2021-02-05 01:37:25 +0100napping(~brandon@174-20-93-137.mpls.qwest.net) (Ping timeout: 240 seconds)
2021-02-05 01:37:39 +0100DataComputist(~lumeng@50.43.26.251) (Read error: Connection reset by peer)
2021-02-05 01:37:47 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds)
2021-02-05 01:38:21 +0100Tesseraction(~Tesseract@unaffiliated/tesseraction) (Ping timeout: 264 seconds)
2021-02-05 01:38:24 +0100DataComputist(~lumeng@50.43.26.251)
2021-02-05 01:38:26 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-05 01:38:41 +0100bgamari_(~bgamari@72.65.104.37) (Remote host closed the connection)
2021-02-05 01:38:46 +0100metreo(~Thunderbi@unaffiliated/metreo) (Remote host closed the connection)
2021-02-05 01:38:57 +0100metreo(~Thunderbi@unaffiliated/metreo)
2021-02-05 01:39:04 +0100bgamari(~bgamari@2001:470:e438::1)
2021-02-05 01:39:04 +0100desophos(~desophos@2601:249:1680:a570:84f9:a158:4c9:c8e9)
2021-02-05 01:39:56 +0100pengjiz(~user@cmu-secure-128-237-82-2.nat.cmu.net) (Quit: ERC (IRC client for Emacs 27.1))
2021-02-05 01:40:05 +0100p8m(p8m@gateway/vpn/protonvpn/p8m)
2021-02-05 01:40:09 +0100Bobbias(~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41)
2021-02-05 01:40:42 +0100Bobbias(~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) (Read error: Connection reset by peer)
2021-02-05 01:40:45 +0100puffnfresh(~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) (Ping timeout: 240 seconds)
2021-02-05 01:45:25 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-02-05 01:46:19 +0100p7lpa1ugixavugu(~atomic@2800:810:514:8155:885f:ca4:6add:b1fa) (Remote host closed the connection)
2021-02-05 01:47:32 +0100puffnfresh(~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net)
2021-02-05 01:48:07 +0100conal(~conal@64.71.133.70)
2021-02-05 01:49:25 +0100Bobbias(~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41)
2021-02-05 01:49:55 +0100Bobbias(~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) (Read error: Connection reset by peer)
2021-02-05 01:50:05 +0100salumu(~sMuNiX@vlnsm8-montreal02-142-122-8-233.internet.virginmobile.ca)
2021-02-05 01:50:16 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-02-05 01:52:01 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-02-05 01:52:32 +0100Jd007(~Jd007@162.156.11.151)
2021-02-05 01:52:37 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-05 01:53:20 +0100sMuNiX(~sMuNiX@vlnsm8-montreal02-142-122-8-233.internet.virginmobile.ca) (Ping timeout: 265 seconds)
2021-02-05 01:53:56 +0100mrchampion(~mrchampio@38.18.109.23) (Ping timeout: 240 seconds)
2021-02-05 01:55:45 +0100brainfunnel(~quassel@12.23.199.146.dyn.plus.net)
2021-02-05 01:57:29 +0100shush(~pawn@2603-8000-3703-51f4-543f-96f4-bf63-1a0d.res6.spectrum.com) (Remote host closed the connection)
2021-02-05 01:57:33 +0100mrchampion(~mrchampio@38.18.109.23)
2021-02-05 01:58:01 +0100jessjesspacito
2021-02-05 01:59:33 +0100Sgeo_(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-02-05 01:59:48 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2021-02-05 02:00:25 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-02-05 02:05:04 +0100urodna(~urodna@unaffiliated/urodna)
2021-02-05 02:05:15 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:e9bf:1d6f:43d1:d11b)
2021-02-05 02:06:17 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Remote host closed the connection)
2021-02-05 02:08:30 +0100xiinotulp(~q@node-usw.pool-125-24.dynamic.totinternet.net) (Quit: Leaving)
2021-02-05 02:08:37 +0100kupi(uid212005@gateway/web/irccloud.com/x-pyrfhfaitkpiyesc) (Quit: Connection closed for inactivity)
2021-02-05 02:09:26 +0100aveltras(uid364989@gateway/web/irccloud.com/x-wppxrrvmmzrfxdph) (Quit: Connection closed for inactivity)
2021-02-05 02:12:50 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 02:15:38 +0100 <desophos> hi, i think i'm having an issue with quickCheckAll. i'm getting a "Variable not in scope" error that makes no sense to me and i'm not sure what its source is. maybe something to do with resolving type variables? https://gist.github.com/desophos/6f71326e351aa3c497f24e88d5aee155
2021-02-05 02:16:05 +0100Neuromancer(~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 240 seconds)
2021-02-05 02:16:05 +0100usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2021-02-05 02:16:16 +0100peasynt(~quassel@pool-173-76-103-124.bstnma.fios.verizon.net) (Quit: quit.)
2021-02-05 02:16:50 +0100 <Axman6> have you saved Agent.hs?
2021-02-05 02:17:06 +0100 <desophos> yes
2021-02-05 02:17:21 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-02-05 02:17:29 +0100 <Axman6> try using import Agent (mergeAgents)
2021-02-05 02:17:37 +0100 <Axman6> and see if you get a different error
2021-02-05 02:18:04 +0100 <Axman6> oh, quickCheckAll is TH, that might be problematic
2021-02-05 02:18:34 +0100 <desophos> i'll try that, but yeah it is :/
2021-02-05 02:19:06 +0100deviantfero(~deviantfe@190.150.27.58) (Quit: WeeChat 3.0)
2021-02-05 02:19:33 +0100 <Axman6> it's possible you may need to put the call to quickCheckAll in a different file
2021-02-05 02:20:18 +0100 <desophos> wow, i actually just forgot to export mergeAgents haha
2021-02-05 02:20:22 +0100 <shiraeeshi> what's TH?
2021-02-05 02:20:44 +0100 <ski> Template Haskell
2021-02-05 02:21:39 +0100 <Axman6> desophos: in the file you shared it is definitely exported, which is why I asked about it being saved
2021-02-05 02:22:33 +0100 <desophos> yes, that file doesn't reflect mine exactly. i tried to cut out everything unrelated but it appears i overlooked the export list!
2021-02-05 02:24:16 +0100 <desophos> now i just need to figure out how to derive Show for functions
2021-02-05 02:25:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 02:25:16 +0100 <ski> instance Show (a -> b) where showsPrec _ _ = showString "<function>" -- would do it
2021-02-05 02:25:25 +0100 <desophos> thanks for having me explicitly import mergeAgents because that was what led me to discover it wasn't actually being exported
2021-02-05 02:25:34 +0100 <ski> (but i wouldn't suggest using that for anything else than debugging)
2021-02-05 02:25:59 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-02-05 02:26:13 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com) (Ping timeout: 258 seconds)
2021-02-05 02:26:24 +0100 <desophos> i think i'll just print the types because they're encoder/decoder functions
2021-02-05 02:28:04 +0100 <ski> you could use something like `showsPrec p _ = showParen True $ showString "_ :: " . shows (typeOf (undefined :: a -> b))'
2021-02-05 02:30:04 +0100 <ski> % instance (Typeable a,Typeable b) => Show (a -> b) where showsPrec _ _ = showParen True $ showString "_ :: " . shows (typeOf (undefined :: a -> b))
2021-02-05 02:30:04 +0100 <yahb> ski:
2021-02-05 02:30:07 +0100 <ski> % ord
2021-02-05 02:30:07 +0100 <yahb> ski: (_ :: Char -> Int)
2021-02-05 02:31:20 +0100 <ski> (but please don't put that instance in a library module that provides other useful functionality)
2021-02-05 02:31:39 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-05 02:32:24 +0100hackageghc-lib-parser 9.0.1.20210205 - The GHC API, decoupled from GHC versions https://hackage.haskell.org/package/ghc-lib-parser-9.0.1.20210205 (shayne_fletcher)
2021-02-05 02:33:24 +0100hackageghc-lib 9.0.1.20210205 - The GHC API, decoupled from GHC versions https://hackage.haskell.org/package/ghc-lib-9.0.1.20210205 (shayne_fletcher)
2021-02-05 02:33:37 +0100 <desophos> if i defined an alias `type Encoder = a -> String` and wrote a Show instance for it, would that bypass the issue of including a Show instance for `a -> b`?
2021-02-05 02:33:49 +0100 <desophos> er, for `a -> String`
2021-02-05 02:34:07 +0100 <desophos> or would it still apply to all `a -> String`?
2021-02-05 02:34:13 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-05 02:34:41 +0100 <ski> % type Encoder = a -> String
2021-02-05 02:34:42 +0100 <yahb> ski: ; <interactive>:112:16: error: Not in scope: type variable `a'
2021-02-05 02:34:52 +0100 <ski> where's `a' coming from ?
2021-02-05 02:35:08 +0100 <desophos> sorry, it would be `type Encoder a = a -> String`
2021-02-05 02:35:40 +0100 <ski> writing an instance for a type synonym is the same thing as writing an instance for what it's defined to be, since those two are the same type
2021-02-05 02:36:03 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:e9bf:1d6f:43d1:d11b) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-05 02:36:06 +0100 <desophos> alright thanks, that makes sense
2021-02-05 02:36:12 +0100 <ski> writing `instance ..a.. => Show (Encoder a) where ...' is no different from writing `instance ..a.. => Show (a -> String) where ...'
2021-02-05 02:36:16 +0100 <ski> it does the same thing
2021-02-05 02:36:36 +0100 <ski> (however, the former is only allowed, with `FlexibleInstances' (a fairly benign extension)
2021-02-05 02:36:40 +0100 <ski> )
2021-02-05 02:37:32 +0100 <ski> if you had a `newtype' (or `data' type) though, you could have a separate instance for it
2021-02-05 02:38:24 +0100 <desophos> well, i have a record type with fields that are those function types
2021-02-05 02:38:54 +0100 <desophos> so i could write a Show instance for the record type that only special-cases those fields
2021-02-05 02:38:57 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-02-05 02:39:00 +0100 <ski> like `instance Typeable a => Show (Encoder a) where showsPrec _ _ = showParen True $ showString "_ :: Encoder " . showsPrec 11 (typeOf (undefined :: a))'
2021-02-05 02:40:26 +0100 <ski> desophos : well, that's also a possibility. but please define `showsPrec' (and not `show'), and please properly make use of `showParen',`showString',`showChar',`showsPrec',`shows'
2021-02-05 02:40:49 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 02:43:37 +0100 <desophos> thank you, i will. i'd really rather just derive Show for those functions though. the issue is that my Show instance for `a -> String` would potentially conflict with instances defined by module importers, right?
2021-02-05 02:44:06 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 02:45:19 +0100Bobbias(~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41)
2021-02-05 02:45:55 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-05 02:46:08 +0100Bobbias(~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) (Read error: Connection reset by peer)
2021-02-05 02:46:16 +0100 <ski> desophos : yes
2021-02-05 02:47:09 +0100 <ski> since there's no "official instance", it may happen that some other library someone might want to use may also define an instance for (some) function types (even though they usually shouldn't !)
2021-02-05 02:47:29 +0100 <ski> (if that happens, the two modules can't be combined into a single program)
2021-02-05 02:47:32 +0100metreo(~Thunderbi@unaffiliated/metreo) (Quit: metreo)
2021-02-05 02:47:47 +0100jle`(~mstksg@unaffiliated/mstksg)
2021-02-05 02:48:26 +0100 <desophos> so what's the proper thing to do in this situation?
2021-02-05 02:48:44 +0100 <ski> `(Bounded a,Enum a,Show a,Show b) => Show (a,b)' is one possible, somewhat reasonable, instance that could be used
2021-02-05 02:48:48 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
2021-02-05 02:49:02 +0100 <desophos> hmm, maybe my test module could define the instances
2021-02-05 02:49:06 +0100polyrain(~polyrain@124.177.21.171) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-05 02:49:08 +0100 <ski> (e.g. `show not' would then display as `\case False -> True; True -> False')
2021-02-05 02:49:36 +0100DataComputist(~lumeng@50.43.26.251) (Ping timeout: 240 seconds)
2021-02-05 02:49:44 +0100 <ski> desophos : or if you have several test modules where you'd like to use it, you could make a helper test module, that you import in those that do
2021-02-05 02:49:54 +0100 <desophos> yeah that's what i was thinking
2021-02-05 02:50:22 +0100 <desophos> hmm that Show instance is interesting
2021-02-05 02:50:42 +0100Murasca(~Murasca@bcde0474.skybroadband.com)
2021-02-05 02:51:41 +0100 <desophos> how would a `Show (a,b)` instance work for `not`?
2021-02-05 02:51:52 +0100 <ski> (one could generalize `(Bounded a,Enum a)' to some constraint `Finite a', with a corresponding method `finiteEnumeration :: [a]')
2021-02-05 02:52:05 +0100 <ski> `(a,b)' is a pair type
2021-02-05 02:52:16 +0100 <ski> er, sorry, mea culpa
2021-02-05 02:52:26 +0100 <ski> i meant `... => Show (a -> b)'
2021-02-05 02:52:32 +0100 <desophos> ah yes, that makes more sense haha
2021-02-05 02:52:43 +0100 <ski> yea, i should think so ! :p
2021-02-05 02:52:58 +0100 <desophos> that would be a pretty useful instance though
2021-02-05 02:53:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 02:53:18 +0100polyrain(~polyrain@2001:8003:e4d8:4101:e942:1e05:b6e2:4ede)
2021-02-05 02:54:40 +0100 <ski> however, it would perhaps be nicer to have `(&&)' shown as something like `\x y -> case (x,y) of (False,False) -> False; (False,True) -> False; (True,False) -> False; (True,True) -> True', rather than `\case False -> (\case False -> False; True -> False); True -> (\case False -> False; True -> True)'
2021-02-05 02:54:54 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-05 02:55:10 +0100 <ski> (but one main problem then would be generation of unique variable names ..)
2021-02-05 02:55:16 +0100djxolar(~root@190.66.188.39)
2021-02-05 02:55:51 +0100 <djxolar> Hi
2021-02-05 02:56:14 +0100 <desophos> i think i'm fine with just showing the type for now
2021-02-05 02:56:17 +0100 <ski> (btw, the advantage of `Finite' would be that it could work for argument types like `Either (Bool,Ordering) (Ordering -> Bool)')
2021-02-05 02:56:32 +0100 <ski> hello djxolar
2021-02-05 02:57:52 +0100djxolar(~root@190.66.188.39) (Client Quit)
2021-02-05 02:57:54 +0100hackageghc-lib-parser-ex 9.0.0.0 - Algorithms on GHC parse trees https://hackage.haskell.org/package/ghc-lib-parser-ex-9.0.0.0 (shayne_fletcher)
2021-02-05 02:58:19 +0100notzmv(~user@unaffiliated/zmv)
2021-02-05 02:59:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-02-05 03:00:27 +0100DataComputist(~lumeng@50.43.26.251)
2021-02-05 03:05:07 +0100 <koz_> Where can I find the list of packages which ship with GHC again?
2021-02-05 03:06:16 +0100catt(~r@31.124.181.226) (Remote host closed the connection)
2021-02-05 03:06:49 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2021-02-05 03:07:40 +0100napping(~brandon@174-20-93-137.mpls.qwest.net)
2021-02-05 03:08:08 +0100 <yushyin> https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history maybe?
2021-02-05 03:08:39 +0100 <koz_> yushyin: Yep, thanks!
2021-02-05 03:09:12 +0100jedws(~jedws@101.184.202.248)
2021-02-05 03:10:02 +0100rajivr(uid269651@gateway/web/irccloud.com/x-khjufreymueqbnyt)
2021-02-05 03:11:10 +0100jedws(~jedws@101.184.202.248) (Client Quit)
2021-02-05 03:12:19 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2021-02-05 03:12:20 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 03:14:26 +0100Bobbias(~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41)
2021-02-05 03:14:49 +0100Bobbias(~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) (Read error: Connection reset by peer)
2021-02-05 03:15:32 +0100LKoen_(~LKoen@252.248.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-02-05 03:17:33 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:e9bf:1d6f:43d1:d11b)
2021-02-05 03:20:26 +0100jophish(~jophish@2400:8901::f03c:91ff:fe39:7a9) (Ping timeout: 264 seconds)
2021-02-05 03:20:48 +0100toorevitimirp(~tooreviti@117.182.181.186)
2021-02-05 03:20:48 +0100toorevitimirp(~tooreviti@117.182.181.186) (Remote host closed the connection)
2021-02-05 03:21:12 +0100toorevitimirp(~tooreviti@117.182.181.186)
2021-02-05 03:21:16 +0100jophish(~jophish@2400:8901::f03c:91ff:fe39:7a9)
2021-02-05 03:21:36 +0100Bobbias(~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41)
2021-02-05 03:22:17 +0100Bobbias(~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) (Read error: Connection reset by peer)
2021-02-05 03:24:23 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
2021-02-05 03:24:28 +0100forgottenone(~forgotten@176.42.26.20) (Quit: Konversation terminated!)
2021-02-05 03:25:24 +0100hackageghc-lib-parser-ex 9.0.0.1 - Algorithms on GHC parse trees https://hackage.haskell.org/package/ghc-lib-parser-ex-9.0.0.1 (shayne_fletcher)
2021-02-05 03:28:27 +0100xff0x_(~xff0x@2001:1a81:53aa:1900:f90b:c43e:4a98:6d16) (Ping timeout: 260 seconds)
2021-02-05 03:30:01 +0100xff0x_(~xff0x@2001:1a81:520c:9300:586a:55e0:d9f8:4e5c)
2021-02-05 03:30:13 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-05 03:35:13 +0100polyrain(~polyrain@2001:8003:e4d8:4101:e942:1e05:b6e2:4ede) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-05 03:37:26 +0100raym(~ray@45.64.220.55) (Quit: leaving)
2021-02-05 03:37:35 +0100raym(~ray@45.64.220.55)
2021-02-05 03:38:33 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 03:42:36 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-02-05 03:44:13 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-05 03:48:13 +0100brainfunnel(~quassel@12.23.199.146.dyn.plus.net) (Quit: thanks, bye!)
2021-02-05 03:48:21 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-lngcdofcaxbyafyr)
2021-02-05 03:51:48 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 246 seconds)
2021-02-05 03:52:01 +0100falsifian(~falsifian@cpef81d0f9cb2f3-cmf81d0f9cb2f0.cpe.net.fido.ca)
2021-02-05 03:53:58 +0100 <falsifian> Is there a way to list the files that were installed, or that will be installed, by cabal v2-install? I tried running "cabal v2-install --prefix=$HOME/tmp/git-annex" (in a checkout of the git-annex project) in the hope that all the files would end up in that directory and I could see what they are, but the --prefix argument had no effect.
2021-02-05 03:54:40 +0100 <falsifian> This is Cabal 3.4.0.0.
2021-02-05 03:59:39 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 03:59:53 +0100quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
2021-02-05 04:00:25 +0100hackagekparams 0.1.0.0 - Extracts values from /proc/cmdline. https://hackage.haskell.org/package/kparams-0.1.0.0 (mcsaucy)
2021-02-05 04:00:51 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 04:02:50 +0100 <glguy> falsifian, install (previously v2-install) just adds the packages to the store and symlinks to the executables. You can see what was installed looking in ~/.cabal/store
2021-02-05 04:02:53 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:e9bf:1d6f:43d1:d11b) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-05 04:03:15 +0100 <glguy> there's probably a way to change what that path is, but I would expect if you did that it would have to install all your dependencies into that new path
2021-02-05 04:03:42 +0100 <glguy> I haven’t played with that kind of thing much; what are you trying to do?
2021-02-05 04:03:45 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-02-05 04:04:36 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:d565:4fe9:2191:8f98)
2021-02-05 04:05:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 04:05:17 +0100 <falsifian> Trying to understand how the man pages are supposed to get installed. Also trying to help package it for OpenBSD.
2021-02-05 04:05:58 +0100 <glguy> I don’t think cabal will help you install man pages
2021-02-05 04:06:48 +0100 <falsifian> Hm, perhaps it's done outside Cabal. Maybe I'll look at how some Linux distributions do it.
2021-02-05 04:07:16 +0100micro(~micro@unaffiliated/micro) (Ping timeout: 240 seconds)
2021-02-05 04:08:03 +0100 <falsifian> Oh, heh, there's a Makefile.
2021-02-05 04:08:10 +0100 <falsifian> And installation instructions.
2021-02-05 04:09:47 +0100 <falsifian> Hm, but it looks like the man pages are installed by a postCopy hook in Setup.hs.
2021-02-05 04:10:02 +0100micro(~micro@unaffiliated/micro)
2021-02-05 04:10:45 +0100theDon(~td@muedsl-82-207-238-046.citykom.de) (Ping timeout: 240 seconds)
2021-02-05 04:12:39 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 04:12:44 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 04:12:49 +0100theDon(~td@muedsl-82-207-238-211.citykom.de)
2021-02-05 04:12:58 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2021-02-05 04:17:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 04:17:05 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-02-05 04:17:16 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-02-05 04:18:30 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 04:18:39 +0100 <desophos> ski, i'm getting an error using the code you posted earlier. the gist is modified slightly but i get the same error with your code verbatim, or even passing just a `Proxy a` to `typeRep`. do i need some language extension to make this work? i don't understand what the typechecker wants from me
2021-02-05 04:18:40 +0100 <desophos> https://gist.github.com/desophos/62603c4a120393b92941f29c60da22a8
2021-02-05 04:20:04 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 258 seconds)
2021-02-05 04:21:33 +0100shiraeeshi(~shiraeesh@109.166.56.2) (Ping timeout: 264 seconds)
2021-02-05 04:22:01 +0100Codaraxis__(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-02-05 04:22:21 +0100desophos_(~desophos@2601:249:1680:a570:401a:e62d:b79f:2b1)
2021-02-05 04:25:44 +0100 <c_wraith> desophos: That looks like a ScopedTypeVariables issue
2021-02-05 04:26:08 +0100 <c_wraith> the `a` and `b` in your type for p are unrelated to the types in the show instance
2021-02-05 04:26:09 +0100mirrorbird(~psutcliff@2a00:801:2d5:848b:590:cf4f:5eeb:b49d) (Ping timeout: 272 seconds)
2021-02-05 04:26:28 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-05 04:26:32 +0100 <desophos_> oh, really? hmm
2021-02-05 04:26:45 +0100 <c_wraith> desophos: so throw {-# LANGUAGE ScopedTypeVariables #-} at the start of the file
2021-02-05 04:26:48 +0100 <desophos_> that would make sense lol
2021-02-05 04:27:09 +0100 <desophos_> thank you! I’ll add that extension
2021-02-05 04:28:04 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-hckhahxtjpgetknl) (Quit: Connection closed for inactivity)
2021-02-05 04:29:27 +0100 <ski> desophos : ah, yes. i should probably have said that
2021-02-05 04:30:14 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-02-05 04:31:20 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 04:31:36 +0100TianGTY(~textual@103.116.47.198)
2021-02-05 04:32:57 +0100Sgeo_(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 264 seconds)
2021-02-05 04:33:24 +0100 <ukari> hoggle haskell returns a 502 error, https://hoogle.haskell.org/
2021-02-05 04:34:08 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-02-05 04:34:17 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-02-05 04:37:05 +0100FinnElija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-02-05 04:37:05 +0100finn_elijaGuest61759
2021-02-05 04:37:05 +0100FinnElijafinn_elija
2021-02-05 04:41:14 +0100Guest61759(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
2021-02-05 04:41:35 +0100desophos_(~desophos@2601:249:1680:a570:401a:e62d:b79f:2b1) (Quit: Mutter: www.mutterirc.com)
2021-02-05 04:46:58 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi)
2021-02-05 04:48:41 +0100Tario(~Tario@201.192.165.173)
2021-02-05 04:50:22 +0100 <falsifian> ukary: Works for me.
2021-02-05 04:50:29 +0100 <falsifian> Sorry, I mean ukari
2021-02-05 04:51:10 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 276 seconds)
2021-02-05 04:51:53 +0100DataComputist(~lumeng@50.43.26.251) (Ping timeout: 258 seconds)
2021-02-05 04:53:46 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 276 seconds)
2021-02-05 04:53:57 +0100djcaston(~djcaston@pool-71-188-85-134.cmdnnj.east.verizon.net)
2021-02-05 04:54:36 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 04:54:54 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 04:55:24 +0100DataComputist(~lumeng@50.43.26.251)
2021-02-05 04:55:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 04:57:42 +0100 <ukari> falsifian, now it works for me too
2021-02-05 05:00:39 +0100Rudd0(~Rudd0@185.189.115.103)
2021-02-05 05:01:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 05:01:50 +0100borne(~fritjof@2a06:8782:ffbb:1337:a53:e188:6f13:d1a) (Ping timeout: 264 seconds)
2021-02-05 05:02:02 +0100chrisdotcode(~chrisdotc@unaffiliated/chrisdotcode)
2021-02-05 05:03:10 +0100napping(~brandon@174-20-93-137.mpls.qwest.net) (Quit: leaving)
2021-02-05 05:03:32 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Remote host closed the connection)
2021-02-05 05:06:49 +0100glguy(x@freenode/staff/haskell.developer.glguy) (Remote host closed the connection)
2021-02-05 05:06:57 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 05:07:48 +0100glguy(x@freenode/staff/haskell.developer.glguy)
2021-02-05 05:08:07 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
2021-02-05 05:09:22 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 240 seconds)
2021-02-05 05:09:39 +0100jedws(~jedws@101.184.202.248)
2021-02-05 05:09:57 +0100ericsagnes(~ericsagne@2405:6580:0:5100:6838:f94d:c1b8:154c) (Ping timeout: 260 seconds)
2021-02-05 05:11:00 +0100hexfive(~hexfive@50.35.83.177) (Quit: i must go. my people need me.)
2021-02-05 05:11:15 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2021-02-05 05:11:57 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds)
2021-02-05 05:13:47 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2021-02-05 05:14:38 +0100dyeplexer(~lol@unaffiliated/terpin)
2021-02-05 05:14:43 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 05:15:58 +0100tuxian(~tuxian@2405:201:e018:998a:3041:aef8:2683:35e0)
2021-02-05 05:18:28 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-02-05 05:19:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 05:22:34 +0100ericsagnes(~ericsagne@2405:6580:0:5100:2bad:a6b1:9f59:3808)
2021-02-05 05:24:07 +0100plutoniix(~q@184.82.194.56)
2021-02-05 05:28:11 +0100 <texasmynsted> Is there something special about QuasiQuotes for Text.Heredoc?
2021-02-05 05:28:37 +0100 <texasmynsted> I keep getting an error error: parse error on input ‘|]’
2021-02-05 05:28:54 +0100 <c_wraith> do you have the QuasiQuotes extension enabled?
2021-02-05 05:29:21 +0100 <texasmynsted> I have template haskell extension enabled. I did not know there was a quasiquotes extension
2021-02-05 05:30:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-02-05 05:30:29 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 05:31:22 +0100 <texasmynsted> do not see anything about that here either https://wiki.haskell.org/Quasiquotation
2021-02-05 05:31:44 +0100tuxian(~tuxian@2405:201:e018:998a:3041:aef8:2683:35e0) (Remote host closed the connection)
2021-02-05 05:33:29 +0100 <texasmynsted> hmm. So what do I need to do?
2021-02-05 05:33:40 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 258 seconds)
2021-02-05 05:33:45 +0100 <glguy> texasmynsted, do you have the code somewhere we can see?
2021-02-05 05:34:23 +0100 <texasmynsted> okay. One sec. You are welcome to provide suggestions for the rest of the file also heh.
2021-02-05 05:34:49 +0100 <c_wraith> well, ghc accepts QuasiQuotes as an extension
2021-02-05 05:34:53 +0100 <c_wraith> I recommend turning it on
2021-02-05 05:35:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 05:35:24 +0100 <texasmynsted> okay, sounds like something for my project's cabal file
2021-02-05 05:35:57 +0100 <texasmynsted> https://gist.github.com/mmynsted/c48c648815338e55916b2ca273cf3bcf
2021-02-05 05:36:15 +0100 <texasmynsted> oops
2021-02-05 05:36:21 +0100 <texasmynsted> I have my host in there
2021-02-05 05:36:28 +0100 <c_wraith> https://downloads.haskell.org/ghc/latest/docs/html/users_guide/exts/template_haskell.html#template…
2021-02-05 05:36:37 +0100 <c_wraith> as always, trust the ghc manual before wiki pages
2021-02-05 05:37:29 +0100 <c_wraith> (it's really a good resource)
2021-02-05 05:39:31 +0100 <c_wraith> Also, fwiw, I recommend against turning on extensions in the cabal file, unless you are about 115% sure you will need it in every single file.
2021-02-05 05:39:48 +0100 <texasmynsted> hmm. it built but it changed the way the template haskell works, or it ignored the replacement inside the heredoc.
2021-02-05 05:40:12 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Remote host closed the connection)
2021-02-05 05:40:12 +0100 <texasmynsted> I just added extensions: QuasiQuotes, for that particular executable
2021-02-05 05:40:37 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-05 05:41:29 +0100conal(~conal@64.71.133.70)
2021-02-05 05:42:44 +0100 <texasmynsted> Hmm. since the template haskell replacement did not work, it looks like more trouble than it is worth for now.
2021-02-05 05:44:45 +0100 <texasmynsted> Hmm. I suspect I just need to learn how to use it correctly. Maybe this is one to try for the moment. https://hackage.haskell.org/package/neat-interpolation
2021-02-05 05:45:00 +0100 <texasmynsted> also any suggestions for improvement on the rest of the file?
2021-02-05 05:45:33 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
2021-02-05 05:45:49 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-02-05 05:46:02 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-02-05 05:46:47 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 05:48:01 +0100 <Squarism> how do I extend cabal with resource processing as part of a build, if even possible?
2021-02-05 05:52:18 +0100 <c_wraith> there's always build-type: custom
2021-02-05 05:52:36 +0100 <c_wraith> But that makes building a lot slower
2021-02-05 05:52:38 +0100oldandwise(~oldandwis@49.145.174.153)
2021-02-05 05:52:54 +0100 <c_wraith> since it makes cabal actually care about Setup.hs
2021-02-05 05:55:09 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-05 05:56:21 +0100gienah(~mwright@gentoo/developer/gienah) (Quit: leaving)
2021-02-05 05:56:51 +0100oldandwise(~oldandwis@49.145.174.153) (Client Quit)
2021-02-05 05:58:42 +0100notzmv(~user@unaffiliated/zmv)
2021-02-05 05:58:53 +0100oldandwise(~oldandwis@49.145.174.153)
2021-02-05 05:58:55 +0100ByronJohnson(~bairyn@unaffiliated/bob0) (Ping timeout: 256 seconds)
2021-02-05 05:59:04 +0100ByronJohnson(~bairyn@unaffiliated/bob0)
2021-02-05 05:59:06 +0100styledash(~styledash@157.230.173.136) (Quit: The Lounge - https://thelounge.chat)
2021-02-05 05:59:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 05:59:54 +0100styledash(~styledash@157.230.173.136)
2021-02-05 06:00:56 +0100oldandwise(~oldandwis@49.145.174.153) (Client Quit)
2021-02-05 06:01:03 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 06:02:30 +0100Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-02-05 06:03:45 +0100DataComputist(~lumeng@50.43.26.251) (Ping timeout: 246 seconds)
2021-02-05 06:05:16 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-02-05 06:06:02 +0100zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-02-05 06:06:10 +0100alx741(~alx741@186.178.110.33) (Quit: alx741)
2021-02-05 06:06:15 +0100Codaraxis__(Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 258 seconds)
2021-02-05 06:08:24 +0100DataComputist(~lumeng@50.43.26.251)
2021-02-05 06:08:34 +0100Jd007(~Jd007@162.156.11.151) (Quit: Jd007)
2021-02-05 06:11:25 +0100 <texasmynsted> I am looking here https://www.haskell.org/cabal/release/cabal-1.18.1/doc/users-guide/developing-packages.html#exampl…
2021-02-05 06:12:00 +0100 <texasmynsted> Why is not a hs-source-dirs for the Library?
2021-02-05 06:12:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-05 06:13:17 +0100 <texasmynsted> I see sources for program1 in prog1, and program2 in prog2, should not library be in lib or something?
2021-02-05 06:13:45 +0100zaquest(~notzaques@5.128.210.178)
2021-02-05 06:16:21 +0100crestfallen(~jvw@135-180-46-152.fiber.dynamic.sonic.net)
2021-02-05 06:16:38 +0100 <c_wraith> that would probably be a better layout, but it doesn't actually matter. It treats it as . if it's not specified, and since module names must always be capitalized, there can't be namespace collisions
2021-02-05 06:16:58 +0100frozenErebus(~frozenEre@94.128.81.133) (Quit: leaving)
2021-02-05 06:17:05 +0100 <c_wraith> So, it will all work as is. But your suggestion would be nicer to work with
2021-02-05 06:17:08 +0100ixaxaar(~ixaxaar@49.207.210.215)
2021-02-05 06:17:30 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-05 06:19:45 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 06:19:45 +0100 <texasmynsted> okay. Thank you. I will try with lib. I expect this is the normal way to share modules across executables?
2021-02-05 06:24:35 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 06:25:06 +0100nineonine(~nineonine@50.216.62.2)
2021-02-05 06:26:56 +0100greymalkin(~greymalki@199.180.249.79) (Ping timeout: 240 seconds)
2021-02-05 06:27:14 +0100 <c_wraith> if they're all packaged in the same cabal file, yes
2021-02-05 06:28:06 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 258 seconds)
2021-02-05 06:28:36 +0100guest23(~user@49.5.6.87) (Ping timeout: 240 seconds)
2021-02-05 06:29:32 +0100greymalkin(~greymalki@199.180.249.79)
2021-02-05 06:31:55 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-05 06:32:04 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Remote host closed the connection)
2021-02-05 06:32:21 +0100djcaston(~djcaston@pool-71-188-85-134.cmdnnj.east.verizon.net) (Ping timeout: 256 seconds)
2021-02-05 06:32:27 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-02-05 06:33:20 +0100 <hololeap> is there a "best" way to take some type that can be parsed with megaparsec and make an IsString instance of it? how should errors be handled?
2021-02-05 06:33:54 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
2021-02-05 06:34:09 +0100djcaston(~djcaston@juno.whatbox.ca)
2021-02-05 06:34:18 +0100crestfallen(~jvw@135-180-46-152.fiber.dynamic.sonic.net) (Quit: Lost terminal)
2021-02-05 06:34:22 +0100 <hololeap> ideally if a there is a string literal that is malformed, this would result in a compile time error
2021-02-05 06:35:56 +0100gienah(~mwright@gentoo/developer/gienah)
2021-02-05 06:35:56 +0100 <texasmynsted> why would Cabal not find a module, say 'A', when it is exposed in library, and defined in other-modules in an executable?
2021-02-05 06:36:10 +0100 <texasmynsted> I have the module in src/lib/
2021-02-05 06:36:14 +0100nineonin_(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e)
2021-02-05 06:36:22 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-05 06:36:28 +0100 <texasmynsted> and have hs-source-dirs defined for the library
2021-02-05 06:37:56 +0100 <hololeap> texasmynsted: is the package name listed in build-depends?
2021-02-05 06:38:05 +0100 <hololeap> for the executable...
2021-02-05 06:39:21 +0100 <texasmynsted> no, it is in other-modules
2021-02-05 06:39:57 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 265 seconds)
2021-02-05 06:40:24 +0100 <hololeap> i'm fairly certain that it doesn't need to go into other-modules for the executable, but the executable needs the package name listed under build-depends
2021-02-05 06:41:18 +0100 <texasmynsted> okay. I was just following https://www.haskell.org/cabal/release/cabal-1.18.1/doc/users-guide/developing-packages.html#exampl…
2021-02-05 06:41:21 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-02-05 06:42:56 +0100nineonin_(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Remote host closed the connection)
2021-02-05 06:43:25 +0100 <texasmynsted> hm.
2021-02-05 06:43:28 +0100 <hololeap> i think those are supposed to be _different_ A, B, C, etc... between the library or some executable
2021-02-05 06:43:58 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e)
2021-02-05 06:44:14 +0100 <hololeap> so A for the lib is different than A for program1, which is different than A for program2
2021-02-05 06:44:21 +0100 <hololeap> they just got lazy with their naming :p
2021-02-05 06:45:17 +0100 <hololeap> here's an example: https://hackage.haskell.org/package/ghcide-0.7.3.0/ghcide.cabal
2021-02-05 06:45:25 +0100styledash(~styledash@157.230.173.136) (Ping timeout: 240 seconds)
2021-02-05 06:45:36 +0100 <hololeap> search for 'executable ghcide' and notice that 'ghcide' is listed under 'build-depends'
2021-02-05 06:46:08 +0100 <hololeap> it's saying that parts of the ghcide library are needed for the executable
2021-02-05 06:46:12 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 06:47:47 +0100 <hololeap> if an executable has 'other-modules', that would be executable-specific modules that are needed to compile Main
2021-02-05 06:48:15 +0100 <hololeap> e.g. modules that are in the executable's source dirs
2021-02-05 06:48:25 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 258 seconds)
2021-02-05 06:49:30 +0100guest23(~user@49.5.6.87)
2021-02-05 06:50:48 +0100styledash(~styledash@157.230.173.136)
2021-02-05 06:51:33 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-05 06:51:52 +0100 <texasmynsted> Thank you for that link.
2021-02-05 06:52:01 +0100 <texasmynsted> The path is part of the package name space
2021-02-05 06:52:10 +0100 <texasmynsted> I will try that
2021-02-05 06:52:19 +0100sm2n(~sm2n@bras-base-hmtnon1497w-grc-43-64-231-95-247.dsl.bell.ca) (Quit: Leaving)
2021-02-05 06:52:24 +0100frozenErebus(~frozenEre@94.128.81.133) (Quit: leaving)
2021-02-05 06:52:59 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-05 06:53:17 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-05 06:54:25 +0100sm2n(~sm2n@bras-base-hmtnon1497w-grc-43-64-231-95-247.dsl.bell.ca)
2021-02-05 06:54:51 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 06:55:10 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 06:56:43 +0100plutoniix(~q@184.82.194.56) (Read error: Connection reset by peer)
2021-02-05 06:57:43 +0100elfets_(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
2021-02-05 06:58:49 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:d565:4fe9:2191:8f98) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-05 06:59:52 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds)
2021-02-05 06:59:52 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-05 07:00:42 +0100Neuromancer(~Neuromanc@unaffiliated/neuromancer)
2021-02-05 07:00:52 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 07:01:13 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
2021-02-05 07:02:39 +0100plutoniix(~q@184.82.194.56)
2021-02-05 07:02:57 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-02-05 07:05:00 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
2021-02-05 07:07:48 +0100ADG1089__(~aditya@223.236.161.207)
2021-02-05 07:07:54 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 07:11:26 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 07:13:25 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-02-05 07:15:53 +0100da39a3ee5e6b4b0d(~da39a3ee5@49.228.238.55)
2021-02-05 07:18:42 +0100djcaston(~djcaston@juno.whatbox.ca) (Ping timeout: 258 seconds)
2021-02-05 07:20:20 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 268 seconds)
2021-02-05 07:21:33 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-05 07:23:39 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-02-05 07:25:23 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection)
2021-02-05 07:26:01 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-02-05 07:26:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 07:27:10 +0100nyaomi(~naomi@cpe-74-75-6-125.maine.res.rr.com) (Excess Flood)
2021-02-05 07:27:30 +0100nyaomi(~naomi@cpe-74-75-6-125.maine.res.rr.com)
2021-02-05 07:28:15 +0100ADG1089_(~aditya@171.76.188.43)
2021-02-05 07:28:45 +0100ADG1089__(~aditya@223.236.161.207) (Ping timeout: 240 seconds)
2021-02-05 07:29:43 +0100Wuzzy(~Wuzzy@p57a2e44e.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-02-05 07:30:38 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 264 seconds)
2021-02-05 07:32:09 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-02-05 07:32:25 +0100nyaomi(~naomi@cpe-74-75-6-125.maine.res.rr.com) (Excess Flood)
2021-02-05 07:33:17 +0100nyaomi(~naomi@cpe-74-75-6-125.maine.res.rr.com)
2021-02-05 07:33:22 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 07:40:21 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-05 07:42:04 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 07:43:32 +0100Tops2(~Tobias@dyndsl-095-033-020-088.ewe-ip-backbone.de)
2021-02-05 07:46:45 +0100Guest9812stilgart
2021-02-05 07:46:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 07:48:00 +0100Lowl3v3l(~Lowl3v3l@dslb-002-203-233-121.002.203.pools.vodafone-ip.de)
2021-02-05 07:49:30 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e)
2021-02-05 07:51:43 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Remote host closed the connection)
2021-02-05 07:52:19 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e)
2021-02-05 07:55:37 +0100hololeap(~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/)
2021-02-05 07:57:02 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 264 seconds)
2021-02-05 07:57:32 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 08:00:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-05 08:00:14 +0100DataComputist(~lumeng@50.43.26.251) (Ping timeout: 256 seconds)
2021-02-05 08:00:35 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 08:02:35 +0100DataComputist(~lumeng@50.43.26.251)
2021-02-05 08:03:12 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e)
2021-02-05 08:03:45 +0100cfricke(~cfricke@unaffiliated/cfricke)
2021-02-05 08:04:03 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 265 seconds)
2021-02-05 08:05:55 +0100nineonin_(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e)
2021-02-05 08:06:10 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-05 08:06:35 +0100average(uid473595@gateway/web/irccloud.com/x-wmphahzlcegaaqct) (Quit: Connection closed for inactivity)
2021-02-05 08:08:02 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-lngcdofcaxbyafyr) (Quit: Connection closed for inactivity)
2021-02-05 08:08:21 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-05 08:09:41 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 258 seconds)
2021-02-05 08:10:47 +0100nineonin_(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 260 seconds)
2021-02-05 08:10:54 +0100ADG1089_(~aditya@171.76.188.43) (Read error: Connection reset by peer)
2021-02-05 08:11:48 +0100vchlup(~vchlup@nat.brnet.cz)
2021-02-05 08:14:46 +0100ADG1089_(~aditya@223.235.245.154)
2021-02-05 08:16:46 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 08:20:05 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2021-02-05 08:21:46 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-05 08:23:20 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-02-05 08:23:29 +0100xff0x_(~xff0x@2001:1a81:520c:9300:586a:55e0:d9f8:4e5c) (Ping timeout: 258 seconds)
2021-02-05 08:24:13 +0100xff0x_(~xff0x@2001:1a81:520c:9300:d376:a5ba:ccb8:29d)
2021-02-05 08:24:34 +0100kuribas(~user@ptr-25vy0i8mp067j44c045.18120a2.ip6.access.telenet.be)
2021-02-05 08:30:21 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-02-05 08:30:44 +0100maier(~maier@mue-88-130-62-190.dsl.tropolys.de)
2021-02-05 08:31:10 +0100vilpan(~0@212.117.1.172)
2021-02-05 08:32:13 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-02-05 08:32:26 +0100d3od(~nickmeno3@78-1-81-107.adsl.net.t-com.hr)
2021-02-05 08:33:44 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 08:34:46 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
2021-02-05 08:34:59 +0100raym(~ray@45.64.220.55) (Ping timeout: 265 seconds)
2021-02-05 08:35:13 +0100knupfer(~Thunderbi@200116b82c11b100f07476fffeae2c5f.dip.versatel-1u1.de)
2021-02-05 08:36:00 +0100cfricke(~cfricke@unaffiliated/cfricke)
2021-02-05 08:37:38 +0100knupfer(~Thunderbi@200116b82c11b100f07476fffeae2c5f.dip.versatel-1u1.de) (Remote host closed the connection)
2021-02-05 08:38:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 08:40:27 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e)
2021-02-05 08:40:34 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection)
2021-02-05 08:40:50 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw)
2021-02-05 08:40:56 +0100DataComputist(~lumeng@50.43.26.251) (Ping timeout: 240 seconds)
2021-02-05 08:40:57 +0100benjamingr__(uid23465@gateway/web/irccloud.com/x-hwcybnxooouhdsux) (Quit: Connection closed for inactivity)
2021-02-05 08:41:57 +0100DataComputist(~lumeng@50.43.26.251)
2021-02-05 08:42:14 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Remote host closed the connection)
2021-02-05 08:43:13 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-02-05 08:45:53 +0100 <kuribas> multiple studies have shown that underscores are more readable than camelcase. Why does haskell keeps insisting on camelcase?
2021-02-05 08:46:12 +0100 <kuribas> For example hlint warnings.
2021-02-05 08:46:29 +0100 <kuribas> https://www.researchgate.net/publication/224159770_An_Eye_Tracking_Study_on_camelCase_and_under_sc…
2021-02-05 08:48:02 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 264 seconds)
2021-02-05 08:48:38 +0100 <opqdonut> because most haskell libraries use camelCase, and it's hard to have to remember whether a given function is called mogrify_zoo_via or mogrifyZooVia
2021-02-05 08:48:42 +0100 <opqdonut> or at least, that's one good reason
2021-02-05 08:48:56 +0100 <opqdonut> I would imagine hlint is configurable
2021-02-05 08:50:04 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 08:50:06 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
2021-02-05 08:50:43 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2021-02-05 08:51:01 +0100guest23(~user@49.5.6.87) (Remote host closed the connection)
2021-02-05 08:51:13 +0100guest23(~user@49.5.6.87)
2021-02-05 08:52:25 +0100hackagedep-t 0.4.0.2 - Reader-like monad transformer for dependency injection. https://hackage.haskell.org/package/dep-t-0.4.0.2 (DanielDiazCarrete)
2021-02-05 08:54:55 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
2021-02-05 08:58:52 +0100TianGTY(~textual@103.116.47.198) (Quit: Textual IRC Client: www.textualapp.com)
2021-02-05 08:59:52 +0100Sgeo_(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-02-05 09:01:23 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
2021-02-05 09:01:45 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 264 seconds)
2021-02-05 09:01:50 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e)
2021-02-05 09:03:08 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Remote host closed the connection)
2021-02-05 09:04:08 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e)
2021-02-05 09:05:35 +0100 <nshepperd> hlint warnings insist many silly things
2021-02-05 09:06:27 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-02-05 09:07:39 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 09:07:41 +0100maier(~maier@mue-88-130-62-190.dsl.tropolys.de) (Quit: Lost terminal)
2021-02-05 09:09:02 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 264 seconds)
2021-02-05 09:09:40 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-02-05 09:10:15 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 258 seconds)
2021-02-05 09:12:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 09:15:42 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2021-02-05 09:15:59 +0100Codaraxis__(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-02-05 09:16:23 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2021-02-05 09:16:40 +0100raym(~ray@45.64.220.139)
2021-02-05 09:18:39 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-05 09:19:13 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
2021-02-05 09:19:28 +0100michalz(~user@185.246.204.93)
2021-02-05 09:19:37 +0100Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 276 seconds)
2021-02-05 09:21:15 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection)
2021-02-05 09:21:29 +0100totoro2022(~t@unaffiliated/totoro2021) (Read error: Connection reset by peer)
2021-02-05 09:21:31 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw)
2021-02-05 09:23:22 +0100totoro2022(~t@unaffiliated/totoro2021)
2021-02-05 09:23:46 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 09:25:00 +0100sh9(~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8)
2021-02-05 09:26:41 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2021-02-05 09:27:02 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2021-02-05 09:28:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 09:31:35 +0100miguel_clean(~Miguel@89-72-187-203.dynamic.chello.pl)
2021-02-05 09:32:02 +0100 <kuribas> nshepperd: I agree
2021-02-05 09:32:48 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2021-02-05 09:32:54 +0100 <kuribas> like foo a b c d e f = bar $ fuga a b c => foo a b c d e = bar . fuga a b c d e
2021-02-05 09:33:00 +0100 <kuribas> IMO that's worse
2021-02-05 09:33:25 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2021-02-05 09:34:15 +0100d3od(~nickmeno3@78-1-81-107.adsl.net.t-com.hr) (Remote host closed the connection)
2021-02-05 09:35:34 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Remote host closed the connection)
2021-02-05 09:36:55 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it)
2021-02-05 09:37:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 09:38:11 +0100borne(~fritjof@2a06:8782:ffbb:1337:a53:e188:6f13:d1a)
2021-02-05 09:41:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 09:42:49 +0100borne(~fritjof@2a06:8782:ffbb:1337:a53:e188:6f13:d1a) (Ping timeout: 272 seconds)
2021-02-05 09:43:11 +0100chele(~chele@ip5b40237d.dynamic.kabel-deutschland.de)
2021-02-05 09:43:54 +0100shad0w_(a0ca2538@160.202.37.56)
2021-02-05 09:44:12 +0100 <shad0w_> hi all
2021-02-05 09:44:17 +0100 <shad0w_> in a bit of a pickle here
2021-02-05 09:44:23 +0100borne(~fritjof@200116b8645bf50038baae9ec143df07.dip.versatel-1u1.de)
2021-02-05 09:44:26 +0100 <shad0w_> ```
2021-02-05 09:44:27 +0100 <shad0w_> cabal.exe: No targets given and there is no package in the current directory.
2021-02-05 09:44:27 +0100 <shad0w_> Use the target 'all' for all packages in the project or specify packages or
2021-02-05 09:44:28 +0100 <shad0w_> components by name or location. See 'cabal build --help' for more details on
2021-02-05 09:44:28 +0100 <shad0w_> target options.
2021-02-05 09:44:29 +0100 <shad0w_> ```
2021-02-05 09:44:56 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-02-05 09:45:03 +0100 <shad0w_> gccemacs (compiled for windows) + haskell-mode
2021-02-05 09:45:09 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 09:45:18 +0100ADG1089_(~aditya@223.235.245.154) (Quit: Konversation terminated!)
2021-02-05 09:48:32 +0100Martinsos(~user@cpe-188-129-56-3.dynamic.amis.hr)
2021-02-05 09:49:04 +0100 <shad0w_> i do have multiple executables in the project tho, could that be the problem ?
2021-02-05 09:51:37 +0100Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de) (Quit: WeeChat 2.9)
2021-02-05 09:51:37 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-05 09:51:39 +0100mirrorbird(~psutcliff@2a00:801:2d5:848b:590:cf4f:5eeb:b49d)
2021-02-05 09:51:46 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-05 09:53:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 09:53:24 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2021-02-05 09:53:32 +0100 <Martinsos> Hey pplz! I have this relatively short IO function that does three IO actions sequentially, each on of them returning Either where Left might be an error. I want them to short circuit -> so if first one returns Left, the rest shouldn't execute and so on. I used ExceptT + IO on couple of places for this, but I was just reading a blog post by FPComplete where they said that is an anti-pattern, because now I have IO (Either e a) and it
2021-02-05 09:53:32 +0100 <Martinsos> looks as if errors are returned through Either while there could still be IOExceptions. I then read the whole blog post about exceptions by FPComplete, also one by Sweag, and while I get the main ideas with the pure/impure and sync/async errors, I am still confused about what to do in particular situations in practice.
2021-02-05 09:54:17 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-05 09:54:52 +0100 <Martinsos> So how would you model errors in this situation? Would you throw IO exceptions instead? If so, what does that really mean -> which function from which library would you use to throw these errors?
2021-02-05 09:55:06 +0100ixian(~mgold@terra.bitplane.org) (Ping timeout: 258 seconds)
2021-02-05 09:55:42 +0100ixian(~mgold@terra.bitplane.org)
2021-02-05 09:58:37 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-05 10:00:00 +0100dyniec[m](dyniecmatr@gateway/shell/matrix.org/x-elgmnlyadjyzxkds) (Quit: Idle for 30+ days)
2021-02-05 10:01:17 +0100fendor(~fendor@178.115.130.101.wireless.dyn.drei.com)
2021-02-05 10:02:44 +0100 <nshepperd> just use ExceptT and don't worry about it too much imo
2021-02-05 10:02:54 +0100ubert(~Thunderbi@p548c9a44.dip0.t-ipconnect.de)
2021-02-05 10:04:43 +0100Sgeo_(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-02-05 10:04:52 +0100 <nshepperd> to throw an io exception you would use Control.Exception.throwIO though
2021-02-05 10:05:47 +0100thc202(~thc202@unaffiliated/thc202)
2021-02-05 10:07:31 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 272 seconds)
2021-02-05 10:09:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 10:14:04 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-05 10:17:30 +0100danza(~francesco@151.53.69.219)
2021-02-05 10:18:54 +0100 <kuribas> Martinsos: I don't think that's a universal agreement.
2021-02-05 10:19:02 +0100 <kuribas> ExceptT with IO is fine.
2021-02-05 10:19:14 +0100 <Martinsos> Thanks! So I am thinking then: I could use ExceptT when I have exceptions that are kind of expected so therefore it makes sense to have them in Either, but if they are pretty exceptional, I should probably use throwIO instead, if I am in IO?
2021-02-05 10:19:52 +0100 <Martinsos> Meaning I can combine both if I want, depending on how likely it is that I will want to handle specific exception?
2021-02-05 10:20:09 +0100 <kuribas> Martinsos: my guideline is, use exceptions for things you don't handle (abort the computation and log the error), and Either for everything else.
2021-02-05 10:20:43 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 256 seconds)
2021-02-05 10:23:16 +0100APic(apic@apic.name) (Ping timeout: 240 seconds)
2021-02-05 10:23:19 +0100 <kuribas> Exceptions is for things you need to handle on infrastructure level, missing files, bad database connections, etc, Either is for things on application level, like input validation errors, etc...
2021-02-05 10:23:23 +0100 <Martinsos> kuribas: Makes sense! So if I think I will mostly be propagating it, I go with throwIO, if it should never happen I go with `error`, and if it is likely I will want to handle it, I go with Either/ExceptT. On thing I don't experience with though is: what type of error do you throw? I know there is some kind of hierarchy, with SomeException being on top, but how do you use that in practice? Do you often create your own type? If I am just
2021-02-05 10:23:23 +0100 <Martinsos> throwing an error with ThrowIO and I am not particularly eager to handle it later, should I just use some existing type?
2021-02-05 10:25:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 10:25:06 +0100 <kuribas> yeah, you can make a custom exception
2021-02-05 10:25:49 +0100 <kuribas> IMO it helps making the code a bit more clear
2021-02-05 10:25:55 +0100ubert(~Thunderbi@p548c9a44.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2021-02-05 10:26:41 +0100 <Martinsos> And if I don't want to make a custom exception, what would you use instead?
2021-02-05 10:28:24 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-02-05 10:28:35 +0100 <kuribas> I don't know... the one that matches your problem?
2021-02-05 10:29:10 +0100 <kuribas> IOException, ArrayException, ...
2021-02-05 10:29:21 +0100shiraeeshi(~shiraeesh@109.166.56.220)
2021-02-05 10:29:28 +0100 <Martinsos> Ok, maybe I am overly complicating this. Aha got it! I wasn't sure if there are exceptions defined at that level. Ok awesome
2021-02-05 10:29:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 10:29:55 +0100 <Martinsos> I am getting confused with all the different packages offering solutions for handling exceptions so I don't know where to look anymore.
2021-02-05 10:30:06 +0100 <kuribas> I don't use exceptions all that often
2021-02-05 10:30:13 +0100aforemny(~aforemny@static.248.158.34.188.clients.your-server.de)
2021-02-05 10:30:57 +0100 <Martinsos> np, thanks, this should be enough for me for the moment.
2021-02-05 10:31:39 +0100shad0w_(a0ca2538@160.202.37.56) (Quit: Connection closed)
2021-02-05 10:32:49 +0100APic(apic@apic.name)
2021-02-05 10:33:31 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-05 10:34:24 +0100dwt(~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Quit: bye)
2021-02-05 10:34:41 +0100desophos(~desophos@2601:249:1680:a570:84f9:a158:4c9:c8e9) (Read error: Connection reset by peer)
2021-02-05 10:35:58 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
2021-02-05 10:37:17 +0100dwt(~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
2021-02-05 10:37:17 +0100cfricke(~cfricke@unaffiliated/cfricke) (Read error: Connection reset by peer)
2021-02-05 10:38:25 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 240 seconds)
2021-02-05 10:40:33 +0100cfricke(~cfricke@unaffiliated/cfricke)
2021-02-05 10:40:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Ping timeout: 264 seconds)
2021-02-05 10:41:51 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 10:46:55 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-02-05 10:47:22 +0100__monty__(~toonn@unaffiliated/toonn)
2021-02-05 10:47:22 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-05 10:47:28 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-05 10:47:39 +0100guest23(~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1))
2021-02-05 10:48:41 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-zomvgoemagekvvah) (Quit: Connection closed for inactivity)
2021-02-05 10:51:35 +0100knu42(577bcec7@gateway/web/cgi-irc/kiwiirc.com/ip.87.123.206.199)
2021-02-05 10:52:19 +0100 <knu42> does anyone know why ghc 9.0.1 isn,t bundled with bytestring 0.11 ?
2021-02-05 10:52:28 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-02-05 10:54:29 +0100 <knu42> anybody?
2021-02-05 10:55:25 +0100 <merijn> Anyone reason why it should've been?
2021-02-05 10:55:40 +0100da39a3ee5e6b4b0d(~da39a3ee5@49.228.238.55) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-05 10:56:32 +0100 <knu42> Hm, I thought I´ve read in 2020 that it was planned this waz.
2021-02-05 10:56:50 +0100 <alp> https://gitlab.haskell.org/ghc/ghc/-/issues/19091
2021-02-05 10:56:53 +0100 <knu42> I´m quite interested in the optimizations regarding string literals
2021-02-05 10:57:07 +0100 <knu42> way
2021-02-05 10:57:37 +0100 <knu42> ahh, thank you alp!
2021-02-05 10:58:44 +0100 <alp> knu42, long story short, 0.11 happened a bit too late for 9.0 to ship it, with other things requiring time/attention/work with higher priority, IIRC.
2021-02-05 10:58:55 +0100Zetagon(~leo@c151-177-52-233.bredband.comhem.se)
2021-02-05 10:59:43 +0100shiraeeshi(~shiraeesh@109.166.56.220) (Ping timeout: 276 seconds)
2021-02-05 11:00:03 +0100 <knu42> ok, I´ll experiment backporting some of the optimizations for my lib
2021-02-05 11:00:24 +0100 <knu42> cstringLength is at least available
2021-02-05 11:00:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 11:00:37 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-05 11:02:00 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-05 11:04:24 +0100hacxman(~hexo@gateway/tor-sasl/hexo)
2021-02-05 11:04:28 +0100sorki(~sorki@gateway/tor-sasl/sorki)
2021-02-05 11:04:41 +0100srk(~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection)
2021-02-05 11:04:41 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection)
2021-02-05 11:04:45 +0100DavidEichmann(~david@234.109.45.217.dyn.plus.net)
2021-02-05 11:04:45 +0100hacxmanhexo
2021-02-05 11:05:34 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-05 11:07:27 +0100sorkisrk
2021-02-05 11:08:14 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:51a:84a8:6067:5428)
2021-02-05 11:08:19 +0100shiraeeshi(~shiraeesh@109.166.56.220)
2021-02-05 11:15:32 +0100 <aforemny> What could cause `Data.Text.Encoding.decodeUtf8 ("ä" :: ByteString)` to yield the following exception? Cannot decode byte '\xe4': Data.Text.Internal.Encoding.decodeUtf8: Invalid UTF-8 stream
2021-02-05 11:16:22 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 11:16:45 +0100 <aforemny> What is "ä" in UTF-8? Is it [0xc3, 0xa4] or is it [0xe4]?
2021-02-05 11:17:14 +0100 <maerwald> heh, the parser change in 9.0.1 is gonna cause a lot of build failures
2021-02-05 11:18:19 +0100 <aforemny> Note that (Data.Text.Encoding.decodeUtf8 (Data.ByteString.pack [0xc3, 0xa4])) yields "\xe4". But decoding [0xe4] yields the error above.
2021-02-05 11:19:09 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-05 11:19:36 +0100j2t(~user@84.122.202.215.dyn.user.ono.com)
2021-02-05 11:20:09 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-05 11:20:51 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-05 11:21:54 +0100hackagehaskoin-store 0.40.18 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.40.18 (jprupp)
2021-02-05 11:22:52 +0100ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
2021-02-05 11:24:59 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-05 11:25:08 +0100 <opqdonut> aforemny: "ä" in utf-8 is encoded as the byte sequence c3 a4. This corresponds to the unicode codepoint U+00E4
2021-02-05 11:25:10 +0100 <Ferdirand> aforemny: "\xe4" means unicode character 0xe4
2021-02-05 11:25:18 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e)
2021-02-05 11:25:18 +0100 <Ferdirand> yeah what opqdonut said
2021-02-05 11:25:40 +0100 <opqdonut> somewhat relatedly, e4 is also the encoding for ä in the iso-8859 family of encodings
2021-02-05 11:25:51 +0100 <opqdonut> (at least in iso-8859-1 and -15)
2021-02-05 11:26:06 +0100 <aforemny> opqdonut: Ferdirand: Thanks! I have just managed to google it as well: https://stackoverflow.com/questions/27669418/aeson-does-not-decode-strings-with-unicode-characters
2021-02-05 11:26:12 +0100 <opqdonut> I'm not even sure what ("ä" :: ByteString) should mean
2021-02-05 11:26:35 +0100 <opqdonut> "ä" :: String is clearly the string of length 1 containing the character U+00E4
2021-02-05 11:26:44 +0100 <opqdonut> the same for "ä" :: Text
2021-02-05 11:26:58 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 11:27:13 +0100 <maerwald> opqdonut: "ä" :: ByteString depends on the encoding obviously
2021-02-05 11:27:25 +0100 <opqdonut> exactly
2021-02-05 11:27:30 +0100 <maerwald> if it's a literal
2021-02-05 11:27:42 +0100 <maerwald> then you get Char8
2021-02-05 11:27:44 +0100 <opqdonut> you mean the source file encoding? well let's assume that's utf-8
2021-02-05 11:27:51 +0100forgottenone(~forgotten@176.42.26.20)
2021-02-05 11:28:06 +0100 <aforemny> opqdonut: It seems "ä" :: ByteString makes use of Data.ByteString.Char8 which is documented to truncate multi-byte UTF-8 characters. I think that was the root of my issue.
2021-02-05 11:28:18 +0100 <aforemny> (My source file's encoding is UTF-8)
2021-02-05 11:28:19 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Quit: WeeChat 3.0)
2021-02-05 11:29:30 +0100 <opqdonut> yeah that's kinda what I expected actually, so you get the bytestring that contains one byte, 0xe4
2021-02-05 11:29:52 +0100 <maerwald> https://github.com/haskell/bytestring/issues/140
2021-02-05 11:29:56 +0100 <kuribas> IsString on bytestring is a bit of a lie
2021-02-05 11:30:17 +0100 <maerwald> it's an embarrasment, actually
2021-02-05 11:30:24 +0100Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-02-05 11:30:58 +0100 <maerwald> it's one of those things that makes ppl write blog posts about why they don't like language X
2021-02-05 11:31:21 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 246 seconds)
2021-02-05 11:31:32 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-05 11:31:50 +0100 <kuribas> people can write blog posts all the want
2021-02-05 11:31:50 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 264 seconds)
2021-02-05 11:31:54 +0100 <maerwald> heh
2021-02-05 11:32:31 +0100 <maerwald> with the difference here being that they're right
2021-02-05 11:32:39 +0100 <kuribas> according to merijn, 90% of blogposts is crap anyway :)
2021-02-05 11:32:59 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 11:33:05 +0100 <maerwald> sounds like an academic view :p
2021-02-05 11:33:18 +0100Lord_of_Life_Lord_of_Life
2021-02-05 11:33:20 +0100 <kuribas> maerwald: what does liking or not liking a language have to do with being "right"?
2021-02-05 11:33:24 +0100 <arahael> That sounds rather optimisic.
2021-02-05 11:33:40 +0100 <maerwald> kuribas: sorry, I don't understand
2021-02-05 11:33:57 +0100 <kuribas> I can make the perfect language, that will not make everyone "like" it.
2021-02-05 11:34:14 +0100tzlil(~tzlil@unaffiliated/tzlil) (Ping timeout: 264 seconds)
2021-02-05 11:34:41 +0100tzlil(~tzlil@unaffiliated/tzlil)
2021-02-05 11:35:30 +0100 <kuribas> there are always "reasons" for liking or not liking some language.
2021-02-05 11:35:43 +0100 <kuribas> that in itself doesn't mean anything.
2021-02-05 11:35:44 +0100 <maerwald> that wasn't really the point, but anyway
2021-02-05 11:36:10 +0100 <maerwald> it needs to be fixed, but ppl aren't agreeing on how
2021-02-05 11:36:34 +0100 <maerwald> or maybe they are, but no one is doing anything
2021-02-05 11:37:15 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
2021-02-05 11:37:23 +0100 <maerwald> will probably be written into history like the AFPP
2021-02-05 11:37:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 11:37:29 +0100 <arahael> Plus there's the inherent conflict between people wanting to have ultimate power and expressivity, even if they can't read it the next day, vs those who want to ensure that their hires can't shoot themselves in the foot.
2021-02-05 11:38:05 +0100 <maerwald> arahael: don't worry, linear and dependent types are coming to ensure your new hires won't...
2021-02-05 11:38:12 +0100 <maerwald> xD
2021-02-05 11:38:44 +0100 <arahael> maerwald: Dependencies are bad, m'kay?
2021-02-05 11:38:57 +0100 <maerwald> arahael: sorry?
2021-02-05 11:39:16 +0100 <kuribas> and the issue people usually have with haskell strings, is that they don't see the difference between binary/unicode, and streaming/contiguous.
2021-02-05 11:39:22 +0100 <arahael> maerwald: Sorry, being very flippant. Plus still somewhat drugged up.
2021-02-05 11:39:34 +0100 <kuribas> partly the fault of naming it all "string".
2021-02-05 11:39:40 +0100 <arahael> kuribas: That's, curiously enough, precisely the issue with python at the moment, too!
2021-02-05 11:39:53 +0100 <kuribas> in what sense?
2021-02-05 11:40:05 +0100 <kuribas> been a while since I did Python...
2021-02-05 11:40:37 +0100 <arahael> kuribas: Well, python now does not automatically convert between bytestring and unicode string.
2021-02-05 11:40:44 +0100 <maerwald> arahael: if you don't have second guesses about dependent types and linear types, I'd argue you're in the "ultimate power and expressivity" camp :p
2021-02-05 11:40:45 +0100 <arahael> kuribas: And that's done people's heads in.
2021-02-05 11:41:14 +0100 <arahael> maerwald: Heh. :) Honestly, I haven't really played with dependent types and definitely haven't actually used linear types yet, but they do sound good.
2021-02-05 11:41:43 +0100plutoniix(~q@184.82.194.56) (Quit: Leaving)
2021-02-05 11:42:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Ping timeout: 264 seconds)
2021-02-05 11:42:04 +0100 <kuribas> IMO types shouldn't be about preventing stupid people from doing stupid stuff.
2021-02-05 11:42:21 +0100 <kuribas> It should be about enabling smart people do smart stuff.
2021-02-05 11:42:38 +0100 <maerwald> right, but you don't want that smartness leak into everything...
2021-02-05 11:42:48 +0100 <maerwald> and the only solution for that is language interoperability
2021-02-05 11:42:56 +0100 <maerwald> like F* -> F#
2021-02-05 11:43:05 +0100 <kuribas> maerwald: smart /= complicated.
2021-02-05 11:43:16 +0100Quarl(~Quarl@h-155-4-128-37.NA.cust.bahnhof.se)
2021-02-05 11:43:17 +0100 <kuribas> it's harder to make something that's simple but powerful.
2021-02-05 11:43:20 +0100 <maerwald> kuribas: most of the time they overlap heavily, especially in haskell
2021-02-05 11:43:44 +0100 <maerwald> I haven's seen many smart APIs that don't leak type level programming
2021-02-05 11:43:47 +0100 <kuribas> overcomplicated solutions are everywhere
2021-02-05 11:44:51 +0100 <Philonous> Maybe the solution is better type level programming, not untyped APIs
2021-02-05 11:45:10 +0100 <maerwald> Philonous: expressivity comes with a price
2021-02-05 11:46:36 +0100shiraeeshi(~shiraeesh@109.166.56.220) (Ping timeout: 240 seconds)
2021-02-05 11:46:42 +0100 <kuribas> the solution is to not treat haskell as a dependently typed language
2021-02-05 11:46:53 +0100 <maerwald> I agree
2021-02-05 11:47:45 +0100 <maerwald> but it's probably gonna happen
2021-02-05 11:48:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-05 11:48:25 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-02-05 11:48:29 +0100 <maerwald> and it'll reinforce the "esoteric" image haskell has more. Don't think it will do much good in terms of contributors or adoption
2021-02-05 11:48:42 +0100 <Philonous> I'm already using Haskell as a dependently typed language because (I feel that) it makes some of my programs simpler.
2021-02-05 11:48:53 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 11:49:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 11:51:39 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2021-02-05 11:52:11 +0100Quarl(~Quarl@h-155-4-128-37.NA.cust.bahnhof.se) (Read error: Connection reset by peer)
2021-02-05 11:53:21 +0100jesspacitojess
2021-02-05 11:53:24 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-05 11:53:26 +0100 <Philonous> I agree that there is a danger of using it inappropriately (and I've done my fare share of that), and there's a costs because a biger API design space means more chances to end up in a dead (or worse, some local maximum), but I'm not convinced that the advantages of being able to use it tastefully don't outweigh the costs.
2021-02-05 11:53:29 +0100 <maerwald> I considered it seriously only once, when expressing filepaths on typelevel and it ended up so complicated and could still not express the problem properly.
2021-02-05 11:53:47 +0100notzmv(~user@unaffiliated/zmv)
2021-02-05 11:53:52 +0100 <maerwald> Although the problem domain was fairly small
2021-02-05 11:54:16 +0100 <maerwald> True dependent types would have helped, but the gain wasn't huge
2021-02-05 11:54:34 +0100 <Philonous> E.g. IMO servant makes very good use of type level programming.
2021-02-05 11:55:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-05 11:55:11 +0100 <kuribas> the moment you start using singletons you should seriously reconsider IMO...
2021-02-05 11:55:20 +0100 <[exa]> +1 ^
2021-02-05 11:55:30 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 11:55:51 +0100 <Taneb> I'd like to live in a world (and I'm slowly working towards this goal) where real-world programming in Agda is possible
2021-02-05 11:56:15 +0100 <kuribas> Taneb: wouldn't you miss out on libraries then?
2021-02-05 11:56:30 +0100 <Taneb> kuribas: part of the goal is to make the libraries exist
2021-02-05 11:56:39 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Read error: Connection reset by peer)
2021-02-05 11:56:56 +0100 <Taneb> But there does exist Agda <-> Haskell interop
2021-02-05 11:56:58 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2021-02-05 11:57:06 +0100 <Philonous> I agree, singletons are aweful to work with.
2021-02-05 11:57:26 +0100 <kuribas> servant is nice, as long as you don't have to write your own combinators...
2021-02-05 11:57:27 +0100 <Philonous> At the same time I'm amazed how well they work.
2021-02-05 11:58:05 +0100 <Philonous> kuribas, Why? I've done so multiple times and it was pretty straight-forward.
2021-02-05 11:58:51 +0100 <kuribas> Philonous: for example, I got an obscure warning, which probably would lead to a crash if I followed it.
2021-02-05 11:59:18 +0100 <kuribas> and dealing with the GADTs and type families is far from straigh-forward IMO...
2021-02-05 11:59:29 +0100 <lortabac> IMHO the main factor when deciding whether to do type-level programming is whether you can provide all the types statically or they come from some external source at runtime
2021-02-05 11:59:56 +0100 <lortabac> servant is doable because you generally know the API paths statically
2021-02-05 12:00:21 +0100 <kuribas> lortabac: and also if the gain of the type level programming outweights the heavyness of the solution.
2021-02-05 12:00:36 +0100 <kuribas> lortabac: like, do you really need to prove a SQL query correct at the type level?
2021-02-05 12:00:58 +0100Quarl(~Quarl@h-155-4-128-37.NA.cust.bahnhof.se)
2021-02-05 12:01:11 +0100son0p(~son0p@181.58.39.182)
2021-02-05 12:01:11 +0100 <kuribas> I am thinking purely practical, of course it's interesting to explore this space...
2021-02-05 12:01:56 +0100 <maerwald> SQL queries are extremely straight-forward to unit test
2021-02-05 12:02:08 +0100 <lortabac> maerwald: how so?
2021-02-05 12:02:23 +0100 <lortabac> to me they have always been the hardest part to test
2021-02-05 12:02:38 +0100 <maerwald> odd
2021-02-05 12:02:45 +0100 <kuribas> if I have a complicated query, I try it first in the mysql-workbench.
2021-02-05 12:03:00 +0100 <lortabac> maerwald: how do you test your SQL queries?
2021-02-05 12:03:12 +0100 <kuribas> lortabac: the thing is, proving the query well-formed, doesn't prove it does the right thing.
2021-02-05 12:03:18 +0100 <maerwald> lortabac: I don't understand the question
2021-02-05 12:03:25 +0100aveltras(uid364989@gateway/web/irccloud.com/x-pjggritsgsigpqvj)
2021-02-05 12:03:45 +0100ADG1089__(~aditya@223.235.245.154)
2021-02-05 12:03:54 +0100 <lortabac> do you spawn a database? do you have an alternative interpreter for tests?
2021-02-05 12:04:13 +0100 <maerwald> if it's sqlite, in-memory. If it's something else, it's simple with a docker container
2021-02-05 12:04:55 +0100 <lortabac> so you actually run the query and check the state of the database afterwards?
2021-02-05 12:05:07 +0100 <Philonous> Why wouldn't I want SQL queries to be statically checked? Isn't the whole point of having a type system that we don't have to rely on unit tests? (I mean, if you're Conor McBride you might have other ideas, but to a first approximation)
2021-02-05 12:05:11 +0100 <maerwald> lortabac: yeah
2021-02-05 12:05:35 +0100 <maerwald> it isn't much different from golden tests
2021-02-05 12:05:36 +0100 <kuribas> lortabac: because statically checking doesn't imply the query is correct.
2021-02-05 12:05:57 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 12:06:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-02-05 12:06:34 +0100 <lortabac> maerwald: I see, I would call it "simple" but it's probably the most pragmatic way
2021-02-05 12:06:38 +0100 <lortabac> *wouldn't
2021-02-05 12:06:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 12:07:08 +0100 <maerwald> so you could also dump the db to a file after each query and then use the golden test suite
2021-02-05 12:07:19 +0100 <maerwald> although I haven't done that, it now seems logical
2021-02-05 12:07:50 +0100mirrorbird(~psutcliff@2a00:801:2d5:848b:590:cf4f:5eeb:b49d) (Ping timeout: 264 seconds)
2021-02-05 12:08:20 +0100 <maerwald> and golden tests are easy to update, no static data in your haskell files
2021-02-05 12:08:29 +0100tzlil(~tzlil@unaffiliated/tzlil) (Ping timeout: 272 seconds)
2021-02-05 12:08:43 +0100 <kuribas> lortabac: I rarely use types to prove my code correct, I use types to establish preconditions on which the semantics of my code depend.
2021-02-05 12:08:53 +0100tzlil(~tzlil@unaffiliated/tzlil)
2021-02-05 12:09:00 +0100 <kuribas> a prerequisite for correctness.
2021-02-05 12:09:23 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2021-02-05 12:09:30 +0100 <maerwald> kuribas: the relationship between query and response in some APIs seems like a reasonable use of type level programming imo
2021-02-05 12:09:32 +0100mirrorbird(~psutcliff@2a00:801:2d5:848b:590:cf4f:5eeb:b49d)
2021-02-05 12:10:15 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2021-02-05 12:10:34 +0100 <kuribas> maerwald: yes, and my language handles that case.
2021-02-05 12:10:48 +0100 <kuribas> I even have type level magick to check for nullable fields.
2021-02-05 12:10:48 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
2021-02-05 12:10:54 +0100 <kuribas> maerwald: my library I mean
2021-02-05 12:11:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-05 12:12:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 12:14:16 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-05 12:17:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-05 12:18:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 12:20:04 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:51a:84a8:6067:5428) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-05 12:21:13 +0100pedrohms(~pedrohms@187.20.63.53)
2021-02-05 12:21:55 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 12:22:06 +0100totoro2022(~t@unaffiliated/totoro2021) (Ping timeout: 246 seconds)
2021-02-05 12:23:34 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-05 12:23:35 +0100totoro2022(~t@unaffiliated/totoro2021)
2021-02-05 12:24:52 +0100pedrohms(~pedrohms@187.20.63.53) (Quit: Leaving)
2021-02-05 12:27:28 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-05 12:27:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-02-05 12:28:09 +0100pedrohms(~pedrohms@187.20.63.53)
2021-02-05 12:29:03 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 12:29:17 +0100acidjnk_new(~acidjnk@p200300d0c722c49675ee473ab8e6650f.dip0.t-ipconnect.de)
2021-02-05 12:29:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 12:30:24 +0100mirrorbird(~psutcliff@2a00:801:2d5:848b:590:cf4f:5eeb:b49d) (Quit: Leaving)
2021-02-05 12:30:40 +0100 <kuribas> every Monad forms a Monoid right?
2021-02-05 12:30:55 +0100 <kuribas> at least Monad m => m ()
2021-02-05 12:32:26 +0100pedrohms(~pedrohms@187.20.63.53) (Quit: Leaving)
2021-02-05 12:32:32 +0100 <kuribas> ah that's Ap...
2021-02-05 12:32:52 +0100pedrohms(~pedrohms@187.20.63.53)
2021-02-05 12:32:55 +0100pedrosouza(~pedrohms@187.20.63.53)
2021-02-05 12:32:59 +0100pedrosouza(~pedrohms@187.20.63.53) (Remote host closed the connection)
2021-02-05 12:33:13 +0100 <kuribas> :t (<>) :: Ap m () -> Ap m () -> Ap m ()
2021-02-05 12:33:14 +0100 <lambdabot> error:
2021-02-05 12:33:14 +0100 <lambdabot> • No instance for (Applicative m1) arising from a use of ‘<>’
2021-02-05 12:33:14 +0100 <lambdabot> Possible fix:
2021-02-05 12:33:16 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-02-05 12:33:27 +0100 <kuribas> :t (<>) :: Applicative m => Ap m () -> Ap m () -> Ap m ()
2021-02-05 12:33:28 +0100 <lambdabot> Applicative m => Ap m () -> Ap m () -> Ap m ()
2021-02-05 12:34:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-05 12:35:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 12:36:38 +0100frozenErebus(~frozenEre@94.128.81.133) (Quit: leaving)
2021-02-05 12:37:57 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
2021-02-05 12:38:31 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 12:40:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-05 12:40:11 +0100michalz`(~user@185.246.204.76)
2021-02-05 12:40:40 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 12:40:56 +0100michalz(~user@185.246.204.93) (Ping timeout: 240 seconds)
2021-02-05 12:42:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Ping timeout: 264 seconds)
2021-02-05 12:43:23 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
2021-02-05 12:46:46 +0100sh9(~sh9@softbank060116136158.bbtec.net)
2021-02-05 12:47:14 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
2021-02-05 12:47:29 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Read error: Connection reset by peer)
2021-02-05 12:47:41 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-02-05 12:47:47 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-05 12:50:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-02-05 12:51:30 +0100ClaudiusMaximus(~claude@191.123.199.146.dyn.plus.net)
2021-02-05 12:51:38 +0100ClaudiusMaximus(~claude@191.123.199.146.dyn.plus.net) (Changing host)
2021-02-05 12:51:38 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2021-02-05 12:51:52 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
2021-02-05 12:51:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 12:52:41 +0100 <__monty__> kuribas: You do sound like the clojurists you go on and on about re SQL : )
2021-02-05 12:53:44 +0100thongpv87(~thongpv87@103.6.151.121)
2021-02-05 12:54:27 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 12:56:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-05 12:56:48 +0100thongpv87(~thongpv87@103.6.151.121) (Client Quit)
2021-02-05 12:57:06 +0100thongpv87(~thongpv87@103.6.151.121)
2021-02-05 12:57:22 +0100 <kuribas> __monty__: because there I think it's haskell at it's worst
2021-02-05 12:57:40 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 12:59:12 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-05 12:59:34 +0100 <__monty__> And you consider the couple implementations so far to be sufficient proof typed SQL is a waste of time? Because your criticism doesn't seem restricted to haskell but to apply broadly to typing SQL.
2021-02-05 12:59:41 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-05 13:01:21 +0100 <kuribas> __monty__: my opinion is more nuanced than that.
2021-02-05 13:01:48 +0100ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-02-05 13:01:50 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 13:02:20 +0100 <kuribas> __monty__: I consider proving SQL queries correct in a type system a waste of mental energy
2021-02-05 13:02:28 +0100ukari(~ukari@unaffiliated/ukari)
2021-02-05 13:03:03 +0100 <kuribas> However adding some restricted form of typesafety, if it can be done without much complexity, can be beneficial
2021-02-05 13:03:35 +0100 <__monty__> What do you mean when you say "prove correct" though? Cause I'd probably say "proving" any code "correct" is a waste of time in 99% of cases.
2021-02-05 13:04:28 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Read error: Connection reset by peer)
2021-02-05 13:04:47 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-05 13:07:07 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds)
2021-02-05 13:07:09 +0100michalz`(~user@185.246.204.76) (Ping timeout: 258 seconds)
2021-02-05 13:07:48 +0100pera(~pera@unaffiliated/pera)
2021-02-05 13:07:57 +0100 <kuribas> for example a library that implements it's own way of describing queries. Not only do you need to know SQL well, but you have to also learn the mapping between that language and SQL, and usually it's only a subset of SQL.
2021-02-05 13:08:07 +0100 <kuribas> but it's *typesafe*!
2021-02-05 13:10:02 +0100 <kuribas> Or like squeal, implement the whole schema as a type, then prove with the type that any SQL expression is valid.
2021-02-05 13:10:27 +0100 <__monty__> That's hardly "proving SQL correct through types" though. Unless the restriction is to facilitate 100% compatibility across database implementations, I agree SQL shouldn't be restricted.
2021-02-05 13:10:27 +0100 <kuribas> squeal is kinda cool though, but I am not sure the complexity is warrented by the problem it solves.
2021-02-05 13:10:46 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-05 13:11:07 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-05 13:11:28 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 13:12:49 +0100 <kuribas> __monty__: well, if it doesn't prove the SQL correct, then it's even worse.
2021-02-05 13:12:57 +0100 <kuribas> why have the complexity then at all?
2021-02-05 13:14:32 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection)
2021-02-05 13:14:51 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0)
2021-02-05 13:14:57 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2021-02-05 13:15:18 +0100danza(~francesco@151.53.69.219) (Ping timeout: 246 seconds)
2021-02-05 13:15:19 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 265 seconds)
2021-02-05 13:15:22 +0100 <__monty__> Well you're assuming two things now, that the implementation is necessarily complex *and* that it doesn't "prove" the SQL "correct" (still not clear what you mean).
2021-02-05 13:16:21 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-05 13:17:25 +0100hackagehls-splice-plugin 0.3.0.0 - HLS Plugin to expand TemplateHaskell Splices and QuasiQuotes https://hackage.haskell.org/package/hls-splice-plugin-0.3.0.0 (HiromiIshii)
2021-02-05 13:18:27 +0100 <kuribas> __monty__: too complex: squeal, beam, opaleye, ..., too simple: any -simple
2021-02-05 13:19:37 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:51a:84a8:6067:5428)
2021-02-05 13:21:20 +0100ADG1089__(~aditya@223.235.245.154) (Ping timeout: 258 seconds)
2021-02-05 13:21:58 +0100 <merijn> Just right: Just build your own domain specific tiny wrapper on top of -simple
2021-02-05 13:22:57 +0100 <kuribas> merijn: so reinventing the wheel everytime, and just for yourself ...
2021-02-05 13:23:43 +0100Tesseraction(~Tesseract@unaffiliated/tesseraction)
2021-02-05 13:24:07 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-05 13:24:22 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-05 13:24:26 +0100 <merijn> Yes
2021-02-05 13:25:17 +0100 <merijn> kuribas: You've talked about your approach for several months now, and tbh I'm increasingly *less* sold on the idea :p
2021-02-05 13:25:40 +0100 <vilpan> kuribas: the camel case vs underscore paper you referenced states "subjects were trained mainly in the underscore style", so it's not surprising underscore style recognition was better.
2021-02-05 13:25:40 +0100 <vilpan> For a counter example, https://www.academia.edu/2858174/To_camelcase_or_under_score says "all subjects are more accurate when identifying a camel-cased identifier". So I don't see a winner.
2021-02-05 13:25:43 +0100 <kuribas> merijn: so?
2021-02-05 13:26:27 +0100 <merijn> kuribas: I'm increasingly *less* bothered by "reinvention" if it leads to simple/predictable code that's easy to maintain
2021-02-05 13:26:27 +0100 <kuribas> merijn: I don't care, I did this work for myself, and in I can do haskell in my team, without having them complain about complicated types.
2021-02-05 13:27:32 +0100 <kuribas> merijn: I am also not planning to maintain the postgresql port that we don't use...
2021-02-05 13:27:44 +0100cfricke(~cfricke@unaffiliated/cfricke)
2021-02-05 13:27:51 +0100 <merijn> kuribas: Sure, but you were arguing with __monty__ trying to convince them that your approach is better and the "wrap -simple yourself" is worse. It's reasonable to expect some sort of rationale in return :)
2021-02-05 13:28:20 +0100 <kuribas> merijn: I feel this is pretty much proven...
2021-02-05 13:28:32 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 13:28:35 +0100 <merijn> I was *initially* convinced by your idea, but the snippets I see seem to be becoming increasingly complicated
2021-02-05 13:28:50 +0100 <kuribas> what's complicated about a monad?
2021-02-05 13:29:11 +0100 <merijn> kuribas: You may feel that, but *I* am not, and neither seems __monty__
2021-02-05 13:29:31 +0100 <merijn> kuribas: Last I saw you were talking about Generic based approaches to handle joins
2021-02-05 13:29:43 +0100 <kuribas> that sucks a bit...
2021-02-05 13:30:13 +0100 <kuribas> merijn: but then esqueleto solves that by not even supporting subqueries in joins...
2021-02-05 13:30:47 +0100 <merijn> kuribas: I currently solve that by...simply writing out the query and you'd be amazed how well that maps to the underlying SQL :0
2021-02-05 13:30:54 +0100 <merijn> s/:0/;)
2021-02-05 13:31:06 +0100 <kuribas> merijn: then how do you compose the query?
2021-02-05 13:31:13 +0100 <merijn> Oh, that's very easy
2021-02-05 13:31:16 +0100 <merijn> I don't
2021-02-05 13:31:30 +0100 <kuribas> then your usecase is different from mine.
2021-02-05 13:32:35 +0100 <merijn> I have just embraced the simplicity custom queries for custom domain operations and using views if I truly wanna reuse things
2021-02-05 13:33:26 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-05 13:33:29 +0100 <kuribas> merijn: this library solves a specific problem: expressive and composable queries, a solution that works in a team of beginners, and not getting a type error when you swap arguments (like the -simple library do). I guess you solve the last with your DSL.
2021-02-05 13:34:49 +0100 <kuribas> merijn: what if you have different filters and pagination based on what the user provides?
2021-02-05 13:35:06 +0100 <merijn> kuribas: Right, but you were claiming to __monty__ that you were solving a far more general problem, i.e. interaction between code and SQL in general
2021-02-05 13:35:16 +0100 <kuribas> I am...
2021-02-05 13:36:03 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl)
2021-02-05 13:36:03 +0100mouseghost(~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
2021-02-05 13:36:03 +0100mouseghost(~draco@wikipedia/desperek)
2021-02-05 13:36:09 +0100 <merijn> kuribas: I just handle that in the where clause of whatever query
2021-02-05 13:36:18 +0100mouseghostdesperek
2021-02-05 13:36:35 +0100 <kuribas> merijn: then you have to write a different query for each permutation of arguments...
2021-02-05 13:36:47 +0100danza(~francesco@151.57.209.48)
2021-02-05 13:36:55 +0100 <merijn> either by having logic that is "? OR foo < ?" which disables the filter by inserting a true when it's disabled
2021-02-05 13:37:13 +0100 <kuribas> I really dislike having to match the "?" with my arguments.
2021-02-05 13:37:28 +0100 <merijn> kuribas: No, I just have an input record for all possible parameterisation of a query and then return an abstract query
2021-02-05 13:37:42 +0100j2t(~user@84.122.202.215.dyn.user.ono.com) (Ping timeout: 246 seconds)
2021-02-05 13:38:17 +0100 <merijn> It could be nicer with named parameters, but unfortunately I'm stuck with persistent so I can't use that
2021-02-05 13:38:20 +0100 <kuribas> what's an "abstract query"?
2021-02-05 13:38:34 +0100 <merijn> If I'd used -simple that'd be nicer
2021-02-05 13:38:40 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
2021-02-05 13:38:54 +0100 <kuribas> merijn: anyway, I have a good solution to end this discussion, I'll finish the documentation this weekend or the next, you have a look and decide if you want to use it or not :-)
2021-02-05 13:38:58 +0100 <merijn> kuribas: "Query r" and a "runQuery :: Query r -> ConduitT () r m ()"
2021-02-05 13:39:24 +0100 <kuribas> merijn: my guess is that you do exactly what I am doing, but I made a library for it.
2021-02-05 13:39:37 +0100 <merijn> kuribas: So I have a bunch of "FooRecord -> Query Foo"
2021-02-05 13:39:57 +0100 <merijn> kuribas: Well, but without the generics complications and stuff like that :p
2021-02-05 13:40:17 +0100 <kuribas> merijn: you don't need to use generics if you don't have subqueries in joins.
2021-02-05 13:40:20 +0100metreo(~Thunderbi@unaffiliated/metreo)
2021-02-05 13:40:30 +0100 <kuribas> merijn: in fact, the generics are only in my Typed layer...
2021-02-05 13:41:05 +0100 <kuribas> And in another place to insert data, but that is not necessary.
2021-02-05 13:41:47 +0100 <kuribas> merijn: I need to finish the docs with concrete examples first :)
2021-02-05 13:42:28 +0100okad1(~okad@ec2-18-135-78-237.eu-west-2.compute.amazonaws.com) (Quit: okad1)
2021-02-05 13:42:47 +0100okad(~okad@ec2-18-135-78-237.eu-west-2.compute.amazonaws.com)
2021-02-05 13:43:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Ping timeout: 264 seconds)
2021-02-05 13:43:15 +0100metro(~Thunderbi@unaffiliated/metreo)
2021-02-05 13:44:25 +0100metreo(~Thunderbi@unaffiliated/metreo) (Ping timeout: 240 seconds)
2021-02-05 13:44:25 +0100metrometreo
2021-02-05 13:44:55 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 13:46:32 +0100average(uid473595@gateway/web/irccloud.com/x-skfvagfqkixoxjjm)
2021-02-05 13:46:40 +0100Tario(~Tario@201.192.165.173)
2021-02-05 13:47:24 +0100hackagehistogram-simple 1.0 - Simple Data.Map-based histogram https://hackage.haskell.org/package/histogram-simple-1.0 (jonascarpay)
2021-02-05 13:47:25 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-05 13:47:25 +0100 <kuribas> merijn: what db do you use? postgresql?
2021-02-05 13:47:47 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-05 13:49:36 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 13:49:48 +0100 <merijn> SQLite
2021-02-05 13:49:48 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-02-05 13:50:17 +0100 <kuribas> ok, I don't plan to support that, not in the foreseable future
2021-02-05 13:51:55 +0100hackagebound 2.0.3 - Making de Bruijn Succ Less https://hackage.haskell.org/package/bound-2.0.3 (ryanglscott)
2021-02-05 13:52:10 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-02-05 13:52:29 +0100 <opqdonut> that's a terrible pun
2021-02-05 13:52:47 +0100 <kuribas> lol :)
2021-02-05 13:55:42 +0100 <merijn> Blame edward :p
2021-02-05 13:55:49 +0100LKoen_(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-05 13:55:50 +0100 <merijn> Ooh
2021-02-05 13:56:09 +0100 <opqdonut> ah of course
2021-02-05 13:56:20 +0100xsperry(~as@unaffiliated/xsperry) (Disconnected by services)
2021-02-05 13:56:26 +0100fendor_(~fendor@178.115.130.101.wireless.dyn.drei.com)
2021-02-05 13:56:38 +0100fendor(~fendor@178.115.130.101.wireless.dyn.drei.com) (Remote host closed the connection)
2021-02-05 13:56:38 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Client Quit)
2021-02-05 13:56:39 +0100xsperry(~as@unaffiliated/xsperry)
2021-02-05 13:56:41 +0100 <merijn> Looks I need to open a PR to bound because he forgot to include my pedantic correction of his blogpost in the package :p
2021-02-05 13:57:45 +0100merijnwill never give up on his Quixotic quest to make the FP world capitalise De Bruijn properly
2021-02-05 13:58:32 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:51a:84a8:6067:5428) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-05 13:59:07 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net) (Ping timeout: 276 seconds)
2021-02-05 14:00:56 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 14:05:00 +0100 <ij> I think I'm starting to understand why it's so hard to say whether adding strictness will help in general. There are so many options. :)
2021-02-05 14:05:38 +0100 <knu42> I´ve just seen the char kind proposal, seems like the dawn of a new age!
2021-02-05 14:05:47 +0100 <opqdonut> which one?
2021-02-05 14:06:08 +0100 <kuribas> ij: it's mostly when aggregating to a strict scalar value.
2021-02-05 14:06:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-05 14:06:23 +0100 <knu42> https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0387-char-kind.rst
2021-02-05 14:06:26 +0100 <knu42> that one
2021-02-05 14:06:29 +0100brainfunnel(~quassel@12.23.199.146.dyn.plus.net)
2021-02-05 14:06:56 +0100 <knu42> more ways to drink coffee while type checking ^^
2021-02-05 14:07:12 +0100toorevitimirp(~tooreviti@117.182.181.186) (Remote host closed the connection)
2021-02-05 14:07:18 +0100nek0(~nek0@mail.nek0.eu) (Remote host closed the connection)
2021-02-05 14:07:21 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
2021-02-05 14:07:49 +0100 <knu42> I´ll surely implement html escaping for symbols in my lib
2021-02-05 14:07:57 +0100_noblegas(uid91066@gateway/web/irccloud.com/x-sdhgdpxkudokvdwz)
2021-02-05 14:08:00 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2021-02-05 14:08:43 +0100 <maerwald> merijn: did you have a look at the streamly/conduit file copy code?
2021-02-05 14:09:26 +0100 <maerwald> I can only observe differences for small files (<3GB) anything more the results become unpredictable.
2021-02-05 14:10:17 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 14:10:47 +0100 <merijn> maerwald: Not really, where's the code?
2021-02-05 14:11:05 +0100 <maerwald> merijn: https://github.com/hasufell/streamly-bench
2021-02-05 14:11:22 +0100 <maerwald> it's not a proper benchmark, I just timed the execution of the binaries
2021-02-05 14:11:34 +0100carlomagno1(~cararell@148.87.23.7)
2021-02-05 14:11:42 +0100 <merijn> I'll look at it...at some point :)
2021-02-05 14:12:08 +0100 <merijn> i.e. when I have time or more likely when I'm procrastinating >.>
2021-02-05 14:12:11 +0100hekkaidekapus](~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-05 14:12:45 +0100 <maerwald> My suspicion is that there may be a higher initial cost of conduit and once the file size is very large, IO issues take over and you can't observe any differences anymore
2021-02-05 14:13:54 +0100toorevitimirp(~tooreviti@117.182.181.186)
2021-02-05 14:13:55 +0100knu42(577bcec7@gateway/web/cgi-irc/kiwiirc.com/ip.87.123.206.199) (Quit: Connection closed)
2021-02-05 14:13:56 +0100carlomagno(~cararell@148.87.23.9) (Ping timeout: 240 seconds)
2021-02-05 14:14:44 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-02-05 14:14:46 +0100 <maerwald> still weird, since it's an SSD
2021-02-05 14:15:21 +0100 <maerwald> but CPU is quite hight (20-30%) and I don't trust my thinkpad to not mess with performance somehow
2021-02-05 14:15:21 +0100 <merijn> maerwald: Ugh, ok, I looked anyway, because I have no self-control >.> What happens with -O/-O2?
2021-02-05 14:16:03 +0100 <merijn> oh, wait, that's in cabal.project
2021-02-05 14:16:26 +0100 <maerwald> the -fspec and -fmax is recommended by streamly devs
2021-02-05 14:16:45 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-02-05 14:17:09 +0100 <kuribas> maerwaldaren't you prematurely optimizing?
2021-02-05 14:17:24 +0100 <idnar> well I definitely jumped to ghc 9 too soon; so many deps to fix
2021-02-05 14:17:35 +0100 <merijn> idnar: lol
2021-02-05 14:17:37 +0100urodna(~urodna@unaffiliated/urodna)
2021-02-05 14:17:42 +0100 <merijn> idnar: It's been out a day
2021-02-05 14:17:46 +0100 <merijn> What'd you expect? :p
2021-02-05 14:17:47 +0100 <maerwald> idnar: the parser behavior changed ,yeah
2021-02-05 14:17:54 +0100 <maerwald> gonna be a lot of bang patterns to fix
2021-02-05 14:18:08 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Quit: WeeChat 3.0)
2021-02-05 14:19:30 +0100 <idnar> maerwald: it's mostly TH stuff; the ! and @ is mostly fixed in head.hackage
2021-02-05 14:22:45 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 264 seconds)
2021-02-05 14:24:43 +0100geekosaur(82650c7c@130.101.12.124)
2021-02-05 14:26:42 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
2021-02-05 14:27:02 +0100 <maerwald> idnar: https://github.com/haskell-hvr/regex-base/pull/3 hmm
2021-02-05 14:27:15 +0100 <maerwald> 1 year old PR
2021-02-05 14:27:26 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-02-05 14:28:16 +0100todda7(~torstein@2a02:587:1b14:d00:5ec3:abec:812c:b3e2) (Remote host closed the connection)
2021-02-05 14:29:31 +0100son0p(~son0p@181.58.39.182) (Quit: Lost terminal)
2021-02-05 14:29:46 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 14:30:25 +0100danza(~francesco@151.57.209.48) (Read error: Connection reset by peer)
2021-02-05 14:30:33 +0100 <maerwald> It seems they started fixing early
2021-02-05 14:31:02 +0100 <idnar> maerwald: yeah, and https://gitlab.haskell.org/ghc/head.hackage/-/blob/master/patches/regex-base-0.94.0.0.patch
2021-02-05 14:32:14 +0100 <maerwald> still seems there are quite some semi-abandned repos
2021-02-05 14:33:57 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:51a:84a8:6067:5428)
2021-02-05 14:34:15 +0100metreo(~Thunderbi@unaffiliated/metreo) (Quit: metreo)
2021-02-05 14:34:35 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-05 14:34:48 +0100metreo(~Thunderbi@unaffiliated/metreo)
2021-02-05 14:36:20 +0100 <merijn> Such is the world of open source
2021-02-05 14:37:21 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-02-05 14:37:38 +0100alx741(~alx741@186.178.110.33)
2021-02-05 14:37:56 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-02-05 14:38:01 +0100Tario(~Tario@201.192.165.173)
2021-02-05 14:38:15 +0100hiroaki(~hiroaki@ip4d17613f.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds)
2021-02-05 14:39:22 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
2021-02-05 14:39:24 +0100 <swarmcollective> Is anyone hosting a site to list the packages that need maintenance? When I have time, I'd like to know where I could (try to) to help.
2021-02-05 14:40:01 +0100 <merijn> swarmcollective: not really?
2021-02-05 14:40:22 +0100 <geekosaur> isn't head.hackage kinda that site?
2021-02-05 14:40:26 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2021-02-05 14:40:30 +0100 <merijn> geekosaur: No
2021-02-05 14:40:41 +0100 <merijn> geekosaur: head.hackage includes tons of actively maintained things too
2021-02-05 14:41:49 +0100 <merijn> geekosaur: head.hackage is just a collection of hacky compat patches so people hacking on GHC HEAD can actually, you know, compile and test libraries.
2021-02-05 14:42:24 +0100 <geekosaur> right, but one would think actively maintained packages would get removed from it as they are updated
2021-02-05 14:42:35 +0100Martinsos(~user@cpe-188-129-56-3.dynamic.amis.hr) (Remote host closed the connection)
2021-02-05 14:42:38 +0100 <geekosaur> (and the hacks thereby fail to apply)
2021-02-05 14:42:52 +0100 <merijn> geekosaur: Why would you fix and update something for GHC HEAD until it's released?
2021-02-05 14:43:36 +0100 <merijn> You're not even sure if the final release GHC will require the exact same solution as it first is added to head.hackage
2021-02-05 14:44:12 +0100 <geekosaur> the right time to fix and update is when it's in rc, which it has been for a month or so — unless the update renders you incompatible with older versions, maybe
2021-02-05 14:44:14 +0100 <merijn> geekosaur: And by the time, say, 9.0 is released head.hackage already includes stuff for the current 9.2 HEAD, presumably
2021-02-05 14:44:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Ping timeout: 264 seconds)
2021-02-05 14:45:15 +0100nek0(~nek0@mail.nek0.eu)
2021-02-05 14:45:33 +0100 <merijn> Anyway, the best approach is just to offer and maintain stuff you depend on if maintenance isn't fast enough
2021-02-05 14:45:57 +0100 <merijn> Taking up maintenance of packages you don't have a vested interest in isn't something I'd recommend
2021-02-05 14:46:18 +0100LKoen_(~LKoen@252.248.88.92.rev.sfr.net) (Remote host closed the connection)
2021-02-05 14:47:25 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-05 14:47:40 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 14:47:45 +0100 <swarmcollective> merijn, true, motivation is even more fleeting when the outcome does not affect one in the moment.
2021-02-05 14:47:47 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-05 14:49:25 +0100 <merijn> And if you just wanna contribute to the community can I suggest just contributing to Cabal/cabal-install? :p
2021-02-05 14:49:39 +0100 <merijn> Those always need more help/people
2021-02-05 14:50:00 +0100 <merijn> I think Uniaika can always use help with haddock too
2021-02-05 14:50:16 +0100 <merijn> And you're at least likely to directly use those tools :p
2021-02-05 14:50:23 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-02-05 14:50:39 +0100 <Uniaika> ::)
2021-02-05 14:50:45 +0100 <swarmcollective> Good ideas.
2021-02-05 14:51:03 +0100hiroaki(~hiroaki@ip4d17613f.dynamic.kabel-deutschland.de)
2021-02-05 14:51:23 +0100 <merijn> Hell, GHC has plenty of stuff too :p
2021-02-05 14:52:15 +0100urodna(~urodna@unaffiliated/urodna)
2021-02-05 14:53:04 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-05 14:53:32 +0100mattl1(~mattl@s91904426.blix.com) (Remote host closed the connection)
2021-02-05 14:56:11 +0100 <swarmcollective> My Haskell experience is fairly shallow, though. So, I have to be realistic. :) I've just worked some Advent of Code puzzles and butchered poor lambdabot following my whims.
2021-02-05 14:56:18 +0100desperek(~draco@wikipedia/desperek) (Quit: mew wew)
2021-02-05 14:56:32 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-02-05 14:59:32 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-05 14:59:35 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com)
2021-02-05 15:01:48 +0100 <aveltras> any idea what could be wrong here ?
2021-02-05 15:01:53 +0100 <aveltras> https://www.irccloud.com/pastebin/vPYjai5o/
2021-02-05 15:02:09 +0100 <aveltras> the splice shows the right output but it throws an error
2021-02-05 15:02:47 +0100 <aveltras> User is a record with 3 Maybe fields
2021-02-05 15:03:20 +0100berberman_(~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-05 15:03:58 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-05 15:04:01 +0100 <ski> it appears to say you used the type constructor rather than the data constructor ?
2021-02-05 15:04:04 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 15:04:24 +0100 <ski> (personally, i'd `data User = MkUser ...')
2021-02-05 15:05:01 +0100toorevitimirp(~tooreviti@117.182.181.186) (Remote host closed the connection)
2021-02-05 15:05:37 +0100toorevitimirp(~tooreviti@117.182.181.186)
2021-02-05 15:05:54 +0100 <aveltras> user will not be used as User but will be used through a hkd mechanism
2021-02-05 15:06:18 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-05 15:06:23 +0100 <ski> dunno what "hkd" means
2021-02-05 15:06:31 +0100 <aveltras> higher kinded data
2021-02-05 15:06:39 +0100skisighs
2021-02-05 15:06:42 +0100 <aveltras> basically, user here is only some kind of blueprint
2021-02-05 15:06:54 +0100usr25(~J@48.red-83-43-188.dynamicip.rima-tde.net)
2021-02-05 15:07:17 +0100 <ski> (i don't like the term "higher kinded")
2021-02-05 15:07:29 +0100 <ski> what is `user' ?
2021-02-05 15:07:37 +0100 <ski> i thought you were talking about `User'
2021-02-05 15:08:02 +0100 <aveltras> https://www.irccloud.com/pastebin/BiFuGo7E/
2021-02-05 15:08:31 +0100 <ski> i still see no identifier `user' in that paste ..
2021-02-05 15:09:06 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-05 15:09:23 +0100 <aveltras> hmm, there's no lowercase "user" anywhere here
2021-02-05 15:10:06 +0100 <aveltras> here im just trying to generate the following with TH, which works fine when done by hand
2021-02-05 15:10:09 +0100 <aveltras> https://www.irccloud.com/pastebin/QWDmhB8k/
2021-02-05 15:10:11 +0100 <ski> .. what i said, yes
2021-02-05 15:12:15 +0100 <ski> yes, i figured (except that you're not generating a call to `$')
2021-02-05 15:12:50 +0100 <ski> aveltras : where does `dataType' come from ?
2021-02-05 15:13:04 +0100 <aveltras> from the mkWebComponent ''User call
2021-02-05 15:13:10 +0100 <aveltras> that's the name User
2021-02-05 15:13:33 +0100vilpan(~0@212.117.1.172) ()
2021-02-05 15:13:38 +0100 <ski> ah, that explains it
2021-02-05 15:13:56 +0100 <ski> you're passing the wrong identifier to `ConE'
2021-02-05 15:14:15 +0100 <ski> you're passing the identifier for the type constructor `User', not the identifier for the data constructor `User'
2021-02-05 15:14:52 +0100 <ski> try having the call be
2021-02-05 15:14:55 +0100 <aveltras> got it
2021-02-05 15:14:58 +0100 <aveltras> thats fixed
2021-02-05 15:15:04 +0100geekosaur(82650c7c@130.101.12.124) (Quit: Connection closed)
2021-02-05 15:15:09 +0100 <aveltras> something like ConE $ mkName . nameBase $ dataType then
2021-02-05 15:15:15 +0100 <ski> mkWebComponent "my-component" ''User 'User
2021-02-05 15:15:42 +0100geekosaur(82650c7c@130.101.12.124)
2021-02-05 15:15:48 +0100 <aveltras> are there some issues with building it as i've pasted ?
2021-02-05 15:15:55 +0100 <ski> (and then use the last parameter instead of `dataType')
2021-02-05 15:16:43 +0100 <ski> talking about the paste, or about your last in-message snippet ?
2021-02-05 15:16:44 +0100 <aveltras> except the lack of possibility to have a different data constructor name than type constructor
2021-02-05 15:16:51 +0100son0p(~son0p@181.58.39.182)
2021-02-05 15:16:59 +0100 <aveltras> about "ConE $ mkName . nameBase $ dataType"
2021-02-05 15:17:21 +0100 <aveltras> so then the user doesn't need to give an extra argument at the call site
2021-02-05 15:17:47 +0100 <ski> well, imho, it encourages the bad practice of using the same name for the data constructort and the type constructor .. but that's my opinion
2021-02-05 15:18:17 +0100 <aveltras> why do you think it's a bad practice ?
2021-02-05 15:18:25 +0100 <ph88^> where can i find which variables i can use in a stack template ?
2021-02-05 15:18:33 +0100 <ski> if you ever want anyone else to use this, then perhaps it would be nice to give them a choice about whether they want to use the same name or not
2021-02-05 15:19:30 +0100 <aveltras> i might add another entry lik mkWebComponentNamed which accepts the extra parameter then, you're right
2021-02-05 15:19:36 +0100 <ski> because it confuses both beginners and non-beginners (as evidenced by this exact example). because it causes complications with export and import
2021-02-05 15:20:04 +0100 <aveltras> i get it
2021-02-05 15:20:11 +0100 <aveltras> thanks for your help with the TH bit here
2021-02-05 15:20:53 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 15:21:30 +0100 <ski> (oh, and i also consider what you were suggesting to be unhygienic (that's a technical term) .. and generally, macros (under which TH qualifies) tend to be better off, with less non-hygiene)
2021-02-05 15:21:48 +0100 <__monty__> a/wg 13
2021-02-05 15:22:24 +0100 <aveltras> ye, i know that template haskell is frowned upon but i've been spending quite some time yesterday trying to get this to work with generics only but found it too hard and gave up
2021-02-05 15:22:54 +0100 <ski> (the generation of the name `mkUser' is also unhygienic .. but if that's a private implementation detail, that users of this TH aren't supposed to care about, that's somewhat less bad)
2021-02-05 15:23:08 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-05 15:23:21 +0100 <aveltras> mkUser is here to drive inference at call site
2021-02-05 15:23:25 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: Biab, building on a memory-poor system >.<)
2021-02-05 15:23:27 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-05 15:23:34 +0100 <aveltras> User type won't be used
2021-02-05 15:23:54 +0100 <ski> i dunno what you mean by those two statements
2021-02-05 15:24:23 +0100 <aveltras> the intended final use is to be able to "wrap" existing web components
2021-02-05 15:24:40 +0100 <aveltras> which are custom html tags that exposes possible attributes to configure them
2021-02-05 15:24:58 +0100 <aveltras> here User would be for example the datatype representing the possible configuration values
2021-02-05 15:25:13 +0100 <ski> is the user supposed to write `mkName' anywhere manually ? or will all references to `mkName' be generated by TH ?
2021-02-05 15:25:24 +0100 <aveltras> more like
2021-02-05 15:25:32 +0100 <aveltras> prop @"name" "name" $ prop @"adult" True mkUser
2021-02-05 15:25:38 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-05 15:25:48 +0100 <aveltras> and this would build the configuration that another lib needs
2021-02-05 15:26:02 +0100 <aveltras> im doing this for lucid first
2021-02-05 15:26:07 +0100 <aveltras> you'd use something like
2021-02-05 15:26:19 +0100 <aveltras> wc_ (prop @"name" "name" $ prop @"adult" True mkUser) $ h1_ "Hello"
2021-02-05 15:26:21 +0100 <aveltras> for example
2021-02-05 15:26:35 +0100 <ski> if the user types that, then yes, the user is supposed to know about `mkUser'
2021-02-05 15:26:36 +0100 <aveltras> the hkd thing is to get it to be compatible with reflex dom also
2021-02-05 15:26:48 +0100 <aveltras> ye the goal is to only expose mkUser
2021-02-05 15:27:48 +0100 <ski> (i would probably also pass the identifier to use as `mkUser', to `mkWebComponent' (or some version of it) .. although i haven't checked whether TH actually supports this kind of generative usage)
2021-02-05 15:28:00 +0100Guest_44(7da1814b@125.161.129.75)
2021-02-05 15:28:07 +0100 <aveltras> ye i cut it from the second past
2021-02-05 15:28:11 +0100 <aveltras> the real thing is
2021-02-05 15:28:16 +0100 <aveltras> mkWebComponent "my-component" ''User
2021-02-05 15:28:20 +0100 <ski> (that would make it hygienic)
2021-02-05 15:28:34 +0100 <aveltras> what do you mean by identifier here ?
2021-02-05 15:28:39 +0100 <ski> that's what i saw in the first paste, yes
2021-02-05 15:28:53 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e)
2021-02-05 15:29:16 +0100 <Guest_44> hi i tried to download haskell (by entering curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
2021-02-05 15:29:17 +0100 <Guest_44> ) on my terminal in mac os 10.12 but it says ""_eghcup --cache install ghc recommended" failed!", do you guys can help:(
2021-02-05 15:29:50 +0100 <ski> an identifier is a name that identifies some kind of entity. could be a variable, a data constructor, a type constructor, a pattern synonym, a module name, a type class, ..
2021-02-05 15:30:10 +0100 <aveltras> ye but in that specific example you meant the following ?
2021-02-05 15:30:11 +0100 <maerwald> Guest_44: 10.13 up is supported, 10.12 not
2021-02-05 15:30:16 +0100 <aveltras> mkWebComponent "my-component" ''User 'User ?
2021-02-05 15:30:25 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 240 seconds)
2021-02-05 15:30:34 +0100 <ski> aveltras : yes
2021-02-05 15:30:40 +0100 <ski> or possibly even
2021-02-05 15:30:41 +0100 <aveltras> i figured i could also lookup the data constructor via the data type during template haskell no ?
2021-02-05 15:30:47 +0100 <ski> mkWebComponent "my-component" ''User 'User 'mkUser
2021-02-05 15:30:50 +0100 <ski> (if that's possible)
2021-02-05 15:31:16 +0100 <aveltras> the TH calls would be on library side here
2021-02-05 15:31:29 +0100 <ski> aveltras : what if there's more than one data constructor ?
2021-02-05 15:31:39 +0100 <aveltras> so im not sure choosing the function name has much value since you already choose the data constructor
2021-02-05 15:31:52 +0100 <aveltras> there wont, it only works with records
2021-02-05 15:32:11 +0100 <ski> record syntax works (FSVO of "works") for more than one data constructor
2021-02-05 15:32:33 +0100 <Guest_44> maerwald ahh i see i see, so i should update my software first right? then do the curl thing in my terminal :")
2021-02-05 15:32:38 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:51a:84a8:6067:5428) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-05 15:32:39 +0100 <maerwald> yeah
2021-02-05 15:33:04 +0100 <aveltras> as long as i can make it break during TH compilation if the data type doesn't have the right shape that's not an issue here
2021-02-05 15:33:05 +0100 <merijn> ski: All hail our -XNoFieldSelector overlords ;)
2021-02-05 15:33:15 +0100 <ski> `data Foo = FooBar {blah :: String,bleh :: Int} | FooBar {blah :: String,bloh :: Maybe [String]}' is quite possible
2021-02-05 15:33:15 +0100 <Guest_44> maerwald thank you so much i didnt know they dont support mac os 10.12 ive been searching for answers for hours T__T
2021-02-05 15:33:17 +0100 <Squarism> Anyone tried hodatime? A worthy replacement for "time" library?
2021-02-05 15:33:38 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 264 seconds)
2021-02-05 15:33:39 +0100 <maerwald> Guest_44: yeah, there are problems with linking/missing symbols on 10.12
2021-02-05 15:33:57 +0100 <aveltras> the TH thing is for user of the libraries (which will expose data type for existing web-components) but not end users (which will use those intermediate librairies with reflex or lucid in their app)
2021-02-05 15:34:15 +0100 <ski> aveltras : ok
2021-02-05 15:34:23 +0100 <maerwald> Guest_44: and mac makes it impossible to statically link
2021-02-05 15:34:28 +0100 <aveltras> but if i give ''Foo to the TH call here, i think i can know that i must have a basic record behind it
2021-02-05 15:34:38 +0100 <aveltras> and even get the data constructor name from it i guess
2021-02-05 15:34:42 +0100skiwould still strive to make TH things hygienic
2021-02-05 15:35:01 +0100 <aveltras> i ll first try to get something working :)
2021-02-05 15:35:20 +0100 <ski> (i think TH should go out of its way to make people go out of their way, if they want to express unhygienic things, rather than making them too easy)
2021-02-05 15:35:36 +0100 <Guest_44> maerwald i see i see,, if i may know also.. is the haskell languange more compatible with mac os / windows/ linux ? :o
2021-02-05 15:35:53 +0100Natch(~natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection)
2021-02-05 15:35:54 +0100 <maerwald> Guest_44: I'd say linux is the easiest to support
2021-02-05 15:35:57 +0100 <maerwald> windows the worst
2021-02-05 15:36:03 +0100 <aveltras> the thing here, i can't handle any other thing that a basic record here
2021-02-05 15:36:14 +0100 <ski> ok
2021-02-05 15:36:23 +0100 <aveltras> since TH breaks at compile time, there's no real harm to just error out on something else
2021-02-05 15:36:23 +0100 <maerwald> so: 1. linux, 2. mac, 3. freebsd, 4. windows
2021-02-05 15:36:42 +0100 <ski> unhygienic macros are harder to reason about
2021-02-05 15:36:44 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 15:36:57 +0100 <ski> hygiene is about keeping lexical scoping, also for macros
2021-02-05 15:37:25 +0100 <aveltras> i get that but the goal is for user to just define a record representing the possible attributes, call some TH and be done with it
2021-02-05 15:37:30 +0100 <aveltras> the burden's not on them
2021-02-05 15:39:36 +0100 <ski> iow, if a macro is defined to introduce a local identifier when expanded, and then splices in some user code in the scope of that, then any references in that user code to an identifier with the same name should *not* reference the identifier introduced by the macro (but rather whatever identifier was in scope, at the macro call)
2021-02-05 15:41:12 +0100Natch(~Natch@c-b471e255.014-297-73746f25.bbcust.telenor.se)
2021-02-05 15:41:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 15:41:26 +0100 <aveltras> hmm, the end user here should call something like "import Lib.Components" which expose every "mkSomething" functions, if it clashes with something existing, user can import it qualified
2021-02-05 15:41:49 +0100 <ski> and, if the body of a macro definition references some identifier that is in scope at the macro definition site, then an expansion of that macro should still have that identifier resolve to what was in scope at the macro definition site, even if there's an identifier with the same name in scope at the macro call site, and even if the original identifier is not in scope at the macro call site (perhaps not
2021-02-05 15:41:50 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-05 15:41:55 +0100 <ski> even exported by the library providing the macro)
2021-02-05 15:42:45 +0100 <ski> aveltras : yea, i was just trying to explain what "hygiene" even means
2021-02-05 15:42:52 +0100 <Guest_44> maerwald ahh good gooddd,, so the mac os is pretty adequate right thank u so muchh:")) im just starting this programming languange i hope i can learn it well!! do you have recommendations on where to learn haskell for beginners?
2021-02-05 15:42:52 +0100Guest_44(7da1814b@125.161.129.75) (Quit: Ping timeout (120 seconds))
2021-02-05 15:43:04 +0100skiblinks
2021-02-05 15:43:32 +0100geekosaur(82650c7c@130.101.12.124) (Quit: Ping timeout (120 seconds))
2021-02-05 15:43:54 +0100 <ij> such enthusiasm
2021-02-05 15:44:01 +0100 <ski> in short, unhygienic macros basically employ a form of dynamic scope, and hygienic macros employ static/lexical scoping
2021-02-05 15:44:06 +0100Guest_44(7da1814b@125.161.129.75)
2021-02-05 15:44:40 +0100 <ski> Guest_44 : well, one recommendation could be to get a nice intro textbook to start with
2021-02-05 15:44:49 +0100 <ski> there are also some web resources, though
2021-02-05 15:45:46 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:51a:84a8:6067:5428)
2021-02-05 15:46:10 +0100 <ski> Guest_44 : oh .. and if you have questions (like about particular things you're wondering about, or problems you stumble upon, or want feedback/review on code), you're welcome to ask in here
2021-02-05 15:46:58 +0100 <ski> (and lurking in here, and also trying to help others with some questions, can also be a good way to learn about and reinforce things)
2021-02-05 15:47:05 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-05 15:48:11 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-02-05 15:48:58 +0100hoobop1(~hoobop@217.146.82.202)
2021-02-05 15:49:05 +0100jil(~user@45.86.162.6)
2021-02-05 15:51:15 +0100raym(~ray@45.64.220.139) (Quit: leaving)
2021-02-05 15:51:32 +0100raym(~ray@45.64.220.139)
2021-02-05 15:52:59 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 15:53:07 +0100 <Guest_44> ski aah thank you smm for the welcomee !! alrightyy definitelyy will dooo hehee 😭🙏
2021-02-05 15:53:45 +0100Guest14662(~Username@host-79-3-98-53.business.telecomitalia.it)
2021-02-05 15:53:51 +0100 <ski> Guest_44 : would you like some textbook names, and some other links ?
2021-02-05 15:54:12 +0100hive-mind(~hivemind@rrcs-67-53-148-69.west.biz.rr.com) (Ping timeout: 246 seconds)
2021-02-05 15:55:38 +0100 <Guest_44> ski yesss pleasee !! 🥺 would love to know itt
2021-02-05 15:55:53 +0100 <ski> well, one book that's often suggested is
2021-02-05 15:55:56 +0100 <ski> @where PIH
2021-02-05 15:55:56 +0100 <lambdabot> "Programming in Haskell" by Graham Hutton in 2007-01-15,2016-09-01 at <http://www.cs.nott.ac.uk/~pszgmh/pih.html>
2021-02-05 15:56:48 +0100 <ski> i learned from "Haskell: The Craft of Functional Programming" by Simon Thompson
2021-02-05 15:57:13 +0100hive-mind(~hivemind@rrcs-67-53-148-69.west.biz.rr.com)
2021-02-05 15:57:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 15:57:30 +0100 <siraben> I learned from Programming in Haskell, solid beginner book.
2021-02-05 15:57:46 +0100 <ski> some people like
2021-02-05 15:57:48 +0100 <ski> @where HPFFP
2021-02-05 15:57:48 +0100 <lambdabot> "Haskell Programming: from first principles - Pure functional programming without fear or frustration" by Chistopher Allen (bitemyapp),Julie Moronuki at <http://haskellbook.com/>,#haskell-beginners
2021-02-05 15:58:08 +0100 <ski> it's quite long and verbose, it doesn't assume any programming experience
2021-02-05 15:58:26 +0100 <merijn> ski: tbh, I disagree with that claim ;)
2021-02-05 15:58:38 +0100 <ski> which part ?
2021-02-05 15:58:45 +0100 <ski> the last one, i presume ?
2021-02-05 15:58:49 +0100 <merijn> It does not *explicitly* assume programming experience, but implicitly it kinds does in its structure
2021-02-05 15:59:12 +0100 <ski> well, it doesn't *purport* to assume any programming experience .. is that fine by you :P ?
2021-02-05 15:59:30 +0100 <ski> (i have not read it, i don't really have an opinion on the issue)
2021-02-05 15:59:35 +0100 <merijn> One of the main problem my partner had is that it very quickly starts doing all sorts of exercises with lists and she was just like "but why do I care about lists?"
2021-02-05 15:59:48 +0100 <ski> ah .. motivation
2021-02-05 16:00:08 +0100skiidly recalls a recent discussion about that, recently, in-channel
2021-02-05 16:00:18 +0100 <ph88^> {-# OPTIONS_GHC -F -pgmF hspec-discover #-} what does this do ?
2021-02-05 16:00:25 +0100 <merijn> Just the sorts of exercises that make a lot of sense when you have done some programming, where *of course* you wanna know what things match a predicate in a container!
2021-02-05 16:00:44 +0100 <ski> there's also e.g.
2021-02-05 16:00:46 +0100 <ski> @where SoE
2021-02-05 16:00:46 +0100 <lambdabot> "The Haskell School of Expression: Learning Functional Programming through Multimedia" by Paul Hudak in 2000 at <http://www.cs.yale.edu/homes/hudak/SOE/>,<http://haskell.org/soe/> [broken]
2021-02-05 16:01:12 +0100 <ski> and some other books i know even less about. presumably at least some of them are quite nice
2021-02-05 16:01:21 +0100 <ski> (i've heard people say nice things about SoE)
2021-02-05 16:01:31 +0100 <ski> @where HTAC
2021-02-05 16:01:32 +0100 <lambdabot> "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook>
2021-02-05 16:01:35 +0100 <ski> @where wikibook
2021-02-05 16:01:35 +0100 <lambdabot> http://en.wikibooks.org/wiki/Haskell
2021-02-05 16:01:40 +0100 <ski> might also be useful
2021-02-05 16:01:55 +0100Guest14662(~Username@host-79-3-98-53.business.telecomitalia.it) (Quit: Going offline, see ya! (www.adiirc.com))
2021-02-05 16:02:13 +0100 <ski> Guest_44 : finally, for some exercises (and some more material around it, i believe), you could possibly try
2021-02-05 16:02:16 +0100 <ski> @where CIS192
2021-02-05 16:02:16 +0100 <lambdabot> I know nothing about cis192.
2021-02-05 16:02:19 +0100 <ski> er
2021-02-05 16:02:20 +0100 <ski> @where CIS194
2021-02-05 16:02:20 +0100 <lambdabot> https://www.seas.upenn.edu/~cis194/spring13/lectures.html
2021-02-05 16:02:35 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-02-05 16:03:24 +0100 <ski> (some people like to try Advent of Code problems with Haskell. or Project Euler problems (if you're math-inclined). istr there may be some more collections of problems around that i forget, too)
2021-02-05 16:03:34 +0100dwt(~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 272 seconds)
2021-02-05 16:03:39 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection)
2021-02-05 16:03:43 +0100 <ski> merijn : makes sense. noted
2021-02-05 16:04:00 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0)
2021-02-05 16:04:19 +0100ArConan(17613c8b@23.97.60.139)
2021-02-05 16:05:17 +0100 <jil> ,hello #haskell
2021-02-05 16:05:40 +0100 <merijn> ski: In terms of prerequisite knowledge it seemed fine for her with minimal-to-no programming experience, but yeah, the structure/order left a bit to be desired
2021-02-05 16:05:45 +0100 <ski> Guest_44 : perhaps i should also say that "LYAH" tends to not be recommended so much by this channel. i does have some pretty pictures, and perhaps the dialogue can be fun. but it has been criticized for not going that deep with explanations, and for lacking exercises
2021-02-05 16:05:50 +0100 <ski> hello jil
2021-02-05 16:06:12 +0100BrianZ(c0f3da07@gateway/web/cgi-irc/kiwiirc.com/ip.192.243.218.7) (Quit: Connection closed)
2021-02-05 16:06:30 +0100 <ski> merijn : i wonder whether the authors would be open to such constructive criticism, for the next edition
2021-02-05 16:07:07 +0100 <merijn> ski: eh
2021-02-05 16:07:21 +0100 <merijn> ski: The odds of that happening are...probably 0?
2021-02-05 16:07:21 +0100 <jil> I'm slowly working through the example of the "programming in haskell". I'm try exercices on higher order function. I have to (re)define the stanadard prelude function al, any and here's what I come up with. http://ix.io/2OqD
2021-02-05 16:07:38 +0100 <ski> being open or a next edition happening ?
2021-02-05 16:07:39 +0100 <merijn> ski: Given the less than amicable ending to the project
2021-02-05 16:07:48 +0100 <merijn> ski: A new edition happening
2021-02-05 16:07:57 +0100 <ski> oh, i dunno about any ending drama
2021-02-05 16:08:38 +0100 <merijn> ski: "The collaboration did not end on good terms" is probably a rather substantial understatement :)
2021-02-05 16:09:39 +0100 <ski> jil : your implementations seem correct, although the way they're defined could still be improved
2021-02-05 16:09:44 +0100 <merijn> jil: the (commented out) takeWhile can be simplified
2021-02-05 16:09:51 +0100 <ski> merijn : oic :/
2021-02-05 16:09:56 +0100 <jil> It works but I'm not satisfied, because the type declaration in the book says all :: (a -> Bool) -> [ Bool] -> Bool and mine says all :: (a -> Bool) -> [a] -> Bool
2021-02-05 16:09:57 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 16:09:57 +0100 <merijn> jil: Consider this: Do you need a special case for single element lists?
2021-02-05 16:10:27 +0100 <ski> `all :: (a -> Bool) -> [Bool] -> Bool' is incorrect. if the book says that, that's a typo
2021-02-05 16:10:37 +0100marle(574849fe@87.72.73.254)
2021-02-05 16:10:38 +0100ArConan(17613c8b@23.97.60.139) (Quit: Connection closed)
2021-02-05 16:10:41 +0100 <ski> (and ditto for `any')
2021-02-05 16:10:55 +0100 <jil> ok, thank you ski, I was realy confused.
2021-02-05 16:11:06 +0100 <merijn> oh, wait, the 2nd case of takeWhile is rather questionable to begin with >.>
2021-02-05 16:11:35 +0100 <jil> takeWhile is draft, please ignore it.
2021-02-05 16:11:36 +0100 <ski> jil : oh, actually, what should `takeWhile_ even []' evaluate to ?
2021-02-05 16:12:13 +0100 <jil> I want all an any to be clear beofre going furth with takWhile
2021-02-05 16:12:18 +0100 <ski> jil : btw, if you define `test_and' *locally* to `all_' (using `where'), then you don't need to pass `p' as a parameter to it
2021-02-05 16:12:29 +0100 <ski> (and ditto for `test_or' and `any_')
2021-02-05 16:12:42 +0100itai(~itai@87.70.56.140)
2021-02-05 16:13:02 +0100 <ski> this is useful here, since you're probably not going to want to use `test_and' (/`test_or') for anything else than the definition of `all_' (`any_')
2021-02-05 16:14:01 +0100 <ski> (sorry, the "this" here refers to defining the "helper" function locally, so that it's only visible to its "parent"/"wrapper" function. not needing to pass `p' explicitly is a separate effect of doing this)
2021-02-05 16:14:10 +0100Jd007(~Jd007@162.156.11.151)
2021-02-05 16:14:25 +0100 <jil> ok, I was looking f for a way to include the imn the main function indeed
2021-02-05 16:14:35 +0100 <ski> do you know how to use `where' ?
2021-02-05 16:14:41 +0100 <jil> yes
2021-02-05 16:14:56 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-05 16:15:06 +0100 <ski> (when testing things, it can be useful at times to not have helpers in `where', so that one can test them directly, though ..)
2021-02-05 16:15:07 +0100Wuzzy(~Wuzzy@p57a2e44e.dip0.t-ipconnect.de)
2021-02-05 16:15:15 +0100itai(~itai@87.70.56.140) (Remote host closed the connection)
2021-02-05 16:15:27 +0100berberman(~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-05 16:15:39 +0100 <ski> jil : oh .. and do you need separate base cases for `all_' and `any_' ?
2021-02-05 16:16:09 +0100 <ski> (and for `takeWhile_' .. do you know how `concat' is defined ?)
2021-02-05 16:16:33 +0100 <ski> merijn : ah .. right
2021-02-05 16:16:45 +0100 <jil> well they are separate question in the book.
2021-02-05 16:16:53 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-05 16:16:55 +0100 <jil> :t concat
2021-02-05 16:16:56 +0100 <lambdabot> Foldable t => t [a] -> [a]
2021-02-05 16:16:59 +0100 <ski> what is a separate question
2021-02-05 16:17:06 +0100 <Uniaika> -/21
2021-02-05 16:17:28 +0100 <ski> concat :: [[a]] -> [a] -- is what you're using here. and it's defined like :
2021-02-05 16:17:28 +0100berberman(~berberman@unaffiliated/berberman) (Max SendQ exceeded)
2021-02-05 16:17:36 +0100 <ski> concat [ ] = []
2021-02-05 16:17:47 +0100 <ski> concat (xs:xss) = xs ++ concat xss
2021-02-05 16:17:54 +0100 <jil> ski, you asked if I needed separate base case fao all_ and any_.
2021-02-05 16:18:13 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-05 16:18:17 +0100 <ski> yes. but what is the separate questions ?
2021-02-05 16:19:22 +0100 <jil> to (re)define all and any. I'm still learning and repeating stuff for clarity is not bad for me.
2021-02-05 16:19:24 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-dwqapemjrwbgflyv)
2021-02-05 16:19:27 +0100 <merijn> jil: Oh, also
2021-02-05 16:19:35 +0100 <merijn> jil: Your base case for all is incorrect :)
2021-02-05 16:19:43 +0100Guest_44(7da1814b@125.161.129.75) (Quit: Connection closed)
2021-02-05 16:19:57 +0100 <merijn> At least, going by the definition in the standard library and the convention in logic
2021-02-05 16:20:04 +0100 <ski> nicely spotted
2021-02-05 16:20:14 +0100 <jil> wait wait wait.. you asked so many question. I need to digest them already.
2021-02-05 16:20:21 +0100 <merijn> > all even [1]
2021-02-05 16:20:22 +0100Deide(~Deide@217.155.19.23)
2021-02-05 16:20:24 +0100 <lambdabot> False
2021-02-05 16:20:28 +0100 <merijn> > all even []
2021-02-05 16:20:29 +0100 <lambdabot> True
2021-02-05 16:20:38 +0100 <ski> heh, okay. let's slow down and let you process what we've suggested, so far
2021-02-05 16:20:54 +0100Guest_44(7da1814b@125.161.129.75)
2021-02-05 16:21:06 +0100berberman(~berberman@unaffiliated/berberman) (Max SendQ exceeded)
2021-02-05 16:21:44 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-05 16:21:45 +0100 <ski> (`all_ p (xs ++ ys)' is supposed to be the same as `all_ p xs && all_ p ys' .. what happens when `xs' is empty ?)
2021-02-05 16:21:53 +0100 <merijn> Asking #haskell for help; like trying to take a small sip from a firehose ;)
2021-02-05 16:22:02 +0100skiglances around nervously
2021-02-05 16:22:35 +0100berberman(~berberman@unaffiliated/berberman) (Max SendQ exceeded)
2021-02-05 16:22:43 +0100 <Guest_44> ski all noted !!! thank uuu so muchhh T__T
2021-02-05 16:23:20 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-05 16:25:20 +0100 <ski> Guest_44 : anyway, different people learn in different ways. not all styles of intro suits everyone. hopefully if you pick a textbook, it won't be too bad for you, though. and you're welcome to ask particular questions here, as said. sometimes, you may have to patiently wait for a bit before anyone, who may have a clue and a willing to try, notices your question, though
2021-02-05 16:26:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 16:26:56 +0100skimay sometimes err on the side of being too complete, and also explaining why you generally don't want to do something, and then explaining how to do it anyway ..
2021-02-05 16:28:02 +0100 <maerwald> programming made me a worse reader
2021-02-05 16:28:12 +0100 <maerwald> books are too linear/structured
2021-02-05 16:28:51 +0100 <ski> you want to be able to jump around, and focus on a more, or less, high level ?
2021-02-05 16:29:02 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net) (Read error: Connection reset by peer)
2021-02-05 16:29:16 +0100 <maerwald> yeah, when reading code you follow your intuition/interest, because everything is chaos anyway
2021-02-05 16:29:22 +0100 <maerwald> there's no consistent story anywhere
2021-02-05 16:29:26 +0100 <ski> (also, are you talking about books in general, or textbooks or the like ?)
2021-02-05 16:29:52 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-02-05 16:30:13 +0100 <jil> Ok, so I've add the where http://ix.io/2OqM
2021-02-05 16:30:22 +0100 <ski> @remember maerwald <maerwald> yeah, when reading code you follow your intuition/interest, because everything is chaos anyway <maerwald> there's no consistent story anywhere
2021-02-05 16:30:22 +0100 <lambdabot> I will remember.
2021-02-05 16:30:30 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-05 16:30:44 +0100 <ski> jil : good
2021-02-05 16:30:58 +0100 <ski> now, you could note that the brackets around `p x' are actually redundant
2021-02-05 16:31:18 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e)
2021-02-05 16:31:29 +0100 <ski> (function application binds tighter than ordinary (defined) operators, like `&&' and `||')
2021-02-05 16:31:55 +0100toorevitimirp(~tooreviti@117.182.181.186) (Remote host closed the connection)
2021-02-05 16:32:06 +0100 <ski> (do you see what i mean ?)
2021-02-05 16:32:13 +0100 <jil> yes
2021-02-05 16:32:37 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
2021-02-05 16:32:42 +0100 <ski> next, since `p' is in scope in the `where', you don't need to pass `p' as a parameter
2021-02-05 16:33:15 +0100 <jil> I see. Nice
2021-02-05 16:33:55 +0100hackagehedgehog-fakedata 0.0.1.4 - Use 'fakedata' with 'hedgehog' https://hackage.haskell.org/package/hedgehog-fakedata-0.0.1.4 (parsonsmatt)
2021-02-05 16:34:04 +0100 <ski> (you don't *need* to do this either .. but i can be good to know about, that you *can* do this, if you should so choose. sometimes explicit is to be preferred, sometimes implicit. the important thing is to know about the relevant options, and make an informed choice, wrt the trade-offs, and your personal style and sense of aesthetics)
2021-02-05 16:34:19 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Remote host closed the connection)
2021-02-05 16:34:22 +0100 <ski> (er, s/but i can be/but it can be/)
2021-02-05 16:34:31 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e)
2021-02-05 16:35:05 +0100 <ski> jil : so .. if you'd do this change, what would the code then end up looking like ?
2021-02-05 16:36:48 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Remote host closed the connection)
2021-02-05 16:37:02 +0100 <swarmcollective> I've found that inline declaration of functions in the where reduced duplication in the function, then later this pattern appeared in other functions. It was then easy to pull it out; though that does cause the parameter (`p` in this case) to become formal.
2021-02-05 16:37:23 +0100 <ski> yes
2021-02-05 16:37:29 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-02-05 16:37:36 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 258 seconds)
2021-02-05 16:37:55 +0100 <ski> fortunately, Haskell syntax is lightweight enough that it's usually pretty easy to do these kind of refactorings
2021-02-05 16:38:11 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-05 16:38:59 +0100 <ski> (.. at least in comparision with certain other languages which shall remain unnamed)
2021-02-05 16:39:24 +0100 <jil> It should look like http://ix.io/2OqP
2021-02-05 16:39:42 +0100 <ski> yes
2021-02-05 16:39:55 +0100 <ski> (although you're still having one pair of redundant brackets)
2021-02-05 16:40:33 +0100 <jil> Your first question was about the empty list case, but I don't see how to remove it. and keep the flodr
2021-02-05 16:40:44 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
2021-02-05 16:41:04 +0100Guest_44(7da1814b@125.161.129.75) (Quit: Connection closed)
2021-02-05 16:41:10 +0100 <ski> > foldr (*) 1 [2,3,5]
2021-02-05 16:41:12 +0100 <lambdabot> 30
2021-02-05 16:41:13 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 265 seconds)
2021-02-05 16:41:14 +0100 <ski> > foldr (*) 1 [2,3]
2021-02-05 16:41:16 +0100 <lambdabot> 6
2021-02-05 16:41:17 +0100 <ski> > foldr (*) 1 [2]
2021-02-05 16:41:19 +0100 <lambdabot> 2
2021-02-05 16:41:20 +0100 <ski> > foldr (*) 1 []
2021-02-05 16:41:21 +0100 <lambdabot> 1
2021-02-05 16:41:36 +0100 <ski> you'll see that `foldr' itself handles empty lists, fine
2021-02-05 16:41:49 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 258 seconds)
2021-02-05 16:41:50 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 16:42:10 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-05 16:42:24 +0100 <ski> > foldr (*) 1 [a,b,c,d]
2021-02-05 16:42:24 +0100ski(~ski@ed-3358-10.studat.chalmers.se) (Killed (Sigyn (Spam is off topic on freenode.)))
2021-02-05 16:42:25 +0100 <lambdabot> a * (b * (c * (d * 1)))
2021-02-05 16:42:35 +0100 <ij> yikes
2021-02-05 16:42:47 +0100ystael(~ystael@209.6.50.55) (Quit: Lost terminal)
2021-02-05 16:42:54 +0100ski(~ski@m-1163-19.studat.chalmers.se)
2021-02-05 16:42:55 +0100mouseghost(~draco@wikipedia/desperek)
2021-02-05 16:42:56 +0100skisighs
2021-02-05 16:43:01 +0100ChanServ+o ski
2021-02-05 16:43:15 +0100skiski_
2021-02-05 16:43:15 +0100 <jess> oops
2021-02-05 16:43:28 +0100 <jess> sorry that the robot ate you
2021-02-05 16:43:58 +0100 <jil> > foldr (&&) True [True, False]
2021-02-05 16:43:59 +0100 <lambdabot> False
2021-02-05 16:44:11 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net) (Read error: Connection reset by peer)
2021-02-05 16:44:13 +0100berberman(~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-05 16:44:21 +0100 <jil> > foldr (&&) True []
2021-02-05 16:44:23 +0100 <lambdabot> True
2021-02-05 16:44:24 +0100ski(~ski@ed-3358-10.studat.chalmers.se)
2021-02-05 16:44:29 +0100 <jil> ok
2021-02-05 16:44:38 +0100 <shapr> ski: what was that?
2021-02-05 16:44:52 +0100 <ski> Sigyn misbehaves, sometimes
2021-02-05 16:44:55 +0100 <shapr> ah
2021-02-05 16:45:13 +0100 <ski> (i've had it happen, multiple times in the past, and have also seen it happen to others)
2021-02-05 16:45:15 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-05 16:45:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Ping timeout: 264 seconds)
2021-02-05 16:45:38 +0100guest7682358928(c9dbe9a1@gateway/web/cgi-irc/kiwiirc.com/ip.201.219.233.161)
2021-02-05 16:45:53 +0100ski_(~ski@m-1163-19.studat.chalmers.se) (Client Quit)
2021-02-05 16:46:13 +0100pavonia(~user@unaffiliated/siracusa)
2021-02-05 16:46:28 +0100ystael(~ystael@209.6.50.55)
2021-02-05 16:46:50 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-02-05 16:47:01 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-05 16:47:12 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-05 16:47:16 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 2.9)
2021-02-05 16:47:24 +0100 <jil> ski the reasin you sighs is because the lambabot should have returned 1 * (a * (b * (c * (d * [])))) ?
2021-02-05 16:47:49 +0100 <jil> reason
2021-02-05 16:48:13 +0100 <ski> no
2021-02-05 16:48:15 +0100berberman(~berberman@unaffiliated/berberman) (Max SendQ exceeded)
2021-02-05 16:48:40 +0100 <ski> (the `[]' there would make no sense)
2021-02-05 16:48:48 +0100 <jil> ok
2021-02-05 16:48:57 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-05 16:49:10 +0100 <jil> why ij yiked ?
2021-02-05 16:49:31 +0100rople(~rople@2001:8003:d44b:300:ac2a:fb0f:6f96:d286)
2021-02-05 16:50:17 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-05 16:51:45 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds)
2021-02-05 16:51:58 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 16:53:37 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-05 16:54:12 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 16:55:01 +0100brainfunnel_(~quassel@96.223.198.146.dyn.plus.net)
2021-02-05 16:56:56 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-02-05 16:57:21 +0100 <ski> jil : hm, anyway
2021-02-05 16:57:40 +0100 <swarmcollective> I guess Sigyn was jealous for foldl, since foldr was getting all the attention.
2021-02-05 16:57:49 +0100 <ski> hah :)
2021-02-05 16:57:57 +0100brainfunnel(~quassel@12.23.199.146.dyn.plus.net) (Ping timeout: 256 seconds)
2021-02-05 16:58:07 +0100rople(~rople@2001:8003:d44b:300:ac2a:fb0f:6f96:d286) (Quit: rople)
2021-02-05 16:58:20 +0100brainfunnel(~quassel@224.142.208.46.dyn.plus.net)
2021-02-05 16:58:38 +0100rople(~rople@2001:8003:d44b:300:ac2a:fb0f:6f96:d286)
2021-02-05 16:58:45 +0100 <ski> jil : i was pondering whether to attach one or the other issue at first
2021-02-05 16:59:16 +0100rople(~rople@2001:8003:d44b:300:ac2a:fb0f:6f96:d286) (Client Quit)
2021-02-05 16:59:20 +0100 <ski> and, both from a didactive perspective, and from user perspective, i think it's better to address the bug, first
2021-02-05 16:59:21 +0100ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection)
2021-02-05 16:59:24 +0100hackagerpmbuild-order 0.4.3.2 - Order RPM packages by dependencies https://hackage.haskell.org/package/rpmbuild-order-0.4.3.2 (JensPetersen)
2021-02-05 16:59:28 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net) (Read error: Connection reset by peer)
2021-02-05 16:59:44 +0100rople(~rople@2001:8003:d44b:300:ac2a:fb0f:6f96:d286)
2021-02-05 17:00:21 +0100 <ski> jil : so, `all_ p xs' is supposed to give `True' in case `p' holds (/ gives `True') for all elements of `xs' (and `False' in case there's some element it doesn't hold for), do you agree ?
2021-02-05 17:00:27 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-05 17:00:34 +0100rople(~rople@2001:8003:d44b:300:ac2a:fb0f:6f96:d286) (Client Quit)
2021-02-05 17:00:57 +0100rople(~rople@2001:8003:d44b:300:ac2a:fb0f:6f96:d286)
2021-02-05 17:01:24 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-02-05 17:01:45 +0100brainfunnel_(~quassel@96.223.198.146.dyn.plus.net) (Ping timeout: 264 seconds)
2021-02-05 17:02:19 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Read error: Connection reset by peer)
2021-02-05 17:02:31 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2021-02-05 17:03:48 +0100usr25(~J@48.red-83-43-188.dynamicip.rima-tde.net) (Quit: Bye)
2021-02-05 17:05:33 +0100frozenErebus(~frozenEre@94.128.81.133) (Quit: leaving)
2021-02-05 17:06:03 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving)
2021-02-05 17:09:11 +0100shiraeeshi(~shiraeesh@109.166.56.99)
2021-02-05 17:09:38 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi)
2021-02-05 17:12:32 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
2021-02-05 17:12:33 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-02-05 17:13:05 +0100marle(574849fe@87.72.73.254) (Quit: Connection closed)
2021-02-05 17:13:27 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:51a:84a8:6067:5428) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-05 17:13:38 +0100borne(~fritjof@200116b8645bf50038baae9ec143df07.dip.versatel-1u1.de) (Ping timeout: 258 seconds)
2021-02-05 17:13:55 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection)
2021-02-05 17:14:40 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net) (Read error: Connection reset by peer)
2021-02-05 17:14:57 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e)
2021-02-05 17:16:03 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-05 17:19:23 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 258 seconds)
2021-02-05 17:20:20 +0100alx741(~alx741@186.178.110.33) (Quit: alx741)
2021-02-05 17:20:49 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-05 17:25:08 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds)
2021-02-05 17:27:12 +0100 <swarmcollective> So, `all` appears to default to True, then looks for some reason to transition to False. Or am I understanding that wrong? Is there a version of `all` that defaults to False, therefore returning False in the [] case?
2021-02-05 17:27:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969)
2021-02-05 17:27:39 +0100Zetagon(~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection)
2021-02-05 17:28:48 +0100conal(~conal@64.71.133.70)
2021-02-05 17:28:53 +0100metreo(~Thunderbi@unaffiliated/metreo) (Quit: metreo)
2021-02-05 17:29:15 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net) (Read error: Connection reset by peer)
2021-02-05 17:30:53 +0100acidjnk_new(~acidjnk@p200300d0c722c49675ee473ab8e6650f.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2021-02-05 17:30:55 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-05 17:31:25 +0100hackagelifetimes 0.1.0.0 - Flexible manual resource management https://hackage.haskell.org/package/lifetimes-0.1.0.0 (isd)
2021-02-05 17:31:31 +0100 <shapr> Recently I asked if there was something like filepath's </> for URIs, it turns out I wanted Network.URI.relativeTo
2021-02-05 17:31:45 +0100 <pavonia> swarmcollective: I don't think there's an alternative version. From a mathematical perspective True is the correct result for an empty list, because any property is true for an empty set
2021-02-05 17:32:05 +0100 <merijn> swarmcollective: The logic in logic (heh!) is that "forall x . p(x)" should be equivalent to "not (exists x . not p(x))"
2021-02-05 17:32:38 +0100 <merijn> swarmcollective: So "something is true for all X" is the same "there is no X for which something is *not* true"
2021-02-05 17:33:22 +0100 <pavonia> s/for an empty set/for all elements in an empty set/
2021-02-05 17:33:35 +0100 <swarmcollective> It is easy enough to implement `not (null xs) && all xs`
2021-02-05 17:33:48 +0100 <ephemient> all p = foldr (&&) True . map p, any p = foldr (||) False . map p
2021-02-05 17:34:10 +0100 <ephemient> True/False make natural sense as the base cases
2021-02-05 17:35:01 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net) (Remote host closed the connection)
2021-02-05 17:35:57 +0100haritz(~hrtz@unaffiliated/haritz) (Ping timeout: 264 seconds)
2021-02-05 17:36:32 +0100david__(~david@234.109.45.217.dyn.plus.net)
2021-02-05 17:36:57 +0100DavidEichmann(~david@234.109.45.217.dyn.plus.net) (Remote host closed the connection)
2021-02-05 17:37:07 +0100 <ski> swarmcollective : "Is there a version of `all` that defaults to False, .. ?" -- that version is called `any' ;)
2021-02-05 17:37:08 +0100 <ski> <ski> (`all_ p (xs ++ ys)' is supposed to be the same as `all_ p xs && all_ p ys' .. what happens when `xs' is empty ?)
2021-02-05 17:37:08 +0100 <ski> swarmcollective ^
2021-02-05 17:37:18 +0100 <jil> ski, I came up with theses correction. http://ix.io/2Ord and http://ix.io/2Ora The second is more generic but less readable until I learn how to define my own type.
2021-02-05 17:37:20 +0100 <ski> also see "Empty Sum, Product, Forall, Exists" by monochrom at <https://www.vex.net/~trebla/homework/empty.html>
2021-02-05 17:38:41 +0100haritz(~hrtz@62.3.70.206)
2021-02-05 17:38:41 +0100haritz(~hrtz@62.3.70.206) (Changing host)
2021-02-05 17:38:41 +0100haritz(~hrtz@unaffiliated/haritz)
2021-02-05 17:39:00 +0100 <ski> jil : what do you think of my question, from about forty minutes ago ?
2021-02-05 17:39:11 +0100 <jil> ski I agree with it.
2021-02-05 17:40:49 +0100 <ski> jil : so, if the list is a concatenation `xs ++ ys' of two lists, then `all_ p (xs ++ ys)' is supposed to check both that `p' holds for every element in `xs', and also for every element in `ys', right ?
2021-02-05 17:41:43 +0100 <jil> right
2021-02-05 17:42:00 +0100 <ski> iow, it should amount to the same thing as checking both `all_ p xs' and `all_ p ys'
2021-02-05 17:42:09 +0100 <ski> that is, checking `all_ p xs && all_ p ys'
2021-02-05 17:42:16 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e)
2021-02-05 17:42:30 +0100 <jil> yes
2021-02-05 17:42:33 +0100 <ski> now, as i said before, what happens when `xs' is `[]' ?
2021-02-05 17:42:54 +0100 <ski> consider both `all_ p (xs ++ ys)', and `all_ p xs && all_ p ys', in this case
2021-02-05 17:45:58 +0100 <jil> as merijn said all p [] should be True
2021-02-05 17:47:49 +0100ulidtko(~ulidtko@31.133.98.234)
2021-02-05 17:48:21 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
2021-02-05 17:48:56 +0100 <ph88^> does anyone know what i can do with this file ? https://github.com/commercialhaskell/stack-templates/blob/master/rio.hsfiles#L216-L218 ghc is showing a warning for this file: The export item ‘module Main’ is missing an export list
2021-02-05 17:49:30 +0100DTZUZU(~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer)
2021-02-05 17:49:33 +0100 <jil> I'm not getting your last point. all_ p (xs ++ ys) and all_ p xs && all_ p ys give the same result
2021-02-05 17:49:51 +0100DTZUZU(~DTZUZU@205.ip-149-56-132.net)
2021-02-05 17:50:51 +0100 <ulidtko> ph88^, you mean the test/Spec.hs file? that's a "test discovery" stub module, helps you to write unit tests
2021-02-05 17:51:06 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-02-05 17:51:07 +0100 <ph88^> how am i supposed to use this stub ?
2021-02-05 17:51:08 +0100 <ulidtko> see https://hspec.github.io/hspec-discover.html
2021-02-05 17:51:52 +0100 <ski> jil : i'm still considering <http://ix.io/2OqP>
2021-02-05 17:52:28 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-05 17:52:32 +0100 <ski> according to that definition, we have `all_ p [] && all_ p ys = False && all_ p ys = False', agree ?
2021-02-05 17:52:52 +0100 <ph88^> thanks ulidtko
2021-02-05 17:52:59 +0100 <ski> otoh, `all_ p ([] ++ ys) = all_ p ys'
2021-02-05 17:53:24 +0100hackagestack-all 0.1.2 - CLI tool for building across Stackage major versions https://hackage.haskell.org/package/stack-all-0.1.2 (JensPetersen)
2021-02-05 17:54:47 +0100 <ulidtko> ph88^, you don't use it directly; what you're looking at is the source for `stack new myfoobar rio`. you can fix the warning by editing the resulting scaffold files
2021-02-05 17:55:26 +0100 <ph88^> ya thanks .. im in the process of making my own stack template
2021-02-05 17:55:37 +0100 <ulidtko> ah, I see
2021-02-05 17:56:08 +0100 <byorgey> sshine, polux200137: when haskell-src-exts was first written there was no way to use GHC's parser, but since then a bunch of work has gone into splitting out GHC's parser so it can be used as an external tool.
2021-02-05 17:56:38 +0100 <byorgey> oops, just realized I was scrolled back and responded to an old topic =)
2021-02-05 17:56:48 +0100 <ph88^> byorgey, how do you use it as external tool actually ? is there a package for it ?
2021-02-05 17:56:52 +0100oreoking[m]1(oreokingma@gateway/shell/matrix.org/x-jcusdubzyhittdzg)
2021-02-05 17:56:54 +0100hackagedata-fix 0.3.1 - Fixpoint data types https://hackage.haskell.org/package/data-fix-0.3.1 (AntonKholomiov)
2021-02-05 17:57:10 +0100borne(~fritjof@2a06:8782:ffbb:1337:a53:e188:6f13:d1a)
2021-02-05 17:57:42 +0100 <c_wraith> I won't be really happy with the parsing situation until template-haskell exposes a haskell parser that parses to its representation
2021-02-05 17:58:00 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-05 17:58:00 +0100 <aveltras> any idea how i can generate ' field @"fieldName" ' with template Haskell ? i have the fieldName value available in a Name value
2021-02-05 17:58:13 +0100 <aveltras> i have '$(appTypeE $(varE $ mkName "field") $(stringE fieldName))' which doesn't work
2021-02-05 17:58:37 +0100 <jil> ski, I corrected 2OqP with http://ix.io/2Ord and `all_ p []` give True as in prelude
2021-02-05 17:59:05 +0100 <aveltras> appE being appE :: ExpQ -> ExpQ -> ExpQ
2021-02-05 17:59:39 +0100 <c_wraith> aveltras: the second argument of AppTypeE (the constructor, not the helper) is a Type value
2021-02-05 17:59:50 +0100Kaivo(~Kaivo@104-200-86-99.mc.derytele.com) (Quit: WeeChat 3.0)
2021-02-05 18:00:38 +0100 <c_wraith> aveltras: looks like you need a LitT (StrTyLit "fieldName")
2021-02-05 18:00:54 +0100 <ph88^> c_wraith, what would you like that for ?
2021-02-05 18:01:15 +0100 <c_wraith> aveltras: I'm just chasing types around in the Language.Haskell.TH.Syntax module
2021-02-05 18:01:30 +0100 <oreoking[m]1> does qtah support qt6
2021-02-05 18:02:16 +0100 <c_wraith> ph88^: writing quasiquoters that take haskell source as input
2021-02-05 18:02:19 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds)
2021-02-05 18:02:29 +0100 <ph88^> that sounds like fun :D
2021-02-05 18:02:56 +0100 <aveltras> right now its complaining about stage restriction
2021-02-05 18:03:19 +0100 <aveltras> https://www.irccloud.com/pastebin/415esCiO/
2021-02-05 18:03:36 +0100chele(~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-02-05 18:03:50 +0100 <ulidtko> c_wraith, re parsing situation: did you see this gem? https://www.tweag.io/blog/2021-01-07-haskell-dark-arts-part-i/ they manage to abuse GHC API to extract the internal representation, if I'm reading correctly
2021-02-05 18:04:45 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-zmcemccamsqwqgax)
2021-02-05 18:05:11 +0100 <ulidtko> aveltras, "TH stage restriction" means you can't use mkInstanceDeclaration in the same module where it's defined
2021-02-05 18:05:21 +0100 <ulidtko> i.e. import it
2021-02-05 18:05:45 +0100 <ski> jil : yes, i know. i just wanted to reinforce why `all_ p [] = False' was wrong
2021-02-05 18:06:42 +0100 <aveltras> it s a local variable
2021-02-05 18:06:48 +0100 <aveltras> i got a workaround for it
2021-02-05 18:06:55 +0100 <aveltras> https://www.irccloud.com/pastebin/F7Fdpwsf/
2021-02-05 18:06:59 +0100 <aveltras> this works now
2021-02-05 18:07:21 +0100 <aveltras> im still not clear about the use of quasiquotes with TH
2021-02-05 18:07:22 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2021-02-05 18:07:28 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-05 18:08:34 +0100poljar1(~poljar@93-143-136-208.adsl.net.t-com.hr)
2021-02-05 18:09:40 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-02-05 18:10:36 +0100poljar(~poljar@78-3-15-134.adsl.net.t-com.hr) (Ping timeout: 240 seconds)
2021-02-05 18:11:20 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a0fa:861f:7d78:346f)
2021-02-05 18:11:42 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 240 seconds)
2021-02-05 18:13:04 +0100 <c_wraith> ulidtko: looks like a simpler thing, where they're finding a hidden name to generate a reference to. Doesn't look like they're using the parser
2021-02-05 18:13:12 +0100geekosaur(82650c7c@130.101.12.124)
2021-02-05 18:14:06 +0100conal(~conal@64.71.133.70)
2021-02-05 18:14:16 +0100alx741(~alx741@186.178.110.33)
2021-02-05 18:14:50 +0100jollygood2(~bc8134e3@217.29.117.252)
2021-02-05 18:16:21 +0100 <ulidtko> c_wraith, they sort of do: given just a String identifier, extracting compiler innards related to it. Not exactly parsing (as in, of complete modules/expressions), but maybe the technique extends to that too. I'm not sure myself really, just sharing a curiosity
2021-02-05 18:16:32 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2021-02-05 18:16:45 +0100michalz(~user@185.246.204.49)
2021-02-05 18:16:50 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-02-05 18:17:20 +0100michalz(~user@185.246.204.49) (Client Quit)
2021-02-05 18:18:02 +0100michalz(~user@185.246.204.48)
2021-02-05 18:18:04 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-05 18:18:32 +0100pedrohms(~pedrohms@187.20.63.53) (Read error: Connection reset by peer)
2021-02-05 18:19:04 +0100rople(~rople@2001:8003:d44b:300:ac2a:fb0f:6f96:d286) (Ping timeout: 240 seconds)
2021-02-05 18:20:48 +0100rajivr(uid269651@gateway/web/irccloud.com/x-khjufreymueqbnyt) (Quit: Connection closed for inactivity)
2021-02-05 18:20:53 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-02-05 18:20:58 +0100mmmattyx(uid17782@gateway/web/irccloud.com/x-lvhktabkcjtcvpoe)
2021-02-05 18:22:42 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-02-05 18:22:53 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2021-02-05 18:22:53 +0100neiluj(~jco@unaffiliated/neiluj)
2021-02-05 18:24:23 +0100kuribas(~user@ptr-25vy0i8mp067j44c045.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-02-05 18:25:51 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-05 18:26:09 +0100__monty__(~toonn@unaffiliated/toonn)
2021-02-05 18:27:57 +0100NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur) (Ping timeout: 260 seconds)
2021-02-05 18:28:25 +0100NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur)
2021-02-05 18:29:39 +0100hexfive(~hexfive@50.35.83.177)
2021-02-05 18:31:49 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-02-05 18:32:04 +0100ulidtko(~ulidtko@31.133.98.234) (Ping timeout: 256 seconds)
2021-02-05 18:32:15 +0100ulidtko(~ulidtko@31.133.98.234)
2021-02-05 18:37:47 +0100kipras(~Kipras@78-56-235-39.static.zebra.lt)
2021-02-05 18:44:14 +0100neiluj(~jco@unaffiliated/neiluj) (Quit: leaving)
2021-02-05 18:46:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-05 18:48:16 +0100rj(~x@204.48.95.43)
2021-02-05 18:49:18 +0100vicfred(vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving)
2021-02-05 18:51:24 +0100nineonin_(~nineonine@50.216.62.2)
2021-02-05 18:52:22 +0100adziahel[m](adziahelma@gateway/shell/matrix.org/x-lyfahhmkhzdtqzhg)
2021-02-05 18:52:24 +0100unlink2(~unlink2@p57b854e0.dip0.t-ipconnect.de)
2021-02-05 18:52:37 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-02-05 18:52:37 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2021-02-05 18:52:37 +0100neiluj(~jco@unaffiliated/neiluj)
2021-02-05 18:52:53 +0100nineonine(~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 265 seconds)
2021-02-05 18:54:14 +0100vicfred(~vicfred@unaffiliated/vicfred)
2021-02-05 18:54:27 +0100unlink_(~unlink2@p200300ebcf12ea00013250d6b4625a26.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2021-02-05 18:55:36 +0100xff0x_(~xff0x@2001:1a81:520c:9300:d376:a5ba:ccb8:29d) (Ping timeout: 258 seconds)
2021-02-05 18:57:32 +0100xff0x_(xff0x@gateway/vpn/mullvad/xff0x)
2021-02-05 18:58:00 +0100unlink2(~unlink2@p57b854e0.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2021-02-05 18:59:01 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Ping timeout: 268 seconds)
2021-02-05 19:00:25 +0100unlink2(~unlink2@p57b85146.dip0.t-ipconnect.de)
2021-02-05 19:00:30 +0100vgtw_(~vgtw@gateway/tor-sasl/vgtw)
2021-02-05 19:00:51 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-02-05 19:01:17 +0100 <byorgey> ph88^: yes, https://hackage.haskell.org/package/ghc-lib-parser I think
2021-02-05 19:01:17 +0100borne(~fritjof@2a06:8782:ffbb:1337:a53:e188:6f13:d1a) (Ping timeout: 246 seconds)
2021-02-05 19:01:29 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 268 seconds)
2021-02-05 19:01:30 +0100vgtw_vgtw
2021-02-05 19:02:21 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-05 19:04:18 +0100pgib(~textual@lmms/pgib)
2021-02-05 19:04:25 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-02-05 19:05:02 +0100 <ph88^> cool =)
2021-02-05 19:05:40 +0100todda7(~torstein@2a02:587:1b14:d00:5ec3:abec:812c:b3e2)
2021-02-05 19:05:59 +0100dyeplexer(~lol@unaffiliated/terpin) (Remote host closed the connection)
2021-02-05 19:06:07 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-05 19:06:58 +0100enya[m](enyaismatr@gateway/shell/matrix.org/x-gzvrhyhbwatwuwxi)
2021-02-05 19:06:59 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-05 19:07:12 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-05 19:07:58 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-dwqapemjrwbgflyv) (Quit: Connection closed for inactivity)
2021-02-05 19:09:06 +0100metreo(~Thunderbi@unaffiliated/metreo)
2021-02-05 19:09:45 +0100xff0x_(xff0x@gateway/vpn/mullvad/xff0x) (Ping timeout: 240 seconds)
2021-02-05 19:10:09 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 264 seconds)
2021-02-05 19:11:45 +0100xff0x_(~xff0x@2001:1a81:520c:9300:d376:a5ba:ccb8:29d)
2021-02-05 19:12:35 +0100neiluj_(~jco@static.15.144.181.135.clients.your-server.de)
2021-02-05 19:13:08 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
2021-02-05 19:13:16 +0100neiluj_(~jco@static.15.144.181.135.clients.your-server.de) (Client Quit)
2021-02-05 19:13:17 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-02-05 19:13:34 +0100neiluj_(~jco@static.15.144.181.135.clients.your-server.de)
2021-02-05 19:13:52 +0100neiluj(~jco@unaffiliated/neiluj) (Quit: leaving)
2021-02-05 19:14:04 +0100neiluj_(~jco@static.15.144.181.135.clients.your-server.de) (Client Quit)
2021-02-05 19:14:25 +0100neiluj(~jco@static.15.144.181.135.clients.your-server.de)
2021-02-05 19:14:26 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-05 19:15:04 +0100neiluj(~jco@static.15.144.181.135.clients.your-server.de) (Changing host)
2021-02-05 19:15:04 +0100neiluj(~jco@unaffiliated/neiluj)
2021-02-05 19:15:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 19:15:09 +0100tzlil(~tzlil@unaffiliated/tzlil) (Ping timeout: 258 seconds)
2021-02-05 19:15:20 +0100tzlil(~tzlil@unaffiliated/tzlil)
2021-02-05 19:15:32 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit)
2021-02-05 19:16:21 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-05 19:16:46 +0100howdoi(uid224@gateway/web/irccloud.com/x-vwnihuzeelxrmxkz)
2021-02-05 19:18:11 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969) (Remote host closed the connection)
2021-02-05 19:19:59 +0100hekkaidekapus](~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-02-05 19:21:19 +0100kipras(~Kipras@78-56-235-39.static.zebra.lt) (Remote host closed the connection)
2021-02-05 19:21:43 +0100kipras(~Kipras@78-56-235-39.static.zebra.lt)
2021-02-05 19:23:09 +0100hiroaki(~hiroaki@ip4d17613f.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds)
2021-02-05 19:24:07 +0100hekkaidekapus](~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-05 19:26:00 +0100MasseR(~MasseR@51.15.143.128) (Quit: The Lounge - https://thelounge.chat)
2021-02-05 19:26:31 +0100MasseR(~MasseR@51.15.143.128)
2021-02-05 19:28:11 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-02-05 19:29:33 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-nfduencpjwoeibog)
2021-02-05 19:31:45 +0100rj(~x@204.48.95.43) (Quit: rj)
2021-02-05 19:32:05 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 246 seconds)
2021-02-05 19:32:49 +0100brisbin(~patrick@vps.nighter.se)
2021-02-05 19:32:59 +0100jesser[m](jessermatr@gateway/shell/matrix.org/x-dbgtrdoqxzqcpezr)
2021-02-05 19:34:25 +0100brisbin(~patrick@vps.nighter.se) (Client Quit)
2021-02-05 19:35:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-02-05 19:35:54 +0100 <ph88^> is there a command to pull a package with stack modify it and build it ? some local unpack
2021-02-05 19:36:17 +0100 <jil> thank you ski for you time, your comments and help
2021-02-05 19:36:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 19:38:49 +0100rj(~x@gateway/tor-sasl/rj)
2021-02-05 19:39:05 +0100kipras(~Kipras@78-56-235-39.static.zebra.lt) (Read error: Connection reset by peer)
2021-02-05 19:40:05 +0100j2t(~user@84.122.202.215.dyn.user.ono.com)
2021-02-05 19:42:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-02-05 19:42:38 +0100 <sm[m]> ph88^: stack unpack
2021-02-05 19:42:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 19:43:01 +0100 <ph88^> thanks sm :)
2021-02-05 19:44:41 +0100Arguggi(~Arguggi__@arguggi-do.arguggi.co.uk) (Quit: Bye)
2021-02-05 19:48:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-05 19:48:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 19:50:35 +0100harovali(~user@r167-56-43-57.dialup.adsl.anteldata.net.uy)
2021-02-05 19:51:41 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-05 19:53:16 +0100Arguggi(~Arguggi__@arguggi-do.arguggi.co.uk)
2021-02-05 19:54:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-02-05 19:54:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 19:55:07 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2021-02-05 19:55:19 +0100alx741(~alx741@186.178.110.33) (Ping timeout: 276 seconds)
2021-02-05 19:55:50 +0100Yumasi(~guillaume@2a01:e0a:5cb:4430:e2bc:3fed:317c:3efb) (Ping timeout: 264 seconds)
2021-02-05 20:00:22 +0100geekosaur(82650c7c@130.101.12.124) (Ping timeout: 240 seconds)
2021-02-05 20:00:23 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-02-05 20:01:31 +0100rj(~x@gateway/tor-sasl/rj) (Quit: rj)
2021-02-05 20:01:48 +0100Tario(~Tario@201.192.165.173)
2021-02-05 20:02:16 +0100 <ski> jil : yw :)
2021-02-05 20:03:29 +0100berberman_(~berberman@unaffiliated/berberman)
2021-02-05 20:03:34 +0100rj(~x@gateway/tor-sasl/rj)
2021-02-05 20:04:47 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2021-02-05 20:05:04 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 276 seconds)
2021-02-05 20:05:04 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-05 20:05:11 +0100rj(~x@gateway/tor-sasl/rj) (Client Quit)
2021-02-05 20:05:20 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-05 20:05:25 +0100kupi(uid212005@gateway/web/irccloud.com/x-aaegxzeymcrafmxs)
2021-02-05 20:05:25 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-05 20:05:37 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-05 20:06:02 +0100 <aveltras> is there an existing library or something to do String operations on symbols ? in particular i'd like to transform a dashed identifier to its camelCase representation
2021-02-05 20:07:31 +0100alx741(~alx741@186.178.110.176)
2021-02-05 20:08:03 +0100 <monochrom> I think no. GHC doesn't provide basic ones that anyone could build upon.
2021-02-05 20:08:52 +0100 <monochrom> Theoretically one could write a GHC plugin to add this. I don't follow those things (or any type-level tricks), so I don't know if anyone actually did it.
2021-02-05 20:09:08 +0100 <idnar> okay, fixed all my deps!
2021-02-05 20:09:36 +0100Kaivo(~Kaivo@104-200-86-99.mc.derytele.com)
2021-02-05 20:09:48 +0100_noblegas(uid91066@gateway/web/irccloud.com/x-sdhgdpxkudokvdwz) (Quit: Connection closed for inactivity)
2021-02-05 20:10:01 +0100guest7682358928(c9dbe9a1@gateway/web/cgi-irc/kiwiirc.com/ip.201.219.233.161) (Ping timeout: 265 seconds)
2021-02-05 20:10:04 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 20:10:45 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 240 seconds)
2021-02-05 20:10:55 +0100my_name_is_not_j(mynameisno@gateway/shell/matrix.org/x-vnqnlgicwqzslism)
2021-02-05 20:11:00 +0100 <harovali> aveltras: just out of curiosity, imagine you could cast a symbol into the string, and there are the operations you need. Would you need to 'intern' the symbol back into ?
2021-02-05 20:12:06 +0100 <monochrom> The problem with that is that the direction <term-level string -> type-level symbol> is dynamic, not static.
2021-02-05 20:12:12 +0100 <aveltras> the use case is the following
2021-02-05 20:12:16 +0100 <aveltras> when end user calls
2021-02-05 20:12:17 +0100 <aveltras> mkUser & prop @"test-field" True
2021-02-05 20:12:24 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-02-05 20:12:29 +0100 <aveltras> transform the lookup to "_testFiekd"
2021-02-05 20:12:34 +0100 <monochrom> The manifestation being you incur an existential type that uses the KnownSymbol constraint.
2021-02-05 20:12:40 +0100 <aveltras> i have the underscore added with AppendSymbol already
2021-02-05 20:13:02 +0100 <aveltras> i think it's doable with a recursive type family
2021-02-05 20:14:07 +0100 <aveltras> in that context
2021-02-05 20:14:09 +0100 <aveltras> https://www.irccloud.com/pastebin/CH0Hbfku/
2021-02-05 20:14:26 +0100usr25(~usr25@unaffiliated/usr25)
2021-02-05 20:15:55 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-02-05 20:16:12 +0100 <my_name_is_not_j> Hello, I am new and I joined since I am struggling with Haskell syntax and things. I am using the Color datatype here (https://hackage.haskell.org/package/xlsx-0.8.2/docs/Codec-Xlsx-Types-StyleSheet.html#t:Color) and trying to use the `_colorARGB` constructor, but I can't seem to get it to work. I am currently doing `color = _colorARGB "00110000"` and it says it expects a `Color` instead of `Maybe Text`, but the
2021-02-05 20:16:12 +0100 <my_name_is_not_j> documentation says `Maybe Text`..
2021-02-05 20:16:32 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-02-05 20:17:04 +0100 <aveltras> you need to use _colorARGB on a Color data structure
2021-02-05 20:17:06 +0100 <my_name_is_not_j> * Hello, I am new and I joined since I am struggling with Haskell syntax and things. I am using the Color datatype here (https://hackage.haskell.org/package/xlsx-0.8.2/docs/Codec-Xlsx-Types-StyleSheet.html#t:Color) and trying to use the `_colorARGB` constructor, but I can't seem to get it to work. I am currently doing `color:: Color; color = _colorARGB "00110000"` and it says it expects a `Color` instead of `Maybe
2021-02-05 20:17:07 +0100 <my_name_is_not_j> Text`, but the documentation says `Maybe Text`..
2021-02-05 20:17:11 +0100 <aveltras> here you are only using it on a text
2021-02-05 20:17:44 +0100 <my_name_is_not_j> Doesn't `_colorARGB` give me a Color data structure when I give Maybe Text as an argument?
2021-02-05 20:17:44 +0100 <merijn> my_name_is_not_j: Are you sure the version you're using and documentation you're looking at are the same?
2021-02-05 20:17:51 +0100 <my_name_is_not_j> I thought that was happening
2021-02-05 20:18:04 +0100 <aveltras> no, _colorARGB enables you to get the Maybe Text out of the Color
2021-02-05 20:18:09 +0100 <aveltras> it's not a constructor
2021-02-05 20:18:38 +0100nhs(~nhs@c-71-238-81-158.hsd1.or.comcast.net)
2021-02-05 20:18:44 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969)
2021-02-05 20:18:55 +0100 <aveltras> if you want to build a color you can do the following
2021-02-05 20:18:59 +0100 <my_name_is_not_j> <merijn "my_name_is_not_joe: Are you sure"> I am not sure. I believed the documentation up to date... How would I make sure of this? I am just using the latest version in Haskell without anything to specify the version
2021-02-05 20:19:14 +0100 <my_name_is_not_j> So I think the latest version would be used
2021-02-05 20:19:43 +0100 <aveltras> Color {_colorAutomatic = Nothing, _colorTheme = Nothing, _colorTint = Nothing, _colorARGB = "00110000"}
2021-02-05 20:19:56 +0100 <my_name_is_not_j> `_colorARGB` is not a constructor? It seems it is listed under the heading "Constructors" though...? I have no idea
2021-02-05 20:20:07 +0100Tops2(~Tobias@dyndsl-095-033-020-088.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2021-02-05 20:20:12 +0100 <aveltras> no its a field of the record
2021-02-05 20:20:20 +0100 <aveltras> since Color has a Default instance
2021-02-05 20:20:24 +0100 <aveltras> you could also just do
2021-02-05 20:20:35 +0100 <aveltras> def {_colorARGB = "00110000"}
2021-02-05 20:21:22 +0100 <aveltras> the constructor is Color
2021-02-05 20:21:50 +0100 <dolio> Constructor names cannot start with underscores.
2021-02-05 20:22:42 +0100 <my_name_is_not_j> <dolio "Constructor names cannot start w"> Wow! I didn't know that
2021-02-05 20:22:45 +0100 <my_name_is_not_j> Thank you to everyone!
2021-02-05 20:24:09 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969) (Ping timeout: 258 seconds)
2021-02-05 20:24:45 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-05 20:25:54 +0100pgib(~textual@lmms/pgib) (Quit: 00 PC LOAD LETTER)
2021-02-05 20:26:00 +0100 <my_name_is_not_j> Is the use of Default not like this: `Color def {_colorARGB = "00110000"}`?
2021-02-05 20:26:31 +0100 <aveltras> no, just use def
2021-02-05 20:26:45 +0100 <aveltras> font prefix with Color
2021-02-05 20:27:06 +0100 <my_name_is_not_j> font prefix?
2021-02-05 20:27:10 +0100 <aveltras> the compiler will already know you are asking for a Color data type because you're using _colorARGB juste after
2021-02-05 20:27:14 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Quit: Ping timeout (120 seconds))
2021-02-05 20:27:16 +0100 <aveltras> don't prefix*
2021-02-05 20:28:08 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2021-02-05 20:28:20 +0100 <aveltras> you also need a Just before the value which i missed earlier
2021-02-05 20:28:26 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
2021-02-05 20:28:29 +0100 <aveltras> def {_colorARGB = Just "00110000"}
2021-02-05 20:29:02 +0100 <my_name_is_not_j> Yes it works, thank you!
2021-02-05 20:29:50 +0100geekosaur(82650c7c@130.101.12.124)
2021-02-05 20:30:02 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-02-05 20:30:24 +0100mmmattyx(uid17782@gateway/web/irccloud.com/x-lvhktabkcjtcvpoe) (Quit: Connection closed for inactivity)
2021-02-05 20:36:04 +0100ulidtko(~ulidtko@31.133.98.234) (Quit: FIN)
2021-02-05 20:36:24 +0100hackageproduct-profunctors 0.11.0.2 - product-profunctors https://hackage.haskell.org/package/product-profunctors-0.11.0.2 (tomjaguarpaw)
2021-02-05 20:36:58 +0100harovali(~user@r167-56-43-57.dialup.adsl.anteldata.net.uy) ("ERC (IRC client for Emacs 27.1)")
2021-02-05 20:37:42 +0100Arguggi(~Arguggi__@arguggi-do.arguggi.co.uk) (Quit: Bye)
2021-02-05 20:39:09 +0100 <exarkun> are State / StateT useful when there are intermediate values before the final state?
2021-02-05 20:41:48 +0100geekosaur(82650c7c@130.101.12.124) (Quit: Ping timeout (120 seconds))
2021-02-05 20:42:08 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Quit: Ping timeout (120 seconds))
2021-02-05 20:42:16 +0100 <davean> exarkun: can you explain what you mean by that sequence of words?
2021-02-05 20:42:53 +0100geekosaur(82650c7c@130.101.12.124)
2021-02-05 20:43:11 +0100 <exarkun> I can try, anyway
2021-02-05 20:44:25 +0100conal(~conal@64.71.133.70) (Ping timeout: 240 seconds)
2021-02-05 20:45:08 +0100 <exarkun> Right now I have a function that returns `IO (IO (Either [B.ByteString] SomeResult))`. The outer IO is for creating an IORef to track internal state. The inner IO evaluates to Left a bunch of times and then Right when there's no more data.
2021-02-05 20:46:08 +0100 <exarkun> The Left values are meant to be consumed as they're produced (they don't all fit in memory)
2021-02-05 20:46:35 +0100 <merijn> exarkun: That sounds like a job for a streaming library like conduit?
2021-02-05 20:46:41 +0100 <exarkun> So the original question is to do with replacing the outer IO and the IORef with State / StateT
2021-02-05 20:47:12 +0100 <exarkun> merijn: yea, it might be. State seems simpler so I wouldn't mind using that instead, but maybe it's _too_ simple?
2021-02-05 20:47:47 +0100 <merijn> exarkun: Well "get a bunch of bytestring chunks that don't fit into memory while building/computing a results" is the sorta thing all these streaming libraries are designed for? :p
2021-02-05 20:47:53 +0100conal(~conal@194.180.179.172)
2021-02-05 20:47:59 +0100 <merijn> exarkun: What are you computing/parsing from those ByteString?
2021-02-05 20:48:35 +0100 <merijn> (and what are you using to do said parsing/computing)
2021-02-05 20:49:01 +0100 <exarkun> It's an encryption/erasure coding scheme - not my invention, but also pretty obscure (only one implementation that I know of).
2021-02-05 20:49:09 +0100ixaxaar(~ixaxaar@49.207.210.215) (Ping timeout: 256 seconds)
2021-02-05 20:49:25 +0100 <merijn> exarkun: And you just have some fold or whatever?
2021-02-05 20:49:38 +0100 <exarkun> So the processing is almost all my code, sitting on top of a couple primitives like Crypto.Cipher.AES128.ctr and Codec.FEC.enFEC
2021-02-05 20:50:11 +0100 <exarkun> The code ends up looking a lot more complicated than "some fold" but that might be down to my inexperience :)
2021-02-05 20:50:49 +0100acidjnk_new(~acidjnk@p200300d0c722c49675ee473ab8e6650f.dip0.t-ipconnect.de)
2021-02-05 20:51:09 +0100 <exarkun> It's more like a map now I guess? But I might have an insufficient understanding of folds, too.
2021-02-05 20:53:20 +0100 <merijn> ah, more like a scan
2021-02-05 20:54:15 +0100 <exarkun> ah, yea, I think so
2021-02-05 20:54:30 +0100 <texasmynsted> I would like to immediately exit if the branch is not correct. Then try the rest of the processes, exiting if bad things happen. Later perhaps try to recover if bad things happen...
2021-02-05 20:54:48 +0100 <texasmynsted> In any case, this looks awkward https://gist.github.com/mmynsted/ed4d63bf5b88694e39365c407d0bb37e
2021-02-05 20:54:48 +0100 <merijn> exarkun: Basically, with conduit you have "ConduitT a b m s" which is "something that is fed 'a's and produces 'b's, with possible effects in 'm'"
2021-02-05 20:55:13 +0100fendor_(~fendor@178.115.130.101.wireless.dyn.drei.com) (Remote host closed the connection)
2021-02-05 20:55:38 +0100 <texasmynsted> Is this a good way to handle the exception? See checkBranch. It feels very procedural.
2021-02-05 20:55:55 +0100 <merijn> exarkun: And you'd combine, like "sourceFile :: MonadResource m => FilePath -> ConduitT i ByteString m ()" (that is, something producing ByteString chunks) and compose it with ctr which you could give to, like, https://hackage.haskell.org/package/conduit-1.3.4/docs/Data-Conduit-Combinators.html#v:mapAccumWhile
2021-02-05 20:57:16 +0100 <exarkun> Huh, interesting
2021-02-05 20:57:17 +0100 <merijn> exarkun: 's' would be your IV
2021-02-05 20:57:41 +0100 <merijn> exarkun: There's also things like combinators for rechunking ByteString into chunks of the right size
2021-02-05 20:57:51 +0100 <merijn> (if you need a certain block size)
2021-02-05 20:57:57 +0100exarkunnods
2021-02-05 20:58:28 +0100fendor(~fendor@178.115.130.101.wireless.dyn.drei.com)
2021-02-05 20:59:27 +0100 <merijn> exarkun: The implementation is a sorta CPS style where it reads a chunk and pass that down the pipeline until you "get stuck" needing more input, at which point it reads another chunk, so if you're reading, say, 4KB chunks you'll have at most 1 chunk == 4 KB "too much" in memory
2021-02-05 21:00:45 +0100 <merijn> exarkun: the whole loop of feeding the new 's' (or in your case IV) is then handled by the implementation of mapAccumWhile
2021-02-05 21:01:55 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0.1)
2021-02-05 21:02:47 +0100tsrt^(tsrt@ip98-184-89-2.mc.at.cox.net) ()
2021-02-05 21:03:00 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-02-05 21:03:22 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-02-05 21:05:48 +0100 <texasmynsted> No suggestions?
2021-02-05 21:06:18 +0100 <merijn> texasmynsted: I mean, it doesn't look that awkward to me?
2021-02-05 21:06:33 +0100 <merijn> I mean, what else are you gonna do?
2021-02-05 21:06:45 +0100 <merijn> texasmynsted: Oh, actually
2021-02-05 21:07:18 +0100 <merijn> You could rewrite it as "when ($(gitBranch) /= "master") $ throwM BadBranchException"
2021-02-05 21:07:23 +0100 <merijn> But that's minor
2021-02-05 21:07:35 +0100 <merijn> Also, you only need MonadThrow to throw, not MonadCatch :p
2021-02-05 21:08:03 +0100 <texasmynsted> okay.
2021-02-05 21:08:40 +0100 <ephemient> odd to see `"master" == $(gitBranch)` which looks like a compile-time constant though
2021-02-05 21:09:10 +0100 <texasmynsted> it is
2021-02-05 21:09:28 +0100 <exarkun> merijn: I think that all makes sense. Thanks.
2021-02-05 21:09:29 +0100 <texasmynsted> it is pulled it with Template haskell from the GitRev module
2021-02-05 21:10:47 +0100geyaeb_(~geyaeb@gateway/tor-sasl/geyaeb)
2021-02-05 21:11:33 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-02-05 21:11:49 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-02-05 21:12:01 +0100 <texasmynsted> idea is to keep me from deploying from the wrong branch
2021-02-05 21:12:04 +0100 <texasmynsted> thank you merijn
2021-02-05 21:12:13 +0100geyaeb(~geyaeb@gateway/tor-sasl/geyaeb) (Ping timeout: 268 seconds)
2021-02-05 21:12:56 +0100 <ephemient> maybe compile-time assert then
2021-02-05 21:15:23 +0100 <texasmynsted> ephemient: What does that mean?
2021-02-05 21:16:01 +0100 <merijn> texasmynsted: Throw the exception at compile time
2021-02-05 21:17:06 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 21:17:08 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2021-02-05 21:17:45 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-02-05 21:18:39 +0100elfets_(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-02-05 21:19:07 +0100 <texasmynsted> hmm. That brings up an important flaw in my thinking.
2021-02-05 21:19:37 +0100 <ephemient> compileAssertBranch b = do branchName <- runIO readProcess "git" ["rev-parse", "--symbolic-full-name", "HEAD"] ""; when (branchName /= "refs/heads/master\n") $ reportError "wrong branch"
2021-02-05 21:19:43 +0100 <ephemient> $(compileAssertBranch)
2021-02-05 21:21:16 +0100 <texasmynsted> I wonder what happens if I compile this executable, one of two in the project, on the correct branch, then later change branches and compile the other executable.
2021-02-05 21:21:55 +0100 <texasmynsted> Will branch name change in the deployment code and thus require re-build?
2021-02-05 21:22:25 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 276 seconds)
2021-02-05 21:23:02 +0100 <texasmynsted> ephemient: Where would that assertion go?
2021-02-05 21:23:07 +0100 <ephemient> no, you have added a dependency on external state that GHC/Cabal/etc. does not track
2021-02-05 21:23:40 +0100 <texasmynsted> So basically I must check at run-time
2021-02-05 21:23:43 +0100 <geekosaur> should this even be a compile time check?
2021-02-05 21:24:06 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a0fa:861f:7d78:346f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-05 21:24:10 +0100 <ephemient> well, it originally was a compile-time check, just convoluted (potentially produces a binary that does nothing but error)
2021-02-05 21:24:19 +0100 <ephemient> IMO failing to compile would be better than that
2021-02-05 21:24:27 +0100 <texasmynsted> It is fine to check at compile time on the other executable, but I think this deployment must check at run-time.
2021-02-05 21:24:31 +0100 <ephemient> but yeah there's a good chance the concept is just flawed
2021-02-05 21:25:46 +0100 <texasmynsted> They other executable uses the same lib/module to produce a file containing the active hash, etc. That should be fine at compile time. This is not fine at compile time.
2021-02-05 21:25:54 +0100 <ephemient> you can use `addDependentFile` to tell GHC that compiling this file depends on another file, e.g. ".git/HEAD" - but that won't work in detached git working trees (e.g. git worktree)
2021-02-05 21:26:10 +0100 <merijn> Or when someone clones your git repo in Mercurial :p
2021-02-05 21:26:50 +0100 <ephemient> branch name is just a name anyway, I think using it for anything other than stamping is flawed
2021-02-05 21:26:51 +0100 <merijn> (I'm looking at you, old cabal-install bootstrap shell script! >:( )
2021-02-05 21:27:15 +0100 <texasmynsted> so "compileAssertBranch b = do branchName <- runIO readProcess "git" ["rev-parse", "--symbolic-full-name", "HEAD"] ""; when (branchName /= "refs/heads/master\n") $ reportError "wrong branch"" would be a compile time condition. This looks useful for other things.
2021-02-05 21:28:26 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:24d0:e3f9:2a15:71ae)
2021-02-05 21:28:28 +0100 <texasmynsted> Hmm. It is just a name. I wonder if I can check if the current branch is the parent of all commits rather than looking for the name "master"
2021-02-05 21:28:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969)
2021-02-05 21:29:32 +0100 <merijn> I'm imagining Jeff Goldblum, right now
2021-02-05 21:29:45 +0100 <texasmynsted> heh
2021-02-05 21:30:03 +0100dwt(~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
2021-02-05 21:30:39 +0100 <merijn> https://media0.giphy.com/media/mCClSS6xbi8us/giphy.gif
2021-02-05 21:31:53 +0100napping(~brandon@174-20-93-137.mpls.qwest.net)
2021-02-05 21:32:12 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2021-02-05 21:32:21 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
2021-02-05 21:32:29 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-02-05 21:32:46 +0100conal(~conal@194.180.179.172) (Quit: Computer has gone to sleep.)
2021-02-05 21:34:12 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-05 21:34:37 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 21:38:29 +0100 <shiraeeshi> merjin: > exarkun: 's' would be your IV
2021-02-05 21:38:33 +0100 <shiraeeshi> what's IV?
2021-02-05 21:40:07 +0100 <geekosaur> not related to Haskell. they're building a Conduit over an encrypted stream, IV is related to encryption
2021-02-05 21:40:31 +0100conal(~conal@64.71.133.70)
2021-02-05 21:42:30 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2021-02-05 21:42:31 +0100Quarl(~Quarl@h-155-4-128-37.NA.cust.bahnhof.se) (Read error: Connection reset by peer)
2021-02-05 21:42:33 +0100 <shiraeeshi> oh, ok
2021-02-05 21:43:47 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-02-05 21:44:19 +0100erh^(erh@ip98-184-89-2.mc.at.cox.net)
2021-02-05 21:44:25 +0100 <shapr> shiraeeshi: you're back! found something neat you want to write?
2021-02-05 21:47:00 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-05 21:47:46 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-05 21:49:06 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969) (Remote host closed the connection)
2021-02-05 21:51:30 +0100lockdown(~lockdown@unaffiliated/lockdown) (Quit: leaving)
2021-02-05 21:52:03 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Read error: Connection reset by peer)
2021-02-05 22:00:26 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-02-05 22:06:47 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-02-05 22:08:28 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-02-05 22:08:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 22:09:54 +0100hackagedifferential 0.2.0.1 - Finds out whether an entity comes from different distributions (statuses). https://hackage.haskell.org/package/differential-0.2.0.1 (GregorySchwartz)
2021-02-05 22:11:33 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969)
2021-02-05 22:11:52 +0100acidjnk_new(~acidjnk@p200300d0c722c49675ee473ab8e6650f.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2021-02-05 22:14:08 +0100son0p(~son0p@181.58.39.182) (Quit: leaving)
2021-02-05 22:15:59 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2021-02-05 22:17:36 +0100rj(~x@gateway/tor-sasl/rj)
2021-02-05 22:18:36 +0100jle`(~mstksg@unaffiliated/mstksg) (Ping timeout: 240 seconds)
2021-02-05 22:20:05 +0100charukiewicz(~charukiew@irouteince04.i.subnet.rcn.com)
2021-02-05 22:20:15 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 246 seconds)
2021-02-05 22:22:27 +0100d3od(~nickmeno3@78-1-81-107.adsl.net.t-com.hr)
2021-02-05 22:22:42 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969) (Remote host closed the connection)
2021-02-05 22:23:50 +0100jonathanx(~jonathan@h-176-109.A357.priv.bahnhof.se) (Ping timeout: 256 seconds)
2021-02-05 22:23:59 +0100fendor_(~fendor@178.165.131.204.wireless.dyn.drei.com)
2021-02-05 22:24:15 +0100qwerty2o(~qwerty2o@89-138-173-138.bb.netvision.net.il)
2021-02-05 22:24:24 +0100 <qwerty2o> heyo
2021-02-05 22:24:40 +0100 <qwerty2o> active?
2021-02-05 22:25:09 +0100nhs(~nhs@c-71-238-81-158.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-05 22:26:00 +0100skiglances around nervously
2021-02-05 22:26:56 +0100rj(~x@gateway/tor-sasl/rj) (Quit: rj)
2021-02-05 22:27:33 +0100fendor(~fendor@178.115.130.101.wireless.dyn.drei.com) (Ping timeout: 264 seconds)
2021-02-05 22:28:04 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 268 seconds)
2021-02-05 22:28:24 +0100rj(~x@gateway/tor-sasl/rj)
2021-02-05 22:30:29 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0)
2021-02-05 22:31:35 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
2021-02-05 22:32:32 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-05 22:33:19 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core)
2021-02-05 22:33:38 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
2021-02-05 22:35:21 +0100hoobop1(~hoobop@217.146.82.202) (Remote host closed the connection)
2021-02-05 22:36:48 +0100nhs(~nhs@c-71-238-81-158.hsd1.or.comcast.net)
2021-02-05 22:37:33 +0100o1lo01ol1o(~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
2021-02-05 22:39:14 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-02-05 22:39:39 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-02-05 22:40:04 +0100peeja(~peeja@s91904426.blix.com)
2021-02-05 22:40:49 +0100nineonin_(~nineonine@50.216.62.2) (Ping timeout: 265 seconds)
2021-02-05 22:40:50 +0100Anandamide(49a90352@c-73-169-3-82.hsd1.co.comcast.net)
2021-02-05 22:40:54 +0100hackagepersistent-sqlite 2.11.1.0 - Backend for the persistent library using sqlite3. https://hackage.haskell.org/package/persistent-sqlite-2.11.1.0 (parsonsmatt)
2021-02-05 22:41:12 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-05 22:41:15 +0100skilooks at qwerty2o
2021-02-05 22:42:07 +0100 <qwerty2o> ski lol. im trying to think how to implement a numeric xor
2021-02-05 22:42:28 +0100 <qwerty2o> like in python you could do 2 ^ 3 and 1 will come out
2021-02-05 22:42:31 +0100 <ski> numeric, in which sense ?
2021-02-05 22:42:36 +0100 <qwerty2o> how could that be done in hs?
2021-02-05 22:42:47 +0100Anandamide22(49a90352@c-73-169-3-82.hsd1.co.comcast.net)
2021-02-05 22:43:02 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
2021-02-05 22:43:11 +0100 <ski> > 2 `xor` 3
2021-02-05 22:43:13 +0100 <lambdabot> 1
2021-02-05 22:43:21 +0100son0p(~son0p@181.136.122.143)
2021-02-05 22:43:24 +0100Anandamide22(49a90352@c-73-169-3-82.hsd1.co.comcast.net) (Client Quit)
2021-02-05 22:43:31 +0100 <ski> @index xor
2021-02-05 22:43:31 +0100 <lambdabot> Data.Bits, Foreign, Foreign.Safe
2021-02-05 22:43:52 +0100 <qwerty2o> ski, variable not in scope
2021-02-05 22:44:03 +0100 <ski> import Data.Bits
2021-02-05 22:44:24 +0100 <ski> if you want to implement it yourself, you could do that, as well, though ..
2021-02-05 22:45:22 +0100Kipras_(~Kipras@78-56-235-39.static.zebra.lt)
2021-02-05 22:45:22 +0100skiidly wonders whether `(^^)' uses `div' on negative exponents
2021-02-05 22:46:49 +0100 <qwerty2o> ski, ok thank you. didnt get to imports yet tho so dont really know how to proceed
2021-02-05 22:46:58 +0100 <qwerty2o> but ill get to it later then
2021-02-05 22:47:16 +0100chenshen(~chenshen@2620:10d:c090:400::5:ccd9)
2021-02-05 22:47:32 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-05 22:48:41 +0100geekosaur(82650c7c@130.101.12.124) (Quit: Connection closed)
2021-02-05 22:49:55 +0100hackageunix-simple 0.1.0.0 - Straightforward bindings to the posix API https://hackage.haskell.org/package/unix-simple-0.1.0.0 (isd)
2021-02-05 22:50:48 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-05 22:50:52 +0100 <monochrom> ski: It probably doesn't matter because if n<0 then recip (x^(negate n))
2021-02-05 22:52:04 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit)
2021-02-05 22:52:31 +0100 <monochrom> But how would you implement bitwise xor yourself? Compute Int -> [Bool] and do xor on [Bool]?!
2021-02-05 22:53:12 +0100 <monochrom> I mean yeah can be done but not a good use of one's time.
2021-02-05 22:53:33 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-05 22:53:39 +0100 <ski> monochrom : i was thinking of `-1' as an infinite sequence of `1's, so both `0' and `-1' could perhaps be base cases, or something ..
2021-02-05 22:53:59 +0100conal(~conal@64.71.133.70)
2021-02-05 22:54:02 +0100 <ski> qwerty2o : well, put the line `import Data.Bits' near the top of your source file
2021-02-05 22:54:26 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-02-05 22:54:28 +0100 <monochrom> -1 being an infinite sequence of 1's lands you in p-adic land.
2021-02-05 22:54:40 +0100 <ski> hehe, i was just thinking about that :p
2021-02-05 22:55:11 +0100 <monochrom> I do not say that in a bad sense. I know a few mathematicians who consider it heaven and what God intends etc :)
2021-02-05 22:57:11 +0100 <qwerty2o> ski, oh yeah i had a typo and thought i just didnt know how to do it
2021-02-05 22:57:13 +0100 <qwerty2o> it works
2021-02-05 22:57:16 +0100 <qwerty2o> ty
2021-02-05 22:57:21 +0100 <merijn> Remind me, if I have a branch foo and I wanna merge master into foo, do I checkout foo and do "git merge master" or do I checkout master and "git merge foo" or does it not matter either way?
2021-02-05 22:57:40 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit)
2021-02-05 22:59:18 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-05 22:59:30 +0100 <ephemient> the result of the merge should be the same, but the first one is what you probably want (it'll create a merge message of "Merge branch 'master' into foo" and update the "foo" branch)
2021-02-05 23:00:30 +0100Rudd0(~Rudd0@185.189.115.108)
2021-02-05 23:00:36 +0100 <monochrom> merijn: checkout foo, git merge master.
2021-02-05 23:01:12 +0100 <ephemient> if you did the second operation, you can recover from it (`git switch --force-create foo` to get back onto the "foo" branch with the current HEAD, `git reset master origin/master` to make master point to the expected thing again)
2021-02-05 23:01:14 +0100 <monochrom> It matters. You are reading one of them and mutating the other.
2021-02-05 23:01:28 +0100 <ephemient> and git commit --amend if you wanted to fix the commit message
2021-02-05 23:01:55 +0100 <ephemient> but the tree objects would be the same, and the merge commit would be almost the same (it would just list the parents in the opposite order)
2021-02-05 23:03:29 +0100 <ephemient> oh if there's merge conflicts the markers would be backwards too
2021-02-05 23:04:24 +0100hackagetasty-bench 0.2 - Featherlight benchmark framework https://hackage.haskell.org/package/tasty-bench-0.2 (Bodigrim)
2021-02-05 23:05:13 +0100 <merijn> ephemient: tbh, that's more details than I care about :p I just need the bare minimum to fix my PRs to persistent :)
2021-02-05 23:05:51 +0100 <merijn> For some reason they have some broken leftover state from using subrepos in the past that hg-git chokes on :\
2021-02-05 23:06:06 +0100j2t(~user@84.122.202.215.dyn.user.ono.com) (Ping timeout: 246 seconds)
2021-02-05 23:06:31 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2021-02-05 23:06:56 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-02-05 23:07:25 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-05 23:10:39 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2021-02-05 23:12:26 +0100jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com)
2021-02-05 23:12:26 +0100jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host)
2021-02-05 23:12:26 +0100jle`(~mstksg@unaffiliated/mstksg)
2021-02-05 23:12:37 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-05 23:14:22 +0100nineonine(~nineonine@50.216.62.2)
2021-02-05 23:14:58 +0100stef204(~stef204@unaffiliated/stef-204/x-384198)
2021-02-05 23:15:23 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 23:16:04 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit)
2021-02-05 23:16:05 +0100d3od(~nickmeno3@78-1-81-107.adsl.net.t-com.hr) (Ping timeout: 240 seconds)
2021-02-05 23:16:52 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-05 23:17:02 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Ping timeout: 258 seconds)
2021-02-05 23:19:56 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-02-05 23:20:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-02-05 23:23:06 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969)
2021-02-05 23:23:53 +0100miguel_clean(~Miguel@89-72-187-203.dynamic.chello.pl) ()
2021-02-05 23:26:53 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-02-05 23:27:47 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969) (Ping timeout: 260 seconds)
2021-02-05 23:28:00 +0100jamm_(~jamm@unaffiliated/jamm)
2021-02-05 23:28:55 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 23:32:22 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds)
2021-02-05 23:32:35 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-05 23:32:49 +0100michalz(~user@185.246.204.48) (Remote host closed the connection)
2021-02-05 23:33:13 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
2021-02-05 23:33:29 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds)
2021-02-05 23:34:16 +0100conal(~conal@64.71.133.70)
2021-02-05 23:35:37 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-05 23:39:25 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-05 23:41:33 +0100borne(~fritjof@2a06:8782:ffbb:1337:a53:e188:6f13:d1a)
2021-02-05 23:42:25 +0100hackagehs-aws-lambda 0.1.0.1 - A modern and easy-to-use wrapper for Docker-based Lambda implementations https://hackage.haskell.org/package/hs-aws-lambda-0.1.0.1 (RobertFischer)
2021-02-05 23:43:07 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:24d0:e3f9:2a15:71ae) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-05 23:46:00 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 246 seconds)
2021-02-05 23:49:57 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-05 23:51:55 +0100jollygood2(~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2021-02-05 23:54:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-05 23:57:17 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-05 23:59:20 +0100hekkaidekapus](~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)