2021/06/07

2021-06-07 00:00:44 +0200ddellaco_(~ddellacos@86.106.121.235)
2021-06-07 00:01:49 +0200ddellac__(~ddellacos@86.106.121.45)
2021-06-07 00:02:25 +0200ddellacosta(~ddellacos@89.45.224.254) (Ping timeout: 245 seconds)
2021-06-07 00:04:44 +0200 <boxscape> out of curiosity does any know off the top of their head whether modeling a free monad as `newtype FreeMonad f x = FreeMonad {runMonad :: ∀ m . Monad m => (f ~> m) -> m x}` or as `data FreeMonad' f a = Pure a | Free (f (FreeMonad' f a))` is faster?
2021-06-07 00:04:50 +0200 <boxscape> where `type f ~> g = ∀ α . f α -> g α`
2021-06-07 00:04:51 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:d950:8679:5786:8899)
2021-06-07 00:05:09 +0200 <boxscape> i.e. faster in terms of performance
2021-06-07 00:05:15 +0200 <c_wraith> both are faster
2021-06-07 00:05:20 +0200 <boxscape> well that's nice
2021-06-07 00:05:24 +0200 <c_wraith> The question is "at what?"
2021-06-07 00:05:27 +0200 <boxscape> ah
2021-06-07 00:06:05 +0200 <c_wraith> the function representation is faster when you just want to build something and then interpret it in a single shot
2021-06-07 00:06:24 +0200ddellac__(~ddellacos@86.106.121.45) (Ping timeout: 268 seconds)
2021-06-07 00:06:29 +0200 <c_wraith> The data representation is faster when you want to introspect the constructed structure, tearing it down piece by piece
2021-06-07 00:06:42 +0200 <boxscape> I see
2021-06-07 00:06:46 +0200 <boxscape> thanks
2021-06-07 00:07:31 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 00:07:55 +0200 <monochrom> The "free" package has a function that lets you start with the data version and still gain some efficiency when interpreting.
2021-06-07 00:08:13 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-06-07 00:08:29 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-07 00:08:48 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 00:09:04 +0200 <boxscape> okay
2021-06-07 00:10:07 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-07 00:10:33 +0200superbil(~superbil@1-34-176-171.HINET-IP.hinet.net)
2021-06-07 00:11:04 +0200ddellaco_(~ddellacos@86.106.121.235) (Remote host closed the connection)
2021-06-07 00:13:47 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-07 00:13:52 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 00:14:00 +0200xsperry(~as@user/xsperry) ()
2021-06-07 00:14:48 +0200xsperry(~as@user/xsperry)
2021-06-07 00:15:08 +0200xsperry(~as@user/xsperry) (Read error: Connection reset by peer)
2021-06-07 00:16:05 +0200ddellacosta(~ddellacos@89.45.224.92)
2021-06-07 00:16:31 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:d950:8679:5786:8899) (Remote host closed the connection)
2021-06-07 00:16:36 +0200betelgeuse01(~john2gb@94-225-47-8.access.telenet.be) (Quit: Ping timeout (120 seconds))
2021-06-07 00:16:36 +0200Ariakenom(~Ariakenom@2001:9b1:efb:fc00:190a:219e:41c6:abab) (Quit: Leaving)
2021-06-07 00:18:06 +0200betelgeuse01(~john2gb@94-225-47-8.access.telenet.be)
2021-06-07 00:21:55 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 264 seconds)
2021-06-07 00:22:14 +0200ft(~ft@shell.chaostreff-dortmund.de) (Quit: leaving)
2021-06-07 00:22:31 +0200ft(~ft@shell.chaostreff-dortmund.de)
2021-06-07 00:23:02 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-06-07 00:23:07 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-06-07 00:29:01 +0200ddellaco_(~ddellacos@89.46.62.116)
2021-06-07 00:32:40 +0200hexfive(~eric@50.35.83.177)
2021-06-07 00:32:50 +0200hexfive(~eric@50.35.83.177) (Client Quit)
2021-06-07 00:33:55 +0200ddellaco_(~ddellacos@89.46.62.116) (Ping timeout: 264 seconds)
2021-06-07 00:34:11 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-06-07 00:36:39 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-07 00:41:32 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-06-07 00:41:35 +0200dhil(~dhil@80.208.56.181) (Ping timeout: 245 seconds)
2021-06-07 00:41:52 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 00:44:32 +0200Sgeo(~Sgeo@user/sgeo)
2021-06-07 00:46:31 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 264 seconds)
2021-06-07 00:57:12 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 00:58:33 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-07 00:59:19 +0200xsperry(~as@user/xsperry)
2021-06-07 01:01:57 +0200 <monochrom> \∩/ ghcup knows 8.10.5
2021-06-07 01:04:47 +0200 <geekosaur> hls doesn't, though. and I'm not sure I want to rebuild the universe just yet
2021-06-07 01:05:06 +0200 <monochrom> I didn't build anything with 8.10.4 :)
2021-06-07 01:09:40 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 01:10:42 +0200ddellacosta(~ddellacos@89.45.224.92) (Remote host closed the connection)
2021-06-07 01:10:51 +0200ddellacosta(~ddellacos@89.45.224.92)
2021-06-07 01:14:06 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
2021-06-07 01:14:36 +0200bfrk1(~Thunderbi@200116b8451fe900af67d936efb17ea9.dip.versatel-1u1.de)
2021-06-07 01:15:09 +0200 <janus> does someone know of a good introduction to the continuation monad?
2021-06-07 01:16:53 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:d950:8679:5786:8899)
2021-06-07 01:16:59 +0200bfrk(~Thunderbi@200116b845b1f5008103f1add8a488d1.dip.versatel-1u1.de) (Ping timeout: 272 seconds)
2021-06-07 01:16:59 +0200bfrk1bfrk
2021-06-07 01:18:23 +0200 <boxscape> janus I thought this was alright https://en.m.wikibooks.org/wiki/Haskell/Continuation_passing_style
2021-06-07 01:18:24 +0200ddellacosta(~ddellacos@89.45.224.92) (Ping timeout: 252 seconds)
2021-06-07 01:19:02 +0200V(~v@anomalous.eu) (Ping timeout: 252 seconds)
2021-06-07 01:19:18 +0200Flux(~Flux@41337027.cst.lightpath.net)
2021-06-07 01:19:52 +0200 <Flux> I installed a package via "stack build <pkg>" and am trying to import the package but it's not working, any tips on how I might debug this?
2021-06-07 01:20:20 +0200 <Flux> By not working, I mean it can't find the module when i try to import it
2021-06-07 01:21:48 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:d950:8679:5786:8899) (Ping timeout: 272 seconds)
2021-06-07 01:23:30 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-06-07 01:25:28 +0200Toast52(~Toast52@151.192.167.120)
2021-06-07 01:27:01 +0200 <janus> Flux: you need to make sure that the build environment uses the same stack-lts that you built it with
2021-06-07 01:27:15 +0200 <Flux> can you explain what that means
2021-06-07 01:27:40 +0200 <janus> Flux: when you write "stack build <pkg>" in some arbitrary folder, stack will choose some arbitrary compiler version to install the package for
2021-06-07 01:27:53 +0200 <janus> but most likely you are trying to use it in some project, right?
2021-06-07 01:27:58 +0200 <Flux> yeah
2021-06-07 01:28:08 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2021-06-07 01:28:17 +0200 <janus> so if that is the case, it makes more sense to add the dependency to your project configuration so that you can put it in version control and such
2021-06-07 01:28:26 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-06-07 01:28:33 +0200 <Flux> hmm like when i do "stack build" and "stack run" things are ok
2021-06-07 01:28:37 +0200 <Flux> but i'm trying to mess around in ghci
2021-06-07 01:28:40 +0200 <Flux> and it's not importing correctly
2021-06-07 01:28:50 +0200 <geekosaur> stack ghci, or just plain ghci?
2021-06-07 01:28:58 +0200 <janus> if you don't have a project, and you just want a repl with the package, you can write 'stack repl <pkg>'
2021-06-07 01:29:00 +0200 <Flux> oh i was using plain ghci
2021-06-07 01:29:04 +0200 <geekosaur> plain ghci will not see things installed by stack
2021-06-07 01:29:22 +0200 <Flux> gotcha, didn't know that
2021-06-07 01:29:40 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-06-07 01:29:48 +0200 <janus> but better just write a package.yaml, stick it in there, and then you can have version control
2021-06-07 01:30:03 +0200 <janus> and you can specify the ghc flags and all that jazz
2021-06-07 01:31:37 +0200 <Flux> what is stack ghci actually doing
2021-06-07 01:31:53 +0200 <Flux> it's taking an awfully long time
2021-06-07 01:32:09 +0200 <monochrom> janus: My http://www.vex.net/~trebla/haskell/cont.xhtml is a good introduction to the Cont monad.
2021-06-07 01:32:19 +0200 <janus> Flux: it will look for a project configuration file, and if it doesn't find one, it will just choose some compiler and lts and download the packages for that
2021-06-07 01:32:42 +0200 <janus> Flux: so if you have a desired lts or compiler you want to use, better specify it... and if you specify it, why not specify it in a file ;)
2021-06-07 01:33:05 +0200 <janus> Flux: it is probably taking a long time because it needs to get its own ghc which is separate from the ghci you invoke from the command line
2021-06-07 01:33:06 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 01:33:29 +0200 <janus> Flux: and if the package you specify has a lot of dependencies, all of those will need to get built for that compiler
2021-06-07 01:33:47 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-06-07 01:33:48 +0200fendor_(~fendor@178.165.128.197.wireless.dyn.drei.com)
2021-06-07 01:35:21 +0200zeenk(~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41) (Quit: Konversation terminated!)
2021-06-07 01:37:00 +0200fendor(~fendor@77.119.131.188.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
2021-06-07 01:37:11 +0200madjestic(~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 252 seconds)
2021-06-07 01:37:39 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-06-07 01:39:21 +0200 <Flux> i see, i think there is a stack.yaml file
2021-06-07 01:39:55 +0200fendor_(~fendor@178.165.128.197.wireless.dyn.drei.com) (Ping timeout: 264 seconds)
2021-06-07 01:40:09 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 01:40:12 +0200 <Flux> but somehow it cannot satisfy package
2021-06-07 01:40:22 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:d950:8679:5786:8899)
2021-06-07 01:40:30 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-07 01:42:36 +0200fendor(~fendor@178.115.130.234.wireless.dyn.drei.com)
2021-06-07 01:46:06 +0200 <janus> if you can do "stack build <pkg>" in that directory, you should also be able to do "stack repl <pkg>"
2021-06-07 01:46:35 +0200 <janus> if you can do "stack build <pkg>" in another directory, but not that one, it is probably because that specific lts/ghc version is not compatible with the package
2021-06-07 01:46:35 +0200V(~v@anomalous.eu)
2021-06-07 01:46:52 +0200 <janus> if you tell us the name maybe it is easier to debug, and paste the error in the pastebin in topic
2021-06-07 01:47:43 +0200MQ-17J(~MQ-17J@8.21.10.116) (Ping timeout: 264 seconds)
2021-06-07 01:48:27 +0200 <Flux> sure, i am trying to build hasktorch https://github.com/hasktorch/hasktorch
2021-06-07 01:49:07 +0200 <Flux> https://paste.tomsmeding.com/3l5bgA93
2021-06-07 01:49:08 +0200 <Flux> here is the error i am seeing
2021-06-07 01:49:45 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-07 01:52:28 +0200 <janus> Flux: which command is that the output of?
2021-06-07 01:52:32 +0200 <Flux> stack ghci
2021-06-07 01:52:44 +0200Deide(~Deide@user/deide) (Quit: Seeee yaaaa)
2021-06-07 01:53:00 +0200 <Flux> eveyrthing else works (like stack build hasktorch, etc)
2021-06-07 01:53:09 +0200 <janus> Flux: ok i think that warning says that it wants you to specify package since it doesn't support multiple packages for the ghci
2021-06-07 01:53:34 +0200 <janus> Flux: so maybe try "stack repl examples" or "stack repl hasktorch" from that same folder?
2021-06-07 01:53:55 +0200 <Flux> ok that does not work either
2021-06-07 01:54:10 +0200pavonia(~user@user/siracusa)
2021-06-07 01:54:34 +0200 <Flux> stack repl hasktorch worked but not examples
2021-06-07 01:55:33 +0200bfrk(~Thunderbi@200116b8451fe900af67d936efb17ea9.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
2021-06-07 01:55:52 +0200Axman6(~Axman6@user/axman6) (Remote host closed the connection)
2021-06-07 01:56:06 +0200Axman6(~Axman6@user/axman6)
2021-06-07 01:56:46 +0200ddellacosta(~ddellacos@89.45.224.248)
2021-06-07 01:57:55 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
2021-06-07 01:58:43 +0200MQ-17J(~MQ-17J@8.21.10.116)
2021-06-07 01:59:15 +0200hmmmas(~chenqisu1@183.217.201.236)
2021-06-07 01:59:18 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 01:59:59 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net)
2021-06-07 02:01:02 +0200haskellGuestGuy(~haskellGu@81.96.113.213)
2021-06-07 02:01:31 +0200ddellacosta(~ddellacos@89.45.224.248) (Ping timeout: 264 seconds)
2021-06-07 02:01:36 +0200 <Flux> can i make it not recompile it every time i type stack repl hasktorch
2021-06-07 02:02:42 +0200prite(~pritam@user/pritambaral) (Ping timeout: 264 seconds)
2021-06-07 02:03:35 +0200xff0x(~xff0x@2001:1a81:53fc:900:3f16:186f:3986:9c65) (Ping timeout: 252 seconds)
2021-06-07 02:04:08 +0200xff0x(~xff0x@2001:1a81:53fc:900:d0f6:e7c5:21c7:3f71)
2021-06-07 02:04:28 +0200 <Flux> what's the easiest way to install new version of ghci?
2021-06-07 02:05:52 +0200 <haskellGuestGuy> anyone connecting to this server/channel via limeChat IRC?
2021-06-07 02:06:19 +0200 <shapr> Flux: I use ghcup
2021-06-07 02:06:20 +0200 <geekosaur> Flux, with stack you select a different resolver in stack.yaml
2021-06-07 02:06:22 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-07 02:06:41 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 02:06:59 +0200 <geekosaur> consult stackage.org to see what resolvers come with what ghc(i) versions
2021-06-07 02:08:25 +0200 <Flux> ghcup doesn't support 8.10.4? :0
2021-06-07 02:08:42 +0200 <geekosaur> it does
2021-06-07 02:08:55 +0200 <geekosaur> but stack won't use things you install with ghcup
2021-06-07 02:09:12 +0200 <geekosaur> it uses things it installs based on the resolver you select
2021-06-07 02:10:55 +0200 <Axman6> haskellGuestGuy: no, but if you ask your question we might be able to help anyway
2021-06-07 02:11:07 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 264 seconds)
2021-06-07 02:11:54 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 02:12:32 +0200chris_(~chris@81.96.113.213)
2021-06-07 02:13:23 +0200 <Flux> when i type ghci --version i am getting "The Glorious Glasgow Haskell Compilation System, version 9.0.0.20210113"
2021-06-07 02:13:25 +0200 <Flux> what is happening T_T
2021-06-07 02:13:40 +0200 <Flux> i don't see this in my ~/.ghc
2021-06-07 02:14:59 +0200 <geekosaur> o.O that is a beta release of what became 9.0.1
2021-06-07 02:15:02 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-07 02:15:31 +0200 <Flux> how do i fix this LOL
2021-06-07 02:15:33 +0200 <geekosaur> maerwald, any idea what's up here?
2021-06-07 02:15:40 +0200 <yushyin> isn't it glorious? ;)
2021-06-07 02:15:52 +0200 <shapr> Flux: how'd you get a beta release?
2021-06-07 02:16:00 +0200 <Flux> no idea
2021-06-07 02:16:47 +0200chris_(~chris@81.96.113.213) ()
2021-06-07 02:17:02 +0200chris_(~chris@81.96.113.213)
2021-06-07 02:18:09 +0200 <yushyin> where did you get this ghci, where is the binary located? might give you a clue as to how it was installed.
2021-06-07 02:18:11 +0200 <geekosaur> I'm going to guess you used ghcup to blindly install the latest ghc on or around 20210113, and got that prerelease
2021-06-07 02:18:26 +0200 <geekosaur> like today there's a 20210422 prerelease of 9.2.0
2021-06-07 02:18:33 +0200 <Flux> how do i find where the binary is located
2021-06-07 02:18:52 +0200chris_(~chris@81.96.113.213) (Client Quit)
2021-06-07 02:18:55 +0200 <Flux> what should the binary be called
2021-06-07 02:19:02 +0200 <Axman6> `which ghci`
2021-06-07 02:19:08 +0200 <yushyin> try `which ghci' or `where ghci'
2021-06-07 02:19:13 +0200chris_(~chris@81.96.113.213)
2021-06-07 02:19:14 +0200eight(~eight@user/eight) (Read error: Connection reset by peer)
2021-06-07 02:19:18 +0200 <Flux> oh it is just /usr/local/bin/ghci
2021-06-07 02:19:18 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-06-07 02:19:24 +0200eight(~eight@user/eight)
2021-06-07 02:19:25 +0200 <chris_> l
2021-06-07 02:19:33 +0200eight(~eight@user/eight) (Client Quit)
2021-06-07 02:19:45 +0200 <chris_> axeman6 think i've managed to get limeChat working thx
2021-06-07 02:19:47 +0200 <Axman6> what does `ls -l /usr/local/bin/ghci` say?
2021-06-07 02:20:05 +0200 <Axman6> chris_: looks like it's working to me, welcome!
2021-06-07 02:20:12 +0200 <Flux> lrwxrwxrwx 1 root root 19 Jan 16 23:04 /usr/local/bin/ghci -> ghci-9.0.0.20210113
2021-06-07 02:20:23 +0200 <Flux> hmm i symlinked it somehow
2021-06-07 02:20:24 +0200 <Flux> weird
2021-06-07 02:20:46 +0200 <monochrom> "ghcup tui" exists.
2021-06-07 02:21:00 +0200 <haskellGuestGuy> chris_ test
2021-06-07 02:21:04 +0200 <monochrom> ghcup also makes those symlinks.
2021-06-07 02:21:23 +0200 <haskellGuestGuy> chris_ test
2021-06-07 02:21:41 +0200 <geekosaur> but ghcup's look like: lrwxrwxrwx 1 allbery allbery 22 Feb 7 12:42 /home/allbery/.ghcup/bin/ghci -> ../ghc/8.10.4/bin/ghci*
2021-06-07 02:22:12 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-06-07 02:22:18 +0200 <monochrom> Ah, right.
2021-06-07 02:23:00 +0200 <Axman6> I'm so glad ghcup exists, working with ghc versions was such a pain before it.
2021-06-07 02:23:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-06-07 02:23:56 +0200 <yushyin> yeah, /usr/local/bin is not usually the path ghcup nor stack installs binaries to, right?
2021-06-07 02:24:09 +0200 <monochrom> Right.
2021-06-07 02:24:09 +0200 <geekosaur> neither one, yes
2021-06-07 02:24:33 +0200 <geekosaur> nor post system package managers (aside from *bsd)
2021-06-07 02:24:37 +0200 <geekosaur> *most
2021-06-07 02:25:15 +0200 <geekosaur> that said there's also brew on macos
2021-06-07 02:25:32 +0200 <yushyin> so check if the path is owned by your package manager and if not just rm it?
2021-06-07 02:25:33 +0200 <geekosaur> but I'd expect that to use a cask, especially for a prerelease
2021-06-07 02:25:35 +0200 <Flux> strange
2021-06-07 02:26:37 +0200 <Flux> rm all 3 of these? ghc-9.0.0.20210113ghci-9.0.0.20210113ghc-pkg-9.0.0.20210113
2021-06-07 02:27:00 +0200 <janus> Flux: you can use apt-file to check if your package manager installed those
2021-06-07 02:27:12 +0200 <janus> if you are on a debian derivative
2021-06-07 02:27:33 +0200 <Flux> did not know about apt-file
2021-06-07 02:27:35 +0200 <Flux> but yes i am on ubuntu
2021-06-07 02:27:52 +0200 <janus> but apt-file may not work well with third-party packages, i think
2021-06-07 02:27:57 +0200chris_(~chris@81.96.113.213) ()
2021-06-07 02:28:03 +0200 <janus> so maybe better try with "dpkg -L ghc<tab>"
2021-06-07 02:28:15 +0200 <janus> and you can use tab completion to try to find a package name
2021-06-07 02:28:23 +0200 <Flux> tab completion only shows ghc and ghc-8.8.2
2021-06-07 02:28:40 +0200 <janus> ok well then i guess it's not from the package manager
2021-06-07 02:28:56 +0200 <janus> Flux: maybe reconsider how many sources you install ghc from
2021-06-07 02:29:01 +0200chris_(~chris@81.96.113.213)
2021-06-07 02:29:07 +0200 <Flux> whoops no idea
2021-06-07 02:29:10 +0200 <Flux> now i know
2021-06-07 02:29:12 +0200 <janus> because i find it confusing to have one from ghcup, one from the OS, one from stack
2021-06-07 02:29:24 +0200 <Flux> yeah
2021-06-07 02:29:31 +0200 <Flux> this is likely from when i had no idea what was happening
2021-06-07 02:29:37 +0200 <Flux> should i just use cabal or something instead
2021-06-07 02:29:55 +0200 <Flux> will that resolve my issues
2021-06-07 02:30:10 +0200ddellacosta(~ddellacos@89.46.62.43)
2021-06-07 02:30:11 +0200 <janus> depends on the issue ;)
2021-06-07 02:30:18 +0200 <sclv> cabal is a distinct tool from ghc installers
2021-06-07 02:30:28 +0200 <sclv> you use it in conjunction with a ghc from ghcup or the os, not as opposed to
2021-06-07 02:30:35 +0200 <Flux> yeah i meant
2021-06-07 02:30:37 +0200 <Flux> cabal as opposed to stack
2021-06-07 02:30:38 +0200 <Flux> :P
2021-06-07 02:31:09 +0200 <sclv> well i tend to encourage people using cabal over stack, but i don't want to promise it has anything to do with this particular issue :-)
2021-06-07 02:31:34 +0200ddellaco_(~ddellacos@89.46.62.157)
2021-06-07 02:31:56 +0200 <janus> since you're working with a giant complicated project like hasktorch, maybe ask them what they use, and then use the same
2021-06-07 02:31:59 +0200 <sclv> note that ghcup installs to .ghcup usually and you should make sure your .bashrc will source ~/.ghcup/env to automatically get its installed versions in scope
2021-06-07 02:32:08 +0200 <Flux> cabal and stack options both exist
2021-06-07 02:32:15 +0200 <Flux> for hasktorch
2021-06-07 02:32:24 +0200 <Flux> i think i chose stack randomly
2021-06-07 02:33:20 +0200 <sclv> if your ghc is coming from ghcup you can just run "ghcup" to get a nice help that explains how to pick and switch ghcs
2021-06-07 02:34:05 +0200 <janus> Flux: try doing ls /usr/local/bin/*20210113 because i think there are more binaries than the ones you listed
2021-06-07 02:34:13 +0200chris_teaSlurper
2021-06-07 02:34:51 +0200ddellacosta(~ddellacos@89.46.62.43) (Ping timeout: 252 seconds)
2021-06-07 02:35:32 +0200 <geekosaur> have they fixed the bit where hsc2hs and friends are only installed nonversioned yet? (hm, I should check that locally)
2021-06-07 02:35:45 +0200ddellaco_(~ddellacos@89.46.62.157) (Ping timeout: 245 seconds)
2021-06-07 02:35:52 +0200 <geekosaur> ah, yes
2021-06-07 02:36:09 +0200 <janus> ghcup versions all of them, iirc
2021-06-07 02:36:49 +0200 <Flux> if i install a version of ghc with ghcup
2021-06-07 02:36:53 +0200 <Flux> am i supposed to be able to run ghci
2021-06-07 02:36:54 +0200 <yushyin> is this what happens if people randomly `curl ... | sh' from the internet? :)
2021-06-07 02:38:34 +0200 <geekosaur> source ~/.ghcup/env
2021-06-07 02:38:34 +0200 <geekosaur> and arrange for your shell to do that on startup, so it can find things installed via ghcup
2021-06-07 02:38:34 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com) (Remote host closed the connection)
2021-06-07 02:38:35 +0200 <yushyin> Flux: if you selected a ghc version as your default in ghcup and set up your PATH correctly, yes.
2021-06-07 02:38:36 +0200 <glguy> sclv, I stopped trying to figure out the command line (not that it was particularly complicated) and always use `ghcup tui` now
2021-06-07 02:38:44 +0200softwarm(~softwarm@2600:8801:db01:8f0:60c3:f8d4:403b:5c34) (Quit: Client closed)
2021-06-07 02:38:50 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com)
2021-06-07 02:39:00 +0200 <geekosaur> hm, I stand corrected, I see no env in there on my system. I just added ~/.ghcup/bin to $PATH locally but my $PATH management is somewhat complex
2021-06-07 02:39:05 +0200ddellacosta(~ddellacos@86.106.121.235)
2021-06-07 02:40:17 +0200 <Flux> yushyin: how do i set a ghc version as default in ghcup
2021-06-07 02:40:17 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
2021-06-07 02:40:27 +0200 <Flux> is it just ghcup set
2021-06-07 02:40:39 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-06-07 02:40:44 +0200 <geekosaur> or the equivalent using ghcup tui, yes
2021-06-07 02:40:45 +0200 <yushyin> try `ghcup tui'
2021-06-07 02:40:54 +0200 <Flux> oh nice
2021-06-07 02:40:57 +0200 <Flux> looks nice
2021-06-07 02:43:30 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 02:43:51 +0200 <Flux> hmm so if i want to use stack and ghcup how would that work
2021-06-07 02:44:04 +0200 <Flux> + what are the things to be cautious about
2021-06-07 02:44:53 +0200 <sclv> they're orthogonal
2021-06-07 02:45:00 +0200 <sclv> stack manages ghcs in its own special way and ghcup in another
2021-06-07 02:45:03 +0200 <sclv> the two never intersect
2021-06-07 02:45:05 +0200 <hololeap> is there any big reason why type families cannot be partially applied, or is it just something that is in the process of being implemented?
2021-06-07 02:45:31 +0200 <boxscape> hololeap there are reasons but it is in the process of being proposed https://github.com/ghc-proposals/ghc-proposals/pull/242
2021-06-07 02:45:34 +0200 <sclv> so they don't work together, but they don't hurt one another (except you get even more ghc installs littering your system)
2021-06-07 02:46:01 +0200 <hololeap> boxscape: cool thanks
2021-06-07 02:46:31 +0200 <boxscape> hololeap the main reason is that when you know `f x ~ g y` you can usually deduce that `x ~ y` and `f ~ g`, but that's not true if f and g are type families, which makes things more complicated
2021-06-07 02:46:44 +0200 <sclv> here's a direct link to the proposal: https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0242-unsaturated-type-familie…
2021-06-07 02:47:22 +0200 <boxscape> hololeap oh whoops it was actually already accepted so I guess it is in the process of being implemented
2021-06-07 02:48:39 +0200haskellGuestGuy(~haskellGu@81.96.113.213) (Quit: Client closed)
2021-06-07 02:51:44 +0200 <Flux> are there nice resources to understand how stack works
2021-06-07 02:51:57 +0200 <Flux> i feel like there are plenty of half-detailed tutorials
2021-06-07 02:52:07 +0200 <Axman6> what about the stack documentation?
2021-06-07 02:52:23 +0200yd502(~yd502@180.168.212.6)
2021-06-07 02:52:32 +0200 <Flux> i am generally too lazy to read through documentation in full whoops
2021-06-07 02:52:53 +0200 <Axman6> so the answer is yes, you just don't want to read it ;)
2021-06-07 02:52:57 +0200 <yushyin> wow ...
2021-06-07 02:53:13 +0200 <Flux> lmao
2021-06-07 02:53:20 +0200 <Flux> you right
2021-06-07 02:53:36 +0200 <Flux> sometimes i just want to absorb information effortlessly
2021-06-07 02:53:36 +0200yd502_(~yd502@180.168.212.6)
2021-06-07 02:53:36 +0200 <Flux> :)
2021-06-07 02:53:43 +0200vicfred(~vicfred@user/vicfred) (Ping timeout: 264 seconds)
2021-06-07 02:53:48 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 02:56:09 +0200dcompoze(~dcompoze@5E98D6D9.static.tld.pl) (Quit: WeeChat 3.1)
2021-06-07 02:56:43 +0200yd502(~yd502@180.168.212.6) (Ping timeout: 264 seconds)
2021-06-07 03:02:07 +0200yd502_(~yd502@180.168.212.6) (Ping timeout: 264 seconds)
2021-06-07 03:02:52 +0200ddellacosta(~ddellacos@86.106.121.235) (Remote host closed the connection)
2021-06-07 03:09:20 +0200ddellacosta(~ddellacos@86.106.143.144)
2021-06-07 03:09:45 +0200 <Flux> is there a way to make ghci not show all the packages being loaded
2021-06-07 03:09:57 +0200 <geekosaur> -v0, I think
2021-06-07 03:10:45 +0200 <Flux> stack ghci -v0?
2021-06-07 03:10:47 +0200 <Flux> didn't seem to work
2021-06-07 03:11:00 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer)
2021-06-07 03:11:28 +0200 <geekosaur> with stack you'd need: stack ghci --ghci-options=-v0 or something like that
2021-06-07 03:12:10 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-07 03:12:12 +0200 <Flux> o
2021-06-07 03:15:09 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 03:16:03 +0200xff0x(~xff0x@2001:1a81:53fc:900:d0f6:e7c5:21c7:3f71) (Ping timeout: 272 seconds)
2021-06-07 03:17:19 +0200xff0x(~xff0x@2001:1a81:5240:1700:ccf7:e726:9438:c4ca)
2021-06-07 03:17:50 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-07 03:18:27 +0200teaSlurper(~chris@81.96.113.213)
2021-06-07 03:18:42 +0200yd502_(~yd502@180.168.212.6)
2021-06-07 03:19:39 +0200Flux(~Flux@41337027.cst.lightpath.net) (Quit: Client closed)
2021-06-07 03:23:02 +0200teaSlurp_(~chris@81.96.113.213)
2021-06-07 03:23:07 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 268 seconds)
2021-06-07 03:30:17 +0200madnight(~madnight@static.59.103.201.195.clients.your-server.de) (Excess Flood)
2021-06-07 03:30:27 +0200madnight(~madnight@static.59.103.201.195.clients.your-server.de)
2021-06-07 03:30:39 +0200hololeap(hololeap@user/hololeap) (Read error: Connection reset by peer)
2021-06-07 03:32:03 +0200yd502_(~yd502@180.168.212.6) (Ping timeout: 252 seconds)
2021-06-07 03:32:12 +0200gmc(sid58314@charlton.irccloud.com) (Ping timeout: 244 seconds)
2021-06-07 03:32:21 +0200gmc(sid58314@id-58314.charlton.irccloud.com)
2021-06-07 03:32:43 +0200Katarushisu(~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) (Ping timeout: 244 seconds)
2021-06-07 03:33:03 +0200Katarushisu(~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net)
2021-06-07 03:33:09 +0200Square(~a@178.62.91.8) (Ping timeout: 272 seconds)
2021-06-07 03:33:47 +0200jlamothe(~jlamothe@198.251.57.81) (Ping timeout: 272 seconds)
2021-06-07 03:33:59 +0200DontKnowWhatImDo(~whateverm@pool-108-54-183-148.nycmny.fios.verizon.net)
2021-06-07 03:34:01 +0200jlamothe(~jlamothe@198.251.57.81)
2021-06-07 03:34:31 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2021-06-07 03:34:56 +0200Square(~a@178.62.91.8)
2021-06-07 03:35:46 +0200statusbot(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection)
2021-06-07 03:35:58 +0200statusbot(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
2021-06-07 03:36:01 +0200ddellacosta(~ddellacos@86.106.143.144) (Remote host closed the connection)
2021-06-07 03:36:20 +0200SeemedLikeAGoodI(~whateverm@pool-108-54-183-148.nycmny.fios.verizon.net) (Ping timeout: 244 seconds)
2021-06-07 03:39:03 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-07 03:39:26 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 244 seconds)
2021-06-07 03:39:35 +0200 <cdsmith> I want some kind of constraint that lets me access a type-level Symbol at runtime as a String. Does that sound like something that exists?
2021-06-07 03:39:44 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-06-07 03:39:55 +0200 <Axman6> KnownSymbol?
2021-06-07 03:39:56 +0200 <geekosaur> KnownSymbol?
2021-06-07 03:40:03 +0200 <Axman6> @quote stereo
2021-06-07 03:40:03 +0200 <lambdabot> monochrom says: Welcome to #haskell, where @remember's are in majestic stereo!
2021-06-07 03:40:07 +0200 <cdsmith> Ah, sounds promising. Yes
2021-06-07 03:42:45 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2021-06-07 03:43:57 +0200li(~li@libera/staff/li) (Read error: Connection reset by peer)
2021-06-07 03:44:42 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 03:44:48 +0200li(~li@libera/staff/li)
2021-06-07 03:45:38 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-07 03:45:49 +0200noddy(~user@user/noddy) (Ping timeout: 272 seconds)
2021-06-07 03:46:00 +0200 <int-e> @quote fugue
2021-06-07 03:46:00 +0200 <lambdabot> monochrom says: Welcome to #haskell, where your questions are answered in contrapuntal fugues.
2021-06-07 03:46:20 +0200noddy(~user@user/noddy)
2021-06-07 03:49:15 +0200whiteline(~whiteline@c-64c6e253.54725-0-757473696b74.bbcust.telenor.se) (Ping timeout: 244 seconds)
2021-06-07 03:49:27 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 03:49:37 +0200whiteline(~whiteline@c-64c6e253.54725-0-757473696b74.bbcust.telenor.se)
2021-06-07 03:49:46 +0200matijja(~matijja@193.77.181.208) (Ping timeout: 244 seconds)
2021-06-07 03:50:30 +0200matijja(~matijja@193.77.181.208)
2021-06-07 03:50:50 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-07 03:51:25 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 03:51:50 +0200ell(~ellie@user/ellie) (Ping timeout: 244 seconds)
2021-06-07 03:52:03 +0200ell(~ellie@user/ellie)
2021-06-07 03:52:47 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving)
2021-06-07 03:54:34 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-07 03:57:48 +0200polux(~polux@51.15.169.172) (Read error: Connection reset by peer)
2021-06-07 03:57:53 +0200polux0(~polux@51.15.169.172)
2021-06-07 03:58:52 +0200blizzard(~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) (Ping timeout: 272 seconds)
2021-06-07 03:59:43 +0200jespada(~jespada@90.254.242.55) (Ping timeout: 264 seconds)
2021-06-07 04:00:19 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 264 seconds)
2021-06-07 04:00:26 +0200ddellacosta(~ddellacos@86.106.143.248)
2021-06-07 04:00:55 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-07 04:00:58 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-07 04:01:08 +0200whiteline(~whiteline@c-64c6e253.54725-0-757473696b74.bbcust.telenor.se) (Ping timeout: 244 seconds)
2021-06-07 04:01:25 +0200jespada(~jespada@90.254.242.55)
2021-06-07 04:01:27 +0200Adeon(sid418992@tooting.irccloud.com) (Ping timeout: 272 seconds)
2021-06-07 04:01:27 +0200shachaf(~shachaf@user/shachaf) (Ping timeout: 272 seconds)
2021-06-07 04:01:31 +0200whiteline(~whiteline@c-64c6e253.54725-0-757473696b74.bbcust.telenor.se)
2021-06-07 04:01:35 +0200shachaf(~shachaf@user/shachaf)
2021-06-07 04:01:37 +0200Adeon(sid418992@id-418992.tooting.irccloud.com)
2021-06-07 04:02:05 +0200teaSlurp_(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-07 04:02:21 +0200blizzard(~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com)
2021-06-07 04:02:42 +0200teaSlurper(~chris@81.96.113.213)
2021-06-07 04:05:24 +0200yd502(~yd502@180.168.212.6)
2021-06-07 04:06:05 +0200tapas(sid467876@charlton.irccloud.com) (Ping timeout: 272 seconds)
2021-06-07 04:06:07 +0200yd502_(~yd502@180.168.212.6)
2021-06-07 04:06:14 +0200tapas(sid467876@id-467876.charlton.irccloud.com)
2021-06-07 04:07:23 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-06-07 04:07:23 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (strontium.libera.chat (Nickname regained by services)))
2021-06-07 04:07:23 +0200finn_elijaFinnElija
2021-06-07 04:07:59 +0200yd502__(~yd502@180.168.212.6)
2021-06-07 04:08:25 +0200Ekho(~Ekho@user/ekho) (Ping timeout: 272 seconds)
2021-06-07 04:08:25 +0200int-e(~noone@int-e.eu) (Ping timeout: 272 seconds)
2021-06-07 04:08:43 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 264 seconds)
2021-06-07 04:09:15 +0200urdh(~urdh@h88-129-148-132.cust.a3fiber.se) (Ping timeout: 272 seconds)
2021-06-07 04:10:00 +0200yd502(~yd502@180.168.212.6) (Ping timeout: 252 seconds)
2021-06-07 04:10:03 +0200urdh(~urdh@h88-129-148-132.cust.a3fiber.se)
2021-06-07 04:11:06 +0200yd502_(~yd502@180.168.212.6) (Ping timeout: 252 seconds)
2021-06-07 04:11:41 +0200teaSlurper(~chris@81.96.113.213)
2021-06-07 04:13:00 +0200gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
2021-06-07 04:13:11 +0200yd502_(~yd502@180.168.212.6)
2021-06-07 04:13:27 +0200gabiruh(~gabiruh@vps19177.publiccloud.com.br)
2021-06-07 04:13:29 +0200hueso(~root@152.170.216.40) (Ping timeout: 272 seconds)
2021-06-07 04:13:45 +0200Ekho(~Ekho@user/ekho)
2021-06-07 04:13:57 +0200hueso(~root@152.170.216.40)
2021-06-07 04:16:01 +0200thaumavorio(~thaumavor@thaumavor.io) (Ping timeout: 272 seconds)
2021-06-07 04:16:19 +0200int-e(~noone@int-e.eu)
2021-06-07 04:16:51 +0200yd502__(~yd502@180.168.212.6) (Ping timeout: 272 seconds)
2021-06-07 04:16:51 +0200meejah(~meejah@rutas.meejah.ca) (Ping timeout: 272 seconds)
2021-06-07 04:16:59 +0200meejah(~meejah@rutas.meejah.ca)
2021-06-07 04:17:20 +0200thaumavorio(~thaumavor@thaumavor.io)
2021-06-07 04:18:36 +0200eight(~eight@user/eight)
2021-06-07 04:19:44 +0200wolfshappen(~waff@irc.furworks.de) (Ping timeout: 244 seconds)
2021-06-07 04:20:05 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-07 04:20:17 +0200ddellacosta(~ddellacos@86.106.143.248) (Remote host closed the connection)
2021-06-07 04:21:13 +0200wolfshappen(~waff@irc.furworks.de)
2021-06-07 04:24:46 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-07 04:26:06 +0200td_(~td@muedsl-82-207-238-175.citykom.de) (Ping timeout: 264 seconds)
2021-06-07 04:26:47 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 272 seconds)
2021-06-07 04:26:55 +0200hyiltiz(~quassel@31.220.5.250)
2021-06-07 04:27:57 +0200td_(~td@muedsl-82-207-238-142.citykom.de)
2021-06-07 04:28:03 +0200ralu(~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 272 seconds)
2021-06-07 04:28:07 +0200yd502__(~yd502@180.168.212.6)
2021-06-07 04:28:09 +0200yd502_(~yd502@180.168.212.6) (Ping timeout: 252 seconds)
2021-06-07 04:28:17 +0200ralu(~ralu@static.211.245.203.116.clients.your-server.de)
2021-06-07 04:29:07 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 04:30:08 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 04:31:17 +0200ddellacosta(~ddellacos@89.46.62.38)
2021-06-07 04:32:07 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 264 seconds)
2021-06-07 04:33:19 +0200blizzard(~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) (Ping timeout: 272 seconds)
2021-06-07 04:33:39 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-06-07 04:35:43 +0200ddellacosta(~ddellacos@89.46.62.38) (Ping timeout: 264 seconds)
2021-06-07 04:35:51 +0200yd502__(~yd502@180.168.212.6) (Ping timeout: 252 seconds)
2021-06-07 04:36:12 +0200yd502(~yd502@180.168.212.6)
2021-06-07 04:36:19 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2021-06-07 04:37:02 +0200blizzard(~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com)
2021-06-07 04:40:38 +0200ephemient(uid407513@id-407513.tooting.irccloud.com)
2021-06-07 04:42:47 +0200wei2912(~wei2912@112.199.250.21)
2021-06-07 04:42:53 +0200yd502_(~yd502@180.168.212.6)
2021-06-07 04:43:27 +0200yd502(~yd502@180.168.212.6) (Ping timeout: 272 seconds)
2021-06-07 04:45:38 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2021-06-07 04:45:55 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 264 seconds)
2021-06-07 04:47:50 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 04:50:25 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-07 04:52:14 +0200sh9(~sh9@softbank060116136158.bbtec.net)
2021-06-07 04:52:31 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net)
2021-06-07 04:53:35 +0200 <teaSlurper> how do you exit ghci repl
2021-06-07 04:53:53 +0200ddellacosta(~ddellacos@86.106.143.40)
2021-06-07 04:54:19 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-06-07 04:54:47 +0200 <teaSlurper> got it ctrl + d
2021-06-07 04:55:22 +0200 <Axman6> you can also use :quit (or just :q)
2021-06-07 04:55:45 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-07 04:57:23 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-06-07 04:58:39 +0200ddellacosta(~ddellacos@86.106.143.40) (Ping timeout: 272 seconds)
2021-06-07 05:01:47 +0200ddellacosta(~ddellacos@86.106.143.196)
2021-06-07 05:03:54 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 05:05:07 +0200boxscape(~boxscape@user/boxscape) (Ping timeout: 264 seconds)
2021-06-07 05:05:16 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-07 05:09:24 +0200ordinate(~ordinate@c-68-38-144-3.hsd1.in.comcast.net)
2021-06-07 05:09:25 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2021-06-07 05:09:32 +0200 <ordinate> good evening everyone
2021-06-07 05:11:18 +0200thiross(~thiross@39.170.37.82)
2021-06-07 05:15:25 +0200thiross(~thiross@39.170.37.82) (Remote host closed the connection)
2021-06-07 05:17:21 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 05:17:39 +0200yd502_(~yd502@180.168.212.6) (Ping timeout: 272 seconds)
2021-06-07 05:21:03 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 05:21:25 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-07 05:23:40 +0200vwork(~vwork@50-249-207-86-static.hfc.comcastbusiness.net)
2021-06-07 05:23:55 +0200 <vwork> .
2021-06-07 05:24:50 +0200yd502(~yd502@180.168.212.6)
2021-06-07 05:25:31 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 264 seconds)
2021-06-07 05:25:37 +0200on9er(~WebUser@2a04:92c7:e:64e::5438)
2021-06-07 05:26:28 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-07 05:27:25 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
2021-06-07 05:28:27 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-06-07 05:29:07 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
2021-06-07 05:29:40 +0200Lord_of_Life_Lord_of_Life
2021-06-07 05:32:13 +0200yd502(~yd502@180.168.212.6) (Ping timeout: 272 seconds)
2021-06-07 05:32:19 +0200ddellaco_(~ddellacos@89.45.224.100)
2021-06-07 05:33:32 +0200 <teaSlurper> in cabal if i want to export something i need to declare it in the exposed modules in .cabal file right?
2021-06-07 05:34:17 +0200ddellaco_(~ddellacos@89.45.224.100) (Remote host closed the connection)
2021-06-07 05:34:25 +0200yd502(~yd502@180.168.212.6)
2021-06-07 05:35:15 +0200ddellacosta(~ddellacos@86.106.143.196) (Ping timeout: 252 seconds)
2021-06-07 05:35:25 +0200Toast52_(~Toast52@151.192.167.120)
2021-06-07 05:35:39 +0200otto_s_(~user@p5de2f9fb.dip0.t-ipconnect.de)
2021-06-07 05:36:51 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 05:39:34 +0200otto_s(~user@p4ff27879.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2021-06-07 05:40:08 +0200noglog(~egigs@097-101-149-192.res.spectrum.com)
2021-06-07 05:40:30 +0200Abhoc(~Fred@107.126.47.49)
2021-06-07 05:41:43 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 264 seconds)
2021-06-07 05:45:48 +0200a6a45081-2b83(~aditya@223.235.239.159)
2021-06-07 05:47:21 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-06-07 05:54:51 +0200alx741(~alx741@181.196.69.96) (Quit: alx741)
2021-06-07 05:56:27 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 05:56:54 +0200on9er(~WebUser@2a04:92c7:e:64e::5438) (Quit: Leaving)
2021-06-07 05:57:40 +0200 <ordinate> yeah thats how it works
2021-06-07 05:57:47 +0200 <ordinate> afaik
2021-06-07 06:00:16 +0200 <teaSlurper> thx @ordinate
2021-06-07 06:00:31 +0200 <ordinate> npnp! lemme kno if i got it wrong
2021-06-07 06:00:48 +0200 <teaSlurper> i need to learn a bit of haskell for my dissertation project
2021-06-07 06:00:54 +0200 <teaSlurper> for computer music
2021-06-07 06:00:58 +0200 <teaSlurper> based thing
2021-06-07 06:01:06 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-06-07 06:03:02 +0200 <ordinate> oh dang, computer music is literally my entire jam
2021-06-07 06:03:13 +0200 <ordinate> pure data?
2021-06-07 06:05:50 +0200sh9(~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 3.0.1)
2021-06-07 06:06:46 +0200 <teaSlurper> is pure data written in haskell? i'm going through a haskell based book called school of music
2021-06-07 06:06:52 +0200 <teaSlurper> uses a haskell lib called euterpea
2021-06-07 06:07:10 +0200 <teaSlurper> teaches u haskell and music concepts at same time
2021-06-07 06:07:29 +0200wishful-night(~wishful-n@2804:14c:c0:8dbb:3f6f:c291:c6bb:42f8)
2021-06-07 06:09:08 +0200 <ordinate> nah pd is written in c, just the first thing that springs to mind when the phrase "computer music" is brought up
2021-06-07 06:09:19 +0200 <ordinate> ill have to check out that book tho
2021-06-07 06:11:07 +0200 <teaSlurper> cool
2021-06-07 06:11:17 +0200 <teaSlurper> what are you using haskell for @ordinate?
2021-06-07 06:11:37 +0200 <ordinate> surprisingly, also multimedia
2021-06-07 06:12:14 +0200 <ordinate> im currently developing my first "real" haskell project which is a newgrounds game of all things
2021-06-07 06:12:24 +0200 <ordinate> felt like that was funny enough to pursue for 3+ months so far
2021-06-07 06:12:28 +0200 <teaSlurper> ohh, game development?
2021-06-07 06:12:58 +0200 <teaSlurper> is the game playable?
2021-06-07 06:13:20 +0200 <ordinate> yes! though not currently all there graphically
2021-06-07 06:13:31 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 264 seconds)
2021-06-07 06:13:34 +0200 <teaSlurper> github or?
2021-06-07 06:13:56 +0200 <ordinate> https://github.com/nikshalark/apl is what i have so far
2021-06-07 06:14:11 +0200 <ordinate> i'm no professional, excuse the mess
2021-06-07 06:14:21 +0200 <Toast52_> Isn't newgrounds flash games? Or are new games using html5
2021-06-07 06:14:43 +0200 <ordinate> yeah newgrounds accepts html5 now
2021-06-07 06:14:47 +0200 <ordinate> has for a few years
2021-06-07 06:15:06 +0200 <ordinate> would be absolutely hilarious to use a haskell2as package
2021-06-07 06:16:42 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
2021-06-07 06:16:42 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1)
2021-06-07 06:16:46 +0200 <teaSlurper> i followed you on there
2021-06-07 06:16:57 +0200 <teaSlurper> i may try and run the project tomorrow
2021-06-07 06:17:05 +0200 <teaSlurper> miso is like a gui haskell library is it?
2021-06-07 06:17:10 +0200 <ordinate> thanks! i wouldnt advise that!
2021-06-07 06:17:25 +0200 <ordinate> miso is a haskell library for frontend web development
2021-06-07 06:17:33 +0200 <teaSlurper> i see
2021-06-07 06:17:33 +0200 <wishful-night> chess in haskell is cool, I tried implementing vanilla chess in haskell but then when it came time to implement move generation and validation I realized my data structures sucked and I should've gone with a bitboard, ended up just getting lazy and moving on to another project
2021-06-07 06:17:36 +0200 <ordinate> which, as far as i understand, is all the parts the user can look at
2021-06-07 06:17:56 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-07 06:18:16 +0200 <ordinate> running the project as of right now will just give you the title screen, all the actual game code is written but not yet hooked onto miso
2021-06-07 06:18:39 +0200 <teaSlurper> i see, so you have the game logic, but not the view/ui code linked up?
2021-06-07 06:18:45 +0200 <ordinate> not in the slightest
2021-06-07 06:19:08 +0200 <teaSlurper> are you going to use a design pattern of some sort to decouple the ui/view code from game logic code?
2021-06-07 06:20:03 +0200 <teaSlurper> chess seems like quite a complex thing to implement
2021-06-07 06:20:34 +0200 <ordinate> i agree chess is extremely fucking complicated, can attest as im rated a measly 600 on chess.com
2021-06-07 06:22:12 +0200 <ordinate> i dropped out of college, i have no knowledge of "design patterns" tho they seem incredibly useful
2021-06-07 06:23:17 +0200 <dibblego> this is good practice for implementing chess: https://github.com/system-f/fp-course/blob/master/projects/TicTacToe/TicTacToe.markdown
2021-06-07 06:24:14 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 06:24:27 +0200 <ordinate> my method would be to have some function that takes my board representation and displays it as whatever canvas bullshit i need
2021-06-07 06:25:16 +0200 <teaSlurper> yeah
2021-06-07 06:25:33 +0200 <ordinate> augh the fp-course.... still have yet to start on it. i have so many THINGS to read
2021-06-07 06:26:31 +0200 <ordinate> agon.pdf, simple ci server in haskell ebook, haskell in-depth, most of the stuff on stephen diehl's website
2021-06-07 06:27:34 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 245 seconds)
2021-06-07 06:27:54 +0200a6a45081-2b83(~aditya@223.235.239.159) (Quit: Konversation terminated!)
2021-06-07 06:31:57 +0200 <ordinate> sorry for ramblin!!! talkin on irc is hard to keep terse
2021-06-07 06:32:46 +0200ddellacosta(~ddellacos@89.46.62.56)
2021-06-07 06:32:53 +0200vwork(~vwork@50-249-207-86-static.hfc.comcastbusiness.net) (Leaving)
2021-06-07 06:33:10 +0200a6a45081-2b83(~aditya@223.235.239.159)
2021-06-07 06:33:41 +0200a6a45081-2b83(~aditya@223.235.239.159) (Client Quit)
2021-06-07 06:34:13 +0200hmmmas(~chenqisu1@183.217.201.236) (Quit: Leaving.)
2021-06-07 06:36:10 +0200ddellaco_(~ddellacos@89.45.224.230)
2021-06-07 06:37:24 +0200ddellacosta(~ddellacos@89.46.62.56) (Ping timeout: 252 seconds)
2021-06-07 06:37:45 +0200tose(~tose@ip-85-160-1-174.eurotel.cz)
2021-06-07 06:40:54 +0200ddellaco_(~ddellacos@89.45.224.230) (Ping timeout: 245 seconds)
2021-06-07 06:41:03 +0200Toast52_(~Toast52@151.192.167.120) (Quit: Leaving)
2021-06-07 06:42:27 +0200pe200012(~pe200012@58.248.179.178)
2021-06-07 06:42:28 +0200pe200012(~pe200012@58.248.179.178) (Remote host closed the connection)
2021-06-07 06:42:54 +0200pe200012(~pe200012@58.248.179.178)
2021-06-07 06:44:20 +0200eggplant_(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
2021-06-07 06:44:32 +0200ordinate(~ordinate@c-68-38-144-3.hsd1.in.comcast.net) (Quit: Leaving)
2021-06-07 06:45:55 +0200Toast52(~Toast52@151.192.167.120) (Ping timeout: 264 seconds)
2021-06-07 06:46:04 +0200schuelermine(~schuelerm@user/schuelermine)
2021-06-07 06:46:34 +0200SkamDart(~SkamDart@ip70-187-232-148.oc.oc.cox.net)
2021-06-07 06:46:57 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:d950:8679:5786:8899) (Ping timeout: 272 seconds)
2021-06-07 06:48:27 +0200schuelermine(~schuelerm@user/schuelermine) (Client Quit)
2021-06-07 06:50:17 +0200tose(~tose@ip-85-160-1-174.eurotel.cz) (Quit: WeeChat 3.0)
2021-06-07 06:50:33 +0200tose(~tose@ip-85-160-1-174.eurotel.cz)
2021-06-07 06:51:00 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-07 06:55:32 +0200 <SkamDart> @help
2021-06-07 06:55:32 +0200 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
2021-06-07 06:55:38 +0200 <SkamDart> list
2021-06-07 06:56:17 +0200 <SkamDart> @list
2021-06-07 06:56:17 +0200 <lambdabot> What module? Try @listmodules for some ideas.
2021-06-07 06:56:20 +0200 <SkamDart> @listmodules
2021-06-07 06:56:21 +0200 <lambdabot> activity base bf check compose dice dict djinn dummy elite eval filter free fresh haddock help hoogle instances irc karma localtime metar more oeis offlineRC pl pointful poll pretty quote search
2021-06-07 06:56:21 +0200 <lambdabot> seen slap source spell system tell ticker todo topic type undo unlambda unmtl version where
2021-06-07 06:56:31 +0200 <SkamDart> @hoogle
2021-06-07 06:56:31 +0200 <lambdabot> package base
2021-06-07 06:56:31 +0200 <lambdabot> package bytestring
2021-06-07 06:56:31 +0200 <lambdabot> package containers
2021-06-07 06:56:40 +0200 <SkamDart> @hoogle a -> a
2021-06-07 06:56:40 +0200 <lambdabot> Prelude id :: a -> a
2021-06-07 06:56:40 +0200 <lambdabot> Data.Function id :: a -> a
2021-06-07 06:56:40 +0200 <lambdabot> GHC.Base breakpoint :: a -> a
2021-06-07 06:58:16 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-07 06:59:24 +0200 <dminuoso> SkamDart: You can use a /query to play with lambdabot
2021-06-07 07:08:19 +0200ddellacosta(~ddellacos@86.106.143.100)
2021-06-07 07:11:30 +0200noglog(~egigs@097-101-149-192.res.spectrum.com) (Quit: Reconnecting)
2021-06-07 07:12:59 +0200ddellacosta(~ddellacos@86.106.143.100) (Ping timeout: 245 seconds)
2021-06-07 07:15:42 +0200noglog(~egigs@097-101-149-192.res.spectrum.com)
2021-06-07 07:17:15 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe)
2021-06-07 07:18:14 +0200nattiestnate(~nate@180.242.128.159) (Quit: WeeChat 3.1)
2021-06-07 07:18:19 +0200tose(~tose@ip-85-160-1-174.eurotel.cz) (Ping timeout: 264 seconds)
2021-06-07 07:23:22 +0200jorjor(~jorgemene@85.251.190.6.dyn.user.ono.com)
2021-06-07 07:25:16 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe) (Quit: node-irc says goodbye)
2021-06-07 07:25:31 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe)
2021-06-07 07:25:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-06-07 07:25:41 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe) (Client Quit)
2021-06-07 07:25:58 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe)
2021-06-07 07:26:32 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-06-07 07:26:36 +0200yd502_(~yd502@180.168.212.6)
2021-06-07 07:28:20 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe) ()
2021-06-07 07:28:28 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe)
2021-06-07 07:28:47 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 07:29:39 +0200yd502(~yd502@180.168.212.6) (Ping timeout: 245 seconds)
2021-06-07 07:29:57 +0200pe200012(~pe200012@58.248.179.178) (Remote host closed the connection)
2021-06-07 07:30:22 +0200pe200012(~pe200012@58.248.179.178)
2021-06-07 07:33:19 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 264 seconds)
2021-06-07 07:33:45 +0200Pixi_Pixi
2021-06-07 07:35:43 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-06-07 07:36:44 +0200tose(~tose@ip-85-160-1-174.eurotel.cz)
2021-06-07 07:37:24 +0200polux0polux
2021-06-07 07:37:25 +0200unyu(~pyon@user/pyon) (Ping timeout: 245 seconds)
2021-06-07 07:37:51 +0200vicfred(~vicfred@user/vicfred)
2021-06-07 07:39:21 +0200unyu(~pyon@user/pyon)
2021-06-07 07:41:39 +0200ddellacosta(~ddellacos@89.45.224.230)
2021-06-07 07:41:58 +0200Toast52(~Toast52@151.192.167.120)
2021-06-07 07:46:31 +0200ddellacosta(~ddellacos@89.45.224.230) (Ping timeout: 264 seconds)
2021-06-07 07:46:45 +0200noglog(~egigs@097-101-149-192.res.spectrum.com) (Quit: Reconnecting)
2021-06-07 07:46:57 +0200noglog(~egigs@097-101-149-192.res.spectrum.com)
2021-06-07 07:48:13 +0200noglog(~egigs@097-101-149-192.res.spectrum.com) (Client Quit)
2021-06-07 07:48:20 +0200noglog_(~egigs@097-101-149-192.res.spectrum.com)
2021-06-07 07:49:20 +0200Bartosz(~textual@24.35.90.211)
2021-06-07 07:50:11 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-06-07 07:53:49 +0200jorjor(~jorgemene@85.251.190.6.dyn.user.ono.com) (Ping timeout: 245 seconds)
2021-06-07 07:54:57 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds)
2021-06-07 07:55:31 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-06-07 08:01:28 +0200noglog_(~egigs@097-101-149-192.res.spectrum.com) (Quit: .)
2021-06-07 08:02:01 +0200Abhoc(~Fred@107.126.47.49) (Quit: Leaving)
2021-06-07 08:02:48 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 08:02:59 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
2021-06-07 08:04:06 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-07 08:06:49 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-07 08:07:00 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-07 08:11:19 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
2021-06-07 08:12:02 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-07 08:13:06 +0200imdoor(~imdoor@balticom-142-78-50.balticom.lv)
2021-06-07 08:21:13 +0200nschoe(~quassel@2a01:e0a:8e:a190:458d:db56:1c93:24ea)
2021-06-07 08:22:04 +0200ddellacosta(~ddellacos@86.106.143.87)
2021-06-07 08:26:43 +0200ddellacosta(~ddellacos@86.106.143.87) (Ping timeout: 264 seconds)
2021-06-07 08:28:28 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-06-07 08:28:50 +0200img(~img@user/img)
2021-06-07 08:31:34 +0200img(~img@user/img) (Client Quit)
2021-06-07 08:32:13 +0200img(~img@user/img)
2021-06-07 08:33:12 +0200chele(~chele@user/chele)
2021-06-07 08:33:54 +0200ddellacosta(~ddellacos@89.46.62.125)
2021-06-07 08:34:02 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-07 08:34:55 +0200tose(~tose@ip-85-160-1-174.eurotel.cz) (Quit: WeeChat 3.0)
2021-06-07 08:37:40 +0200ThatsWhatIDo(~whateverm@pool-108-54-183-148.nycmny.fios.verizon.net)
2021-06-07 08:38:43 +0200ddellacosta(~ddellacos@89.46.62.125) (Ping timeout: 264 seconds)
2021-06-07 08:39:30 +0200DontKnowWhatImDo(~whateverm@pool-108-54-183-148.nycmny.fios.verizon.net) (Ping timeout: 245 seconds)
2021-06-07 08:42:08 +0200gehmehgeh(~user@user/gehmehgeh)
2021-06-07 08:42:35 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:8fa1:cc04:6abc:7131)
2021-06-07 08:43:12 +0200aerona(~aerona@2600:6c54:4600:f300:1c:eb15:276e:4179) (Quit: Leaving)
2021-06-07 08:43:53 +0200hmmmas(~chenqisu1@183.217.201.236)
2021-06-07 08:44:16 +0200wishful-night(~wishful-n@2804:14c:c0:8dbb:3f6f:c291:c6bb:42f8) (Quit: Client closed)
2021-06-07 08:45:23 +0200jorjor(~jorgemene@85.251.190.6.dyn.user.ono.com)
2021-06-07 08:47:58 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-06-07 08:51:51 +0200jakalx(~jakalx@base.jakalx.net)
2021-06-07 08:53:38 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr)
2021-06-07 08:57:29 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 08:57:48 +0200Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2021-06-07 08:58:45 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
2021-06-07 08:58:46 +0200Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Client Quit)
2021-06-07 09:02:03 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-06-07 09:06:23 +0200bfrk(~Thunderbi@200116b8451fe900af67d936efb17ea9.dip.versatel-1u1.de)
2021-06-07 09:07:15 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-07 09:10:20 +0200michalz(~user@185.246.204.43)
2021-06-07 09:12:06 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
2021-06-07 09:12:50 +0200cfricke(~cfricke@user/cfricke)
2021-06-07 09:16:08 +0200Bartosz(~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-07 09:16:26 +0200SkamDart(~SkamDart@ip70-187-232-148.oc.oc.cox.net) (Quit: Lost terminal)
2021-06-07 09:16:33 +0200benin03(~benin@183.82.206.136)
2021-06-07 09:17:05 +0200xff0x(~xff0x@2001:1a81:5240:1700:ccf7:e726:9438:c4ca) (Ping timeout: 268 seconds)
2021-06-07 09:17:11 +0200fabfianda(~fabfianda@net-93-148-121-206.cust.vodafonedsl.it)
2021-06-07 09:17:28 +0200xff0x(~xff0x@2001:1a81:5240:1700:e30e:a0ca:64b7:1a12)
2021-06-07 09:21:38 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-07 09:26:09 +0200hylisper(~ykm@111.119.208.67)
2021-06-07 09:27:09 +0200barrucadu(~barrucadu@carcosa.barrucadu.co.uk) (Ping timeout: 244 seconds)
2021-06-07 09:27:22 +0200barrucadu(~barrucadu@carcosa.barrucadu.co.uk)
2021-06-07 09:28:24 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 245 seconds)
2021-06-07 09:29:05 +0200mnrmnaugh(~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Ping timeout: 245 seconds)
2021-06-07 09:29:31 +0200gawen(~gawen@user/gawen) (Ping timeout: 272 seconds)
2021-06-07 09:29:52 +0200gawen(~gawen@user/gawen)
2021-06-07 09:30:47 +0200emergence(~emergence@vm0.max-p.me) (Ping timeout: 272 seconds)
2021-06-07 09:30:58 +0200emergence(~emergence@vm0.max-p.me)
2021-06-07 09:33:52 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 09:34:00 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-07 09:37:50 +0200kuribas(~user@ptr-25vy0i8kfrck8zt2w0u.18120a2.ip6.access.telenet.be)
2021-06-07 09:38:07 +0200ddellacosta(~ddellacos@89.45.224.61)
2021-06-07 09:38:43 +0200pavonia(~user@user/siracusa) (Ping timeout: 264 seconds)
2021-06-07 09:39:18 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 09:39:53 +0200 <kuribas> I have DuplicateRecordFields in my project.cabal, but still flycheck is complaining about it...
2021-06-07 09:42:32 +0200michalz(~user@185.246.204.43) (Read error: No route to host)
2021-06-07 09:42:34 +0200ddellacosta(~ddellacos@89.45.224.61) (Ping timeout: 245 seconds)
2021-06-07 09:42:58 +0200mc47(~yecinem@89.246.239.190)
2021-06-07 09:42:59 +0200ell(~ellie@user/ellie) (Quit: The Lounge - https://thelounge.chat)
2021-06-07 09:43:20 +0200ell(~ellie@user/ellie)
2021-06-07 09:43:24 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 245 seconds)
2021-06-07 09:46:42 +0200agumonkey(~user@88.160.31.174)
2021-06-07 09:51:14 +0200sm2n(~sm2n@user/sm2n) (Read error: Connection reset by peer)
2021-06-07 09:51:28 +0200sm2n(~sm2n@user/sm2n)
2021-06-07 09:53:40 +0200 <kuribas> Multiple declarations of ‘id_field’
2021-06-07 09:53:42 +0200 <kuribas> etc...
2021-06-07 09:53:49 +0200 <kuribas> cabal new-build works just fine
2021-06-07 09:55:03 +0200Guest5439(~ubuntu@ec2-13-49-142-87.eu-north-1.compute.amazonaws.com) (Ping timeout: 272 seconds)
2021-06-07 09:55:16 +0200ubuntu(~ubuntu@ec2-13-49-142-87.eu-north-1.compute.amazonaws.com)
2021-06-07 09:55:29 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-06-07 09:55:39 +0200ubuntuGuest2041
2021-06-07 09:55:49 +0200yd502(~yd502@180.168.212.6)
2021-06-07 09:56:21 +0200 <kuribas> back to huge list in each file I guess, **sigh**
2021-06-07 09:57:09 +0200 <kuribas> I don't even get why it's recompiling it...
2021-06-07 09:57:16 +0200 <kuribas> Maybe because of the template haskell?
2021-06-07 09:58:09 +0200yd502_(~yd502@180.168.212.6) (Ping timeout: 252 seconds)
2021-06-07 09:58:53 +0200pavonia(~user@user/siracusa)
2021-06-07 09:59:08 +0200imdoor(~imdoor@balticom-142-78-50.balticom.lv) (Quit: imdoor)
2021-06-07 10:00:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-07 10:01:41 +0200kuribas(~user@ptr-25vy0i8kfrck8zt2w0u.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2021-06-07 10:01:57 +0200kuribas(~user@ptr-25vy0i8kfrck8zt2w0u.18120a2.ip6.access.telenet.be)
2021-06-07 10:02:21 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-06-07 10:02:31 +0200 <kuribas> haskell tooling gets in the way, once again...
2021-06-07 10:03:09 +0200zhe(~chatzilla@183.233.237.114)
2021-06-07 10:04:20 +0200pera(~pera@user/pera)
2021-06-07 10:04:33 +0200edwtjo(~edwtjo@user/edwtjo) (Ping timeout: 272 seconds)
2021-06-07 10:04:41 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 10:04:56 +0200edwtjo(~edwtjo@h-79-136-7-145.A213.priv.bahnhof.se)
2021-06-07 10:04:56 +0200edwtjo(~edwtjo@h-79-136-7-145.A213.priv.bahnhof.se) (Changing host)
2021-06-07 10:04:56 +0200edwtjo(~edwtjo@user/edwtjo)
2021-06-07 10:05:51 +0200agumonkey(~user@88.160.31.174) (Ping timeout: 252 seconds)
2021-06-07 10:07:11 +0200hendursa1(~weechat@user/hendursaga)
2021-06-07 10:09:09 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-06-07 10:10:37 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 252 seconds)
2021-06-07 10:13:20 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-07 10:18:16 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-07 10:18:18 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-06-07 10:18:29 +0200eldritch_(~eldritch@134.209.221.71) (Ping timeout: 272 seconds)
2021-06-07 10:18:43 +0200eldritch_(~eldritch@134.209.221.71)
2021-06-07 10:19:45 +0200agumonkey(~user@88.160.31.174)
2021-06-07 10:20:49 +0200koolazer(~koo@user/koolazer) (Ping timeout: 272 seconds)
2021-06-07 10:21:07 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-06-07 10:21:08 +0200koolazer(~koo@user/koolazer)
2021-06-07 10:21:12 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 10:22:25 +0200zhe(~chatzilla@183.233.237.114) (Quit: ChatZilla 0.9.96 [SeaMonkey 2.53.7.1/20210410170740])
2021-06-07 10:23:10 +0200eggplant_(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Remote host closed the connection)
2021-06-07 10:23:14 +0200mpt(~tom@2a02:908:1862:49e0::5)
2021-06-07 10:25:01 +0200sshine(~simon@hubris.eta.solutions) (Ping timeout: 244 seconds)
2021-06-07 10:25:09 +0200sshine(~simon@hubris.eta.solutions)
2021-06-07 10:25:29 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
2021-06-07 10:25:32 +0200Eoco(~ian@x-160-94-179-157.acm.umn.edu) (Ping timeout: 244 seconds)
2021-06-07 10:25:49 +0200Eoco(~ian@x-160-94-179-157.acm.umn.edu)
2021-06-07 10:28:58 +0200 <tomsmeding> kuribas: I think the default-extensions field in a .cabal file aren't read by ghci; perhaps via a roundabout way this is the same thing?
2021-06-07 10:29:15 +0200 <kuribas> perhaps
2021-06-07 10:29:30 +0200 <kuribas> I thought they *where* read by ghci?
2021-06-07 10:30:18 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-07 10:31:56 +0200 <tomsmeding> kuribas: tbh I don't know, I'm only going off this comment here: https://github.com/AccelerateHS/accelerate/blob/master/accelerate.cabal#L562
2021-06-07 10:34:04 +0200 <tomsmeding> kuribas: perhaps at some point we'll have -XGHC2021, maybe that will help your case :)
2021-06-07 10:34:51 +0200 <kuribas> tomsmeding: I just don't feel like debugging and doing tooling stuff at this point.
2021-06-07 10:35:57 +0200agumonke`(~user@88.160.31.174)
2021-06-07 10:37:34 +0200agumonkey(~user@88.160.31.174) (Ping timeout: 245 seconds)
2021-06-07 10:38:13 +0200 <kuribas> tomsmeding: flycheck has worked for my thusfar.
2021-06-07 10:38:46 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-07 10:39:00 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2021-06-07 10:39:23 +0200 <tomsmeding> kuribas: including default-extensions from the cabal file?
2021-06-07 10:39:47 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-06-07 10:40:07 +0200 <kuribas> I never used that before
2021-06-07 10:41:40 +0200 <tomsmeding> hm a 'cabal repl' in a random project does seem to pick up default-extensions
2021-06-07 10:41:42 +0200 <tomsmeding> ¯\_(ツ)_/¯
2021-06-07 10:42:07 +0200 <kuribas> maybe my ghc is too old?
2021-06-07 10:42:38 +0200 <tomsmeding> wouldn't expect an issue like this to happen with old ghcs specifically, but how old? :p
2021-06-07 10:43:59 +0200 <kuribas> 8.6.5
2021-06-07 10:45:39 +0200yd502_(~yd502@180.168.212.6)
2021-06-07 10:48:19 +0200yd502(~yd502@180.168.212.6) (Ping timeout: 264 seconds)
2021-06-07 10:49:30 +0200 <tomsmeding> kuribas: can you try to run 'cabal repl' and then ':set' inside this project? https://paste.tomsmeding.com/EfGGcx3C
2021-06-07 10:49:40 +0200 <tomsmeding> (protip: there's the "Download paste" button at the bottom)
2021-06-07 10:50:13 +0200 <kuribas> tomsmeding: I don't think flycheck uses the repl
2021-06-07 10:51:39 +0200 <kuribas> :set to what?
2021-06-07 10:52:28 +0200 <kuribas> options currently set: none. base language is: Haskell2010 with the following modifiers: -XExplicitForAll -XPatternSignatures -XScopedTypeVariables
2021-06-07 10:52:59 +0200 <kuribas> looks like it does set the extension in ghci
2021-06-07 10:53:06 +0200ddellacosta(~ddellacos@86.106.121.165)
2021-06-07 10:53:10 +0200 <kuribas> so I don't think that's the problem
2021-06-07 10:55:51 +0200 <tomsmeding> ah indeed it doesn't, it invokes ghc directly or via stack
2021-06-07 10:56:14 +0200 <kuribas> tomsmeding: where are you from?
2021-06-07 10:56:25 +0200 <tomsmeding> kuribas: and interestingly it sets the one from the cabal file, not the one from the LANGUAGE pragma in Main.hs
2021-06-07 10:56:30 +0200 <kuribas> the netherlands?
2021-06-07 10:56:35 +0200 <tomsmeding> kuribas: hollands mensje
2021-06-07 10:56:39 +0200 <kuribas> ok :)
2021-06-07 10:57:33 +0200ddellacosta(~ddellacos@86.106.121.165) (Ping timeout: 252 seconds)
2021-06-07 10:58:01 +0200 <tomsmeding> maybe the flycheck haskell auto-detection magic isn't rerunning or something when you add an extension to the cabal file?
2021-06-07 10:58:23 +0200 <tomsmeding> but anyway you said you didn't feel like debugging and now I'm asking you to do that anyway, so I'll stop :p
2021-06-07 10:59:51 +0200 <kuribas> I did all that
2021-06-07 10:59:59 +0200 <kuribas> recompile, restart emacs, etc...
2021-06-07 11:00:16 +0200 <tomsmeding> rip
2021-06-07 11:00:33 +0200 <maerwald> did you try to close all windows? xD
2021-06-07 11:00:36 +0200 <kuribas> yeah, I'll send a message to the flycheck github.
2021-06-07 11:01:03 +0200 <tomsmeding> "please close all other programs before running this installer"
2021-06-07 11:01:42 +0200 <tomsmeding> (before proceeding to some hideous full-screen thing)
2021-06-07 11:01:59 +0200 <kuribas> hmm, I could try removing .ghc.environment...
2021-06-07 11:04:39 +0200Haitang(~Taier@64-79-70-207.xlhdns.com)
2021-06-07 11:04:48 +0200 <Haitang> hi
2021-06-07 11:06:01 +0200 <kuribas> hey
2021-06-07 11:06:21 +0200Haitang(~Taier@64-79-70-207.xlhdns.com) ()
2021-06-07 11:06:40 +0200 <tomsmeding> bye
2021-06-07 11:06:52 +0200dhil(~dhil@195.213.192.47)
2021-06-07 11:07:22 +0200 <tomsmeding> kuribas: I forgot to say, that :set output is the same as what I get on ghc 8.10.4
2021-06-07 11:07:27 +0200 <kuribas> tomsmeding: at this point I don't feel much about spending time in improving tooling. I would be more inclined to pay for it.
2021-06-07 11:07:32 +0200 <kuribas> tomsmeding: right
2021-06-07 11:08:43 +0200azeem(~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Ping timeout: 264 seconds)
2021-06-07 11:09:15 +0200azeem(~azeem@176.200.235.0)
2021-06-07 11:09:19 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2021-06-07 11:10:15 +0200azeem(~azeem@176.200.235.0) (Read error: Connection reset by peer)
2021-06-07 11:10:20 +0200prite(~pritam@user/pritambaral)
2021-06-07 11:11:03 +0200azeem(~azeem@176.200.235.0)
2021-06-07 11:12:34 +0200agumonke`(~user@88.160.31.174) (Read error: Connection reset by peer)
2021-06-07 11:13:09 +0200agumonke`(~user@88.160.31.174)
2021-06-07 11:14:37 +0200azeem(~azeem@176.200.235.0) (Read error: Connection reset by peer)
2021-06-07 11:14:50 +0200azeem(~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it)
2021-06-07 11:19:17 +0200azeem(~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-06-07 11:23:32 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
2021-06-07 11:24:58 +0200yd502(~yd502@180.168.212.6)
2021-06-07 11:26:07 +0200yd502_(~yd502@180.168.212.6) (Ping timeout: 264 seconds)
2021-06-07 11:26:38 +0200Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 272 seconds)
2021-06-07 11:27:24 +0200benin030(~benin@183.82.206.136)
2021-06-07 11:27:56 +0200Maxdamantus(~Maxdamant@user/maxdamantus)
2021-06-07 11:27:59 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Ping timeout: 245 seconds)
2021-06-07 11:28:15 +0200ddellacosta(~ddellacos@86.106.143.10)
2021-06-07 11:29:14 +0200benin03(~benin@183.82.206.136) (Ping timeout: 245 seconds)
2021-06-07 11:29:26 +0200benin030benin03
2021-06-07 11:29:27 +0200azeem(~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it)
2021-06-07 11:31:36 +0200BosonCollider(~olofs@90-227-86-119-no542.tbcn.telia.com)
2021-06-07 11:32:01 +0200prite(~pritam@user/pritambaral) (Quit: Konversation terminated!)
2021-06-07 11:33:18 +0200ddellacosta(~ddellacos@86.106.143.10) (Ping timeout: 252 seconds)
2021-06-07 11:34:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-06-07 11:34:29 +0200yd502(~yd502@180.168.212.6) (Ping timeout: 272 seconds)
2021-06-07 11:36:36 +0200agumonke`(~user@88.160.31.174) (Ping timeout: 252 seconds)
2021-06-07 11:37:03 +0200Torro(Torro@gateway/vpn/protonvpn/torro)
2021-06-07 11:39:24 +0200 <kuribas> is there a *good* way to add orphan instances?
2021-06-07 11:39:54 +0200 <kuribas> when there is only one instance that really makes sense?
2021-06-07 11:39:54 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 11:40:27 +0200 <Taneb> kuribas: I think it depends if you're writing a library that you're going to share with other people
2021-06-07 11:41:11 +0200 <kuribas> For my current problem it is cassava FromNamedRecord/ToNamedRecord for Aeson Value.
2021-06-07 11:41:24 +0200 <kuribas> I don't want to newtype it, because Value is the right datatype to use.
2021-06-07 11:41:43 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-06-07 11:41:54 +0200 <Taneb> That feels like a weird instance?
2021-06-07 11:42:26 +0200 <kuribas> I mean ToField/FromField, sorry :)
2021-06-07 11:44:18 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-06-07 11:45:53 +0200mpt(~tom@2a02:908:1862:49e0::5) (Ping timeout: 272 seconds)
2021-06-07 11:47:58 +0200bfrk(~Thunderbi@200116b8451fe900af67d936efb17ea9.dip.versatel-1u1.de) ()
2021-06-07 11:54:46 +0200nkpart(uid3844@id-3844.highgate.irccloud.com)
2021-06-07 11:55:05 +0200dunkeln(~dunkeln@94.129.65.28) (Quit: leaving)
2021-06-07 11:56:14 +0200boxscape(~boxscape@user/boxscape)
2021-06-07 11:57:09 +0200azeem(~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Ping timeout: 245 seconds)
2021-06-07 11:58:40 +0200boxscape(~boxscape@user/boxscape) (Client Quit)
2021-06-07 11:59:08 +0200boxscape(~boxscape@user/boxscape)
2021-06-07 12:01:33 +0200azeem(~azeem@176.200.235.0)
2021-06-07 12:02:27 +0200ddellacosta(~ddellacos@86.106.143.74)
2021-06-07 12:06:44 +0200ddellacosta(~ddellacos@86.106.143.74) (Ping timeout: 245 seconds)
2021-06-07 12:09:30 +0200JimL(~quassel@ti0577q162-3381.bb.online.no) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-06-07 12:11:42 +0200michalz(~user@185.246.204.107)
2021-06-07 12:12:24 +0200 <boxscape> % const 4 (undefined :: Constraint)
2021-06-07 12:12:24 +0200 <yahb> boxscape: 4
2021-06-07 12:12:28 +0200 <boxscape> seems really strange that this works
2021-06-07 12:12:36 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-06-07 12:12:40 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-06-07 12:12:41 +0200 <boxscape> I would neither expect undefined :: Constraint to be well-typed, nor const a b if b :: Constraint
2021-06-07 12:13:24 +0200 <boxscape> oh but I guess it's because Constraint is a regular data type rather than just a kind
2021-06-07 12:14:04 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 268 seconds)
2021-06-07 12:14:30 +0200neceve(~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130)
2021-06-07 12:17:59 +0200 <Taneb> :k Constraint
2021-06-07 12:18:00 +0200 <lambdabot> *
2021-06-07 12:18:14 +0200 <boxscape> % :i Constraint
2021-06-07 12:18:15 +0200 <yahb> boxscape: type Constraint :: *; data Constraint; -- Defined in `GHC.Types'
2021-06-07 12:18:49 +0200 <boxscape> doesn't look any different from Void, really
2021-06-07 12:20:12 +0200GIANTWORLDKEEPER(~pjetcetal@2.95.204.25) (Ping timeout: 265 seconds)
2021-06-07 12:23:00 +0200larkfisherman(~larkfishe@217.75.204.126)
2021-06-07 12:23:04 +0200pasko__(~larkfishe@217.75.204.126)
2021-06-07 12:23:38 +0200 <vaibhavsagar[m]> how are people implementing timeouts when using the `websocket` library?
2021-06-07 12:23:52 +0200 <vaibhavsagar[m]> System.Timeout or something else?
2021-06-07 12:24:59 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
2021-06-07 12:25:27 +0200 <vaibhavsagar[m]> I'm not seeing anything included by default and my first impulse was to use `race` from `async` but it seems like the `timeout` in `base` is simpler and better for my purposes
2021-06-07 12:26:01 +0200yd502(~yd502@180.168.212.6)
2021-06-07 12:26:24 +0200oxide(~lambda@user/oxide) (Ping timeout: 268 seconds)
2021-06-07 12:28:05 +0200oxide(~lambda@user/oxide)
2021-06-07 12:29:14 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Ping timeout: 245 seconds)
2021-06-07 12:29:25 +0200 <dminuoso> vaibhavsagar[m]: Hold on, what kind of timeouts are you talking about?
2021-06-07 12:30:29 +0200 <vaibhavsagar[m]> when I am receiving a message over a websocket, and I want to wait no more than x seconds
2021-06-07 12:31:08 +0200 <dminuoso> vaibhavsagar[m]: Keep in mind the subtle bound issue of `timeout`
2021-06-07 12:31:15 +0200 <vaibhavsagar[m]> I think the library is pretty simple/barebones in that sense, since it doesn't seem to include any way of handling timeouts by default
2021-06-07 12:31:38 +0200 <vaibhavsagar[m]> what issue?
2021-06-07 12:31:41 +0200 <dminuoso> Int is only guaranteed to give you [-2^29..2^29-1]
2021-06-07 12:31:45 +0200 <dminuoso> And timeout wants nanoseconds.
2021-06-07 12:31:46 +0200shryke(~shryke@91.103.43.254)
2021-06-07 12:31:57 +0200 <vaibhavsagar[m]> oh yeah, I know timeout wants microseconds
2021-06-07 12:32:08 +0200 <dminuoso> % 2^29 - 1
2021-06-07 12:32:08 +0200 <yahb> dminuoso: 536870911
2021-06-07 12:32:30 +0200 <vaibhavsagar[m]> that's not a problem for my use case I think
2021-06-07 12:32:52 +0200 <vaibhavsagar[m]> I'm planning to wait maybe 5 minutes at most
2021-06-07 12:32:52 +0200 <dminuoso> Well you asked for "n seconds"
2021-06-07 12:33:02 +0200 <dminuoso> Oh sorry, its in microseconds.
2021-06-07 12:33:19 +0200 <vaibhavsagar[m]> yeah, which is the same as n*10^6 microseconds
2021-06-07 12:33:24 +0200 <vaibhavsagar[m]> I read the docs
2021-06-07 12:33:26 +0200 <dminuoso> So anything up to 536 seconds will work, anything more is going to be implementation dependent
2021-06-07 12:33:28 +0200 <dminuoso> Right
2021-06-07 12:33:47 +0200 <vaibhavsagar[m]> you're not actually answering my question at all
2021-06-07 12:33:57 +0200 <vaibhavsagar[m]> so `timeout` is fine then it sounds like
2021-06-07 12:34:07 +0200 <dminuoso> timeout could work, just remember to send pings manually with `websockets`
2021-06-07 12:34:37 +0200 <dminuoso> STM is probably a more robust choice
2021-06-07 12:35:04 +0200 <dminuoso> websockets does not handle pings *or* answering to pings for you
2021-06-07 12:35:09 +0200 <dminuoso> You gotta do that yourself :)
2021-06-07 12:35:12 +0200 <vaibhavsagar[m]> I'm communicating with an external application over websockets
2021-06-07 12:35:18 +0200 <vaibhavsagar[m]> I don't see how STM is better
2021-06-07 12:35:54 +0200 <vaibhavsagar[m]> the external application is developed by a third party in a non-Haskell language
2021-06-07 12:36:03 +0200 <dminuoso> ah wait, websockets comes with withPingThread, actually
2021-06-07 12:36:07 +0200ddellacosta(~ddellacos@89.46.62.115)
2021-06-07 12:36:22 +0200 <vaibhavsagar[m]> yes, I did notice that
2021-06-07 12:36:57 +0200 <dminuoso> vaibhavsagar[m]: depending on how you want to run things, you might have multiple threads, one of which responds to pings with pong
2021-06-07 12:37:03 +0200 <dminuoso> so stm could be used to coordinate these threads
2021-06-07 12:38:01 +0200chexum(~chexum@gateway/tor-sasl/chexum) (Remote host closed the connection)
2021-06-07 12:38:55 +0200ddellaco_(~ddellacos@89.45.224.251)
2021-06-07 12:41:19 +0200ddellacosta(~ddellacos@89.46.62.115) (Ping timeout: 245 seconds)
2021-06-07 12:41:30 +0200xsperry(~as@user/xsperry) (Ping timeout: 252 seconds)
2021-06-07 12:43:29 +0200ddellaco_(~ddellacos@89.45.224.251) (Ping timeout: 244 seconds)
2021-06-07 12:50:39 +0200themc47(~yecinem@89.246.239.190)
2021-06-07 12:51:52 +0200 <vaibhavsagar[m]> hmm, I need to look into this, thanks
2021-06-07 12:52:59 +0200mc47(~yecinem@89.246.239.190) (Ping timeout: 245 seconds)
2021-06-07 12:53:02 +0200larkfisherman(~larkfishe@217.75.204.126) (Quit: Leaving)
2021-06-07 12:53:07 +0200pasko__(~larkfishe@217.75.204.126) (Quit: Leaving)
2021-06-07 12:53:16 +0200 <dminuoso> vaibhavsagar[m]: The thing is, websockets gives you two asynchronous channels (much like stdin/stdout). If you have just one message and you want to respond to it, websockets is just un-needed overkill
2021-06-07 12:53:29 +0200 <dminuoso> Might as well just go play HTTP with say JSON ontop then
2021-06-07 12:53:58 +0200 <vaibhavsagar[m]> I don't get to choose the communication channel
2021-06-07 12:54:09 +0200 <vaibhavsagar[m]> that decision has already been made for me
2021-06-07 12:54:16 +0200 <vaibhavsagar[m]> and there are multiple messages
2021-06-07 12:54:25 +0200 <vaibhavsagar[m]> so websockets are not the worst idea
2021-06-07 12:54:48 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.1)
2021-06-07 12:56:03 +0200 <vaibhavsagar[m]> I already have a proof-of-concept working, we're not about to change it now :)
2021-06-07 12:56:27 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 12:56:32 +0200 <dminuoso> websockets is really odd, it's almost as if people re-invented TCP..
2021-06-07 12:56:41 +0200 <dminuoso> Ontop of HTTP.
2021-06-07 12:57:15 +0200 <vaibhavsagar[m]> ¯_(ツ)_/¯
2021-06-07 12:58:36 +0200themc47(~yecinem@89.246.239.190) (Quit: Leaving)
2021-06-07 12:58:52 +0200mc47(~yecinem@89.246.239.190)
2021-06-07 13:00:45 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-06-07 13:01:00 +0200 <tdammers> case in point, you do get the entire HTTP stack below those websockets, so in practice that means you won't have to worry about encryption and authentication specifically for websockets, you can just piggy-back on whatever you already have in place for your other HTTP stuff
2021-06-07 13:01:11 +0200 <tdammers> so yeah, it's a bit odd, but also quite helpful that way
2021-06-07 13:02:22 +0200 <dminuoso> tdammers: TLS is really straight foward to add, so Im not convinced this is a good argument. But yeah, authentication sure.
2021-06-07 13:02:34 +0200hendursa1(~weechat@user/hendursaga) (Remote host closed the connection)
2021-06-07 13:02:38 +0200 <dminuoso> otoh HTTP is a deeply semantic protocol that is very often mistreated
2021-06-07 13:02:57 +0200hendursa1(~weechat@user/hendursaga)
2021-06-07 13:03:00 +0200larkfisherman(~larkfishe@217.75.204.126)
2021-06-07 13:04:45 +0200 <tdammers> true on both accounts
2021-06-07 13:05:11 +0200wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-06-07 13:05:18 +0200notzmv(~zmv@user/notzmv)
2021-06-07 13:05:32 +0200 <tdammers> (also note that I didn't say it's correct or elegant in any way, just that it's helpful and that I understand why you'd want it)
2021-06-07 13:05:51 +0200 <dminuoso> Mostly though, I think it's just a force of habit.
2021-06-07 13:06:15 +0200yd502(~yd502@180.168.212.6) (Ping timeout: 252 seconds)
2021-06-07 13:06:46 +0200 <dminuoso> And perhaps it integrates better with existing tooling. You want to log whats going on? No need to write a wireshark decoder, put it in HTTP with JSON, and you can decipher it straight from `tcpdump`
2021-06-07 13:07:06 +0200 <dminuoso> And perhaps your fancy webserver already does this with fancy coloring and indention
2021-06-07 13:09:39 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 245 seconds)
2021-06-07 13:14:27 +0200 <tdammers> exactly
2021-06-07 13:14:49 +0200 <tdammers> you already have all the HTTP machinery in place
2021-06-07 13:18:07 +0200ddellacosta(~ddellacos@86.106.143.243)
2021-06-07 13:19:52 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-07 13:20:35 +0200teaSlurper(~chris@81.96.113.213)
2021-06-07 13:22:39 +0200hmmmas(~chenqisu1@183.217.201.236) (Quit: Leaving.)
2021-06-07 13:22:45 +0200ddellacosta(~ddellacos@86.106.143.243) (Ping timeout: 252 seconds)
2021-06-07 13:24:55 +0200Toast52(~Toast52@151.192.167.120) (Ping timeout: 264 seconds)
2021-06-07 13:25:31 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 264 seconds)
2021-06-07 13:26:30 +0200xsperry(~as@user/xsperry)
2021-06-07 13:26:44 +0200pe200012(~pe200012@58.248.179.178) (Ping timeout: 245 seconds)
2021-06-07 13:28:07 +0200pe200012(~pe200012@58.248.179.178)
2021-06-07 13:28:31 +0200wonko(~wjc@62.115.229.50) (Ping timeout: 264 seconds)
2021-06-07 13:29:13 +0200Kaivo(~Kaivo@user/kaivo) (WeeChat 3.0.1)
2021-06-07 13:29:46 +0200fendor(~fendor@178.115.130.234.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-06-07 13:30:28 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-07 13:34:37 +0200pe200012_(~pe200012@58.248.179.178)
2021-06-07 13:34:51 +0200pe200012(~pe200012@58.248.179.178) (Ping timeout: 252 seconds)
2021-06-07 13:35:08 +0200Toast52(~Toast52@151.192.167.120)
2021-06-07 13:35:36 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-06-07 13:39:20 +0200involans(~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) (Ping timeout: 252 seconds)
2021-06-07 13:39:42 +0200involans(~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net)
2021-06-07 13:40:04 +0200benin03(~benin@183.82.206.136) (Ping timeout: 245 seconds)
2021-06-07 13:40:21 +0200azeem(~azeem@176.200.235.0) (Ping timeout: 252 seconds)
2021-06-07 13:41:48 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-07 13:44:06 +0200malvo(~malvo@malvo.org) (Ping timeout: 268 seconds)
2021-06-07 13:45:22 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 13:49:09 +0200pera(~pera@user/pera) (Ping timeout: 252 seconds)
2021-06-07 13:52:04 +0200argento(~argent0@168-227-96-51.ptr.westnet.com.ar)
2021-06-07 13:55:17 +0200pera(~pera@204.red-79-159-199.dynamicip.rima-tde.net)
2021-06-07 13:55:41 +0200peraGuest9847
2021-06-07 13:58:19 +0200ddellacosta(~ddellacos@86.106.143.217)
2021-06-07 13:58:19 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
2021-06-07 13:58:30 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 13:58:38 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-07 14:00:28 +0200blizzard(~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) (Ping timeout: 244 seconds)
2021-06-07 14:01:26 +0200azeem(~azeem@176.201.37.236)
2021-06-07 14:01:48 +0200involans(~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) (Ping timeout: 252 seconds)
2021-06-07 14:02:10 +0200ubert(~Thunderbi@p200300ecdf259d3dfcd415488b1ba362.dip0.t-ipconnect.de)
2021-06-07 14:02:59 +0200ddellacosta(~ddellacos@86.106.143.217) (Ping timeout: 245 seconds)
2021-06-07 14:04:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-06-07 14:05:54 +0200nschoe(~quassel@2a01:e0a:8e:a190:458d:db56:1c93:24ea) (Ping timeout: 245 seconds)
2021-06-07 14:06:05 +0200nattiestnate(~nate@180.242.128.159)
2021-06-07 14:06:09 +0200srk(~sorki@user/srk) (Ping timeout: 244 seconds)
2021-06-07 14:06:26 +0200danidiaz(~ESDPC@47.61.17.254)
2021-06-07 14:06:56 +0200fendor(~fendor@178.115.130.234.wireless.dyn.drei.com)
2021-06-07 14:08:30 +0200involans(~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net)
2021-06-07 14:09:04 +0200srk(~sorki@user/srk)
2021-06-07 14:12:59 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 245 seconds)
2021-06-07 14:15:27 +0200unyu(~pyon@user/pyon) (Ping timeout: 244 seconds)
2021-06-07 14:16:13 +0200fendor(~fendor@178.115.130.234.wireless.dyn.drei.com) (Remote host closed the connection)
2021-06-07 14:18:00 +0200unyu(~pyon@user/pyon)
2021-06-07 14:18:19 +0200fendor(~fendor@178.115.130.234.wireless.dyn.drei.com)
2021-06-07 14:19:28 +0200Toast52(~Toast52@151.192.167.120) (Quit: Leaving)
2021-06-07 14:21:48 +0200 <janus> dminuoso: websockets provide message framing. a big plus imho
2021-06-07 14:22:09 +0200BosonCollider(~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 245 seconds)
2021-06-07 14:23:09 +0200chaosite(~chaosite@user/chaosite)
2021-06-07 14:26:24 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
2021-06-07 14:27:04 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 14:28:59 +0200 <dminuoso> janus: "message framing" is just a fancy way of saying "adding a length header"
2021-06-07 14:29:14 +0200 <dminuoso> Writing wire protocols is not hard.
2021-06-07 14:30:54 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Ping timeout: 245 seconds)
2021-06-07 14:31:29 +0200 <janus> not so hard if you have coroutines and stuff ;) harder if you have only BSD sockets and threads and you want DDoS protection and such :P
2021-06-07 14:33:33 +0200nkpart(uid3844@id-3844.highgate.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-07 14:33:43 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 272 seconds)
2021-06-07 14:33:55 +0200jorjor(~jorgemene@85.251.190.6.dyn.user.ono.com) (Ping timeout: 264 seconds)
2021-06-07 14:34:04 +0200 <guest61> does if then else have a scope?
2021-06-07 14:35:03 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
2021-06-07 14:35:26 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-07 14:35:39 +0200 <guest61> binding declared inside if then else , can't be found outside if then else
2021-06-07 14:36:40 +0200 <guest61> I'd like to say variable, but haskell variable can't be reassigned
2021-06-07 14:39:02 +0200 <dminuoso> guest61: Correct!
2021-06-07 14:39:27 +0200 <dminuoso> guest61: So first thing to realize, is that expression evaluation is not even defined in Haskell.
2021-06-07 14:39:50 +0200 <ski> having conditional declarations could be useful
2021-06-07 14:40:31 +0200 <dminuoso> guest61: So what does "outside" even mean?
2021-06-07 14:41:37 +0200 <ski> (also conditional commands, hmm)
2021-06-07 14:41:48 +0200 <dminuoso> If inside do-notation, you can either use an IORef (an manipulate it branch expressions), or you can feed values back out
2021-06-07 14:42:20 +0200 <dminuoso> do { f <- if foo then ([1,2,3] <$ someThing) else getList; ... }
2021-06-07 14:42:21 +0200pbrisbin(~patrick@pool-72-92-38-164.phlapa.fios.verizon.net)
2021-06-07 14:43:45 +0200 <ski> guest61 : by "have a scope", for a construct, presumably you mean it interacting non-trivially with scoping, in some way ?
2021-06-07 14:44:35 +0200ddellacosta(~ddellacos@86.106.121.24)
2021-06-07 14:44:54 +0200BosonCollider(~olofs@90-227-86-119-no542.tbcn.telia.com)
2021-06-07 14:44:57 +0200larkfisherman(~larkfishe@217.75.204.126) (Remote host closed the connection)
2021-06-07 14:45:42 +0200 <ski> in any case .. `if'-`then'-`else' (expressions) doesn't introduce a new scope, nor interact in some other unusual way with scoping .. iow, what is in scope of the whole expression is also what is in scope in the three subexpressions
2021-06-07 14:46:27 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-06-07 14:46:56 +0200 <ski> guest61 : however, you said "binding declared inside if then else", but that's (perhaps unfortunately) simply not a thing, in Haskell, since there are no conditional declarations (nor commands), just conditional expressions
2021-06-07 14:46:59 +0200 <Athas> What's the most efficient way to construct large Text values? E.g. for serialisation.
2021-06-07 14:47:08 +0200 <Athas> Or imagine a prettyprinter that doesn't have to be "pretty".
2021-06-07 14:47:23 +0200 <ski> you can't e.g. say
2021-06-07 14:47:27 +0200 <ski> if ...
2021-06-07 14:47:39 +0200 <ski> then x:xs = ...
2021-06-07 14:47:47 +0200 <ski> y = ...
2021-06-07 14:47:56 +0200 <ski> else (x,y) = ...
2021-06-07 14:48:06 +0200 <ski> xs = ...
2021-06-07 14:48:49 +0200ddellacosta(~ddellacos@86.106.121.24) (Ping timeout: 245 seconds)
2021-06-07 14:49:32 +0200 <ski> guest61 : did you have a particular situation, or example, of something you wanted to do ?
2021-06-07 14:49:44 +0200larkfisherman(~larkfishe@217.75.204.126)
2021-06-07 14:50:14 +0200teaSlurper(~chris@81.96.113.213)
2021-06-07 14:51:50 +0200jakzale(uid499518@id-499518.charlton.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-07 14:53:47 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-07 14:54:46 +0200david__(~david@77-171-152-62.fixed.kpn.net)
2021-06-07 14:55:28 +0200 <ski> guest61 : if you're talking about using `let'-`in' expressions, inside a conditional (`if'-`then'-`else'), then this is not in any way different from using a `let'-`in' inside any other construct -- the bindings declared between `let' and `in' are only in scope in the portion after the `in', never in scope anywhere else (such as outside your `if'-`then'-`else' expression, that wrapped the `let'-`in'
2021-06-07 14:55:34 +0200 <ski> expression)
2021-06-07 14:56:03 +0200shapr(~user@108.28.144.11)
2021-06-07 14:56:28 +0200jippiedoe(~david@77-171-152-62.fixed.kpn.net)
2021-06-07 14:56:31 +0200david__(~david@77-171-152-62.fixed.kpn.net) ()
2021-06-07 14:58:28 +0200 <ski> .. being able to say things like `do {if foo then {f <- [1,2,3] <$ someThing)} else {f <- getList}; ...}' could be quite useful, at times
2021-06-07 15:01:10 +0200 <tomsmeding> Athas: what about Data.Text.Lazy.Builder ?
2021-06-07 15:01:16 +0200alx741(~alx741@181.196.69.96)
2021-06-07 15:01:44 +0200 <Athas> tomsmeding: ah, yes. Is it much faster than just consing up Texts and mappending them?
2021-06-07 15:02:17 +0200 <tomsmeding> don't know, to be honest; but if it weren't, it wouldn't exist, I'd think
2021-06-07 15:06:19 +0200nattiestnate(~nate@180.242.128.159) (Quit: WeeChat 3.1)
2021-06-07 15:06:22 +0200 <gentauro> Athas: https://hackage.haskell.org/package/bytestring-0.11.1.0/docs/Data-ByteString-Lazy-Char8.html#v:fro…
2021-06-07 15:06:26 +0200 <gentauro> ?
2021-06-07 15:06:50 +0200nschoe(~quassel@2a01:e0a:8e:a190:5a3:b172:cf1b:f959)
2021-06-07 15:08:26 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4) (Remote host closed the connection)
2021-06-07 15:08:58 +0200 <ski> a more general thing would be to allow something like `do { foo do {x <- ...; y <- ...}; ..x..y.. }', where `foo :: forall a. m a -> n a', `m' and `n' being the two monads in question
2021-06-07 15:08:59 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-06-07 15:09:29 +0200notzmv(~zmv@user/notzmv)
2021-06-07 15:10:40 +0200Guest9847(~pera@204.red-79-159-199.dynamicip.rima-tde.net) (Quit: leaving)
2021-06-07 15:12:17 +0200jneira(~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
2021-06-07 15:12:45 +0200danidiaz(~ESDPC@47.61.17.254) (Ping timeout: 252 seconds)
2021-06-07 15:13:18 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4) (Ping timeout: 252 seconds)
2021-06-07 15:13:21 +0200safinaskar(~user@109.252.90.89)
2021-06-07 15:13:28 +0200 <safinaskar> hi! do you want a quiz?
2021-06-07 15:13:45 +0200 <safinaskar> what does this expression do: s == s?
2021-06-07 15:13:59 +0200 <safinaskar> this is code from my real program and i put it there for reason
2021-06-07 15:14:00 +0200ddellacosta(~ddellacos@86.106.121.204)
2021-06-07 15:14:07 +0200 <safinaskar> why i put it there? what this code does?
2021-06-07 15:14:12 +0200 <shryke> seq?
2021-06-07 15:14:32 +0200 <safinaskar> shryke: you are very close :)
2021-06-07 15:14:53 +0200 <tomsmeding> assuming nothing shadows (==) from base, that runs the (==) method of the Eq instance of the type of `s`, assuming it has any
2021-06-07 15:15:12 +0200 <tomsmeding> for any _decent_ Eq instance it will indeed amount to deepseq :p
2021-06-07 15:15:23 +0200 <safinaskar> tomsmeding: yes, you are right!
2021-06-07 15:15:49 +0200 <safinaskar> tomsmeding: i use it as (s `deepseq` True) replacement without dependency on deepseq!
2021-06-07 15:16:12 +0200 <tomsmeding> quite neat
2021-06-07 15:16:20 +0200kenran(~kenran@b2b-37-24-119-190.unitymedia.biz)
2021-06-07 15:16:37 +0200 <maralorn> tomsmeding: Wasn‘t there some magic for "Seq" that it keeps thunks even when you access all entries?
2021-06-07 15:17:14 +0200 <tomsmeding> maralorn: you mean lowercase 'seq'?
2021-06-07 15:17:22 +0200 <maralorn> No, uppercase.
2021-06-07 15:17:30 +0200 <dminuoso> tomsmeding: Why would (==) amount to deepseq?
2021-06-07 15:17:37 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-06-07 15:17:53 +0200 <kenran> Can I re-export instances that I've imported somehow? I'm doing `import Test.QuickCheck.Instances.ByteString as Bla` and at the top `module Foo (module Bla) where` but I'm getting "the export item Bla exports nothing"
2021-06-07 15:17:54 +0200 <tomsmeding> dminuoso: to establish structural equality, you have to evaluate the whole structure, assuming a normal ADT
2021-06-07 15:18:04 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 15:18:11 +0200 <boxscape> tomsmeding not if the first element of the structure you check is already not equal
2021-06-07 15:18:19 +0200 <tomsmeding> maralorn: which Seq do you mean? I know Data.Sequence, but that's probably not what you mean here
2021-06-07 15:18:27 +0200 <tomsmeding> boxscape: `s == s`
2021-06-07 15:18:31 +0200 <boxscape> oh whoops
2021-06-07 15:18:33 +0200 <maralorn> I think fingertrees are constructed in a way that they contain some internal thunks even when they look completely evaluated to the user.
2021-06-07 15:18:34 +0200 <dminuoso> tomsmeding: Not trying to be picky, but you'd have to do more than just evaluate..
2021-06-07 15:18:36 +0200 <maralorn> Yeah, I mean Data.Sequence
2021-06-07 15:18:45 +0200 <boxscape> tomsmeding wait was that what we were talking about?
2021-06-07 15:18:55 +0200 <int-e> maralorn: you can have such magic for Eq too... newtype Indifferent a = Indifferent a; instance Eq (Indifferent a) where _ == _ = True
2021-06-07 15:19:14 +0200 <boxscape> tomsmeding ah yes, I see it now
2021-06-07 15:19:19 +0200ddellacosta(~ddellacos@86.106.121.204) (Ping timeout: 272 seconds)
2021-06-07 15:20:00 +0200 <tomsmeding> maralorn: no idea, but a functional pearl I read recently about the finger tree data structure suggested it's just a normal (though non-uniformly recursive) ADT
2021-06-07 15:20:33 +0200 <tomsmeding> dminuoso: fair point, it does more computation, but semantically that shouldn't matter (for structural equality on ADTs)
2021-06-07 15:21:14 +0200 <dminuoso> tomsmeding: Oh it just clicked. I didn't understand the presented riddle.
2021-06-07 15:21:31 +0200 <dminuoso> It's not about Eq instances, its rather why would `s == s` ever be a useful thing to write.
2021-06-07 15:21:46 +0200 <int-e> testing for NaN
2021-06-07 15:21:51 +0200 <dminuoso> heh
2021-06-07 15:22:13 +0200 <int-e> but I like "poor people's deepSeq"
2021-06-07 15:22:14 +0200 <tomsmeding> my trick was always 'length (show s) `seq` ()', but perhaps this one is nicer
2021-06-07 15:22:19 +0200 <boxscape> % isNaN s = s /= s
2021-06-07 15:22:19 +0200 <yahb> boxscape:
2021-06-07 15:22:23 +0200 <tomsmeding> indeed except if you have NaNs...
2021-06-07 15:23:29 +0200ddellacosta(~ddellacos@86.106.121.74)
2021-06-07 15:23:35 +0200 <dminuoso> Im curious why deepseq would be a good default for Eq though
2021-06-07 15:23:42 +0200 <kenran> Oh, it seems like the instances I import are automatically reexported?!
2021-06-07 15:23:53 +0200 <dminuoso> kenran: Yes.
2021-06-07 15:23:57 +0200 <dminuoso> You cannot not export an instance
2021-06-07 15:24:01 +0200 <dminuoso> Open world assumption.
2021-06-07 15:24:06 +0200 <kenran> TIL, thanks.
2021-06-07 15:25:06 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-07 15:27:33 +0200 <tomsmeding> dminuoso: (==) only becomes deepseq when it's called on two equal arguments
2021-06-07 15:27:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
2021-06-07 15:28:37 +0200siraben(~siraben@user/siraben) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200kadoban(~kadoban@user/kadoban) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200MatrixTravelerbo(~voyagert2@2001:470:69fc:105::22) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200psydroid(~psydroidm@user/psydroid) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200sm[m](~sm@plaintextaccounting/sm) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200peddie(~peddie@2001:470:69fc:105::25d) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200ac(~aloiscoch@2001:470:69fc:105::65) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200maerwald[m](~maerwaldm@2001:470:69fc:105::1ee) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200fgaz(~fgaz@2001:470:69fc:105::842) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200maralorn(~maralorn@2001:470:69fc:105::251) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200ServerStatsDisco(~serversta@2001:470:69fc:105::1a) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200fabfianda[m](~fabfianda@2001:470:69fc:105::6db) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200the-coot[m](~the-cootm@2001:470:69fc:105::95f) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200Las[m](~lasmatrix@2001:470:69fc:105::74e) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200hjulle[m](~hjullemat@2001:470:69fc:105::1dd) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200srid[m](~sridmatri@2001:470:69fc:105::1c2) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200Morrow[m](~morrowmma@2001:470:69fc:105::1d0) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200jaror[m](~jaror@2001:470:69fc:105::265) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200adziahel[m](~adziahelm@2001:470:69fc:105::b4d) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200tomferon[m](~tomferon@2001:470:69fc:105::268) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200ru0mad[m](~ru0madmat@2001:470:69fc:105::9b2) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200bb010g(~bb010gmat@2001:470:69fc:105::9a5) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200Drezil(~drezilkif@2001:470:69fc:105::7f8) (Quit: node-irc says goodbye)
2021-06-07 15:28:37 +0200Artem[m](~artemtype@2001:470:69fc:105::75b) (Quit: node-irc says goodbye)
2021-06-07 15:28:38 +0200cdsmith(~cdsmithma@2001:470:69fc:105::284) (Quit: node-irc says goodbye)
2021-06-07 15:28:38 +0200marinelli[m](~marinelli@2001:470:69fc:105::2d8) (Quit: node-irc says goodbye)
2021-06-07 15:28:38 +0200zwro[m](~zwromatri@2001:470:69fc:105::1d4) (Quit: node-irc says goodbye)
2021-06-07 15:28:38 +0200cdepillabout[m](~cdepillab@2001:470:69fc:105::3d3) (Quit: node-irc says goodbye)
2021-06-07 15:28:38 +0200amesgen[m](~amesgenam@2001:470:69fc:105::82b) (Quit: node-irc says goodbye)
2021-06-07 15:28:38 +0200kosmikus[m](~andresloe@2001:470:69fc:105::95d) (Quit: node-irc says goodbye)
2021-06-07 15:28:38 +0200Soft(~soft-matr@2001:470:69fc:105::c75) (Quit: node-irc says goodbye)
2021-06-07 15:28:38 +0200oak-(~oakuniver@2001:470:69fc:105::fcd) (Quit: node-irc says goodbye)
2021-06-07 15:28:39 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe) (Quit: node-irc says goodbye)
2021-06-07 15:28:39 +0200eddiemundo(~eddiemund@2001:470:69fc:105::a9c) (Quit: node-irc says goodbye)
2021-06-07 15:28:46 +0200safinaskar2(~safinaska@109-252-90-89.nat.spd-mgts.ru)
2021-06-07 15:28:52 +0200 <tomsmeding> % :t (deepseq, join (==) `seq` (), \a -> length (show a) `seq` ())
2021-06-07 15:28:52 +0200 <yahb> tomsmeding: ; <interactive>:1:2: error: Variable not in scope: deepseq
2021-06-07 15:29:03 +0200 <tomsmeding> :t (deepseq, join (==) `seq` (), \a -> length (show a) `seq` ())
2021-06-07 15:29:04 +0200 <lambdabot> error: Variable not in scope: deepseq
2021-06-07 15:29:26 +0200 <dminuoso> tomsmeding: as in, `s == s` is a poor-mans deepseq without NFData?
2021-06-07 15:29:38 +0200 <dminuoso> assuming a sensible Eq instance?
2021-06-07 15:29:53 +0200 <tomsmeding> yeah
2021-06-07 15:30:08 +0200 <tomsmeding> and an ADT structure
2021-06-07 15:30:44 +0200 <dminuoso> What does "an ADT structure" mean? Is there a precise definition? Sorry to ask this many questions, Im just a bit clueless. :)
2021-06-07 15:32:09 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Ping timeout: 245 seconds)
2021-06-07 15:32:31 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-07 15:32:58 +0200ddellacosta(~ddellacos@86.106.121.74) (Remote host closed the connection)
2021-06-07 15:33:26 +0200ddellacosta(~ddellacos@86.106.121.74)
2021-06-07 15:34:24 +0200ddellaco_(~ddellacos@89.46.62.69)
2021-06-07 15:34:45 +0200 <guest61> dminuoso ski, https://paste.ubuntu.com/p/MGC3RvDPY9/
2021-06-07 15:35:07 +0200hylisper(~ykm@111.119.208.67) (Ping timeout: 264 seconds)
2021-06-07 15:35:09 +0200shryke(~shryke@91.103.43.254) (Quit: WeeChat 3.1)
2021-06-07 15:35:19 +0200 <dminuoso> This looks ripe for improvements.
2021-06-07 15:35:24 +0200GIANTWORLDKEEPER(~pjetcetal@2.95.204.25)
2021-06-07 15:35:34 +0200 <dminuoso> Packet with error bombs. :)
2021-06-07 15:35:36 +0200 <guest61> trying to create a bunch of variables
2021-06-07 15:35:51 +0200hylisper(~ykm@111.119.208.67)
2021-06-07 15:36:26 +0200 <guest61> how you call creat a variable?
2021-06-07 15:36:32 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 15:36:49 +0200 <guest61> bind something? identity?
2021-06-07 15:36:57 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-07 15:36:58 +0200 <guest61> declare a variable?
2021-06-07 15:37:13 +0200safinaskar(~user@109.252.90.89) ()
2021-06-07 15:37:20 +0200ikex(~ash@user/ikex)
2021-06-07 15:37:26 +0200safinaskar2safinaskar
2021-06-07 15:37:53 +0200 <dminuoso> guest61: In Haskell, a variable is not a mutable store/reference
2021-06-07 15:38:02 +0200 <dminuoso> Perhaps, think of it as a name for an expression.
2021-06-07 15:38:03 +0200ddellacosta(~ddellacos@86.106.121.74) (Ping timeout: 252 seconds)
2021-06-07 15:38:40 +0200 <guest61> why expression? could not be a statement?
2021-06-07 15:38:46 +0200 <dminuoso> We dont have statements in the language
2021-06-07 15:39:03 +0200 <guest61> an IO action is not a statement?
2021-06-07 15:40:05 +0200 <guest61> the code I paste, how to change it?
2021-06-07 15:40:18 +0200 <safinaskar> is there pointer equality in Haskell, which fail backs to normal equality? is it okey to use (reallyUnsafePtrEquality# a b == 1# || a == b)? (this code looks scary)
2021-06-07 15:41:00 +0200 <dminuoso> guest61: IO actions model statements, but they are not part of the syntax.
2021-06-07 15:41:09 +0200 <dminuoso> Or rather, >>=/>> for IO models statements.
2021-06-07 15:41:13 +0200Topsi(~Tobias@dyndsl-095-033-093-145.ewe-ip-backbone.de)
2021-06-07 15:41:32 +0200 <dminuoso> guest61: So there's a number of things to improve in your code. Would you like to hear about them?
2021-06-07 15:41:41 +0200 <guest61> yes
2021-06-07 15:41:59 +0200 <dminuoso> Then let's go through them all, alongside we will find a more elegant solution for your problem,
2021-06-07 15:42:21 +0200 <guest61> ok
2021-06-07 15:42:25 +0200__monty__(~toonn@user/toonn)
2021-06-07 15:42:26 +0200 <dminuoso> First off, you make use of functions dubbed "unsafe". Namely `fromJust` and (!!). Both you should really forget about.,
2021-06-07 15:42:51 +0200 <dminuoso> Part of the reason is, they have a failure mode that you cannot sensibly recover from.
2021-06-07 15:43:04 +0200 <dminuoso> % n :: Maybe Int
2021-06-07 15:43:04 +0200 <yahb> dminuoso: ; <interactive>:89:1: error: Variable not in scope: n :: Maybe Int
2021-06-07 15:43:07 +0200 <dminuoso> % n :: Maybe Int; n = Nothing
2021-06-07 15:43:07 +0200 <yahb> dminuoso:
2021-06-07 15:43:09 +0200 <safinaskar> guest61: it seems you don't know basic things. i suggest reading http://learnyouahaskell.com/
2021-06-07 15:43:09 +0200 <guest61> but I already check Nothing first
2021-06-07 15:43:29 +0200 <dminuoso> guest61: Great, but you threw this knowledge away.
2021-06-07 15:44:10 +0200 <guest61> checkParameters :: [Maybe a]
2021-06-07 15:44:38 +0200 <guest61> the first line, I use elemIndices to check if there is Nothing in it
2021-06-07 15:44:43 +0200 <guest61> then I use fromJust
2021-06-07 15:44:51 +0200 <guest61> so its safe I think
2021-06-07 15:44:58 +0200Sose(~username@mobile-access-6df047-172.dhcp.inet.fi) (Ping timeout: 268 seconds)
2021-06-07 15:45:05 +0200 <dminuoso> guest61: Probably, until you restructure your code slightly - then the type system cannot warn you.
2021-06-07 15:45:21 +0200 <dminuoso> It's highly idiomatic and brittle to write code in this style
2021-06-07 15:45:25 +0200 <dminuoso> *unidiomatic
2021-06-07 15:45:37 +0200 <guest61> also that checkParameters length is fixed, so !! won't out of the index, that's safe too
2021-06-07 15:46:06 +0200 <dminuoso> guest61: Perhaps, but you are in IO. So we can still error out with a better diagnostic.
2021-06-07 15:46:38 +0200 <dminuoso> guest61: Im guessing the data comes from a file, right?
2021-06-07 15:46:41 +0200 <guest61> wait a sec, I can paste the code old way, more ugly
2021-06-07 15:46:54 +0200 <dminuoso> Presumably something you grab from `lines <$> readLines`?
2021-06-07 15:47:02 +0200 <dminuoso> err `lines <$> readFile path`
2021-06-07 15:47:27 +0200fluffyballoon(~fluffybal@2620:72:0:6480::e5)
2021-06-07 15:47:40 +0200 <dminuoso> guest61: So lets ignore the (!!) right now. What you could do is this:
2021-06-07 15:48:19 +0200 <guest61> https://paste.ubuntu.com/p/GPGT3VWZcH/
2021-06-07 15:48:58 +0200 <guest61> see that's more ugly...
2021-06-07 15:49:21 +0200 <guest61> yes, read data from a file and parse
2021-06-07 15:49:50 +0200 <dminuoso> getParam :: Int -> [Maybe a] -> IO a; getParam p xs = maybe (fail ("Missing parameter " <> show p)) pure (xs !! p)
2021-06-07 15:49:59 +0200madnight(~madnight@static.59.103.201.195.clients.your-server.de) (Quit: ZNC 1.7.1 - https://znc.in)
2021-06-07 15:50:09 +0200 <dminuoso> guest61: ^- this is not an elegant final solution, but this little combinator will let you avoid a lot of pain here.
2021-06-07 15:50:11 +0200madnight(~madnight@static.59.103.201.195.clients.your-server.de)
2021-06-07 15:50:13 +0200safinaskar(~safinaska@109-252-90-89.nat.spd-mgts.ru) (Quit: Client closed)
2021-06-07 15:50:16 +0200 <dminuoso> Then you can write code in this style:
2021-06-07 15:50:41 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-06-07 15:51:19 +0200hendursaga(~weechat@user/hendursaga)
2021-06-07 15:51:41 +0200 <guest61> but those variables are need in the rest code, they can't be IO a, They need to be Text
2021-06-07 15:51:56 +0200 <dminuoso> do { let param p = getParam p checkParameters; mode <- param 0; server <- param 1; ... password <- maybe (pure "") pure (checkParameters !! 4); ... }
2021-06-07 15:51:56 +0200ddellacosta(~ddellacos@86.106.143.61)
2021-06-07 15:51:58 +0200 <guest61> otherwise I need to change a lot functions
2021-06-07 15:51:58 +0200 <dminuoso> guest61: ^-
2021-06-07 15:52:59 +0200pe200012_(~pe200012@58.248.179.178) (Ping timeout: 245 seconds)
2021-06-07 15:53:19 +0200pe200012_(~pe200012@120.236.162.3)
2021-06-07 15:53:21 +0200 <dminuoso> guest61: This has the added benefit of giving a graceful error, if due to some unforseen circumstance (perhaps you missed a Nothing, or a parameter got removed/added) there's suddenly an unexpected Nothing.
2021-06-07 15:53:27 +0200oxide(~lambda@user/oxide) (Ping timeout: 252 seconds)
2021-06-07 15:53:48 +0200 <ski> let password = fromMaybe ""(checkParameters !! 4)
2021-06-07 15:54:13 +0200 <dminuoso> ^- this is more a drop-in replacement for what you have, without addressing the rest.
2021-06-07 15:54:19 +0200 <dminuoso> Oh, I guess I should have written:
2021-06-07 15:54:27 +0200 <dminuoso> do { let param p = getParam p checkParameters; mode <- param 0; server <- param 1; ... password <- fromMaybe "" pure (checkParameters !! 4); ... }
2021-06-07 15:54:29 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com)
2021-06-07 15:54:29 +0200 <dminuoso> Thanks, ski.
2021-06-07 15:54:31 +0200 <guest61> fromMaybe is better
2021-06-07 15:54:37 +0200 <guest61> than my fromJust
2021-06-07 15:55:14 +0200 <guest61> what's this do ? Maybe or IO?
2021-06-07 15:55:37 +0200 <dminuoso> % :t fromMaybe
2021-06-07 15:55:37 +0200 <yahb> dminuoso: a -> Maybe a -> a
2021-06-07 15:55:38 +0200 <guest61> oh IO
2021-06-07 15:55:49 +0200 <dminuoso> oh hah wait
2021-06-07 15:55:57 +0200 <dminuoso> do { let param p = getParam p checkParameters; mode <- param 0; server <- param 1; ... password <- fromMaybe (pure "") pure (checkParameters !! 4); ... }
2021-06-07 15:55:59 +0200 <dminuoso> Here we go.
2021-06-07 15:56:19 +0200 <dminuoso> You could do other tricks too, like stay in Either String and collect the error there
2021-06-07 15:56:43 +0200neceve(~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 244 seconds)
2021-06-07 15:57:04 +0200ddellacosta(~ddellacos@86.106.143.61) (Ping timeout: 272 seconds)
2021-06-07 15:57:13 +0200 <guest61> no need, just simple Text is what other functions need, no more wrapped
2021-06-07 15:57:40 +0200 <guest61> otherwise I need to change a lot of functions
2021-06-07 15:59:02 +0200 <ski> better with `let' than `<-' and `pure', for `password'
2021-06-07 16:00:46 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-06-07 16:01:05 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-07 16:01:54 +0200 <guest61> if there's Nothing in thst list, so it would return "missing parameter"?
2021-06-07 16:02:38 +0200 <guest61> But there's another questions, see my second paste, the missing msg is different
2021-06-07 16:03:06 +0200 <guest61> missing different variables, show different msg
2021-06-07 16:03:39 +0200 <guest61> oh you did
2021-06-07 16:03:54 +0200 <guest61> I forgot <> p
2021-06-07 16:04:18 +0200 <guest61> that's more elegant
2021-06-07 16:05:04 +0200 <guest61> I will try it later, thanks, dminuoso, ski
2021-06-07 16:06:35 +0200 <ski> guest61 : what's the length of `checkParameters' ?
2021-06-07 16:06:35 +0200o1lo01ol1o(~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net) (Ping timeout: 245 seconds)
2021-06-07 16:07:08 +0200 <guest61> 8
2021-06-07 16:08:17 +0200yoctocell(~user@h87-96-130-155.cust.a3fiber.se)
2021-06-07 16:08:24 +0200azeem(~azeem@176.201.37.236) (Ping timeout: 245 seconds)
2021-06-07 16:09:45 +0200 <guest61> ghc tells me <|> is ambitious, there are Control.Applicative and Text.ParserComBinators.Parsec.<|>, but I don't want to qualified Control.Applivative neither Parsec
2021-06-07 16:09:58 +0200 <guest61> any suggestions?
2021-06-07 16:10:43 +0200 <guest61> why <|> could be like id?
2021-06-07 16:10:46 +0200azeem(~azeem@176.201.16.12)
2021-06-07 16:10:50 +0200 <guest61> id is so arbi
2021-06-07 16:10:52 +0200 <guest61> arbitrary
2021-06-07 16:10:58 +0200o1lo01ol1o(~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net)
2021-06-07 16:11:24 +0200 <guest61> not
2021-06-07 16:14:44 +0200Sgeo(~Sgeo@user/sgeo)
2021-06-07 16:15:27 +0200 <yushyin> guest61: usually import the <|> from control.applicative unqualified and others qualified but with a shorter renamed namespace
2021-06-07 16:16:05 +0200 <guest61> yeah, I hate that
2021-06-07 16:16:28 +0200 <yushyin> you can also hide the other <|> and not import it at all
2021-06-07 16:17:11 +0200 <guest61> but <|> from Control and Text both are used
2021-06-07 16:18:52 +0200 <Lycurgus> ambitious
2021-06-07 16:19:04 +0200 <Lycurgus> hubristic even
2021-06-07 16:23:14 +0200fizbin(~fizbin@2600:1002:b128:230e:1cbd:13c5:3322:f6cc)
2021-06-07 16:24:13 +0200ddellaco_(~ddellacos@89.46.62.69) (Remote host closed the connection)
2021-06-07 16:24:41 +0200ddellacosta(~ddellacos@89.46.62.69)
2021-06-07 16:26:25 +0200oxide(~lambda@user/oxide)
2021-06-07 16:26:57 +0200jneira(~jneira@166.red-81-39-172.dynamicip.rima-tde.net)
2021-06-07 16:28:19 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-07 16:28:29 +0200 <yushyin> You could define another operator as an alias to one of the others.
2021-06-07 16:28:54 +0200 <DigitalKiwi> <|> voted most likely to succeed in the year book
2021-06-07 16:29:22 +0200ddellacosta(~ddellacos@89.46.62.69) (Ping timeout: 272 seconds)
2021-06-07 16:29:46 +0200ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-06-07 16:30:10 +0200ukari(~ukari@user/ukari)
2021-06-07 16:30:41 +0200 <boxscape> Guest2041 you should be able to use Control.Applicative's for both, I think? There is an `Alternative` instance for Parsec
2021-06-07 16:30:48 +0200zeenk(~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41)
2021-06-07 16:30:49 +0200 <boxscape> uhh, wrong guest, sorry
2021-06-07 16:30:52 +0200 <boxscape> guest61
2021-06-07 16:33:16 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr) (Remote host closed the connection)
2021-06-07 16:33:19 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 264 seconds)
2021-06-07 16:33:38 +0200ddellacosta(~ddellacos@89.46.62.86)
2021-06-07 16:35:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-06-07 16:37:01 +0200 <yushyin> if that's the case, it's very likely the same implementation, yup.
2021-06-07 16:37:15 +0200ddellacosta(~ddellacos@89.46.62.86) (Remote host closed the connection)
2021-06-07 16:37:43 +0200ddellacosta(~ddellacos@89.46.62.86)
2021-06-07 16:37:52 +0200 <boxscape> yeah I checked, they're both implemented as mplus
2021-06-07 16:37:57 +0200 <geekosaur> I* was under the (possibly incorrect) impression the Parsec one is monadic, for performance reasons
2021-06-07 16:37:59 +0200 <geekosaur> ah
2021-06-07 16:42:24 +0200ddellacosta(~ddellacos@89.46.62.86) (Ping timeout: 252 seconds)
2021-06-07 16:42:50 +0200ddellacosta(~ddellacos@89.46.62.34)
2021-06-07 16:43:10 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-06-07 16:43:30 +0200azeem(~azeem@176.201.16.12) (Ping timeout: 252 seconds)
2021-06-07 16:45:19 +0200fluffyballoon(~fluffybal@2620:72:0:6480::e5) (Quit: Client closed)
2021-06-07 16:47:40 +0200azeem(~azeem@176.201.16.12)
2021-06-07 16:48:03 +0200ddellaco_(~ddellacos@89.46.62.34)
2021-06-07 16:48:14 +0200hiptobecubic(~john@c-73-55-99-95.hsd1.fl.comcast.net)
2021-06-07 16:48:53 +0200awth13(~user@193.27.14.133)
2021-06-07 16:49:56 +0200ddellacosta(~ddellacos@89.46.62.34) (Ping timeout: 244 seconds)
2021-06-07 16:50:02 +0200ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-06-07 16:50:25 +0200ukari(~ukari@user/ukari)
2021-06-07 16:54:16 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-06-07 16:54:20 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-07 16:54:30 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
2021-06-07 16:54:35 +0200ddellacosta(~ddellacos@86.106.121.23)
2021-06-07 16:54:49 +0200noglog(~egigs@097-101-149-192.res.spectrum.com)
2021-06-07 16:54:57 +0200 <noglog> is there a way to turn -Wmissing-methods into an error?
2021-06-07 16:57:01 +0200 <noglog> hm, manual says -Werror=missing-methods should work. Thanks
2021-06-07 16:57:17 +0200ddellaco_(~ddellacos@89.46.62.34) (Ping timeout: 272 seconds)
2021-06-07 16:57:46 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 16:59:28 +0200ddellaco_(~ddellacos@89.45.224.178)
2021-06-07 17:01:14 +0200o1lo01ol1o(~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-07 17:01:45 +0200nattiestnate(~nate@180.242.128.159)
2021-06-07 17:01:54 +0200ddellacosta(~ddellacos@86.106.121.23) (Remote host closed the connection)
2021-06-07 17:02:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-07 17:02:56 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
2021-06-07 17:03:00 +0200infandum(~user@207.44.105.67.res-cmts.all2.ptd.net)
2021-06-07 17:03:48 +0200o1lo01ol1o(~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net)
2021-06-07 17:03:49 +0200ddellaco_(~ddellacos@89.45.224.178) (Ping timeout: 245 seconds)
2021-06-07 17:04:25 +0200 <infandum> I am using optparse-generic. My program has different commands, each sharing some arguments. One set of arguments in particular are shared across many commands. Is it possible to have a set of value constructors copied over the "or"s in the data keyword?
2021-06-07 17:05:34 +0200 <infandum> Like, Options1 { arg1, arg2, arg3} | Options2 { arg1, arg2, arg4 } | etc. -> Options1 { argSet, arg3 } | Options2 { argSet, arg4 } | etc.
2021-06-07 17:06:01 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-06-07 17:07:08 +0200wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com)
2021-06-07 17:07:09 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 245 seconds)
2021-06-07 17:07:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-07 17:07:30 +0200ddellacosta(~ddellacos@86.106.121.47)
2021-06-07 17:07:34 +0200argento(~argent0@168-227-96-51.ptr.westnet.com.ar) (Ping timeout: 245 seconds)
2021-06-07 17:08:00 +0200ikex(~ash@user/ikex) (Ping timeout: 272 seconds)
2021-06-07 17:11:33 +0200kenran(~kenran@b2b-37-24-119-190.unitymedia.biz) (Ping timeout: 252 seconds)
2021-06-07 17:12:12 +0200ddellaco_(~ddellacos@86.106.121.89)
2021-06-07 17:12:46 +0200blizzard(~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com)
2021-06-07 17:13:20 +0200maerwald[m](~maerwaldm@2001:470:69fc:105::1ee)
2021-06-07 17:13:42 +0200ddellacosta(~ddellacos@86.106.121.47) (Ping timeout: 244 seconds)
2021-06-07 17:14:01 +0200ac(~aloiscoch@2001:470:69fc:105::65)
2021-06-07 17:14:01 +0200sm[m](~sm@plaintextaccounting/sm)
2021-06-07 17:14:01 +0200MatrixTravelerbo(~voyagert2@2001:470:69fc:105::22)
2021-06-07 17:14:01 +0200maralorn(~maralorn@2001:470:69fc:105::251)
2021-06-07 17:14:01 +0200fgaz(~fgaz@2001:470:69fc:105::842)
2021-06-07 17:14:02 +0200peddie(~peddie@2001:470:69fc:105::25d)
2021-06-07 17:14:02 +0200psydroid(~psydroidm@2001:470:69fc:105::165)
2021-06-07 17:14:02 +0200siraben(~siraben@user/siraben)
2021-06-07 17:14:02 +0200fabfianda[m](~fabfianda@2001:470:69fc:105::6db)
2021-06-07 17:14:02 +0200ServerStatsDisco(~serversta@2001:470:69fc:105::1a)
2021-06-07 17:14:02 +0200the-coot[m](~the-cootm@2001:470:69fc:105::95f)
2021-06-07 17:14:02 +0200kadoban(~kadoban@user/kadoban)
2021-06-07 17:14:05 +0200Las[m](~lasmatrix@2001:470:69fc:105::74e)
2021-06-07 17:14:07 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe)
2021-06-07 17:14:13 +0200zwro[m](~zwromatri@2001:470:69fc:105::1d4)
2021-06-07 17:14:13 +0200hjulle[m](~hjullemat@2001:470:69fc:105::1dd)
2021-06-07 17:14:13 +0200Morrow[m](~morrowmma@2001:470:69fc:105::1d0)
2021-06-07 17:14:13 +0200srid[m](~sridmatri@2001:470:69fc:105::1c2)
2021-06-07 17:14:14 +0200Artem[m](~artemtype@2001:470:69fc:105::75b)
2021-06-07 17:14:14 +0200Drezil(~drezilkif@2001:470:69fc:105::7f8)
2021-06-07 17:14:14 +0200cdepillabout[m](~cdepillab@2001:470:69fc:105::3d3)
2021-06-07 17:14:14 +0200kosmikus[m](~andresloe@2001:470:69fc:105::95d)
2021-06-07 17:14:14 +0200bb010g(~bb010gmat@2001:470:69fc:105::9a5)
2021-06-07 17:14:14 +0200oak-(~oakuniver@2001:470:69fc:105::fcd)
2021-06-07 17:14:14 +0200amesgen[m](~amesgenam@2001:470:69fc:105::82b)
2021-06-07 17:14:14 +0200tomferon[m](~tomferon@2001:470:69fc:105::268)
2021-06-07 17:14:14 +0200marinelli[m](~marinelli@2001:470:69fc:105::2d8)
2021-06-07 17:14:14 +0200eddiemundo(~eddiemund@2001:470:69fc:105::a9c)
2021-06-07 17:14:14 +0200Soft(~soft-matr@2001:470:69fc:105::c75)
2021-06-07 17:14:14 +0200adziahel[m](~adziahelm@2001:470:69fc:105::b4d)
2021-06-07 17:14:15 +0200jaror[m](~jaror@2001:470:69fc:105::265)
2021-06-07 17:14:15 +0200cdsmith(~cdsmithma@2001:470:69fc:105::284)
2021-06-07 17:14:16 +0200ru0mad[m](~ru0madmat@2001:470:69fc:105::9b2)
2021-06-07 17:15:16 +0200fizbin(~fizbin@2600:1002:b128:230e:1cbd:13c5:3322:f6cc) (Remote host closed the connection)
2021-06-07 17:15:58 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
2021-06-07 17:18:18 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
2021-06-07 17:18:52 +0200BosonCollider(~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 244 seconds)
2021-06-07 17:18:56 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-06-07 17:19:56 +0200o1lo01ol1o(~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-07 17:20:11 +0200o1lo01ol1o(~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net)
2021-06-07 17:21:27 +0200Cajun(~Cajun@ip98-163-211-112.no.no.cox.net) (Quit: Client closed)
2021-06-07 17:21:44 +0200jippiedoe(~david@77-171-152-62.fixed.kpn.net) (Ping timeout: 245 seconds)
2021-06-07 17:24:55 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net)
2021-06-07 17:25:20 +0200 <ski> guest61 : <https://paste.tomsmeding.com/6uIVuqff>
2021-06-07 17:26:22 +0200BosonCollider(~olofs@90-227-86-119-no542.tbcn.telia.com)
2021-06-07 17:27:41 +0200azeem(~azeem@176.201.16.12) (Ping timeout: 272 seconds)
2021-06-07 17:28:19 +0200ddellacosta(~ddellacos@89.46.62.48)
2021-06-07 17:30:00 +0200 <ski> guest61 : would you still like to output a message, in case of missing password (even while chosing empty string as default) ?
2021-06-07 17:30:28 +0200argento(~argent0@168-227-96-51.ptr.westnet.com.ar)
2021-06-07 17:30:51 +0200ddellaco_(~ddellacos@86.106.121.89) (Ping timeout: 272 seconds)
2021-06-07 17:30:55 +0200azeem(~azeem@176.201.16.12)
2021-06-07 17:31:59 +0200azeem(~azeem@176.201.16.12) (Read error: Connection reset by peer)
2021-06-07 17:32:15 +0200azeem(~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it)
2021-06-07 17:32:19 +0200xff0x(~xff0x@2001:1a81:5240:1700:e30e:a0ca:64b7:1a12) (Ping timeout: 272 seconds)
2021-06-07 17:32:41 +0200xff0x(~xff0x@2001:1a81:5240:1700:9a39:76e8:fdb4:2fab)
2021-06-07 17:33:59 +0200larkfisherman(~larkfishe@217.75.204.126) (Remote host closed the connection)
2021-06-07 17:34:58 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr)
2021-06-07 17:37:17 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:8fa1:cc04:6abc:7131) (Quit: WeeChat 2.8)
2021-06-07 17:42:21 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-06-07 17:43:27 +0200argento(~argent0@168-227-96-51.ptr.westnet.com.ar) (Ping timeout: 252 seconds)
2021-06-07 17:45:04 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 245 seconds)
2021-06-07 17:45:11 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-chan)
2021-06-07 17:45:40 +0200geekosaur(~geekosaur@069-135-003-034.biz.spectrum.com)
2021-06-07 17:46:31 +0200MQ-17J(~MQ-17J@8.21.10.116) (Ping timeout: 264 seconds)
2021-06-07 17:46:46 +0200xsperry(~as@user/xsperry) (Ping timeout: 244 seconds)
2021-06-07 17:47:51 +0200koishi_(~koishi_@67.209.186.120.16clouds.com)
2021-06-07 17:48:48 +0200pe200012(~pe200012@58.248.179.178)
2021-06-07 17:49:13 +0200pe200012_(~pe200012@120.236.162.3) (Ping timeout: 272 seconds)
2021-06-07 17:49:22 +0200fizbin(~fizbin@2600:1002:b128:230e:1cbd:13c5:3322:f6cc)
2021-06-07 17:50:45 +0200malvo(~malvo@malvo.org)
2021-06-07 17:50:58 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-07 17:52:16 +0200chele(~chele@user/chele) (Remote host closed the connection)
2021-06-07 17:52:34 +0200ddellacosta(~ddellacos@89.46.62.48) (Ping timeout: 245 seconds)
2021-06-07 17:53:34 +0200koishi_(~koishi_@67.209.186.120.16clouds.com) (Remote host closed the connection)
2021-06-07 17:54:14 +0200fizbin(~fizbin@2600:1002:b128:230e:1cbd:13c5:3322:f6cc) (Ping timeout: 272 seconds)
2021-06-07 17:56:19 +0200ddellacosta(~ddellacos@89.46.62.125)
2021-06-07 17:57:05 +0200o1lo01ol_(~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net)
2021-06-07 17:58:51 +0200pe200012(~pe200012@58.248.179.178) (Remote host closed the connection)
2021-06-07 17:59:17 +0200pe200012(~pe200012@119.145.72.136)
2021-06-07 18:00:20 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-07 18:01:08 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-06-07 18:01:46 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-07 18:04:56 +0200ddellaco_(~ddellacos@86.106.121.178)
2021-06-07 18:05:23 +0200hylisper(~ykm@111.119.208.67) (Quit: Lost terminal)
2021-06-07 18:05:25 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Remote host closed the connection)
2021-06-07 18:09:33 +0200mnrmnaugh(~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net)
2021-06-07 18:10:04 +0200ddellaco_(~ddellacos@86.106.121.178) (Ping timeout: 272 seconds)
2021-06-07 18:10:56 +0200noglog(~egigs@097-101-149-192.res.spectrum.com) (Quit: leaving)
2021-06-07 18:12:50 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 18:13:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-06-07 18:14:49 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-07 18:15:46 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 272 seconds)
2021-06-07 18:17:09 +0200cfricke(~cfricke@user/cfricke)
2021-06-07 18:18:43 +0200tremon(~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl)
2021-06-07 18:19:33 +0200platz(~platz@user/platz) (Quit: leaving)
2021-06-07 18:20:44 +0200vgtw(~vgtw@c-9164205c.07-348-756d651.bbcust.telenor.se) (Quit: ZNC - https://znc.in)
2021-06-07 18:20:45 +0200o1lo01ol_(~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-07 18:21:09 +0200o1lo01ol1o(~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net)
2021-06-07 18:21:45 +0200boxscape(~boxscape@user/boxscape) (Quit: Connection closed)
2021-06-07 18:22:20 +0200boxscape(~boxscape@user/boxscape)
2021-06-07 18:22:59 +0200nschoe(~quassel@2a01:e0a:8e:a190:5a3:b172:cf1b:f959) (Ping timeout: 245 seconds)
2021-06-07 18:24:59 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 18:25:35 +0200benin03(~benin@183.82.206.136)
2021-06-07 18:26:01 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
2021-06-07 18:28:17 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-07 18:28:27 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 18:29:42 +0200nschoe(~quassel@2a01:e0a:8e:a190:90ee:6146:8033:6016)
2021-06-07 18:31:56 +0200jespada(~jespada@90.254.242.55) (Ping timeout: 252 seconds)
2021-06-07 18:31:58 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-07 18:32:36 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-06-07 18:33:30 +0200mnrmnaugh(~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Ping timeout: 272 seconds)
2021-06-07 18:34:25 +0200jespada(~jespada@90.254.242.55)
2021-06-07 18:35:19 +0200teaSlurper(~chris@81.96.113.213)
2021-06-07 18:36:16 +0200benin034(benin@gateway/vpn/protonvpn/benin)
2021-06-07 18:36:48 +0200benin03(~benin@183.82.206.136) (Ping timeout: 252 seconds)
2021-06-07 18:36:49 +0200benin034benin03
2021-06-07 18:38:15 +0200 <dminuoso> infandum: Yes.
2021-06-07 18:40:03 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-07 18:40:33 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2021-06-07 18:40:43 +0200 <dminuoso> infandum: Because the parser is a permutation parser, you can just glue them together in any way you like
2021-06-07 18:40:54 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-06-07 18:40:56 +0200 <dminuoso> Roughly what you'd do is this: data COpts = COpts { num :: Int, path :: String }; data Commands = Command1 COpts ... | Command2 COpts ...; And then you can write a parser for `commonOpts :: Parser COpts`, such that you can wrie
2021-06-07 18:40:56 +0200vicfred(~vicfred@user/vicfred)
2021-06-07 18:41:25 +0200 <dminuoso> `Command1 <$> commonOpts <*> ...` and `Command2 <$> commonOpts <*>...`
2021-06-07 18:42:20 +0200 <dminuoso> And because its a permutation parser, you can also change the applicative order in any way you like
2021-06-07 18:42:34 +0200 <dminuoso> Such as `Command1 <$> fooStuff <*> commonOpts <*> ...`
2021-06-07 18:43:00 +0200ddellaco_(~ddellacos@86.106.121.178)
2021-06-07 18:43:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-07 18:43:52 +0200 <dminuoso> Oh heh. wait. optparse-generic haha. my pattern detection just read this as optparse-applicative.
2021-06-07 18:44:04 +0200 <dminuoso> But I suppose the same still holds true.
2021-06-07 18:46:08 +0200ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-06-07 18:46:58 +0200 <guest61> ski, I'd like it output which parameters is missing
2021-06-07 18:46:59 +0200mnrmnaugh(~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net)
2021-06-07 18:47:03 +0200ukari(~ukari@user/ukari)
2021-06-07 18:47:30 +0200Topsi1(~Tobias@dyndsl-095-033-093-145.ewe-ip-backbone.de)
2021-06-07 18:47:42 +0200benin030(~benin@183.82.206.136)
2021-06-07 18:47:48 +0200ddellaco_(~ddellacos@86.106.121.178) (Ping timeout: 252 seconds)
2021-06-07 18:48:00 +0200Topsi2(~Tobias@dyndsl-095-033-093-145.ewe-ip-backbone.de)
2021-06-07 18:48:24 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-06-07 18:48:32 +0200 <guest61> dminuoso, could fmap ap apply on parsers? what's the meaning?
2021-06-07 18:49:27 +0200Topsi(~Tobias@dyndsl-095-033-093-145.ewe-ip-backbone.de) (Ping timeout: 252 seconds)
2021-06-07 18:49:36 +0200 <dminuoso> guest61: Imagine you have some function taking 3 arguments, and you want to run three parsers each of which yields some result that would into that function
2021-06-07 18:49:38 +0200amk(~amk@176.61.106.150) (Read error: Connection reset by peer)
2021-06-07 18:49:39 +0200 <guest61> <$> <*> ... is liftA2
2021-06-07 18:49:58 +0200benin03(benin@gateway/vpn/protonvpn/benin) (Ping timeout: 272 seconds)
2021-06-07 18:49:58 +0200benin030benin03
2021-06-07 18:50:16 +0200amk(~amk@176.61.106.150)
2021-06-07 18:52:11 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-06-07 18:52:20 +0200spatchkaa_(~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Quit: Leaving)
2021-06-07 18:52:30 +0200Topsi1(~Tobias@dyndsl-095-033-093-145.ewe-ip-backbone.de) (Ping timeout: 272 seconds)
2021-06-07 18:52:33 +0200spatchkaa_(~spatchkaa@S010600fc8da47b63.gv.shawcable.net)
2021-06-07 18:52:36 +0200spatchkaa_spatchkaa
2021-06-07 18:52:52 +0200o1lo01ol1o(~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-07 18:53:09 +0200vgtw(~vgtw@c-9164205c.07-348-756d651.bbcust.telenor.se)
2021-06-07 18:53:13 +0200o1lo01ol1o(~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net)
2021-06-07 18:53:18 +0200spatchkaa(~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Client Quit)
2021-06-07 18:53:40 +0200 <ski> guest61 : `fmap f someParser' is a parser that will attempt to parse according to `someParser', and if that succeeds, it'll post-process the result by passing it to `f'
2021-06-07 18:53:56 +0200Topsi2(~Tobias@dyndsl-095-033-093-145.ewe-ip-backbone.de) (Quit: Leaving.)
2021-06-07 18:54:02 +0200spatchkaa(~spatchkaa@S010600fc8da47b63.gv.shawcable.net)
2021-06-07 18:54:55 +0200 <dminuoso> guest61: Imagine you wanted to parse `foo123bar` into a 3-tuple containing a word, number and a word, then you could write `let word = satisfy isLetter in (,,) <$> word <*> number <*> word`
2021-06-07 18:55:45 +0200bontaq(~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 245 seconds)
2021-06-07 18:56:09 +0200Topsi(~Tobias@dyndsl-095-033-093-145.ewe-ip-backbone.de)
2021-06-07 18:57:10 +0200 <kuribas> is there a way to stop TH from recompiling a module, if it is pure code?
2021-06-07 18:57:44 +0200 <dminuoso> kuribas: manually splice? Ive been pondering for a while how to engineer this into GHC as a feature
2021-06-07 18:58:31 +0200 <kuribas> I don't have side effects in my slices...
2021-06-07 18:58:38 +0200 <kuribas> but GHC probably doesn't know that
2021-06-07 18:58:48 +0200 <kuribas> dminuoso: even a pragma would be nice
2021-06-07 18:58:54 +0200 <guest61> ok
2021-06-07 18:59:24 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-07 18:59:59 +0200 <ski> guest61 : in general, `f <$> actA <*> actB <*> actC <*> actD' always has the same meaning : an action that will first execute `actA' (call the result `a'), then `actB' (call the result `b'), then `actC' (call the result `c'), then `actD' (call the result `d'), finally deliver as overall result `f a b c d'
2021-06-07 19:00:05 +0200teaSlurper(~chris@81.96.113.213)
2021-06-07 19:00:10 +0200 <dminuoso> for some value of "first"
2021-06-07 19:00:20 +0200 <ski> (and this would be the same as `liftA4 f actA actB actC actD')
2021-06-07 19:00:21 +0200 <dminuoso> And "then" :-)
2021-06-07 19:00:30 +0200 <ski> yes
2021-06-07 19:00:58 +0200 <dminuoso> In the above case of permutation parsers like optparse-applicative, there's no particular order
2021-06-07 19:01:27 +0200 <ski> the particularities of what "execute" (including the significance (if any) of the execution order) means, depends on the idiom in question. in your case, it was parsing
2021-06-07 19:01:29 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-07 19:01:37 +0200emliunix_(~emliunix@103.138.74.69)
2021-06-07 19:02:10 +0200teaSlurper(~chris@81.96.113.213)
2021-06-07 19:02:40 +0200 <ski> (still, `Command1 <$> fooStuff <*> commonOpts <*> ...' is not the same as `Command1 <$> commonOpts <*> fooStuff <*> ...', since these pass the results as different arguments to `Command1')
2021-06-07 19:02:52 +0200agumonke`(~user@88.160.31.174)
2021-06-07 19:02:53 +0200emliunix(~emliunix@103.138.74.59) (Remote host closed the connection)
2021-06-07 19:03:11 +0200 <ski> guest61 : any questions about the paste ?
2021-06-07 19:03:40 +0200 <guest61> ski, not yet, I will try it tomorrow
2021-06-07 19:04:42 +0200roconnor_(~roconnor@host-45-58-218-136.dyn.295.ca)
2021-06-07 19:05:09 +0200emliunix__(~emliunix@218.190.244.125)
2021-06-07 19:05:18 +0200roconnor_(~roconnor@host-45-58-218-136.dyn.295.ca) (Client Quit)
2021-06-07 19:05:39 +0200 <ski> (i took the liberty of removing all your `$'s, in addition to some other changes, like changing `print' to `putStrLn' to `hPutStrLn stderr', changing `read' to `readIO', using `catMaybes' instead of `filter (/= Nothing)' and subsequent `fmap fromJust', various matching with `case'-`of', rather than using `if'-`then'-`else', some alignment to more easily see the general structure, ..)
2021-06-07 19:06:00 +0200emliunix_(~emliunix@103.138.74.69) (Remote host closed the connection)
2021-06-07 19:06:01 +0200nattiestnate(~nate@180.242.128.159) (Quit: WeeChat 3.1)
2021-06-07 19:06:30 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 252 seconds)
2021-06-07 19:06:33 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com)
2021-06-07 19:07:10 +0200 <sclv> kuribas: ping
2021-06-07 19:07:37 +0200 <kuribas> sclv: pong
2021-06-07 19:07:54 +0200 <ski> guest61 : er, sorry. just noticed i had forgotten to remove some left-over code. try <https://paste.tomsmeding.com/1AU9FcLc> instead
2021-06-07 19:07:59 +0200nschoe(~quassel@2a01:e0a:8e:a190:90ee:6146:8033:6016) (Ping timeout: 245 seconds)
2021-06-07 19:08:13 +0200 <sclv> i noticed you made a bunch of hasqlator-msyql uploads in quick succession
2021-06-07 19:08:28 +0200 <kuribas> sclv: yeah, I should test a bit better, sorry
2021-06-07 19:08:54 +0200 <sclv> ok, just wanted to check in and discourage that (i only noticed because i'm working on the docbuilder so the new packages feed is relevant at this moment)
2021-06-07 19:09:05 +0200Torro(Torro@gateway/vpn/protonvpn/torro) (Quit: leaving)
2021-06-07 19:09:45 +0200notzmv(~zmv@user/notzmv)
2021-06-07 19:10:18 +0200ddellacosta(~ddellacos@89.46.62.125) (Remote host closed the connection)
2021-06-07 19:10:46 +0200ddellacosta(~ddellacos@89.46.62.125)
2021-06-07 19:11:22 +0200 <kuribas> sclv: understood
2021-06-07 19:11:41 +0200 <dminuoso> • No instance for (ParseFields (Nested Common))
2021-06-07 19:11:43 +0200 <dminuoso> instance ParseField (Nested Common) where
2021-06-07 19:11:55 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-07 19:11:56 +0200 <dminuoso> Sometimes I feel like GHC is playing pranks on me
2021-06-07 19:12:05 +0200teaSlurper(~chris@81.96.113.213)
2021-06-07 19:12:14 +0200 <dminuoso> This is so subtle to spot..
2021-06-07 19:12:45 +0200lbseale(~lbseale@ip72-194-54-201.sb.sd.cox.net)
2021-06-07 19:12:46 +0200 <monochrom> Oh heh
2021-06-07 19:13:17 +0200 <monochrom> See, if names were in Chinese, you wouldn't have this problem. :)
2021-06-07 19:14:38 +0200ddellaco_(~ddellacos@89.46.62.217)
2021-06-07 19:15:36 +0200 <kuribas> dminuoso: I don't even see the problem...
2021-06-07 19:15:41 +0200 <guest61> ok
2021-06-07 19:15:45 +0200 <ski> numerus
2021-06-07 19:15:51 +0200 <monochrom> plural vs singular in ParseField(s)
2021-06-07 19:16:15 +0200 <kuribas> ah right :)
2021-06-07 19:16:40 +0200 <kuribas> in clojure, such errors just lead to problems in an unrelated part of the code.
2021-06-07 19:17:07 +0200 <kuribas> often the database. honeysql has no problem with generating garbage queries.
2021-06-07 19:17:19 +0200 <kuribas> even though it could do better validation.
2021-06-07 19:17:42 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 244 seconds)
2021-06-07 19:18:45 +0200 <boxscape> Does ghcup for WSL2 build ghc or install a binary?
2021-06-07 19:18:49 +0200ddellaco_(~ddellacos@89.46.62.217) (Ping timeout: 245 seconds)
2021-06-07 19:19:02 +0200 <maerwald> boxscape: depends what you ask it to
2021-06-07 19:19:06 +0200 <maerwald> default binary
2021-06-07 19:19:06 +0200 <boxscape> ah
2021-06-07 19:19:08 +0200 <boxscape> ok, thanks
2021-06-07 19:19:23 +0200ddellacosta(~ddellacos@89.46.62.125) (Remote host closed the connection)
2021-06-07 19:19:32 +0200ddellacosta(~ddellacos@89.46.62.125)
2021-06-07 19:20:02 +0200 <dminuoso> kuribas: Neither did I. Out of disbelief, I started throwing all extensions and type level creativities at it, and the type error just wouldn't change..
2021-06-07 19:20:46 +0200o1lo01ol1o(~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-07 19:21:13 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-07 19:21:50 +0200teaSlurper(~chris@81.96.113.213)
2021-06-07 19:22:48 +0200kuribas(~user@ptr-25vy0i8kfrck8zt2w0u.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-06-07 19:23:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-07 19:23:53 +0200Deide(~Deide@wire.desu.ga)
2021-06-07 19:23:53 +0200Deide(~Deide@wire.desu.ga) (Changing host)
2021-06-07 19:23:53 +0200Deide(~Deide@user/deide)
2021-06-07 19:24:56 +0200agumonke`(~user@88.160.31.174) (Read error: Connection reset by peer)
2021-06-07 19:25:04 +0200 <boxscape> just use -fdefer-type-errors and all your problems will disappear
2021-06-07 19:26:18 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 252 seconds)
2021-06-07 19:26:51 +0200teaSlurper(~chris@81.96.113.213)
2021-06-07 19:28:24 +0200chaosite(~chaosite@user/chaosite) (Ping timeout: 245 seconds)
2021-06-07 19:29:22 +0200lbseale_(~lbseale@ip72-194-54-201.sb.sd.cox.net)
2021-06-07 19:29:36 +0200ddellaco_(~ddellacos@86.106.121.44)
2021-06-07 19:30:04 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 245 seconds)
2021-06-07 19:30:45 +0200benin031(~benin@106.198.85.3)
2021-06-07 19:30:54 +0200ddellacosta(~ddellacos@89.46.62.125) (Ping timeout: 245 seconds)
2021-06-07 19:31:13 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr) (Quit: ran away)
2021-06-07 19:31:46 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 272 seconds)
2021-06-07 19:32:21 +0200lbseale(~lbseale@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 252 seconds)
2021-06-07 19:33:02 +0200benin03(~benin@183.82.206.136) (Ping timeout: 272 seconds)
2021-06-07 19:33:02 +0200benin031benin03
2021-06-07 19:33:40 +0200xff0x(~xff0x@2001:1a81:5240:1700:9a39:76e8:fdb4:2fab) (Ping timeout: 272 seconds)
2021-06-07 19:33:45 +0200stefan-_(~cri@42dots.de) (Ping timeout: 268 seconds)
2021-06-07 19:34:53 +0200xff0x(~xff0x@185.65.135.235)
2021-06-07 19:35:33 +0200 <dminuoso> @tell infandum Here, you can use this simple newtype wrapped to bury common options like Common in multiple commands. https://gist.github.com/dminuoso/d68598ffb112cbe61c3759a530e2d837
2021-06-07 19:35:33 +0200 <lambdabot> Consider it noted.
2021-06-07 19:36:52 +0200teaSlurper(~chris@81.96.113.213)
2021-06-07 19:37:30 +0200phma(phma@2001:5b0:211f:f668:98fc:87:ee60:b793) (Read error: Connection reset by peer)
2021-06-07 19:37:43 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-07 19:37:47 +0200stefan-_(~cri@42dots.de)
2021-06-07 19:40:36 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 252 seconds)
2021-06-07 19:43:11 +0200agumonke`(~user@88.160.31.174)
2021-06-07 19:43:21 +0200xff0x(~xff0x@185.65.135.235) (Ping timeout: 252 seconds)
2021-06-07 19:45:03 +0200xff0x(~xff0x@2001:1a81:5240:1700:9a39:76e8:fdb4:2fab)
2021-06-07 19:45:19 +0200jespada(~jespada@90.254.242.55) (Ping timeout: 264 seconds)
2021-06-07 19:46:56 +0200jespada(~jespada@90.254.242.55)
2021-06-07 19:46:58 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 272 seconds)
2021-06-07 19:47:22 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net)
2021-06-07 19:49:42 +0200ddellacosta(~ddellacos@89.45.224.178)
2021-06-07 19:54:21 +0200ddellacosta(~ddellacos@89.45.224.178) (Ping timeout: 252 seconds)
2021-06-07 19:54:59 +0200jippiedoe(~david@77-171-152-62.fixed.kpn.net)
2021-06-07 19:55:37 +0200phma(phma@2001:5b0:211f:5688:a0:2a2f:464e:6b06)
2021-06-07 19:57:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-06-07 19:57:44 +0200JimL(~quassel@ti0577q162-3381.bb.online.no)
2021-06-07 19:59:00 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 272 seconds)
2021-06-07 19:59:34 +0200safinaskar(~user@109-252-90-89.nat.spd-mgts.ru)
2021-06-07 19:59:50 +0200 <tomsmeding> dminuoso: that error is sneaky as hell
2021-06-07 19:59:54 +0200Ariakenom(~Ariakenom@2001:9b1:efb:fc00:dc63:473e:1d9e:8708)
2021-06-07 19:59:59 +0200 <safinaskar> is there a way to make this code compile? f :: a -> a; f x = (x :: a)
2021-06-07 20:00:20 +0200 <dminuoso> safinaskar: -fdefer-type-errors
2021-06-07 20:00:23 +0200dminuosochuckles
2021-06-07 20:00:31 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-06-07 20:00:42 +0200 <boxscape> f :: forall a . a -> a; f x = (x :: a)
2021-06-07 20:00:46 +0200 <boxscape> with -XScopedTypeVariables
2021-06-07 20:01:11 +0200 <boxscape> % f :: forall a . a -> a; f x = (x :: a)
2021-06-07 20:01:11 +0200 <yahb> boxscape:
2021-06-07 20:01:13 +0200 <dminuoso> Do we have `f :: a -> a; f @b x = (x :: b)` already?
2021-06-07 20:01:23 +0200 <dminuoso> Buried in some extension perhaps?
2021-06-07 20:01:38 +0200 <boxscape> dminuoso I've opened a ticket about implementing it but the -XTypeAbstractions proposal needs to be sorted out first
2021-06-07 20:01:50 +0200 <boxscape> https://github.com/ghc-proposals/ghc-proposals/pull/238/
2021-06-07 20:03:11 +0200ru0mad[m](~ru0madmat@2001:470:69fc:105::9b2) (Ping timeout: 244 seconds)
2021-06-07 20:03:11 +0200hjulle[m](~hjullemat@2001:470:69fc:105::1dd) (Ping timeout: 244 seconds)
2021-06-07 20:03:11 +0200fabfianda[m](~fabfianda@2001:470:69fc:105::6db) (Ping timeout: 244 seconds)
2021-06-07 20:03:11 +0200the-coot[m](~the-cootm@2001:470:69fc:105::95f) (Ping timeout: 244 seconds)
2021-06-07 20:03:11 +0200psydroid(~psydroidm@2001:470:69fc:105::165) (Ping timeout: 244 seconds)
2021-06-07 20:03:11 +0200maralorn(~maralorn@2001:470:69fc:105::251) (Ping timeout: 244 seconds)
2021-06-07 20:03:11 +0200fgaz(~fgaz@2001:470:69fc:105::842) (Ping timeout: 244 seconds)
2021-06-07 20:03:11 +0200sm[m](~sm@plaintextaccounting/sm) (Ping timeout: 244 seconds)
2021-06-07 20:03:11 +0200siraben(~siraben@user/siraben) (Ping timeout: 244 seconds)
2021-06-07 20:03:30 +0200cdsmith(~cdsmithma@2001:470:69fc:105::284) (Ping timeout: 272 seconds)
2021-06-07 20:03:30 +0200eddiemundo(~eddiemund@2001:470:69fc:105::a9c) (Ping timeout: 272 seconds)
2021-06-07 20:03:30 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe) (Ping timeout: 272 seconds)
2021-06-07 20:03:31 +0200peddie(~peddie@2001:470:69fc:105::25d) (Ping timeout: 272 seconds)
2021-06-07 20:03:31 +0200ac(~aloiscoch@2001:470:69fc:105::65) (Ping timeout: 272 seconds)
2021-06-07 20:03:31 +0200MatrixTravelerbo(~voyagert2@2001:470:69fc:105::22) (Ping timeout: 272 seconds)
2021-06-07 20:03:41 +0200Artem[m](~artemtype@2001:470:69fc:105::75b) (Ping timeout: 244 seconds)
2021-06-07 20:03:41 +0200Drezil(~drezilkif@2001:470:69fc:105::7f8) (Ping timeout: 244 seconds)
2021-06-07 20:03:41 +0200cdepillabout[m](~cdepillab@2001:470:69fc:105::3d3) (Ping timeout: 244 seconds)
2021-06-07 20:03:41 +0200kosmikus[m](~andresloe@2001:470:69fc:105::95d) (Ping timeout: 244 seconds)
2021-06-07 20:03:41 +0200zwro[m](~zwromatri@2001:470:69fc:105::1d4) (Ping timeout: 244 seconds)
2021-06-07 20:03:41 +0200Morrow[m](~morrowmma@2001:470:69fc:105::1d0) (Ping timeout: 244 seconds)
2021-06-07 20:03:41 +0200maerwald[m](~maerwaldm@2001:470:69fc:105::1ee) (Ping timeout: 244 seconds)
2021-06-07 20:04:07 +0200jaror[m](~jaror@2001:470:69fc:105::265) (Ping timeout: 272 seconds)
2021-06-07 20:04:07 +0200bb010g(~bb010gmat@2001:470:69fc:105::9a5) (Ping timeout: 272 seconds)
2021-06-07 20:04:07 +0200oak-(~oakuniver@2001:470:69fc:105::fcd) (Ping timeout: 272 seconds)
2021-06-07 20:04:07 +0200amesgen[m](~amesgenam@2001:470:69fc:105::82b) (Ping timeout: 272 seconds)
2021-06-07 20:04:07 +0200tomferon[m](~tomferon@2001:470:69fc:105::268) (Ping timeout: 272 seconds)
2021-06-07 20:04:07 +0200marinelli[m](~marinelli@2001:470:69fc:105::2d8) (Ping timeout: 272 seconds)
2021-06-07 20:04:07 +0200Soft(~soft-matr@2001:470:69fc:105::c75) (Ping timeout: 272 seconds)
2021-06-07 20:04:07 +0200adziahel[m](~adziahelm@2001:470:69fc:105::b4d) (Ping timeout: 272 seconds)
2021-06-07 20:04:07 +0200srid[m](~sridmatri@2001:470:69fc:105::1c2) (Ping timeout: 272 seconds)
2021-06-07 20:05:42 +0200benin03(~benin@106.198.85.3) (Read error: Connection reset by peer)
2021-06-07 20:06:54 +0200benin03(~benin@183.82.206.233)
2021-06-07 20:08:49 +0200cfricke(~cfricke@user/cfricke)
2021-06-07 20:09:57 +0200ddellaco_(~ddellacos@86.106.121.44) (Read error: Connection reset by peer)
2021-06-07 20:10:28 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-07 20:11:10 +0200teaSlurper(~chris@81.96.113.213)
2021-06-07 20:11:30 +0200ddellacosta(~ddellacos@86.106.121.44)
2021-06-07 20:12:32 +0200argento(~argent0@168-227-96-51.ptr.westnet.com.ar)
2021-06-07 20:15:28 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 272 seconds)
2021-06-07 20:19:39 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 245 seconds)
2021-06-07 20:20:38 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-07 20:25:59 +0200ddellaco_(~ddellacos@86.106.121.165)
2021-06-07 20:26:04 +0200ddellaco_(~ddellacos@86.106.121.165) (Remote host closed the connection)
2021-06-07 20:27:48 +0200jippiedoe(~david@77-171-152-62.fixed.kpn.net) (Quit: Leaving)
2021-06-07 20:30:20 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-06-07 20:32:53 +0200ddellacosta(~ddellacos@86.106.121.44) (Remote host closed the connection)
2021-06-07 20:33:21 +0200ddellacosta(~ddellacos@86.106.121.44)
2021-06-07 20:33:44 +0200JimL(~quassel@ti0577q162-3381.bb.online.no) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-06-07 20:35:43 +0200Guest68(~Guest68@82.40.121.143)
2021-06-07 20:35:54 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 245 seconds)
2021-06-07 20:37:08 +0200 <Guest68> I'm trying to optimise some code. I've noticed that if I copy the contents of a module into Main.hs (and don't import the module), I get a ~2x speedup. What could be causing this?
2021-06-07 20:37:29 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-07 20:39:21 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Remote host closed the connection)
2021-06-07 20:39:34 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr)
2021-06-07 20:42:01 +0200 <Ariakenom> Guest68: Are you using all the -O (Optimization) flags?
2021-06-07 20:42:11 +0200 <Guest68> Ariakenom: Yes
2021-06-07 20:43:12 +0200ystael(~ystael@user/ystael) (Quit: Lost terminal)
2021-06-07 20:43:30 +0200 <Ariakenom> and not ghci?
2021-06-07 20:44:03 +0200 <safinaskar> boxscape: thanks
2021-06-07 20:44:27 +0200 <Guest68> Ariakenom: No, I'm compiling with ghc and running the resulting executable.
2021-06-07 20:46:15 +0200 <tput> try adding INLINE or INLINABLE pragmas. afaik GHC doesn't inline across module boundaries unless hinted at to do so
2021-06-07 20:46:24 +0200 <dminuoso> It does
2021-06-07 20:46:33 +0200 <dminuoso> Just not with a guarantee
2021-06-07 20:46:45 +0200 <dminuoso> For relatively small code GHC will by default include unfoldings in interface files
2021-06-07 20:47:24 +0200 <dminuoso> Think its even that without INLINABLE, you'd get optimized unfoldings, but with INLINABLE it would give you unoptimized unfoldings
2021-06-07 20:47:59 +0200 <Ariakenom> my thoughts also went towards inlining. (and yes GHC does inline, but it is affected by module boundaries. getting inlining right is sibtle)
2021-06-07 20:48:27 +0200 <dminuoso> Guest68: Lack of specialization can also be part of it.
2021-06-07 20:48:46 +0200 <dminuoso> This is especially noticable in mtl-polymorphic code
2021-06-07 20:49:14 +0200 <Guest68> I've tried SPECIALIZE-ing everything in the module, but it made no difference. Are there any heuristics on what to INLINE?
2021-06-07 20:49:45 +0200 <dminuoso> INLINE, not generally as a rule of thumb
2021-06-07 20:49:52 +0200 <dminuoso> That one is an arcane art.. :-)
2021-06-07 20:50:10 +0200 <dminuoso> INLINABLE as a default however is fairly fine.
2021-06-07 20:52:04 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 20:54:27 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-07 20:54:50 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-07 20:55:57 +0200benin03(~benin@183.82.206.233) (Quit: The Lounge - https://thelounge.chat)
2021-06-07 20:57:13 +0200ddellaco_(~ddellacos@89.45.224.126)
2021-06-07 20:59:29 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 20:59:34 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 20:59:35 +0200 <Guest68> Adding INLINABLE everywhere hasn't made any difference :(
2021-06-07 21:00:52 +0200 <maerwald> is there a high-level library for lzip?
2021-06-07 21:01:25 +0200a6a45081-2b83(~aditya@223.235.239.159)
2021-06-07 21:03:55 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 264 seconds)
2021-06-07 21:04:51 +0200bontaq`(~user@ool-18e47f8d.dyn.optonline.net)
2021-06-07 21:07:58 +0200ddellacosta(~ddellacos@86.106.121.44) (Remote host closed the connection)
2021-06-07 21:08:07 +0200ddellacosta(~ddellacos@86.106.121.44)
2021-06-07 21:09:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-07 21:11:04 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-07 21:13:43 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-07 21:19:19 +0200 <dminuoso> Guest68: Can you share the code?
2021-06-07 21:19:26 +0200 <dminuoso> It's very hard to give qualified advice without even seeing it.
2021-06-07 21:19:30 +0200azeem(~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-06-07 21:19:40 +0200azeem(~azeem@176.200.249.52)
2021-06-07 21:19:54 +0200mc47(~yecinem@89.246.239.190) (Remote host closed the connection)
2021-06-07 21:20:00 +0200azeem(~azeem@176.200.249.52) (Read error: Connection reset by peer)
2021-06-07 21:20:02 +0200agumonke`(~user@88.160.31.174) (Read error: Connection reset by peer)
2021-06-07 21:20:14 +0200azeem(~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it)
2021-06-07 21:22:24 +0200econo(uid147250@user/econo)
2021-06-07 21:23:57 +0200f33f046c-a02e(~aditya@223.178.225.24)
2021-06-07 21:24:39 +0200a6a45081-2b83(~aditya@223.235.239.159) (Ping timeout: 245 seconds)
2021-06-07 21:24:42 +0200ystael(~ystael@user/ystael)
2021-06-07 21:26:23 +0200ddellacosta(~ddellacos@86.106.121.44) (Remote host closed the connection)
2021-06-07 21:26:23 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
2021-06-07 21:26:50 +0200 <Guest68> dminuoso: https://paste.tomsmeding.com/Vj1sJXL5
2021-06-07 21:26:51 +0200ddellacosta(~ddellacos@86.106.121.44)
2021-06-07 21:28:14 +0200 <dminuoso> Guest68: Mmm. Try -fexpose-all-unfoldings in addition to INLINABLE
2021-06-07 21:28:41 +0200 <dminuoso> The monad polymorphism could prevent inlining from occuring
2021-06-07 21:29:00 +0200berberman(~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2021-06-07 21:29:11 +0200xsperry(~as@user/xsperry)
2021-06-07 21:29:48 +0200forell_(~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Quit: ZNC - https://znc.in)
2021-06-07 21:30:16 +0200 <dminuoso> What is ListOnionT?
2021-06-07 21:32:14 +0200ddellacosta(~ddellacos@86.106.121.44) (Remote host closed the connection)
2021-06-07 21:32:28 +0200ddellacosta(~ddellacos@86.106.121.44)
2021-06-07 21:32:35 +0200xprlgjf(~gavin@60.27.93.209.dyn.plus.net) (Remote host closed the connection)
2021-06-07 21:33:19 +0200Guest68(~Guest68@82.40.121.143) (Quit: Ping timeout (120 seconds))
2021-06-07 21:33:49 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 245 seconds)
2021-06-07 21:34:10 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-07 21:35:29 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 245 seconds)
2021-06-07 21:35:45 +0200Guest68(~Guest68@82.40.121.143)
2021-06-07 21:36:07 +0200 <Guest68> -fexpose-all-unfoldings and INLINABLE was much much slower
2021-06-07 21:36:10 +0200forell(~forell@host-178-216-90-220.sta.tvknaszapraca.pl)
2021-06-07 21:36:31 +0200favonia(~favonia@user/favonia) (Remote host closed the connection)
2021-06-07 21:36:36 +0200 <Guest68> data ListOnionT c m a = ListOnionT {getNil :: m a, getCons :: c -> m (Either a (ListOnionT c m a))}
2021-06-07 21:37:09 +0200 <Guest68> It's supposed to be list ReaderT [c] m a, but you can read the list one element at a time. i.e. unwrapping like an onion
2021-06-07 21:37:55 +0200favonia(~favonia@user/favonia)
2021-06-07 21:38:14 +0200ubert(~Thunderbi@p200300ecdf259d3dfcd415488b1ba362.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2021-06-07 21:38:18 +0200ub(~Thunderbi@p200300ecdf259d2d3d1bf7f6f1f48366.dip0.t-ipconnect.de)
2021-06-07 21:39:02 +0200 <dminuoso> Well, rather `ReaderT [c] (ExceptT a) m`, no?
2021-06-07 21:39:18 +0200 <dminuoso> (Or maybe flipped around, cant focus right now)
2021-06-07 21:40:06 +0200 <Guest68> The 'Either a' part is for shortcutting, so that you don't have to read the entire list.
2021-06-07 21:40:29 +0200dunkeln(~dunkeln@94.129.65.28) (Ping timeout: 245 seconds)
2021-06-07 21:40:36 +0200ububert
2021-06-07 21:40:55 +0200 <Guest68> pureListOnionT a = ListOnionT (pure a) (const $ pure $ Left a)
2021-06-07 21:40:57 +0200 <dminuoso> So this is a sort of streaming parser?
2021-06-07 21:41:01 +0200 <Guest68> Yes, exactly.
2021-06-07 21:43:01 +0200 <dminuoso> Is the intend to write a streaming parser library, or is this just an immediate solution to another problem?
2021-06-07 21:43:24 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-06-07 21:43:34 +0200 <Guest68> It's just for a personal project.
2021-06-07 21:44:50 +0200 <dminuoso> Guest68: Things that come to mind that could help: INLINE pragmas on some of those combinators (megaparsec for example simply INLINEs... everything - quite possibly not the best choice)
2021-06-07 21:45:14 +0200 <dminuoso> And turning those either effects into continuations
2021-06-07 21:46:04 +0200 <dminuoso> You should also use Writer from Control.Monad.Trans.Writer.CPS, the one you imported behaves very poorly
2021-06-07 21:46:46 +0200 <Guest68> So, replace 'Either l r' with 'forall a. (l -> a) -> (r -> a) -> a'?
2021-06-07 21:47:09 +0200favonia(~favonia@user/favonia) (Ping timeout: 245 seconds)
2021-06-07 21:47:16 +0200 <dminuoso> I think I would handroll the entire parser stack with continuations
2021-06-07 21:47:22 +0200 <dminuoso> Rather than using monad transformers
2021-06-07 21:47:27 +0200chexum(~chexum@gateway/tor-sasl/chexum)
2021-06-07 21:47:33 +0200favonia(~favonia@user/favonia)
2021-06-07 21:48:19 +0200 <dminuoso> Otherwise you will rely on deforestation to obtain any agreeable performance
2021-06-07 21:48:35 +0200nschoe(~quassel@2a01:e0a:8e:a190:29db:2818:25aa:c67e)
2021-06-07 21:50:09 +0200 <Guest68> Could you point me toward anything I could read about that?
2021-06-07 21:51:32 +0200 <dminuoso> Guest68: Not sure. The rationale is quite easy, when you produce a Right constantly, and subsequently pattern match on it, it impedes further fusion/inlining
2021-06-07 21:52:25 +0200 <dminuoso> Perhaps someone else in this channel has good resources on this
2021-06-07 21:53:38 +0200 <dminuoso> Guest68: In many cases, GHC can apply optimization tricks to make the intermediate constructor disappear, until it cant.
2021-06-07 21:54:03 +0200berberman(~berberman@user/berberman)
2021-06-07 21:54:41 +0200dunkeln(~dunkeln@94.129.65.28)
2021-06-07 21:55:17 +0200 <monochrom> However, if the issue is that import vs #include causes an efficiency difference, then the issue is how many more pragmas to bark to ghc.
2021-06-07 21:56:00 +0200 <dminuoso> Guest68: Here's one example that GHC does to make working with intermediate lists often invisible:
2021-06-07 21:56:17 +0200 <dminuoso> https://hackage.haskell.org/package/base-4.15.0.0/docs/GHC-Base.html#v:build
2021-06-07 21:56:45 +0200 <dminuoso> (The surrounding optimization is called foldr/build fusion)
2021-06-07 21:56:52 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-07 21:57:16 +0200 <Guest68> That looks promising.
2021-06-07 21:57:18 +0200f33f046c-a02e(~aditya@223.178.225.24) (Quit: Konversation terminated!)
2021-06-07 21:57:29 +0200 <Guest68> I'll look into it.
2021-06-07 21:57:34 +0200 <Guest68> Thanks a lot for the help!
2021-06-07 21:57:36 +0200 <dminuoso> Guest68: also take a look at the megaparsec implementation
2021-06-07 21:57:45 +0200 <dminuoso> It should give you an idea how a continuation based parser could look like
2021-06-07 21:57:58 +0200kadoban(~kadoban@user/kadoban) (Quit: Bridge terminating on SIGTERM)
2021-06-07 21:57:58 +0200ServerStatsDisco(~serversta@2001:470:69fc:105::1a) (Quit: Bridge terminating on SIGTERM)
2021-06-07 21:57:58 +0200Las[m](~lasmatrix@2001:470:69fc:105::74e) (Quit: Bridge terminating on SIGTERM)
2021-06-07 21:58:26 +0200 <dminuoso> ttps://hackage.haskell.org/package/base-4.15.0.0/docs/GHC-Base.html#v:build
2021-06-07 21:58:28 +0200 <dminuoso> https://hackage.haskell.org/package/megaparsec-9.0.1/docs/src/Text.Megaparsec.Internal.html#ParsecT
2021-06-07 21:58:39 +0200maerwald[m](~maerwaldm@2001:470:69fc:105::1ee)
2021-06-07 21:59:19 +0200siraben(~siraben@user/siraben)
2021-06-07 21:59:20 +0200ac(~aloiscoch@2001:470:69fc:105::65)
2021-06-07 21:59:20 +0200sm[m](~sm@plaintextaccounting/sm)
2021-06-07 21:59:20 +0200maralorn(~maralorn@2001:470:69fc:105::251)
2021-06-07 21:59:20 +0200MatrixTravelerbo(~voyagert2@2001:470:69fc:105::22)
2021-06-07 21:59:20 +0200fgaz(~fgaz@2001:470:69fc:105::842)
2021-06-07 21:59:20 +0200peddie(~peddie@2001:470:69fc:105::25d)
2021-06-07 21:59:20 +0200psydroid(~psydroidm@2001:470:69fc:105::165)
2021-06-07 21:59:20 +0200fabfianda[m](~fabfianda@2001:470:69fc:105::6db)
2021-06-07 21:59:20 +0200ServerStatsDisco(~serversta@2001:470:69fc:105::1a)
2021-06-07 21:59:20 +0200the-coot[m](~the-cootm@2001:470:69fc:105::95f)
2021-06-07 21:59:21 +0200kadoban(~kadoban@user/kadoban)
2021-06-07 21:59:23 +0200Las[m](~lasmatrix@2001:470:69fc:105::74e)
2021-06-07 21:59:23 +0200ru0mad[m](~ru0madmat@2001:470:69fc:105::9b2)
2021-06-07 21:59:25 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe)
2021-06-07 21:59:32 +0200zwro[m](~zwromatri@2001:470:69fc:105::1d4)
2021-06-07 21:59:32 +0200eddiemundo(~eddiemund@2001:470:69fc:105::a9c)
2021-06-07 21:59:32 +0200srid[m](~sridmatri@2001:470:69fc:105::1c2)
2021-06-07 21:59:32 +0200Morrow[m](~morrowmma@2001:470:69fc:105::1d0)
2021-06-07 21:59:32 +0200bb010g(~bb010gmat@2001:470:69fc:105::9a5)
2021-06-07 21:59:32 +0200Artem[m](~artemtype@2001:470:69fc:105::75b)
2021-06-07 21:59:32 +0200marinelli[m](~marinelli@2001:470:69fc:105::2d8)
2021-06-07 21:59:32 +0200Drezil(~drezilkif@2001:470:69fc:105::7f8)
2021-06-07 21:59:32 +0200adziahel[m](~adziahelm@2001:470:69fc:105::b4d)
2021-06-07 21:59:32 +0200hjulle[m](~hjullemat@2001:470:69fc:105::1dd)
2021-06-07 21:59:32 +0200tomferon[m](~tomferon@2001:470:69fc:105::268)
2021-06-07 21:59:32 +0200cdepillabout[m](~cdepillab@2001:470:69fc:105::3d3)
2021-06-07 21:59:32 +0200oak-(~oakuniver@2001:470:69fc:105::fcd)
2021-06-07 21:59:32 +0200amesgen[m](~amesgenam@2001:470:69fc:105::82b)
2021-06-07 21:59:32 +0200kosmikus[m](~andresloe@2001:470:69fc:105::95d)
2021-06-07 21:59:32 +0200Soft(~soft-matr@2001:470:69fc:105::c75)
2021-06-07 21:59:34 +0200cdsmith(~cdsmithma@2001:470:69fc:105::284)
2021-06-07 21:59:34 +0200jaror[m](~jaror@2001:470:69fc:105::265)
2021-06-07 22:00:11 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-07 22:00:29 +0200ddellaco_(~ddellacos@89.45.224.126) (Ping timeout: 245 seconds)
2021-06-07 22:01:13 +0200 <dminuoso> Guest68: Some further reading material on the correctness of foldr/build fusion https://wiki.haskell.org/Correctness_of_short_cut_fusion
2021-06-07 22:02:30 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2021-06-07 22:02:30 +0200psydroid(~psydroidm@2001:470:69fc:105::165) (Changing host)
2021-06-07 22:02:30 +0200psydroid(~psydroidm@user/psydroid)
2021-06-07 22:03:55 +0200 <Guest68> Thanks.
2021-06-07 22:04:04 +0200bruceleewees(~bruceleew@83.24.248.233.ipv4.supernova.orange.pl)
2021-06-07 22:04:20 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-06-07 22:05:20 +0200juhp(~juhp@128.106.188.199) (Ping timeout: 245 seconds)
2021-06-07 22:07:23 +0200 <maerwald> I wonder what happens if I mix CPP and quasi-quotes
2021-06-07 22:07:58 +0200 <dminuoso> maerwald: You give up any hopes of ever being friends with HLS.
2021-06-07 22:08:02 +0200juhp(~juhp@128.106.188.199)
2021-06-07 22:08:02 +0200 <tomsmeding> breaking of the fourth wall
2021-06-07 22:08:18 +0200 <maerwald> :>
2021-06-07 22:08:50 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-07 22:09:08 +0200 <dminuoso> Or actually, I think HLS should be fine
2021-06-07 22:09:27 +0200 <tomsmeding> as long as you don't work in that particular module I think
2021-06-07 22:09:38 +0200 <maerwald> another way would be... can I extend the Paths_pkg with my own symbols?
2021-06-07 22:09:56 +0200 <maerwald> like... have some custom variables in .cabal
2021-06-07 22:10:00 +0200emliunix__(~emliunix@218.190.244.125) (Remote host closed the connection)
2021-06-07 22:10:05 +0200 <maerwald> similar to version
2021-06-07 22:10:17 +0200emliunix__(~emliunix@103.138.74.59)
2021-06-07 22:10:29 +0200favonia(~favonia@user/favonia) (Ping timeout: 245 seconds)
2021-06-07 22:10:50 +0200 <maerwald> don't want to turn this into an autoconf package
2021-06-07 22:11:18 +0200favonia(~favonia@user/favonia)
2021-06-07 22:11:38 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-07 22:11:44 +0200 <tomsmeding> I assume you're not looking for cabal flags?
2021-06-07 22:11:54 +0200 <maerwald> nope... it's statically set on release
2021-06-07 22:11:56 +0200hexfive(~eric@50.35.83.177)
2021-06-07 22:12:03 +0200hexfive(~eric@50.35.83.177) (Client Quit)
2021-06-07 22:12:16 +0200 <maerwald> but it's nice to have it in .cabal file
2021-06-07 22:12:25 +0200 <dminuoso> maerwald: You're just missing typechecker plugins now.
2021-06-07 22:12:43 +0200 <maerwald> cpp-options: -DMYVAR=1.0.0
2021-06-07 22:12:45 +0200 <maerwald> but then yeah
2021-06-07 22:14:18 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-07 22:14:55 +0200ordinate(~ordinate@c-68-38-144-3.hsd1.in.comcast.net)
2021-06-07 22:14:57 +0200 <maerwald> https://cabal.readthedocs.io/en/3.4/cabal-package.html?highlight=getSysconfDir#accessing-data-file… this could be a cooler API
2021-06-07 22:15:10 +0200 <ordinate> good afternoon
2021-06-07 22:15:18 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-06-07 22:15:20 +0200drownbes(~drownbes@193-31-46-176.dyn.estpak.ee)
2021-06-07 22:15:32 +0200 <tomsmeding> good evening :)
2021-06-07 22:17:07 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2021-06-07 22:18:31 +0200 <ordinate> my quest to make myself an electronic drum machine for under $20 might accidentally spawn a haskell library
2021-06-07 22:19:06 +0200 <maerwald> sounds like you want to get into 3d printing too
2021-06-07 22:19:10 +0200Guest68(~Guest68@82.40.121.143) (Quit: Client closed)
2021-06-07 22:21:08 +0200 <tput> for no good reason, I keep thinking about writing a slicer
2021-06-07 22:22:09 +0200 <ordinate> why 3d print when i have tin foil and batteries?
2021-06-07 22:22:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-07 22:24:37 +0200drownbes(~drownbes@193-31-46-176.dyn.estpak.ee) (Quit: Leaving)
2021-06-07 22:24:38 +0200jkoshy`(~user@2001:8b0:a67e:ab40:b9c8:b2ad:c22c:d22a)
2021-06-07 22:27:25 +0200jkoshy`(~user@2001:8b0:a67e:ab40:b9c8:b2ad:c22c:d22a) (Client Quit)
2021-06-07 22:27:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-06-07 22:28:18 +0200_73(~user@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-06-07 22:28:47 +0200 <maerwald> tput: oh god... you know how much work that is?
2021-06-07 22:28:57 +0200bontaq`bontaq
2021-06-07 22:29:43 +0200ddellacosta(~ddellacos@86.106.121.44) (Ping timeout: 264 seconds)
2021-06-07 22:30:04 +0200Ariakenom(~Ariakenom@2001:9b1:efb:fc00:dc63:473e:1d9e:8708) (Quit: Leaving)
2021-06-07 22:30:24 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.1)
2021-06-07 22:30:43 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-07 22:31:18 +0200 <_73> I have many functions that may fail. Some of these functions return Maybes, while others return `Either String a`. These functions will only be called from within a State monad. Will I be able to get everything to compose under a Monad transformer?
2021-06-07 22:31:29 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Remote host closed the connection)
2021-06-07 22:31:52 +0200 <_73> or should I change the maybes to eithers as well?
2021-06-07 22:31:59 +0200lavaman(~lavaman@98.38.249.169)
2021-06-07 22:33:18 +0200bruceleewees(~bruceleew@83.24.248.233.ipv4.supernova.orange.pl) (Ping timeout: 252 seconds)
2021-06-07 22:33:51 +0200 <dminuoso> _73: I recommend massage functions `hush :: Either a b -> Maybe b` and `note :: a -> Maybe b -> Either a b`
2021-06-07 22:34:34 +0200 <tput> maerwald: yes, that's why there are no good reasons! it would never be anywhere near the established slicers, just a useless toy
2021-06-07 22:34:35 +0200 <dminuoso> Or perhaps a flavor polymorphic over monad transformers, like `noteM :: MonadError e m => e -> Maybe b -> m b`
2021-06-07 22:35:05 +0200 <dminuoso> _73: Whether you tie these into a monad transformer depends on whether you wish to have shortcircuiting behavior
2021-06-07 22:36:26 +0200ddellacosta(~ddellacos@89.46.62.127)
2021-06-07 22:36:34 +0200 <_73> dminuoso: I see what you mean with note and hush. I do wish to have a shortcircuting behavior. In the end I want my program to return `Either Error FinalState`
2021-06-07 22:36:42 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2021-06-07 22:38:09 +0200 <dminuoso> _73: Next decide how you want to layer state and either then. Try and think what difference it makes how they are ordered.
2021-06-07 22:38:44 +0200 <dminuoso> (i.e. whether to use `StateT S (Except Error)` or `ExceptT Error (State S)`
2021-06-07 22:39:26 +0200 <dminuoso> @until StateT S (Except Error)
2021-06-07 22:39:26 +0200 <lambdabot> Maybe you meant: unpl unmtl
2021-06-07 22:39:28 +0200 <dminuoso> @unmtl StateT S (Except Error)
2021-06-07 22:39:28 +0200 <lambdabot> err: `StateT S (Except Error)' is not applied to enough arguments, giving `/\A. S -> Except Error (A, S)'
2021-06-07 22:39:34 +0200 <dminuoso> @unmtl StateT S (Except Error) M
2021-06-07 22:39:34 +0200 <lambdabot> S -> Except Error (M, S)
2021-06-07 22:39:42 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.)
2021-06-07 22:39:43 +0200 <dminuoso> @unmtl ExceptT Error (State S) M
2021-06-07 22:39:43 +0200 <lambdabot> S -> (Either Error M, S)
2021-06-07 22:39:55 +0200epolanski(uid312403@id-312403.brockwell.irccloud.com)
2021-06-07 22:40:39 +0200 <_73> I see. I believe I want `ExceptT Error (State S)`. This is gonna work though thanks
2021-06-07 22:41:48 +0200 <dminuoso> _73: You can write `type M = ExceptT Error (State S); hushT :: Either Error b -> M b; note :: Error -> Maybe a -> M a`
2021-06-07 22:41:54 +0200 <dminuoso> Or maybe noteT for consistency
2021-06-07 22:42:42 +0200 <dminuoso> or heh, the hushT is silly. It should be called `liftEither` rather
2021-06-07 22:43:59 +0200ddellaco_(~ddellacos@89.46.62.40)
2021-06-07 22:44:05 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-07 22:45:23 +0200Codaraxis(~Codaraxis@89.45.7.142)
2021-06-07 22:45:34 +0200_73(~user@pool-96-252-123-136.bstnma.fios.verizon.net) (Ping timeout: 272 seconds)
2021-06-07 22:45:47 +0200_73``(~user@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-06-07 22:45:54 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds)
2021-06-07 22:45:55 +0200Cajun(~Cajun@ip98-163-211-112.no.no.cox.net)
2021-06-07 22:46:03 +0200 <safinaskar> @unpl
2021-06-07 22:46:03 +0200 <lambdabot> Error: expected a Haskell expression or declaration
2021-06-07 22:46:08 +0200 <safinaskar> @help
2021-06-07 22:46:08 +0200 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
2021-06-07 22:46:54 +0200_73``(~user@pool-96-252-123-136.bstnma.fios.verizon.net) ()
2021-06-07 22:47:12 +0200safinaskar(~user@109-252-90-89.nat.spd-mgts.ru) ()
2021-06-07 22:47:24 +0200space-shell(~space-she@88.98.247.38)
2021-06-07 22:47:28 +0200Codaraxis(~Codaraxis@89.45.7.142) (Client Quit)
2021-06-07 22:47:28 +0200ddellacosta(~ddellacos@89.46.62.127) (Ping timeout: 272 seconds)
2021-06-07 22:47:59 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-06-07 22:48:03 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
2021-06-07 22:48:24 +0200Codaraxis(~Codaraxis@89.45.7.142)
2021-06-07 22:48:45 +0200_73(~user@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-06-07 22:49:53 +0200Erutuon(~Erutuon@user/erutuon)
2021-06-07 22:52:34 +0200pe200012(~pe200012@119.145.72.136) (Ping timeout: 245 seconds)
2021-06-07 22:52:38 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
2021-06-07 22:52:53 +0200pe200012(~pe200012@58.248.179.178)
2021-06-07 22:53:59 +0200hiruji(~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6) (Read error: Connection reset by peer)
2021-06-07 22:54:12 +0200hiruji(~hiruji@user/hiruji)
2021-06-07 22:55:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-07 23:02:37 +0200ystael(~ystael@user/ystael) (Read error: Connection reset by peer)
2021-06-07 23:04:31 +0200xsperry(~as@user/xsperry) (Ping timeout: 264 seconds)
2021-06-07 23:04:57 +0200favonia(~favonia@user/favonia) (Remote host closed the connection)
2021-06-07 23:06:06 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-07 23:08:42 +0200benin03(~benin@183.82.206.233)
2021-06-07 23:09:38 +0200ddellaco_(~ddellacos@89.46.62.40) (Ping timeout: 272 seconds)
2021-06-07 23:09:53 +0200 <boxscape> hmm <> for Map is union, I wonder if unionWith (<>) would be useful more often
2021-06-07 23:09:57 +0200 <boxscape> it's what I need at the moment
2021-06-07 23:11:45 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-07 23:12:34 +0200 <tomsmeding> a certain merijn has often complained about this exact thing
2021-06-07 23:12:42 +0200 <monochrom> { union, intersect, unionWith (<>), intersectWith (<>) }
2021-06-07 23:12:46 +0200 <boxscape> ah
2021-06-07 23:13:28 +0200 <monochrom> I propose setting up an AOE2 tournament of 4 sides to determine which one wins.
2021-06-07 23:13:50 +0200 <boxscape> that sounds like a great idea
2021-06-07 23:14:26 +0200 <monochrom> But I belong to the 5th side that has the wisdom to refrain from picking any side for <> for Bool in the first place.
2021-06-07 23:15:07 +0200 <tomsmeding> monochrom: isn't that saying that <> should be unionWith (<>) ?
2021-06-07 23:15:42 +0200 <monochrom> I am fine with unionWith (<>) if you are also fine with intersectWith (<>).
2021-06-07 23:15:58 +0200ddellacosta(~ddellacos@86.106.121.118)
2021-06-07 23:16:12 +0200xsperry(~as@user/xsperry)
2021-06-07 23:16:27 +0200 <monochrom> Hell, there are a 6th side I forgot. symmetric difference.
2021-06-07 23:16:50 +0200 <tomsmeding> name me a data structure that chose to have a<>b be smaller than a and b
2021-06-07 23:17:07 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-06-07 23:18:55 +0200 <monochrom> longest common subsequence
2021-06-07 23:19:30 +0200 <tomsmeding> it's ultimately all arbitrary but I do think that there is a good case to be made for union rather than intersect; the case for unionWith (<>) rather than union is weaker but still present
2021-06-07 23:20:00 +0200 <tput> wrapper types like Product and Sum?
2021-06-07 23:20:14 +0200 <boxscape> I suppose if we had a commonly used commutative monoid class that would settle it
2021-06-07 23:20:21 +0200 <boxscape> but yeah wrapper types would be one solution
2021-06-07 23:20:21 +0200infandum(~user@207.44.105.67.res-cmts.all2.ptd.net) (Read error: Connection reset by peer)
2021-06-07 23:20:34 +0200 <monochrom> I'm OK with giving some sides a bit more resources at the beginning of the tournament so they have a bit higher chance to win. :)
2021-06-07 23:21:04 +0200 <dminuoso> Is there a way to annotate an attoparsec parser to guarantee it will not consume more than X tokens?
2021-06-07 23:21:17 +0200 <monochrom> But time to promote my crazy idea again :) https://mail.haskell.org/pipermail/haskell-cafe/2010-November/086220.html
2021-06-07 23:21:28 +0200 <monochrom> Err no wrong one.
2021-06-07 23:21:39 +0200 <monochrom> This one: https://mail.haskell.org/pipermail/haskell-cafe/2017-May/127147.html
2021-06-07 23:23:27 +0200 <boxscape> neat
2021-06-07 23:26:44 +0200favonia(~favonia@user/favonia)
2021-06-07 23:27:46 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 244 seconds)
2021-06-07 23:28:00 +0200jneira(~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Ping timeout: 272 seconds)
2021-06-07 23:29:24 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-07 23:29:42 +0200wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-06-07 23:32:32 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1)
2021-06-07 23:34:21 +0200notzmv(~zmv@user/notzmv)
2021-06-07 23:34:26 +0200Heffalump(~ganesh@urchin.earth.li)
2021-06-07 23:34:34 +0200Heffalump(~ganesh@urchin.earth.li) ()
2021-06-07 23:39:13 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-07 23:40:11 +0200ystael(~ystael@user/ystael)
2021-06-07 23:40:37 +0200ddellacosta(~ddellacos@86.106.121.118) (Remote host closed the connection)
2021-06-07 23:41:12 +0200ddellacosta(~ddellacos@89.46.62.86)
2021-06-07 23:42:26 +0200ddellaco_(~ddellacos@86.106.121.62)
2021-06-07 23:43:00 +0200ddellac__(~ddellacos@86.106.121.65)
2021-06-07 23:44:50 +0200michalz(~user@185.246.204.107) (Remote host closed the connection)
2021-06-07 23:45:54 +0200ddellacosta(~ddellacos@89.46.62.86) (Ping timeout: 252 seconds)
2021-06-07 23:47:00 +0200ddellaco_(~ddellacos@86.106.121.62) (Ping timeout: 252 seconds)
2021-06-07 23:50:29 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 245 seconds)
2021-06-07 23:50:40 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-07 23:51:01 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 244 seconds)
2021-06-07 23:52:15 +0200jneira(~jneira@166.red-81-39-172.dynamicip.rima-tde.net)
2021-06-07 23:53:20 +0200nschoe(~quassel@2a01:e0a:8e:a190:29db:2818:25aa:c67e) (Ping timeout: 272 seconds)
2021-06-07 23:55:29 +0200involans(~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) (Ping timeout: 245 seconds)
2021-06-07 23:56:12 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-07 23:57:03 +0200aerona(~aerona@2600:6c54:4600:f300:90f0:5e8d:1f86:bfa1)
2021-06-07 23:57:15 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-07 23:58:47 +0200__monty__(~toonn@user/toonn) (Quit: leaving)