2022/05/22

2022-05-22 00:06:35 +0200king_gs(~Thunderbi@2806:103e:29:5eb8:48de:d3eb:9d44:3d55) (Ping timeout: 260 seconds)
2022-05-22 00:10:09 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-05-22 00:10:51 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-22 00:12:52 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-22 00:15:35 +0200Tuplanolla(~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) (Quit: Leaving.)
2022-05-22 00:15:55 +0200acidjnk(~acidjnk@p200300d0c7068b595444385bbfc30d22.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-05-22 00:18:05 +0200jlamothe(~jlamothe@198.251.60.209)
2022-05-22 00:20:43 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-05-22 00:20:43 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-05-22 00:20:43 +0200wroathe(~wroathe@user/wroathe)
2022-05-22 00:20:48 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net)
2022-05-22 00:24:16 +0200hololeap_(~hololeap@user/hololeap)
2022-05-22 00:25:34 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-05-22 00:25:37 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-05-22 00:31:10 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2022-05-22 00:33:16 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-22 00:35:54 +0200hololeap_hololeap
2022-05-22 00:40:22 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2022-05-22 00:43:58 +0200julian(~julian@20.83.116.49) (Killed (NickServ (GHOST command used by tos9_!~tos9@python/site-packages/Julian)))
2022-05-22 00:53:02 +0200chomwitt(~chomwitt@athe730-c-multi-500.home.otenet.gr) (Ping timeout: 260 seconds)
2022-05-22 01:00:10 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net) (Ping timeout: 240 seconds)
2022-05-22 01:13:05 +0200mmhat(~mmh@p200300f1c7397f8cee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-05-22 01:20:48 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 276 seconds)
2022-05-22 01:21:18 +0200sebeko__(uid530526@id-530526.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2022-05-22 01:22:58 +0200julian(~julian@20.83.116.49)
2022-05-22 01:27:46 +0200xacktm(xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
2022-05-22 01:27:46 +0200andreas303(andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com)
2022-05-22 01:27:46 +0200even4void(even4void@came.here.for-some.fun) (Quit: fBNC - https://bnc4free.com)
2022-05-22 01:30:51 +0200mmhat(~mmh@p200300f1c742cc01ee086bfffe095315.dip0.t-ipconnect.de)
2022-05-22 01:44:40 +0200mvk(~mvk@2607:fea8:5ce3:8500::ba9a)
2022-05-22 01:49:51 +0200andreas303(andreas303@ip227.orange.bnc4free.com)
2022-05-22 01:52:04 +0200even4void(even4void@came.here.for-some.fun)
2022-05-22 01:54:52 +0200HotblackDesiato_(~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
2022-05-22 01:55:35 +0200HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato)
2022-05-22 01:56:51 +0200xacktm(xacktm@user/xacktm)
2022-05-22 01:57:55 +0200metadavebookshelfdave
2022-05-22 02:00:07 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2022-05-22 02:02:10 +0200pfharlock(~pfharlock@cpe-74-138-169-108.kya.res.rr.com) (Ping timeout: 240 seconds)
2022-05-22 02:04:52 +0200dcoutts__(~duncan@host86-150-41-206.range86-150.btcentralplus.com)
2022-05-22 02:07:10 +0200dcoutts_(~duncan@host86-150-41-206.range86-150.btcentralplus.com) (Ping timeout: 240 seconds)
2022-05-22 02:10:48 +0200romesrf(~romes@185.5.8.134) (Quit: WeeChat 3.4.1)
2022-05-22 02:14:42 +0200alp(~alp@user/alp) (Ping timeout: 260 seconds)
2022-05-22 02:15:20 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-05-22 02:17:44 +0200 <sm> jackdk: I saw your https://www.reddit.com/r/haskell/comments/uuevb1/reflexbackendsocket0201_released_ghc_902_support :
2022-05-22 02:17:45 +0200 <sm> > makes Reflex an interesting potential choice for MUD servers
2022-05-22 02:18:27 +0200 <sm> of course, now I must ask, are you running a haskell MUD somewhere ?
2022-05-22 02:19:00 +0200 <sm> surely it's time for the haskell MUD
2022-05-22 02:20:33 +0200 <EvanR> MUDs work by having a lot of scheduled or scheduled then rescheduled events that are dispatched at the correct time
2022-05-22 02:20:55 +0200 <EvanR> not in response to any event at that time
2022-05-22 02:21:07 +0200 <EvanR> as I understood it, it's not something reflex just does
2022-05-22 02:21:18 +0200 <EvanR> could work if you try hard enough though xD
2022-05-22 02:26:35 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
2022-05-22 02:27:08 +0200 <exarkun> I finally started porting my Python MUD server to Haskell a couple weeks ago
2022-05-22 02:27:29 +0200 <exarkun> And I found a few simple student projects in that space as I was thinking about how to get started
2022-05-22 02:27:38 +0200 <exarkun> Who wouldn't want a Haskell MUD server
2022-05-22 02:29:59 +0200 <exarkun> I don't know Reflex but wouldn't an Inform-like system work well as an FRP system?
2022-05-22 02:30:18 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-05-22 02:37:34 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
2022-05-22 02:37:58 +0200 <sm> go exarkun!
2022-05-22 02:38:33 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-05-22 02:38:43 +0200 <sm> isn't Inform more about modelling using an amazing natural language DSL, than concurrency architecture ?
2022-05-22 02:39:32 +0200 <sm> it would be quite interesting to hear your ongoing python vs haskell experiences
2022-05-22 02:40:23 +0200 <sm> MUD-like things sure seem to love highly dynamic, hot reloading systems
2022-05-22 02:40:36 +0200wroathe(~wroathe@user/wroathe)
2022-05-22 02:43:28 +0200 <EvanR> yes the best is when a section can be reloaded without kicking everyone offline
2022-05-22 02:43:55 +0200 <EvanR> either globally, in that area or both
2022-05-22 02:44:42 +0200 <EvanR> or the MOO way and everything is sourced from a persistent database and edited in real time
2022-05-22 02:45:41 +0200 <sm> multi-user adventure as a wiki. That certainly sounds possible in haskell
2022-05-22 02:46:40 +0200 <sm> what would be the safe scripting language you'd let users go wild with ?
2022-05-22 02:46:55 +0200 <EvanR> haskell!!!!111
2022-05-22 02:47:03 +0200 <sm> you maniac
2022-05-22 02:47:05 +0200 <EvanR> ok. idris
2022-05-22 02:47:16 +0200 <sm> lol
2022-05-22 02:47:30 +0200 <jackdk> sm: it has been on my to-do list for ages, but no. reflex-libtelnet is built on a non-reflex binding: https://hackage.haskell.org/package/libtelnet so that could be good. I feel like reflex's `Dynamic` type is good for reloading data, but hot-loading code is hard. I never managed to write a hotboot server in straight Haskell though
2022-05-22 02:47:31 +0200 <sm> I would like to see that
2022-05-22 02:47:49 +0200 <jackdk> I think I would play with scripting mobs, etc, using hslua
2022-05-22 02:48:00 +0200 <sm> yeah
2022-05-22 02:48:25 +0200 <sm> when it gets to that point I start thinking python sounds pretty good!
2022-05-22 02:49:08 +0200mmhat(~mmh@p200300f1c742cc01ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2022-05-22 02:50:14 +0200 <jackdk> I really liked hslua when I played with it the other week, and you can use fennel if you want FP in your scripting
2022-05-22 02:50:32 +0200 <EvanR> python D:
2022-05-22 02:50:36 +0200 <EvanR> in a haskell MUD
2022-05-22 02:51:12 +0200 <sm> fennel you say... can you use that with hslua ?
2022-05-22 02:51:17 +0200 <EvanR> I used lua for a lot of mud code and... it got old
2022-05-22 02:53:18 +0200 <sm> "the speed, simplicity, and reach of Lua with the flexibility of a lisp syntax and macro system... Anywhere you can run Lua code, you can run Fennel code"
2022-05-22 02:54:50 +0200spacenautx(~spacenaut@user/spacenautx) (Ping timeout: 240 seconds)
2022-05-22 02:55:08 +0200Topsi(~Topsi@dyndsl-095-033-022-188.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2022-05-22 02:56:30 +0200benin(~benin@183.82.31.141)
2022-05-22 03:02:46 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-05-22 03:03:03 +0200img(~img@user/img)
2022-05-22 03:03:15 +0200 <jackdk> sm: http://jackkelly.name/blog/archives/2022/05/01/haskell_lua_and_fennel/index.html
2022-05-22 03:04:09 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 276 seconds)
2022-05-22 03:05:03 +0200mmhat(~mmh@p200300f1c744a725ee086bfffe095315.dip0.t-ipconnect.de)
2022-05-22 03:05:08 +0200 <exarkun> EvanR: At worst you just hand your file descriptors to a new process.
2022-05-22 03:05:32 +0200 <sm> jackdk: very cool
2022-05-22 03:07:12 +0200Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 260 seconds)
2022-05-22 03:09:12 +0200Infinite(~Infinite@49.39.122.125)
2022-05-22 03:09:39 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-05-22 03:14:08 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2022-05-22 03:22:22 +0200mmhat(~mmh@p200300f1c744a725ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-05-22 03:23:53 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2022-05-22 03:30:12 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-05-22 03:32:31 +0200dcoutts(~duncan@host86-150-41-206.range86-150.btcentralplus.com)
2022-05-22 03:36:00 +0200dcoutts__(~duncan@host86-150-41-206.range86-150.btcentralplus.com) (Ping timeout: 276 seconds)
2022-05-22 03:36:47 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2022-05-22 03:38:17 +0200mmhat(~mmh@p200300f1c74601d3ee086bfffe095315.dip0.t-ipconnect.de)
2022-05-22 03:38:43 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-22 03:39:15 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Client Quit)
2022-05-22 03:42:02 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-05-22 03:50:48 +0200andrey_(~andrey@p200300dbcf4855005f41c91a08d0b9aa.dip0.t-ipconnect.de)
2022-05-22 03:53:34 +0200andrey__(~andrey@p200300dbcf35b9009a0ab587690af4b8.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-05-22 03:55:27 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-05-22 03:55:28 +0200nate1(~nate@98.45.169.16)
2022-05-22 03:55:50 +0200euandreh(~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) (Quit: WeeChat 3.5)
2022-05-22 03:56:20 +0200stackdroid18(14094@user/stackdroid) (Quit: hasta la vista... tchau!)
2022-05-22 03:57:00 +0200mjacob(~mjacob@adrastea.uberspace.de) (Ping timeout: 260 seconds)
2022-05-22 03:57:24 +0200mjacob(~mjacob@adrastea.uberspace.de)
2022-05-22 03:57:38 +0200Infinite(~Infinite@49.39.122.125) (Ping timeout: 252 seconds)
2022-05-22 03:57:59 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-05-22 04:00:10 +0200nate1(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2022-05-22 04:00:11 +0200Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Read error: Connection reset by peer)
2022-05-22 04:00:22 +0200Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
2022-05-22 04:00:25 +0200zebrag(~chris@user/zebrag)
2022-05-22 04:06:34 +0200euandreh(~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174)
2022-05-22 04:17:52 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:84c:3a94:a15f:5a37) (Remote host closed the connection)
2022-05-22 04:22:12 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:84c:3a94:a15f:5a37)
2022-05-22 04:30:37 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
2022-05-22 04:33:25 +0200aliabrar[m](~aliabrarm@2001:470:69fc:105::1:2730)
2022-05-22 04:33:51 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds)
2022-05-22 04:34:17 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net)
2022-05-22 04:34:39 +0200aliabrar[m](~aliabrarm@2001:470:69fc:105::1:2730) ()
2022-05-22 04:39:18 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-22 04:44:13 +0200mmhat(~mmh@p200300f1c74601d3ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.5)
2022-05-22 04:46:51 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 276 seconds)
2022-05-22 04:52:14 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2022-05-22 04:59:31 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-05-22 04:59:31 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-05-22 04:59:31 +0200finn_elijaFinnElija
2022-05-22 05:03:06 +0200benin(~benin@183.82.31.141) (Ping timeout: 276 seconds)
2022-05-22 05:16:56 +0200frost(~frost@user/frost)
2022-05-22 05:18:31 +0200frost(~frost@user/frost) (Client Quit)
2022-05-22 05:18:32 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp)
2022-05-22 05:22:34 +0200frost(~frost@user/frost)
2022-05-22 05:24:29 +0200coot(~coot@213.134.190.95)
2022-05-22 05:25:24 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net)
2022-05-22 05:27:50 +0200Guest54(~Guest54@modemcable048.16-160-184.mc.videotron.ca)
2022-05-22 05:30:50 +0200 <Guest54> Can someone explain me what <> do ? is it the same as ++ to concatenate two lists ?
2022-05-22 05:31:02 +0200 <Guest54> > [1,2,3] <> [4,5,6]
2022-05-22 05:31:05 +0200 <lambdabot> [1,2,3,4,5,6]
2022-05-22 05:31:12 +0200 <Guest54> > [1,2,3] ++ [4,5,6]
2022-05-22 05:31:15 +0200 <lambdabot> [1,2,3,4,5,6]
2022-05-22 05:31:46 +0200 <pavonia> (<>) is more general
2022-05-22 05:32:06 +0200 <pavonia> > Just [1,2,3] <> Just [4,5,6]
2022-05-22 05:32:08 +0200 <lambdabot> Just [1,2,3,4,5,6]
2022-05-22 05:35:14 +0200 <Guest54> it can also be used for ordering ?
2022-05-22 05:35:26 +0200 <Guest54> instance Semigroup Ordering where
2022-05-22 05:35:26 +0200 <Guest54>     LT <> _ = LT
2022-05-22 05:35:27 +0200 <Guest54>     EQ <> y = y
2022-05-22 05:35:27 +0200 <Guest54>     GT <> _ = GT
2022-05-22 05:36:48 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-05-22 05:37:05 +0200mokee(~mokee@37.228.215.63) (Quit: off)
2022-05-22 05:37:44 +0200mokee(~mokee@37.228.215.63)
2022-05-22 05:37:46 +0200gehmehgeh(~user@user/gehmehgeh)
2022-05-22 05:38:48 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net) (Ping timeout: 244 seconds)
2022-05-22 05:39:11 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-22 05:40:50 +0200 <pavonia> You can build more interesting sortings using that, but I forgot how that was done
2022-05-22 05:42:01 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net)
2022-05-22 05:42:40 +0200 <pavonia> > sortBy (comparing head <> comparing length) [ [7], [4,5,6], [8,9], [1,2,3] ]
2022-05-22 05:42:42 +0200 <lambdabot> [[1,2,3],[4,5,6],[7],[8,9]]
2022-05-22 05:43:06 +0200 <pavonia> Err
2022-05-22 05:43:35 +0200 <pavonia> Not the best example, but you see the point
2022-05-22 05:44:52 +0200coot(~coot@213.134.190.95)
2022-05-22 05:44:54 +0200 <Guest54> Thanks !!
2022-05-22 05:46:19 +0200 <Guest54> I m actually trying to solve a problem and i m using <> in the compare. I ll try to describe the problem and give my try so it can be more clear
2022-05-22 05:48:04 +0200 <Guest54> Supposing my list defined as [[Id, time, priority] , [Id, time, priority], [Id, time, priority] ... ]
2022-05-22 05:48:04 +0200 <Guest54> In This exemple, i want to order my lists in an increasing way depending on the priorities and if I have two equal priorities I order them depending on the time (whoever has the greatest time comes first):
2022-05-22 05:48:05 +0200 <Guest54> From this : [["43525", "5", "2"],["25545", "7", "5"],["7455", "3", "4"],["3586", "8", "2"]]
2022-05-22 05:48:05 +0200 <Guest54> To this : [[3586, 8, 2], [43525, 5, 2], [7455, 3, 4], [25545, 7, 5]]
2022-05-22 05:48:06 +0200 <Guest54> My try :
2022-05-22 05:48:06 +0200 <Guest54> First, I convert all the strings to Int using read fucntion and mapping on all elements :
2022-05-22 05:48:07 +0200 <Guest54> toSort = map (map (read :: String -> Int)) [["43525", "5", "2"],["25545", "7", "5"],["7455", "3", "4"],["3586", "8", "2"]]
2022-05-22 05:48:07 +0200 <Guest54> Then i sort the lists:
2022-05-22 05:48:08 +0200 <Guest54> sortLGT x y = compare (x!!2) (y!!2) -- compare priorities
2022-05-22 05:48:08 +0200 <Guest54>     <> compare (y!!1) (x!!1) -- compare time in descending order
2022-05-22 05:55:41 +0200 <dsal> Guest54: Just put priority first.
2022-05-22 05:55:48 +0200 <dsal> Then use sort.
2022-05-22 05:57:04 +0200gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 240 seconds)
2022-05-22 05:57:24 +0200dka(~code-is-a@ns3059207.ip-193-70-33.eu) (Quit: My Ex-Girlfriend once told me: I'm not a slut, I'm just popular)
2022-05-22 05:57:53 +0200 <dsal> Also, you most certainly shouldn't be using lists that way. I'm not 100% sure what you've got going on, but this looks like a case of "use the right data types and you don't have to write any code"
2022-05-22 05:58:04 +0200gehmehgeh(~user@user/gehmehgeh)
2022-05-22 05:58:06 +0200dka(~code-is-a@ns3059207.ip-193-70-33.eu)
2022-05-22 05:59:35 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-22 06:00:07 +0200coot(~coot@213.134.190.95)
2022-05-22 06:00:16 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net) (Read error: Connection reset by peer)
2022-05-22 06:01:02 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net)
2022-05-22 06:04:25 +0200 <mjrosenb> ok, I have a ghcjs question. I have some code like {on button click $ do my_code}
2022-05-22 06:05:10 +0200 <mjrosenb> my_code has a bunch of dom manipulation in it, and some print statements
2022-05-22 06:05:16 +0200 <mjrosenb> but the print statements never get executed.
2022-05-22 06:05:24 +0200 <mjrosenb> and for the life of me, I can not figure out why.
2022-05-22 06:06:58 +0200 <mjrosenb> technically, the print statements are {lift (putStrLn "logging")}
2022-05-22 06:08:39 +0200 <mjrosenb> since for some reason I haven't 100% grokked, that bit of code is in the ReaderT foo IO monad, not just the IO monad
2022-05-22 06:09:28 +0200 <mjrosenb> more confusingly, {lift (putStrLn (trace "logging" "LOGGING"))} outputs logging, but not LOGGING.
2022-05-22 06:10:44 +0200 <mjrosenb> as for what I'm actually trying to do, I'm appending a bunch of nodes to a div, and I want them to appear at least somewhat incrementally
2022-05-22 06:11:07 +0200 <mjrosenb> but fro whatever godawful reason, they only appear after all of the data has been put into them.
2022-05-22 06:12:54 +0200mvk(~mvk@2607:fea8:5ce3:8500::ba9a) (Ping timeout: 272 seconds)
2022-05-22 06:14:50 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-22 06:16:28 +0200 <EvanR> should it be liftIO
2022-05-22 06:16:52 +0200 <EvanR> if lift type checks... probably should also work
2022-05-22 06:18:16 +0200 <tabemann> Guest54: that sounds like something that should use a priority queue
2022-05-22 06:18:35 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds)
2022-05-22 06:19:16 +0200mokee(~mokee@37.228.215.63) (Quit: off)
2022-05-22 06:19:32 +0200mokee(~mokee@37.228.215.63)
2022-05-22 06:25:34 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2022-05-22 06:26:56 +0200mokee(~mokee@37.228.215.63) (Quit: off)
2022-05-22 06:27:25 +0200mokee(~mokee@37.228.215.63)
2022-05-22 06:29:09 +0200 <mjrosenb> EvanR: I just tried with liftIO, and it compiled as well, but also didn't execute the putStrLn.
2022-05-22 06:29:59 +0200 <mjrosenb> I also tried {on button click $ lift $ do my_code}, assuming there was something fishy going on with the reader monad being equivalent to const for sequencing actions
2022-05-22 06:30:08 +0200 <mjrosenb> but that didn't fix anything.
2022-05-22 06:30:42 +0200 <EvanR> so nothing appears in the dev console, nothing appears in the terminal, and nothing appears in a random file named "stdout"
2022-05-22 06:37:56 +0200vicfred(~vicfred@user/vicfred)
2022-05-22 06:41:52 +0200dcoutts(~duncan@host86-150-41-206.range86-150.btcentralplus.com) (Ping timeout: 260 seconds)
2022-05-22 06:45:29 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-05-22 06:45:46 +0200noteness(~noteness@user/noteness)
2022-05-22 06:47:31 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net) (Ping timeout: 246 seconds)
2022-05-22 06:50:07 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net)
2022-05-22 06:51:21 +0200Guest54(~Guest54@modemcable048.16-160-184.mc.videotron.ca) (Quit: Client closed)
2022-05-22 07:15:25 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 244 seconds)
2022-05-22 07:18:47 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-05-22 07:26:46 +0200Infinite(~Infinite@49.39.115.237)
2022-05-22 07:30:19 +0200coot(~coot@213.134.190.95)
2022-05-22 07:30:25 +0200nate1(~nate@98.45.169.16)
2022-05-22 07:31:56 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-05-22 07:40:18 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-05-22 07:44:32 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-22 07:49:03 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2022-05-22 07:50:25 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-05-22 07:51:37 +0200raym(~raym@user/raym) (Quit: kernel update, rebooting...)
2022-05-22 07:55:30 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds)
2022-05-22 08:00:02 +0200jakalx(~jakalx@base.jakalx.net)
2022-05-22 08:00:39 +0200raym(~raym@user/raym)
2022-05-22 08:00:44 +0200_mokee_(~mokee@37.228.215.63)
2022-05-22 08:01:03 +0200_mokee_(~mokee@37.228.215.63) (Client Quit)
2022-05-22 08:03:25 +0200ashpil(~ashpil@98.42.126.67)
2022-05-22 08:04:55 +0200slack1256(~slack1256@191.125.227.212)
2022-05-22 08:06:37 +0200 <ashpil> So I recently started learning Haskell after wanting to do so for a while, and honestly having heard that learning it will "change the way you think about programming", after reading the first few chapters of "Learn you a Haskell", I'm feeling a bit... underwhelmed. It's possible I just haven't dove deep enough yet, but the thing is, I do have
2022-05-22 08:06:37 +0200 <ashpil> somewhat significant prior functional programming experience -- not in pure languages I guess, but I've done a decent amount of OCaml, Rust, and Elixir, relying quite heavily on their functional parts. Is it possible that Haskell just doesn't have all that much to offer (in terms of learning about new ways to think as a programmer or PL design) to
2022-05-22 08:06:38 +0200 <ashpil> someone like me?
2022-05-22 08:07:59 +0200 <slack1256> Yeah, I think that if you already know OCAML, then haskell is not that big of a jump.
2022-05-22 08:09:09 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net) (Ping timeout: 244 seconds)
2022-05-22 08:09:35 +0200slac72117(~slack1256@191.125.99.74)
2022-05-22 08:09:56 +0200 <dsal> ocaml isn't pure. Learning purity helps quite a bit.
2022-05-22 08:10:18 +0200 <dsal> Haskell also is a lot… taller? Much nicer high level abstractions.
2022-05-22 08:11:45 +0200 <ashpil> I understand the languages I've used aren't pure, but at least OCaml I've only ever used completely purely so I think I've had that perspective
2022-05-22 08:12:10 +0200slack1256(~slack1256@191.125.227.212) (Ping timeout: 240 seconds)
2022-05-22 08:12:15 +0200slac62079(~slack1256@181.43.226.229)
2022-05-22 08:12:17 +0200 <dsal> I've not heard great things about LYAH, and haven't read it myself, but I'd had production ocaml a decade or so before I started doing anything serious in Haskell.
2022-05-22 08:12:26 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net)
2022-05-22 08:12:48 +0200slac62079slack1256
2022-05-22 08:14:10 +0200slac72117(~slack1256@191.125.99.74) (Ping timeout: 240 seconds)
2022-05-22 08:14:34 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2022-05-22 08:15:52 +0200 <dsal> I don't know what kind of work you do or what's important to you. I've kind of settled on Haskell just because it's easier than anything else I've done.
2022-05-22 08:17:46 +0200 <ashpil> I guess I just wanted to learn it for this claimed "new way to think about programming" or even just from a perspective of being interested in PL design and implementation, thought it might teach me something new. But maybe I just have to dig deeper for that
2022-05-22 08:18:12 +0200 <dsal> I don't know what you know, so it's hard to know how to tell what might help you. :)
2022-05-22 08:19:22 +0200sabry(~sabry@197.37.144.70)
2022-05-22 08:20:09 +0200 <dsal> Do you feel that you have a pretty good understanding of some of the base classes like Functor, Applicative, Foldable, and Traversable? That stuff will get you super far.
2022-05-22 08:20:43 +0200 <dsal> Oh, and Semigroup/Monoid.
2022-05-22 08:21:47 +0200 <dsal> I see so much boilerplate in other languages because people can't express simple common things like `fold`
2022-05-22 08:21:48 +0200 <dsal> :t fold
2022-05-22 08:21:49 +0200 <lambdabot> (Foldable t, Monoid m) => t m -> m
2022-05-22 08:22:12 +0200 <dsal> :t traverse
2022-05-22 08:22:14 +0200 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
2022-05-22 08:23:15 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-22 08:24:21 +0200 <dsal> :t dimap
2022-05-22 08:24:22 +0200 <lambdabot> Profunctor p => (a -> b) -> (c -> d) -> p b c -> p a d
2022-05-22 08:27:13 +0200 <ashpil> Hmm I guess I'll keep digging deeper, then! Thanks
2022-05-22 08:27:40 +0200 <dsal> I write a lot of parsers. One of the parsers I work on at work groks fixed-width format files with fixed-width fields within a fixed line. The parser is constructed such that the data type contains the length of a line such that the *implementation* of a row parser composes field parsers whose length must equal the total length of the line.
2022-05-22 08:29:11 +0200 <dsal> e.g., `parseRow :: Parser 30; parseRow = parseFifteenCharacterField *> parseTenCharacterField` won't compile because the sum of those field parsers won't consume 30 characters.
2022-05-22 08:30:04 +0200 <dsal> Same for serialization. If you try to emit something other than 30 characters, you'd get a compiler error. That stuff is nice.
2022-05-22 08:31:18 +0200 <dsal> It's controversial, but I like slightly non-trivial profunctor lenses, as well. Seeing how that stuff's defined and how they compose is pretty hard to do elsewhere.
2022-05-22 08:31:54 +0200ashpil(~ashpil@98.42.126.67) (Ping timeout: 252 seconds)
2022-05-22 08:34:08 +0200nate1(~nate@98.45.169.16) (Ping timeout: 272 seconds)
2022-05-22 08:46:16 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Remote host closed the connection)
2022-05-22 08:53:44 +0200acidjnk(~acidjnk@p200300d0c7068b45e4e7c1a76966715b.dip0.t-ipconnect.de)
2022-05-22 08:58:30 +0200Chai-T-Rex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-05-22 08:58:46 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net) (Ping timeout: 246 seconds)
2022-05-22 09:01:34 +0200Chai-T-Rex(~ChaiTRex@user/chaitrex)
2022-05-22 09:04:44 +0200Tuplanolla(~Tuplanoll@91-159-68-39.elisa-laajakaista.fi)
2022-05-22 09:06:00 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net)
2022-05-22 09:14:29 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-05-22 09:15:36 +0200zaquest(~notzaques@5.130.79.72)
2022-05-22 09:25:54 +0200slack1256(~slack1256@181.43.226.229) (Remote host closed the connection)
2022-05-22 09:26:50 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net) (Ping timeout: 240 seconds)
2022-05-22 09:29:46 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net)
2022-05-22 09:31:29 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net)
2022-05-22 09:36:03 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net) (Ping timeout: 256 seconds)
2022-05-22 09:37:48 +0200syntactic_sugar(~amoljha@2601:644:8000:6640::d839)
2022-05-22 09:39:12 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-05-22 09:43:27 +0200syntactic_sugar(~amoljha@2601:644:8000:6640::d839) (Quit: WeeChat 3.4.1)
2022-05-22 09:46:00 +0200coot(~coot@213.134.190.95)
2022-05-22 09:48:15 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-22 09:49:58 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net)
2022-05-22 09:50:01 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-05-22 09:50:13 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-22 09:55:12 +0200dsrt^(~dsrt@c-24-126-228-147.hsd1.ga.comcast.net) (Ping timeout: 272 seconds)
2022-05-22 10:06:15 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:84c:3a94:a15f:5a37) (Remote host closed the connection)
2022-05-22 10:07:33 +0200benin(~benin@183.82.31.141)
2022-05-22 10:10:17 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-05-22 10:10:34 +0200lagooned(~lagooned@108-208-149-42.lightspeed.hstntx.sbcglobal.net) (Ping timeout: 244 seconds)
2022-05-22 10:20:50 +0200mokee(~mokee@37.228.215.63) (Quit: off)
2022-05-22 10:21:20 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-05-22 10:22:23 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-05-22 10:28:43 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 246 seconds)
2022-05-22 10:33:09 +0200cyphase(~cyphase@user/cyphase)
2022-05-22 10:33:28 +0200sabry(~sabry@197.37.144.70) (Quit: Client closed)
2022-05-22 10:38:06 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-05-22 10:38:23 +0200 <sm> you know how haskell programs usually fail with text decoding errors, if you read non-ascii text with LANG= or so ?
2022-05-22 10:39:20 +0200 <sm> on linux, that is easy to reproduce. On mac today I can't seem to break it this way, no matter what I set LANG or LC_ALL to. Any idea why that could be ?
2022-05-22 10:39:21 +0200 <Hecate> sm: hmm, Bodigrim opened a ticket about the message on the GHC tracker not so long ago
2022-05-22 10:39:31 +0200 <Hecate> hmm
2022-05-22 10:40:05 +0200 <Hecate> for mac I'm unable to help in a practical way, I don't own one
2022-05-22 10:41:23 +0200 <sm> some magic on mac ? I should check #ghc maybe
2022-05-22 10:41:45 +0200 <sm> oops already did
2022-05-22 10:42:41 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-22 10:45:15 +0200 <Hecate> sm: does "strace" reveal something?
2022-05-22 10:45:57 +0200 <sm> unfortunately that's not a usable thing on mac
2022-05-22 10:48:18 +0200 <Rembane> Is there a mactrace on mac?
2022-05-22 10:48:26 +0200 <sm> ok I got dtruss to run, but no it doesn't reveal anything (to me)
2022-05-22 10:51:03 +0200emad(~emad@156.214.61.111)
2022-05-22 10:52:12 +0200 <sm> ok yes I think this shows ghc locale is unaffected by the usual env vars, on mac:
2022-05-22 10:52:13 +0200 <sm> $ LC_ALL= ghc -e 'import System.IO' -e 'print localeEncoding'
2022-05-22 10:52:13 +0200 <sm> UTF-8
2022-05-22 10:52:42 +0200 <jackdk> sm: someone made a with-utf8 package to do all the magic twiddling, if you wrap `main` with it
2022-05-22 10:53:18 +0200 <sm> I just started using that, it's exactly what I want to test (I hope to see it fail with the old code and pass with the new)
2022-05-22 10:53:47 +0200 <sm> ironic, this has been breaking for so many years now I can't break it
2022-05-22 10:56:46 +0200 <sm> the encoding seems to be read from c here: https://hackage.haskell.org/package/base-4.16.1.0/docs/src/GHC-IO-Encoding-Iconv.html#localeEncodi…
2022-05-22 10:57:52 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-05-22 10:59:18 +0200chomwitt(~chomwitt@2a02:587:dc1e:cc00:630a:df82:afd2:eb70)
2022-05-22 11:00:17 +0200yosef36(~yosefweis@2001:470:69fc:105::1:e501) (Quit: You have been kicked for being idle)
2022-05-22 11:02:04 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-05-22 11:02:14 +0200Vajb(~Vajb@2001:999:231:409f:b036:bb6b:e334:8a8e)
2022-05-22 11:02:33 +0200mokee(~mokee@37.228.215.63)
2022-05-22 11:03:08 +0200shriekingnoise_(~shrieking@201.231.16.156) (Quit: Quit)
2022-05-22 11:04:31 +0200mokee(~mokee@37.228.215.63) (Client Quit)
2022-05-22 11:04:32 +0200 <Maxdamantus> sm: what happens when you set `LC_ALL=C` ?
2022-05-22 11:05:05 +0200 <sm> $ LC_ALL=C ghc -e 'import System.IO' -e 'print localeEncoding'
2022-05-22 11:05:05 +0200 <sm> UTF-8
2022-05-22 11:05:35 +0200 <Maxdamantus> Maybe LC_ALL is a glibc thing.
2022-05-22 11:06:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:84c:3a94:a15f:5a37)
2022-05-22 11:09:18 +0200 <Maxdamantus> Hm, no, it seems to be standardised in POSIX.
2022-05-22 11:11:02 +0200 <Maxdamantus> What happens if you do `echo 'á' | LC_ALL=C grep -o ^.`?
2022-05-22 11:11:50 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:84c:3a94:a15f:5a37) (Ping timeout: 272 seconds)
2022-05-22 11:13:08 +0200 <sm> $ echo 'á' | LC_ALL=C grep -o ^.
2022-05-22 11:13:08 +0200 <sm>
2022-05-22 11:13:28 +0200 <Maxdamantus> So it works there.
2022-05-22 11:13:39 +0200 <amongas666[m]> @compose pl undo [ [ x | x <- xs, even x ] | xs <- xxs]
2022-05-22 11:13:40 +0200 <lambdabot> (line 1, column 29):
2022-05-22 11:13:40 +0200 <lambdabot> unexpected "{"
2022-05-22 11:13:40 +0200 <lambdabot> expecting variable, "(", operator or ")"
2022-05-22 11:13:58 +0200 <sm> yeah.. that's a C program. It's ghc-compiled programs I seem to be having trouble with
2022-05-22 11:16:42 +0200 <sm> oh well, time to sleep. Thanks, all
2022-05-22 11:18:25 +0200benin(~benin@183.82.31.141) (Ping timeout: 246 seconds)
2022-05-22 11:19:10 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net)
2022-05-22 11:19:31 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-05-22 11:19:55 +0200romesrf(~romes@185.5.8.134)
2022-05-22 11:22:19 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-05-22 11:24:36 +0200Infinite(~Infinite@49.39.115.237) (Ping timeout: 252 seconds)
2022-05-22 11:25:59 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Quit: leaving)
2022-05-22 11:28:53 +0200mokee(~mokee@37.228.215.63)
2022-05-22 11:29:50 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 240 seconds)
2022-05-22 11:31:47 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
2022-05-22 11:38:18 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
2022-05-22 11:39:10 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 240 seconds)
2022-05-22 11:44:36 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 244 seconds)
2022-05-22 11:48:34 +0200mokee(~mokee@37.228.215.63) (Quit: off)
2022-05-22 11:49:18 +0200king_gs(~Thunderbi@187.201.97.18)
2022-05-22 11:52:43 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net)
2022-05-22 11:54:37 +0200mokee(~mokee@37.228.215.63)
2022-05-22 11:59:54 +0200king_gs(~Thunderbi@187.201.97.18) (Quit: king_gs)
2022-05-22 12:02:19 +0200mokee(~mokee@37.228.215.63) (Quit: off)
2022-05-22 12:02:35 +0200mokee(~mokee@37.228.215.63)
2022-05-22 12:06:46 +0200co-JOMBLO-38-CAR(~co-JOMBLO@92.223.85.241)
2022-05-22 12:07:50 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 240 seconds)
2022-05-22 12:07:54 +0200mmhat(~mmh@p200300f1c74601d3ee086bfffe095315.dip0.t-ipconnect.de)
2022-05-22 12:15:26 +0200 <[exa]> if I for whatever wicked reason want to build dynamic executables with cabal, what's the way to go? I found `executable-dynamic: True` but that just doesn't do anything despite documented
2022-05-22 12:16:12 +0200 <sm> isn't that the default kind of build ?
2022-05-22 12:16:24 +0200 <[exa]> ok solved, I needed to pass it to `cabal configure` as a flag.
2022-05-22 12:16:42 +0200 <[exa]> thanks #haskell for rubberducking :]
2022-05-22 12:16:55 +0200 <[exa]> sm: I thought everything is built as static by default, no?
2022-05-22 12:17:04 +0200 <sm> I thought the reverse
2022-05-22 12:17:08 +0200 <[exa]> (at least the binary sizes kinda tell that tale
2022-05-22 12:17:18 +0200 <sm> usually people are working hard to make things static
2022-05-22 12:17:58 +0200 <[exa]> weird
2022-05-22 12:18:09 +0200 <sm> I guess the usual default is somewhere in the middle.. neither fully dynamic nor fully static
2022-05-22 12:18:17 +0200 <[exa]> yeah I'd suspect that
2022-05-22 12:18:38 +0200Midjak(~Midjak@82.66.147.146)
2022-05-22 12:18:44 +0200sminstalls ghc 9.4 alpha with amazing ease, thanks ghcup!
2022-05-22 12:18:44 +0200smhttps://discourse.haskell.org/t/ghc-9-4-1-alpha1-is-now-available/4455/6?u=simonmic
2022-05-22 12:19:26 +0200 <[exa]> ah yeah really, it only packs the haskell libraries as static, and system/C-ish stuff stays dynamic
2022-05-22 12:19:53 +0200 <[exa]> mildly confusing, thanks for clarification :]
2022-05-22 12:20:24 +0200 <maerwald> static is the default (for haskell libraries)
2022-05-22 12:20:32 +0200 <maerwald> C libraries is a different topic
2022-05-22 12:20:58 +0200 <[exa]> btw what's new in 9.4?
2022-05-22 12:21:19 +0200 <sm> https://discourse.haskell.org/t/ghc-9-4-1-alpha1-is-now-available/4455 tells
2022-05-22 12:21:29 +0200 <[exa]> maerwald: yeah on the second look it is perfectly logical this way, one only kinda doesn't assume the half-static state
2022-05-22 12:21:57 +0200 <sm> and by the way discourse is awesome, I don't know why I'm still messing around with reddit
2022-05-22 12:21:59 +0200 <maerwald> yes, because C has stable ABI
2022-05-22 12:22:46 +0200mmhat(~mmh@p200300f1c74601d3ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-05-22 12:25:54 +0200 <[exa]> oh lovely, 150kb binary
2022-05-22 12:26:10 +0200 <sm> woah
2022-05-22 12:26:26 +0200 <[exa]> (I've got a pandoc on the same system image, so 99.9% of libraries are really shared)
2022-05-22 12:29:10 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-05-22 12:32:50 +0200co-JOMBLO-38-CAR(~co-JOMBLO@92.223.85.241) (Remote host closed the connection)
2022-05-22 12:35:58 +0200cosmos1(cosmos@user/cosmos1)
2022-05-22 12:39:47 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-05-22 12:40:43 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-05-22 12:45:32 +0200 <maerwald> [exa]: shipping dynamically linked haskell binaries isn't too hard either
2022-05-22 12:45:59 +0200 <maerwald> but doesn't make much sense for most cases
2022-05-22 12:50:13 +0200 <[exa]> yeah, I'm building completely closed and intact system images actually, and they should be small so copying the static libs would be a complete waste
2022-05-22 12:51:01 +0200benin(~benin@183.82.31.141)
2022-05-22 12:55:31 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313)
2022-05-22 13:05:46 +0200mmhat(~mmh@p200300f1c74601d3ee086bfffe095315.dip0.t-ipconnect.de)
2022-05-22 13:07:14 +0200Infinite(~Infinite@49.39.118.171)
2022-05-22 13:07:54 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-22 13:08:46 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:84c:3a94:a15f:5a37)
2022-05-22 13:09:20 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net)
2022-05-22 13:13:30 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:84c:3a94:a15f:5a37) (Ping timeout: 260 seconds)
2022-05-22 13:27:07 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-22 13:32:05 +0200cosmos1_(cosmos@user/cosmos1)
2022-05-22 13:32:28 +0200dcoutts(~duncan@host213-122-143-3.range213-122.btcentralplus.com)
2022-05-22 13:33:04 +0200acidjnk(~acidjnk@p200300d0c7068b45e4e7c1a76966715b.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-05-22 13:34:10 +0200cosmos1(cosmos@user/cosmos1) (Ping timeout: 240 seconds)
2022-05-22 13:41:19 +0200Vajb(~Vajb@2001:999:231:409f:b036:bb6b:e334:8a8e) (Read error: Connection reset by peer)
2022-05-22 13:41:43 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-22 13:58:03 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-22 14:02:43 +0200Infinite(~Infinite@49.39.118.171) (Quit: Client closed)
2022-05-22 14:15:07 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 260 seconds)
2022-05-22 14:17:00 +0200alp(~alp@user/alp)
2022-05-22 14:20:42 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
2022-05-22 14:22:23 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-22 14:28:22 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
2022-05-22 14:38:30 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313) (Remote host closed the connection)
2022-05-22 14:48:00 +0200Infinite(~Infinite@49.39.123.254)
2022-05-22 14:55:40 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-05-22 14:55:53 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-22 15:02:48 +0200causal(~user@50.35.83.177) (Quit: WeeChat 3.5)
2022-05-22 15:10:20 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:84c:3a94:a15f:5a37)
2022-05-22 15:11:58 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-05-22 15:14:53 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:84c:3a94:a15f:5a37) (Ping timeout: 244 seconds)
2022-05-22 15:18:08 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net)
2022-05-22 15:18:15 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-22 15:18:57 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net)
2022-05-22 15:22:02 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-05-22 15:23:00 +0200alp(~alp@user/alp) (Ping timeout: 260 seconds)
2022-05-22 15:23:46 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2022-05-22 15:30:46 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 246 seconds)
2022-05-22 15:33:31 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp)
2022-05-22 15:38:09 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 276 seconds)
2022-05-22 15:43:39 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net)
2022-05-22 15:44:02 +0200mmhat(~mmh@p200300f1c74601d3ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.5)
2022-05-22 15:47:34 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2022-05-22 15:47:41 +0200azimut_(~azimut@gateway/tor-sasl/azimut)
2022-05-22 15:51:54 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-22 15:59:32 +0200Josh(~Josh@216.154.3.96)
2022-05-22 16:00:18 +0200 <raehik> Where's the definition for Natural in GHC pre-9.2? New one is in ghc-bignum in GHC.Num.Natural
2022-05-22 16:00:59 +0200 <raehik> ahh found it, GHC.Natural
2022-05-22 16:08:13 +0200mc47(~mc47@xmonad/TheMC47)
2022-05-22 16:08:46 +0200mokee(~mokee@37.228.215.63) (Quit: off)
2022-05-22 16:09:09 +0200mokee(~mokee@37.228.215.63)
2022-05-22 16:10:07 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-05-22 16:10:18 +0200mokee(~mokee@37.228.215.63) (Client Quit)
2022-05-22 16:12:40 +0200ubert(~Thunderbi@p200300ecdf3b995b118dba1cd1127f24.dip0.t-ipconnect.de)
2022-05-22 16:13:19 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:84c:3a94:a15f:5a37)
2022-05-22 16:13:26 +0200mokee(~mokee@37.228.215.63)
2022-05-22 16:14:23 +0200mokee(~mokee@37.228.215.63) (Client Quit)
2022-05-22 16:15:52 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
2022-05-22 16:17:50 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:84c:3a94:a15f:5a37) (Ping timeout: 260 seconds)
2022-05-22 16:25:42 +0200 <Bulby[m]> why is `foo *> pure bar` equivilant to `foo $> bar`
2022-05-22 16:25:57 +0200 <Bulby[m]> or why does hlint suggest it
2022-05-22 16:28:29 +0200 <hpc> :t \foo bar -> foo *> pure bar
2022-05-22 16:28:30 +0200 <lambdabot> Applicative f => f a -> b -> f b
2022-05-22 16:28:34 +0200 <hpc> :t \foo bar -> foo $> bar
2022-05-22 16:28:35 +0200 <lambdabot> error:
2022-05-22 16:28:35 +0200 <lambdabot> • Variable not in scope: ($>) :: t -> t1 -> t2
2022-05-22 16:28:35 +0200 <lambdabot> • Perhaps you meant one of these:
2022-05-22 16:29:10 +0200 <hpc> @let import Data.Functor
2022-05-22 16:29:11 +0200 <hpc> :t \foo bar -> foo $> bar
2022-05-22 16:29:12 +0200 <lambdabot> Defined.
2022-05-22 16:29:13 +0200 <lambdabot> Functor f => f a -> b -> f b
2022-05-22 16:29:34 +0200 <Bulby[m]> ah, so basically the same...
2022-05-22 16:29:40 +0200 <hpc> yep
2022-05-22 16:29:44 +0200 <Bulby[m]> :t \foo bar -> foo *> bar
2022-05-22 16:29:45 +0200 <lambdabot> Applicative f => f a -> f b -> f b
2022-05-22 16:30:18 +0200 <Bulby[m]> `$>` just takes a normal value
2022-05-22 16:30:57 +0200 <Bulby[m]> they behave the same right? `fmap . const` doesn't sound identical to `foo *> pure bar`
2022-05-22 16:31:35 +0200 <Franciman> :t fmap . const
2022-05-22 16:31:37 +0200 <lambdabot> Functor f => b -> f a -> f b
2022-05-22 16:31:48 +0200 <hpc> :t (*>)
2022-05-22 16:31:49 +0200 <lambdabot> Applicative f => f a -> f b -> f b
2022-05-22 16:32:05 +0200 <hpc> (*>) already has that const-ish behavior
2022-05-22 16:32:11 +0200 <Franciman> yes
2022-05-22 16:32:13 +0200 <hpc> you just need to take a thing of type b (or a)
2022-05-22 16:32:16 +0200 <hpc> and make it fit f b
2022-05-22 16:32:22 +0200 <Franciman> `fmap . const` seems equal to (<$)
2022-05-22 16:32:29 +0200 <Franciman> :t (<$)
2022-05-22 16:32:30 +0200 <lambdabot> Functor f => a -> f b -> f a
2022-05-22 16:33:04 +0200 <Bulby[m]> wait, so `[1, 2, 3] *> pure 4 -- [4, 4, 4]` is correct?
2022-05-22 16:33:51 +0200 <Franciman> it should be [4] i think?
2022-05-22 16:33:56 +0200 <Bulby[m]> it is!
2022-05-22 16:34:00 +0200 <Franciman> > [1, 2, 3] *> pure 4
2022-05-22 16:34:02 +0200 <lambdabot> [4,4,4]
2022-05-22 16:34:08 +0200 <Franciman> you are correct Bulby[m]
2022-05-22 16:34:21 +0200 <Bulby[m]> wow, they are identical! amazing
2022-05-22 16:34:26 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-22 16:35:39 +0200 <Bulby[m]> which is why i assume hlint always reccomends replacing `foo *> pure bar` with `foo $> bar`
2022-05-22 16:35:46 +0200 <Franciman> yes
2022-05-22 16:38:18 +0200coot(~coot@213.134.190.95)
2022-05-22 16:38:25 +0200 <Bulby[m]> is that a convention?
2022-05-22 16:38:36 +0200 <Franciman> wait, which one?
2022-05-22 16:38:43 +0200 <Bulby[m]> it's not stated in docs
2022-05-22 16:38:48 +0200 <Bulby[m]> them being equivilant
2022-05-22 16:38:48 +0200 <Franciman> using $> over foo *> pure bar
2022-05-22 16:38:53 +0200 <Franciman> ah
2022-05-22 16:38:55 +0200 <Franciman> uhm
2022-05-22 16:39:00 +0200 <hpc> yeah, more or less
2022-05-22 16:39:14 +0200 <hpc> if two things are the same, prefer the more generic one
2022-05-22 16:39:20 +0200 <hpc> plus it's just simpler to write
2022-05-22 16:39:36 +0200 <Franciman> https://hackage.haskell.org/package/base-4.16.1.0/docs/Data-Functor.html#v:-60--36-
2022-05-22 16:39:45 +0200 <Franciman> it's written here that the default efinition of <$ is fmap . const
2022-05-22 16:39:51 +0200 <hpc> :t mapM
2022-05-22 16:39:52 +0200 <lambdabot> (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b)
2022-05-22 16:40:00 +0200 <Franciman> but you can change it, yeah
2022-05-22 16:40:04 +0200 <Franciman> this is true
2022-05-22 16:40:08 +0200 <Bulby[m]> I don't see the signifigance of that lol
2022-05-22 16:40:19 +0200 <Bulby[m]> :t fmap . const
2022-05-22 16:40:20 +0200 <lambdabot> Functor f => b -> f a -> f b
2022-05-22 16:40:27 +0200 <Franciman> (<$) = fmap . const
2022-05-22 16:40:35 +0200 <Franciman> by default
2022-05-22 16:40:41 +0200 <Franciman> if you implement a functor instance
2022-05-22 16:40:45 +0200 <Franciman> and define fmap
2022-05-22 16:40:52 +0200 <hpc> :t liftM -- rather
2022-05-22 16:40:53 +0200 <Franciman> then (<$) = fmap . const, by default
2022-05-22 16:40:53 +0200 <lambdabot> Monad m => (a1 -> r) -> m a1 -> m r
2022-05-22 16:40:57 +0200 <hpc> :t liftA
2022-05-22 16:40:59 +0200 <lambdabot> Applicative f => (a -> b) -> f a -> f b
2022-05-22 16:40:59 +0200 <hpc> :t fmap
2022-05-22 16:41:01 +0200 <lambdabot> Functor f => (a -> b) -> f a -> f b
2022-05-22 16:41:22 +0200 <hpc> each of those is the same function, but using fmap is recommended because more types are Functor than are Monad
2022-05-22 16:41:32 +0200 <hpc> and every Monad is also Functor
2022-05-22 16:42:04 +0200 <Bulby[m]> liftA looks like it is described to only be used for deriving a Functor instance from a Applicative instance
2022-05-22 16:42:58 +0200 <geekosaur> liftA is more or less generalized liftM, which historicallyexisted only to recover a Functor from a Monad because it wasn't a superclass yet
2022-05-22 16:43:20 +0200 <geekosaur> and completes the liftAn set
2022-05-22 16:43:49 +0200 <Bulby[m]> i'm saying it's docs say it's used for making a functor instance from an applicative instance
2022-05-22 16:44:32 +0200 <geekosaur> that doesn't actually make any sense because anything that is Applicative is also functor (and has been for the entire existence of Applicative)
2022-05-22 16:44:58 +0200 <Bulby[m]> ... why does liftA exist at all then
2022-05-22 16:45:01 +0200 <geekosaur> guessing the doc was copied from liftM where that was true for s/Applicative/Monad/
2022-05-22 16:46:11 +0200hololeapcan't wait for the release of liftA4
2022-05-22 16:46:19 +0200 <Bulby[m]> \o/
2022-05-22 16:46:32 +0200 <hpc> someday when we have the technology for it, we might even get liftA5
2022-05-22 16:46:48 +0200 <hololeap> O_O
2022-05-22 16:46:51 +0200 <Bulby[m]> ez `liftA4 f a b c d = liftA3 f a b c <*> d`
2022-05-22 16:47:04 +0200 <hololeap> stop that sorcery
2022-05-22 16:47:25 +0200 <hpc> yeah, what do you think we do here, functional programming? :P
2022-05-22 16:47:40 +0200 <Bulby[m]> `liftA5 f a b c d e = liftA4 f a b c d <*> e`
2022-05-22 16:47:59 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-05-22 16:48:00 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-05-22 16:48:00 +0200wroathe(~wroathe@user/wroathe)
2022-05-22 16:48:33 +0200 <hololeap> Bulby[m]: plz stop, you're scaring me :(
2022-05-22 16:48:35 +0200 <Bulby[m]> https://hackage.haskell.org/package/base-4.16.1.0/docs/Control-Monad.html#v:liftM5 explain this
2022-05-22 16:48:36 +0200kenaryn(~aurele@89-88-44-27.abo.bbox.fr)
2022-05-22 16:49:22 +0200 <hololeap> I assume liftM5 is a holdover from before (<*>) was a thing
2022-05-22 16:50:31 +0200 <Bulby[m]> we have fun here
2022-05-22 16:51:23 +0200 <hpc> you could still use `ap` but much like lisp and perl programmers, we love pressing the shfit key :D
2022-05-22 16:55:52 +0200romes[m](~romesmatr@2001:470:69fc:105::2:1660)
2022-05-22 16:58:43 +0200zebrag(~chris@user/zebrag)
2022-05-22 16:58:54 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-22 16:59:29 +0200 <geekosaur> yeh, Monad goes up to liftM6, but also had `ap` which became `<*>` when Applicative arrived
2022-05-22 16:59:43 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net)
2022-05-22 17:00:05 +0200emad(~emad@156.214.61.111) (Remote host closed the connection)
2022-05-22 17:06:53 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-22 17:09:02 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-22 17:10:25 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:84c:3a94:a15f:5a37)
2022-05-22 17:11:57 +0200off^(~off@c-24-126-228-147.hsd1.ga.comcast.net)
2022-05-22 17:13:59 +0200tubogram44(~tubogram@user/tubogram)
2022-05-22 17:14:02 +0200alp(~alp@user/alp)
2022-05-22 17:14:44 +0200tubogram4(~tubogram@user/tubogram) (Ping timeout: 240 seconds)
2022-05-22 17:14:44 +0200tubogram44tubogram4
2022-05-22 17:15:59 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-22 17:16:48 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net)
2022-05-22 17:18:57 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-22 17:19:05 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: Textual IRC Client: www.textualapp.com)
2022-05-22 17:20:29 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-22 17:21:51 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-05-22 17:21:51 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-05-22 17:22:08 +0200fryguybo1(~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Quit: leaving)
2022-05-22 17:25:49 +0200romesrf(~romes@185.5.8.134) (Ping timeout: 256 seconds)
2022-05-22 17:27:12 +0200gensyst(gensyst@user/gensyst)
2022-05-22 17:27:50 +0200 <gensyst> How can this code possibly be type-checking? (Why can I wrap a pointer to something into that something all over again??) let e = (C.Cairo (undefined :: Ptr C.Cairo) :: C.Cairo)
2022-05-22 17:29:20 +0200 <geekosaur> because Ptr is not really a pointer to something in the C sense
2022-05-22 17:29:50 +0200 <geekosaur> it's a pointer to some value from C, and the type is more of a tag than anything else
2022-05-22 17:29:51 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net)
2022-05-22 17:29:53 +0200 <Bulby[m]> it's a magic type basically iirc
2022-05-22 17:30:03 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-22 17:30:22 +0200 <geekosaur> the actual thing it's pointing to is some C structure that you typically can't represent directly in Haskell
2022-05-22 17:30:58 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-05-22 17:31:11 +0200 <geekosaur> (well, in this case it's pointing to nothing because it's using `undefined`, so you can think of it as a null pointer)
2022-05-22 17:31:57 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-22 17:32:05 +0200sabry(~sabry@197.37.144.70)
2022-05-22 17:32:05 +0200 <gensyst> wtf lol
2022-05-22 17:32:21 +0200 <Bulby[m]> i hate C externs
2022-05-22 17:32:30 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-05-22 17:32:34 +0200 <Bulby[m]> in all sorts of languages they are nothing but witchcraft
2022-05-22 17:32:41 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2022-05-22 17:33:00 +0200 <gensyst> geekosaur, so what is e in my example? the underlying thing being pointed at?
2022-05-22 17:33:26 +0200 <geekosaur> I don't know what C.Cairo is, aside from "a constructor"
2022-05-22 17:33:53 +0200 <geekosaur> the constructor contains what amounts to a null pointer
2022-05-22 17:34:21 +0200 <Bulby[m]> you are never supposed to make your own pointers I think
2022-05-22 17:34:34 +0200 <Bulby[m]> you just use `Ptr` as a type sig for extern functions
2022-05-22 17:34:53 +0200 <geekosaur> it's valid to pass a Ptr around.
2022-05-22 17:35:09 +0200 <geekosaur> I would question why it uses undefined instead of nullPtr, but that's just me
2022-05-22 17:35:10 +0200off^(~off@c-24-126-228-147.hsd1.ga.comcast.net) (Ping timeout: 240 seconds)
2022-05-22 17:35:25 +0200 <Bulby[m]> yes, but you shouldn't create them manually, aside from in C
2022-05-22 17:35:32 +0200 <geekosaur> unless they want an exception if it's touched, which might be reasonable
2022-05-22 17:35:33 +0200 <gensyst> geekosaur, if I write this instead, let e = (C.Cairo (undefined :: Ptr Int) :: C.Cairo) I get the error "Couldn't match type ‘Int’ with ‘C.Cairo’". So we know this C.Cairo constructor is indeed expecting a Ptr C.Cairo lol?
2022-05-22 17:35:40 +0200frost(~frost@user/frost) (Ping timeout: 252 seconds)
2022-05-22 17:35:40 +0200 <gensyst> it's expecting a pointer to itself!
2022-05-22 17:35:44 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Client Quit)
2022-05-22 17:35:45 +0200 <geekosaur> like I told you, it's a tag
2022-05-22 17:35:47 +0200 <Bulby[m]> It's a phantom type
2022-05-22 17:35:55 +0200 <geekosaur> no, it is not pointing to itself
2022-05-22 17:35:57 +0200 <Bulby[m]> or a tag
2022-05-22 17:36:01 +0200 <geekosaur> a Ptr Foo is not a Foo
2022-05-22 17:36:33 +0200 <geekosaur> its representation is the address of something. the type is ignored except for type checking purposes
2022-05-22 17:36:44 +0200 <geekosaur> so you can't mix it with a Ptr Int
2022-05-22 17:37:17 +0200 <Bulby[m]> C pointers are similar, no? you can (unsafely) cast them however your heart desires
2022-05-22 17:37:33 +0200 <geekosaur> there is an unsafe cast operation, in fact
2022-05-22 17:37:51 +0200 <geekosaur> but in the normal case you can't in Haskell, the type must match
2022-05-22 17:37:51 +0200 <Bulby[m]> unsafe coerce in haskell right
2022-05-22 17:38:06 +0200 <geekosaur> don't even need that, there is castPtr
2022-05-22 17:38:18 +0200 <Bulby[m]> oh
2022-05-22 17:38:21 +0200 <Bulby[m]> yuck
2022-05-22 17:38:50 +0200 <Bulby[m]> i'm proud of myself, I wrote C++ externs that don't segfault
2022-05-22 17:39:11 +0200off^(~off@c-24-126-228-147.hsd1.ga.comcast.net)
2022-05-22 17:39:19 +0200 <gensyst> Thanks for the above! I'll have to sleep on this a bit and get back to this when I'm more focused.
2022-05-22 17:40:01 +0200 <Bulby[m]> Polysemy is being mean - it isn't letting me use `note` even though the Sem I return has `Error` in it's members list
2022-05-22 17:40:21 +0200 <Bulby[m]> `polysemyHelp :: P.Sem [P.Fail, P.Error T.Text] VersionInfo`
2022-05-22 17:40:51 +0200 <Bulby[m]> this is a helper function btw
2022-05-22 17:40:58 +0200 <Bulby[m]> which is why it's hardcodec
2022-05-22 17:41:01 +0200 <Bulby[m]> s/hardcodec/hardcoded/
2022-05-22 17:41:05 +0200 <Bulby[m]> NO I EDITED IT
2022-05-22 17:41:18 +0200 <Bulby[m]> sorry for any garbage on the irc end
2022-05-22 17:43:03 +0200 <geekosaur> gensyst, consider https://play-haskell.tomsmeding.com/play/paste/YMxHdqaS/1
2022-05-22 17:43:56 +0200 <geekosaur> single edits are usually okay, we get the point. it's when you do a bunch of them or replacing the whole line or etc. that it gets messy
2022-05-22 17:45:16 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-22 17:45:34 +0200gpncarl(~gpncarl@120.244.220.74)
2022-05-22 17:45:50 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net)
2022-05-22 17:47:58 +0200 <Bulby[m]> ah, it's another case of polysemy being insane
2022-05-22 17:48:08 +0200 <Bulby[m]> thankfully polysemy-plugin fixes insanity (mostly)
2022-05-22 17:50:46 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2022-05-22 17:51:00 +0200fryguybob(~fryguybob@cpe-74-67-169-145.rochester.res.rr.com)
2022-05-22 17:52:55 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net)
2022-05-22 17:55:09 +0200 <gensyst> geekosaur, should I then just view such a constructor C.Cairo :: Ptr C.Cairo -> C.Cairo as a weird artifact of the way C.Cairo has chosen to do FFI?
2022-05-22 17:55:25 +0200 <geekosaur> yes
2022-05-22 17:55:41 +0200 <gensyst> but can nothing more be said? as in, could C.Cairo have done this differently?
2022-05-22 17:55:50 +0200 <gensyst> this is so weird lol
2022-05-22 17:56:04 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
2022-05-22 17:56:04 +0200 <geekosaur> it could have created a distinct type to represent the pointer to a C struct
2022-05-22 17:56:11 +0200 <gensyst> It's like the C.Cairo inside the Ptr is not the same as the outer C.Cairo
2022-05-22 17:56:27 +0200 <geekosaur> it's not
2022-05-22 17:56:33 +0200 <geekosaur> it's some C value
2022-05-22 17:56:41 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-22 17:56:43 +0200[_](~itchyjunk@user/itchyjunk/x-7353470)
2022-05-22 17:56:45 +0200 <geekosaur> but there's no good reason to do so and you can't take a Ptr to a Haskell value, so why not reuse the Haskell type?
2022-05-22 17:56:46 +0200__monty__(~toonn@user/toonn)
2022-05-22 17:56:59 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 256 seconds)
2022-05-22 17:57:04 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-05-22 17:57:12 +0200 <gensyst> geekosaur, good question! So is this commonly done when doing FFI?
2022-05-22 17:57:32 +0200 <geekosaur> if there are a bunch of different C values to keep track of, yes
2022-05-22 17:57:33 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-22 17:57:48 +0200 <gensyst> ok thanks! this is key intel
2022-05-22 17:57:53 +0200 <geekosaur> since this is probably a binding to libcairo, that would seem likely
2022-05-22 17:58:01 +0200 <geekosaur> it's what I've been trying to tell you :)
2022-05-22 17:59:11 +0200 <gensyst> :D
2022-05-22 17:59:43 +0200 <geekosaur> more correctly you can take a pointer to a Haskell value if you try hard enough, but the garbage collector won't update it if it moves the value around so it's useless and eventually dangerous
2022-05-22 18:00:01 +0200 <maerwald> I still don't understand why Haskellers are eager to use effects systems that have fishy semantics. But that reinforces my suspicion that abstraction is valued more than correctness in Haskell, generally.
2022-05-22 18:00:12 +0200hololeap(~hololeap@user/hololeap)
2022-05-22 18:00:13 +0200off^(~off@c-24-126-228-147.hsd1.ga.comcast.net) (Ping timeout: 244 seconds)
2022-05-22 18:01:01 +0200 <maerwald> trying out research ideas in production... let's go :D
2022-05-22 18:02:20 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-05-22 18:04:20 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-05-22 18:04:44 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-22 18:06:11 +0200andai(~andai@86.32.39.178)
2022-05-22 18:06:37 +0200andai(~andai@86.32.39.178) (Client Quit)
2022-05-22 18:07:44 +0200andai(~andai@86.32.39.178)
2022-05-22 18:11:57 +0200nattiestnate(~nate@202.138.250.17)
2022-05-22 18:12:50 +0200andai(~andai@86.32.39.178) (Quit: Connection closed)
2022-05-22 18:14:18 +0200gensyst(gensyst@user/gensyst) (Quit: Leaving)
2022-05-22 18:16:07 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-05-22 18:16:34 +0200andai(~andai@86.32.39.178)
2022-05-22 18:16:40 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2022-05-22 18:17:45 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-05-22 18:19:26 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-05-22 18:19:53 +0200gpncarl(~gpncarl@120.244.220.74) (WeeChat 3.4.1)
2022-05-22 18:20:55 +0200cosmos1_(cosmos@user/cosmos1) (Quit: Lost terminal)
2022-05-22 18:21:15 +0200 <monochrom> I don't think any programming community prioritize correctness, really.
2022-05-22 18:22:13 +0200 <sm> ada ?
2022-05-22 18:22:33 +0200 <maerwald> you mean agda?
2022-05-22 18:23:00 +0200 <sm> no, I mean the ada language community
2022-05-22 18:23:50 +0200 <sm> they take a certain kind of correctness very seriously. But of course there are multiple kinds of correctness and they also care about results too
2022-05-22 18:25:30 +0200cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2022-05-22 18:27:35 +0200Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 256 seconds)
2022-05-22 18:27:48 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 276 seconds)
2022-05-22 18:30:11 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-05-22 18:31:17 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-05-22 18:31:33 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-22 18:31:48 +0200eggplant_(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-22 18:31:50 +0200andai48(~andai@89.205.139.77)
2022-05-22 18:32:34 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-05-22 18:32:55 +0200andai48andaii
2022-05-22 18:33:28 +0200andai(~andai@86.32.39.178) (Ping timeout: 246 seconds)
2022-05-22 18:33:47 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:84c:3a94:a15f:5a37) (Ping timeout: 240 seconds)
2022-05-22 18:34:57 +0200eggplant_(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-22 18:35:02 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-22 18:35:39 +0200hololeap(~hololeap@user/hololeap)
2022-05-22 18:36:11 +0200 <hpc> there's a joke about https://www.youtube.com/watch?v=RqTsUtQLRFk in there somewhere
2022-05-22 18:36:54 +0200wolfshappen(~waff@irc.furworks.de) (Quit: later)
2022-05-22 18:37:22 +0200wolfshappen(~waff@irc.furworks.de)
2022-05-22 18:40:33 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-22 18:43:11 +0200abiss27(~abiss27@user/abiss)
2022-05-22 18:44:38 +0200phuegrvs[m](~phuegrvsm@2001:470:69fc:105::1:65e4)
2022-05-22 18:45:18 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 272 seconds)
2022-05-22 18:46:45 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-22 18:47:37 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net)
2022-05-22 18:49:18 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-22 18:51:50 +0200abiss27(~abiss27@user/abiss) (Quit: hasta la vista... tchau!)
2022-05-22 18:53:02 +0200abiss27(~abiss27@user/abiss)
2022-05-22 18:53:13 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-22 18:57:01 +0200 <hololeap> what was the magic to add to cabal.project.local so that you can point cabal to a package that exists locally, but not on hackage?
2022-05-22 18:57:57 +0200 <hololeap> point cabal to the source dir of dependency that isn't on hackage
2022-05-22 18:58:35 +0200 <hpc> https://cabal.readthedocs.io/en/3.4/cabal-project.html#specifying-the-local-packages looks like
2022-05-22 18:59:54 +0200 <hololeap> yeah, I tried adding the line `packages: . ../parsable/`, but I get the error "TODO: add support for multiple packages in a directory."
2022-05-22 19:00:04 +0200cheater(~Username@user/cheater)
2022-05-22 19:01:30 +0200stackdroid18(14094@user/stackdroid)
2022-05-22 19:02:15 +0200cheater(~Username@user/cheater) (Client Quit)
2022-05-22 19:02:30 +0200 <hpc> hmm
2022-05-22 19:02:57 +0200cheater(~Username@user/cheater)
2022-05-22 19:03:14 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-22 19:03:17 +0200 <hpc> oh, i was wrong
2022-05-22 19:03:19 +0200 <hpc> https://cabal.readthedocs.io/en/3.4/cabal-project.html#cfg-field-extra-packages
2022-05-22 19:03:22 +0200 <maerwald> `packages: dir1 dir2` works
2022-05-22 19:03:33 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2022-05-22 19:03:58 +0200 <maerwald> hololeap: is there a cabal file in ../parsable/?
2022-05-22 19:04:49 +0200 <hololeap> yeah
2022-05-22 19:04:56 +0200 <maerwald> then that should work
2022-05-22 19:05:04 +0200zeenk(~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980)
2022-05-22 19:05:49 +0200SqaureSquare
2022-05-22 19:07:18 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-05-22 19:07:37 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-05-22 19:08:36 +0200 <hololeap> yeah, I don't get it: http://sprunge.us/N0p7UW
2022-05-22 19:09:58 +0200 <geekosaur> what's in cabal.project? I think it might be combined with cabal.project.local
2022-05-22 19:10:00 +0200Enrico63(~Enrico63@81.109.143.226)
2022-05-22 19:10:12 +0200 <geekosaur> the packages field at least
2022-05-22 19:10:47 +0200 <hololeap> there is no cabal.project file
2022-05-22 19:10:55 +0200 <monochrom> Is there ../cabal.project ?
2022-05-22 19:11:07 +0200 <hololeap> no
2022-05-22 19:11:35 +0200 <sclv> You should put all this in cabal.project, not cabal.project.local fwiw
2022-05-22 19:12:01 +0200 <hololeap> well, this is so I can develop without having to push parsable to hackage first
2022-05-22 19:12:49 +0200Enrico63(~Enrico63@81.109.143.226) (Client Quit)
2022-05-22 19:14:15 +0200 <maerwald> hololeap: when you omit cabal.project, an implicit cabal.project will be used
2022-05-22 19:14:48 +0200 <maerwald> which is something like 'packages: ./*.cabal' I think
2022-05-22 19:15:11 +0200 <hololeap> oh, ok
2022-05-22 19:15:14 +0200Square(~a@user/square) (Quit: ZNC 1.6.3+deb1 - http://znc.in)
2022-05-22 19:15:27 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-22 19:15:37 +0200Square(~a@user/square)
2022-05-22 19:15:45 +0200jakalx(~jakalx@base.jakalx.net)
2022-05-22 19:15:50 +0200 <hololeap> yeah, making a cabal.project with just "packages: ." and then "packages: ../parsable/" in cabal.project.local worked
2022-05-22 19:16:00 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-05-22 19:16:52 +0200 <hololeap> in fact, removing cabal.project and leaving cabal.project.local as that works as well
2022-05-22 19:16:56 +0200 <hololeap> thanks for the tip, maerwald
2022-05-22 19:17:57 +0200econo(uid147250@user/econo)
2022-05-22 19:23:50 +0200abiss27(~abiss27@user/abiss) (Ping timeout: 240 seconds)
2022-05-22 19:26:14 +0200Josh(~Josh@216.154.3.96) (Quit: Connection closed)
2022-05-22 19:26:31 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net)
2022-05-22 19:31:17 +0200yauhsien(~yauhsien@61-231-39-34.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
2022-05-22 19:33:31 +0200 <hololeap> is there a way to use GeneralizedNewtypeDeriving for IsList?
2022-05-22 19:34:04 +0200 <hololeap> I don't see a way to define Item without making an instance block
2022-05-22 19:38:56 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313)
2022-05-22 19:39:56 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 244 seconds)
2022-05-22 19:40:26 +0200zincy_(~zincy@2a00:23c8:970c:4801:5ce3:174f:85c3:8411)
2022-05-22 19:41:15 +0200andaii(~andai@89.205.139.77) (Quit: Connection closed)
2022-05-22 19:44:07 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313) (Ping timeout: 240 seconds)
2022-05-22 19:47:48 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-22 19:47:50 +0200iqubic(~iqubic@2601:602:9502:c70:922d:79af:4ac2:afe3)
2022-05-22 19:48:46 +0200 <iqubic> Does anyone here use The Haskell Language Server? I'm running into this bug: https://github.com/haskell/haskell-language-server/issues/1971
2022-05-22 19:49:04 +0200 <geekosaur> there's a #haskell-language-server channel
2022-05-22 19:49:14 +0200 <iqubic> I didn't know that.
2022-05-22 19:53:55 +0200ircbrowse_tom(~ircbrowse@2a01:4f8:1c1c:9319::1) (ZNC 1.7.5+deb4 - https://znc.in)
2022-05-22 20:10:02 +0200ircbrowse_tom(~ircbrowse@static.162.49.55.162.clients.your-server.de)
2022-05-22 20:10:02 +0200fiddlerwoaroof(~fiddlerwo@user/fiddlerwoaroof) (Ping timeout: 260 seconds)
2022-05-22 20:10:05 +0200Server+Cnt
2022-05-22 20:10:10 +0200defanor(~defanor@tart.uberspace.net)
2022-05-22 20:10:18 +0200bcoppens(~bartcopp@vpn2.bartcoppens.be)
2022-05-22 20:11:09 +0200madnight_(~madnight@static.59.103.201.195.clients.your-server.de) (Ping timeout: 276 seconds)
2022-05-22 20:11:33 +0200madnight(~madnight@static.59.103.201.195.clients.your-server.de)
2022-05-22 20:11:39 +0200 <Bulby[m]> it's been 5 minutes and sinkLazy still hasn't finished
2022-05-22 20:12:10 +0200hexology(~hexology@user/hexology)
2022-05-22 20:13:34 +0200geekosaursuspects the "lazy" part is relevant
2022-05-22 20:13:37 +0200zincy_(~zincy@2a00:23c8:970c:4801:5ce3:174f:85c3:8411) (Remote host closed the connection)
2022-05-22 20:13:40 +0200toluene(~toluene@user/toulene) (Quit: The Lounge - https://thelounge.chat)
2022-05-22 20:13:49 +0200 <Bulby[m]> 😳
2022-05-22 20:14:23 +0200 <Bulby[m]> well you see, toArchive wants a lazy bytestring
2022-05-22 20:15:22 +0200 <geekosaur> i.e. something has to demand it (via demanding the result of that extractFilesFromArchive, and quite possibly trying to access one of the extracted files won't be enough)
2022-05-22 20:15:55 +0200 <Bulby[m]> won't `toArchive` demand it
2022-05-22 20:16:06 +0200wz1000(~zubin@static.11.113.47.78.clients.your-server.de)
2022-05-22 20:16:07 +0200Lycurgus(~juan@user/Lycurgus)
2022-05-22 20:16:17 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-22 20:16:20 +0200azimut_(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-05-22 20:16:28 +0200 <Bulby[m]> altho it takes in a lazy bs
2022-05-22 20:16:39 +0200 <geekosaur> that, and it's pure
2022-05-22 20:16:48 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-05-22 20:16:49 +0200 <Bulby[m]> 😳
2022-05-22 20:16:57 +0200 <Bulby[m]> and what does that mean
2022-05-22 20:17:08 +0200ncf(~n@monade.li) (Quit: Fairfarren.)
2022-05-22 20:17:09 +0200 <geekosaur> extractFilesFromArchive is in IO and can actually demand execution
2022-05-22 20:17:25 +0200ncf(~n@monade.li)
2022-05-22 20:17:28 +0200 <geekosaur> pure computations are more declarative, and inherently lazy
2022-05-22 20:17:45 +0200 <Bulby[m]> if
2022-05-22 20:17:46 +0200 <Bulby[m]> fllgihg;
2022-05-22 20:18:02 +0200 <Bulby[m]> so...
2022-05-22 20:18:08 +0200 <Bulby[m]> how would I fix this mess
2022-05-22 20:18:19 +0200 <Lycurgus> many matrix nicks, the final ... uh evolution
2022-05-22 20:19:27 +0200 <geekosaur> good question, I would have expected extractFilesFromArchive to demand it but apparently that's not enough. possibly because it's inside the conduit? my knowledge of conduit is pretty weak
2022-05-22 20:19:27 +0200 <Bulby[m]> I don't want to pull it all into memory - that would defeat the point of using conduit
2022-05-22 20:19:46 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt)
2022-05-22 20:20:33 +0200 <geekosaur> right, but extracting files may do so anyway, unless it's designed to work with conduit. but somehow I would expect not having to do that sink etc. in that case
2022-05-22 20:20:53 +0200 <Bulby[m]> hm, maybe I should try to find a zip conduit lib
2022-05-22 20:21:01 +0200 <Bulby[m]> instead of mashing them together
2022-05-22 20:22:13 +0200 <Bulby[m]> zip-stream looks promising (by promising I mean 3 entries below where I looked 🙃)
2022-05-22 20:22:35 +0200zeenk(~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980) (Quit: Konversation terminated!)
2022-05-22 20:23:46 +0200 <Bulby[m]> oh, it does it in memory. I want to save
2022-05-22 20:25:35 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com)
2022-05-22 20:26:11 +0200 <geekosaur[m]> And I wasn't even using mine!
2022-05-22 20:27:30 +0200 <Bulby[m]> i am going to commit murder
2022-05-22 20:27:32 +0200off^(~off@c-24-126-228-147.hsd1.ga.comcast.net) (Ping timeout: 252 seconds)
2022-05-22 20:27:38 +0200 <Bulby[m]> a good lib isn't on stack
2022-05-22 20:30:14 +0200 <Bulby[m]> how do I lookup packages on stackage
2022-05-22 20:30:53 +0200 <Clint> use the website
2022-05-22 20:31:16 +0200 <Bulby[m]> the website uses hoogle which is not very conveinent for looking up packages
2022-05-22 20:31:43 +0200 <maerwald> Bulby[m]: check out libarchive
2022-05-22 20:32:19 +0200 <Bulby[m]> argh! i don't want to use hoogle! I just want to find package
2022-05-22 20:32:24 +0200Infinite(~Infinite@49.39.123.254) (Ping timeout: 252 seconds)
2022-05-22 20:32:50 +0200 <yushyin> https://www.stackage.org/lts-19.7 ctrl-f
2022-05-22 20:32:52 +0200 <yushyin> ;D
2022-05-22 20:33:19 +0200 <Bulby[m]> i know that's probably a joke but it didn't work
2022-05-22 20:34:03 +0200nattiestnate(~nate@202.138.250.17) (Quit: WeeChat 3.5)
2022-05-22 20:34:16 +0200 <Bulby[m]> what is a package repo with no dedicated search feature?
2022-05-22 20:35:07 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-05-22 20:35:37 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection)
2022-05-22 20:39:56 +0200 <yushyin> more of a joke since i don't use stack/stackage but nevertheless it should list all available packages for the lts-19.7, no?
2022-05-22 20:40:22 +0200 <monochrom> and pretty searchable by ctrl-f
2022-05-22 20:40:23 +0200 <Bulby[m]> well, it loads it while you scroll
2022-05-22 20:40:28 +0200 <yushyin> https://hackage.haskell.org/packages/browse?terms=%28distro%3AStackage%29 maybe this works better for you
2022-05-22 20:40:45 +0200 <Bulby[m]> \o/
2022-05-22 20:42:33 +0200 <Bulby[m]> libarchive isn't on stack
2022-05-22 20:42:56 +0200ubert(~Thunderbi@p200300ecdf3b995b118dba1cd1127f24.dip0.t-ipconnect.de) (Quit: ubert)
2022-05-22 20:43:43 +0200 <Bulby[m]> zip-stream gives me flashbacks to haxe manually unzipping files
2022-05-22 20:44:02 +0200Kaipei(~Kaiepi@156.34.47.253)
2022-05-22 20:44:45 +0200 <geekosaur> there's a libarchive-conduit but it's like 8 years old and therefore unlikely to be in any recent stackage lts
2022-05-22 20:46:19 +0200 <geekosaur> oh, it's the wrong end of it
2022-05-22 20:46:35 +0200iqubic(~iqubic@2601:602:9502:c70:922d:79af:4ac2:afe3) (Quit: Client closed)
2022-05-22 20:46:59 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-05-22 20:47:11 +0200off^(~off@c-24-126-228-147.hsd1.ga.comcast.net)
2022-05-22 20:48:10 +0200Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 272 seconds)
2022-05-22 20:51:51 +0200iqubic(~iqubic@2601:602:9502:c70:922d:79af:4ac2:afe3)
2022-05-22 20:52:35 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-22 20:56:09 +0200 <maerwald> Bulby[m]: so? Just add it
2022-05-22 20:57:45 +0200Guest60(~Guest60@189.120.76.108)
2022-05-22 21:01:35 +0200Guest60(~Guest60@189.120.76.108) (Client Quit)
2022-05-22 21:01:49 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-05-22 21:05:05 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-22 21:09:19 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
2022-05-22 21:11:43 +0200michalz(~michalz@185.246.204.122)
2022-05-22 21:13:49 +0200bgamari(~bgamari@2001:470:e438::1) (Remote host closed the connection)
2022-05-22 21:16:33 +0200off^(~off@c-24-126-228-147.hsd1.ga.comcast.net) (Ping timeout: 244 seconds)
2022-05-22 21:18:01 +0200 <maerwald> sm: can you scrape project links from hackage DB?
2022-05-22 21:20:53 +0200 <sm> maerwald: yes! I'd like that to be one of the next data sets. I plan to poll the rss feed for new links, but any thoughts on the easiest way to download the full set ?
2022-05-22 21:21:15 +0200 <maerwald> you just download the actual hackage db and... dunno, parse it
2022-05-22 21:21:21 +0200 <maerwald> it's some obscure binary format though
2022-05-22 21:24:12 +0200coot(~coot@213.134.190.95)
2022-05-22 21:24:45 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-05-22 21:25:31 +0200xstill-(xstill@fimu/xstill) (Ping timeout: 256 seconds)
2022-05-22 21:25:31 +0200xsarnik(xsarnik@lounge.fi.muni.cz) (Ping timeout: 256 seconds)
2022-05-22 21:27:05 +0200 <sm> sounds.. gun
2022-05-22 21:27:19 +0200 <sm> oops, freudian slip. Fun.
2022-05-22 21:27:30 +0200 <Bulby[m]> footgun?
2022-05-22 21:27:53 +0200 <sm> bristling with footguns
2022-05-22 21:28:28 +0200sabry(~sabry@197.37.144.70) (Quit: Client closed)
2022-05-22 21:28:38 +0200 <sm> sclv, do you happen to know if there's an easier hackage api or snapshot for getting a list of package names ?
2022-05-22 21:29:15 +0200bgamari(~bgamari@2001:470:e438::1)
2022-05-22 21:29:30 +0200 <Bulby[m]> does conduit/req have a rate limit or is my internet comically bad
2022-05-22 21:30:58 +0200 <geekosaur> there's a rate limit (streamly is faster) but it's not *that* low
2022-05-22 21:31:26 +0200 <Bulby[m]> can I have a ballpark estimate of that rate limit
2022-05-22 21:31:56 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
2022-05-22 21:32:58 +0200 <geekosaur> there isn't a fixed one
2022-05-22 21:33:12 +0200 <geekosaur> it's just not as fast as it might potentially be
2022-05-22 21:33:37 +0200 <geekosaur> (I don't have an estimate since my internet is throttled)
2022-05-22 21:36:34 +0200 <Bulby[m]> i'm getting ~0.1MB/howeverlong it takes pcmanfm to update
2022-05-22 21:37:03 +0200 <geekosaur> that seems *way* too slow
2022-05-22 21:37:14 +0200 <Bulby[m]> hmm
2022-05-22 21:39:08 +0200 <Bulby[m]> i'm running arch which doesn't do traffic shaping
2022-05-22 21:39:38 +0200smuploaded an image: (156KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/ibdBqSDgfQxvufJJFtGUccAM/image.png >
2022-05-22 21:39:56 +0200stackdroid18(14094@user/stackdroid) (Quit: hasta la vista... tchau!)
2022-05-22 21:40:00 +0200smuploaded an image: (380KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/FZemaZymqHBmxqOoOgelqjoC/image.png >
2022-05-22 21:40:00 +0200 <Bulby[m]> i thought images don't work on irc?
2022-05-22 21:40:29 +0200 <sm> ^ getting to the important stuff now
2022-05-22 21:40:34 +0200ubert(~Thunderbi@p200300ecdf3b995b6d3ba42fb5eab692.dip0.t-ipconnect.de)
2022-05-22 21:40:40 +0200 <sm> they appear as links on irc
2022-05-22 21:40:57 +0200 <hpc> the matrix bridge translates it into a /me
2022-05-22 21:41:00 +0200 <hpc> * sm uploaded an image: (156KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/ibdBqSDgfQxvufJJFtGUccAM/image.png >
2022-05-22 21:41:15 +0200off^(~off@c-24-126-228-147.hsd1.ga.comcast.net)
2022-05-22 21:41:23 +0200off^(~off@c-24-126-228-147.hsd1.ga.comcast.net) (Remote host closed the connection)
2022-05-22 21:41:47 +0200wroathe(~wroathe@50-205-197-50-static.hfc.comcastbusiness.net)
2022-05-22 21:41:47 +0200wroathe(~wroathe@50-205-197-50-static.hfc.comcastbusiness.net) (Changing host)
2022-05-22 21:41:47 +0200wroathe(~wroathe@user/wroathe)
2022-05-22 21:41:59 +0200 <Bulby[m]> hm, i defo need to add a progress thing of some kind
2022-05-22 21:42:49 +0200jmd_(~jmdaemon@user/jmdaemon)
2022-05-22 21:43:21 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 248 seconds)
2022-05-22 21:43:32 +0200 <Bulby[m]> yeah lime (what I am downloading) is just absurdly large
2022-05-22 21:44:04 +0200 <Bulby[m]> switching to hscript which is ~40kb makes it happy
2022-05-22 21:45:44 +0200 <Bulby[m]> I assume my internet just sucks
2022-05-22 21:50:49 +0200ubert(~Thunderbi@p200300ecdf3b995b6d3ba42fb5eab692.dip0.t-ipconnect.de) (Quit: ubert)
2022-05-22 21:51:16 +0200ubert(~Thunderbi@p200300ecdf3b995b6d3ba42fb5eab692.dip0.t-ipconnect.de)
2022-05-22 21:52:15 +0200ubert(~Thunderbi@p200300ecdf3b995b6d3ba42fb5eab692.dip0.t-ipconnect.de) (Client Quit)
2022-05-22 21:58:51 +0200Sgeo(~Sgeo@user/sgeo)
2022-05-22 21:59:17 +0200 <Bulby[m]> cool cli libs \o/
2022-05-22 21:59:19 +0200 <Bulby[m]> ?
2022-05-22 22:01:26 +0200 <sclv> sm maerwald the 01-index.tar.gz isnt an obscure binary format, its literally a tarball of cabal files
2022-05-22 22:02:19 +0200 <sclv> with the stipulation that when multiples of the same name exist, last one is most recent revision… which was designed into the spec of tarfiles back in the 70s even!
2022-05-22 22:02:26 +0200stackdroid18(14094@de1.hashbang.sh)
2022-05-22 22:02:34 +0200 <sm> great, thanks sclv. Though large that sounds like the easiest source of package names then ? Do you remember the stable url ?
2022-05-22 22:03:14 +0200stackdroid18(14094@de1.hashbang.sh) (Client Quit)
2022-05-22 22:03:19 +0200 <sclv> if you just want names, there’s other apis that might be easier too — follow the api link from hackage frontpqge
2022-05-22 22:03:31 +0200 <sm> will do, thanks
2022-05-22 22:04:05 +0200 <sm> https://hackage.haskell.org/api, this is great
2022-05-22 22:04:13 +0200 <sclv> im on my phone so can’t give stable url at the moment — the reason 01-index may be better is because its the Source of Truth for package data in general
2022-05-22 22:09:45 +0200 <Bulby[m]> for cli libs I will enact DO IT URSELF!
2022-05-22 22:11:46 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-05-22 22:12:34 +0200notzmv(~zmv@user/notzmv)
2022-05-22 22:13:12 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-05-22 22:13:25 +0200Sgeo_(~Sgeo@user/sgeo)
2022-05-22 22:14:30 +0200 <wroathe> Hey guys, what would be the best way to do multiline strings for something like postgresql-simple? Like if I wanted multiline SQL for ease of reading
2022-05-22 22:14:51 +0200zincy(~zincy@2a00:23c8:970c:4801:5ce3:174f:85c3:8411)
2022-05-22 22:15:47 +0200 <hpc> https://stackoverflow.com/a/22919011
2022-05-22 22:15:49 +0200 <wroathe> Oh, ignore me. Seems there's a quasi quoter available
2022-05-22 22:15:54 +0200 <hpc> heh, or that
2022-05-22 22:15:55 +0200 <sm> Bulby: for command line parsing I like cmdargs, others here like optparse-applicative. Both are complicated but powerful. There are lots of more limited but easier alternatives, like docopts
2022-05-22 22:15:58 +0200Sgeo(~Sgeo@user/sgeo) (Ping timeout: 244 seconds)
2022-05-22 22:16:06 +0200 <geekosaur> quasiquoter or string gaps, yeh
2022-05-22 22:16:36 +0200 <sm> docopt
2022-05-22 22:16:39 +0200 <hpc> string gaps have the nice benefit of allowing you to preserve the whitespace of both haskell and sql
2022-05-22 22:17:07 +0200 <hpc> the source code will be aligned with the surrounding function definitions, and the sql will be as if it started at column 0 with its own indentation intact
2022-05-22 22:17:26 +0200 <hpc> if you need to print it in an error message or similar
2022-05-22 22:17:48 +0200 <Bulby[m]> hm, I don't really like applicativeness
2022-05-22 22:17:53 +0200 <Bulby[m]> with no monad
2022-05-22 22:18:34 +0200acidjnk(~acidjnk@p200300d0c7068b4571401365c1036792.dip0.t-ipconnect.de)
2022-05-22 22:19:17 +0200abiss27(~abiss27@user/abiss) (Quit: hasta la vista... tchau!)
2022-05-22 22:19:39 +0200 <Bulby[m]> so I guess cmdargs?
2022-05-22 22:21:55 +0200 <sm> this hackage api is great. Maybe could use hackage usernames as simple auth mechanism for voting.
2022-05-22 22:22:20 +0200 <sm> Bulby: if you want lots of flexibility, yes
2022-05-22 22:22:34 +0200 <sm> docopt if you want to get something going quickly with low boilerplate and don't mind a few rough edges
2022-05-22 22:25:48 +0200 <Bulby[m]> well I need subcommands (i.e. `nylon install`, `nylon info`) and switches + more args
2022-05-22 22:26:08 +0200 <Bulby[m]> are "modes" subcommands
2022-05-22 22:29:08 +0200 <sm> yes
2022-05-22 22:29:32 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-05-22 22:32:16 +0200 <Bulby[m]> hm, do I have to dip into `Explicit` to use them properly
2022-05-22 22:34:04 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2022-05-22 22:34:23 +0200 <sm> I'm not sure.. that's the one I use
2022-05-22 22:34:34 +0200 <Bulby[m]> noooo I want to use implicit
2022-05-22 22:34:53 +0200 <sm> I believe in you!
2022-05-22 22:34:58 +0200 <Bulby[m]> \o/
2022-05-22 22:36:35 +0200dcleonarski(~user@2804:d51:479c:4300:c312:71c1:ee9b:86ea)
2022-05-22 22:39:27 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-05-22 22:39:27 +0200 <sm> maerwald: I added the hackage packages (locally). That adds 16k rows to the current 1k table, and 5M to the page size, and makes the ui too slow on my fast laptop (m1) unfortunately. Some optimisations/restrictions and probably paging with ajax download will be needed I think.
2022-05-22 22:40:24 +0200 <maerwald> Bulby[m]: why would applicative not be enough?
2022-05-22 22:40:53 +0200 <sm> if anyone here can help with the necessary frontend changes, that would be most welcome
2022-05-22 22:41:02 +0200 <maerwald> you only need monads to dynamically change parsing... which also means you cannot really automatically derive a --help text
2022-05-22 22:41:34 +0200 <Bulby[m]> Idk, I just prefer monads
2022-05-22 22:42:01 +0200 <maerwald> that's a bad habit then
2022-05-22 22:42:13 +0200 <Bulby[m]> ☹️
2022-05-22 22:42:42 +0200 <geekosaur> why would it even matter here
2022-05-22 22:42:48 +0200 <Bulby[m]> ur right I should just enable applicative do and get on with it
2022-05-22 22:42:59 +0200 <maerwald> uhm :D
2022-05-22 22:43:09 +0200 <maerwald> applicative do is quite confusing, good luck
2022-05-22 22:43:35 +0200 <Bulby[m]> I also dislike that it's named parser, when I am also using megaparsec
2022-05-22 22:44:54 +0200 <sm> well it's definitely a parsing task (and a tricky one)
2022-05-22 22:45:35 +0200vjoki(~vjoki@2a00:d880:3:1::fea1:9ae) (Quit: ...)
2022-05-22 22:46:11 +0200 <Bulby[m]> i feel like I'm choosing between two sports teams (or something similar)
2022-05-22 22:46:16 +0200 <Bulby[m]> no, picking the favorite child
2022-05-22 22:47:45 +0200 <iqubic> I'm having cabal errors here, in this cabal file. "cabal build" is telling me there's an unexpected "h" here on line 12. Why? https://github.com/IQubic/TinyMod4Haskell/blob/main/TinyMod4.cabal#L12
2022-05-22 22:48:25 +0200dcleonarski(~user@2804:d51:479c:4300:c312:71c1:ee9b:86ea) (Remote host closed the connection)
2022-05-22 22:49:32 +0200shriekingnoise(~shrieking@201.231.16.156)
2022-05-22 22:51:47 +0200 <sm> iqubic: it doesn't want the .hs part
2022-05-22 22:51:55 +0200 <iqubic> Thanks.
2022-05-22 22:53:34 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 272 seconds)
2022-05-22 22:53:50 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-05-22 22:54:38 +0200 <Bulby[m]> lol optparse doesn't make immediate sense either - neither of them do
2022-05-22 22:55:49 +0200MajorBiscuit(~MajorBisc@80.146.187.107)
2022-05-22 22:57:34 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-05-22 22:58:06 +0200Guest9028(~Guest90@139.47.6.251)
2022-05-22 23:01:25 +0200hololeap(~hololeap@user/hololeap)
2022-05-22 23:01:44 +0200zincy(~zincy@2a00:23c8:970c:4801:5ce3:174f:85c3:8411) (Remote host closed the connection)
2022-05-22 23:02:43 +0200MajorBiscuit(~MajorBisc@80.146.187.107) (Quit: WeeChat 3.4)
2022-05-22 23:03:08 +0200 <sm> our last sports fans' discussion starts here: https://matrix.to/#/!hYueEvaBrsbfKxjshs:libera.chat/$8OBlk8aYRc2Gy3gamKHAuhnoMHi6Yxgcij1r0nFE2Sk
2022-05-22 23:03:31 +0200 <Bulby[m]> haha I don't think I existed then
2022-05-22 23:03:42 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 272 seconds)
2022-05-22 23:03:59 +0200 <Bulby[m]> https://matrix.to/#/%23haskell%3Alibera.chat/%24qfXSiN9U5I40N0FbTeGEzUy8AdJI7ARu7vOPVN9kztE?via=ma…
2022-05-22 23:04:12 +0200 <Bulby[m]> yeah if it did exist I would jump to it
2022-05-22 23:04:13 +0200 <Bulby[m]> or nheko is being mean
2022-05-22 23:04:48 +0200 <Bulby[m]> element is the same and I think it's much more stable so 🤷
2022-05-22 23:05:14 +0200 <sm> actually just search the channel for "cmdargs", it seems a bit spread out
2022-05-22 23:05:37 +0200 <sm> or try
2022-05-22 23:05:37 +0200 <sm> @where ircbrowse
2022-05-22 23:05:37 +0200 <lambdabot> https://ircbrowse.tomsmeding.com
2022-05-22 23:06:04 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-05-22 23:06:14 +0200 <sm> oh is that no longer updated tomsmeding ? my bad
2022-05-22 23:06:58 +0200 <geekosaur> you just got the landing page
2022-05-22 23:07:03 +0200 <geekosaur> https://ircbrowse.tomsmeding.com/browse/lchaskell
2022-05-22 23:07:34 +0200 <sm> oops I didn't notice the two #haskell links, clicked the wrong one
2022-05-22 23:07:44 +0200 <geekosaur> right, the other is from freenode
2022-05-22 23:07:47 +0200 <Bulby[m]> you can't search ☹️
2022-05-22 23:07:56 +0200 <sm> consider putting those at the bottom tomsmeding ?
2022-05-22 23:07:56 +0200 <geekosaur> yes, search is disabled
2022-05-22 23:08:06 +0200 <Bulby[m]> disabled?
2022-05-22 23:08:17 +0200 <geekosaur> it requires full text indexing to work
2022-05-22 23:08:35 +0200 <geekosaur> which is something of an extra load
2022-05-22 23:08:41 +0200MajorBiscuit(~MajorBisc@80.146.187.107)
2022-05-22 23:08:45 +0200 <Bulby[m]> "something"
2022-05-22 23:09:38 +0200 <sm> despite the robots.txt excluding /browse, google does seem to index it: https://www.google.com/search?q=site%3Aircbrowse.tomsmeding.com
2022-05-22 23:10:01 +0200Guest9028(~Guest90@139.47.6.251) (Quit: Client closed)
2022-05-22 23:10:02 +0200KaipeiKaiepi
2022-05-22 23:10:48 +0200 <sm> though not terribly well.. https://www.google.com/search?q=site%3Aircbrowse.tomsmeding.com+cmdargs
2022-05-22 23:11:34 +0200 <sm> actually, not bad when you click repeat the search with the omitted results included
2022-05-22 23:11:50 +0200 <monochrom> Have you considered System.Console.GetOpt? It comes with GHC.
2022-05-22 23:12:07 +0200 <sm> (I have been trying to figure out why google won't index the matrix logs at view.matrix.org, it's a big mystery)
2022-05-22 23:12:48 +0200 <geekosaur> I think they want subcommands
2022-05-22 23:13:09 +0200 <Bulby[m]> ^
2022-05-22 23:16:02 +0200hololeap(~hololeap@user/hololeap)
2022-05-22 23:16:35 +0200 <Bulby[m]> not that I understand them 😉
2022-05-22 23:17:40 +0200pavonia(~user@user/siracusa)
2022-05-22 23:18:51 +0200dcleonarski(~user@2804:d51:479c:4300:c312:71c1:ee9b:86ea)
2022-05-22 23:27:01 +0200off^(~off@c-24-126-228-147.hsd1.ga.comcast.net)
2022-05-22 23:29:24 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 276 seconds)
2022-05-22 23:30:36 +0200phma(~phma@host-67-44-208-86.hnremote.net) (Read error: Connection reset by peer)
2022-05-22 23:31:04 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2022-05-22 23:31:09 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-05-22 23:31:28 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-05-22 23:33:58 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-05-22 23:34:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-05-22 23:36:42 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-05-22 23:41:40 +0200phma(~phma@host-67-44-208-253.hnremote.net)
2022-05-22 23:44:16 +0200phma(~phma@host-67-44-208-253.hnremote.net) (Read error: Connection reset by peer)
2022-05-22 23:48:19 +0200zeenk(~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980)
2022-05-22 23:48:27 +0200 <Bulby[m]> how can I parse a specific arg with cmdargs
2022-05-22 23:48:34 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-22 23:48:45 +0200 <Bulby[m]> i have a type that I have a megaparsec for, how do I use it with cmdargs
2022-05-22 23:50:26 +0200 <sm> maerwald: one issue is, hackage already does a good job of this: https://hackage.haskell.org/packages/search, https://hackage.haskell.org/packages/noscript-search
2022-05-22 23:52:17 +0200off^(~off@c-24-126-228-147.hsd1.ga.comcast.net) (Ping timeout: 256 seconds)
2022-05-22 23:53:39 +0200 <maerwald> sm: those are not project links
2022-05-22 23:54:12 +0200 <maerwald> I can't search for homepage
2022-05-22 23:54:37 +0200off^(~off@c-24-126-228-147.hsd1.ga.comcast.net)
2022-05-22 23:54:50 +0200michalz(~michalz@185.246.204.122) (Remote host closed the connection)
2022-05-22 23:55:58 +0200 <sm> I guess I misunderstood your idea, I am working on links to the hackage package page - you'd like to see links directly to the home page or github repo eh
2022-05-22 23:56:48 +0200 <sm> I usually use the hackage page as my starting point, as it's reliable / in standard format..
2022-05-22 23:57:17 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
2022-05-22 23:58:15 +0200 <maerwald> yes, I mean homepage... I already have shortcuts for searching hackage
2022-05-22 23:58:58 +0200 <sm> Bulby: you give a parsing function as flagValue I think.. https://hackage.haskell.org/package/cmdargs-0.10.21/docs/System-Console-CmdArgs-Explicit.html#t:Up…