Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,804,530 events total
2021-08-27 07:44:07 tsmc joins (~tsmc@159.196.170.5)
2021-08-27 07:44:40 × azeem quits (~azeem@176.201.20.14) (Ping timeout: 240 seconds)
2021-08-27 07:45:23 azeem joins (~azeem@176.201.20.14)
2021-08-27 07:45:49 arjun joins (~Srain@user/arjun)
2021-08-27 07:46:58 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
2021-08-27 07:47:43 × hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-08-27 07:48:27 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-08-27 07:49:08 nattiestnate joins (~nate@103.2.146.186)
2021-08-27 07:50:27 × mjs2600_ quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 240 seconds)
2021-08-27 07:56:34 sjb0 joins (~stephen@2001:8004:2738:35de:a1a3:a1c1:6e62:ba62)
2021-08-27 07:58:44 Ananta-shesha joins (~pjetcetal@128-71-152-79.broadband.corbina.ru)
2021-08-27 08:00:26 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-27 08:01:44 × nattiestnate quits (~nate@103.2.146.186) (Quit: WeeChat 3.2)
2021-08-27 08:02:08 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-08-27 08:05:28 hendursa1 joins (~weechat@user/hendursaga)
2021-08-27 08:09:12 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
2021-08-27 08:09:21 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-08-27 08:09:56 aman joins (~aman@user/aman)
2021-08-27 08:11:45 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:c1b3:f9cf:5870:faa7) (Remote host closed the connection)
2021-08-27 08:13:56 × aegon quits (~mike@174.127.249.180) (Remote host closed the connection)
2021-08-27 08:17:39 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-08-27 08:17:39 allbery_b joins (~geekosaur@xmonad/geekosaur)
2021-08-27 08:17:42 allbery_b is now known as geekosaur
2021-08-27 08:18:22 kayprish joins (~kayprish@77.243.29.13)
2021-08-27 08:18:40 × xff0x quits (~xff0x@2001:1a81:53dc:be00:b65c:39d2:8f04:a6df) (Ping timeout: 240 seconds)
2021-08-27 08:19:30 xff0x joins (~xff0x@2001:1a81:53dc:be00:da3f:ef74:f6f8:c86d)
2021-08-27 08:19:38 epolanski joins (uid312403@id-312403.helmsley.irccloud.com)
2021-08-27 08:23:56 enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2021-08-27 08:31:22 burnside_ joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
2021-08-27 08:31:22 × burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Read error: Connection reset by peer)
2021-08-27 08:32:38 mastarija joins (~mastarija@78-3-210-70.adsl.net.t-com.hr)
2021-08-27 08:34:50 <mastarija> What does this warning about extraneous version range for a dependency on "internal" library mean exactly, and how do I get rid of it?
2021-08-27 08:34:53 <mastarija> https://paste.tomsmeding.com/Q9wfbZUl
2021-08-27 08:35:16 <mastarija> My cabal file: https://paste.tomsmeding.com/6n6fShRZ
2021-08-27 08:38:40 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 240 seconds)
2021-08-27 08:39:46 <fendor> mastarija, I think that is a cabal bug and depending on your cabal version, I think not at all
2021-08-27 08:40:39 × tsmc quits (~tsmc@159.196.170.5) (Quit: Client closed)
2021-08-27 08:40:41 <mastarija> fendor, cool. I suspected it might be, since it showed that same message when I fixed internal library version and it still showed.
2021-08-27 08:41:20 nschoe joins (~quassel@178.251.84.79)
2021-08-27 08:43:10 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 240 seconds)
2021-08-27 08:43:48 jtomas joins (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net)
2021-08-27 08:44:28 × juhp quits (~juhp@128.106.188.220) (Quit: juhp)
2021-08-27 08:44:42 juhp joins (~juhp@128.106.188.220)
2021-08-27 08:44:59 Guest|7 joins (~Guest|7@138.229.117.11)
2021-08-27 08:45:21 × Guest|7 quits (~Guest|7@138.229.117.11) (Client Quit)
2021-08-27 08:47:25 vpan joins (~vilius@212.117.1.172)
2021-08-27 08:48:02 <jtomas> Hi, is there a way to write this `f (a, b, c) = W a b c` in a shorter way, without repeating all the parameters one by one?
2021-08-27 08:50:30 ubert joins (~Thunderbi@91.141.37.164.wireless.dyn.drei.com)
2021-08-27 08:51:50 <Rembane_> jtomas: You need to write a curry3 function first. You could also use lenses, but I doubt it will be any shorter.
2021-08-27 08:52:10 × mastarija quits (~mastarija@78-3-210-70.adsl.net.t-com.hr) (Ping timeout: 240 seconds)
2021-08-27 08:53:07 <jtomas> thank Rembane_
2021-08-27 08:53:12 <jtomas> *thanks
2021-08-27 08:53:53 <Rembane_> jtomas: No problem!
2021-08-27 08:54:07 × juhp quits (~juhp@128.106.188.220) (Ping timeout: 240 seconds)
2021-08-27 08:56:07 timCF joins (~timCF@m91-129-108-244.cust.tele2.ee)
2021-08-27 08:56:19 <dminuoso> unsafeCoerce!
2021-08-27 08:56:37 dminuoso smiles
2021-08-27 08:56:38 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-08-27 08:56:39 <Rembane_> dminuoso: What?! Show us! :D
2021-08-27 08:56:46 pfurla_ joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-08-27 08:56:47 <dminuoso> f = unsafeCoerce
2021-08-27 08:56:47 geekosaur joins (~geekosaur@xmonad/geekosaur)
2021-08-27 08:56:58 <Rembane_> That is shorter.
2021-08-27 08:57:19 <dminuoso> Should I include some warranty or liability notice?
2021-08-27 08:57:41 <Rembane_> Isn't it included in the function name?
2021-08-27 08:57:46 <dminuoso> I take no responsiblity if, as a result of random crashes, people or kittens die.
2021-08-27 08:58:13 <dminuoso> I used to think unsafe was just a boring prefix and I knew better.
2021-08-27 08:58:24 <dminuoso> And then unsafePerformIO did things I did not expect it to
2021-08-27 08:58:40 <dminuoso> It's quite interesting how wrong ones intuition can be
2021-08-27 08:59:03 <Rembane_> That's the thing about intuition right?
2021-08-27 08:59:37 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-08-27 09:00:54 × Guest55 quits (~Guest55@182.64.179.3) (Quit: Client closed)
2021-08-27 09:01:49 × ubert quits (~Thunderbi@91.141.37.164.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2021-08-27 09:01:51 × idf quits (~idf@198.23.223.146) (Quit: ZNC 1.8.2 - https://znc.in)
2021-08-27 09:01:52 ubert1 joins (~Thunderbi@91.141.37.164.wireless.dyn.drei.com)
2021-08-27 09:01:52 <dminuoso> I reckon, you might be able to `coerce` from (,,) to W though
2021-08-27 09:01:56 <dminuoso> jtomas: ^-
2021-08-27 09:02:00 idf joins (~idf@198.23.223.146)
2021-08-27 09:02:09 <dminuoso> Assuming that `W` takes only 3 arguments at most, of course.
2021-08-27 09:02:23 <dminuoso> data W = W Int Char String
2021-08-27 09:02:25 <dminuoso> % data W = W Int Char String
2021-08-27 09:02:25 <yahb> dminuoso:
2021-08-27 09:02:36 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
2021-08-27 09:02:37 <dminuoso> % f :: (Int, Char, String) -> W; f = coerce
2021-08-27 09:02:37 <yahb> dminuoso: ; <interactive>:16:36: error:; * Couldn't match representation of type `(Int, Char, String)' with that of `W' arising from a use of `coerce'; * In the expression: coerce; In an equation for `f': f = coerce
2021-08-27 09:02:40 <dminuoso> Mmm
2021-08-27 09:02:50 <Taneb> It has to be an unsafeCoerce
2021-08-27 09:02:54 <dminuoso> Why is that?
2021-08-27 09:02:55 × hueso quits (~root@user/hueso) (Ping timeout: 252 seconds)
2021-08-27 09:03:11 <Taneb> coerce only works for newtype wrappers, basically
2021-08-27 09:03:28 × Megant quits (megant@user/megant) (Ping timeout: 252 seconds)
2021-08-27 09:03:29 <dminuoso> Ohh, because W and (,,) have a different representation. Of cours.
2021-08-27 09:03:51 hueso joins (~root@user/hueso)
2021-08-27 09:03:58 <int-e> Once upon a time, when intuitions worked and accursedUnutterablePerformIO was still called inlinePerformIO...
2021-08-27 09:04:10 ubert1 is now known as ubert
2021-08-27 09:04:11 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-08-27 09:04:12 <timCF> Hello! I have a question about organization of enterprise Haskell codebase. Once I've learned finally tagless, I always used this as a development pattern in my projects. In most apps there is some implicit environment `Env` used inside of `ReaderT` where stored techincal things like postgres connection pool, which are accessed through different classes for example `Storage`, `ServiceRpc` which are using
2021-08-27 09:04:18 <timCF> `Env`, and main application monad `AppM` implements these classes. This way for example it's very easy to "mock" things in tests, just have `TestAppM` and implement these classes differently. This all works fine until some stuff inside `Env` needs to be mutable. At the moment I'm using `MVar` field as a workaround, but thinking maybe `StateT` instead of `ReaderT` will be better and more "pure" solution?
2021-08-27 09:04:24 <timCF> But for some reason I have not seen much use of `StateT` in enterprise codebase. What do you think?
2021-08-27 09:04:59 Megant joins (megant@user/megant)

All times are in UTC.