Home liberachat/#haskell: Logs Calendar

Logs on 2021-08-18 (liberachat/#haskell)

00:00:24 × Matthias1 quits (~Matthias1@2603-8001-b545-4900-0d81-0ba2-5923-c2fb.res6.spectrum.com) (Remote host closed the connection)
00:00:27 × fabfianda quits (~fabfianda@mob-5-91-112-128.net.vodafone.it) (Remote host closed the connection)
00:00:57 × polyphem quits (~polyphem@ip5f5ac3ae.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
00:01:47 Matthias1 joins (~Matthias1@2603-8001-b545-4900-0d81-0ba2-5923-c2fb.res6.spectrum.com)
00:03:46 polyphem joins (~polyphem@2a00:20:c044:9066:4432:d689:6451:b719)
00:07:13 fabfianda joins (~fabfianda@mob-5-91-112-128.net.vodafone.it)
00:10:48 × Guest84 quits (~Guest84@2406:3003:2006:447e:a859:4a56:2629:b84e) (Quit: Client closed)
00:12:12 × polyphem quits (~polyphem@2a00:20:c044:9066:4432:d689:6451:b719) (Ping timeout: 245 seconds)
00:13:02 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
00:16:40 × aarvar quits (~aaron@2601:602:a080:fa0:2492:1e35:77f6:26e2) (Ping timeout: 240 seconds)
00:16:48 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
00:20:40 × fernand quits (~fernand@179.156.35.4) (Ping timeout: 240 seconds)
00:20:56 × Xnuk quits (~xnuk@vultr.xnu.kr) (Quit: ZNC - https://znc.in)
00:21:12 Xnuk joins (~xnuk@vultr.xnu.kr)
00:22:41 <lechner> Hi, i can't find much documentation or many examples for here/heredoc. Do any of them support the pipe-less syntax shown here? https://www.reddit.com/r/haskell/comments/8ereh/a_here_document_syntax/c091t96
00:23:11 × chomwitt quits (~chomwitt@ppp-94-67-193-240.home.otenet.gr) (Remote host closed the connection)
00:24:12 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 245 seconds)
00:27:58 lavaman joins (~lavaman@98.38.249.169)
00:29:43 <lechner> never mind, i think Data.String.Here does!
00:31:25 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 244 seconds)
00:39:53 stiell joins (~stiell@gateway/tor-sasl/stiell)
00:46:40 × waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 240 seconds)
00:47:57 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
01:04:19 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
01:09:12 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
01:15:36 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving)
01:16:57 geekosaur joins (~geekosaur@xmonad/geekosaur)
01:18:46 tabemann_ is now known as tabemann
01:20:30 Cajun joins (~Cajun@user/cajun)
01:24:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:26:32 × lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
01:36:53 machinedgod joins (~machinedg@24.105.81.50)
01:41:10 × pbrisbin quits (~patrick@pool-108-16-214-93.phlapa.fios.verizon.net) (Ping timeout: 240 seconds)
01:47:45 keutoi joins (~keutoi@157.48.90.57)
01:47:55 × xff0x quits (~xff0x@2001:1a81:535d:2700:6b08:445c:db9b:4d20) (Ping timeout: 258 seconds)
01:48:00 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 268 seconds)
01:49:38 xff0x joins (~xff0x@2001:1a81:5394:ea00:e22:1073:dc28:9e41)
01:50:50 polyphem joins (~polyphem@2a02:810d:640:776c:f4c0:a27a:540e:c15e)
01:58:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
01:59:40 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
02:00:53 × alx741 quits (~alx741@181.196.68.125) (Quit: alx741)
02:01:44 Erutuon joins (~Erutuon@user/erutuon)
02:11:13 × td_ quits (~td@muedsl-82-207-238-133.citykom.de) (Ping timeout: 248 seconds)
02:12:16 ahlk joins (~user@2600:1700:31c0:3a10::48)
02:13:11 td_ joins (~td@94.134.91.158)
02:15:38 thyriaen_ joins (~thyriaen@dynamic-077-013-081-232.77.13.pool.telefonica.de)
02:16:48 sleblanc joins (~sleblanc@user/sleblanc)
02:17:18 rubix joins (~user@2601:602:9502:c70:b7f7:ce5b:5e25:126d)
02:19:10 × thyriaen quits (~thyriaen@x4dbf521a.dyn.telefonica.de) (Ping timeout: 240 seconds)
02:22:05 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:22:05 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (zinc.libera.chat (Nickname regained by services)))
02:22:05 finn_elija is now known as FinnElija
02:23:05 × thyriaen_ quits (~thyriaen@dynamic-077-013-081-232.77.13.pool.telefonica.de) (Remote host closed the connection)
02:23:40 × benin036932 quits (~benin@183.82.178.142) (Ping timeout: 240 seconds)
02:27:25 × Matthias1 quits (~Matthias1@2603-8001-b545-4900-0d81-0ba2-5923-c2fb.res6.spectrum.com) (Read error: Connection reset by peer)
02:28:03 Matthias1 joins (~Matthias1@cpe-76-170-236-166.socal.res.rr.com)
02:30:24 × hiruji quits (~hiruji@user/hiruji) (Quit: ZNC 1.8.2 - https://znc.in)
02:30:38 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
02:30:39 allbery_b joins (~geekosaur@xmonad/geekosaur)
02:30:42 allbery_b is now known as geekosaur
02:36:27 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
02:38:18 hiruji joins (~hiruji@user/hiruji)
02:41:33 × obs quits (~obscur1ty@user/obs/x-5924898) (Read error: Connection reset by peer)
02:46:25 <lechner> Hi, could someone please explain this error with postgres-simple? https://paste.debian.net/1208064/
02:48:20 <Axman6> you probably need to add a type annotation so the compiler knows what type you actually want
02:48:38 <lechner> where, though?
02:49:01 <c_wraith> anywhere that specifies it
02:49:21 <lechner> output?
02:49:29 <c_wraith> type inference means you can mention the type anywhere and it will be plumbed through appropriately
02:49:33 <Axman6> (rows :: [Foo]) <- query... or something. that might need a language extension though
02:50:09 <Axman6> if you use `rows` somewhere, you can also add it there by replacing `rows` with `(rows :: [Foo])`
02:51:24 Seby joins (~Seby@115.98.232.63)
02:51:40 <lechner> what's the easiest way to print rows? i think it's a [String]
02:52:06 <c_wraith> (mapM_ putStrLn) ?
02:52:25 <c_wraith> and... it's probably not a [String]
02:52:47 <c_wraith> I don't think that instance exists
02:53:49 <c_wraith> lechner: it's polymorphic in the return type. it can be anything that has an appropriate instance
02:54:08 <lechner> yeah, i get that
02:54:16 <c_wraith> though it will have runtime errors if the instance doesn't fit the returned data
02:54:42 <lechner> i just cant figure out what i will get back
02:55:24 <c_wraith> then how could the compiler? :P
02:56:04 <c_wraith> the fact is, we can't tell you.
02:56:10 <c_wraith> it depends on the query
02:56:34 <lechner> yeah it's my first time with pg-simple
02:56:56 <c_wraith> for quick'n'dirty, you probably want a tuple type
02:57:14 <c_wraith> with a number of elements matching the number of things you're selecting, and appropriate types for each element
02:57:16 <lechner> single column
02:58:05 <lechner> https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/Database-PostgreSQL-Simple.html#t:Connection
02:58:11 <lechner> sorry
02:58:38 <c_wraith> You probably want the 1-tuple, then. https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/Database-PostgreSQL-Simple.html#t:Only
02:59:21 <c_wraith> try mapM_ (putStrLn . fromOnly)
02:59:32 <Axman6> yeah I was going to say, Only will be the type you need
02:59:49 <Axman6> so it'll return Only String's
02:59:53 <lechner> Only or [Only String] ?
03:00:09 <c_wraith> r ~ Only String
03:00:18 <c_wraith> the return type is IO [r]
03:03:33 rubix parts (~user@2601:602:9502:c70:b7f7:ce5b:5e25:126d) (ERC (IRC client for Emacs 28.0.50))
03:03:47 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
03:04:49 <lechner> it's magic! the calls to fromOnly inside mapM_ were enough to compile
03:04:59 <c_wraith> the advantage of printing with (mapM_ (putStrLn . fromOnly)) is that type inference means that it uniquely identifies the type of r
03:05:15 <lechner> yeah, it's amazing!
03:05:34 <lechner> which way of printin wuold not do so?
03:05:40 <lechner> printing
03:05:49 <lechner> would
03:06:04 <c_wraith> replacing putStrLn with print would leave the type ambiguous
03:06:24 <c_wraith> or just using (mapM_ print)
03:06:27 iqubic joins (~user@2601:602:9502:c70:b7f7:ce5b:5e25:126d)
03:06:41 <c_wraith> it would *work*, but the types wouldn't be inferred
03:07:57 × Skyfire quits (~pyon@user/pyon) (Quit: WeeChat 3.2)
03:08:21 Skyfire joins (~pyon@user/pyon)
03:08:53 <lechner> unfortunately the query result is wrong. can -simple pass Pg array types?
03:09:11 <lechner> the query is otherwise tested
03:09:17 <lechner> and short
03:10:24 <c_wraith> looks like it
03:10:28 <c_wraith> https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/Database-PostgreSQL-Simple-Types.html#t:PGArray
03:12:01 × hueso quits (~root@user/hueso) (Ping timeout: 248 seconds)
03:14:35 hueso joins (~root@user/hueso)
03:17:26 × sim590 quits (~simon@modemcable090.207-203-24.mc.videotron.ca) (Quit: WeeChat 2.9)
03:19:32 simon1 joins (~simon@modemcable090.207-203-24.mc.videotron.ca)
03:19:50 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
03:20:08 <lechner> Is there an easier way to write this? mapM_ (putStrLn $) (map ("Need " <>) $ map fromOnly rows
03:21:21 <c_wraith> well, a left section of ($) is always redundant
03:21:49 <lechner> point taken
03:22:12 <c_wraith> and then you have three consecutive maps. well, one is a mapM_, but that could be written as sequence_ . map
03:22:20 <c_wraith> you can always fuse consecutive maps
03:22:43 <c_wraith> mapM_ (putStrLn . ("Need " <>) . fromOnly) rows
03:22:47 <Axman6> that's mapM_ (putStrLn . ("Need "<>) . fromOnly) rows
03:23:09 Axman6 highfives c_wraith
03:23:12 × monochrom quits (trebla@216.138.220.146) (Quit: NO CARRIER)
03:23:24 <lechner> i had a problem with the operator precedence of <> vs unapplied fromOnly
03:23:41 <lechner> i see
03:23:47 <lechner> TIL
03:23:47 <c_wraith> that should be irrelevant when using a section
03:25:06 <lechner> Axman6: thanks! it must be painful to watch
03:26:10 × derelict quits (~derelict@user/derelict) (Ping timeout: 240 seconds)
03:28:05 monochrom joins (trebla@216.138.220.146)
03:29:15 <lechner> c_wraith: thank you so much for your help! i have a VALUES vs unnest() problem but will have to solve that later tonight. great progress!
03:33:27 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
03:35:14 jamie101 joins (~jamie101@pa49-199-6-183.pa.vic.optusnet.com.au)
03:39:09 jamie101 parts (~jamie101@pa49-199-6-183.pa.vic.optusnet.com.au) ()
03:47:01 aarvar joins (~aaron@2601:602:a080:fa0:d9cd:315e:aa0a:fa0)
03:47:28 × aarvar quits (~aaron@2601:602:a080:fa0:d9cd:315e:aa0a:fa0) (Client Quit)
03:47:57 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
03:50:07 falafel joins (~falafel@2601:483:4e00:2b20:e0f3:c7c1:91ca:fe6e)
03:50:58 u0_a253 joins (~u0_a253@2402:9d80:247:f919:764b:d5cb:dc9:2b1d)
03:51:35 <u0_a253> hello world
03:54:41 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:55:33 <lechner> Hi, is [1, 2, 3] the same as [(1), (2), (3)] please?
03:56:02 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
03:56:24 <lechner> it's for this with one column https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/Database-PostgreSQL-Simple-Types.html#t:Values
03:58:24 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:59:14 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
04:00:03 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:02:53 mei joins (~mei@user/mei)
04:04:07 <int-e> lechner: yes to your question, but it's not applicable to the documentation, which has a list of tuples, more like [(1,2), (3,4)]
04:04:25 <int-e> > length [(1,2),(3,4)]
04:04:27 <lambdabot> 2
04:04:44 <lechner> int-e: what if my tuples contain only one element each?
04:05:03 <int-e> > [(1),(2),(3),(4)]
04:05:05 <lambdabot> [1,2,3,4]
04:05:16 <int-e> I already said yes :-/
04:06:03 severen joins (~severen@202.36.179.72)
04:07:02 <lechner> am i not doing the same thing as the example? https://paste.debian.net/1208072/
04:12:04 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
04:17:09 <oak-> >[(1,),(2,),(3,),(4,)]
04:17:33 <oak-> > [(1,),(2,),(3,),(4,)]
04:17:35 <lambdabot> error:
04:17:35 <lambdabot> • No instance for (Typeable t0)
04:17:35 <lambdabot> arising from a use of ‘show_M72548533020348860047’
04:18:11 <glguy> > (1,) 2
04:18:13 <lambdabot> (1,2)
04:18:59 <glguy> > (,1) 2
04:19:01 <lambdabot> (2,1)
04:20:39 × severen quits (~severen@202.36.179.72) (Quit: WeeChat 3.2)
04:22:33 ahlk parts (~user@2600:1700:31c0:3a10::48) (ERC (IRC client for Emacs 26.1))
04:22:54 <int-e> https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/Database-PostgreSQL-Simple.html#t:Only
04:23:01 <int-e> lechner: ^^
04:24:39 <int-e> (which I found via the list of instances of ToRow)
04:28:40 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
04:32:33 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 248 seconds)
04:39:58 derelict joins (~derelict@user/derelict)
04:44:12 × derelict quits (~derelict@user/derelict) (Ping timeout: 245 seconds)
04:44:16 × marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Quit: Reconnecting)
04:44:31 marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8)
04:51:13 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:52:54 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
04:54:51 Sgeo joins (~Sgeo@user/sgeo)
04:55:54 <nerdypepper> hiya o/, is there a parser library for haskell that can help produce loseless syntax trees? something like rowan for rust: https://github.com/rust-analyzer/rowan
04:56:43 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds)
05:01:13 <lechner> int-e: unfortunately, i have no idea where to stick that Only https://paste.debian.net/1208074/
05:01:14 <Axman6> what does a "lossless syntax tree" mean?
05:02:11 <Axman6> lechner: Only is for the results, not the arguments
05:03:02 <nerdypepper> Axman6: it preserves whitespace, comments etc., a more common term is concrete syntax tree. the idea is you can reproduce the source text from the syntax tree
05:03:35 <Axman6> you could definitely do that with any of the parser libraries I would think
05:05:56 <nerdypepper> Axman6: oh yeah for sure, you can still preserve whitespace tokens etc. i was hoping to find a library that does the necessary performance optimizations for you (like rowan).
05:06:33 <nerdypepper> rowan explicitly tries to avoid allocating every single token by interning whitespace and sharing structurally similar subtrees etc.
05:07:26 <int-e> It's needed for the outer tuple, I think. Only (Values [blah,blub])
05:07:53 × argento quits (~argent0@168-227-97-23.ptr.westnet.com.ar) (Quit: leaving)
05:09:31 <Axman6> edwardk: do you have any thoughts on nerdypepper's question? It feels like trifecta/parsers should be able to do this for you, but I'm not familliar enough to say for sure
05:10:36 <int-e> nerdypepper: And I think it wants ByteString or Text, never String.
05:11:32 <lechner> int-e: it seems a step closer, perhaps https://paste.debian.net/1208075/
05:12:16 <int-e> sorry for picking the wrong nick all the time :-/
05:15:21 <Axman6> lechner: why are you using Values?
05:15:31 <Axman6> it seems like you're really complicating things more than they need to be
05:15:48 <lechner> please go ahead
05:15:55 <iqubic> I see that #haskell survived the transition to Libera. That's good to see.
05:16:01 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
05:16:17 <lechner> Axman6: 'semver' cast, maybe?
05:16:28 <int-e> Well, the ToField Char indicates that it used a ToField a => ToRow [a] instance to get at ToRow String, so something went wrong apart from not using ByteString or Text (the string should be a field, not a row)
05:16:40 × Seby quits (~Seby@115.98.232.63) (Ping timeout: 240 seconds)
05:16:41 <Axman6> oh actually... I hadn't looked at the query very closely
05:17:13 <Axman6> iqubic: irc is just a medium, #haskell will never die
05:17:18 × Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
05:17:25 <iqubic> That's good to know.
05:17:34 int-e isn't fully following either.
05:17:58 <lechner> Axman6: it's also an antijoin via EXCEPT
05:19:03 <int-e> lechner: Quite possibly the strings also need Only. And by ByteString or Text, not String.
05:19:14 <int-e> s/by/be/
05:19:33 <Axman6> ok I can see now what you were trying to do but I have no idea how it's supposed to be done
05:19:45 <lechner> without Only from the strings https://paste.debian.net/1208076/
05:20:32 <lechner> Axman6: it's a value transfer issue. i could also use JSON
05:20:34 <int-e> lechner: Only turns a field into a row.
05:21:03 <int-e> and there is a ToField instance for Text.
05:21:13 <Axman6> Have you tried `(Values ["semver"] [Only ("2.1.6" :: ByteString)])`?
05:21:25 <Axman6> or Text?
05:21:38 <int-e> Axman6: We're getting there. You also need Only on the outside.
05:22:32 <lechner> that compile, with Text
05:22:37 <lechner> compiled
05:23:01 <Axman6> so all good?
05:23:11 <Axman6> does the query run??? :o
05:23:47 <lechner> the query isn't working
05:23:58 <Axman6> now for the fun part :P
05:24:38 <lechner> the query is tested; and this is the second time around
05:26:05 <lechner> i can probably use PGArray with unnest or a JSON string but VALUES seemed so easy
05:30:12 <edwardk> Axman6: context?
05:30:16 <edwardk> *reading back*
05:30:31 <Axman6> see message at XX:55
05:30:39 <edwardk> lossless parsing?
05:30:39 <lechner> what does the "fat" arrow here mean, please? https://hackage.haskell.org/package/postgresql-simple-0.6.4/docs/Database-PostgreSQL-Simple.html#v:formatQuery
05:31:05 <Axman6> it's a type class constraint
05:31:24 <Axman6> saying that q must be an instance of the ToRow class
05:31:59 <edwardk> i usually wind up building a parser for whitespace that captures everything inside the whitespace and then make sure my syntax trees are very close to the surface language syntax with little whitespace bins in the tree wherever spaces could occur. this works until you need layout and then regenerating the tree has some extra consistency crap it has to satisfy.
05:32:24 <edwardk> but i don't know a general purpose 'exactprint' style library
05:32:53 <edwardk> (whitespace here includes comments, etc.)
05:32:59 <dibblego> we started writing one aaaaages ago
05:32:59 Axman6 awaits the nerdsnipe to kick in...
05:33:20 <edwardk> not happening. groq's keeping me busy this month and i just bought a house and am moving =)
05:33:33 <Axman6> 'grats!
05:34:10 iqubic` joins (~user@2601:602:9502:c70:b7f7:ce5b:5e25:126d)
05:34:19 iqubic` parts (~user@2601:602:9502:c70:b7f7:ce5b:5e25:126d) ()
05:34:53 Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
05:38:10 × iqubic quits (~user@2601:602:9502:c70:b7f7:ce5b:5e25:126d) (Ping timeout: 240 seconds)
05:40:11 <cdsmith> Does this exist somewhere? data ReifiedInstance (cls :: Type -> Constraint) (a :: Type) where ReifiedInstance :: cls a => ReifiedInstance cls a
05:42:56 <nerdypepper> Axman6: thanks for the mention, trifecta looks great, i will take a look at that. it would be a pretty mega project to rewrite something like rowan, but i am not opposed to trying that out either!
05:43:11 <hsek[m]> Are there resources for me to read regarding separating API types from the DB types in `servant`? I don't really understand why because it seems really convenient. But I know that a lot of people advocate against it. https://old.reddit.com/r/haskell/comments/p64g1q/servantutil_extending_servant_with_database/h9bbpaa/
05:44:11 × fabfianda quits (~fabfianda@mob-5-91-112-128.net.vodafone.it) (Ping timeout: 268 seconds)
05:49:44 × Gurkenglas_ quits (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 268 seconds)
05:51:34 × ablutor quits (~quassel@wasscher.com) (Quit: going for vitamine d)
05:51:51 ablutor joins (~quassel@wasscher.com)
05:52:07 <cdsmith> hsek: Can't point to a document, but APIs have different compatibility constraints. They might start out looking similar to backend data, but over time, you'll want to migrate your storage schemas, while APIs must stay the same. That's hard to handle if they are the same type.
05:55:56 favonia joins (~favonia@user/favonia)
05:59:25 × ozzymcduff quits (~mathieu@81-234-151-21-no94.tbcn.telia.com) (Remote host closed the connection)
06:02:28 ozzymcduff joins (~mathieu@81-234-151-21-no94.tbcn.telia.com)
06:02:39 <hsek[m]> I see, thanks Chris Smith !
06:02:41 × arahael quits (~arahael@124.170.238.106) (Ping timeout: 248 seconds)
06:03:10 × falafel quits (~falafel@2601:483:4e00:2b20:e0f3:c7c1:91ca:fe6e) (Ping timeout: 240 seconds)
06:03:32 wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com)
06:04:43 Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se)
06:06:34 <lechner> int-e Axman6: it was the stupidest of all errors. the function was not called. anyway, now I have a runtime type error: Incompatible {errSQLType = "semver", errSQLTableOid = Nothing, errSQLField = "lintian_version", errHaskellType = "Text", errMessage = "types incompatible"}
06:07:31 <lechner> but it's quite late here. thank you both for your help so far!
06:10:17 ubert joins (~Thunderbi@91.141.56.213.wireless.dyn.drei.com)
06:12:03 arahael joins (~arahael@203.221.97.63)
06:16:43 × echoreply1 quits (~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d) (Quit: WeeChat 2.8)
06:17:01 Seby joins (~Seby@115.98.232.63)
06:17:46 × Seby quits (~Seby@115.98.232.63) (Client Quit)
06:17:50 vysn joins (~vysn@user/vysn)
06:18:03 echoreply joins (~echoreply@45.32.163.16)
06:18:10 chomwitt joins (~chomwitt@2a02:587:dc0c:e200:12c3:7bff:fe6d:d374)
06:20:04 × wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:22:45 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
06:25:16 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:28:47 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 245 seconds)
06:32:47 × aegon quits (~mike@174.127.249.180) (Quit: Lost terminal)
06:37:43 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:41:19 × smitop quits (~smitop@user/smitop) (Remote host closed the connection)
06:42:08 smitop joins (~smitop@user/smitop)
06:43:46 lortabac joins (~lortabac@151.73.97.57)
06:44:52 acidjnk_new3 joins (~acidjnk@p200300d0c72b955250c7a959aba8feb6.dip0.t-ipconnect.de)
06:48:06 ubert1 joins (~Thunderbi@91.141.56.213.wireless.dyn.drei.com)
06:48:33 michalz joins (~michalz@185.246.204.62)
06:48:48 gehmehgeh joins (~user@user/gehmehgeh)
06:49:39 Unhammer joins (~Unhammer@user/unhammer)
06:59:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds)
07:03:11 derelict joins (~derelict@user/derelict)
07:04:15 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
07:04:40 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
07:05:28 Lord_of_Life_ is now known as Lord_of_Life
07:10:46 <albet70> please unbanned 47.245.54.240
07:15:00 <dibblego> albet70: read the topic
07:16:52 Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk)
07:23:58 u0_a2531 joins (~u0_a253@2402:9d80:247:f919:942:7578:ff92:e257)
07:24:47 Erutuon joins (~Erutuon@user/erutuon)
07:25:17 × lortabac quits (~lortabac@151.73.97.57) (Read error: Connection reset by peer)
07:26:05 × u0_a253 quits (~u0_a253@2402:9d80:247:f919:764b:d5cb:dc9:2b1d) (Remote host closed the connection)
07:26:44 × u0_a2531 quits (~u0_a253@2402:9d80:247:f919:942:7578:ff92:e257) (Remote host closed the connection)
07:28:56 lortabac joins (~lortabac@151.73.97.57)
07:30:09 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:34:20 mc47 joins (~mc47@xmonad/TheMC47)
07:35:05 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
07:39:13 slack1256 joins (~slack1256@191.125.227.92)
07:40:59 × justache quits (~justache@user/justache) (Ping timeout: 252 seconds)
07:41:42 benin036932 joins (~benin@183.82.178.142)
07:43:00 justache joins (~justache@user/justache)
07:44:33 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:45:10 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
07:47:10 × justache quits (~justache@user/justache) (Ping timeout: 240 seconds)
07:47:10 × Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
07:47:21 Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
07:49:21 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds)
07:52:17 justache joins (~justache@user/justache)
07:56:07 × Xnuk quits (~xnuk@vultr.xnu.kr) (Quit: ZNC - https://znc.in)
07:56:25 Xnuk joins (~xnuk@45.76.202.58)
07:58:27 × justache quits (~justache@user/justache) (Read error: Connection reset by peer)
07:58:49 × hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
07:59:18 justache joins (~justache@user/justache)
07:59:32 burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
08:03:16 <merijn> sshine_: I wouldn't say that's *cabal* failing, but it's a weird error. You're using a much newer version of hspec than your stack setup, but afaict the newer Hspec still exports Spec there, so that compilation still shouldn't fail
08:04:50 <maralorn> maerwald: I have just tested streamly-posix with hspec 2.7.10 (because that’s the stackage-lts version). That worked. So theoretically you could lower the version bound on it.
08:05:23 <merijn> sshine_: oh, I have a *wildly* speculative theory, lemme test it :)
08:05:25 hendursa1 joins (~weechat@user/hendursaga)
08:05:42 <maerwald> maralorn: hspec-discover as well?
08:06:05 × slack1256 quits (~slack1256@191.125.227.92) (Remote host closed the connection)
08:06:13 <maralorn> maerwald: Yes
08:06:37 <maerwald> maralorn: what version?
08:06:47 <maralorn> Same
08:07:20 dschrempf joins (~dominik@2a01-036d-0118-a2d1-3c86-9363-4322-fee7.pool6.digikabel.hu)
08:08:36 Kirat joins (~Gill@103.217.122.17)
08:08:40 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 244 seconds)
08:08:47 nschoe joins (~quassel@2a01:e0a:8e:a190:f185:3872:6a89:c741)
08:09:57 <maralorn> maerwald: ^
08:10:07 <maralorn> (forgot the highlight)
08:12:25 oldsk00l joins (~znc@ec2-3-69-166-47.eu-central-1.compute.amazonaws.com)
08:12:42 × Kirat quits (~Gill@103.217.122.17) (Client Quit)
08:13:39 Guest48 joins (~Guest48@2001:8003:33f0:c100:90f4:2120:7bc8:55aa)
08:14:05 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
08:17:23 × ubert quits (~Thunderbi@91.141.56.213.wireless.dyn.drei.com) (Quit: ubert)
08:17:24 ubert1 is now known as ubert
08:17:39 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
08:17:39 allbery_b joins (~geekosaur@xmonad/geekosaur)
08:17:42 allbery_b is now known as geekosaur
08:17:42 ub joins (~Thunderbi@91.141.56.213.wireless.dyn.drei.com)
08:17:58 <merijn> sshine_: That I can't test, because I can't reproduce it locally >.> But at the very least I see a couple of errors in the repo/config
08:22:07 × ub quits (~Thunderbi@91.141.56.213.wireless.dyn.drei.com) (Ping timeout: 245 seconds)
08:22:36 × oldsk00l quits (~znc@ec2-3-69-166-47.eu-central-1.compute.amazonaws.com) (Remote host closed the connection)
08:23:07 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:27:55 Pickchea joins (~private@user/pickchea)
08:30:04 × timCF quits (~timCF@200-149-20-81.sta.estpak.ee) (Quit: leaving)
08:31:13 × rovert quits (uid389732@id-389732.tooting.irccloud.com) (Quit: Connection closed for inactivity)
08:35:41 dyeplexer joins (~dyeplexer@user/dyeplexer)
08:36:22 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
08:36:49 × micro quits (~micro@user/micro) (Quit: Lost terminal)
08:37:35 micro joins (~micro@user/micro)
08:38:25 × Guest48 quits (~Guest48@2001:8003:33f0:c100:90f4:2120:7bc8:55aa) (Quit: Client closed)
08:38:29 fendor joins (~fendor@77.119.161.62.wireless.dyn.drei.com)
08:40:44 defanor joins (~defanor@tart.uberspace.net)
08:43:55 × burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) ()
08:46:54 <defanor> Hello. I've just updated to Cabal 3 (cabal-install from Debian 11 repositories), and failing to find how to install custom libraries (the ones I'm writing) properly: `cabal install --lib` appears to work fine (no errors), but then `cabal install` says "unknown package" when I'm trying to build projects dependent on such a library. Is it the intended behaviour, and how does one build projects like that with Cabal 3 (
08:46:54 <defanor> except for v2- commands)?
08:47:09 burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
08:48:07 <merijn> defanor: tbh, you really shouldn't be using "install --lib"
08:48:37 <merijn> defanor: Also, in cabal 3 the X and "v2-X" are identical
08:49:11 <defanor> merijn: Oh, perhaps I had in mind v1- ones then; meant the old behaviour. What should I use instead of install, then?
08:49:25 <merijn> It depends *why* you want to install
08:49:45 <merijn> If it is "so I can use this in another library/project I work on" the answer is: you shouldn't use install at all
08:50:20 <defanor> Indeed, to use those libraries from other projects. What should I use instead, then?
08:51:45 <merijn> defanor: If the libraries are on hackage, then nothing, they will be installed automatically when you use "build" if you want to depend on local (modified?) versions of libraries or unreleased libraries, then you want to use a cabal.project file with either 1) a remote-repo entry or 2) a filled in "local-packages:" pointing at the relevant local paths
08:51:51 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
08:52:42 <defanor> It's the latter in this case (some of those are work-related), will look into those options. Thanks!
08:52:46 <merijn> defanor: See https://cabal.readthedocs.io/en/latest/cabal-project.html#specifying-the-local-packages which has examples of both
08:52:49 × Pickchea quits (~private@user/pickchea) (Ping timeout: 248 seconds)
08:52:49 × favonia quits (~favonia@user/favonia) (Ping timeout: 248 seconds)
08:53:04 <merijn> defanor: And https://cabal.readthedocs.io/en/latest/cabal-project.html#specifying-packages-from-remote-version-control-locations
08:54:38 <merijn> defanor: For work situations where everyone is consistently using the same "internal" packages, you should probably just commit the cabal.project file to the repo for everyone to use
08:56:12 <merijn> also, in the category more complicated (but thorough) solutions: It's perfectly possible to run your own private hackage server and point cabal-install at that so it will consult both the internal hackage server and public hackage
09:00:02 × polyphem quits (~polyphem@2a02:810d:640:776c:f4c0:a27a:540e:c15e) (Ping timeout: 245 seconds)
09:00:27 <defanor> I keep thinking of packaging everything into .deb and running an apt repository that way, to reuse a single package manager for everything (reducing the possibility of version mismatches, setting external dependencies from system repositories, etc). But will probably look into that later, just manual building for now.
09:08:45 fabfianda joins (~fabfianda@37.183.255.57)
09:20:27 <defanor> Tried to build with a cabal.project, seems to work for me. The packages live in a single repository (subdirectories), so have put cabal.project into its root.
09:21:17 <merijn> defanor: That's pretty much the intended use of cabal.project, yes :)
09:22:03 <merijn> defanor: Note that you can specify local overrides for it in cabal.project.local (the idea being you can commit cabal.project to the repo for everyone working on it and .local has whatever tweaks specific to what you're doing)
09:23:08 Axma70428 joins (~Axman6@user/axman6)
09:24:41 × Axman6 quits (~Axman6@user/axman6) (Ping timeout: 256 seconds)
09:25:07 × jespada quits (~jespada@90.254.247.46) (Ping timeout: 245 seconds)
09:27:10 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 240 seconds)
09:27:41 jespada joins (~jespada@90.254.247.46)
09:29:28 waleee joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
09:39:06 lavaman joins (~lavaman@98.38.249.169)
09:39:08 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 268 seconds)
09:43:38 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 258 seconds)
09:50:10 Pickchea joins (~private@user/pickchea)
09:53:01 PinealGlandOptic joins (~PinealGla@37.115.210.35)
09:54:42 __monty__ joins (~toonn@user/toonn)
09:56:29 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
09:56:42 ikex1 joins (~ash@user/ikex)
09:56:55 × burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
09:58:15 × ikex quits (~ash@user/ikex) (Ping timeout: 268 seconds)
09:58:16 ikex1 is now known as ikex
10:01:39 × dschrempf quits (~dominik@2a01-036d-0118-a2d1-3c86-9363-4322-fee7.pool6.digikabel.hu) (Ping timeout: 258 seconds)
10:01:47 × tinwood quits (~tinwood@canonical/tinwood) (Remote host closed the connection)
10:02:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
10:03:56 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:04:49 tinwood joins (~tinwood@general.default.akavanagh.uk0.bigv.io)
10:04:49 × tinwood quits (~tinwood@general.default.akavanagh.uk0.bigv.io) (Changing host)
10:04:49 tinwood joins (~tinwood@canonical/tinwood)
10:05:14 × lortabac quits (~lortabac@151.73.97.57) (Quit: WeeChat 2.8)
10:09:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
10:09:41 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:11:45 × waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 248 seconds)
10:13:03 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
10:13:20 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
10:14:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
10:15:43 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:16:59 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
10:20:13 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
10:20:52 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
10:21:17 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
10:21:19 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:21:58 <albet70> dibblego, is there a limit days for banned user or permanent?
10:22:27 <[exa]> albet70: there's another channel for that, see topic
10:22:51 <albet70> oh, I see, sorry
10:25:55 × PinealGlandOptic quits (~PinealGla@37.115.210.35) (Quit: leaving)
10:26:17 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
10:27:01 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:28:20 polyphem joins (~polyphem@2a02:810d:640:776c:f4c0:a27a:540e:c15e)
10:29:10 kilolympus joins (~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net)
10:30:14 burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
10:33:16 ChanServ sets mode +o dibblego
10:33:30 dibblego sets mode -b *!*@47.245.54.240
10:33:31 × haykam quits (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection)
10:33:44 haykam joins (~haykam@static.100.2.21.65.clients.your-server.de)
10:33:46 ChanServ sets mode -o dibblego
10:34:49 Guest372 joins (~xxx@47.245.54.240)
10:36:17 × chomwitt quits (~chomwitt@2a02:587:dc0c:e200:12c3:7bff:fe6d:d374) (Ping timeout: 245 seconds)
10:37:44 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
10:38:29 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:43:40 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
10:43:57 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:44:28 × fendor quits (~fendor@77.119.161.62.wireless.dyn.drei.com) (Remote host closed the connection)
10:44:40 acidjnk_new joins (~acidjnk@p200300d0c72b952850c7a959aba8feb6.dip0.t-ipconnect.de)
10:47:32 × acidjnk_new3 quits (~acidjnk@p200300d0c72b955250c7a959aba8feb6.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
10:57:49 fvr joins (uid503686@id-503686.highgate.irccloud.com)
11:01:04 alx741 joins (~alx741@181.196.68.125)
11:01:04 × burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
11:03:29 burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
11:04:33 × ubert quits (~Thunderbi@91.141.56.213.wireless.dyn.drei.com) (Ping timeout: 248 seconds)
11:05:25 × burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
11:06:26 × dsrt^ quits (~dsrt@209.65.131.194) (Ping timeout: 258 seconds)
11:08:24 chomwitt joins (~chomwitt@ppp-94-67-193-240.home.otenet.gr)
11:08:54 AlexNoo_ joins (~AlexNoo@94.233.241.41)
11:12:52 × AlexZenon quits (~alzenon@94.233.240.231) (Ping timeout: 268 seconds)
11:12:52 × Alex_test quits (~al_test@94.233.240.231) (Ping timeout: 268 seconds)
11:12:52 × AlexNoo quits (~AlexNoo@94.233.240.231) (Ping timeout: 268 seconds)
11:16:24 Alex_test joins (~al_test@94.233.241.41)
11:16:49 AlexZenon joins (~alzenon@94.233.241.41)
11:22:22 lortabac joins (~lortabac@151.73.97.57)
11:22:41 × benin036932 quits (~benin@183.82.178.142) (Ping timeout: 248 seconds)
11:25:18 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
11:27:23 jumper149 joins (~jumper149@80.240.31.34)
11:29:59 Gurkenglas joins (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
11:35:21 × Matthias1 quits (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) (Remote host closed the connection)
11:36:21 Matthias1 joins (~Matthias1@cpe-76-170-236-166.socal.res.rr.com)
11:37:59 × Matthias1 quits (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) (Read error: Connection reset by peer)
11:42:11 burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
11:43:33 favonia joins (~favonia@user/favonia)
11:43:51 × _\_ quits (~o@user/ding) (Quit: ___)
11:44:04 _\_ joins (~o@user/ding)
11:44:06 dschrempf joins (~dominik@92-249-159-252.pool.digikabel.hu)
11:46:17 × burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 245 seconds)
11:47:59 <Hecate> am sad
11:48:04 <Hecate> I had a very nice usecase for Comonads
11:48:11 <Hecate> and turns out `getField` does the job
11:48:18 <Hecate> (with probably less overhead lol)
11:48:26 aguapesada joins (~aguapesad@2804:14c:8793:8e2f:a406:863b:f810:2d4c)
11:49:23 <hpc> ah yes, truly your life is full of hardships :D
11:50:38 <hpc> i had something similar with Cont, until i realized something entirely different instead
11:55:10 burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
11:56:47 lortabac_ joins (~lortabac@151.73.3.232)
11:58:22 × lortabac quits (~lortabac@151.73.97.57) (Ping timeout: 245 seconds)
12:00:09 benin036932 joins (~benin@183.82.178.142)
12:01:58 ubert joins (~Thunderbi@178.115.35.155.wireless.dyn.drei.com)
12:03:02 shriekingnoise joins (~shrieking@186.137.144.80)
12:04:40 × keutoi quits (~keutoi@157.48.90.57) (Ping timeout: 240 seconds)
12:05:10 lortabac_ is now known as lortabac
12:12:33 lavaman joins (~lavaman@98.38.249.169)
12:15:47 <merijn> hpc: I actually have a use of Cont in my code!
12:15:55 <merijn> And I even understood it when I wrote it!
12:16:10 <merijn> Don't understand shit about it anymore, but it still works, so I just don't touch it :p
12:18:29 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
12:20:49 <hpc> hah
12:22:32 <lechner> Hi, I have postgresql-simple working via 'text'/Data.Text result types. Can the module hadle more custom conversions, such as from SEMVER from the Pg extension pg-simple to SemVer.Version from 'semver' in Haskell?
12:22:46 <lechner> pg-semver
12:22:57 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds)
12:29:22 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
12:31:25 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
12:33:04 × Pickchea quits (~private@user/pickchea) (Ping timeout: 258 seconds)
12:38:16 × burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
12:38:22 × acidjnk_new quits (~acidjnk@p200300d0c72b952850c7a959aba8feb6.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
12:39:27 burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
12:41:36 × burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
12:47:04 pbrisbin joins (~patrick@pool-108-16-214-93.phlapa.fios.verizon.net)
12:49:17 norias joins (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
12:50:01 acidjnk_new joins (~acidjnk@p200300d0c72b952850c7a959aba8feb6.dip0.t-ipconnect.de)
12:54:09 × ubert quits (~Thunderbi@178.115.35.155.wireless.dyn.drei.com) (Quit: ubert)
12:54:27 ubert joins (~Thunderbi@178.115.35.155.wireless.dyn.drei.com)
12:59:54 × chomwitt quits (~chomwitt@ppp-94-67-193-240.home.otenet.gr) (Ping timeout: 258 seconds)
13:07:03 <maerwald> how to convert `[Word8]` to `ByteArray#`?
13:07:53 <Hecate> < hpc> ah yes, truly your life is full of hardships :D // This is the only hardship in my life that is relevant to this channel :p
13:08:38 <Hecate> maerwald: 'coerce' ? :p
13:09:07 <Hecate> no more seriously, maerwald, 'byteArrayFromList :: Prim a => [a] -> ByteArray'
13:09:15 <maerwald> I'm already doing that
13:09:21 <maerwald> it doesn't yield an unlifted type
13:09:34 <Hecate> oh shit yes
13:09:36 <Hecate> sorry
13:09:48 <maerwald> unpacking from the constructor, oddly, also doesn't
13:10:29 <maerwald> so `(\(BA.ByteArray ba) -> ba) . BA.byteArrayFromList $ ws` doesn't work
13:13:47 Guest40 joins (~Guest40@2a02:6b64:708f:0:9101:3c1b:1de7:cf00)
13:13:47 × acidjnk_new quits (~acidjnk@p200300d0c72b952850c7a959aba8feb6.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
13:14:17 Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com)
13:17:48 <Guest40> is this the best place to get beginner help for haskell?
13:18:22 <dminuoso> Whether it's the best that's for you to decide.
13:18:39 <dminuoso> But we welcome beginners in this channel.
13:19:10 <dminuoso> We also have #haskell-beginners which is less noisy, but dont feel pressured to go there. Sometimes this channel can be busy. :)
13:19:28 <Guest40> that's nice, was just wondering because i didn't see anyone sending messages
13:19:42 <Guest40> and whether people usually help out
13:19:48 <Guest40> i'll make sure to join , thanks
13:20:06 <dminuoso> You will usually have better response times in here
13:20:21 slowButPresent joins (~slowButPr@user/slowbutpresent)
13:20:38 <Lycurgus> and it's newbie friendly unlike some other langs/channels
13:21:16 <dminuoso> Indeed, dont be scared away if people start off with advanced discussions. We dont mind beginner questions at all, even if they are very basic. :)
13:22:31 AlexNoo_ is now known as AlexNoo
13:22:48 <Guest40> thank you
13:27:30 <merijn> Guest40: Activity here is spiky :p Also, most US people are asleep and the EU people are (pretending) to work :p
13:31:14 <maerwald> is dlist good at fusing?
13:31:55 <maerwald> example: https://paste.tomsmeding.com/GOQCMLgl
13:32:09 <maerwald> I wonder if it will nicely build the bytestring or keep the list in memory
13:35:23 burnsidesLlama joins (~burnsides@client-8-71.eduroam.oxuni.org.uk)
13:35:48 <albet70> could Cont replace Maybe or Either?
13:35:59 Sgeo joins (~Sgeo@user/sgeo)
13:36:46 <janus> how would it? it has only one constructor
13:37:05 × wxallowed quits (~d4@151.51.133.244) (Ping timeout: 258 seconds)
13:37:24 drd joins (~drd@93-39-151-19.ip76.fastwebnet.it)
13:38:27 <albet70> oh I forget that, they all can do early exit in >>=, so I wonder that
13:39:40 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
13:40:23 <albet70> Cont can jump back to the beginning in the >>= chain, how would it?
13:40:23 <janus> but any definition of >>= can do early exit, surely that doesn't make them all replacements for Maybe/Either?
13:40:34 <dminuoso> albet70: Cont can implement all the other haskell-writable monads.
13:40:37 <dminuoso> All.
13:41:46 <albet70> dminuoso how would it?
13:42:57 <albet70> I wonder who create or discover Cont first?
13:45:11 tengu1 joins (~tengu1@cpe-70-121-244-14.neb.res.rr.com)
13:45:40 × burnsidesLlama quits (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection)
13:46:37 burnsidesLlama joins (~burnsides@client-8-71.eduroam.oxuni.org.uk)
13:46:41 <dminuoso> albet70: https://web.archive.org/web/20150925081214/https://www.fpcomplete.com/user/dpiponi/the-mother-of-all-monads
13:50:40 chomwitt joins (~chomwitt@ppp-94-67-193-240.home.otenet.gr)
13:52:24 × burnsidesLlama quits (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection)
13:54:30 <JavierNeira[m]> the original post, still available was http://blog.sigfpe.com/2008/12/mother-of-all-monads.html
13:54:48 slack1256 joins (~slack1256@191.125.227.92)
13:56:43 ec joins (~ec@gateway/tor-sasl/ec)
13:58:14 × lortabac quits (~lortabac@151.73.3.232) (Quit: WeeChat 2.8)
14:00:36 [Kalisto] joins (~nico@user/kalisto/x-8968079)
14:01:16 <[Kalisto]> hi
14:01:28 <[Kalisto]> i am trying to compile an old project of mine and i get this error
14:01:30 <[Kalisto]> https://paste.tomsmeding.com/dVLlVsCb
14:01:37 <[Kalisto]> i don't know what to do
14:01:39 <[Kalisto]> :(
14:01:58 <[Kalisto]> in the cabal file i have this
14:01:59 <[Kalisto]> build-depends: base >=4.11 && <4.12, gd >=3000.7 && <3000.8, mtl >=2.2 && <2.3, parsec >=3.1 && <3.2
14:03:08 <raehik> it looks like your installed GHC is too new for your base dependency
14:03:17 <merijn> That, yeah
14:03:22 <dminuoso> [__1] rejecting: base-4.14.1.0/installed-4.14.1.0 (conflict: miniLogo => base>=4.11 && <4.12)
14:03:42 <[Kalisto]> oh
14:03:46 <raehik> you could loosen the dependency and see if it works, or install an older GHC
14:03:51 <dminuoso> [Kalisto]: This reads: miniLogo induces a base dependency (you can, more or less, equate this with GHC version) of >=4.11 && <4.12
14:04:08 <[Kalisto]> i am compiling it inside a docker container
14:04:12 burnsidesLlama joins (~burnsides@client-8-71.eduroam.oxuni.org.uk)
14:04:16 <dminuoso> [Kalisto]: And it rejects the (installed) base package of version 4.14.1.0 because it conflicts with that constraint I just cited.
14:04:39 <[Kalisto]> i tried to, but I got errors
14:04:42 <[Kalisto]> No instance for (MonadFail Data.Functor.Identity.Identity)
14:04:53 <[Kalisto]> i just want to compile it :P
14:06:37 <[Kalisto]> thanks
14:08:31 × burnsidesLlama quits (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Ping timeout: 252 seconds)
14:09:12 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
14:12:21 × sleblanc quits (~sleblanc@user/sleblanc) (Ping timeout: 258 seconds)
14:12:55 <[Kalisto]> it's alive, alive! :P
14:13:07 <[Kalisto]> I used the 8.4.4 docker image and it worked
14:13:10 <[Kalisto]> thank you
14:13:47 × Guest40 quits (~Guest40@2a02:6b64:708f:0:9101:3c1b:1de7:cf00) (Quit: Client closed)
14:15:11 wxallowed joins (~d4@151.51.135.6)
14:22:30 × dschrempf quits (~dominik@92-249-159-252.pool.digikabel.hu) (Quit: WeeChat 3.2)
14:23:15 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
14:25:08 gambpang joins (~ishipman@207.181.230.156)
14:26:24 burnsidesLlama joins (~burnsides@client-8-71.eduroam.oxuni.org.uk)
14:28:44 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
14:28:49 doyougnu joins (~user@c-73-25-202-122.hsd1.or.comcast.net)
14:29:26 gehmehgeh joins (~user@user/gehmehgeh)
14:30:31 ec joins (~ec@gateway/tor-sasl/ec)
14:31:32 pompez joins (~martin@user/pompez)
14:33:13 <tomsmeding> it seems like the major thing impacting compatibility with early-8 series with now is MonadFail
14:33:57 <tomsmeding> will ghc have one major compatibility-breaking change every major series? :p First FAM, then MonadFail
14:34:57 × burnsidesLlama quits (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection)
14:37:23 × Cajun quits (~Cajun@user/cajun) (Quit: Client closed)
14:39:15 burnsidesLlama joins (~burnsides@client-8-71.eduroam.oxuni.org.uk)
14:41:18 × burnsidesLlama quits (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection)
14:44:48 peterhil_ joins (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi)
14:45:23 <albet70> dminuoso, very good article, Cont can jump back, so [] can? but [] can't early exit in jump back
14:45:29 × artem quits (uid512590@id-512590.highgate.irccloud.com) (Quit: Connection closed for inactivity)
14:46:35 <gambpang> Setting aside style considerations, is there any reason to prefer expressions like `f $ g $ h $ x` in a codebase to `f . g . h $ x` (or vice versa)?
14:47:17 burnsidesLlama joins (~burnsides@client-8-71.eduroam.oxuni.org.uk)
14:47:28 <albet70> dminuoso, now I feel I can use Cont to do something but I don't understand it
14:48:05 × peterhil quits (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 268 seconds)
14:48:09 Guest87 joins (~Guest87@2a01:c23:5d93:6500:cd2c:9f7f:eeb2:be5b)
14:48:23 × Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 258 seconds)
14:50:14 × jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.2)
14:51:40 × norias quits (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 240 seconds)
14:51:45 <albet70> and in that article, it does not mention the notorious callCC
14:53:47 × mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 245 seconds)
14:54:43 <merijn> albet70: Not understanding Cont is normal :p
14:55:02 <merijn> I've written non-trivial code using Cont, but it still melts my brain each time >.>
14:55:10 × Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
14:55:25 s-h-i-n-o-b-i joins (~quassel@104.244.75.124)
14:56:15 <albet70> merijn do u have some classic examples for ContT r IO a?
14:56:38 <albet70> when should I use ContT?
14:56:46 Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
14:56:53 <merijn> albet70: Did you see the SO example on "ContT as bracket" yet?
14:56:58 <albet70> which case it should be used?
14:57:14 <merijn> https://stackoverflow.com/questions/26436095/what-are-good-haskell-conventions-for-managing-deeply-nested-bracket-patterns
14:57:14 <albet70> not yet
14:57:16 skykanin joins (~skykanin@115.81-166-221.customer.lyse.net)
14:57:17 <merijn> That one
14:57:23 <merijn> Which is what I mostly use it for too
15:01:45 hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com)
15:02:43 Pickchea joins (~private@user/pickchea)
15:02:56 × dajoer quits (~david@user/gvx) (Quit: leaving)
15:03:01 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2)
15:04:21 × Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8)
15:05:36 × Guest87 quits (~Guest87@2a01:c23:5d93:6500:cd2c:9f7f:eeb2:be5b) (Quit: Client closed)
15:06:22 norias joins (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
15:06:26 × norias quits (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Remote host closed the connection)
15:07:22 × Pickchea quits (~private@user/pickchea) (Ping timeout: 252 seconds)
15:07:41 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
15:08:15 <albet70> some people said Cont can do branch control or jump back
15:08:38 <albet70> full of magic
15:09:28 <kuribas> is "fromListWith (++) " quadratic in the combining function?
15:10:08 <albet70> :t maybe
15:10:09 <lambdabot> b -> (a -> b) -> Maybe a -> b
15:10:12 <kuribas> nvm, it is prepending, ...
15:11:09 <albet70> when b ~ Cont r a, it can be used to something?
15:13:25 × tengu1 quits (~tengu1@cpe-70-121-244-14.neb.res.rr.com) (Quit: Client closed)
15:14:05 qbt joins (~edun@user/edun)
15:14:57 × qbt quits (~edun@user/edun) (Remote host closed the connection)
15:15:43 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
15:17:03 × burnsidesLlama quits (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection)
15:17:36 <kuribas> albet70: probably...
15:18:15 burnsidesLlama joins (~burnsides@client-8-71.eduroam.oxuni.org.uk)
15:18:51 ec joins (~ec@gateway/tor-sasl/ec)
15:19:14 nate1 joins (~nate@2600:1010:b02a:2679:7ca9:9738:1435:e8d1)
15:20:26 × burnsidesLlama quits (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection)
15:20:48 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
15:22:38 burnsidesLlama joins (~burnsides@client-8-71.eduroam.oxuni.org.uk)
15:22:56 × hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1)
15:23:23 hendursaga joins (~weechat@user/hendursaga)
15:24:40 × burnsidesLlama quits (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection)
15:27:54 burnsidesLlama joins (~burnsides@client-8-71.eduroam.oxuni.org.uk)
15:28:14 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
15:28:45 <c_wraith> kuribas: prepending is the bad case for nested calls to (++). I expect fromListWith (++) would be pretty bad if there were a lot of duplicated keys
15:28:51 ec joins (~ec@gateway/tor-sasl/ec)
15:30:15 × burnsidesLlama quits (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection)
15:30:39 × skykanin quits (~skykanin@115.81-166-221.customer.lyse.net) (Quit: WeeChat 3.2)
15:31:01 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
15:31:48 <c_wraith> kuribas: oh, wait. English is ambiguous in fun ways. I see what you meant by "prepending", and you're right about that. I still think fromListWith (++) would be bad in the worst case.
15:32:35 <kuribas> c_wraith: it's prepending like [el] ++ rest, but that's assuming the input has all singletons.
15:33:04 <kuribas> c_wraith: or small lists, then it's still fine.
15:33:06 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
15:33:18 <kuribas> actually it's always linear...
15:33:40 t0zy joins (~t0zy@49.207.220.61)
15:35:11 <c_wraith> kuribas: a quick check of the source says it's using foldl'
15:35:20 <c_wraith> kuribas: which is the bad case for (++)
15:36:10 <kuribas> c_wraith: dependends on the direction they apply it?
15:36:48 <kuribas> fromListWith (++) [(5,"a"), (5,"b"), (3,"b"), (3,"a"), (5,"a")] == fromList [(3, "ab"), (5, "aba")]
15:36:52 <kuribas> (from the docs)
15:37:15 <kuribas> that looks like prepending...
15:38:15 <c_wraith> oh, weird. that isn't the order I would expect the arguments at all
15:38:21 <kuribas> Ah in insertWith: If the key does exist, the function will insert the pair (key, f new_value old_value).
15:40:21 <c_wraith> well, I guess that makes fromListWith (++) efficient. But also not at all the operation I'd expect it to be
15:41:06 <kuribas> what do you expect then?
15:41:17 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
15:43:40 × Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
15:44:21 Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
15:46:08 <dminuoso> gambpang: the latter is refactorable, the former not.
15:46:10 × nate1 quits (~nate@2600:1010:b02a:2679:7ca9:9738:1435:e8d1) (Ping timeout: 240 seconds)
15:46:19 <dminuoso> Or rather "easily refactorable"
15:47:45 × favonia quits (~favonia@user/favonia) (Ping timeout: 248 seconds)
15:48:30 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
15:51:15 qbt joins (~edun@user/edun)
15:52:10 × ubert quits (~Thunderbi@178.115.35.155.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
15:52:13 <c_wraith> kuribas: I'd expect it to apply the function to the args in the opposite order such that fromListWith f [(1,a),(1,b),(1,c)] === fromList [(1, (a `f` b) `f' c)]
15:52:32 <c_wraith> err. `f` the second time, too.
15:53:10 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
15:53:14 × haykam quits (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection)
15:53:27 haykam joins (~haykam@static.100.2.21.65.clients.your-server.de)
15:57:00 cheater joins (~Username@user/cheater)
15:57:36 × slack1256 quits (~slack1256@191.125.227.92) (Remote host closed the connection)
15:57:42 pavonia joins (~user@user/siracusa)
15:58:56 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:00:36 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
16:01:34 Cajun joins (~Cajun@user/cajun)
16:02:36 lbseale joins (~lbseale@user/ep1ctetus)
16:03:10 × aguapesada quits (~aguapesad@2804:14c:8793:8e2f:a406:863b:f810:2d4c) (Quit: CoreIRC for Android - www.coreirc.com)
16:04:21 ec joins (~ec@gateway/tor-sasl/ec)
16:07:35 <kuribas> c_wraith: seems they optimized for (++) then :)
16:08:43 burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
16:09:35 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:12:44 favonia joins (~favonia@user/favonia)
16:13:22 × burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
16:15:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
16:16:07 × drd quits (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 252 seconds)
16:16:25 benin0369321 joins (~benin@183.82.178.142)
16:19:09 × Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Remote host closed the connection)
16:19:58 × benin036932 quits (~benin@183.82.178.142) (Ping timeout: 268 seconds)
16:19:59 benin0369321 is now known as benin036932
16:20:19 Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
16:22:58 Atum_ joins (~IRC@user/atum/x-2392232)
16:24:44 drd joins (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
16:26:48 econo joins (uid147250@user/econo)
16:36:07 <dminuoso> gambpang: To elaborate on what I said earlier, writing `f . g . h $ x` or `(f . g . h) x` allows for mechanical refactoring since you can just take the composition and float it into a binding, e.g. let q = f . g . h in q x.
16:38:34 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:39:09 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3))
16:40:21 burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
16:44:17 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:50:41 × burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 248 seconds)
16:52:00 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:52:04 ubert joins (~Thunderbi@178.115.48.151.wireless.dyn.drei.com)
17:02:13 × Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
17:02:18 justsomeguy joins (~justsomeg@user/justsomeguy)
17:04:50 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
17:05:16 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer)
17:07:57 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
17:08:22 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 245 seconds)
17:08:27 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer)
17:10:12 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
17:10:28 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer)
17:12:54 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
17:13:45 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer)
17:15:20 simon1 is now known as sim590
17:15:56 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
17:16:11 jakalx parts (~jakalx@base.jakalx.net) ()
17:16:18 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:16:22 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer)
17:18:16 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
17:18:49 × chomwitt quits (~chomwitt@ppp-94-67-193-240.home.otenet.gr) (Ping timeout: 252 seconds)
17:20:05 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:20:13 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
17:24:39 jakalx joins (~jakalx@base.jakalx.net)
17:31:12 fef joins (~thedawn@user/thedawn)
17:34:22 × fresheyeball quits (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
17:40:02 × drd quits (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 245 seconds)
17:40:07 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:41:10 <gambpang> dminuoso: Yeah, that's a point in favor for sure. Is it likely that the two variants wind up producing the ~same core/machine code?
17:41:46 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:42:06 <dminuoso> Im not confident enough to answer this.
17:43:25 <dminuoso> But honestly, that line of thought smells like premature optimization.
17:43:37 <dminuoso> I'd worry about writing expressive, readable and maintainable code first.
17:44:13 <Drew[m]1> I would be shocked if `let q = f . g . h in q x` did not inline to `(f . g . h) x`
17:44:36 <dminuoso> Drew[m]1: I presume they meant ($) vs (.)
17:45:03 Pickchea joins (~private@user/pickchea)
17:45:04 <dminuoso> I know GHC has some hacks in place for ($), and if memory serves right ($) actually gets completely elided in the intermediate representation to make runST work.
17:45:27 <dminuoso> But Im not confident to make a claim here.
17:46:01 <Drew[m]1> {-# INLINE (.) #-}
17:46:01 <Drew[m]1> (.) f g = \x -> f (g x)
17:46:21 <Drew[m]1> Oops that was meant to be on seperate lines
17:46:23 chomwitt joins (~chomwitt@ppp-94-67-193-240.home.otenet.gr)
17:46:47 <dminuoso> And then we begin to have discussions about how the inliner works..
17:46:55 <dminuoso> Or rather the simplifier
17:46:58 <monochrom> I cite premature optimization too. If this is in a hotspot, read core and asm code, and/or benchmark. If this is not in a hotspot, why are you worrying.
17:47:00 <Drew[m]1> Yeah
17:49:19 <monochrom> And even if it's in a hotspot and the more humane code is under-optimized, the GHC people will love to know your use case, then go think about how to optimize it. There is still a possible future in which the humane version is optimized.
17:51:10 <dminuoso> I mean granted, there's certain behaviors that generally lead to more performant code.
17:52:13 <dminuoso> But that's something you generally develop with experience, and are often still wrong.
17:52:37 <monochrom> Drew[m]1, it did come out as seperate lines, no worries, your IRC client split it for you :)
17:52:49 <dminuoso> `String`, despite having a horribly inefficient cache-hostile representation, seems to perform generally good enough to not be a hot spot in any of my programs..
17:52:57 Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
17:53:11 <dminuoso> At least not a measurable/relevant hotspot
17:53:54 <davean> tring HIGHLY depends on wher in the code it is, also when it is a problem its generally a very spread out problem
17:53:59 <monochrom> Idiomatic Haskell tends not to do heavy string processing in the first place anyway. This is not Perl or Tcl or shell script.
17:54:04 <davean> But it can be the best option in some cases
17:57:29 <monochrom> HTML scrappers would need optimized strings. But HTML scrappers are no longer hip this year. (Yes, 5 or 10 years ago it was hip, every other day someone would come here saying "I'm writing an HTML scrapper, this is taking 1GB for a 100MB file...")
17:59:03 wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com)
18:01:23 × hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
18:02:04 <maerwald> ppl are doing that with haskell
18:02:06 <maerwald> see xeno
18:02:48 <maerwald> Here's a maintained fork https://gitlab.com/migamake/xeno
18:03:22 <maerwald> oddly, it's faster than some C parsers
18:03:34 <maerwald> but it's not idiomatic haskell in any sense
18:03:49 <maerwald> just bytestring trickery optimizing to pointer tricks
18:04:45 Erutuon joins (~Erutuon@user/erutuon)
18:04:48 × polyphem quits (~polyphem@2a02:810d:640:776c:f4c0:a27a:540e:c15e) (Read error: Connection reset by peer)
18:05:13 <davean> maerwald: I don't know what Haskell you're reading, pointer tricks on bytestrings is what most of the Haskell I've read lately is all about! :)
18:05:42 <maerwald> I'll be impressed if we have a fast streamly based XML parser
18:05:44 <maerwald> not before
18:06:11 hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com)
18:06:37 <monochrom> Well yeah, ever since bytestring, HTML scrapper performance became a solved problem.
18:07:22 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
18:08:54 gehmehgeh joins (~user@user/gehmehgeh)
18:10:59 keutoi joins (~keutoi@223.238.95.231)
18:16:39 aegon joins (~mike@174.127.249.180)
18:22:18 <dminuoso> code optimizing to memory tricks is a fairly legit and common thing to do to make code fast..
18:22:25 <dminuoso> just saying..
18:27:03 × fef quits (~thedawn@user/thedawn) (Remote host closed the connection)
18:27:22 <monochrom> :)
18:27:55 <aegon> huh, how do you go about testing somethign that requires a postgresql connection trying to reason about testing functions that interact with postgresql simple, should i create a dummy db and test against that :?
18:28:19 <dminuoso> aegon: That's probably the most common way, yes.
18:28:58 <dminuoso> Depending on what you want to test, possibly mocking or some tagless final encoding could also help. Also, if you can write code that is portable with sqlite as well, you can use sqlite for testing.
18:29:41 <dminuoso> Or you can use unit tests if you can decouple the logic from the database
18:29:51 <dminuoso> And bypass the need for a database entirely
18:30:06 <maerwald> dminuoso: I dunno, in haskell it feels particularly fragile (and often is), because how things optimize/inline may change drastically from GHC to GHC and library version
18:31:29 × keutoi quits (~keutoi@223.238.95.231) (Ping timeout: 248 seconds)
18:33:07 keutoi joins (~keutoi@157.47.26.152)
18:34:25 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
18:36:24 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection)
18:48:24 × keutoi quits (~keutoi@157.47.26.152) (Quit: leaving)
18:48:25 × t0zy quits (~t0zy@49.207.220.61) (Remote host closed the connection)
18:48:40 t0zy joins (~t0zy@49.207.220.61)
18:51:15 <dsal> aegon: I've done something like this by modeling my effects separately in a class and then having different effect providers. This also helped me when I suspected I had a performance issue in my DB layer which ended up being unaffected by a memory-only provider.
18:54:32 <gambpang> In case ppl care, the context is that we prefer `f . g . h $ x` (or `(f . g . h) x`) at work exactly because of that "obvious factorization" and nobody knew what if any costs there were over using chaining ($)
18:55:28 <Cale> gambpang: The compiled code will typically be identical
18:56:18 d0ku joins (~d0ku@178.43.198.70.ipv4.supernova.orange.pl)
18:58:43 burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
18:59:10 × d0ku quits (~d0ku@178.43.198.70.ipv4.supernova.orange.pl) (Client Quit)
18:59:21 d0ku joins (~d0ku@178.43.198.70.ipv4.supernova.orange.pl)
19:04:26 × wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:04:42 tput joins (~tim@S0106a84e3fe54613.ed.shawcable.net)
19:08:24 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
19:14:51 × burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
19:14:56 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:17:46 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
19:18:28 gehmehgeh joins (~user@user/gehmehgeh)
19:18:41 × Cajun quits (~Cajun@user/cajun) (Quit: Client closed)
19:18:54 burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
19:21:24 Cajun joins (~Cajun@user/cajun)
19:22:44 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
19:40:10 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
19:42:06 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
19:42:18 × ystael quits (~ystael@user/ystael) (Read error: Connection reset by peer)
19:43:50 gethuen joins (uid502979@id-502979.stonehaven.irccloud.com)
19:45:25 burnside_ joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
19:45:26 × burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Read error: Connection reset by peer)
19:46:09 × alx741 quits (~alx741@181.196.68.125) (Ping timeout: 248 seconds)
19:48:58 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
19:49:08 <aegon> dsal: dminuoso: roger that I'll try each and see how things vary maybe i should have used persistant vs postgresql-simple
19:52:40 × fabfianda quits (~fabfianda@37.183.255.57) (Ping timeout: 240 seconds)
19:57:55 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
19:59:39 alx741 joins (~alx741@181.196.69.234)
20:01:58 jgeerds joins (~jgeerds@55d45555.access.ecotel.net)
20:03:37 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:05:40 × juhp quits (~juhp@128.106.188.220) (Ping timeout: 268 seconds)
20:11:47 × hendursaga quits (~weechat@user/hendursaga) (Remote host closed the connection)
20:12:23 hendursaga joins (~weechat@user/hendursaga)
20:12:34 chisui joins (~chisui@200116b8681e48004d4a4305e410a0e6.dip.versatel-1u1.de)
20:13:39 × burnside_ quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
20:13:44 <chisui> Hey, does anyone have a clue why the sound is skipping in this application? https://github.com/chisui/fsynth/blob/master/src/Main.hs I fear that the reason is that it's the context switch from the generating thread to the writing one.
20:14:08 burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
20:16:11 × burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Read error: Connection reset by peer)
20:16:22 burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
20:16:32 × burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
20:16:50 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:17:04 burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
20:17:24 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
20:18:08 gehmehgeh joins (~user@user/gehmehgeh)
20:18:41 <shapr> chisui: does it help any to spawn off play as a separate thread?
20:19:12 <shapr> you have -threaded, so I'd guess garbage collection is already on a separate thread?
20:19:25 <dsal> I'm suspicious of `threadDelay 50`
20:19:53 <davean> shapr: uh? Is it using hte pauseless GC?
20:19:59 <davean> Otherwise thats not how threads and GC work
20:20:14 <chisui> shapr: spawning a new thread doesn't help :(
20:20:54 <chisui> dsal: the delay is just so that the buffer doesn't overflow. I checked and the buffer is always full enough when popped.
20:20:55 <dsal> Is it using too much CPU, or too little?
20:21:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
20:21:42 × burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 268 seconds)
20:21:48 <chisui> dsal: Oh, it uses 100% on both threads it got.
20:22:07 <dsal> `threadDelay` is often used as an approximation for a solution to a different problem.
20:23:30 <davean> Yah, you usually want to wait until a specific time has happened, or something
20:23:44 <chisui> dsal: Yeah, I should probably use something like a `TBQueue`. Unfortunately sdl2 requires the callback to be in `IO`
20:24:03 <dsal> Sounds like too much CPU. :) I'd think this wouldn't be particularly expensive. Profiling might help you understand where all the CPU is going, but in general, I don't think any work should be done if there's nothing that needs computation.
20:24:04 <dsal> :t atomically
20:24:05 <lambdabot> error: Variable not in scope: atomically
20:24:09 <dsal> boo
20:24:17 <dsal> % :t atomically
20:24:17 <yahb> dsal: STM a -> IO a
20:24:57 <chisui> is that safe to use in a multythreaded environment?
20:25:07 <davean> of course
20:25:09 <davean> thats the point
20:25:48 <dsal> Most other languages with multithreading support wish they could do this. :)
20:25:59 <tomsmeding> chisui: the thing about STM is that all the STM actions within a single 'atomically' block should happen, well, atomically; how it does that in practice is try running it, and if it detects another thread has done something simultaneously, it rolls back and tries again
20:26:40 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
20:27:04 <tomsmeding> where a mutex is "pessimistic concurrency", i.e. always paying the cost of locking expecting that races are going to happen often, STM is "optimistic concurrency", i.e. just going for it and paying when there actually ended up being a race
20:27:32 <davean> tomsmeding: Uh, thats an implimentaiton detail that can vary
20:27:37 <tomsmeding> I know
20:27:56 <tomsmeding> but I think it's helpful in getting an intuitive understanding about what's even going on here, and how it _can_ even be implemented
20:28:01 × favonia quits (~favonia@user/favonia) (Ping timeout: 252 seconds)
20:28:13 <davean> I mean it can be implimented as a mutex too
20:28:14 <tomsmeding> I often find that when I have no idea how something could even be implemented, I have no feeling for how to work with it
20:28:21 <tomsmeding> okay fair
20:28:35 <tomsmeding> then read it as a bit of evangelising about why STM is cool :)
20:28:38 <stevenxl> Can someone point out to me what is wrong with ths stack.yaml file:
20:28:40 <davean> Ok :)
20:28:45 <tomsmeding> or, why ghc's implementation of it is cool
20:28:48 <stevenxl> https://www.irccloud.com/pastebin/nUoRzgeh/
20:28:58 <davean> tomsmeding: Its no the the coolest!
20:29:10 stevenxl Gives me a warning "Unrecognized field in Snapshot: extra-deps".
20:29:12 <davean> tomsmeding: people have played with ones that use HTM, ones that have guarrenteed progress and fairness ...
20:29:28 <davean> well, I don't know that the HTM ever happened
20:30:41 <stevenxl> https://www.irccloud.com/pastebin/066TZS1X/
20:30:51 stevenxl Even that simple file gives me an error, and that is supposedly the default.
20:30:58 <chisui> Ok, I'll will change to stm. Somehow I'm still not convinced that this will fix the issue
20:31:53 <tomsmeding> stevenxl: can you give the full command you're invoking, and the full error?
20:32:19 stevenxl Hi tomsmeding - thank you for the offer to help. Apparently, A custom snapshot doesn't use extra-deps, they go under packages.
20:33:02 <tomsmeding> oh this is not a stack.yaml of a project?
20:33:47 <dsal> chisui: My guess is that the issue is that you're burning all the cores and putting in time delays to try to artificially slow stuff down. Just organize information exchanges with queues and have a thread keeping it populated and let the other one read from it when it needs it. Shouldn't be using much CPU.
20:34:08 stevenxl tomsmeding: I completely missed the fact that we have a `stack.yaml` which points to a resolver.
20:34:24 ystael joins (~ystael@user/ystael)
20:35:05 <chisui> dsal: It' would be great if there was a streaming library that supports this.
20:36:04 <dsal> Asking for data from IO is just `atomically . readTBQueue`
20:36:16 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds)
20:36:23 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
20:36:35 <adamCS> chisui: Maybe streamly? (https://hackage.haskell.org/package/streamly)
20:37:05 <chisui> should I use a bare TBQueue or chunk the data further?
20:37:06 jolly joins (~jolly@208.180.97.158)
20:37:21 <chisui> adamCS: thanks, I'll take a look
20:37:39 <davean> chisui: lots of streaming libraries can do this sort of thing
20:38:07 hexfive joins (~eric@50.35.83.177)
20:38:22 <dsal> chisui: What you decide `a` should be there is up to you. Easy enough to change.
20:40:07 × cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds)
20:40:16 <tomsmeding> chisui: how many things are you planning on pushing on that queue per second
20:40:33 <tomsmeding> if that's 44100 things, then probably chunk that a bit :)
20:40:44 cheater joins (~Username@user/cheater)
20:41:05 <chisui> tomsmeding: It's currently running on a sample rate of 48k ;)
20:41:23 <davean> chisui: haha, whats your latency requirement?
20:41:31 <davean> chisui: use that to calculate chunk size
20:41:37 <davean> but 48kps is nothing
20:41:53 <davean> I do that many web requests in a thread
20:43:05 <tomsmeding> TBQueue is the classic two-lists implementation of a queue, so it will do a list reversal of roughly the whole queue every once in a while
20:43:27 <tomsmeding> while throughput is fine, that's probably not great for latency, depending on exactly how large the queue will be
20:43:28 azeem joins (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it)
20:43:36 <davean> chisui: I'd probably make the chunks half the size of your latency requirement
20:44:10 <davean> as a first default
20:44:22 <chisui> I think that sdl always requests a fixed size chunk. I'll just use that
20:45:01 <davean> chisui: last I knew it was configurable
20:45:17 × pompez quits (~martin@user/pompez) (Quit: WeeChat 3.2)
20:45:23 <chisui> yeah, but once it's configured it doesn't change randomly right?
20:45:41 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:46:35 <davean> chisui: right, but you need to pick the size of that based on your latency requirement, so its just moving the problem
20:55:37 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds)
20:57:00 × fvr quits (uid503686@id-503686.highgate.irccloud.com) (Quit: Connection closed for inactivity)
21:01:25 burnsidesLlama joins (~burnsides@dhcp168-023.wadham.ox.ac.uk)
21:01:42 × nschoe quits (~quassel@2a01:e0a:8e:a190:f185:3872:6a89:c741) (Ping timeout: 245 seconds)
21:01:56 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
21:03:39 acidjnk_new joins (~acidjnk@p200300d0c72b952850c7a959aba8feb6.dip0.t-ipconnect.de)
21:03:52 wrengr_away is now known as wrengr
21:05:40 × burnsidesLlama quits (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
21:08:19 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:08:50 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
21:09:31 favonia joins (~favonia@user/favonia)
21:10:22 <chisui> Thank's everyone. Using TBQueue together with sensibly sized chunks worked wonders.
21:11:56 <tomsmeding> 🎉
21:14:31 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
21:15:30 <monochrom> :)
21:15:58 × hexfive quits (~eric@50.35.83.177) (Quit: WeeChat 3.0)
21:17:35 × chisui quits (~chisui@200116b8681e48004d4a4305e410a0e6.dip.versatel-1u1.de) (Quit: Client closed)
21:17:46 <monochrom> Yeah in your case you just go "atomically (enqueue this)" and "atomically (dequeue that)" and that's your IO level.
21:18:00 chisui joins (~chisui@200116b8681e48004d4a4305e410a0e6.dip.versatel-1u1.de)
21:18:54 <monochrom> The STM level needs to be more fine-grained because "enqueue this" for example is multiple lines of STM code.
21:19:10 <monochrom> or more precisely, multiple operations.
21:20:10 <chisui> monochrom: are you talking about the current version I pushed?
21:20:11 <monochrom> And other people will also have use cases requiring "atomically (enqueue this and dequeue something else)".
21:20:24 <monochrom> I think yes. I haven't checked.
21:21:10 × ubert quits (~Thunderbi@178.115.48.151.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
21:21:21 <tomsmeding> chisui: you just missed one message https://ircbrowse.tomsmeding.com/browse/lchaskell?id=145828#trid145828
21:22:05 <chisui> Ah, that makes sense
21:22:18 <monochrom> Oh, that. I missed that too haha.
21:30:49 machinedgod joins (~machinedg@24.105.81.50)
21:33:07 pgib joins (~textual@173.38.117.86)
21:34:40 × qbt quits (~edun@user/edun) (Ping timeout: 240 seconds)
21:38:11 × azeem quits (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer)
21:44:23 <dsal> chisui: do you still need that IORef?
21:45:08 <chisui> dsal: I use it to fill a single chunk.
21:45:09 <dsal> I guess I don't quite understand that part.
21:50:08 × doyougnu quits (~user@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection)
21:53:55 polyphem joins (~polyphem@2a02:810d:640:776c:f4c0:a27a:540e:c15e)
21:56:37 zebrag joins (~chris@user/zebrag)
21:58:47 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
22:00:55 azeem joins (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it)
22:04:21 doyougnu joins (~user@c-73-25-202-122.hsd1.or.comcast.net)
22:04:35 × gambpang quits (~ishipman@207.181.230.156) (Remote host closed the connection)
22:07:21 <aegon> does ghc automatically use the newtype strategy for deriving newtypes or should I be explicit about that to make sure
22:07:46 × d0ku quits (~d0ku@178.43.198.70.ipv4.supernova.orange.pl) (Ping timeout: 268 seconds)
22:10:15 × Cajun quits (~Cajun@user/cajun) (Quit: Client closed)
22:11:05 Cajun joins (~Cajun@user/cajun)
22:11:44 ell is now known as ellie
22:12:57 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
22:15:31 p0lyph3m joins (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3)
22:16:01 × p0lyph3m quits (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3) (Client Quit)
22:16:13 × chisui quits (~chisui@200116b8681e48004d4a4305e410a0e6.dip.versatel-1u1.de) (Ping timeout: 246 seconds)
22:16:24 p0lyph3m joins (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3)
22:16:42 × polyphem quits (~polyphem@2a02:810d:640:776c:f4c0:a27a:540e:c15e) (Ping timeout: 245 seconds)
22:17:11 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:18:03 <aegon> bah, a page down in this post it talks about that and the accompanying compile warn line
22:18:10 × vysn quits (~vysn@user/vysn) (Ping timeout: 240 seconds)
22:20:45 p0lyph3m is now known as polyphem
22:21:00 × michalz quits (~michalz@185.246.204.62) (Remote host closed the connection)
22:21:26 × polyphem quits (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3) (Quit: CoreIRC for Android - www.coreirc.com)
22:21:37 polyphem joins (~polyphem@2a02:810d:640:776c:bd0c:a594:ef4e:c3f3)
22:22:13 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:26:25 × mousey quits (~skymouse@gateway/tor-sasl/mousey) (Remote host closed the connection)
22:26:52 mousey joins (~skymouse@gateway/tor-sasl/mousey)
22:29:37 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 245 seconds)
22:32:17 Guest56 joins (~textual@209.51.86.47)
22:34:05 × mousey quits (~skymouse@gateway/tor-sasl/mousey) (Ping timeout: 244 seconds)
22:36:03 × acidjnk_new quits (~acidjnk@p200300d0c72b952850c7a959aba8feb6.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
22:36:55 andjjj23_ joins (~irc@107.170.228.47)
22:38:27 × jgeerds quits (~jgeerds@55d45555.access.ecotel.net) (Ping timeout: 245 seconds)
22:38:30 × Guest56 quits (~textual@209.51.86.47) (Quit: Textual IRC Client: www.textualapp.com)
22:38:46 venue joins (~venue@209.51.86.47)
22:39:40 <kilolympus> I've got a gigantic ~/.stack directory (39 gigs on a 128 gb SSD), and I want to trim it down -- is there a way to use Stack to list projects that use a certain installed GHC version? (so I can safely delete stuff)
22:40:18 <kilolympus> Or at least some form of safe purge method (I'm fine with recompiling everything again, since there may be older projects I no longer actively work on, which I can save on)
22:40:45 <kilolympus> I heard I shouldn't just downright remove ~/.stack, since it can error out if project/.stack-work still exists
22:41:04 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds)
22:41:18 <dsal> You can rm -rf most of the big stuff in there.
22:41:42 <sm> kilolympus: stack-clean-old is a good safe way
22:42:18 <sm> also removing project/.stack-work would be another option
22:42:45 <kilolympus> Ah, ok dsal, thanks!
22:42:53 <dsal> sm's being more surgical. :)
22:42:57 <kilolympus> sm: Didn't know about this, looks like stack-clean-old looks great!
22:43:14 <kilolympus> Removing project/.stack-work would be fine, but the projects themselves are on a plenty big external HDD
22:43:15 <dsal> I use nix-integration and don't worry about it anymore. Now it's all in /nix instead
22:43:23 <sm> yup. Be aware it shows/removes different stuff depending whether you run it inside a project or not
22:43:35 <kilolympus> Alright
22:43:39 <kilolympus> Thanks!
22:43:43 × venue quits (~venue@209.51.86.47) (Quit: Textual IRC Client: www.textualapp.com)
22:44:02 venue joins (~venue@209.51.86.47)
22:45:21 × chomwitt quits (~chomwitt@ppp-94-67-193-240.home.otenet.gr) (Remote host closed the connection)
22:48:16 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 252 seconds)
22:49:10 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:51:06 mousey joins (~skymouse@gateway/tor-sasl/mousey)
22:51:20 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
22:51:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
22:54:55 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
22:55:10 venue parts (~venue@209.51.86.47) (adios)
22:57:32 venue joins (~venue@209.51.86.47)
22:57:32 venue is now known as venuex
22:58:34 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:00:15 × aegon quits (~mike@174.127.249.180) (Remote host closed the connection)
23:03:12 × venuex quits (~venue@209.51.86.47) (Changing host)
23:03:12 venuex joins (~venue@user/venue)
23:05:40 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
23:08:12 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 268 seconds)
23:09:57 Erutuon joins (~Erutuon@user/erutuon)
23:15:51 machinedgod joins (~machinedg@24.105.81.50)
23:18:03 wroathe joins (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net)
23:25:29 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
23:28:33 × Jonno_FTW quits (~come@user/jonno-ftw/x-0835346) (Ping timeout: 268 seconds)
23:33:07 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
23:36:19 frosky joins (~froskyarr@50.7.59.207)
23:36:50 Jonno_FTW joins (~come@api.carswap.me)
23:36:57 × dmwit quits (~dmwit@pool-108-28-26-143.washdc.fios.verizon.net) (Remote host closed the connection)
23:38:08 dajoer joins (~david@user/gvx)
23:42:34 oldsk00l joins (~znc@ec2-18-170-87-228.eu-west-2.compute.amazonaws.com)
23:42:44 × oldsk00l_ quits (~znc@ec2-18-170-87-228.eu-west-2.compute.amazonaws.com) (Ping timeout: 268 seconds)
23:46:31 sajith_ is now known as sajith
23:50:18 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
23:50:42 × Axma70428 quits (~Axman6@user/axman6) (Remote host closed the connection)
23:50:56 Axman6 joins (~Axman6@user/axman6)
23:52:19 geekosaur joins (~geekosaur@xmonad/geekosaur)
23:54:10 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
23:56:26 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
23:59:23 PinealGlandOptic joins (~PinealGla@37.115.210.35)

All times are in UTC on 2021-08-18.