2021-02-05 00:00:34 +0100 | <monochrom> | Refusing to go to school would require parent consent. |
2021-02-05 00:01:16 +0100 | fendor | (~fendor@178.115.130.101.wireless.dyn.drei.com) (Ping timeout: 276 seconds) |
2021-02-05 00:02:34 +0100 | DataComputist | (~lumeng@50.43.26.251) (Ping timeout: 276 seconds) |
2021-02-05 00:02:53 +0100 | xsperry | (~as@unaffiliated/xsperry) (Disconnected by services) |
2021-02-05 00:03:04 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-05 00:03:06 +0100 | xsperry | (~as@unaffiliated/xsperry) |
2021-02-05 00:03:40 +0100 | DataComputist | (~lumeng@50.43.26.251) |
2021-02-05 00:05:14 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2021-02-05 00:06:24 +0100 | carlomagno | (~cararell@148.87.23.9) |
2021-02-05 00:06:24 +0100 | carlomagno1 | (~cararell@148.87.23.13) (Remote host closed the connection) |
2021-02-05 00:06:41 +0100 | nineoni__ | (~nineonine@50.216.62.2) (Remote host closed the connection) |
2021-02-05 00:07:13 +0100 | nineonine | (~nineonine@50.216.62.2) |
2021-02-05 00:07:48 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) |
2021-02-05 00:09:22 +0100 | soft-warm | (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 240 seconds) |
2021-02-05 00:09:43 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-02-05 00:10:58 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-hckhahxtjpgetknl) |
2021-02-05 00:12:53 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2021-02-05 00:14:16 +0100 | ukari | (~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 +0100 | fendor_ | (~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 +0100 | Tesseraction | (~Tesseract@unaffiliated/tesseraction) (Ping timeout: 264 seconds) |
2021-02-05 00:23:10 +0100 | Benzi-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 +0100 | Benzi-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 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
2021-02-05 00:27:43 +0100 | Tesseraction | (~Tesseract@unaffiliated/tesseraction) |
2021-02-05 00:28:26 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:8527:2d6c:6fbd:96de) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-05 00:29:57 +0100 | napping | (~brandon@174-20-93-137.mpls.qwest.net) (Ping timeout: 264 seconds) |
2021-02-05 00:31:30 +0100 | chrisdotcode | (~chrisdotc@unaffiliated/chrisdotcode) (Quit: self-rip) |
2021-02-05 00:37:46 +0100 | renzhi | (~renzhi@2607:fa49:6500:6f00::1e43) |
2021-02-05 00:38:51 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 00:39:53 +0100 | Rudd0 | (~Rudd0@185.189.115.103) (Ping timeout: 256 seconds) |
2021-02-05 00:44:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-02-05 00:46:59 +0100 | ransom | (~c4264035@2a09:bac0:98::830:861e) (Quit: Textual IRC Client: www.textualapp.com) |
2021-02-05 00:47:05 +0100 | themba_ | (~themba@bcde0474.skybroadband.com) (Ping timeout: 240 seconds) |
2021-02-05 00:54:40 +0100 | writenix | (~quassel@200.99.115.89.rev.vodafone.pt) |
2021-02-05 00:55:25 +0100 | napping | (~brandon@174-20-93-137.mpls.qwest.net) |
2021-02-05 00:55:47 +0100 | jrp | (05501e8f@5.80.30.143) (Quit: Connection closed) |
2021-02-05 00:56:11 +0100 | Franciman | (~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving) |
2021-02-05 00:56:24 +0100 | hackage | either-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 +0100 | polyrain | (~polyrain@124.177.21.171) |
2021-02-05 00:58:13 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) |
2021-02-05 01:00:25 +0100 | napping | (~brandon@174-20-93-137.mpls.qwest.net) (Ping timeout: 276 seconds) |
2021-02-05 01:01:53 +0100 | writenix | (~quassel@200.99.115.89.rev.vodafone.pt) (Remote host closed the connection) |
2021-02-05 01:02:50 +0100 | writenix | (~quassel@200.99.115.89.rev.vodafone.pt) |
2021-02-05 01:03:03 +0100 | writenix | (~quassel@200.99.115.89.rev.vodafone.pt) (Client Quit) |
2021-02-05 01:05:31 +0100 | Bobbias | (~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) |
2021-02-05 01:06:39 +0100 | elliott__ | (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-02-05 01:07:51 +0100 | Bobbias | (~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) (Read error: Connection reset by peer) |
2021-02-05 01:08:10 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-05 01:09:58 +0100 | Ishutin | (~Ishutin@92-249-182-126.pool.digikabel.hu) |
2021-02-05 01:10:47 +0100 | shush | (~pawn@2603-8000-3703-51f4-543f-96f4-bf63-1a0d.res6.spectrum.com) |
2021-02-05 01:10:47 +0100 | evanjs | (~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 +0100 | Ishutin_ | (~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 +0100 | forgottenone | (~forgotten@176.42.30.142) (Ping timeout: 240 seconds) |
2021-02-05 01:14:05 +0100 | napping | (~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 +0100 | livvy | (~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 +0100 | livvy_ | (~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 +0100 | Sgeo | (~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 +0100 | bgamari_ | (~bgamari@72.65.104.37) |
2021-02-05 01:17:21 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection) |
2021-02-05 01:17:25 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-05 01:17:25 +0100 | bgamari | (~bgamari@72.65.102.135) (Ping timeout: 240 seconds) |
2021-02-05 01:17:45 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) |
2021-02-05 01:18:06 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 01:21:49 +0100 | napping | (~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 +0100 | nhs | (~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 +0100 | ski | was 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 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 01:32:49 +0100 | ski | misses 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 +0100 | xiinotulp | (~q@node-usw.pool-125-24.dynamic.totinternet.net) |
2021-02-05 01:33:00 +0100 | napping | (~brandon@174-20-93-137.mpls.qwest.net) |
2021-02-05 01:33:04 +0100 | <Axman6> | -Odph |
2021-02-05 01:33:08 +0100 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-02-05 01:34:18 +0100 | forgottenone | (~forgotten@176.42.26.20) |
2021-02-05 01:34:49 +0100 | ski | . o O ( `IVar' ) |
2021-02-05 01:36:16 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2021-02-05 01:36:25 +0100 | plutoniix | (~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 +0100 | napping | (~brandon@174-20-93-137.mpls.qwest.net) (Ping timeout: 240 seconds) |
2021-02-05 01:37:39 +0100 | DataComputist | (~lumeng@50.43.26.251) (Read error: Connection reset by peer) |
2021-02-05 01:37:47 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds) |
2021-02-05 01:38:21 +0100 | Tesseraction | (~Tesseract@unaffiliated/tesseraction) (Ping timeout: 264 seconds) |
2021-02-05 01:38:24 +0100 | DataComputist | (~lumeng@50.43.26.251) |
2021-02-05 01:38:26 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-05 01:38:41 +0100 | bgamari_ | (~bgamari@72.65.104.37) (Remote host closed the connection) |
2021-02-05 01:38:46 +0100 | metreo | (~Thunderbi@unaffiliated/metreo) (Remote host closed the connection) |
2021-02-05 01:38:57 +0100 | metreo | (~Thunderbi@unaffiliated/metreo) |
2021-02-05 01:39:04 +0100 | bgamari | (~bgamari@2001:470:e438::1) |
2021-02-05 01:39:04 +0100 | desophos | (~desophos@2601:249:1680:a570:84f9:a158:4c9:c8e9) |
2021-02-05 01:39:56 +0100 | pengjiz | (~user@cmu-secure-128-237-82-2.nat.cmu.net) (Quit: ERC (IRC client for Emacs 27.1)) |
2021-02-05 01:40:05 +0100 | p8m | (p8m@gateway/vpn/protonvpn/p8m) |
2021-02-05 01:40:09 +0100 | Bobbias | (~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) |
2021-02-05 01:40:42 +0100 | Bobbias | (~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) (Read error: Connection reset by peer) |
2021-02-05 01:40:45 +0100 | puffnfresh | (~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) (Ping timeout: 240 seconds) |
2021-02-05 01:45:25 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2021-02-05 01:46:19 +0100 | p7lpa1ugixavugu | (~atomic@2800:810:514:8155:885f:ca4:6add:b1fa) (Remote host closed the connection) |
2021-02-05 01:47:32 +0100 | puffnfresh | (~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) |
2021-02-05 01:48:07 +0100 | conal | (~conal@64.71.133.70) |
2021-02-05 01:49:25 +0100 | Bobbias | (~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) |
2021-02-05 01:49:55 +0100 | Bobbias | (~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) (Read error: Connection reset by peer) |
2021-02-05 01:50:05 +0100 | salumu | (~sMuNiX@vlnsm8-montreal02-142-122-8-233.internet.virginmobile.ca) |
2021-02-05 01:50:16 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-02-05 01:52:01 +0100 | mouseghost | (~draco@wikipedia/desperek) (Quit: mew wew) |
2021-02-05 01:52:32 +0100 | Jd007 | (~Jd007@162.156.11.151) |
2021-02-05 01:52:37 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-05 01:53:20 +0100 | sMuNiX | (~sMuNiX@vlnsm8-montreal02-142-122-8-233.internet.virginmobile.ca) (Ping timeout: 265 seconds) |
2021-02-05 01:53:56 +0100 | mrchampion | (~mrchampio@38.18.109.23) (Ping timeout: 240 seconds) |
2021-02-05 01:55:45 +0100 | brainfunnel | (~quassel@12.23.199.146.dyn.plus.net) |
2021-02-05 01:57:29 +0100 | shush | (~pawn@2603-8000-3703-51f4-543f-96f4-bf63-1a0d.res6.spectrum.com) (Remote host closed the connection) |
2021-02-05 01:57:33 +0100 | mrchampion | (~mrchampio@38.18.109.23) |
2021-02-05 01:58:01 +0100 | jess | jesspacito |
2021-02-05 01:59:33 +0100 | Sgeo_ | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-02-05 01:59:48 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
2021-02-05 02:00:25 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 240 seconds) |
2021-02-05 02:05:04 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2021-02-05 02:05:15 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:e9bf:1d6f:43d1:d11b) |
2021-02-05 02:06:17 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Remote host closed the connection) |
2021-02-05 02:08:30 +0100 | xiinotulp | (~q@node-usw.pool-125-24.dynamic.totinternet.net) (Quit: Leaving) |
2021-02-05 02:08:37 +0100 | kupi | (uid212005@gateway/web/irccloud.com/x-pyrfhfaitkpiyesc) (Quit: Connection closed for inactivity) |
2021-02-05 02:09:26 +0100 | aveltras | (uid364989@gateway/web/irccloud.com/x-wppxrrvmmzrfxdph) (Quit: Connection closed for inactivity) |
2021-02-05 02:12:50 +0100 | nhs | (~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 +0100 | Neuromancer | (~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 240 seconds) |
2021-02-05 02:16:05 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Quit: Leaving) |
2021-02-05 02:16:16 +0100 | peasynt | (~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 +0100 | wroathe | (~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 +0100 | deviantfero | (~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 +0100 | merijn | (~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 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-02-05 02:26:13 +0100 | hyperisco | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-05 02:32:24 +0100 | hackage | ghc-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 +0100 | hackage | ghc-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 +0100 | wroathe | (~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 +0100 | nbloomf | (~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 +0100 | wroathe | (~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 +0100 | nhs | (~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 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 02:45:19 +0100 | Bobbias | (~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) |
2021-02-05 02:45:55 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-05 02:46:08 +0100 | Bobbias | (~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 +0100 | metreo | (~Thunderbi@unaffiliated/metreo) (Quit: metreo) |
2021-02-05 02:47:47 +0100 | jle` | (~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 +0100 | tromp | (~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 +0100 | polyrain | (~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 +0100 | DataComputist | (~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 +0100 | Murasca | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-05 02:53:18 +0100 | polyrain | (~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 +0100 | wroathe | (~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 +0100 | djxolar | (~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 +0100 | djxolar | (~root@190.66.188.39) (Client Quit) |
2021-02-05 02:57:54 +0100 | hackage | ghc-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 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-02-05 02:59:20 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-02-05 03:00:27 +0100 | DataComputist | (~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 +0100 | catt | (~r@31.124.181.226) (Remote host closed the connection) |
2021-02-05 03:06:49 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2021-02-05 03:07:40 +0100 | napping | (~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 +0100 | jedws | (~jedws@101.184.202.248) |
2021-02-05 03:10:02 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-khjufreymueqbnyt) |
2021-02-05 03:11:10 +0100 | jedws | (~jedws@101.184.202.248) (Client Quit) |
2021-02-05 03:12:19 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2021-02-05 03:12:20 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 03:14:26 +0100 | Bobbias | (~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) |
2021-02-05 03:14:49 +0100 | Bobbias | (~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) (Read error: Connection reset by peer) |
2021-02-05 03:15:32 +0100 | LKoen_ | (~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 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:e9bf:1d6f:43d1:d11b) |
2021-02-05 03:20:26 +0100 | jophish | (~jophish@2400:8901::f03c:91ff:fe39:7a9) (Ping timeout: 264 seconds) |
2021-02-05 03:20:48 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) |
2021-02-05 03:20:48 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) (Remote host closed the connection) |
2021-02-05 03:21:12 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) |
2021-02-05 03:21:16 +0100 | jophish | (~jophish@2400:8901::f03c:91ff:fe39:7a9) |
2021-02-05 03:21:36 +0100 | Bobbias | (~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) |
2021-02-05 03:22:17 +0100 | Bobbias | (~Bobbias@2605:b100:319:2b7a:7557:5f1d:69ce:bd41) (Read error: Connection reset by peer) |
2021-02-05 03:24:23 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) |
2021-02-05 03:24:28 +0100 | forgottenone | (~forgotten@176.42.26.20) (Quit: Konversation terminated!) |
2021-02-05 03:25:24 +0100 | hackage | ghc-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 +0100 | xff0x_ | (~xff0x@2001:1a81:53aa:1900:f90b:c43e:4a98:6d16) (Ping timeout: 260 seconds) |
2021-02-05 03:30:01 +0100 | xff0x_ | (~xff0x@2001:1a81:520c:9300:586a:55e0:d9f8:4e5c) |
2021-02-05 03:30:13 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-05 03:35:13 +0100 | polyrain | (~polyrain@2001:8003:e4d8:4101:e942:1e05:b6e2:4ede) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-05 03:37:26 +0100 | raym | (~ray@45.64.220.55) (Quit: leaving) |
2021-02-05 03:37:35 +0100 | raym | (~ray@45.64.220.55) |
2021-02-05 03:38:33 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 03:42:36 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-05 03:44:13 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds) |
2021-02-05 03:48:13 +0100 | brainfunnel | (~quassel@12.23.199.146.dyn.plus.net) (Quit: thanks, bye!) |
2021-02-05 03:48:21 +0100 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-lngcdofcaxbyafyr) |
2021-02-05 03:51:48 +0100 | nineonine | (~nineonine@50.216.62.2) (Ping timeout: 246 seconds) |
2021-02-05 03:52:01 +0100 | falsifian | (~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 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 03:59:53 +0100 | quinn | (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) |
2021-02-05 04:00:25 +0100 | hackage | kparams 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 +0100 | nhs | (~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 +0100 | nbloomf | (~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 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-05 04:04:36 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:d565:4fe9:2191:8f98) |
2021-02-05 04:05:16 +0100 | nhs | (~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 +0100 | micro | (~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 +0100 | micro | (~micro@unaffiliated/micro) |
2021-02-05 04:10:45 +0100 | theDon | (~td@muedsl-82-207-238-046.citykom.de) (Ping timeout: 240 seconds) |
2021-02-05 04:12:39 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 04:12:44 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 04:12:49 +0100 | theDon | (~td@muedsl-82-207-238-211.citykom.de) |
2021-02-05 04:12:58 +0100 | soft-warm | (4408f588@ip68-8-245-136.sd.sd.cox.net) |
2021-02-05 04:17:05 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-05 04:17:05 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-05 04:17:16 +0100 | urodna | (~urodna@unaffiliated/urodna) (Quit: urodna) |
2021-02-05 04:18:30 +0100 | nhs | (~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 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 258 seconds) |
2021-02-05 04:21:33 +0100 | shiraeeshi | (~shiraeesh@109.166.56.2) (Ping timeout: 264 seconds) |
2021-02-05 04:22:01 +0100 | Codaraxis__ | (Codaraxis@gateway/vpn/mullvad/codaraxis) |
2021-02-05 04:22:21 +0100 | desophos_ | (~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 +0100 | mirrorbird | (~psutcliff@2a00:801:2d5:848b:590:cf4f:5eeb:b49d) (Ping timeout: 272 seconds) |
2021-02-05 04:26:28 +0100 | nhs | (~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 +0100 | Sheilong | (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 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-02-05 04:31:20 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 04:31:36 +0100 | TianGTY | (~textual@103.116.47.198) |
2021-02-05 04:32:57 +0100 | Sgeo_ | (~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 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2021-02-05 04:34:17 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-02-05 04:37:05 +0100 | FinnElija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
2021-02-05 04:37:05 +0100 | finn_elija | Guest61759 |
2021-02-05 04:37:05 +0100 | FinnElija | finn_elija |
2021-02-05 04:41:14 +0100 | Guest61759 | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds) |
2021-02-05 04:41:35 +0100 | desophos_ | (~desophos@2601:249:1680:a570:401a:e62d:b79f:2b1) (Quit: Mutter: www.mutterirc.com) |
2021-02-05 04:46:58 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) |
2021-02-05 04:48:41 +0100 | Tario | (~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 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 276 seconds) |
2021-02-05 04:51:53 +0100 | DataComputist | (~lumeng@50.43.26.251) (Ping timeout: 258 seconds) |
2021-02-05 04:53:46 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 276 seconds) |
2021-02-05 04:53:57 +0100 | djcaston | (~djcaston@pool-71-188-85-134.cmdnnj.east.verizon.net) |
2021-02-05 04:54:36 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-05 04:54:54 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 04:55:24 +0100 | DataComputist | (~lumeng@50.43.26.251) |
2021-02-05 04:55:41 +0100 | merijn | (~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 +0100 | Rudd0 | (~Rudd0@185.189.115.103) |
2021-02-05 05:01:45 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-05 05:01:50 +0100 | borne | (~fritjof@2a06:8782:ffbb:1337:a53:e188:6f13:d1a) (Ping timeout: 264 seconds) |
2021-02-05 05:02:02 +0100 | chrisdotcode | (~chrisdotc@unaffiliated/chrisdotcode) |
2021-02-05 05:03:10 +0100 | napping | (~brandon@174-20-93-137.mpls.qwest.net) (Quit: leaving) |
2021-02-05 05:03:32 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Remote host closed the connection) |
2021-02-05 05:06:49 +0100 | glguy | (x@freenode/staff/haskell.developer.glguy) (Remote host closed the connection) |
2021-02-05 05:06:57 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 05:07:48 +0100 | glguy | (x@freenode/staff/haskell.developer.glguy) |
2021-02-05 05:08:07 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) |
2021-02-05 05:09:22 +0100 | soft-warm | (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 240 seconds) |
2021-02-05 05:09:39 +0100 | jedws | (~jedws@101.184.202.248) |
2021-02-05 05:09:57 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:6838:f94d:c1b8:154c) (Ping timeout: 260 seconds) |
2021-02-05 05:11:00 +0100 | hexfive | (~hexfive@50.35.83.177) (Quit: i must go. my people need me.) |
2021-02-05 05:11:15 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-02-05 05:11:57 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds) |
2021-02-05 05:13:47 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
2021-02-05 05:14:38 +0100 | dyeplexer | (~lol@unaffiliated/terpin) |
2021-02-05 05:14:43 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 05:15:58 +0100 | tuxian | (~tuxian@2405:201:e018:998a:3041:aef8:2683:35e0) |
2021-02-05 05:18:28 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-02-05 05:19:16 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-05 05:22:34 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:2bad:a6b1:9f59:3808) |
2021-02-05 05:24:07 +0100 | plutoniix | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-02-05 05:30:29 +0100 | nhs | (~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 +0100 | tuxian | (~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 +0100 | acarrico | (~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 +0100 | nhs | (~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 +0100 | heatsink | (~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 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-05 05:41:29 +0100 | conal | (~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 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) |
2021-02-05 05:45:49 +0100 | pavonia | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2021-02-05 05:46:02 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2021-02-05 05:46:47 +0100 | nhs | (~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 +0100 | oldandwise | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
2021-02-05 05:56:21 +0100 | gienah | (~mwright@gentoo/developer/gienah) (Quit: leaving) |
2021-02-05 05:56:51 +0100 | oldandwise | (~oldandwis@49.145.174.153) (Client Quit) |
2021-02-05 05:58:42 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-02-05 05:58:53 +0100 | oldandwise | (~oldandwis@49.145.174.153) |
2021-02-05 05:58:55 +0100 | ByronJohnson | (~bairyn@unaffiliated/bob0) (Ping timeout: 256 seconds) |
2021-02-05 05:59:04 +0100 | ByronJohnson | (~bairyn@unaffiliated/bob0) |
2021-02-05 05:59:06 +0100 | styledash | (~styledash@157.230.173.136) (Quit: The Lounge - https://thelounge.chat) |
2021-02-05 05:59:25 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 05:59:54 +0100 | styledash | (~styledash@157.230.173.136) |
2021-02-05 06:00:56 +0100 | oldandwise | (~oldandwis@49.145.174.153) (Client Quit) |
2021-02-05 06:01:03 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 06:02:30 +0100 | Codaraxis_ | (Codaraxis@gateway/vpn/mullvad/codaraxis) |
2021-02-05 06:03:45 +0100 | DataComputist | (~lumeng@50.43.26.251) (Ping timeout: 246 seconds) |
2021-02-05 06:05:16 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-05 06:06:02 +0100 | zaquest | (~notzaques@5.128.210.178) (Quit: Leaving) |
2021-02-05 06:06:10 +0100 | alx741 | (~alx741@186.178.110.33) (Quit: alx741) |
2021-02-05 06:06:15 +0100 | Codaraxis__ | (Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 258 seconds) |
2021-02-05 06:08:24 +0100 | DataComputist | (~lumeng@50.43.26.251) |
2021-02-05 06:08:34 +0100 | Jd007 | (~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 +0100 | nhs | (~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 +0100 | zaquest | (~notzaques@5.128.210.178) |
2021-02-05 06:16:21 +0100 | crestfallen | (~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 +0100 | frozenErebus | (~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 +0100 | ixaxaar | (~ixaxaar@49.207.210.215) |
2021-02-05 06:17:30 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-05 06:19:45 +0100 | wroathe | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 06:25:06 +0100 | nineonine | (~nineonine@50.216.62.2) |
2021-02-05 06:26:56 +0100 | greymalkin | (~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 +0100 | elliott__ | (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 258 seconds) |
2021-02-05 06:28:36 +0100 | guest23 | (~user@49.5.6.87) (Ping timeout: 240 seconds) |
2021-02-05 06:29:32 +0100 | greymalkin | (~greymalki@199.180.249.79) |
2021-02-05 06:31:55 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds) |
2021-02-05 06:32:04 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Remote host closed the connection) |
2021-02-05 06:32:21 +0100 | djcaston | (~djcaston@pool-71-188-85-134.cmdnnj.east.verizon.net) (Ping timeout: 256 seconds) |
2021-02-05 06:32:27 +0100 | tzh | (~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 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
2021-02-05 06:34:09 +0100 | djcaston | (~djcaston@juno.whatbox.ca) |
2021-02-05 06:34:18 +0100 | crestfallen | (~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 +0100 | gienah | (~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 +0100 | nineonin_ | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) |
2021-02-05 06:36:22 +0100 | wroathe | (~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 +0100 | nineonine | (~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 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2021-02-05 06:42:56 +0100 | nineonin_ | (~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 +0100 | nineonine | (~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 +0100 | styledash | (~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 +0100 | nhs | (~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 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 258 seconds) |
2021-02-05 06:49:30 +0100 | guest23 | (~user@49.5.6.87) |
2021-02-05 06:50:48 +0100 | styledash | (~styledash@157.230.173.136) |
2021-02-05 06:51:33 +0100 | nhs | (~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 +0100 | sm2n | (~sm2n@bras-base-hmtnon1497w-grc-43-64-231-95-247.dsl.bell.ca) (Quit: Leaving) |
2021-02-05 06:52:24 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Quit: leaving) |
2021-02-05 06:52:59 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-05 06:53:17 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-05 06:54:25 +0100 | sm2n | (~sm2n@bras-base-hmtnon1497w-grc-43-64-231-95-247.dsl.bell.ca) |
2021-02-05 06:54:51 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 06:55:10 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 06:56:43 +0100 | plutoniix | (~q@184.82.194.56) (Read error: Connection reset by peer) |
2021-02-05 06:57:43 +0100 | elfets_ | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
2021-02-05 06:58:49 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:d565:4fe9:2191:8f98) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-05 06:59:52 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds) |
2021-02-05 06:59:52 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds) |
2021-02-05 07:00:42 +0100 | Neuromancer | (~Neuromanc@unaffiliated/neuromancer) |
2021-02-05 07:00:52 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 07:01:13 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
2021-02-05 07:02:39 +0100 | plutoniix | (~q@184.82.194.56) |
2021-02-05 07:02:57 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-02-05 07:05:00 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds) |
2021-02-05 07:07:48 +0100 | ADG1089__ | (~aditya@223.236.161.207) |
2021-02-05 07:07:54 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 07:11:26 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 07:13:25 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-05 07:15:53 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@49.228.238.55) |
2021-02-05 07:18:42 +0100 | djcaston | (~djcaston@juno.whatbox.ca) (Ping timeout: 258 seconds) |
2021-02-05 07:20:20 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 268 seconds) |
2021-02-05 07:21:33 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
2021-02-05 07:23:39 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
2021-02-05 07:25:23 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection) |
2021-02-05 07:26:01 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
2021-02-05 07:26:18 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 07:27:10 +0100 | nyaomi | (~naomi@cpe-74-75-6-125.maine.res.rr.com) (Excess Flood) |
2021-02-05 07:27:30 +0100 | nyaomi | (~naomi@cpe-74-75-6-125.maine.res.rr.com) |
2021-02-05 07:28:15 +0100 | ADG1089_ | (~aditya@171.76.188.43) |
2021-02-05 07:28:45 +0100 | ADG1089__ | (~aditya@223.236.161.207) (Ping timeout: 240 seconds) |
2021-02-05 07:29:43 +0100 | Wuzzy | (~Wuzzy@p57a2e44e.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-02-05 07:30:38 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 264 seconds) |
2021-02-05 07:32:09 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-02-05 07:32:25 +0100 | nyaomi | (~naomi@cpe-74-75-6-125.maine.res.rr.com) (Excess Flood) |
2021-02-05 07:33:17 +0100 | nyaomi | (~naomi@cpe-74-75-6-125.maine.res.rr.com) |
2021-02-05 07:33:22 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 07:40:21 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-05 07:42:04 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 07:43:32 +0100 | Tops2 | (~Tobias@dyndsl-095-033-020-088.ewe-ip-backbone.de) |
2021-02-05 07:46:45 +0100 | Guest9812 | stilgart |
2021-02-05 07:46:45 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-05 07:48:00 +0100 | Lowl3v3l | (~Lowl3v3l@dslb-002-203-233-121.002.203.pools.vodafone-ip.de) |
2021-02-05 07:49:30 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) |
2021-02-05 07:51:43 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Remote host closed the connection) |
2021-02-05 07:52:19 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) |
2021-02-05 07:55:37 +0100 | hololeap | (~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/) |
2021-02-05 07:57:02 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 264 seconds) |
2021-02-05 07:57:32 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 08:00:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-05 08:00:14 +0100 | DataComputist | (~lumeng@50.43.26.251) (Ping timeout: 256 seconds) |
2021-02-05 08:00:35 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 08:02:35 +0100 | DataComputist | (~lumeng@50.43.26.251) |
2021-02-05 08:03:12 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) |
2021-02-05 08:03:45 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-02-05 08:04:03 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 265 seconds) |
2021-02-05 08:05:55 +0100 | nineonin_ | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) |
2021-02-05 08:06:10 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds) |
2021-02-05 08:06:35 +0100 | average | (uid473595@gateway/web/irccloud.com/x-wmphahzlcegaaqct) (Quit: Connection closed for inactivity) |
2021-02-05 08:08:02 +0100 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-lngcdofcaxbyafyr) (Quit: Connection closed for inactivity) |
2021-02-05 08:08:21 +0100 | jedws | (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-05 08:09:41 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 258 seconds) |
2021-02-05 08:10:47 +0100 | nineonin_ | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 260 seconds) |
2021-02-05 08:10:54 +0100 | ADG1089_ | (~aditya@171.76.188.43) (Read error: Connection reset by peer) |
2021-02-05 08:11:48 +0100 | vchlup | (~vchlup@nat.brnet.cz) |
2021-02-05 08:14:46 +0100 | ADG1089_ | (~aditya@223.235.245.154) |
2021-02-05 08:16:46 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 08:20:05 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2021-02-05 08:21:46 +0100 | nhs | (~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 +0100 | xff0x_ | (~xff0x@2001:1a81:520c:9300:586a:55e0:d9f8:4e5c) (Ping timeout: 258 seconds) |
2021-02-05 08:24:13 +0100 | xff0x_ | (~xff0x@2001:1a81:520c:9300:d376:a5ba:ccb8:29d) |
2021-02-05 08:24:34 +0100 | kuribas | (~user@ptr-25vy0i8mp067j44c045.18120a2.ip6.access.telenet.be) |
2021-02-05 08:30:21 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-02-05 08:30:44 +0100 | maier | (~maier@mue-88-130-62-190.dsl.tropolys.de) |
2021-02-05 08:31:10 +0100 | vilpan | (~0@212.117.1.172) |
2021-02-05 08:32:13 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-02-05 08:32:26 +0100 | d3od | (~nickmeno3@78-1-81-107.adsl.net.t-com.hr) |
2021-02-05 08:33:44 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 08:34:46 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0) |
2021-02-05 08:34:59 +0100 | raym | (~ray@45.64.220.55) (Ping timeout: 265 seconds) |
2021-02-05 08:35:13 +0100 | knupfer | (~Thunderbi@200116b82c11b100f07476fffeae2c5f.dip.versatel-1u1.de) |
2021-02-05 08:36:00 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-02-05 08:37:38 +0100 | knupfer | (~Thunderbi@200116b82c11b100f07476fffeae2c5f.dip.versatel-1u1.de) (Remote host closed the connection) |
2021-02-05 08:38:25 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-05 08:40:27 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) |
2021-02-05 08:40:34 +0100 | vgtw | (~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection) |
2021-02-05 08:40:50 +0100 | vgtw | (~vgtw@gateway/tor-sasl/vgtw) |
2021-02-05 08:40:56 +0100 | DataComputist | (~lumeng@50.43.26.251) (Ping timeout: 240 seconds) |
2021-02-05 08:40:57 +0100 | benjamingr__ | (uid23465@gateway/web/irccloud.com/x-hwcybnxooouhdsux) (Quit: Connection closed for inactivity) |
2021-02-05 08:41:57 +0100 | DataComputist | (~lumeng@50.43.26.251) |
2021-02-05 08:42:14 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Remote host closed the connection) |
2021-02-05 08:43:13 +0100 | nineonine | (~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 +0100 | nineonine | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 08:50:06 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection) |
2021-02-05 08:50:43 +0100 | andreas303 | (~andreas@gateway/tor-sasl/andreas303) |
2021-02-05 08:51:01 +0100 | guest23 | (~user@49.5.6.87) (Remote host closed the connection) |
2021-02-05 08:51:13 +0100 | guest23 | (~user@49.5.6.87) |
2021-02-05 08:52:25 +0100 | hackage | dep-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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds) |
2021-02-05 08:58:52 +0100 | TianGTY | (~textual@103.116.47.198) (Quit: Textual IRC Client: www.textualapp.com) |
2021-02-05 08:59:52 +0100 | Sgeo_ | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-02-05 09:01:23 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds) |
2021-02-05 09:01:45 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 264 seconds) |
2021-02-05 09:01:50 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) |
2021-02-05 09:03:08 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Remote host closed the connection) |
2021-02-05 09:04:08 +0100 | nineonine | (~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 +0100 | Major_Biscuit | (~Major_Bis@82-169-100-198.biz.kpn.net) |
2021-02-05 09:07:39 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 09:07:41 +0100 | maier | (~maier@mue-88-130-62-190.dsl.tropolys.de) (Quit: Lost terminal) |
2021-02-05 09:09:02 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 264 seconds) |
2021-02-05 09:09:40 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-02-05 09:10:15 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 258 seconds) |
2021-02-05 09:12:16 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-05 09:15:42 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
2021-02-05 09:15:59 +0100 | Codaraxis__ | (Codaraxis@gateway/vpn/mullvad/codaraxis) |
2021-02-05 09:16:23 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
2021-02-05 09:16:40 +0100 | raym | (~ray@45.64.220.139) |
2021-02-05 09:18:39 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-05 09:19:13 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) |
2021-02-05 09:19:28 +0100 | michalz | (~user@185.246.204.93) |
2021-02-05 09:19:37 +0100 | Codaraxis_ | (Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 276 seconds) |
2021-02-05 09:21:15 +0100 | vgtw | (~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection) |
2021-02-05 09:21:29 +0100 | totoro2022 | (~t@unaffiliated/totoro2021) (Read error: Connection reset by peer) |
2021-02-05 09:21:31 +0100 | vgtw | (~vgtw@gateway/tor-sasl/vgtw) |
2021-02-05 09:23:22 +0100 | totoro2022 | (~t@unaffiliated/totoro2021) |
2021-02-05 09:23:46 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 09:25:00 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8) |
2021-02-05 09:26:41 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
2021-02-05 09:27:02 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2021-02-05 09:28:25 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-05 09:31:35 +0100 | miguel_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 +0100 | DirefulSalt | (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 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
2021-02-05 09:34:15 +0100 | d3od | (~nickmeno3@78-1-81-107.adsl.net.t-com.hr) (Remote host closed the connection) |
2021-02-05 09:35:34 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Remote host closed the connection) |
2021-02-05 09:36:55 +0100 | Franciman | (~francesco@host-95-235-155-82.retail.telecomitalia.it) |
2021-02-05 09:37:16 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 09:38:11 +0100 | borne | (~fritjof@2a06:8782:ffbb:1337:a53:e188:6f13:d1a) |
2021-02-05 09:41:45 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-05 09:42:49 +0100 | borne | (~fritjof@2a06:8782:ffbb:1337:a53:e188:6f13:d1a) (Ping timeout: 272 seconds) |
2021-02-05 09:43:11 +0100 | chele | (~chele@ip5b40237d.dynamic.kabel-deutschland.de) |
2021-02-05 09:43:54 +0100 | shad0w_ | (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 +0100 | borne | (~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 +0100 | nineonine | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 09:45:18 +0100 | ADG1089_ | (~aditya@223.235.245.154) (Quit: Konversation terminated!) |
2021-02-05 09:48:32 +0100 | Martinsos | (~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 +0100 | Profpatsch | (~Profpatsc@static.88-198-193-255.clients.your-server.de) (Quit: WeeChat 2.9) |
2021-02-05 09:51:37 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-05 09:51:39 +0100 | mirrorbird | (~psutcliff@2a00:801:2d5:848b:590:cf4f:5eeb:b49d) |
2021-02-05 09:51:46 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-05 09:53:05 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 09:53:24 +0100 | gxt | (~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 +0100 | coot | (~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 +0100 | ixian | (~mgold@terra.bitplane.org) (Ping timeout: 258 seconds) |
2021-02-05 09:55:42 +0100 | ixian | (~mgold@terra.bitplane.org) |
2021-02-05 09:58:37 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds) |
2021-02-05 10:00:00 +0100 | dyniec[m] | (dyniecmatr@gateway/shell/matrix.org/x-elgmnlyadjyzxkds) (Quit: Idle for 30+ days) |
2021-02-05 10:01:17 +0100 | fendor | (~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 +0100 | ubert | (~Thunderbi@p548c9a44.dip0.t-ipconnect.de) |
2021-02-05 10:04:43 +0100 | Sgeo_ | (~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 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2021-02-05 10:07:31 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 272 seconds) |
2021-02-05 10:09:16 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 10:14:04 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-05 10:17:30 +0100 | danza | (~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 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 256 seconds) |
2021-02-05 10:23:16 +0100 | APic | (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 +0100 | nhs | (~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 +0100 | ubert | (~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 +0100 | Tuplanolla | (~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 +0100 | shiraeeshi | (~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 +0100 | nhs | (~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 +0100 | aforemny | (~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 +0100 | shad0w_ | (a0ca2538@160.202.37.56) (Quit: Connection closed) |
2021-02-05 10:32:49 +0100 | APic | (apic@apic.name) |
2021-02-05 10:33:31 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-05 10:34:24 +0100 | dwt | (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Quit: bye) |
2021-02-05 10:34:41 +0100 | desophos | (~desophos@2601:249:1680:a570:84f9:a158:4c9:c8e9) (Read error: Connection reset by peer) |
2021-02-05 10:35:58 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) |
2021-02-05 10:37:17 +0100 | dwt | (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) |
2021-02-05 10:37:17 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Read error: Connection reset by peer) |
2021-02-05 10:38:25 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 240 seconds) |
2021-02-05 10:40:33 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-02-05 10:40:50 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Ping timeout: 264 seconds) |
2021-02-05 10:41:51 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 10:46:55 +0100 | hekkaidekapus[ | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds) |
2021-02-05 10:47:28 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-05 10:47:39 +0100 | guest23 | (~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1)) |
2021-02-05 10:48:41 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-zomvgoemagekvvah) (Quit: Connection closed for inactivity) |
2021-02-05 10:51:35 +0100 | knu42 | (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 +0100 | hekkaidekapus[ | (~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 +0100 | da39a3ee5e6b4b0d | (~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 +0100 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) |
2021-02-05 10:59:43 +0100 | shiraeeshi | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 11:00:37 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-02-05 11:02:00 +0100 | LKoen | (~LKoen@252.248.88.92.rev.sfr.net) |
2021-02-05 11:04:24 +0100 | hacxman | (~hexo@gateway/tor-sasl/hexo) |
2021-02-05 11:04:28 +0100 | sorki | (~sorki@gateway/tor-sasl/sorki) |
2021-02-05 11:04:41 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection) |
2021-02-05 11:04:41 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection) |
2021-02-05 11:04:45 +0100 | DavidEichmann | (~david@234.109.45.217.dyn.plus.net) |
2021-02-05 11:04:45 +0100 | hacxman | hexo |
2021-02-05 11:05:34 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds) |
2021-02-05 11:07:27 +0100 | sorki | srk |
2021-02-05 11:08:14 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:51a:84a8:6067:5428) |
2021-02-05 11:08:19 +0100 | shiraeeshi | (~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 +0100 | nhs | (~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 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-05 11:19:36 +0100 | j2t | (~user@84.122.202.215.dyn.user.ono.com) |
2021-02-05 11:20:09 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-05 11:20:51 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-05 11:21:54 +0100 | hackage | haskoin-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 +0100 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
2021-02-05 11:24:59 +0100 | frozenErebus | (~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 +0100 | nineonine | (~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 +0100 | tromp | (~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 +0100 | forgottenone | (~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 +0100 | gxt | (~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 +0100 | Lord_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 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 246 seconds) |
2021-02-05 11:31:32 +0100 | raehik | (~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 +0100 | nineonine | (~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 +0100 | nhs | (~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 +0100 | Lord_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 +0100 | tzlil | (~tzlil@unaffiliated/tzlil) (Ping timeout: 264 seconds) |
2021-02-05 11:34:41 +0100 | tzlil | (~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 +0100 | heatsink | (~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 +0100 | nhs | (~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 +0100 | plutoniix | (~q@184.82.194.56) (Quit: Leaving) |
2021-02-05 11:42:02 +0100 | heatsink | (~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 +0100 | Quarl | (~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 +0100 | shiraeeshi | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-05 11:48:25 +0100 | gehmehgeh | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 11:49:54 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 11:51:39 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-02-05 11:52:11 +0100 | Quarl | (~Quarl@h-155-4-128-37.NA.cust.bahnhof.se) (Read error: Connection reset by peer) |
2021-02-05 11:53:21 +0100 | jesspacito | jess |
2021-02-05 11:53:24 +0100 | nhs | (~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 +0100 | notzmv | (~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 +0100 | merijn | (~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 +0100 | merijn | (~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 +0100 | DirefulSalt | (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 +0100 | DirefulSalt | (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 +0100 | Quarl | (~Quarl@h-155-4-128-37.NA.cust.bahnhof.se) |
2021-02-05 12:01:11 +0100 | son0p | (~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 +0100 | aveltras | (uid364989@gateway/web/irccloud.com/x-pjggritsgsigpqvj) |
2021-02-05 12:03:45 +0100 | ADG1089__ | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 12:06:01 +0100 | merijn | (~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 +0100 | merijn | (~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 +0100 | mirrorbird | (~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 +0100 | tzlil | (~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 +0100 | tzlil | (~tzlil@unaffiliated/tzlil) |
2021-02-05 12:09:00 +0100 | <kuribas> | a prerequisite for correctness. |
2021-02-05 12:09:23 +0100 | DirefulSalt | (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 +0100 | mirrorbird | (~psutcliff@2a00:801:2d5:848b:590:cf4f:5eeb:b49d) |
2021-02-05 12:10:15 +0100 | DirefulSalt | (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 +0100 | nhs | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-05 12:12:20 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 12:14:16 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) |
2021-02-05 12:17:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-05 12:18:14 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 12:20:04 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:51a:84a8:6067:5428) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-05 12:21:13 +0100 | pedrohms | (~pedrohms@187.20.63.53) |
2021-02-05 12:21:55 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 12:22:06 +0100 | totoro2022 | (~t@unaffiliated/totoro2021) (Ping timeout: 246 seconds) |
2021-02-05 12:23:34 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-05 12:23:35 +0100 | totoro2022 | (~t@unaffiliated/totoro2021) |
2021-02-05 12:24:52 +0100 | pedrohms | (~pedrohms@187.20.63.53) (Quit: Leaving) |
2021-02-05 12:27:28 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds) |
2021-02-05 12:27:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-02-05 12:28:09 +0100 | pedrohms | (~pedrohms@187.20.63.53) |
2021-02-05 12:29:03 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 12:29:17 +0100 | acidjnk_new | (~acidjnk@p200300d0c722c49675ee473ab8e6650f.dip0.t-ipconnect.de) |
2021-02-05 12:29:28 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 12:30:24 +0100 | mirrorbird | (~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 +0100 | pedrohms | (~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 +0100 | pedrohms | (~pedrohms@187.20.63.53) |
2021-02-05 12:32:55 +0100 | pedrosouza | (~pedrohms@187.20.63.53) |
2021-02-05 12:32:59 +0100 | pedrosouza | (~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 +0100 | tromp | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-05 12:35:04 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 12:36:38 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Quit: leaving) |
2021-02-05 12:37:57 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) |
2021-02-05 12:38:31 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 12:40:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-05 12:40:11 +0100 | michalz` | (~user@185.246.204.76) |
2021-02-05 12:40:40 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 12:40:56 +0100 | michalz | (~user@185.246.204.93) (Ping timeout: 240 seconds) |
2021-02-05 12:42:38 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Ping timeout: 264 seconds) |
2021-02-05 12:43:23 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds) |
2021-02-05 12:46:46 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) |
2021-02-05 12:47:14 +0100 | finn_elija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection) |
2021-02-05 12:47:29 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Read error: Connection reset by peer) |
2021-02-05 12:47:41 +0100 | finn_elija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
2021-02-05 12:47:47 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) |
2021-02-05 12:50:52 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-02-05 12:51:30 +0100 | ClaudiusMaximus | (~claude@191.123.199.146.dyn.plus.net) |
2021-02-05 12:51:38 +0100 | ClaudiusMaximus | (~claude@191.123.199.146.dyn.plus.net) (Changing host) |
2021-02-05 12:51:38 +0100 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) |
2021-02-05 12:51:52 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0) |
2021-02-05 12:51:52 +0100 | merijn | (~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 +0100 | thongpv87 | (~thongpv87@103.6.151.121) |
2021-02-05 12:54:27 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 12:56:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-05 12:56:48 +0100 | thongpv87 | (~thongpv87@103.6.151.121) (Client Quit) |
2021-02-05 12:57:06 +0100 | thongpv87 | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 12:59:12 +0100 | nhs | (~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 +0100 | coot | (~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 +0100 | ukari | (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
2021-02-05 13:01:50 +0100 | tromp | (~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 +0100 | ukari | (~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 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Read error: Connection reset by peer) |
2021-02-05 13:04:47 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) |
2021-02-05 13:07:07 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds) |
2021-02-05 13:07:09 +0100 | michalz` | (~user@185.246.204.76) (Ping timeout: 258 seconds) |
2021-02-05 13:07:48 +0100 | pera | (~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 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-05 13:11:07 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) |
2021-02-05 13:11:28 +0100 | nhs | (~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 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection) |
2021-02-05 13:14:51 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) |
2021-02-05 13:14:57 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) |
2021-02-05 13:15:18 +0100 | danza | (~francesco@151.53.69.219) (Ping timeout: 246 seconds) |
2021-02-05 13:15:19 +0100 | olligobber | (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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
2021-02-05 13:17:25 +0100 | hackage | hls-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 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:51a:84a8:6067:5428) |
2021-02-05 13:21:20 +0100 | ADG1089__ | (~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 +0100 | Tesseraction | (~Tesseract@unaffiliated/tesseraction) |
2021-02-05 13:24:07 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-05 13:24:22 +0100 | Narinas | (~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 +0100 | cfricke | (~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 +0100 | nhs | (~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 +0100 | nhs | (~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 +0100 | mouseghost | (~draco@87-206-9-185.dynamic.chello.pl) |
2021-02-05 13:36:03 +0100 | mouseghost | (~draco@87-206-9-185.dynamic.chello.pl) (Changing host) |
2021-02-05 13:36:03 +0100 | mouseghost | (~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 +0100 | mouseghost | desperek |
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 +0100 | danza | (~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 +0100 | j2t | (~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 +0100 | heatsink | (~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 +0100 | metreo | (~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 +0100 | okad1 | (~okad@ec2-18-135-78-237.eu-west-2.compute.amazonaws.com) (Quit: okad1) |
2021-02-05 13:42:47 +0100 | okad | (~okad@ec2-18-135-78-237.eu-west-2.compute.amazonaws.com) |
2021-02-05 13:43:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Ping timeout: 264 seconds) |
2021-02-05 13:43:15 +0100 | metro | (~Thunderbi@unaffiliated/metreo) |
2021-02-05 13:44:25 +0100 | metreo | (~Thunderbi@unaffiliated/metreo) (Ping timeout: 240 seconds) |
2021-02-05 13:44:25 +0100 | metro | metreo |
2021-02-05 13:44:55 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 13:46:32 +0100 | average | (uid473595@gateway/web/irccloud.com/x-skfvagfqkixoxjjm) |
2021-02-05 13:46:40 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-05 13:47:24 +0100 | hackage | histogram-simple 1.0 - Simple Data.Map-based histogram https://hackage.haskell.org/package/histogram-simple-1.0 (jonascarpay) |
2021-02-05 13:47:25 +0100 | zebrag | (~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 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) |
2021-02-05 13:49:36 +0100 | nhs | (~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 +0100 | machinedgod | (~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 +0100 | hackage | bound 2.0.3 - Making de Bruijn Succ Less https://hackage.haskell.org/package/bound-2.0.3 (ryanglscott) |
2021-02-05 13:52:10 +0100 | shatriff | (~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 +0100 | LKoen_ | (~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 +0100 | xsperry | (~as@unaffiliated/xsperry) (Disconnected by services) |
2021-02-05 13:56:26 +0100 | fendor_ | (~fendor@178.115.130.101.wireless.dyn.drei.com) |
2021-02-05 13:56:38 +0100 | fendor | (~fendor@178.115.130.101.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-02-05 13:56:38 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Client Quit) |
2021-02-05 13:56:39 +0100 | xsperry | (~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 +0100 | merijn | will never give up on his Quixotic quest to make the FP world capitalise De Bruijn properly |
2021-02-05 13:58:32 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:51a:84a8:6067:5428) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-05 13:59:07 +0100 | LKoen | (~LKoen@252.248.88.92.rev.sfr.net) (Ping timeout: 276 seconds) |
2021-02-05 14:00:56 +0100 | nhs | (~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 +0100 | nhs | (~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 +0100 | brainfunnel | (~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 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) (Remote host closed the connection) |
2021-02-05 14:07:18 +0100 | nek0 | (~nek0@mail.nek0.eu) (Remote host closed the connection) |
2021-02-05 14:07:21 +0100 | o1lo01ol1o | (~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 +0100 | o1lo01ol1o | (~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 +0100 | tromp | (~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 +0100 | carlomagno1 | (~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 +0100 | hekkaidekapus] | (~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 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) |
2021-02-05 14:13:55 +0100 | knu42 | (577bcec7@gateway/web/cgi-irc/kiwiirc.com/ip.87.123.206.199) (Quit: Connection closed) |
2021-02-05 14:13:56 +0100 | carlomagno | (~cararell@148.87.23.9) (Ping timeout: 240 seconds) |
2021-02-05 14:14:44 +0100 | hekkaidekapus[ | (~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 +0100 | shatriff | (~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 +0100 | urodna | (~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 +0100 | gxt | (~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 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 264 seconds) |
2021-02-05 14:24:43 +0100 | geekosaur | (82650c7c@130.101.12.124) |
2021-02-05 14:26:42 +0100 | finn_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 +0100 | finn_elija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
2021-02-05 14:28:16 +0100 | todda7 | (~torstein@2a02:587:1b14:d00:5ec3:abec:812c:b3e2) (Remote host closed the connection) |
2021-02-05 14:29:31 +0100 | son0p | (~son0p@181.58.39.182) (Quit: Lost terminal) |
2021-02-05 14:29:46 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 14:30:25 +0100 | danza | (~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 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:51a:84a8:6067:5428) |
2021-02-05 14:34:15 +0100 | metreo | (~Thunderbi@unaffiliated/metreo) (Quit: metreo) |
2021-02-05 14:34:35 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-05 14:34:48 +0100 | metreo | (~Thunderbi@unaffiliated/metreo) |
2021-02-05 14:36:20 +0100 | <merijn> | Such is the world of open source |
2021-02-05 14:37:21 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
2021-02-05 14:37:38 +0100 | alx741 | (~alx741@186.178.110.33) |
2021-02-05 14:37:56 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) |
2021-02-05 14:38:01 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-05 14:38:15 +0100 | hiroaki | (~hiroaki@ip4d17613f.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds) |
2021-02-05 14:39:22 +0100 | heatsink | (~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 +0100 | acarrico | (~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 +0100 | Martinsos | (~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 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Ping timeout: 264 seconds) |
2021-02-05 14:45:15 +0100 | nek0 | (~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 +0100 | LKoen_ | (~LKoen@252.248.88.92.rev.sfr.net) (Remote host closed the connection) |
2021-02-05 14:47:25 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-05 14:47:40 +0100 | nhs | (~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 +0100 | zebrag | (~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 +0100 | urodna | (~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 +0100 | hiroaki | (~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 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2021-02-05 14:53:04 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds) |
2021-02-05 14:53:32 +0100 | mattl1 | (~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 +0100 | desperek | (~draco@wikipedia/desperek) (Quit: mew wew) |
2021-02-05 14:56:32 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2021-02-05 14:59:32 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-05 14:59:35 +0100 | hyperisco | (~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 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-05 15:03:58 +0100 | berberman | (~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 +0100 | nhs | (~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 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) (Remote host closed the connection) |
2021-02-05 15:05:37 +0100 | toorevitimirp | (~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 +0100 | jamm_ | (~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 +0100 | ski | sighs |
2021-02-05 15:06:42 +0100 | <aveltras> | basically, user here is only some kind of blueprint |
2021-02-05 15:06:54 +0100 | usr25 | (~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 +0100 | nhs | (~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 +0100 | vilpan | (~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 +0100 | geekosaur | (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 +0100 | geekosaur | (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 +0100 | son0p | (~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 +0100 | nhs | (~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 +0100 | zebrag | (~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 +0100 | zebrag | (~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 +0100 | nhs | (~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 +0100 | Guest_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 +0100 | nineonine | (~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 +0100 | Major_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 +0100 | da39a3ee5e6b4b0d | (~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 +0100 | nineonine | (~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 +0100 | ski | would 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 +0100 | Natch | (~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 +0100 | nhs | (~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 +0100 | Natch | (~Natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) |
2021-02-05 15:41:25 +0100 | nhs | (~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 +0100 | LKoen | (~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 +0100 | Guest_44 | (7da1814b@125.161.129.75) (Quit: Ping timeout (120 seconds)) |
2021-02-05 15:43:04 +0100 | ski | blinks |
2021-02-05 15:43:32 +0100 | geekosaur | (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 +0100 | Guest_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 +0100 | da39a3ee5e6b4b0d | (~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 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-05 15:48:11 +0100 | Major_Biscuit | (~Major_Bis@82-169-100-198.biz.kpn.net) |
2021-02-05 15:48:58 +0100 | hoobop1 | (~hoobop@217.146.82.202) |
2021-02-05 15:49:05 +0100 | jil | (~user@45.86.162.6) |
2021-02-05 15:51:15 +0100 | raym | (~ray@45.64.220.139) (Quit: leaving) |
2021-02-05 15:51:32 +0100 | raym | (~ray@45.64.220.139) |
2021-02-05 15:52:59 +0100 | nhs | (~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 +0100 | Guest14662 | (~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 +0100 | hive-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 +0100 | hive-mind | (~hivemind@rrcs-67-53-148-69.west.biz.rr.com) |
2021-02-05 15:57:25 +0100 | nhs | (~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 +0100 | ski | idly 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 +0100 | Guest14662 | (~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 +0100 | Sgeo | (~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 +0100 | dwt | (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 272 seconds) |
2021-02-05 16:03:39 +0100 | denisse | (~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 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) |
2021-02-05 16:04:19 +0100 | ArConan | (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 +0100 | BrianZ | (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 +0100 | nhs | (~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 +0100 | marle | (574849fe@87.72.73.254) |
2021-02-05 16:10:38 +0100 | ArConan | (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 +0100 | itai | (~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 +0100 | Jd007 | (~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 +0100 | nhs | (~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 +0100 | Wuzzy | (~Wuzzy@p57a2e44e.dip0.t-ipconnect.de) |
2021-02-05 16:15:15 +0100 | itai | (~itai@87.70.56.140) (Remote host closed the connection) |
2021-02-05 16:15:27 +0100 | berberman | (~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 +0100 | berberman | (~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 +0100 | berberman | (~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 +0100 | berberman | (~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 +0100 | Sheilong | (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 +0100 | Guest_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 +0100 | Deide | (~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 +0100 | Guest_44 | (7da1814b@125.161.129.75) |
2021-02-05 16:21:06 +0100 | berberman | (~berberman@unaffiliated/berberman) (Max SendQ exceeded) |
2021-02-05 16:21:44 +0100 | berberman | (~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 +0100 | ski | glances around nervously |
2021-02-05 16:22:35 +0100 | berberman | (~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 +0100 | berberman | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 16:26:56 +0100 | ski | may 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 +0100 | LKoen | (~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 +0100 | jamm_ | (~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 +0100 | LKoen | (~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 +0100 | nineonine | (~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 +0100 | toorevitimirp | (~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 +0100 | nhs | (~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 +0100 | hackage | hedgehog-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 +0100 | nineonine | (~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 +0100 | nineonine | (~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 +0100 | nineonine | (~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 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
2021-02-05 16:37:36 +0100 | berberman | (~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 +0100 | berberman | (~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 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) |
2021-02-05 16:41:04 +0100 | Guest_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 +0100 | acarrico | (~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 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 258 seconds) |
2021-02-05 16:41:50 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 16:42:10 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-02-05 16:42:24 +0100 | <ski> | > foldr (*) 1 [a,b,c,d] |
2021-02-05 16:42:24 +0100 | ski | (~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 +0100 | ystael | (~ystael@209.6.50.55) (Quit: Lost terminal) |
2021-02-05 16:42:54 +0100 | ski | (~ski@m-1163-19.studat.chalmers.se) |
2021-02-05 16:42:55 +0100 | mouseghost | (~draco@wikipedia/desperek) |
2021-02-05 16:42:56 +0100 | ski | sighs |
2021-02-05 16:43:01 +0100 | ChanServ | +o ski |
2021-02-05 16:43:15 +0100 | ski | ski_ |
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 +0100 | LKoen | (~LKoen@252.248.88.92.rev.sfr.net) (Read error: Connection reset by peer) |
2021-02-05 16:44:13 +0100 | berberman | (~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 +0100 | ski | (~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 +0100 | LKoen | (~LKoen@252.248.88.92.rev.sfr.net) |
2021-02-05 16:45:38 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Ping timeout: 264 seconds) |
2021-02-05 16:45:38 +0100 | guest7682358928 | (c9dbe9a1@gateway/web/cgi-irc/kiwiirc.com/ip.201.219.233.161) |
2021-02-05 16:45:53 +0100 | ski_ | (~ski@m-1163-19.studat.chalmers.se) (Client Quit) |
2021-02-05 16:46:13 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2021-02-05 16:46:28 +0100 | ystael | (~ystael@209.6.50.55) |
2021-02-05 16:46:50 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
2021-02-05 16:47:01 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-05 16:47:12 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-02-05 16:47:16 +0100 | justsomeguy | (~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 +0100 | berberman | (~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 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-02-05 16:49:10 +0100 | <jil> | why ij yiked ? |
2021-02-05 16:49:31 +0100 | rople | (~rople@2001:8003:d44b:300:ac2a:fb0f:6f96:d286) |
2021-02-05 16:50:17 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-05 16:51:45 +0100 | mnrmnaugh | (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds) |
2021-02-05 16:51:58 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 16:53:37 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-05 16:54:12 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 16:55:01 +0100 | brainfunnel_ | (~quassel@96.223.198.146.dyn.plus.net) |
2021-02-05 16:56:56 +0100 | livvy | (~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 +0100 | brainfunnel | (~quassel@12.23.199.146.dyn.plus.net) (Ping timeout: 256 seconds) |
2021-02-05 16:58:07 +0100 | rople | (~rople@2001:8003:d44b:300:ac2a:fb0f:6f96:d286) (Quit: rople) |
2021-02-05 16:58:20 +0100 | brainfunnel | (~quassel@224.142.208.46.dyn.plus.net) |
2021-02-05 16:58:38 +0100 | rople | (~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 +0100 | rople | (~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 +0100 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection) |
2021-02-05 16:59:24 +0100 | hackage | rpmbuild-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 +0100 | LKoen | (~LKoen@252.248.88.92.rev.sfr.net) (Read error: Connection reset by peer) |
2021-02-05 16:59:44 +0100 | rople | (~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 +0100 | LKoen | (~LKoen@252.248.88.92.rev.sfr.net) |
2021-02-05 17:00:34 +0100 | rople | (~rople@2001:8003:d44b:300:ac2a:fb0f:6f96:d286) (Client Quit) |
2021-02-05 17:00:57 +0100 | rople | (~rople@2001:8003:d44b:300:ac2a:fb0f:6f96:d286) |
2021-02-05 17:01:24 +0100 | mnrmnaugh | (~mnrmnaugh@unaffiliated/mnrmnaugh) |
2021-02-05 17:01:45 +0100 | brainfunnel_ | (~quassel@96.223.198.146.dyn.plus.net) (Ping timeout: 264 seconds) |
2021-02-05 17:02:19 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Read error: Connection reset by peer) |
2021-02-05 17:02:31 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
2021-02-05 17:03:48 +0100 | usr25 | (~J@48.red-83-43-188.dynamicip.rima-tde.net) (Quit: Bye) |
2021-02-05 17:05:33 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Quit: leaving) |
2021-02-05 17:06:03 +0100 | Franciman | (~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving) |
2021-02-05 17:09:11 +0100 | shiraeeshi | (~shiraeesh@109.166.56.99) |
2021-02-05 17:09:38 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) |
2021-02-05 17:12:32 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-02-05 17:12:33 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) |
2021-02-05 17:13:05 +0100 | marle | (574849fe@87.72.73.254) (Quit: Connection closed) |
2021-02-05 17:13:27 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:51a:84a8:6067:5428) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-05 17:13:38 +0100 | borne | (~fritjof@200116b8645bf50038baae9ec143df07.dip.versatel-1u1.de) (Ping timeout: 258 seconds) |
2021-02-05 17:13:55 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection) |
2021-02-05 17:14:40 +0100 | LKoen | (~LKoen@252.248.88.92.rev.sfr.net) (Read error: Connection reset by peer) |
2021-02-05 17:14:57 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) |
2021-02-05 17:16:03 +0100 | LKoen | (~LKoen@252.248.88.92.rev.sfr.net) |
2021-02-05 17:19:23 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 258 seconds) |
2021-02-05 17:20:20 +0100 | alx741 | (~alx741@186.178.110.33) (Quit: alx741) |
2021-02-05 17:20:49 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-02-05 17:25:08 +0100 | jamm_ | (~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 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969) |
2021-02-05 17:27:39 +0100 | Zetagon | (~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection) |
2021-02-05 17:28:48 +0100 | conal | (~conal@64.71.133.70) |
2021-02-05 17:28:53 +0100 | metreo | (~Thunderbi@unaffiliated/metreo) (Quit: metreo) |
2021-02-05 17:29:15 +0100 | LKoen | (~LKoen@252.248.88.92.rev.sfr.net) (Read error: Connection reset by peer) |
2021-02-05 17:30:53 +0100 | acidjnk_new | (~acidjnk@p200300d0c722c49675ee473ab8e6650f.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-02-05 17:30:55 +0100 | LKoen | (~LKoen@252.248.88.92.rev.sfr.net) |
2021-02-05 17:31:25 +0100 | hackage | lifetimes 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 +0100 | LKoen | (~LKoen@252.248.88.92.rev.sfr.net) (Remote host closed the connection) |
2021-02-05 17:35:57 +0100 | haritz | (~hrtz@unaffiliated/haritz) (Ping timeout: 264 seconds) |
2021-02-05 17:36:32 +0100 | david__ | (~david@234.109.45.217.dyn.plus.net) |
2021-02-05 17:36:57 +0100 | DavidEichmann | (~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 +0100 | haritz | (~hrtz@62.3.70.206) |
2021-02-05 17:38:41 +0100 | haritz | (~hrtz@62.3.70.206) (Changing host) |
2021-02-05 17:38:41 +0100 | haritz | (~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 +0100 | nineonine | (~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 +0100 | ulidtko | (~ulidtko@31.133.98.234) |
2021-02-05 17:48:21 +0100 | Saukk | (~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 +0100 | DTZUZU | (~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 +0100 | DTZUZU | (~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 +0100 | elfets | (~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 +0100 | LKoen | (~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 +0100 | hackage | stack-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 +0100 | oreoking[m]1 | (oreokingma@gateway/shell/matrix.org/x-jcusdubzyhittdzg) |
2021-02-05 17:56:54 +0100 | hackage | data-fix 0.3.1 - Fixpoint data types https://hackage.haskell.org/package/data-fix-0.3.1 (AntonKholomiov) |
2021-02-05 17:57:10 +0100 | borne | (~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 +0100 | jamm_ | (~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 +0100 | Kaivo | (~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 +0100 | jamm_ | (~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 +0100 | chele | (~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 +0100 | hnOsmium0001 | (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 +0100 | soft-warm | (4408f588@ip68-8-245-136.sd.sd.cox.net) |
2021-02-05 18:07:28 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-05 18:08:34 +0100 | poljar1 | (~poljar@93-143-136-208.adsl.net.t-com.hr) |
2021-02-05 18:09:40 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-02-05 18:10:36 +0100 | poljar | (~poljar@78-3-15-134.adsl.net.t-com.hr) (Ping timeout: 240 seconds) |
2021-02-05 18:11:20 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:a0fa:861f:7d78:346f) |
2021-02-05 18:11:42 +0100 | soft-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 +0100 | geekosaur | (82650c7c@130.101.12.124) |
2021-02-05 18:14:06 +0100 | conal | (~conal@64.71.133.70) |
2021-02-05 18:14:16 +0100 | alx741 | (~alx741@186.178.110.33) |
2021-02-05 18:14:50 +0100 | jollygood2 | (~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 +0100 | soft-warm | (4408f588@ip68-8-245-136.sd.sd.cox.net) |
2021-02-05 18:16:45 +0100 | michalz | (~user@185.246.204.49) |
2021-02-05 18:16:50 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-02-05 18:17:20 +0100 | michalz | (~user@185.246.204.49) (Client Quit) |
2021-02-05 18:18:02 +0100 | michalz | (~user@185.246.204.48) |
2021-02-05 18:18:04 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-05 18:18:32 +0100 | pedrohms | (~pedrohms@187.20.63.53) (Read error: Connection reset by peer) |
2021-02-05 18:19:04 +0100 | rople | (~rople@2001:8003:d44b:300:ac2a:fb0f:6f96:d286) (Ping timeout: 240 seconds) |
2021-02-05 18:20:48 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-khjufreymueqbnyt) (Quit: Connection closed for inactivity) |
2021-02-05 18:20:53 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection) |
2021-02-05 18:20:58 +0100 | mmmattyx | (uid17782@gateway/web/irccloud.com/x-lvhktabkcjtcvpoe) |
2021-02-05 18:22:42 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) |
2021-02-05 18:22:53 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
2021-02-05 18:22:53 +0100 | neiluj | (~jco@unaffiliated/neiluj) |
2021-02-05 18:24:23 +0100 | kuribas | (~user@ptr-25vy0i8mp067j44c045.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-02-05 18:25:51 +0100 | coot | (~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 +0100 | NinjaTrappeur | (~ninja@unaffiliated/ninjatrappeur) (Ping timeout: 260 seconds) |
2021-02-05 18:28:25 +0100 | NinjaTrappeur | (~ninja@unaffiliated/ninjatrappeur) |
2021-02-05 18:29:39 +0100 | hexfive | (~hexfive@50.35.83.177) |
2021-02-05 18:31:49 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2021-02-05 18:32:04 +0100 | ulidtko | (~ulidtko@31.133.98.234) (Ping timeout: 256 seconds) |
2021-02-05 18:32:15 +0100 | ulidtko | (~ulidtko@31.133.98.234) |
2021-02-05 18:37:47 +0100 | kipras | (~Kipras@78-56-235-39.static.zebra.lt) |
2021-02-05 18:44:14 +0100 | neiluj | (~jco@unaffiliated/neiluj) (Quit: leaving) |
2021-02-05 18:46:45 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
2021-02-05 18:48:16 +0100 | rj | (~x@204.48.95.43) |
2021-02-05 18:49:18 +0100 | vicfred | (vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving) |
2021-02-05 18:51:24 +0100 | nineonin_ | (~nineonine@50.216.62.2) |
2021-02-05 18:52:22 +0100 | adziahel[m] | (adziahelma@gateway/shell/matrix.org/x-lyfahhmkhzdtqzhg) |
2021-02-05 18:52:24 +0100 | unlink2 | (~unlink2@p57b854e0.dip0.t-ipconnect.de) |
2021-02-05 18:52:37 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) |
2021-02-05 18:52:37 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
2021-02-05 18:52:37 +0100 | neiluj | (~jco@unaffiliated/neiluj) |
2021-02-05 18:52:53 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:b847:1240:2a37:515e) (Ping timeout: 265 seconds) |
2021-02-05 18:54:14 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2021-02-05 18:54:27 +0100 | unlink_ | (~unlink2@p200300ebcf12ea00013250d6b4625a26.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-02-05 18:55:36 +0100 | xff0x_ | (~xff0x@2001:1a81:520c:9300:d376:a5ba:ccb8:29d) (Ping timeout: 258 seconds) |
2021-02-05 18:57:32 +0100 | xff0x_ | (xff0x@gateway/vpn/mullvad/xff0x) |
2021-02-05 18:58:00 +0100 | unlink2 | (~unlink2@p57b854e0.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2021-02-05 18:59:01 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 268 seconds) |
2021-02-05 19:00:25 +0100 | unlink2 | (~unlink2@p57b85146.dip0.t-ipconnect.de) |
2021-02-05 19:00:30 +0100 | vgtw_ | (~vgtw@gateway/tor-sasl/vgtw) |
2021-02-05 19:00:51 +0100 | sord937 | (~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 +0100 | borne | (~fritjof@2a06:8782:ffbb:1337:a53:e188:6f13:d1a) (Ping timeout: 246 seconds) |
2021-02-05 19:01:29 +0100 | vgtw | (~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 268 seconds) |
2021-02-05 19:01:30 +0100 | vgtw_ | vgtw |
2021-02-05 19:02:21 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-05 19:04:18 +0100 | pgib | (~textual@lmms/pgib) |
2021-02-05 19:04:25 +0100 | livvy | (~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 +0100 | todda7 | (~torstein@2a02:587:1b14:d00:5ec3:abec:812c:b3e2) |
2021-02-05 19:05:59 +0100 | dyeplexer | (~lol@unaffiliated/terpin) (Remote host closed the connection) |
2021-02-05 19:06:07 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-05 19:06:58 +0100 | enya[m] | (enyaismatr@gateway/shell/matrix.org/x-gzvrhyhbwatwuwxi) |
2021-02-05 19:06:59 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-05 19:07:12 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-05 19:07:58 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-dwqapemjrwbgflyv) (Quit: Connection closed for inactivity) |
2021-02-05 19:09:06 +0100 | metreo | (~Thunderbi@unaffiliated/metreo) |
2021-02-05 19:09:45 +0100 | xff0x_ | (xff0x@gateway/vpn/mullvad/xff0x) (Ping timeout: 240 seconds) |
2021-02-05 19:10:09 +0100 | Major_Biscuit | (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 264 seconds) |
2021-02-05 19:11:45 +0100 | xff0x_ | (~xff0x@2001:1a81:520c:9300:d376:a5ba:ccb8:29d) |
2021-02-05 19:12:35 +0100 | neiluj_ | (~jco@static.15.144.181.135.clients.your-server.de) |
2021-02-05 19:13:08 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0) |
2021-02-05 19:13:16 +0100 | neiluj_ | (~jco@static.15.144.181.135.clients.your-server.de) (Client Quit) |
2021-02-05 19:13:17 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2021-02-05 19:13:34 +0100 | neiluj_ | (~jco@static.15.144.181.135.clients.your-server.de) |
2021-02-05 19:13:52 +0100 | neiluj | (~jco@unaffiliated/neiluj) (Quit: leaving) |
2021-02-05 19:14:04 +0100 | neiluj_ | (~jco@static.15.144.181.135.clients.your-server.de) (Client Quit) |
2021-02-05 19:14:25 +0100 | neiluj | (~jco@static.15.144.181.135.clients.your-server.de) |
2021-02-05 19:14:26 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-05 19:15:04 +0100 | neiluj | (~jco@static.15.144.181.135.clients.your-server.de) (Changing host) |
2021-02-05 19:15:04 +0100 | neiluj | (~jco@unaffiliated/neiluj) |
2021-02-05 19:15:05 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-05 19:15:09 +0100 | tzlil | (~tzlil@unaffiliated/tzlil) (Ping timeout: 258 seconds) |
2021-02-05 19:15:20 +0100 | tzlil | (~tzlil@unaffiliated/tzlil) |
2021-02-05 19:15:32 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit) |
2021-02-05 19:16:21 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-05 19:16:46 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-vwnihuzeelxrmxkz) |
2021-02-05 19:18:11 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969) (Remote host closed the connection) |
2021-02-05 19:19:59 +0100 | hekkaidekapus] | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
2021-02-05 19:21:19 +0100 | kipras | (~Kipras@78-56-235-39.static.zebra.lt) (Remote host closed the connection) |
2021-02-05 19:21:43 +0100 | kipras | (~Kipras@78-56-235-39.static.zebra.lt) |
2021-02-05 19:23:09 +0100 | hiroaki | (~hiroaki@ip4d17613f.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds) |
2021-02-05 19:24:07 +0100 | hekkaidekapus] | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-05 19:26:00 +0100 | MasseR | (~MasseR@51.15.143.128) (Quit: The Lounge - https://thelounge.chat) |
2021-02-05 19:26:31 +0100 | MasseR | (~MasseR@51.15.143.128) |
2021-02-05 19:28:11 +0100 | LKoen | (~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 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-nfduencpjwoeibog) |
2021-02-05 19:31:45 +0100 | rj | (~x@204.48.95.43) (Quit: rj) |
2021-02-05 19:32:05 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 246 seconds) |
2021-02-05 19:32:49 +0100 | brisbin | (~patrick@vps.nighter.se) |
2021-02-05 19:32:59 +0100 | jesser[m] | (jessermatr@gateway/shell/matrix.org/x-dbgtrdoqxzqcpezr) |
2021-02-05 19:34:25 +0100 | brisbin | (~patrick@vps.nighter.se) (Client Quit) |
2021-02-05 19:35:42 +0100 | merijn | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 19:38:49 +0100 | rj | (~x@gateway/tor-sasl/rj) |
2021-02-05 19:39:05 +0100 | kipras | (~Kipras@78-56-235-39.static.zebra.lt) (Read error: Connection reset by peer) |
2021-02-05 19:40:05 +0100 | j2t | (~user@84.122.202.215.dyn.user.ono.com) |
2021-02-05 19:42:03 +0100 | merijn | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 19:43:01 +0100 | <ph88^> | thanks sm :) |
2021-02-05 19:44:41 +0100 | Arguggi | (~Arguggi__@arguggi-do.arguggi.co.uk) (Quit: Bye) |
2021-02-05 19:48:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-05 19:48:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 19:50:35 +0100 | harovali | (~user@r167-56-43-57.dialup.adsl.anteldata.net.uy) |
2021-02-05 19:51:41 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-05 19:53:16 +0100 | Arguggi | (~Arguggi__@arguggi-do.arguggi.co.uk) |
2021-02-05 19:54:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-02-05 19:54:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 19:55:07 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) |
2021-02-05 19:55:19 +0100 | alx741 | (~alx741@186.178.110.33) (Ping timeout: 276 seconds) |
2021-02-05 19:55:50 +0100 | Yumasi | (~guillaume@2a01:e0a:5cb:4430:e2bc:3fed:317c:3efb) (Ping timeout: 264 seconds) |
2021-02-05 20:00:22 +0100 | geekosaur | (82650c7c@130.101.12.124) (Ping timeout: 240 seconds) |
2021-02-05 20:00:23 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-02-05 20:01:31 +0100 | rj | (~x@gateway/tor-sasl/rj) (Quit: rj) |
2021-02-05 20:01:48 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-05 20:02:16 +0100 | <ski> | jil : yw :) |
2021-02-05 20:03:29 +0100 | berberman_ | (~berberman@unaffiliated/berberman) |
2021-02-05 20:03:34 +0100 | rj | (~x@gateway/tor-sasl/rj) |
2021-02-05 20:04:47 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
2021-02-05 20:05:04 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 276 seconds) |
2021-02-05 20:05:04 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-05 20:05:11 +0100 | rj | (~x@gateway/tor-sasl/rj) (Client Quit) |
2021-02-05 20:05:20 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-05 20:05:25 +0100 | kupi | (uid212005@gateway/web/irccloud.com/x-aaegxzeymcrafmxs) |
2021-02-05 20:05:25 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-05 20:05:37 +0100 | Narinas | (~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 +0100 | alx741 | (~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 +0100 | Kaivo | (~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 +0100 | guest7682358928 | (c9dbe9a1@gateway/web/cgi-irc/kiwiirc.com/ip.201.219.233.161) (Ping timeout: 265 seconds) |
2021-02-05 20:10:04 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 20:10:45 +0100 | Rudd0 | (~Rudd0@185.189.115.103) (Ping timeout: 240 seconds) |
2021-02-05 20:10:55 +0100 | my_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 +0100 | elliott_ | (~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 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-02-05 20:15:55 +0100 | jpds | (~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 +0100 | jpds | (~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 +0100 | nhs | (~nhs@c-71-238-81-158.hsd1.or.comcast.net) |
2021-02-05 20:18:44 +0100 | heatsink | (~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 +0100 | Tops2 | (~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 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969) (Ping timeout: 258 seconds) |
2021-02-05 20:24:45 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-05 20:25:54 +0100 | pgib | (~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 +0100 | soft-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 +0100 | soft-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 +0100 | jpds | (~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 +0100 | geekosaur | (82650c7c@130.101.12.124) |
2021-02-05 20:30:02 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-02-05 20:30:24 +0100 | mmmattyx | (uid17782@gateway/web/irccloud.com/x-lvhktabkcjtcvpoe) (Quit: Connection closed for inactivity) |
2021-02-05 20:36:04 +0100 | ulidtko | (~ulidtko@31.133.98.234) (Quit: FIN) |
2021-02-05 20:36:24 +0100 | hackage | product-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 +0100 | harovali | (~user@r167-56-43-57.dialup.adsl.anteldata.net.uy) ("ERC (IRC client for Emacs 27.1)") |
2021-02-05 20:37:42 +0100 | Arguggi | (~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 +0100 | geekosaur | (82650c7c@130.101.12.124) (Quit: Ping timeout (120 seconds)) |
2021-02-05 20:42:08 +0100 | soft-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 +0100 | geekosaur | (82650c7c@130.101.12.124) |
2021-02-05 20:43:11 +0100 | <exarkun> | I can try, anyway |
2021-02-05 20:44:25 +0100 | conal | (~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 +0100 | conal | (~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 +0100 | ixaxaar | (~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 +0100 | acidjnk_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 +0100 | fendor_ | (~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 +0100 | exarkun | nods |
2021-02-05 20:58:28 +0100 | fendor | (~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 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0.1) |
2021-02-05 21:02:47 +0100 | tsrt^ | (tsrt@ip98-184-89-2.mc.at.cox.net) () |
2021-02-05 21:03:00 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-02-05 21:03:22 +0100 | jpds | (~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 +0100 | geyaeb_ | (~geyaeb@gateway/tor-sasl/geyaeb) |
2021-02-05 21:11:33 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
2021-02-05 21:11:49 +0100 | shatriff | (~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 +0100 | geyaeb | (~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 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 21:17:08 +0100 | soft-warm | (4408f588@ip68-8-245-136.sd.sd.cox.net) |
2021-02-05 21:17:45 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-02-05 21:18:39 +0100 | elfets_ | (~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 +0100 | elfets | (~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 +0100 | nbloomf | (~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 +0100 | nbloomf | (~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 +0100 | heatsink | (~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 +0100 | dwt | (~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 +0100 | napping | (~brandon@174-20-93-137.mpls.qwest.net) |
2021-02-05 21:32:12 +0100 | star_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 +0100 | o1lo01ol1o | (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection) |
2021-02-05 21:32:29 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-02-05 21:32:46 +0100 | conal | (~conal@194.180.179.172) (Quit: Computer has gone to sleep.) |
2021-02-05 21:34:12 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-05 21:34:37 +0100 | tromp | (~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 +0100 | conal | (~conal@64.71.133.70) |
2021-02-05 21:42:30 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
2021-02-05 21:42:31 +0100 | Quarl | (~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 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-02-05 21:44:19 +0100 | erh^ | (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 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-05 21:47:46 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-05 21:49:06 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969) (Remote host closed the connection) |
2021-02-05 21:51:30 +0100 | lockdown | (~lockdown@unaffiliated/lockdown) (Quit: leaving) |
2021-02-05 21:52:03 +0100 | mnrmnaugh | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-02-05 22:08:28 +0100 | mnrmnaugh | (~mnrmnaugh@unaffiliated/mnrmnaugh) |
2021-02-05 22:08:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 22:09:54 +0100 | hackage | differential 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 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969) |
2021-02-05 22:11:52 +0100 | acidjnk_new | (~acidjnk@p200300d0c722c49675ee473ab8e6650f.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-02-05 22:14:08 +0100 | son0p | (~son0p@181.58.39.182) (Quit: leaving) |
2021-02-05 22:15:59 +0100 | o1lo01ol1o | (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) |
2021-02-05 22:17:36 +0100 | rj | (~x@gateway/tor-sasl/rj) |
2021-02-05 22:18:36 +0100 | jle` | (~mstksg@unaffiliated/mstksg) (Ping timeout: 240 seconds) |
2021-02-05 22:20:05 +0100 | charukiewicz | (~charukiew@irouteince04.i.subnet.rcn.com) |
2021-02-05 22:20:15 +0100 | o1lo01ol1o | (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 246 seconds) |
2021-02-05 22:22:27 +0100 | d3od | (~nickmeno3@78-1-81-107.adsl.net.t-com.hr) |
2021-02-05 22:22:42 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969) (Remote host closed the connection) |
2021-02-05 22:23:50 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Ping timeout: 256 seconds) |
2021-02-05 22:23:59 +0100 | fendor_ | (~fendor@178.165.131.204.wireless.dyn.drei.com) |
2021-02-05 22:24:15 +0100 | qwerty2o | (~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 +0100 | nhs | (~nhs@c-71-238-81-158.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-05 22:26:00 +0100 | ski | glances around nervously |
2021-02-05 22:26:56 +0100 | rj | (~x@gateway/tor-sasl/rj) (Quit: rj) |
2021-02-05 22:27:33 +0100 | fendor | (~fendor@178.115.130.101.wireless.dyn.drei.com) (Ping timeout: 264 seconds) |
2021-02-05 22:28:04 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 268 seconds) |
2021-02-05 22:28:24 +0100 | rj | (~x@gateway/tor-sasl/rj) |
2021-02-05 22:30:29 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) |
2021-02-05 22:31:35 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0) |
2021-02-05 22:32:32 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-05 22:33:19 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core) |
2021-02-05 22:33:38 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-02-05 22:35:21 +0100 | hoobop1 | (~hoobop@217.146.82.202) (Remote host closed the connection) |
2021-02-05 22:36:48 +0100 | nhs | (~nhs@c-71-238-81-158.hsd1.or.comcast.net) |
2021-02-05 22:37:33 +0100 | o1lo01ol1o | (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) |
2021-02-05 22:39:14 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-02-05 22:39:39 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-02-05 22:40:04 +0100 | peeja | (~peeja@s91904426.blix.com) |
2021-02-05 22:40:49 +0100 | nineonin_ | (~nineonine@50.216.62.2) (Ping timeout: 265 seconds) |
2021-02-05 22:40:50 +0100 | Anandamide | (49a90352@c-73-169-3-82.hsd1.co.comcast.net) |
2021-02-05 22:40:54 +0100 | hackage | persistent-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 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-05 22:41:15 +0100 | ski | looks 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 +0100 | Anandamide22 | (49a90352@c-73-169-3-82.hsd1.co.comcast.net) |
2021-02-05 22:43:02 +0100 | raehik | (~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 +0100 | son0p | (~son0p@181.136.122.143) |
2021-02-05 22:43:24 +0100 | Anandamide22 | (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 +0100 | Kipras_ | (~Kipras@78-56-235-39.static.zebra.lt) |
2021-02-05 22:45:22 +0100 | ski | idly 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 +0100 | chenshen | (~chenshen@2620:10d:c090:400::5:ccd9) |
2021-02-05 22:47:32 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-05 22:48:41 +0100 | geekosaur | (82650c7c@130.101.12.124) (Quit: Connection closed) |
2021-02-05 22:49:55 +0100 | hackage | unix-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 +0100 | conal | (~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 +0100 | raehik | (~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 +0100 | raehik | (~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 +0100 | conal | (~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 +0100 | Varis | (~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 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit) |
2021-02-05 22:59:18 +0100 | raehik | (~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 +0100 | Rudd0 | (~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 +0100 | hackage | tasty-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 +0100 | j2t | (~user@84.122.202.215.dyn.user.ono.com) (Ping timeout: 246 seconds) |
2021-02-05 23:06:31 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2021-02-05 23:06:56 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-02-05 23:07:25 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-05 23:10:39 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
2021-02-05 23:12:26 +0100 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) |
2021-02-05 23:12:26 +0100 | jle` | (~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host) |
2021-02-05 23:12:26 +0100 | jle` | (~mstksg@unaffiliated/mstksg) |
2021-02-05 23:12:37 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-05 23:14:22 +0100 | nineonine | (~nineonine@50.216.62.2) |
2021-02-05 23:14:58 +0100 | stef204 | (~stef204@unaffiliated/stef-204/x-384198) |
2021-02-05 23:15:23 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 23:16:04 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit) |
2021-02-05 23:16:05 +0100 | d3od | (~nickmeno3@78-1-81-107.adsl.net.t-com.hr) (Ping timeout: 240 seconds) |
2021-02-05 23:16:52 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-05 23:17:02 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Ping timeout: 258 seconds) |
2021-02-05 23:19:56 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-05 23:20:34 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-02-05 23:23:06 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969) |
2021-02-05 23:23:53 +0100 | miguel_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 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:8513:7e38:6670:2969) (Ping timeout: 260 seconds) |
2021-02-05 23:28:00 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2021-02-05 23:28:55 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 23:32:22 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds) |
2021-02-05 23:32:35 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-05 23:32:49 +0100 | michalz | (~user@185.246.204.48) (Remote host closed the connection) |
2021-02-05 23:33:13 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0) |
2021-02-05 23:33:29 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds) |
2021-02-05 23:34:16 +0100 | conal | (~conal@64.71.133.70) |
2021-02-05 23:35:37 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-05 23:39:25 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-05 23:41:33 +0100 | borne | (~fritjof@2a06:8782:ffbb:1337:a53:e188:6f13:d1a) |
2021-02-05 23:42:25 +0100 | hackage | hs-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 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:24d0:e3f9:2a15:71ae) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-05 23:46:00 +0100 | pera | (~pera@unaffiliated/pera) (Ping timeout: 246 seconds) |
2021-02-05 23:49:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-05 23:51:55 +0100 | jollygood2 | (~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
2021-02-05 23:54:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-05 23:57:17 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-05 23:59:20 +0100 | hekkaidekapus] | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |