Home liberachat/#haskell: Logs Calendar

Logs on 2021-11-29 (liberachat/#haskell)

00:00:13 <maplike> [(a,[b])]
00:00:36 <maplike> I hope that wasn't the straw that broke the camels' back for mreh :(
00:01:08 <geekosaur> no, mreh was talking about going to bed soon before you arrived,m they logged on to report a down site
00:01:16 <maplike> so I want to go from [(a,b)] -> [(a,[b])]
00:01:45 <maplike> good, thanks geekosaur
00:01:48 <geekosaur> :t map (map group)
00:01:49 <lambdabot> Eq a => [[[a]]] -> [[[[a]]]]
00:01:55 <geekosaur> mm, not quite
00:02:10 × alx741 quits (~alx741@181.196.69.176) (Ping timeout: 256 seconds)
00:02:46 <int-e> :t groupBy ((==) `on` snd)
00:02:47 <lambdabot> Eq a1 => [(a2, a1)] -> [[(a2, a1)]]
00:02:58 <maplike> I'm pretty sure in scala it's be something like `toMap` on the List
00:03:18 <int-e> :t map (head &&& map snd) . groupBy ((==) `on` fst)
00:03:19 <lambdabot> Eq a => [(a, b)] -> [((a, b), [b])]
00:03:25 <int-e> tsk.
00:03:36 <geekosaur> glad I'm not the only one :þ
00:03:38 <int-e> :t map ((fst . head) &&& map snd) . groupBy ((==) `on` fst)
00:03:39 <lambdabot> Eq a => [(a, b)] -> [(a, [b])]
00:03:40 × maplike quits (~maplike@31.209.100.216) (Remote host closed the connection)
00:03:46 × jonatanb quits (~accio@31-178-144-108.dynamic.chello.pl) (Remote host closed the connection)
00:03:50 shapr` is now known as shapr
00:03:57 <int-e> probably not the nicest way. does order matter?
00:04:18 maplike joins (~maplike@31.209.100.216)
00:04:18 <maplike> a bit of a mouthful, but better than anything I came up with!
00:04:28 <int-e> :t M.toList . M.fromListWith (++) . map (second pure)
00:04:28 <lambdabot> Ord k => [(k, a)] -> [(k, [a])]
00:04:59 <maplike> that's what I wanted :D
00:05:02 <int-e> that's if you don't care about the order
00:05:06 <maplike> nice!
00:05:31 <int-e> (but also more efficient)
00:05:36 <maplike> nope, it should really be a Map, but I thought it owuld be interesting to see how to do it
00:05:37 <int-e> asymptotically at least
00:05:48 <maplike> and the size is trivial
00:05:58 <int-e> Heh, then you can drop the M.toList
00:07:06 <int-e> > M.fromListWith (++) . map (second pure) $ [(1,'a'),(2,'b'),(1,'c')] -- note a quirk: c comes before a
00:07:07 <lambdabot> fromList [(1,"ca"),(2,"b")]
00:09:30 jonatanb joins (~accio@31-178-144-108.dynamic.chello.pl)
00:12:17 × maplike quits (~maplike@31.209.100.216) (Remote host closed the connection)
00:12:34 maplike joins (~maplike@31.209.100.216)
00:14:01 × jonatanb quits (~accio@31-178-144-108.dynamic.chello.pl) (Ping timeout: 256 seconds)
00:14:06 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection)
00:14:23 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
00:16:43 × maplike quits (~maplike@31.209.100.216) (Remote host closed the connection)
00:17:00 maplike joins (~maplike@31.209.100.216)
00:19:18 × x88x88x quits (~cheeg@gateway/vpn/pia/x88x88x) (Remote host closed the connection)
00:20:48 x88x88x joins (~cheeg@gateway/vpn/pia/x88x88x)
00:23:03 × maplike quits (~maplike@31.209.100.216) (Remote host closed the connection)
00:23:20 maplike joins (~maplike@31.209.100.216)
00:25:00 × maplike quits (~maplike@31.209.100.216) (Remote host closed the connection)
00:25:17 maplike joins (~maplike@31.209.100.216)
00:25:26 <maplike> excuse the delayed feedback - just trying to lookup what second does. That was the trick I was missing
00:25:39 <Axman6> @hoogle second
00:25:40 <lambdabot> Control.Arrow second :: Arrow a => a b c -> a (d, b) (d, c)
00:25:40 <lambdabot> Data.Bifunctor second :: Bifunctor p => (b -> c) -> p a b -> p a c
00:25:40 <lambdabot> System.Directory.Internal.Prelude second :: Arrow a => a b c -> a (d, b) (d, c)
00:25:48 <maplike> not really played with Arrows yet
00:26:07 <Axman6> it's basically just fmap on the first element of a tuple
00:26:22 <maplike> I've heard that they are more powerful than Applicatives, but weaker than Monads
00:26:29 <Axman6> there are more advanced uses of it, but generally you're usiing it as (a -> b) -> (a,c) -> (b,c)
00:26:39 <maplike> OK
00:26:48 jle` joins (~jle`@cpe-23-240-75-236.socal.res.rr.com)
00:26:58 <geekosaur> % :t second @(->)
00:26:59 <yahb> geekosaur: (b -> c) -> (d, b) -> (d, c)
00:27:50 <maplike> is that generalistion reasonable? (re Applicatives > Arrows > Monads, even though Arrow is not heirarchically related to the others))
00:28:06 <geekosaur> hm, I''d say not really
00:28:37 <maplike> can you do everything with an Arrow that and Applicative can, but not as much as a Monad?
00:28:38 <geekosaur> Arrow was an attempt to fit function application and Kleisli (monad) application into a single framework. It kinda failed
00:28:38 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
00:28:59 <geekosaur> but out of Arrow came Applicative and profunctors
00:29:01 <Axman6> It found a use in Opaleye
00:29:56 <Axman6> also, from the discussion above, it's worth remembering that group and groupBy do not work how you think, they group consecutive runs, they do not collect like elements together
00:30:08 <Axman6> > group "aaabbaabc"
00:30:09 <lambdabot> ["aaa","bb","aa","b","c"]
00:30:26 <maplike> right, so you have to pay for the sort, one way or another!
00:30:55 <maplike> coming back to [(Country, Language)], well, in reality, a better example is borders = [(WA, NT), (WA, SA), (NT, SA), (NT, Q), (Q, SA), (Q, NSW), (NSW, SA), (NSW, V), (V, SA), (T, V), (ACT, NSW)]
00:31:06 <Axman6> Aussie Aussie Aussie!
00:31:17 <maplike> yep, and paint
00:31:20 × pfurla quits (~pfurla@2804:14d:5c81:4104:40b9:a545:8d47:6552) (Ping timeout: 265 seconds)
00:31:31 pfurla_ joins (~pfurla@205.185.222.148)
00:31:31 <Axman6> s'if Queensland gets just Q. I'm not ok with this
00:32:08 Axman6 wishes there was a (ACT, NZ) in there too, but alas
00:32:18 <maplike> that's what it's called in the book
00:32:22 <maplike> (on CSP)
00:32:37 <maplike> or, more likely, lecture notes
00:32:38 <monochrom> What is ACT?
00:32:48 <Axman6> The best territory
00:32:52 <maplike> capital
00:32:58 <monochrom> Oh! That.
00:33:39 <maplike> so the [OzState, [OzState]] should take snd as a key too
00:33:59 <Axman6> eh?
00:34:15 <maplike> otherwise you can't lookup all the borders for a state unless you duplicate the relationships (in both directions)
00:34:17 × burnsidesLlama quits (~burnsides@dhcp168-015.wadham.ox.ac.uk) (Remote host closed the connection)
00:34:27 <Axman6> also, make sure you use the correct syntax, you either mean (OzState, [OzState]) or [(OzState, [OzState])]
00:34:30 <monochrom> Yeah Wikipedia uses QLD :)
00:34:53 jonatanb joins (~accio@31-178-144-108.dynamic.chello.pl)
00:34:55 <maplike> so, for example, you will see that Tasmania borders Victoria (whatever) but not that Victoria borders Tasmania
00:34:58 <Axman6> (Also, it should be AusState, but whatever)
00:35:06 <maplike> :D
00:36:04 <Axman6> that's pretty easy to deal with, just have directedToUndirected xs = xs ++ map (\(a,b) -> (b,a)) xs and then do the collect above
00:36:14 <maplike> it's not offensive, is it , Axman6?
00:37:11 <Axman6> Oz? No but definitely not used much by us
00:37:19 <maplike> yes, I can see that bit, but it just seems less elegant than I would have liked/expected, but I suppose there is so much you can represent with a list of tuples
00:38:59 × maplike quits (~maplike@31.209.100.216) (Remote host closed the connection)
00:39:05 <Axman6> If you want graphs, then maybe you should look at a graph library :)
00:40:04 vonfry joins (~user@116.236.75.238)
00:41:29 maplike joins (~maplike@31.209.100.216)
00:41:56 × maplike quits (~maplike@31.209.100.216) (Remote host closed the connection)
00:41:56 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3)
00:42:42 maplike joins (~maplike@31.209.100.216)
00:42:54 adium joins (adium@user/adium)
00:43:20 × maplike quits (~maplike@31.209.100.216) (Remote host closed the connection)
00:44:24 maplike joins (~maplike@31.209.100.216)
00:45:17 <jackdk> https://hackage.haskell.org/package/algebraic-graphs
00:47:01 × acidjnk_new quits (~acidjnk@p200300d0c7271e27c5c24316ea6f3b87.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
00:48:15 × jonatanb quits (~accio@31-178-144-108.dynamic.chello.pl) (Ping timeout: 265 seconds)
00:49:27 <maplike> is there no _other_ trick with Arrows to help wrt that (using fst _and_ snd of [OzState, OzState] as keys (and therefore values, in the other direction) for the [(OzState, [OzState])] ) ?
00:50:17 × random-jellyfish quits (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds)
00:50:59 <Axman6> not really, most tools for building up map like things are designed to work with values of type (k,v) where k and v are different
00:51:40 <maplike> that makes sense. And List and (,) are probably both dubious design decisions
00:51:49 <maplike> ... for this example
00:51:52 alx741 joins (~alx741@181.196.69.176)
00:52:06 <maplike> it was an attempt to avoid "denormalistion"
00:52:21 <maplike> and be as succinct as possible
00:53:24 <maplike> a map with values reappearing as keys whee necessary would have made the behaviour much easier to implement, but somehow less elegant (I thought :)
00:55:05 <maplike> so, is it the case that learning about Arrows, interesting and instructive as it may be, would not lead to much practical benefitin modern Haskell?
00:55:49 <maplike> or was that an exageration that nobody uses them (apart from for my warped example!)
00:57:03 <geekosaur> there are a few uses, but the existence of `arr` makes them a lot less useful than they might be
00:57:18 <geekosaur> :t arr
00:57:18 <lambdabot> Arrow a => (b -> c) -> a b c
00:58:04 pfurla joins (~pfurla@2804:14d:5c81:4104:f9a9:132:7129:df1c)
00:58:13 <maplike> I saw some scala talk once where one of the questions was "Arrows have been around for a while - why have they never taken off?
00:58:40 <maplike> the presenter didn't have a concrete answer.
00:59:02 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
00:59:02 <maplike> In Haskell there is even syntax sugar for it, but in scala, it seems less idiomatic
00:59:21 × pfurla_ quits (~pfurla@205.185.222.148) (Ping timeout: 256 seconds)
00:59:26 <maplike> (like applicative style)
01:00:39 Guest8469 joins (~Guest84@node-1w7jr9yg17p34ft5ls8sbppyg.ipv6.telus.net)
01:00:58 <yin> arrows are nice
01:01:04 <maplike> anyway, I better go and denormalise my borders! Thanks all
01:01:13 <maplike> ... aha - I want to hear this :)
01:01:35 <yin> i like them. that is all
01:02:19 <maplike> yin - can you say in what context? With that be with arrow do notation (or whatever it's called)?
01:02:55 <maplike> I mean, would you consider using arrows where others might automatically go to applicatives or monads?
01:03:20 × Guest8469 quits (~Guest84@node-1w7jr9yg17p34ft5ls8sbppyg.ipv6.telus.net) (Client Quit)
01:04:26 <maplike> the John Hughes paper seemed to claim that it was as good, if not better in some cases, for parsers, for example
01:05:22 <yin> probably not, but in the same way i don't go around talking in petry form. doesn't make it less beautiful :)
01:05:44 <yin> s/petry/poetry
01:05:53 <maplike> I remember thinking watching that talk that they were elegant, too
01:06:17 <geekosaur> practice says applicatives capture all the advantages of arrows for parsing, but monads tend to perform better
01:07:01 <geekosaur> also monads allow parsing some things arrows and applicatives can't
01:07:11 <maplike> yin I was wondering if you meant pretty or petty :D
01:07:26 <geekosaur> but unlike arrows, applicatives give you the option of switching to monadic parsing for those things
01:07:58 <maplike> the way the speaker framed it was that arrows can do everything applicatives can, but monads can do a few things they can't
01:08:00 <geekosaur> I thought they meant poetry
01:08:16 × curiousgay quits (~curiousga@77-120-141-90.kha.volia.net) (Quit: Leaving)
01:09:15 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
01:09:43 <maplike> the speakers eaxample, iirc, involved encoding to json some objects, where in some cases you need to know the thing you just did to shape the rest of the computation
01:10:36 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:10:37 × Midjak quits (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep)
01:10:42 <maplike> both monad and applicative failed at some aspect (can't remmber what now) but Arrow + ArrowChoice, iirc, solved both
01:10:44 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:11:10 <geekosaur> hm, actually I think I've heard that been claimed
01:11:15 <maplike> the applicative solution was probably due to the usual reasons
01:11:39 <geekosaur> symmetric choice?
01:11:46 <maplike> and the monad soln failed due to lack of anything meaningful to bind to
01:11:50 <geekosaur> er, non-biased choice. that was it
01:14:40 × nautical quits (~nautical@2601:602:900:1630::396f) (Quit: WeeChat 3.3)
01:14:56 nautical joins (~nautical@2601:602:900:1630::396f)
01:14:58 <geekosaur> applicatives bias toward the first partially matching choice, ArrowChoice is unbiased, iirc
01:15:47 × shailangsa quits (~shailangs@host86-186-136-24.range86-186.btcentralplus.com) (Ping timeout: 260 seconds)
01:16:52 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:19:45 <maplike> btw, I am having a play with Haskell in VSCode using HIE (via a plugin). On my last play with Haskell, I used atom. Seems like the VSCode plugin is pretty good (not sure how it scales, but for toys).
01:20:32 <maplike> you can even do `-- >>>` and evaluate the suffix, inline
01:20:44 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
01:21:22 × maplike quits (~maplike@31.209.100.216) (Remote host closed the connection)
01:21:41 maplike joins (~maplike@31.209.100.216)
01:21:52 × nautical quits (~nautical@2601:602:900:1630::396f) (Quit: WeeChat 3.3)
01:22:08 nautical joins (~nautical@2601:602:900:1630::396f)
01:25:13 shriekingnoise joins (~shrieking@186.137.144.80)
01:25:25 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
01:26:21 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds)
01:29:34 × maplike quits (~maplike@31.209.100.216) (Remote host closed the connection)
01:30:26 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
01:32:46 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
01:32:46 allbery_b joins (~geekosaur@xmonad/geekosaur)
01:32:49 allbery_b is now known as geekosaur
01:41:54 × nautical quits (~nautical@2601:602:900:1630::396f) (Quit: WeeChat 3.3)
01:44:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
01:51:01 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
01:51:01 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
01:51:01 wroathe joins (~wroathe@user/wroathe)
01:56:10 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
01:56:12 shailangsa joins (~shailangs@host86-162-150-209.range86-162.btcentralplus.com)
02:12:42 <Axman6> huh, I hadn't seen that, that's cool!
02:19:26 emf joins (~emf@2620:10d:c090:400::5:99c8)
02:20:22 <boxscape_> Huh
02:20:26 <boxscape_> my main function works when I run it in ghci
02:20:31 <boxscape_> but produces <<loop>> when compiled
02:20:32 <boxscape_> odd
02:20:45 <boxscape_> s/function/action
02:22:20 justsomeguy joins (~justsomeg@user/justsomeguy)
02:25:00 <boxscape_> Ah... it's because some function finds a different path when run in ghci vs compiled, and another function that uses this path has a bug where it loops infinitely on certain inputs
02:34:06 × mmhat quits (~mmh@55d4d614.access.ecotel.net) (Ping timeout: 265 seconds)
02:35:15 × xff0x quits (~xff0x@2001:1a81:523b:c600:ed55:79c2:75f9:f2e2) (Ping timeout: 250 seconds)
02:35:33 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
02:36:49 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 256 seconds)
02:37:13 xff0x joins (~xff0x@2001:1a81:527f:8300:c0be:43f4:9685:d0cc)
02:37:33 × infinity0 quits (~infinity0@occupy.ecodis.net) (Remote host closed the connection)
02:40:47 lavaman joins (~lavaman@98.38.249.169)
02:43:53 infinity0 joins (~infinity0@occupy.ecodis.net)
02:45:13 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
02:45:17 × gdown quits (~gavin@h69-11-248-109.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection)
02:47:28 mmhat joins (~mmh@55d431d8.access.ecotel.net)
02:47:54 lavaman joins (~lavaman@98.38.249.169)
02:51:27 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
02:51:27 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
02:51:27 wroathe joins (~wroathe@user/wroathe)
02:56:20 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
02:56:37 Guest13 joins (~Guest13@85-192-130-19.dsl.esoo.ru)
03:01:08 × mmhat quits (~mmh@55d431d8.access.ecotel.net) (Quit: WeeChat 3.3)
03:01:58 jmorris joins (uid433911@id-433911.hampstead.irccloud.com)
03:04:45 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
03:06:04 × bollu quits (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
03:09:32 <xsperry> boxscape_, that's odd, why would a function use a different path in ghc vs ghci? would it be possible to post a test case?
03:09:54 kennyd joins (~bc8165b6@cerf.good1.com)
03:11:20 <boxscape_> xsperry `import GHC.SysTools.BaseDir; main = findTopDir Nothing >>= print`
03:11:44 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
03:12:02 <boxscape_> (when the result is used as argument for `findToolDir` from the same module, on Windows, it produces an infinite loop for me when compiled but not in ghci, since findTopDir produces different paths)
03:13:23 <boxscape_> (I'm doing this inside a cabal project; the path it finds when compiled is somewhere in dist-newstyle, whereas the path it finds in ghci is the ghc installation directory)
03:17:52 × motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit)
03:18:33 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
03:21:14 <xsperry> boxscape_ ok, that makes sense
03:25:33 × td_ quits (~td@muedsl-82-207-238-244.citykom.de) (Ping timeout: 256 seconds)
03:27:23 td_ joins (~td@94.134.91.97)
03:33:47 xerxesphainon[m] joins (~artaxerxe@2001:470:69fc:105::f400)
03:33:57 <xerxesphainon[m]> ??????
03:41:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:42:13 × P1RATEZ quits (piratez@user/p1ratez) (Remote host closed the connection)
03:44:42 × renzhi quits (~xp@2607:fa49:6500:b100::5cef) (Ping timeout: 268 seconds)
03:45:15 × tcard quits (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
03:46:35 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
03:49:11 <Axman6> yes?
03:56:40 × Guest13 quits (~Guest13@85-192-130-19.dsl.esoo.ru) (Quit: Client closed)
03:57:24 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
04:01:00 yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
04:05:17 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
04:05:52 ChaiTRex joins (~ChaiTRex@user/chaitrex)
04:05:56 × yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 265 seconds)
04:11:58 tcard joins (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp)
04:15:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
04:17:52 × waleee quits (~waleee@h-82-196-111-63.na.cust.bahnhof.se) (Quit: WeeChat 3.3)
04:22:03 × cjb quits (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 29.0.50)
04:27:16 Guest13 joins (~Guest13@85-192-130-19.dsl.esoo.ru)
04:28:47 × ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 250 seconds)
04:29:12 mbuf joins (~Shakthi@223.184.125.58)
04:30:45 × CannabisIndica quits (~herb@user/mesaboogie) (Quit: ZNC - https://znc.in)
04:33:36 n8ess163 joins (~b@pool-72-80-171-162.nycmny.fios.verizon.net)
04:35:35 yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
04:37:39 ralu joins (~ralu@static.211.245.203.116.clients.your-server.de)
04:40:21 × yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
04:43:38 × x88x88x quits (~cheeg@gateway/vpn/pia/x88x88x) (Ping timeout: 265 seconds)
04:44:32 × xff0x quits (~xff0x@2001:1a81:527f:8300:c0be:43f4:9685:d0cc) (Ping timeout: 240 seconds)
04:45:25 xff0x joins (~xff0x@2001:1a81:527f:8300:57da:badd:210c:d109)
04:47:05 × Guest13 quits (~Guest13@85-192-130-19.dsl.esoo.ru) (Quit: Client closed)
04:47:22 × n8ess163 quits (~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:48:15 lavaman joins (~lavaman@98.38.249.169)
04:49:46 × hubvu quits (sid495858@user/hubvu) (Ping timeout: 260 seconds)
04:50:33 × boxscape_ quits (~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
04:52:49 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
04:53:52 hubvu joins (sid495858@user/hubvu)
04:53:59 CannabisIndica joins (~herb@user/mesaboogie)
04:56:05 <kennyd> how long do you think it will take for stack to support 9.2?
04:59:02 <c_wraith> It's almost always blocked on library support for a sufficient range of libraries. And that's a mystery
04:59:34 × sunarch quits (uid526836@user/sunarch) (Ping timeout: 260 seconds)
05:00:22 deadmarshal joins (~deadmarsh@95.38.231.110)
05:00:48 sunarch joins (uid526836@user/sunarch)
05:06:56 <c_wraith> Also, it's certainly waiting for 9.2.2
05:07:03 <c_wraith> 9.2.1 has some severe bugs on some platforms
05:07:03 × CannabisIndica quits (~herb@user/mesaboogie) (Quit: ZNC - https://znc.in)
05:10:56 CannabisIndica joins (~herb@user/mesaboogie)
05:12:00 × Hafydd quits (~Hafydd@user/hafydd) (Quit: WeeChat 3.3)
05:13:03 Hafydd joins (~Hafydd@user/hafydd)
05:13:14 <kennyd> c_wraith, which ones?
05:15:18 <c_wraith> https://discourse.haskell.org/t/psa-9-2-1-aarch64-miscompilation/3638
05:16:29 lavaman joins (~lavaman@98.38.249.169)
05:17:26 <kennyd> hmm, I just noticed that stack is still on 8.10.7 for long term support. 9.0.1 is nightly only
05:17:44 <c_wraith> 9.0 had a bunch of bug too
05:18:50 <c_wraith> A lot of things I ran into testing new features - rough edges that were fixed in 9.2
05:19:12 <kennyd> perhaps they will skip 9 and 9.2, and jump straight to 9.2.2
05:19:24 <c_wraith> most likely
05:21:14 × kennyd quits (~bc8165b6@cerf.good1.com) (Quit: CGI:IRC)
05:21:32 × CannabisIndica quits (~herb@user/mesaboogie) (Quit: ZNC - https://znc.in)
05:21:34 kennyd joins (~bc8165b6@cerf.good1.com)
05:26:15 × deadmarshal quits (~deadmarsh@95.38.231.110) (Ping timeout: 256 seconds)
05:33:11 reumeth joins (~reumeth@user/reumeth)
05:33:48 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
05:35:28 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
05:38:39 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
05:41:36 × reumeth quits (~reumeth@user/reumeth) (Ping timeout: 245 seconds)
05:45:54 yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
05:46:03 × alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection)
05:46:12 alzgh joins (~alzgh@user/alzgh)
05:46:20 <dsal> > getAp $ Ap [10,20] + Ap [1,2] -- I hope I don't ever need this, because it looks like a bad idea.
05:46:21 <lambdabot> [11,12,21,22]
05:46:58 <c_wraith> Ap is very generally useful
05:47:13 <dsal> I've not actually used it, but the Num instance?
05:47:16 <c_wraith> Though... that Num instance is... interesting
05:47:51 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
05:47:58 <kennyd> > liftA2 (+) [10,20] [1,2]
05:48:00 <lambdabot> [11,12,21,22]
05:48:02 <c_wraith> I don't usually complain about too many instances, but I think I will in that case.
05:48:26 <c_wraith> The main problem with that instance is documented directly: "Note that even if the underlying Num and Applicative instances are lawful, for most Applicatives, this instance will not be lawful"
05:49:06 <c_wraith> But if you ignore that instance, Ap is useful. :)
05:49:09 <dsal> It's almost counter-documented.
05:49:22 <dsal> It doesn't tell me what it's good for, just like, to not trust it.
05:50:28 <dsal> c_wraith: Where do you end up using Ap?
05:50:29 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
05:50:43 <dsal> I was just shopping for monoids and noticed and don't quite understand what it does that I can't already do.
05:50:46 <c_wraith> It comes up in traverse-like cases
05:51:04 <c_wraith> or foldMap stuff
05:51:27 <dsal> Hmm... So using foldMap to make a lift* ?
05:51:46 <c_wraith> I don't remember the details of when I've run into it specifically, just that I've run into it more than once.
05:52:11 <c_wraith> Including finding a chunk in a book that worked really hard to not do what it does as well as it did it.
05:52:37 deadmarshal joins (~deadmarsh@95.38.231.110)
05:53:10 <dsal> I think I'd be better off going to sleep than to try to contrive a need at the moment. heh. I just thought that Num instance looked pretty weird.
05:53:14 <c_wraith> It's just an adapter for "I want to work on the monoid under some Applicative instance"
05:53:29 <dsal> > Ap [1, 2, 3] + 5
05:53:30 <lambdabot> Ap {getAp = [6,7,8]}
05:54:31 <dsal> This is one of those things that's just going to seem useless to me until one day when it's exactly what I need and I'm glad I read docs one night.
05:58:03 bollu joins (uid233390@id-233390.helmsley.irccloud.com)
05:58:19 <c_wraith> > runState (getAp (foldMap Ap [ modify (* 2) *> pure "hello", flip replicate ' ' <$> get, modify (+1) *> pure "world" ])) 1
05:58:21 <lambdabot> ("hello world",3)
06:02:02 × yin quits (~z@user/zero) (*.net *.split)
06:02:02 × jrm quits (~jrm@156.34.187.65) (*.net *.split)
06:02:02 × flukiluke quits (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (*.net *.split)
06:02:02 × chronon quits (~chronon@user/chronon) (*.net *.split)
06:02:02 × dka quits (~code-is-a@ns3059207.ip-193-70-33.eu) (*.net *.split)
06:02:02 × mtjm quits (~mutantmel@2604:a880:2:d0::208b:d001) (*.net *.split)
06:02:02 × Profpatsch quits (~Profpatsc@static.88-198-193-255.clients.your-server.de) (*.net *.split)
06:02:02 × sajith quits (~sajith@user/sajith) (*.net *.split)
06:02:02 × landonf quits (landonf@mac68k.info) (*.net *.split)
06:02:02 × mjacob quits (~mjacob@adrastea.uberspace.de) (*.net *.split)
06:02:02 × akspecs__ quits (~akspecs@user/akspecs) (*.net *.split)
06:02:02 × choucavalier quits (~choucaval@peanutbuttervibes.com) (*.net *.split)
06:02:02 × mniip quits (mniip@libera/staff/mniip) (*.net *.split)
06:02:02 × farn quits (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (*.net *.split)
06:02:02 × urdh quits (~urdh@user/urdh) (*.net *.split)
06:02:02 × fluxit quits (~fluxit@techsmix.net) (*.net *.split)
06:02:02 × cocreature quits (~moritz@2a03:b0c0:3:d0::c8:f001) (*.net *.split)
06:02:02 × xacktm_ quits (xacktm@user/xacktm) (*.net *.split)
06:02:02 × nurupo quits (~nurupo.ga@user/nurupo) (*.net *.split)
06:02:02 × OscarH quits (~OscarH@90.201.86.195) (*.net *.split)
06:02:02 × nonzen quits (~nonzen@user/nonzen) (*.net *.split)
06:02:02 × carbolymer quits (~carbolyme@dropacid.net) (*.net *.split)
06:02:02 × Franciman quits (~Franciman@mx1.fracta.dev) (*.net *.split)
06:02:02 × noctux quits (~noctux@user/noctux) (*.net *.split)
06:02:03 × ncopa quits (~ncopa@alpine/developer/ncopa) (*.net *.split)
06:02:03 × kaol quits (~kaol@94-237-42-30.nl-ams1.upcloud.host) (*.net *.split)
06:02:03 × pragma- quits (~chaos@user/pragmatic-chaos) (*.net *.split)
06:02:03 × dextaa quits (~DV@user/dextaa) (*.net *.split)
06:02:03 × joeyh_ quits (joeyh@kitenet.net) (*.net *.split)
06:02:03 × Rembane_ quits (~Rembane@li346-36.members.linode.com) (*.net *.split)
06:02:03 × piele quits (~piele@tbonesteak.creativeserver.net) (*.net *.split)
06:02:03 × _\_ quits (~o@user/ding) (*.net *.split)
06:02:03 × jeffz quits (~user@lambda.xen.prgmr.com) (*.net *.split)
06:02:03 × PHO` quits (~pho@akari.cielonegro.org) (*.net *.split)
06:02:03 × sweater quits (~sweater@206.81.18.26) (*.net *.split)
06:02:03 × lieven quits (~mal@ns2.wyrd.be) (*.net *.split)
06:02:03 × meejah quits (~meejah@rutas.meejah.ca) (*.net *.split)
06:02:03 × wz1000 quits (~zubin@static.11.113.47.78.clients.your-server.de) (*.net *.split)
06:02:03 × DigitalKiwi quits (~kiwi@2604:a880:400:d0::12fc:5001) (*.net *.split)
06:02:03 × AkechiShiro quits (~licht@user/akechishiro) (*.net *.split)
06:02:03 × enikar quits (~enikar@user/enikar) (*.net *.split)
06:02:09 landonf joins (landonf@mac68k.info)
06:02:10 kaol_ joins (~kaol@94-237-42-30.nl-ams1.upcloud.host)
06:02:11 jeffz joins (~user@lambda.xen.prgmr.com)
06:02:11 Rembane joins (~Rembane@li346-36.members.linode.com)
06:02:11 choucavalier joins (~choucaval@peanutbuttervibes.com)
06:02:13 joeyh joins (joeyh@kitenet.net)
06:02:14 carbolymer joins (~carbolyme@dropacid.net)
06:02:16 meejah joins (~meejah@rutas.meejah.ca)
06:02:20 dka joins (~code-is-a@ns3059207.ip-193-70-33.eu)
06:02:20 piele joins (~piele@tbonesteak.creativeserver.net)
06:02:21 ncopa joins (~ncopa@gbr2-dev1.alpinelinux.org)
06:02:22 OscarH joins (~OscarH@90.201.86.195)
06:02:24 akspecs__ joins (~akspecs@136-24-214-166.cab.webpass.net)
06:02:25 mniip joins (mniip@libera/staff/mniip)
06:02:34 wz1000 joins (~zubin@static.11.113.47.78.clients.your-server.de)
06:02:34 lieven joins (~mal@ns2.wyrd.be)
06:02:36 farn joins (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505)
06:02:37 Franciman joins (~Franciman@mx1.fracta.dev)
06:02:39 Profpatsch joins (~Profpatsc@static.88-198-193-255.clients.your-server.de)
06:02:40 noctux joins (~noctux@user/noctux)
06:02:40 AkechiShiro joins (~licht@2a01:e0a:5f9:9681:1473:3dff:fe42:56a9)
06:02:41 mjacob joins (~mjacob@adrastea.uberspace.de)
06:02:48 urdh joins (~urdh@user/urdh)
06:02:48 nurupo joins (~nurupo.ga@user/nurupo)
06:02:48 _\_ joins (~o@user/ding)
06:02:50 × akspecs__ quits (~akspecs@136-24-214-166.cab.webpass.net) (Changing host)
06:02:50 akspecs__ joins (~akspecs@user/akspecs)
06:02:54 dextaa joins (~DV@user/dextaa)
06:03:31 pragma- joins (~chaos@user/pragmatic-chaos)
06:03:33 jrm joins (~jrm@156.34.187.65)
06:03:34 mtjm joins (~mutantmel@2604:a880:2:d0::208b:d001)
06:03:35 nonzen joins (~nonzen@user/nonzen)
06:03:38 zero joins (~z@user/zero)
06:03:39 flukiluke joins (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962)
06:03:40 sajith joins (~sajith@user/sajith)
06:03:43 DigitalKiwi joins (~kiwi@192.241.157.119)
06:03:43 fluxit joins (~fluxit@techsmix.net)
06:03:46 PHO` joins (~pho@akari.cielonegro.org)
06:03:47 xacktm joins (xacktm@user/xacktm)
06:03:50 cocreature joins (~moritz@2a03:b0c0:3:d0::c8:f001)
06:03:53 sweater joins (~sweater@206.81.18.26)
06:04:37 enikar joins (~enikar@user/enikar)
06:06:24 × remexre quits (~remexre@user/remexre) (*.net *.split)
06:06:24 × mstruebing quits (~maex@2001:41d0:8:93c7::1) (*.net *.split)
06:06:24 × TimWolla quits (~timwolla@2a01:4f8:150:6153:beef::6667) (*.net *.split)
06:06:24 × zfnmxt quits (~zfnmxtzfn@user/zfnmxt) (*.net *.split)
06:06:24 × jmcantrell quits (~jmcantrel@user/jmcantrell) (*.net *.split)
06:06:24 × peddie quits (~peddie@2001:470:69fc:105::25d) (*.net *.split)
06:06:24 × Deewiant quits (~deewiant@2001:470:69fc:105::2fd3) (*.net *.split)
06:06:24 × spoonm quits (spoonm@inaba.spoonm.org) (*.net *.split)
06:06:24 × cigsender quits (~cigsender@74.124.58.162) (*.net *.split)
06:06:24 × fendor[m] quits (~fendormat@2001:470:69fc:105::fcbd) (*.net *.split)
06:06:24 × Magnus[m] quits (~magthetch@2001:470:69fc:105::d1a7) (*.net *.split)
06:06:24 × dagit quits (~dagit@2001:558:6025:38:6476:a063:d05a:44da) (*.net *.split)
06:06:24 × teddyc quits (theodorc@cassarossa.samfundet.no) (*.net *.split)
06:06:24 × rembo10 quits (~rembo10@remulis.com) (*.net *.split)
06:06:24 × Ram-Z_ quits (~Ram-Z@li1814-254.members.linode.com) (*.net *.split)
06:06:24 × shanemikel quits (~shanemike@desk.roadwar.net) (*.net *.split)
06:06:24 × lstor quits (~lstor@user/lstor) (*.net *.split)
06:06:24 × andreas303 quits (andreas303@ip227.orange.bnc4free.com) (*.net *.split)
06:06:24 × xdej quits (~xdej@quatramaran.salle-s.org) (*.net *.split)
06:06:24 × auri quits (~quassel@fsf/member/auri) (*.net *.split)
06:06:24 × dyniec quits (~dyniec@mail.dybiec.info) (*.net *.split)
06:06:24 × Xe quits (~cadey@tailscale/xe) (*.net *.split)
06:06:32 cigsender joins (~cigsender@74.124.58.162)
06:06:33 TimWolla joins (~timwolla@2a01:4f8:150:6153:beef::6667)
06:06:37 lstor joins (~lstor@user/lstor)
06:06:40 andreas303 joins (andreas303@ip227.orange.bnc4free.com)
06:06:40 rembo10 joins (~rembo10@remulis.com)
06:06:41 dyniec joins (~dyniec@mail.dybiec.info)
06:06:42 mstruebing joins (~maex@2001:41d0:8:93c7::1)
06:06:42 teddyc joins (theodorc@cassarossa.samfundet.no)
06:06:43 remexre joins (~remexre@user/remexre)
06:06:59 Ram-Z joins (~Ram-Z@li1814-254.members.linode.com)
06:07:02 Xe joins (~cadey@tailscale/xe)
06:07:04 shanemikel joins (~shanemike@desk.roadwar.net)
06:07:13 chronon joins (~chronon@user/chronon)
06:07:26 peddie joins (~peddie@2001:470:69fc:105::25d)
06:07:37 zfnmxt joins (~zfnmxtzfn@2001:470:69fc:105::2b32)
06:07:48 auri joins (~quassel@fsf/member/auri)
06:08:05 spoonm joins (spoonm@inaba.spoonm.org)
06:08:05 fendor[m] joins (~fendormat@2001:470:69fc:105::fcbd)
06:08:05 Magnus[m] joins (~magthetch@2001:470:69fc:105::d1a7)
06:08:20 Deewiant joins (~deewiant@2001:470:69fc:105::2fd3)
06:10:27 × sweater quits (~sweater@206.81.18.26) (Ping timeout: 256 seconds)
06:10:27 × carbolymer quits (~carbolyme@dropacid.net) (Ping timeout: 256 seconds)
06:10:51 carbolymer joins (~carbolyme@dropacid.net)
06:12:04 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:12:06 sweater joins (~sweater@206.81.18.26)
06:13:26 namkeleser joins (~namkelese@101.175.102.188)
06:13:50 jmcantrell joins (~jmcantrel@user/jmcantrell)
06:15:01 hololeap_ joins (~hololeap@user/hololeap)
06:15:30 × hololeap quits (~hololeap@user/hololeap) (Ping timeout: 276 seconds)
06:17:24 lavaman joins (~lavaman@98.38.249.169)
06:18:03 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
06:21:34 × jmorris quits (uid433911@id-433911.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
06:22:40 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
06:22:52 lavaman joins (~lavaman@98.38.249.169)
06:24:03 aliosablack joins (~chomwitt@2a02:587:dc16:f200:12c3:7bff:fe6d:d374)
06:26:00 × x_kuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
06:30:19 hololeap_ is now known as hololeap
06:35:38 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
06:36:54 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:38:11 × deadmarshal quits (~deadmarsh@95.38.231.110) (Ping timeout: 265 seconds)
06:44:26 deadmarshal joins (~deadmarsh@95.38.231.110)
06:45:22 ThatLinuxGuy joins (~sand49@2001:8003:8431:d200:220b:84b2:a334:cbad)
06:46:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
06:49:18 × yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 265 seconds)
07:02:18 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
07:04:46 motherfsck joins (~motherfsc@user/motherfsck)
07:06:26 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
07:06:43 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
07:08:23 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
07:08:41 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
07:08:49 × deadmarshal quits (~deadmarsh@95.38.231.110) (Ping timeout: 256 seconds)
07:10:29 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
07:10:46 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
07:11:17 jonatanb joins (~accio@31-178-144-108.dynamic.chello.pl)
07:12:29 deadmarshal joins (~deadmarsh@95.38.231.110)
07:13:28 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 265 seconds)
07:15:42 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
07:16:50 × jonatanb quits (~accio@31-178-144-108.dynamic.chello.pl) (Ping timeout: 252 seconds)
07:18:51 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
07:19:08 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
07:19:32 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
07:20:15 deadmarshal_ joins (~deadmarsh@95.38.113.69)
07:20:21 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
07:21:51 × deadmarshal quits (~deadmarsh@95.38.231.110) (Ping timeout: 256 seconds)
07:23:31 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
07:24:49 lavaman joins (~lavaman@98.38.249.169)
07:26:11 × zmt01 quits (~zmt00@user/zmt00) (Ping timeout: 245 seconds)
07:29:49 mario joins (~mario@31.147.205.13)
07:31:44 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
07:33:24 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
07:33:42 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
07:33:44 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:33:53 nautical joins (~nautical@2601:602:900:1630::396f)
07:35:33 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
07:35:50 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
07:37:30 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
07:37:47 × ThatLinuxGuy quits (~sand49@2001:8003:8431:d200:220b:84b2:a334:cbad) (Quit: Konversation terminated!)
07:37:48 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
07:38:34 ThatLinuxGuy joins (~sand49@2001:8003:8431:d200:220b:84b2:a334:cbad)
07:38:36 fendor joins (~fendor@77.119.220.212.wireless.dyn.drei.com)
07:40:10 rkrishnan joins (~user@122.171.76.46)
07:42:15 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
07:44:04 × deadmarshal_ quits (~deadmarsh@95.38.113.69) (Ping timeout: 264 seconds)
07:44:04 notzmv joins (~zmv@user/notzmv)
07:46:38 jmorris joins (uid433911@id-433911.hampstead.irccloud.com)
07:46:54 × fendor quits (~fendor@77.119.220.212.wireless.dyn.drei.com) (Quit: Leaving)
07:52:45 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
07:53:14 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
07:56:42 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
07:56:59 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
07:58:52 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
08:01:31 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
08:03:55 deadmarshal joins (~deadmarsh@95.38.113.69)
08:04:24 jonatanb joins (~accio@31-178-144-108.dynamic.chello.pl)
08:04:50 × mvk quits (~mvk@2607:fea8:5cc1:fa00::4702) (Ping timeout: 260 seconds)
08:09:28 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
08:11:04 × deadmarshal quits (~deadmarsh@95.38.113.69) (Ping timeout: 264 seconds)
08:13:23 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
08:13:40 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
08:14:42 lortabac joins (~lortabac@2a01:e0a:541:b8f0:5742:827:3cc1:1d6)
08:15:53 deadmarshal joins (~deadmarsh@95.38.113.69)
08:16:04 × bollu quits (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
08:19:37 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
08:19:54 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
08:21:15 × namkeleser quits (~namkelese@101.175.102.188) (Quit: Client closed)
08:23:35 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
08:23:53 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
08:24:32 × jbox quits (~jbox@user/jbox) (Ping timeout: 240 seconds)
08:24:58 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:27:33 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
08:27:51 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
08:28:49 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
08:30:22 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
08:32:02 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
08:32:19 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
08:32:30 × aliosablack quits (~chomwitt@2a02:587:dc16:f200:12c3:7bff:fe6d:d374) (Quit: Leaving)
08:32:45 aliosablack joins (~chomwitt@2a02:587:dc16:f200:12c3:7bff:fe6d:d374)
08:32:59 × aliosablack quits (~chomwitt@2a02:587:dc16:f200:12c3:7bff:fe6d:d374) (Remote host closed the connection)
08:33:17 chomwitt joins (~chomwitt@2a02:587:dc16:f200:12c3:7bff:fe6d:d374)
08:35:20 michalz joins (~michalz@185.246.204.62)
08:36:08 narendra joins (~user@2a02:8109:b63f:ff7c::56c2)
08:38:19 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
08:38:21 × deadmarshal quits (~deadmarsh@95.38.113.69) (Ping timeout: 256 seconds)
08:38:33 gehmehgeh joins (~user@user/gehmehgeh)
08:38:37 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
08:39:46 × narendra quits (~user@2a02:8109:b63f:ff7c::56c2) (Remote host closed the connection)
08:42:26 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:42:53 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
08:43:29 lavaman joins (~lavaman@98.38.249.169)
08:44:05 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:5742:827:3cc1:1d6) (Quit: WeeChat 2.8)
08:46:39 random-jellyfish joins (~random-je@user/random-jellyfish)
08:46:57 chele joins (~chele@user/chele)
08:47:59 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
08:49:39 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
08:49:56 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
08:51:36 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
08:51:50 Farzad joins (~FarzadBek@37.98.108.116)
08:51:53 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
08:53:14 × ThatLinuxGuy quits (~sand49@2001:8003:8431:d200:220b:84b2:a334:cbad) (Quit: Konversation terminated!)
08:56:01 acidjnk_new joins (~acidjnk@p200300d0c7271e27ac7cfecfdd63434d.dip0.t-ipconnect.de)
08:57:29 jstolarek joins (~jstolarek@137.220.120.162)
08:57:31 machinedgod joins (~machinedg@24.105.81.50)
08:57:55 lortabac joins (~lortabac@2a01:e0a:541:b8f0:283f:851a:b183:49fe)
09:00:08 × Domino[m] quits (~dominothe@2001:470:69fc:105::1:271b) (Quit: You have been kicked for being idle)
09:01:14 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
09:02:54 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:03:11 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:03:33 × jonatanb quits (~accio@31-178-144-108.dynamic.chello.pl) (Remote host closed the connection)
09:03:42 jonatanb joins (~accio@31-178-144-108.dynamic.chello.pl)
09:06:18 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
09:08:34 <Square> im planning on saving data using a some sort of serialization. To deserialize i need the same Type implementation is used to save it. Does anyone know of some neat mechanism to accomplish this. I was thinking i could get an hash of the type with Template Haskell but it feels like a cumbersome route.
09:09:31 × random-jellyfish quits (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds)
09:09:51 <Square> To deserialize i need assert the same Type implementation is used that saved it*
09:10:21 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
09:13:55 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
09:14:38 gehmehgeh joins (~user@user/gehmehgeh)
09:15:26 arkeet joins (~arkeet@moriya.ca)
09:16:44 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
09:17:03 × mario quits (~mario@31.147.205.13) (Quit: Leaving)
09:17:28 allbery_b joins (~geekosaur@xmonad/geekosaur)
09:17:28 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
09:17:31 deadmarshal joins (~deadmarsh@95.38.113.69)
09:17:31 allbery_b is now known as geekosaur
09:20:49 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:21:06 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:24:30 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
09:26:13 narendra joins (~user@2a02:8109:b63f:ff7c::56c2)
09:26:28 cfricke joins (~cfricke@user/cfricke)
09:31:35 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:31:53 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:33:37 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:356c:6df7:ff7f:48a3) (Remote host closed the connection)
09:37:49 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:38:07 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:38:11 × chomwitt quits (~chomwitt@2a02:587:dc16:f200:12c3:7bff:fe6d:d374) (Read error: Connection reset by peer)
09:38:18 aliosablack joins (~chomwitt@2a02:587:dc16:f200:12c3:7bff:fe6d:d374)
09:40:10 _bo joins (~bo@79.171.122.236)
09:41:50 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:42:07 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:45:45 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:45:50 × LiaoTao_ quits (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection)
09:45:57 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
09:46:02 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:46:13 LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao)
09:47:53 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:48:11 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:49:51 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:50:08 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:50:12 mario joins (~mario@31.147.205.13)
09:50:14 mario_ joins (~mario@31.147.205.13)
09:52:26 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:52:43 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:54:23 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:54:41 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:54:45 × Profpatsch quits (~Profpatsc@static.88-198-193-255.clients.your-server.de) (Quit: WeeChat 3.3)
09:55:00 Profpatsch joins (~Profpatsc@static.88-198-193-255.clients.your-server.de)
09:56:50 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
09:57:07 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
09:58:32 × mario quits (~mario@31.147.205.13) (Quit: Leaving)
09:58:43 × mario_ quits (~mario@31.147.205.13) (Quit: Leaving)
10:01:24 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
10:01:41 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
10:02:36 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
10:02:38 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
10:02:47 × deadmarshal quits (~deadmarsh@95.38.113.69) (Ping timeout: 256 seconds)
10:03:54 Lord_of_Life_ is now known as Lord_of_Life
10:07:51 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
10:08:09 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
10:08:31 mestre joins (~mestre@191.177.175.57)
10:08:52 × aliosablack quits (~chomwitt@2a02:587:dc16:f200:12c3:7bff:fe6d:d374) (Read error: Connection reset by peer)
10:11:01 xkuru joins (~xkuru@user/xkuru)
10:11:09 deadmarshal joins (~deadmarsh@95.38.113.69)
10:13:28 <arahael> Square: The default answer is json, why doesn't that work for you?
10:13:57 <arahael> Square: (The answer informs the discussion, I suspect)
10:14:02 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
10:14:08 dminuoso is unsure why JSON is always thrown around as "the answer"
10:15:20 <arahael> dminuoso: Pretty sure it's written in the scriptures somewhere. Somewhere.
10:15:22 <[exa]> dminuoso: ask a random internet service nowadays, they always send json
10:15:29 <dminuoso> [exa]: Yes, so?
10:15:45 <dminuoso> Why does that make "JSON" as "the default answer" when it comes to serializing data?
10:15:56 <dminuoso> The default answer should be "what are your requirements?"
10:16:03 <arahael> dminuoso: The point is more that whilst there's many things that may be wrong about JSON, it's a reasonable starting point.
10:16:16 <dminuoso> Asking about requirements is a reasonable starting point.
10:16:23 <arahael> Yeah, that works too. :)
10:16:39 <arahael> But so, too, do "why" questions!
10:17:00 lavaman joins (~lavaman@98.38.249.169)
10:17:42 jakalx joins (~jakalx@base.jakalx.net)
10:20:53 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
10:21:11 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
10:21:29 × cheater quits (~Username@user/cheater) (Ping timeout: 265 seconds)
10:21:38 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
10:21:40 bollu joins (uid233390@id-233390.helmsley.irccloud.com)
10:22:11 × deadmarshal quits (~deadmarsh@95.38.113.69) (Ping timeout: 252 seconds)
10:24:51 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
10:25:09 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
10:25:49 deadmarshal joins (~deadmarsh@95.38.113.69)
10:28:49 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
10:29:07 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
10:32:47 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
10:33:05 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
10:34:02 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:356c:6df7:ff7f:48a3)
10:36:45 × sunarch quits (uid526836@user/sunarch) (Quit: Connection closed for inactivity)
10:38:40 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:356c:6df7:ff7f:48a3) (Ping timeout: 264 seconds)
10:40:01 × kennyd quits (~bc8165b6@cerf.good1.com) (Quit: CGI:IRC)
10:41:22 × arahael quits (~arahael@125-209-128-15.tpgi.com.au) (Ping timeout: 256 seconds)
10:41:59 mmhat joins (~mmh@55d431d8.access.ecotel.net)
10:43:39 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
10:43:57 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
10:45:50 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
10:46:07 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
10:47:20 × nuh^ quits (~nuh@68.101.58.90) (Remote host closed the connection)
10:48:36 trcc joins (~trcc@users-1190.st.net.au.dk)
10:54:19 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
10:54:37 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
10:56:17 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
10:56:35 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:00:02 mario joins (~mario@31.147.205.13)
11:01:12 cheater joins (~Username@user/cheater)
11:01:37 × mario quits (~mario@31.147.205.13) (Client Quit)
11:07:06 yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
11:07:14 ubert joins (~Thunderbi@p200300ecdf0ba218e6b318fffe838f33.dip0.t-ipconnect.de)
11:07:36 × emf quits (~emf@2620:10d:c090:400::5:99c8) (Quit: emf)
11:11:50 euouae joins (~euouae@user/euouae)
11:12:16 × yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 264 seconds)
11:13:04 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:14:44 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:15:01 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:16:27 × xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
11:19:12 <Square> arahael. I dont mean the data, but the datastructure itself? If there is a way to describe the datastructure with json sure, i could hash that.
11:19:12 × euouae quits (~euouae@user/euouae) (Read error: Connection reset by peer)
11:19:43 <Square> data structure / "the type"
11:21:23 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:21:40 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:23:20 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:23:38 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:25:18 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:25:36 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:27:16 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:27:34 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:29:14 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:29:32 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:31:12 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:31:29 × Farzad quits (~FarzadBek@37.98.108.116) (Quit: Leaving)
11:31:30 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:33:10 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:33:14 <geekosaur> so you're looking for a versioned data structure?
11:33:28 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:33:39 <geekosaur> kinda like erlang?
11:35:40 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:35:53 × deadmarshal quits (~deadmarsh@95.38.113.69) (Ping timeout: 252 seconds)
11:35:58 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:37:24 <dminuoso> Square: Id be careful with hashing type information since you might have internal changes that are not representational
11:39:39 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:39:57 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:42:21 <Square> geekosaur, yes its a type versioning scheme. But it relies on developers not changing the scheme in between releases / or they know the implications of doing it. Basically i just want an assert no one tries to deserialize data into a possible modified datastructure. If its easy to accomplish.
11:42:59 <geekosaur> :t Fingerprint
11:43:00 <lambdabot> error:
11:43:00 <lambdabot> Data constructor not in scope: Fingerprint
11:43:03 <geekosaur> bah
11:43:41 <geekosaur> ghc associates fingerprints with data constructors. might be a little too restrictive though as I don't think it's guaranteed stable across compiles
11:44:10 <geekosaur> oh wait, it's not a datacon
11:44:31 dsrt^ joins (~dsrt@68.101.58.90)
11:45:24 mario joins (~mario@31.147.205.13)
11:45:39 <geekosaur> https://downloads.haskell.org/ghc/latest/docs/html/libraries/base-4.16.0.0/Data-Typeable.html#v:typeRepFingerprint
11:46:10 <geekosaur> > typerepFingerprint (typeOf (1::Int))
11:46:11 <lambdabot> error:
11:46:12 <lambdabot> • Variable not in scope: typerepFingerprint :: TypeRep -> t
11:46:12 <lambdabot> • Perhaps you meant one of these:
11:46:24 <geekosaur> @let import Data.Typeable
11:46:25 × mario quits (~mario@31.147.205.13) (Remote host closed the connection)
11:46:25 <lambdabot> Defined.
11:46:28 <geekosaur> > typerepFingerprint (typeOf (1::Int))
11:46:29 <lambdabot> error:
11:46:29 <lambdabot> • Variable not in scope: typerepFingerprint :: TypeRep -> t
11:46:29 <lambdabot> • Perhaps you meant one of these:
11:46:42 <geekosaur> > typeRepFingerprint (typeOf (1::Int))
11:46:44 <lambdabot> b1460030427ac0fa458cbf347f168b53
11:46:54 <geekosaur> % typeRepFingerprint (typeOf (1::Int))
11:46:54 <yahb> geekosaur: b1460030427ac0fa458cbf347f168b53
11:46:59 <geekosaur> oh good
11:48:37 boxscape_ joins (~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de)
11:50:25 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:50:42 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:50:49 <geekosaur> you need a Typeable constraint on your type, but this is just bookkeeping: ghc always makes Typeable representations of types for internal use
11:51:31 <geekosaur> s/on your type/where you make use of this/
11:51:39 <geekosaur> all types have Typeable, as I said
11:51:46 <xerxesphainon[m]> i want to learn more about structures. arrays. data trees. integers. binary. machine code. compilimng. im not sure where to start. i nee to modify a mac os kernal to run without sse4.2 instruction set
11:51:57 <xerxesphainon[m]> im sorry for just walking in you guys
11:56:39 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
11:56:57 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
11:58:28 kuribas joins (~user@ptr-25vy0i9nuu9joot4en6.18120a2.ip6.access.telenet.be)
12:00:36 <geekosaur> this probably isn't the channel for that
12:01:44 <geekosaur> apple doesn't release source for their kernel, or it'd be relatively easy. you'd have to spend a lot of time with machine code dumps identifying the code that not only uses sse4.2 math but also accesses sse4.2 registers, and patch in replacements that emulate them
12:02:57 <geekosaur> and those replacements have to be aware of which registers are available and which have to be spilled to the stack to make room for the emulated opcodes to work with
12:03:10 Midjak joins (~Midjak@may53-1-78-226-116-92.fbx.proxad.net)
12:05:09 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
12:05:11 <geekosaur> hm
12:05:27 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
12:05:28 <geekosaur> @let data A a = A a
12:05:29 <lambdabot> Defined.
12:05:32 <Cajun> im certain there would be quite a few very detailed and very non-haskell textbooks about those things, like compiler design and structures & algorithms
12:05:41 <geekosaur> % let data A a = A a
12:05:41 <yahb> geekosaur: ; <interactive>:31:5: error: parse error on input `data'
12:05:46 <geekosaur> % data A a = A a
12:05:47 <yahb> geekosaur:
12:06:13 <geekosaur> > typeRepFingerprint (typeOf (A (1::Int)))
12:06:14 <lambdabot> 9fdf0d45d7e67ce04c73dcb9ef131cd5
12:06:22 <geekosaur> % typeRepFingerprint (typeOf (A (1::Int)))
12:06:22 <yahb> geekosaur: 04fc6ed32dc1e391c6a42e2f744b75b8
12:06:29 <geekosaur> that's not so hot
12:06:53 <geekosaur> guess Fingerprint won't help with versioned serialization after all :(
12:06:56 <Cajun> is that a ghc version thing?
12:07:32 <geekosaur> dunno
12:08:46 deadmarshal joins (~deadmarsh@95.38.113.69)
12:09:22 <Cajun> > !ghci -V
12:09:23 <lambdabot> <hint>:1:7: error: parse error on input ‘-’
12:09:24 <geekosaur> I was hopeful when Int worked out the same for both but then it occurred to me that it might be too wired-in to vary
12:09:38 <geekosaur> @version
12:09:38 <lambdabot> lambdabot 5.3.0.1
12:09:38 <lambdabot> git clone https://github.com/lambdabot/lambdabot
12:09:43 <geekosaur> bah
12:09:58 <Cajun> thats not a particularly helpful version number lol
12:10:03 <geekosaur> anyway lambdabot isnb't ghci so you can't use things like !
12:10:49 <merijn> > System.Info.compilerVersion
12:10:51 <lambdabot> error:
12:10:51 <lambdabot> Not in scope: ‘System.Info.compilerVersion’
12:10:51 <lambdabot> No module named ‘System.Info’ is imported.
12:10:53 <merijn> hmm
12:10:58 <merijn> how did you add imports again? :p
12:11:01 <Square> geekosaur, sorry. Wandered away a bit there. Interesting. Is it consistent between versions of haskell you think?
12:11:03 <Cajun> > import System.Info
12:11:05 <lambdabot> <hint>:1:1: error: parse error on input ‘import’
12:11:10 <merijn> % System.Info.compilerVersion
12:11:10 <yahb> merijn: Version {versionBranch = [9,0], versionTags = []}
12:11:23 <geekosaur> Square, no, see the later one
12:11:27 <merijn> Cajun: That doesn't work, because lambdabot isn't ghci :p
12:11:34 <geekosaur> (startinbg with "data A a")
12:12:08 <geekosaur> basically Int is wired in so it always generates the same fingerprint. user defined types don't
12:12:34 <geekosaur> @let import System.Info
12:12:35 <lambdabot> Defined.
12:12:37 xkuru joins (~xkuru@user/xkuru)
12:12:42 <geekosaur> > compilerVersion
12:12:44 <lambdabot> Version {versionBranch = [8,10], versionTags = []}
12:12:53 <Cajun> that would probably explain it
12:13:06 <Square> If i find a way to export a schema using this lib https://typedefs.com/ . I think i should be safe.
12:13:28 × deadmarshal quits (~deadmarsh@95.38.113.69) (Ping timeout: 264 seconds)
12:13:57 <Square> I wont have any more complicated types than it can handle.
12:14:00 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
12:15:52 × narendra quits (~user@2a02:8109:b63f:ff7c::56c2) (Ping timeout: 264 seconds)
12:15:55 × justache quits (~justache@user/justache) (Ping timeout: 268 seconds)
12:16:07 × Megant quits (megant@user/megant) (Ping timeout: 260 seconds)
12:17:43 Megant joins (~kaitsu@user/megant)
12:18:37 justache joins (~justache@user/justache)
12:20:27 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
12:20:45 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
12:21:32 × FragByte quits (~christian@user/fragbyte) (Ping timeout: 240 seconds)
12:22:07 FragByte joins (~christian@user/fragbyte)
12:22:21 thevishy joins (~Nishant@2405:201:f005:c007:f92b:9823:fedf:deab)
12:23:19 × justache quits (~justache@user/justache) (Ping timeout: 256 seconds)
12:25:00 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
12:25:17 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
12:27:33 arahael joins (~arahael@203.166.224.240)
12:28:00 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
12:28:11 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
12:28:21 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
12:29:42 narendra joins (~user@2a02:8109:b63f:ff7c::56c2)
12:30:59 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
12:31:00 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
12:32:14 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
12:33:54 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
12:34:10 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
12:36:00 TranquilEcho joins (~grom@user/tranquilecho)
12:38:01 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
12:38:18 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
12:39:58 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
12:40:16 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
12:42:34 justache joins (~justache@user/justache)
12:44:38 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
12:44:48 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
12:47:07 × justache quits (~justache@user/justache) (Ping timeout: 256 seconds)
12:51:03 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
12:51:21 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
12:51:34 × jmorris quits (uid433911@id-433911.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
12:51:49 Farzad joins (~FarzadBek@37.98.108.116)
12:52:12 justache joins (~justache@user/justache)
12:55:01 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
12:55:19 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
12:56:05 Topsi joins (~Tobias@dyndsl-095-033-088-116.ewe-ip-backbone.de)
12:56:40 × justache quits (~justache@user/justache) (Ping timeout: 264 seconds)
12:57:05 deadmarshal joins (~deadmarsh@95.38.113.69)
13:00:27 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
13:02:04 × deadmarshal quits (~deadmarsh@95.38.113.69) (Ping timeout: 264 seconds)
13:02:45 justache joins (~justache@user/justache)
13:05:14 <dminuoso> Mmm, is there a way to gen-bounds on a test-suite?
13:05:41 <dminuoso> Or is copy+pasting the build-depends from the test-suite into an appropriate library build-depends, then running gen-bounds the way?
13:07:11 × justache quits (~justache@user/justache) (Ping timeout: 252 seconds)
13:07:41 yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
13:08:07 fef joins (~thedawn@user/thedawn)
13:08:42 Guest17 joins (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
13:10:22 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
13:10:39 deadmarshal joins (~deadmarsh@95.38.113.69)
13:10:40 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
13:12:20 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
13:12:38 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
13:15:31 <geekosaur> or using an include section to put the build-depends into both, then running gen-bounds?
13:16:04 <dminuoso> Mmm I guess.
13:16:16 <dminuoso> It's the same thing really :)
13:16:34 justache joins (~justache@user/justache)
13:16:36 <geekosaur> aside from not needing to make sure you update both later
13:17:09 <dminuoso> Sure, I mean just commenting in/out that `include` in my executable/library component is more comfortable
13:17:41 <dminuoso> But I guess what I really want is some `cabal add` type of command that implicitly adds the component with a suitable PVP bound on the highest possible version it can find a build plan with.
13:18:19 <dminuoso> otoh such a command would decrease the value of hackage - the bar to adding dependencies better be high. :>
13:20:04 × deadmarshal quits (~deadmarsh@95.38.113.69) (Ping timeout: 264 seconds)
13:20:56 × yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
13:21:07 × alzgh quits (~alzgh@user/alzgh) (Ping timeout: 256 seconds)
13:21:21 lavaman joins (~lavaman@98.38.249.169)
13:23:24 n8ess163 joins (~b@pool-72-80-171-162.nycmny.fios.verizon.net)
13:25:53 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
13:28:57 deadmarshal joins (~deadmarsh@95.38.113.69)
13:32:25 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
13:32:41 slack1256 joins (~slack1256@191.125.99.210)
13:32:43 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
13:33:35 × deadmarshal quits (~deadmarsh@95.38.113.69) (Ping timeout: 256 seconds)
13:33:58 <Hecate> dminuoso: would you still recommend https://github.com/dminuoso/servant-prometheus ?
13:34:07 deadmarshal joins (~deadmarsh@95.38.113.69)
13:34:55 alzgh joins (alzgh@user/alzgh)
13:35:04 <slack1256> Hello. Is GHC 9.0.1 a valid version or is it a "beta" for the 9.x branch? I feel like GHC 9.2.1 was the real first release of the 9.x branch.
13:35:18 <Hecate> slack1256: it's a beta, don't invest in it
13:35:29 <merijn> slack1256: It's not beta, but also, it is :p
13:35:40 <slack1256> I knew it!
13:36:12 <merijn> Even numbered releases are always proper releases, but not all proper releases are as proper as you'd like :p
13:36:31 <merijn> Especially the x.y.1 ones
13:38:03 <dminuoso> Hecate: I think exarkun maintains some up-to-date fork?
13:38:06 <slack1256> So 9.2.1 is also a non proper release?
13:38:07 <slack1256> Damn.
13:38:54 × ubert quits (~Thunderbi@p200300ecdf0ba218e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
13:39:12 ubert joins (~Thunderbi@p200300ecdf0ba218e6b318fffe838f33.dip0.t-ipconnect.de)
13:39:18 <yushyin> i played a bit with 9.2.1, works for me, but no HLS support yet.
13:40:07 <exarkun> Hello what
13:40:29 <exarkun> Oh servant-prometheus, huh
13:40:37 <exarkun> "maintain" might be putting it a little strongly
13:43:09 <dminuoso> Your fork includes the work of kirelagin it seems
13:43:17 <dminuoso> The one I never merged
13:43:29 <dminuoso> Think something came up, and then I forgot all about it
13:43:43 <dminuoso> I really want servant-prometheus to be a thing and be on hackage.
13:44:20 <dminuoso> exarkun: Are there any notable todos on your fork?
13:44:29 <geekosaur> 9.2.1 was intended to be "proper" but some severe codegen bugs in Apple M1 support were found post-release
13:45:14 <geekosaur> aside from that I'd say it's proper
13:45:36 <merijn> slack1256: .1 releases always tend to always have some sleeper bug that gets noticed to late :p
13:45:45 <exarkun> dminuoso: I don't think so. At least, it is working well enough that it is running in my almost-production system and I sort of forgot about it.
13:46:30 <Hecate> dminuoso: ok thanks!
13:48:10 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
13:48:27 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
13:48:32 <slack1256> I wonder, if I use the llvm backend, would I have stability bugs on M1? I know that GHC targets an older/stable version on LLVM.
13:48:58 yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
13:49:13 <geekosaur> llvm should be fine
13:49:19 <geekosaur> and is on 8.10.7
13:49:27 × dsrt^ quits (~dsrt@68.101.58.90) (Ping timeout: 256 seconds)
13:50:04 <geekosaur> native support has sign extension issues at the cmm layer that they're still trying to figure out if they can fix without completely redoing the path from core to cmm
13:50:22 dsrt^ joins (~dsrt@68.101.58.90)
13:51:52 <slack1256> I will try to build our project and see how it goes.
13:52:02 × Typedfern quits (~Typedfern@171.red-83-51-60.dynamicip.rima-tde.net) (Ping timeout: 260 seconds)
13:54:16 × yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 264 seconds)
13:56:14 × n8ess163 quits (~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:59:11 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
13:59:28 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
14:01:13 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 250 seconds)
14:03:35 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
14:03:53 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
14:03:54 DNH joins (~DNH@2a02:8108:1100:16d8:58c0:b83a:3eea:a1cf)
14:05:10 Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
14:05:53 × deadmarshal quits (~deadmarsh@95.38.113.69) (Ping timeout: 256 seconds)
14:08:00 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
14:08:04 burnsidesLlama joins (~burnsides@dhcp168-026.wadham.ox.ac.uk)
14:08:17 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
14:08:45 <xerxesphainon[m]> this is a language
14:08:51 <xerxesphainon[m]> similar to lua
14:08:56 <xerxesphainon[m]> or rubyh
14:09:04 <xerxesphainon[m]> can i get in on this?
14:11:52 <merijn> Of all the languages I'd call Haskell are similar too, Ruby and Lua are *definitely* not ones I'd consider similar :p
14:13:18 lavaman joins (~lavaman@98.38.249.169)
14:13:21 <hpc> ruby does have that whole "function do {code block}" thing going on
14:13:45 <hpc> xerxesphainon[m]: haskell is quite unlike anything you have likely used before
14:13:59 <hpc> https://www.haskell.org/documentation/ can get you started
14:14:34 n8ess163 joins (~b@pool-72-80-171-162.nycmny.fios.verizon.net)
14:15:06 <slack1256> It seems -fllvm is working on the M1 :woah: .
14:17:10 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
14:17:28 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
14:17:29 × n8ess163 quits (~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Client Quit)
14:17:47 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
14:17:53 reumeth joins (~reumeth@user/reumeth)
14:19:24 deadmarshal joins (~deadmarsh@95.38.113.69)
14:22:51 × ubert quits (~Thunderbi@p200300ecdf0ba218e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
14:22:56 yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
14:23:14 ubert joins (~Thunderbi@p200300ecdf0ba218e6b318fffe838f33.dip0.t-ipconnect.de)
14:25:41 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
14:25:59 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
14:26:37 <kuribas> hpc: I remember being amazed by ruby code blocks, until I realised they are just lambdas.
14:27:06 <merijn> I tried to make a typed python that included those kinda code blocks
14:27:24 <merijn> Quickly realised it was basically 'IO ()' and I was reinventing Haskell, poorly. So I stopped :p
14:27:59 × yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
14:28:40 max22- joins (~maxime@2a01cb0883359800844aee1a010c5cf0.ipv6.abo.wanadoo.fr)
14:30:25 epolanski joins (uid312403@id-312403.helmsley.irccloud.com)
14:33:39 × alzgh quits (alzgh@user/alzgh) (Ping timeout: 256 seconds)
14:37:32 alzgh joins (alzgh@user/alzgh)
14:38:10 <kuribas> merijn: haskell where everything is IO (), so sml or ocaml?
14:39:02 × deadmarshal quits (~deadmarsh@95.38.113.69) (Ping timeout: 252 seconds)
14:39:32 <Hecate> merijn: wise
14:40:27 × Guest17 quits (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds)
14:40:43 <hpc> kuribas: yeah, they aren't particularly special but it's nice to see another language make it so easy to use them
14:41:32 <hpc> trying the same style in python will take years off your life :P
14:42:00 <kuribas> the python community is actually discouraging function style.
14:42:06 <kuribas> functional style.
14:42:11 <hpc> yep
14:42:58 <kuribas> "there is one way to do it" is so stupid, especially if that one way is completely broken.
14:43:26 <boxscape_> what kind of thing is meant by "functional style python"?
14:44:14 <boxscape_> but yeah "there is one way to do it" kind of means you're eternally stuck with the first idea you had, even if better ideas come along later
14:44:26 <hpc> it's ironic too, because ruby is the "everything is an object" ideal that java always wished it could be
14:44:51 <kuribas> boxscape_: using HOFs
14:44:59 <boxscape_> I see
14:47:25 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:47:25 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
14:47:25 wroathe joins (~wroathe@user/wroathe)
14:49:09 <jneira[m]> Smalltalk always will be the lost paradise of oop
14:49:23 jkaye joins (~jkaye@2601:281:8300:7530:70fe:f118:dc91:2d9c)
14:52:07 zer0bitz joins (~zer0bitz@dsl-hkibng31-54fabc-15.dhcp.inet.fi)
14:54:35 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
14:54:53 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
14:56:33 <merijn> kuribas: No, where only some things were IO ()
14:58:33 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
14:58:51 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
14:59:04 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 264 seconds)
14:59:42 × Farzad quits (~FarzadBek@37.98.108.116) (Quit: Leaving)
15:02:19 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
15:03:47 jgeerds joins (~jgeerds@55d45b75.access.ecotel.net)
15:04:17 yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
15:04:23 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
15:05:21 trcc_ joins (~trcc@185.45.22.131)
15:05:26 × slack1256 quits (~slack1256@191.125.99.210) (Ping timeout: 252 seconds)
15:05:53 img joins (~img@user/img)
15:07:53 × DNH quits (~DNH@2a02:8108:1100:16d8:58c0:b83a:3eea:a1cf) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:08:44 × trcc quits (~trcc@users-1190.st.net.au.dk) (Ping timeout: 252 seconds)
15:09:11 × acidjnk_new quits (~acidjnk@p200300d0c7271e27ac7cfecfdd63434d.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
15:09:13 × fef quits (~thedawn@user/thedawn) (Quit: Leaving)
15:10:13 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
15:10:31 mc47 joins (~mc47@xmonad/TheMC47)
15:10:34 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
15:10:34 DNH joins (~DNH@2a02:8108:1100:16d8:58c0:b83a:3eea:a1cf)
15:12:11 × trcc_ quits (~trcc@185.45.22.131) (Ping timeout: 256 seconds)
15:13:34 fr33domlover joins (~fr33@2.53.150.205)
15:14:02 curiousgay joins (~curiousga@77-120-141-90.kha.volia.net)
15:14:17 × yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Remote host closed the connection)
15:14:52 yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
15:15:20 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:15:20 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
15:15:20 wroathe joins (~wroathe@user/wroathe)
15:19:44 × yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
15:20:04 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 264 seconds)
15:25:11 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
15:25:29 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
15:27:09 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
15:27:16 × rkrishnan quits (~user@122.171.76.46) (Ping timeout: 264 seconds)
15:27:20 Sgeo joins (~Sgeo@user/sgeo)
15:27:27 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
15:29:51 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
15:31:12 x88x88x joins (~cheeg@gateway/vpn/pia/x88x88x)
15:35:57 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
15:36:15 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
15:37:55 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
15:38:13 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
15:38:39 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:356c:6df7:ff7f:48a3)
15:40:19 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
15:40:37 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
15:42:17 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
15:42:35 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
15:43:28 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:356c:6df7:ff7f:48a3) (Ping timeout: 264 seconds)
15:44:36 ec joins (~ec@gateway/tor-sasl/ec)
15:45:35 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
15:46:57 yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
15:47:14 × ubert quits (~Thunderbi@p200300ecdf0ba218e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
15:47:32 ubert joins (~Thunderbi@p200300ecdf0ba218e6b318fffe838f33.dip0.t-ipconnect.de)
15:48:11 ec_ joins (~ec@gateway/tor-sasl/ec)
15:48:46 ystael joins (~ystael@user/ystael)
15:49:30 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
15:50:45 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
15:51:24 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.3)
15:51:52 × yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 264 seconds)
15:53:23 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
15:54:55 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
15:55:32 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
15:57:08 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
15:57:26 × jgeerds quits (~jgeerds@55d45b75.access.ecotel.net) (Remote host closed the connection)
15:57:37 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
15:58:04 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
15:59:12 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
15:59:38 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:00:25 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
16:01:12 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:01:41 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:03:15 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:03:41 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:05:12 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:05:40 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:06:22 fef joins (~thedawn@user/thedawn)
16:07:13 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:07:39 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:09:12 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:09:38 n8ess163 joins (~b@pool-72-80-171-162.nycmny.fios.verizon.net)
16:09:44 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:11:19 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:11:45 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:11:48 × n8ess163 quits (~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Client Quit)
16:12:29 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
16:12:47 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
16:13:16 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:13:47 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:15:20 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:15:47 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:17:22 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:17:49 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:18:14 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
16:19:23 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:19:48 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:21:20 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:21:51 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:22:08 slack1256 joins (~slack1256@191.126.99.210)
16:22:27 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
16:22:55 × stefan-_ quits (~cri@42dots.de) (Ping timeout: 250 seconds)
16:23:04 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds)
16:23:25 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:23:52 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Remote host closed the connection)
16:23:54 × hololeap quits (~hololeap@user/hololeap) (Ping timeout: 276 seconds)
16:24:42 hololeap joins (~hololeap@user/hololeap)
16:24:43 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
16:25:24 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:25:47 <dsal> Today's dumb thing everybody should do: https://www.haskellforall.com/2015/09/how-to-make-your-haskell-code-more.html
16:25:56 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:26:38 <dsal> I guess everybody should ignore the second paragraph and immediately do all of these things.
16:27:13 stefan-_ joins (~cri@42dots.de)
16:27:33 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:27:58 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:28:39 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:283f:851a:b183:49fe) (Quit: WeeChat 2.8)
16:29:34 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:30:00 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:30:02 × xff0x quits (~xff0x@2001:1a81:527f:8300:57da:badd:210c:d109) (Ping timeout: 240 seconds)
16:30:23 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
16:31:08 xff0x joins (~xff0x@2001:1a81:527f:8300:4a2b:7ccd:5352:f2b5)
16:31:30 <kuribas> learning ($) takes literally 1 minute
16:31:34 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:31:36 <kuribas> if even...
16:31:43 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:31:59 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:32:40 × narendra quits (~user@2a02:8109:b63f:ff7c::56c2) (Ping timeout: 264 seconds)
16:33:10 <boxscape_> kuribas yes, but if you're trying to write code meant to be read by non-Haskellers (as in the blog post), your readers don't know where to look to learn it
16:33:13 <dsal> The actual point of the article seems to be that if you want to give a small example of something in Haskell for people who don't know Haskell, there are a few things you should do that will make it a bit more accessible.
16:33:30 <dsal> The way it was presented internally is "these are all good ideas and we should write code like this!"
16:33:33 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:34:01 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:34:19 <kuribas> boxscape_: point taken :)
16:34:37 <kuribas> avoiding ($) may even seduce lispers :)
16:34:53 <dsal> I think I reached my limit here. This dude might be good at a few things, but he's a terrible technical leader and seems to be unable to work with anyone who doesn't just believe everything he says without explanation. He can have those people, I guess.
16:35:33 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:35:34 zmt00 joins (~zmt00@user/zmt00)
16:36:06 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:36:14 <kuribas> Most of these are decent points, if not taken so extreme.
16:36:17 <c_wraith> yeah, the article is weird in that all the explanations refer to beginners, yet the heading doesn't say a thing about it
16:36:50 <c_wraith> it's not titled "how to introduce haskell to a new audience"
16:36:57 <boxscape_> hm? the headline says "How to make your Haskell code more readable to non-Haskell programmers ", that seems fine
16:36:59 <c_wraith> that advice would be good with that title!
16:37:11 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
16:37:28 <c_wraith> Oh, huh. I guess I did that thing where I ignore the title because I expect the body to contain all relevant info
16:37:35 <boxscape_> :D
16:37:37 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:37:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:37:54 <c_wraith> But yeah, that's not advice for programming in Haskell
16:38:02 <c_wraith> It's advice for introducing the language
16:38:07 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:38:12 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
16:38:13 <kuribas> c_wraith: even toned down a bit it's decent advice IMO...
16:38:15 × _bo quits (~bo@79.171.122.236) (Read error: Connection reset by peer)
16:38:16 slowButPresent joins (~slowButPr@user/slowbutpresent)
16:38:29 <kuribas> like, use do notation if that improves readability.
16:38:34 <pragma-> Imagine showing a program full of Lens operators to someone largely unfamiliar with Haskell.
16:38:35 <dsal> Most readability things are subjective.
16:38:59 <boxscape_> pragma- depending on *which* lens operators we're talking about that could go over quite well actually
16:39:00 <dsal> do notation doesn't always improve readability for someone familiar with Haskell.
16:39:08 <pragma-> Someone told me "Oh, just read the program and simply guess what the operators do! It's not hard."
16:39:10 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
16:39:33 <c_wraith> I define a bunch of local operators in my own code, because they often result in cleaner syntax.
16:39:33 ec_ joins (~ec@gateway/tor-sasl/ec)
16:39:39 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:39:45 <c_wraith> But they have the advantage of being defined adjacent to usage
16:39:55 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:40:06 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:40:11 <kuribas> I tend to avoid all lens operators.
16:40:24 <boxscape_> (e.g. `totalCost += company^.ceo.salary` is quite readable)
16:40:24 <dsal> I've got code that uses do notation specifically so they can have a `let` binding without `in` in the form of `let someVariableName = someFunc someArg` just so they can then have a `case someVariableName of`. Like... Hey, you know, if you didn't name the result of that function and its argument (which is pretty obvious), you wouldn't need the let and the do would be redundant and this whole thing would just be a simple case.
16:40:35 × reumeth quits (~reumeth@user/reumeth) (Ping timeout: 252 seconds)
16:41:22 kmein joins (~weechat@user/kmein)
16:41:26 × bollu quits (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
16:41:37 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:41:40 <dsal> Some people really believe that `let theResultOfFunctionWithArg = function arg` somehow makes something more readable.
16:41:50 <boxscape_> :/
16:42:10 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:42:18 lbseale joins (~ep1ctetus@user/ep1ctetus)
16:42:47 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
16:42:49 <geekosaur> go back to Java :(
16:43:27 lbseale_ joins (~ep1ctetus@user/ep1ctetus)
16:43:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:43:42 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:44:09 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:44:23 <dsal> I mean, there *are* points where you should probably name a few intermediate steps if chains get large. But naming something that's basically already named (just with a space in it) doesn't add clarity. Extra words make code harder to read.
16:44:32 <dsal> That last point seems controversial, so it's probably subjective.
16:44:48 <c_wraith> map theFunctionToApplyToTheElementsOfTheList (theFirstElementOfTheList:theRestOfTheList) = ...
16:45:11 <dsal> Yeah. I see some of that stuff. Go back to objective c. :)
16:45:41 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
16:46:07 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
16:46:26 gehmehgeh joins (~user@user/gehmehgeh)
16:46:48 <dsal> I wish I could find this one example I had. There were two identifiers in scope that were like `someVariableResultingFromACallToCatfunction` and `someVariableResultingFromACallToCarFunction`
16:47:04 × lbseale quits (~ep1ctetus@user/ep1ctetus) (Ping timeout: 264 seconds)
16:47:10 <kuribas> boxscape_: yeah, the state operators are somewhat more readable than the rest.
16:47:10 <dsal> Super long multiword variables with just a letter or two somewhere in the middle distinguishing them.
16:47:31 <dsal> kuribas: the state operators are the uncanny valley of Haskell.
16:48:19 lbseale_ is now known as lbseale
16:54:12 masterbuilder joins (~user@user/masterbuilder)
16:54:36 × jinsun quits (~quassel@user/jinsun) (Read error: Connection reset by peer)
16:55:08 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:57:47 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
16:57:49 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
16:58:05 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
16:58:13 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:356c:6df7:ff7f:48a3)
16:59:36 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
16:59:53 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
17:00:44 reumeth joins (~reumeth@user/reumeth)
17:03:47 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
17:09:29 yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
17:09:47 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
17:10:01 narendra joins (~user@2a02:8109:b63f:ff7c::56c2)
17:11:19 arjun joins (~user@user/arjun)
17:13:25 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
17:13:43 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
17:14:08 × yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
17:17:23 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
17:17:29 zebrag joins (~chris@user/zebrag)
17:17:41 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
17:18:04 × narendra quits (~user@2a02:8109:b63f:ff7c::56c2) (Ping timeout: 268 seconds)
17:20:43 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
17:21:00 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
17:21:23 × fr33domlover quits (~fr33@2.53.150.205) (Ping timeout: 256 seconds)
17:23:20 deadmarshal joins (~deadmarsh@95.38.113.69)
17:23:35 × jlamothe quits (~jlamothe@198.251.61.229) (Ping timeout: 250 seconds)
17:25:15 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
17:29:47 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds)
17:31:54 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3)
17:32:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
17:33:38 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
17:33:58 × Skyfire quits (~pyon@user/pyon) (Quit: brb)
17:34:43 n8ess163 joins (~b@pool-72-80-171-162.nycmny.fios.verizon.net)
17:34:52 unyu joins (~pyon@user/pyon)
17:35:48 × n8ess163 quits (~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Client Quit)
17:36:20 × DNH quits (~DNH@2a02:8108:1100:16d8:58c0:b83a:3eea:a1cf) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:45:19 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
17:45:52 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
17:45:56 ChaiTRex joins (~ChaiTRex@user/chaitrex)
17:46:23 gehmehgeh joins (~user@user/gehmehgeh)
17:50:21 jlamothe joins (~jlamothe@198.251.61.229)
17:51:11 × xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
17:53:04 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
17:53:41 n8ess163 joins (~b@pool-72-80-171-162.nycmny.fios.verizon.net)
17:53:53 emf joins (~emf@2620:10d:c090:400::5:9a5b)
17:54:39 <tito> why does GHC complain about tab indentation by default?
17:55:12 × n8ess163 quits (~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Client Quit)
17:55:17 <tito> is it because of compatibility with the Haskell report grammar or something like that? tabs and spaces should be quite equivalent
17:55:34 <Hecate> I think there's a flag that's default but you can disable it
17:55:36 <monochrom> Because most editors lie about tabs.
17:55:58 <tito> Hecate: I know, it's -fno-warn-tabs I think
17:56:20 <tito> so the rationale is that most editors mess up with tabs?
17:56:22 <yushyin> many users, especially newcomers, did not get the layout and tabs right, so this warning became default at some point.
17:56:43 <monochrom> Tabs should mean column 8*n+1, but editors lie that they can mean whatever number of spaces you want. Well then GHC is not telepathic.
17:57:16 DNH joins (~DNH@2a02:8108:1100:16d8:58c0:b83a:3eea:a1cf)
17:57:19 <geekosaur> some editors use fixed 4 or fixed 5 or 5*n+1 or …
17:57:38 <geekosaur> or just indent to the closest word-like thing on the preceding line
17:57:46 <monochrom> In an ideal world, people would regard those editors buggy and reject them. But this is not an ideal world.
17:57:46 <tito> monochrom: Okay, editors are customizable - but what's the problem? If all indentation is made using tabs, there wouldn't be any ambiguity
17:58:19 <tito> GHC doesn't care if everything is indented by 2, or 4, or 8 spaces - it shouldn't care if everything is indented by a tab too
17:58:34 <yushyin> works fine then, i've used ghc a long time with only tabs
17:58:41 <geekosaur> except that it does care, because of layout
17:58:46 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds)
17:59:01 <tito> I'm sorry if this looks like some kind of complain, I'm just trying to understand why the default is like this
17:59:02 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
17:59:08 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
17:59:15 <tito> geekosaur: could you provide me with an example?
17:59:16 <monochrom> Here is an example.
17:59:37 <monochrom> My 1st line is "main = do print 0"
17:59:51 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:00:00 <monochrom> My 2nd line is "print 1" aligned with "print 0". This means I need 10 spaces.
18:00:38 <monochrom> Someone set their tab to "mean" 4 spaces. So they use 2 tabs, 2 spaces.
18:00:42 waleee joins (~waleee@h-82-196-111-63.NA.cust.bahnhof.se)
18:00:57 <monochrom> Now GHC sees 18 spaces.
18:01:00 <tito> But the point isn't to align "print 1" with "print 0", right? You can indent it with 4 spaces for example and it would work equally well
18:01:05 <arjun> 2tab2furious
18:01:18 <tito> The point is to distinguish different levels of indentation
18:01:48 <dsal> If tabs aren't for alignment, why do they exist?
18:01:49 <monochrom> The point is to align "print 1" with "print 0".
18:02:08 <monochrom> At least, the point of Haskell 2010 layout rules.
18:02:31 <[exa]> tito: the situation gets complicated pretty easily, imagine you have 2 nested `do` blocks, and the tail of the outer one aligns with the inner "do" with one tab setting, and with the outer "do" with another tab setting
18:02:52 × thevishy quits (~Nishant@2405:201:f005:c007:f92b:9823:fedf:deab) (Quit: Leaving)
18:03:32 <tito> [exa], monochrom I see, thank you
18:03:33 <arjun> dsal: ancient artifact to save file space i reckon? get the illusion of 8 \s characters for the price of 1 \t characters
18:04:25 <monochrom> I think it goes deeper than that. Tabbing came from typewriters.
18:04:28 × jkaye quits (~jkaye@2601:281:8300:7530:70fe:f118:dc91:2d9c) (Ping timeout: 264 seconds)
18:04:44 <monochrom> Everything weird about terminals traces back to typewriters.
18:04:44 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
18:04:49 <[exa]> tito: the enforcement of spaces is a design choice that prevents the other design choice of going through the complicated obscure way of enforcing mixed tab/space prefix format to do it completely right
18:04:50 <dsal> Typewriters were notorious for having very little RAM.
18:05:28 <tito> [exa], I see, it makes sense
18:05:32 <[exa]> in comparison, setting your editor to "just do spaces" is pretty compatible choice, well understood by newbies :D
18:05:47 <tito> I didn't think that the Haskell grammar was alignment-based, my bad
18:06:11 <arjun> i watched a documentary on a typewriter store, it had tom hanks AND john mayer
18:06:14 <[exa]> you can do even without alignment using { .. ; .. }
18:06:24 <tito> And actually I got into some mysterious alignment issues some time ago because I didn't know the Haskell report, I'll go and check it out
18:06:24 <[exa]> but people tend to do alignment, looks neater
18:06:54 <[exa]> tbh I've got a parser hidden somewhere from the university years that does the tab/space thing right
18:07:52 <[exa]> turned out that to enjoy the whole thing properly, your text editor would need to be plain magic
18:07:55 n8ess163 joins (~b@pool-72-80-171-162.nycmny.fios.verizon.net)
18:08:02 × n8ess163 quits (~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Client Quit)
18:08:15 <[exa]> (and completely avoid the "tab is N spaces" idea)
18:10:08 jkaye joins (~jkaye@2601:281:8300:7530:7309:f677:c771:6123)
18:12:14 evanrelf joins (3addc196af@2604:bf00:561:2000::f0)
18:14:33 <geekosaur> you can even observe this in vim, by setting hardtabs to something other than 8
18:15:03 lavaman joins (~lavaman@98.38.249.169)
18:15:20 <geekosaur> (vim being one of the smarter editors when it comes to tabs; it keeps its internal notion of tabs separate from the one it exposes to the outside world)
18:16:21 × arahael quits (~arahael@203.166.224.240) (Ping timeout: 256 seconds)
18:18:01 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
18:18:03 justsomeguy joins (~justsomeg@user/justsomeguy)
18:18:19 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
18:19:35 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
18:21:12 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
18:21:30 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
18:21:39 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:356c:6df7:ff7f:48a3) (Remote host closed the connection)
18:23:54 jakalx joins (~jakalx@base.jakalx.net)
18:24:05 n8ess163 joins (~b@pool-72-80-171-162.nycmny.fios.verizon.net)
18:24:12 × n8ess163 quits (~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Client Quit)
18:26:50 × mbuf quits (~Shakthi@223.184.125.58) (Quit: Leaving)
18:27:37 yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
18:29:01 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
18:29:23 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
18:32:13 × yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
18:33:42 <justsomeguy> Is it possible in theory to express all control flow using map/fold alone, rather than direct recursion?
18:34:20 <dsal> You can map with fold.
18:34:26 <dminuoso> Depending on the type.
18:34:49 <boxscape_> say you want a function that does the same thing forever - to do this with a fold you need to first construct an infinite list, for which you need recursion
18:34:50 arahael joins (~arahael@27-32-144-20.tpgi.com.au)
18:34:56 <slack1256> justsomeguy: Not sure if *all* but pretty much yeah.
18:35:10 <tomsmeding> justsomeguy: what fold exactly are you talking about?
18:35:20 <tomsmeding> the 'foldr' from Data.Foldable?
18:35:44 <dsal> :t fold
18:35:45 <lambdabot> (Foldable t, Monoid m) => t m -> m
18:35:50 <tomsmeding> if so, then no, you can't express a map over some weird tree structure, because when using foldr you implicitly flatten the structure to a list
18:35:59 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:36:01 zincy_ joins (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
18:36:38 arjun parts (~user@user/arjun) (ERC 5.4.1 (IRC client for GNU Emacs 29.0.50))
18:37:05 <dsal> I don't know if there's a name for an anamorphism followed by a catamorphism, but you could always do that with the tree.
18:37:13 <tomsmeding> dsal: same thing, doesn't allow you to distinguish between Node (Node (Leaf 1) (Leaf 2)) (Leaf 3) and Node (Leaf 1) (Node (Leaf 2) (Leaf 3))
18:38:03 <tomsmeding> (assuming your monoid is indeed associative -- a more complex example works for nonassociative "monoids")
18:38:21 <dsal> Sure, a functor map makes sense there, but I'm not convinced you *can't* do it, just that it might be very expensive and unreadable.
18:39:01 <tomsmeding> data WeirdTree a = List [WeirdTree a] | Node (WeirdTree a) (WeirdTree a) | Leaf a
18:39:07 <tomsmeding> with the obvious Functor and Foldable instances
18:39:41 <tomsmeding> you're not going to be able to distinguish List [Leaf 1, Leaf 2] and Node (Leaf 1) (Leaf 2) using 'fold'
18:39:42 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:356c:6df7:ff7f:48a3)
18:39:47 <shapr> map preserves structure, fold flattens and reduces ... I still don't know of laws for changing shape like filter. I've heard of witherable, but does it have real laws?
18:39:48 <dminuoso> justsomeguy: A generalized form of "can represent all control flow" is free monads.
18:39:58 <tomsmeding> (granted, dumb example)
18:40:21 <dminuoso> shapr: Yes
18:40:26 <tomsmeding> also: algebraic folds, also called Church encoding
18:40:28 <dminuoso> mapMaybe (Just . f) = fmap f
18:40:31 × kilolympus quits (~kilolympu@31.205.200.235) (Quit: Quitting IRC :()
18:40:31 <dsal> tomsmeding: Sure, it makes sense. I'm just thinking it's possible to encode that into the fold and then unfold it again. Not that you should.
18:40:42 <dminuoso> wither (Identity . f) = Identity . mapMaybe f
18:40:45 <dminuoso> t . wither f ≡ wither (t . f)
18:40:50 <dminuoso> And some more
18:40:55 <dminuoso> https://hackage.haskell.org/package/witherable-0.4.2/docs/Data-Witherable.html#t:Witherable
18:41:25 <tomsmeding> dsal: but you can't, right? fold f (List [Leaf 1, Leaf 2]) = f 1 <> f 2 = fold f (Node (Leaf 1) (Leaf 2)) -- there's nothing you can encode anywhere as far as I can see
18:41:31 <justsomeguy> So, for context, the reason I ask about this is because I've been thinking about whether eliminating as much control flow as possible would make my code easier to read. One idea was to replace all direct recursion with HOFs. But there seem to be trade-offs associated with that. ...and recursive function calls are not only control-flow, but also represent data-flow in the form of changing argument
18:41:34 <justsomeguy> values.
18:41:50 <tomsmeding> "easier to read" no.
18:41:57 <dminuoso> justsomeguy: I find separating is the key, not abstracting away
18:42:10 <shapr> dminuoso: sounds like I need to do more reading on witherable
18:42:16 × deadmarshal quits (~deadmarsh@95.38.113.69) (Ping timeout: 264 seconds)
18:42:53 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
18:43:13 <tomsmeding> justsomeguy: eliminating direct recursion in favour of HOF might _shorten_ your code, but in many cases (but not all) and for many people (but not all), that will actually harm readability
18:43:36 <tomsmeding> exceptions include: stuff like 'compose = foldr (.) id', where using direct recursion is really too verbose (in my personal opinion)
18:44:13 <dsal> tomsmeding: I'm not 100% sure I can't. I'm fairly sure it's not worth the effort to try, though. :)
18:44:23 <tomsmeding> :)
18:44:37 <monochrom> readability depends on the reader too
18:44:49 <monochrom> Also I hate that word. I use "comprehensible".
18:44:54 <tomsmeding> hence the second "(but not all)" :)
18:45:34 <dsal> foldr is better when your code otherwise is reinventing foldr. Sometimes, expressing your thing in terms of recursion is better.
18:45:35 <dminuoso> https://pbs.twimg.com/media/FDLRPTFWEAUdqwv.jpg
18:45:41 <dminuoso> ^- this diagram applies to haskellers just as much.
18:46:13 <tomsmeding> with nuance :p
18:46:36 <justsomeguy> Reminds me of this quote I like ... "first you learn the value of abstraction, then you learn the cost of abstraction, then you're ready to engineer" ~ Kent Beck
18:47:04 <monochrom> And then "simple" is also paradoxical because different people actually give it opposite meanings.
18:47:46 mario joins (~mario@31.147.205.13)
18:48:01 <EvanR> haha I scrolled pretty to far to see what it is you guys are really talking about, then gave up
18:48:07 <dminuoso> monochrom: To me that dual meaning is hidden in that diagram as well, in the sense that "simple code" by experts differs very much from "simple code" by newcomers.
18:48:14 <sm> Kent Beck++
18:48:30 <EvanR> what topic could inspire such generalized abstract discussion
18:48:31 <monochrom> Ah, nice.
18:48:47 <EvanR> laws for filterable?
18:48:51 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
18:48:52 <monochrom> And yeah the Kent Beck quote is golden.
18:48:53 <slack1256> For HLS, where can I specify that is it safe to run ghc with '-j4'?
18:49:04 <tomsmeding> EvanR: justsomeguy asked a question coming from an attempt to make code more readable by turning direct recursion into higher-order functions
18:49:06 <dminuoso> EvanR: https://hackage.haskell.org/package/witherable-0.4.2/docs/Data-Witherable.html#t:Filterable
18:49:10 <tomsmeding> and certain #haskell'ers rebelled
18:49:37 <justsomeguy> Good synopsis tomsmeding, I was struggling to condense my question down.
18:49:41 <EvanR> those two choices are in an eternal cosmic war
18:49:52 <EvanR> just use recursion, just use a recursion combinator
18:49:57 <dminuoso> I dont think recursion schemes ever succeeded beyond peeking curiosity and boredom?
18:50:26 <dminuoso> Nobody without an academic degree can read your code anymore, and neither can you half a year from now. And your performance is down the drain too
18:50:30 <EvanR> map, fold, scan, mapAccum, etc are great
18:50:30 <geekosaur> piquing, maybe, but that's my understanding as well
18:50:31 ec_ joins (~ec@gateway/tor-sasl/ec)
18:50:49 <dsal> The larger problem with recursion schemes is that it doesn't work with your data structures.
18:50:56 × jstolarek quits (~jstolarek@137.220.120.162) (Ping timeout: 252 seconds)
18:51:01 <dminuoso> geekosaur: Ah indeed. It's one of those words I will probably never get right.
18:51:15 <EvanR> but the combinator for what you want doesn't always exist
18:51:22 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
18:51:36 <EvanR> or it would be clearer using recursion
18:52:19 <dminuoso> traverse is and remains my favourite combinator. :)
18:52:20 × justache quits (~justache@user/justache) (Read error: Connection reset by peer)
18:52:30 × burnsidesLlama quits (~burnsides@dhcp168-026.wadham.ox.ac.uk) (Remote host closed the connection)
18:52:47 <slack1256> let og_lens = traverse
18:53:16 justache joins (~justache@user/justache)
18:54:38 x88x88x_ joins (~cheeg@gateway/vpn/pia/x88x88x)
18:56:01 × x88x88x quits (~cheeg@gateway/vpn/pia/x88x88x) (Ping timeout: 256 seconds)
18:56:03 × zincy_ quits (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection)
18:57:15 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
18:57:33 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
18:58:10 × max22- quits (~maxime@2a01cb0883359800844aee1a010c5cf0.ipv6.abo.wanadoo.fr) (Ping timeout: 265 seconds)
18:59:05 bollu joins (uid233390@id-233390.helmsley.irccloud.com)
19:00:34 <EvanR> I still don't know how to use traverse xD
19:00:46 <EvanR> :t traverse
19:00:47 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
19:02:15 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
19:02:35 <tomsmeding> Perform a computation on each element of a structure; then you get back a computation which returns the transformed structure
19:02:40 <monochrom> If you know mapM, it's similar.
19:02:57 <tomsmeding> Important property being that the structure is maintained, because it's basically fmap on steroids
19:03:11 <tomsmeding> traverse is to fmap as mapM is to map?
19:03:16 <monochrom> To a large extent, you can start with t=[]: (a -> f b) -> [a] -> f [b]
19:03:59 <monochrom> No, mapM was simply s/Applicative/Monad/ because Applicative did not exist back then.
19:04:01 <boxscape_> tomsmeding I think technically traverse is to fmap as mapM is to liftM
19:04:08 <tomsmeding> (except mapM uses >>= and traverse uses <*>, which should not matter if your instances are law-abiding)
19:04:27 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
19:04:50 <tomsmeding> TIL mapM works on traversables
19:04:55 <monochrom> It looks like map because SML and Scheme's map are always living in IO and corresponds to Haskell's mapM.
19:05:04 <boxscape_> tomsmeding mapM is actually defined as `mapM = traverse` in the Prelude
19:05:20 <EvanR> I knew mapM = traverse
19:05:31 <EvanR> that's cool
19:06:05 <tomsmeding> Ah no it was sequence_ which is not just sequenceA_
19:06:10 <EvanR> visible each element of the t a, get an f b, and combine it all with <*> ?
19:06:20 <EvanR> s/visible/visit/
19:06:27 <tomsmeding> Basically
19:06:58 <monochrom> For each Handle, read the 1st line: traverse (\h -> hGetLine h) my_list_of_handles
19:07:19 <monochrom> (and return the list of lines)
19:07:33 trcc joins (~trcc@2-104-60-169-cable.dk.customer.tdc.net)
19:07:49 <tomsmeding> traverse f (Node (Leaf 1) (Node (Leaf 2) (Leaf 3))) = Node <$> (Leaf <$> f 1) <*> (Node <$> (Leaf <$> f 2) <*> (Leaf <$> f 3))
19:07:50 <EvanR> how does the process get started
19:07:58 <EvanR> where does empty list come from
19:08:14 <EvanR> or empty traversable
19:08:17 <monochrom> Uh that's how it ends, not starts?
19:08:17 ec_ joins (~ec@gateway/tor-sasl/ec)
19:08:37 <monochrom> But traverse _ [] = pure []
19:08:37 × alzgh quits (alzgh@user/alzgh) (Remote host closed the connection)
19:09:01 <EvanR> the empty comes from the traversable type ok
19:09:04 <tomsmeding> EvanR: just fmap it, and then combine actions upwards using <*>
19:09:12 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
19:09:36 <EvanR> > traverse (\x -> Identity x) (Just '0')
19:09:37 <lambdabot> Identity (Just '0')
19:09:42 <EvanR> > traverse (\x -> Identity x) Nothing
19:09:43 <lambdabot> Identity Nothing
19:09:57 zincy_ joins (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
19:10:11 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
19:10:44 <EvanR> started / ended, whatever this is haskell xD
19:11:34 × x88x88x_ quits (~cheeg@gateway/vpn/pia/x88x88x) (Quit: Using Circe, the loveliest of all IRC clients)
19:11:50 × mario quits (~mario@31.147.205.13) (Quit: Leaving)
19:11:50 × fef quits (~thedawn@user/thedawn) (Quit: Leaving)
19:12:31 × zincy_ quits (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection)
19:14:37 x88x88x joins (~cheeg@gateway/vpn/pia/x88x88x)
19:15:25 alzgh joins (~alzgh@user/alzgh)
19:15:43 × x88x88x quits (~cheeg@gateway/vpn/pia/x88x88x) (Read error: Connection reset by peer)
19:16:26 mei joins (~mei@user/mei)
19:18:37 x88x88x joins (~cheeg@gateway/vpn/pia/x88x88x)
19:19:17 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3)
19:20:20 mvk joins (~mvk@2607:fea8:5cc1:fa00::4702)
19:20:46 <EvanR> erhm what happened with Monoid and Semigroup
19:20:48 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
19:20:48 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
19:20:48 wroathe joins (~wroathe@user/wroathe)
19:20:59 <EvanR> I can't just define mappend anymore?
19:21:27 <boxscape_> you have to define (<>)
19:21:29 <EvanR> I tried to define (<>) as mappend and it didn't work
19:21:29 <monochrom> I think you still can.
19:22:01 <tomsmeding> Which version of ghc?
19:22:18 <EvanR> 8.10.7
19:22:43 <monochrom> mappend is still a method of Monoid
19:22:57 <boxscape_> you should be able to say `(<>) = mappend` in the Semigroup instance
19:22:58 <monochrom> (<>) is a method of Semigroup
19:23:28 <EvanR> I see, I didn't put Monoid constraint on the Semigroup instance, which... wouldn't really make sense
19:23:50 <EvanR> for the wrapped type
19:23:55 <monochrom> No need to put Monoid constraint on Semigroup instance.
19:23:55 <EvanR> Semigroup first it is
19:24:08 <boxscape_> the order shouldn't matter
19:24:21 × x88x88x quits (~cheeg@gateway/vpn/pia/x88x88x) (Remote host closed the connection)
19:24:24 <monochrom> Show actual code?
19:24:33 <boxscape_> (though in practice I do think it makes more sense to define (<>) and leave the default implementation of mappend alone)
19:24:52 <tomsmeding> EvanR: mappend is a method of Monoid, so you can't use mappend of _another_ type without requiring that that other type is Monoid
19:25:11 <tomsmeding> But yes, just use (<>)
19:25:35 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
19:25:48 <EvanR> https://paste.tomsmeding.com/AIXOSQk6
19:26:42 <EvanR> putting that code in semigroup now
19:26:47 <tomsmeding> Semigroup a is not going to provide you with a Monoid (E a) instance, is it? :)
19:26:50 <tomsmeding> Yes
19:27:01 <tomsmeding> That's the solution
19:27:17 burnsidesLlama joins (~burnsides@dhcp168-026.wadham.ox.ac.uk)
19:27:31 <monochrom> instance Semigroup a => Semigroup (E a) where E es1 <> E es2 = E (zipWith (<>) es1 es2)
19:27:51 <EvanR> yes
19:28:24 <EvanR> I originally had that semigroup constraint there
19:28:33 <EvanR> but was using mappend
19:28:37 <EvanR> fixed
19:29:11 <EvanR> Semigroup superiority forever
19:30:19 × mei quits (~mei@user/mei) (Read error: Connection reset by peer)
19:31:38 × burnsidesLlama quits (~burnsides@dhcp168-026.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
19:32:21 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
19:35:45 jakalx joins (~jakalx@base.jakalx.net)
19:36:26 max22- joins (~maxime@2a01cb0883359800172da6e8deefe185.ipv6.abo.wanadoo.fr)
19:37:14 <janus> boxscape_: (<>)=mappend is a warning on GHC 9.2, so i'd do it the other way around
19:37:28 <janus> (like you suggested)
19:37:40 <boxscape_> right, makes sense
19:37:41 <janus> may as well do it correctly now so people can turn on -Wall -Werror
19:38:35 <janus> i was a bit surprised that even if you have mytypeConcat and you set (<>)=mytypeConcat , it still will warn you if you do mappend=mytypeConcat... seems a bit strict
19:39:03 <boxscape_> overriding the mappend default implementation is arguably always either a no-op or wrong
19:39:29 <boxscape_> since it'd implemented as `mappend = (<>)` by default, *and* the Monoid laws state that `mappend` must be equal to (<>)
19:41:01 <boxscape_> (well, actually, it's not a law, the docs make a stronger argument - "In a future GHC release mappend will be removed from Monoid." So just a bad idea to define `mappend`.)
19:41:02 <janus> well the pattern i suggested is a no-op on modern ghcs. but it allows for simpler code if you want compatibility with ghc 8.0, for instance
19:41:39 <boxscape_> janus the guidelines are that code must work with the latest three releases without CPP, and ghc 8.0 is not part of those three.
19:41:57 <boxscape_> s/code must work/there must be a single way to make your code work
19:42:22 <janus> which guidelines?
19:42:37 <boxscape_> the guidelines used by the GHC team to decide which warnings to give
19:43:19 <boxscape_> tbh I have no idea where they're written down
19:43:49 <boxscape_> ah https://gitlab.haskell.org/haskell/prime/-/wikis/libraries/3-release-policy
19:44:44 <boxscape_> (I suppose "GHC team" may not be entirely accurate, since this is about the basic libraries, not ghc)
19:45:25 <geekosaur> I think that may still be in flux, but for a long time base was managed by the ghc team
19:46:22 Erutuon joins (~Erutuon@user/erutuon)
19:46:28 sunarch joins (uid526836@user/sunarch)
19:46:40 <janus> so the guideline implies that people can move directly from 'no semigroup instance and mappend' directly to 'semigroup instance and no mappend' without using cpp?
19:47:21 <janus> i wonder how often that has happened, i'd speculate that most people just use cpp
19:47:44 deadmarshal joins (~deadmarsh@95.38.113.69)
19:49:24 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
19:49:29 Guest17 joins (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
19:49:42 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
19:49:52 <boxscape_> janus I think that's not quite right - it implies people can move directly from 'no semigroup instance instance and mappend' to 'semigroup instance and mappend' (initially, Semigroup wasn't a superclass of Monoid), and then from that directly to 'semigroup instance and (<>)`. You can't skip the middle step without CPP, I believe
19:50:01 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
19:50:18 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
19:50:49 <EvanR> does traversable make sense for an infinite data structure
19:50:59 <EvanR> speaking of "end"
19:50:59 <boxscape_> hence Semigroup was added to base two releases before it was made a superclass of Monoid
19:51:25 <dsal> After ten years, the list of people I'm never working with again has doubled from 1 to 2 people.
19:51:26 <boxscape_> % traverse_ print $ cycle "HELLO WORLD"
19:51:32 <yahb> boxscape_: 'H'; 'E'; 'L'; 'L'; 'O'; ' '; 'W'; 'O'; 'R'; 'L'; 'D'; 'H'; 'E'; 'L'; 'L'; 'O'; ' '; 'W'; 'O'; 'R'; 'L'; 'D'; 'H'; 'E'; 'L'; 'L'; 'O'; ' '; 'W'; 'O'; 'R'; 'L'; 'D'; 'H'; 'E'; 'L'; 'L'; 'O'; ' '; 'W'; 'O'; 'R'; 'L'; 'D'; 'H'; 'E'; 'L'; 'L'; 'O'; ' '; 'W'; 'O'; 'R'; 'L'; 'D'; 'H'; 'E'; 'L'; 'L'; 'O'; ' '; 'W'; 'O'; 'R'; 'L'; 'D'; 'H'; 'E'; 'L'; 'L'; 'O'; ' '; 'W'; 'O'; 'R'; 'L'; 'D'; 'H'; 'E'; 'L'; 'L'; 'O'; ' '; 'W'; 'O'; 'R'; 'L'; 'D'; 'H'; 'E';
19:51:44 <boxscape_> (I meant to use repeat but I'll take it)
19:51:45 <EvanR> oh duh I missed part of the sequenceA sig
19:51:59 × deadmarshal quits (~deadmarsh@95.38.113.69) (Ping timeout: 252 seconds)
19:52:24 <monochrom> I think it makes sense for very non-strict Applicative instances such as Control.Monad.State.Lazy
19:52:46 <janus> boxscape_: oh, but if i attempted my proposal on a too-old ghc, it would complain about the missing mappend if i have -Wall on, right?
19:52:54 <janus> boxscape_: so i would have found out
19:53:21 <janus> since surely if it isn't a superclass, it can't have a default impl
19:53:31 <janus> s/super/sub/
19:53:36 <boxscape_> janus yeah, I think you don't even need -Wall for that
19:54:00 <janus> i always have -Wall :P no point in even considering what happens if i don't
19:54:05 <boxscape_> fair
19:54:57 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
19:55:40 <janus> it's interesting that the warning then suggests that people can have a duplicated mappend definition. because the addition of the superclass is more than 3 releases ago, so it shouldn't affect their reasoning that people may want to support not having Semigroup
19:56:09 <janus> if the warning demanded that people remove the definition, it would be less churn once they remove mappend entirely
19:57:22 <janus> maybe it is something that could be changed for 9.2.2?
19:58:21 × jonatanb quits (~accio@31-178-144-108.dynamic.chello.pl) (Remote host closed the connection)
19:59:09 jonatanb joins (~accio@31-178-144-108.dynamic.chello.pl)
19:59:14 × max22- quits (~maxime@2a01cb0883359800172da6e8deefe185.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
20:00:24 × pfurla quits (~pfurla@2804:14d:5c81:4104:f9a9:132:7129:df1c) (Read error: Connection reset by peer)
20:00:25 <boxscape_> that's a good point
20:00:40 × joeyh quits (joeyh@kitenet.net) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
20:00:46 <janus> i'll create a bug if nobody has complained in 15 min :P
20:00:53 joeyh joins (joeyh@kitenet.net)
20:01:01 pfurla joins (~pfurla@2804:14d:5c81:4104:f9a9:132:7129:df1c)
20:01:07 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Read error: Connection reset by peer)
20:01:08 × vjoki quits (~vjoki@2a00:d880:3:1::fea1:9ae) (Quit: ...)
20:01:08 × sander quits (~sander@user/sander) (Quit: So long! :))
20:01:17 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
20:01:26 sander joins (~sander@user/sander)
20:01:26 × trcc quits (~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
20:01:36 max22- joins (~maxime@2a01cb0883359800172da6e8deefe185.ipv6.abo.wanadoo.fr)
20:01:44 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
20:01:51 vjoki joins (~vjoki@2a00:d880:3:1::fea1:9ae)
20:01:58 trcc joins (~trcc@2-104-60-169-cable.dk.customer.tdc.net)
20:02:56 × Deewiant quits (~deewiant@2001:470:69fc:105::2fd3) (Ping timeout: 265 seconds)
20:02:56 × fendor[m] quits (~fendormat@2001:470:69fc:105::fcbd) (Ping timeout: 265 seconds)
20:02:56 × Franciman quits (~Franciman@mx1.fracta.dev) (Ping timeout: 265 seconds)
20:02:56 × jinsun_ quits (~jinsun@user/jinsun) (Ping timeout: 265 seconds)
20:02:56 × unclechu quits (~unclechu@2001:470:69fc:105::354) (Ping timeout: 265 seconds)
20:02:56 × hsiktas[m] quits (~hsiktasma@2001:470:69fc:105::30d4) (Ping timeout: 265 seconds)
20:02:56 × TomWesterhout[m] quits (~twesterho@2001:470:69fc:105::1:2918) (Ping timeout: 265 seconds)
20:02:56 × alex[m]12 quits (~alexchete@2001:470:69fc:105::1:1001) (Ping timeout: 265 seconds)
20:02:56 × moats quits (~oats@user/oats) (Ping timeout: 265 seconds)
20:02:56 × surgeon[m] quits (~surge9nma@2001:470:69fc:105::f585) (Ping timeout: 265 seconds)
20:03:05 × Logio quits (em@kapsi.fi) (Quit: Lost terminal)
20:03:08 Guest|70 joins (~Guest|70@c-65-50-165-29.hs.gigamonster.net)
20:03:25 × unrooted quits (~unrooted@2001:470:69fc:105::a4a) (Ping timeout: 265 seconds)
20:03:25 × acidsys quits (~LSD@2.lsd.systems) (Ping timeout: 265 seconds)
20:03:45 × tlax_ quits (tlax@kapsi.fi) (Quit: Lost terminal)
20:03:52 × jonatanb quits (~accio@31-178-144-108.dynamic.chello.pl) (Ping timeout: 264 seconds)
20:03:54 × fgaz quits (~fgaz@2001:470:69fc:105::842) (Ping timeout: 265 seconds)
20:03:54 × lambdandy[m] quits (~lambdandy@2001:470:69fc:105::1:3045) (Ping timeout: 265 seconds)
20:03:54 × Tavi[m] quits (~factoidde@2001:470:69fc:105::1:819) (Ping timeout: 265 seconds)
20:03:54 × Ollie[m] quits (~ollieocha@2001:470:69fc:105::41a5) (Ping timeout: 265 seconds)
20:04:10 × ent quits (entgod@kapsi.fi) (Quit: Lost terminal)
20:05:09 × juhp quits (~juhp@128.106.188.82) (Ping timeout: 256 seconds)
20:06:03 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving)
20:06:17 × trcc quits (~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Ping timeout: 256 seconds)
20:06:50 econo joins (uid147250@user/econo)
20:07:10 juhp joins (~juhp@128.106.188.82)
20:07:53 geekosaur joins (~geekosaur@xmonad/geekosaur)
20:10:14 × epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
20:10:57 cosimone joins (~user@93-47-231-139.ip115.fastwebnet.it)
20:11:55 burnsidesLlama joins (~burnsides@dhcp168-026.wadham.ox.ac.uk)
20:13:27 × ubert quits (~Thunderbi@p200300ecdf0ba218e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
20:14:26 Franciman joins (~Franciman@mx1.fracta.dev)
20:14:35 ubert joins (~Thunderbi@p200300ecdf0ba218e6b318fffe838f33.dip0.t-ipconnect.de)
20:15:08 jinsun_ joins (~jinsun@user/jinsun)
20:15:55 acidsys joins (~LSD@2.lsd.systems)
20:15:56 <janus> hmmm i think i know why: they want to mention exactly what would resolve the warning. it would be confusing if the warning were resolved by more than just what is recommended in its text. and the text does mention that removing the method is the best
20:16:35 TomWesterhout[m] joins (~twesterho@2001:470:69fc:105::1:2918)
20:17:04 surgeon[m] joins (~surge9nma@2001:470:69fc:105::f585)
20:17:06 unclechu joins (~unclechu@2001:470:69fc:105::354)
20:17:11 moats joins (~oats@user/oats)
20:17:19 hsiktas[m] joins (~hsiktasma@2001:470:69fc:105::30d4)
20:17:20 alex[m]121 joins (~alexchete@2001:470:69fc:105::1:1001)
20:17:37 × burnsidesLlama quits (~burnsides@dhcp168-026.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
20:17:44 n8ess163 joins (~b@pool-72-80-171-162.nycmny.fios.verizon.net)
20:17:54 × sm2n quits (~sm2n@user/sm2n) (Quit: Leaving)
20:17:59 fendor[m] joins (~fendormat@2001:470:69fc:105::fcbd)
20:18:32 Deewiant joins (~deewiant@2001:470:69fc:105::2fd3)
20:19:13 unrooted joins (~unrooted@2001:470:69fc:105::a4a)
20:19:46 Tavi[m] joins (~factoidde@2001:470:69fc:105::1:819)
20:19:56 × n8ess163 quits (~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Client Quit)
20:21:17 Ollie[m] joins (~ollieocha@2001:470:69fc:105::41a5)
20:21:18 fgaz joins (~fgaz@2001:470:69fc:105::842)
20:21:40 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
20:21:53 x88x88x joins (~cheeg@gateway/vpn/pia/x88x88x)
20:22:14 lambdandy[m] joins (~lambdandy@2001:470:69fc:105::1:3045)
20:23:49 n8ess163 joins (~b@pool-72-80-171-162.nycmny.fios.verizon.net)
20:25:18 × kuribas quits (~user@ptr-25vy0i9nuu9joot4en6.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
20:26:49 <maerwald> jan
20:29:07 yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
20:29:21 sm2n joins (ae95cb1267@user/sm2n)
20:32:19 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
20:32:38 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
20:33:29 × yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
20:34:02 wrengr joins (~wrengr@34.133.83.34.bc.googleusercontent.com)
20:38:33 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
20:38:46 Codaraxis joins (~Codaraxis@user/codaraxis)
20:38:51 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
20:39:45 gehmehgeh joins (~user@user/gehmehgeh)
20:42:31 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
20:42:49 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
20:44:44 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
20:45:01 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
20:46:58 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
20:47:16 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
20:47:29 × zer0bitz quits (~zer0bitz@dsl-hkibng31-54fabc-15.dhcp.inet.fi) (Read error: Connection reset by peer)
20:49:09 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
20:49:27 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
20:50:51 Pickchea joins (~private@user/pickchea)
20:52:22 × boxscape_ quits (~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de) (Quit: Connection closed)
20:52:37 burnsidesLlama joins (~burnsides@dhcp168-026.wadham.ox.ac.uk)
20:54:55 × michalz quits (~michalz@185.246.204.62) (Remote host closed the connection)
20:55:15 jkoshy joins (99b9359beb@2604:bf00:561:2000::10f)
20:55:37 boxscape_ joins (~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de)
20:56:53 × burnsidesLlama quits (~burnsides@dhcp168-026.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
20:59:25 × Guest17 quits (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed)
21:00:43 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
21:00:55 chexum joins (~quassel@gateway/tor-sasl/chexum)
21:04:37 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
21:04:55 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
21:06:33 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:07:17 eyJhb joins (~eyJhb@user/eyjhb)
21:09:24 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
21:10:33 × gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 276 seconds)
21:12:32 gehmehgeh joins (~user@user/gehmehgeh)
21:12:39 <eyJhb> Considering picking up Haskell, or learning some of the basics. Is there any recommendations beyound what is given an haskell.org? I have littel experience with functional programming (my only thing being nix)
21:13:14 acidjnk_new joins (~acidjnk@p200300d0c7271e72fcf154b5eecf3df6.dip0.t-ipconnect.de)
21:15:09 <sm> welcome. So many.. what kind of resource do you like ?
21:15:48 <jle`> lhll
21:16:00 <pragma-> eyJhb: I have been enjoying Real World Haskell recently.
21:16:22 <pragma-> http://book.realworldhaskell.org/read/
21:16:38 <dsal> I don't feel I learned much from RWH. It felt more like a demonstration than educational material to me.
21:16:49 <pragma-> interesting
21:17:02 <jle`> whoops, sorry, that was a mis-click, not an acronym for a book :)
21:17:05 <dsal> You're still allowed to like it.
21:17:39 <dolio> Seems like it's probably not an ideal intro for someone with little functional programming experience, anyway.
21:17:43 sm randomly throws out https://www.stephendiehl.com/posts/docs.html
21:17:54 <dsal> jle`: Heh. I thought you were referring to the Hutton book somehow.
21:18:03 <eyJhb> I am still reading haskell.org, so it might already be there. - I have mostly liked things such as, a tour of go ( https://go.dev/tour/welcome/1 ), ie. small guides that take you through the basics and advance up to the higher concepts in a semi consistent flow. Not sure how much sense I am making :)
21:18:34 <sm> @where htac then, eyJhb
21:18:34 <lambdabot> "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook>
21:18:35 <dsal> "What I Wish I Knew" was completely insane. It's a cool resource, but it seems to cover everything knowable, which, I mean, sure, I wish I knew everything at every step. :)
21:18:53 <dsal> Hutton isn't too bad.
21:18:56 <Rembane> Covering everything is quite good for a good reference. :)
21:19:02 <Rembane> But it's not a tutorial.
21:19:40 lukec joins (9dfd4d094e@2604:bf00:561:2000::10e)
21:20:15 <pragma-> "Learn You A Haskell" was recommended to me in the past. Upon reading it, it felt like a fast-paced introduction/tutorial, quickly getting to the point of things. But it's a bit rough around the edges with typoes and place-holders and &gt; instead of > in various spots. I don't know.
21:20:17 <dsal> "What I Wish I Knew When Learning" makes me think of a small set of gotchas or something. Not like, just everything possible. I do wish I knew everything possible, but I'm OK not knowing it when I was learning. :)
21:21:00 <DigitalKiwi> +1 hutton
21:21:05 cjb joins (~cjb@user/cjb)
21:21:06 <eyJhb> I can see there is a lot to learn/know. :) Trying to compact all the info and will sort it for further investigation!
21:21:24 <dsal> eyJhb: I still like haskellbook.com, but some people dislike it. And there's a third category that's not important. :)
21:21:28 Codaraxis_ joins (~Codaraxis@user/codaraxis)
21:21:44 <eyJhb> third category?
21:21:51 <sm> considering just books, there are what.. 50ish at this point ?
21:21:53 <dsal> Some people don't like things about the book that aren't about the material itself.
21:22:20 <DigitalKiwi> it's an ok book but it was too long for me to finish
21:22:35 <dsal> Yeah, it's long which can be very good or not very good.
21:22:49 <DigitalKiwi> programming in haskell was good and short enough i've read it at least twice
21:22:52 <dsal> I think I did about half of it and got pretty proficient. Then went back to finish it.
21:23:02 <sm> I had better +1 Hutton, one of the best haskell teachers (it's also on youtube now)
21:23:29 <dsal> Reading books on YT seems interesting.
21:23:41 <dsal> Can I get the lens book in audible?
21:24:02 <sm> not literally the book on youtube, but a course based on it, I assume quite similar
21:24:25 <DigitalKiwi> only if you want to start a war about how to pronounce all of the symbols
21:24:39 <dsal> Yeah, makes sense. I like watching some of these videos, but I don't know that I learn as much from watching an hour long video.
21:24:47 <eyJhb> Unsure if this is unpopular, but I am trying to learn/see what a functional programming language can give me. Currently I code a lot in Golang (and still quite enjoy it), but frameworks (for web however) such as Elm, has got my interest sparked some more. (as mentioned, only really done nix atm.)
21:24:48 <sm> graham hutton is the latest guest on haskell interlude podcast by the way - recommended
21:24:49 <dsal> Er, having my iPad play an hour long video while I get distracted and talk to people in irc
21:24:57 × mestre quits (~mestre@191.177.175.57) (Quit: Lost terminal)
21:25:04 <dsal> eyJhb: Have you programmed in elm?
21:25:07 <DigitalKiwi> https://www.youtube.com/watch?v=NzIZzvbplSM&list=PLly9WMAVMrayYo2c-1E_rIRwBXG_FbLBW
21:25:29 × Codaraxis quits (~Codaraxis@user/codaraxis) (Ping timeout: 252 seconds)
21:25:32 <dsal> elm is like a *super* stripped down haskell with a bunch of features missing. By the time you get good at elm and go to haskell, you'll be starving for all the missing pieces.
21:25:49 <pragma-> it's cute how http://dev.stephendiehl.com/hask/tutorial.pdf is named "tutorial" when it's so comprehensive
21:26:04 <DigitalKiwi> i think it started off small
21:26:06 <pragma-> 5th major edition too
21:26:09 <dsal> It probably started out with a couple of important firsts and then it was just too late to rename it.
21:26:17 <hpc> it'd be nice if that site had https
21:26:27 zincy_ joins (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
21:26:48 <DigitalKiwi> wish he'd quit tweeting about crypto and finish http://dev.stephendiehl.com/fun/
21:27:17 <DigitalKiwi> hpc: last time i suggested someone that they got mad lol
21:27:20 <eyJhb> dsal: ONly read some of the tutorial/getting started, and then I was somewhat put off by what I have read about tho community (I have not confirmed anything, and I still not ruled out wanting to use Elm yet)
21:27:48 <dsal> Yeah, so there are a couple of downsides of elm that aren't the language. Kind of like haskellbook.com :)
21:28:03 <eyJhb> Really surprised by how welcoming this channel was upon my initial query in here. Not always you see that.
21:28:09 × zincy_ quits (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Read error: Connection reset by peer)
21:28:28 zincy_ joins (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
21:28:34 <eyJhb> dsal: That's what I gathered so far about Elm yes ... Kind of sad (if it is like I read)
21:28:35 pavonia joins (~user@user/siracusa)
21:28:37 <hpc> eyJhb: we draw people in with niceness and then corrupt them with our abstract mathematical ways
21:28:44 <dsal> The language itself isn't that bad, though I do wish it were just a *little* more. The closedness of Elm and lack of welcome input is unfortunate.
21:28:44 <Rembane> +1
21:28:51 <dsal> We also have ghcjs and purescript, though.
21:28:55 <sm> #haskell is full of slackers, easiest place to get a conversation going :)
21:29:06 <hpc> sm: technically it's full of irc-ers
21:29:08 <Rembane> I'm really fond of Purescript, or was a couple of years ago, haven't used it since.
21:29:10 <dsal> I've had a pretty good experience with purescript.
21:29:12 <eyJhb> dsal: I have looked at PureScript as well :p
21:29:27 <dsal> purescript is very similar to haskell. Close enough that it gets confusing at times. heh
21:29:29 <DigitalKiwi> hpc https://twitter.com/ArchKiwi/status/1226378413033869313?s=20
21:29:35 <dsal> It's newer, so it doesn't have some of the warts.
21:29:39 <sm> we have saved so much time from functional programming we have to use it up in here
21:30:03 <hpc> i like typescript better than purescript, but that might just be because of how insane its type system is
21:30:13 <DigitalKiwi> hpc: https://twitter.com/ArchKiwi/status/1421185794191073280?s=20
21:30:19 <jneira[m]> sm: what could do we do while waiting for the compiler do our work?
21:30:32 <dsal> eyJhb: I was a golang early adopter. Was a big chunk of my career for a bit over ten years, but Haskell is so much easier that I can't be bothered to do anything in go anymore.
21:30:40 <sm> ouch, that may be nearer to the truth jneira
21:30:42 <Rembane> hpc: Which type system is more extreme, Typescript or Purescript? :)
21:30:43 <int-e> jneira[m]: https://xkcd.com/303/
21:30:47 <hpc> DigitalKiwi: the real security argument is javascript - with http anyone can inject arbitrary code onto a webpage
21:30:50 <hpc> no matter what it's serving
21:31:10 <eyJhb> I got to go now, but thanks for all your input ! I will sort it and try to figure out my direction :)
21:31:29 <dsal> eyJhb: We're all here dying to help get this knowledge out of our heads and into others'
21:31:36 <hpc> Rembane: definitely typescript
21:31:45 <hpc> purescript tries to be sensible, and typescript tries to type javascript
21:32:21 <dsal> I've only kind of seen TS from afar. It seems like such a bad idea given alternatives.
21:32:25 <eyJhb> I might be tempted to try out PureScript and Haskell at the same time. Unsure how that will go however. Might be confusing from what I hear
21:32:34 <Rembane> hpc: Got it, I wasn't clear on what you meant there for a while. I like that with Typescript, but I don't use it so I haven't been bitten by it yet.
21:32:53 <sm> seemed like a good idea to me, seems to have worked reasonably well
21:32:54 <hpc> dsal: it makes a lot more sense when you have an existing large js codebase to refactor
21:33:30 <DigitalKiwi> when typescript was created what alternatives were there
21:33:32 <dsal> I suppose. That wasn't how it was introduced to me. :) It was like, "Hey, let's use this web framework for this new project that requires TypeScript!"
21:33:53 <dsal> And the end result was I wanted some features I'd done in JS that the TS proponents weren't able to implement.
21:33:59 <hpc> yeah, it doesn't make sense there
21:34:17 <hpc> although to be fair you lost me at "let's use this web framework"
21:34:23 Guest17 joins (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
21:34:28 <Rembane> DigitalKiwi: Flow! :D
21:34:34 <dsal> They wanted to use Angular 2.
21:34:57 <dsal> I like using d3 for some stuff, but it seems incompatible with just about everything.
21:35:35 <hpc> i have seen some angular 2 code, and i don't get it
21:36:05 <dsal> I used the original angular and it seemed fine. The later code was just about impossible for me to follow.
21:39:48 × glguy quits (x@libera/staff/glguy) (*.net *.split)
21:39:48 × zincy_ quits (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (*.net *.split)
21:39:48 × Codaraxis_ quits (~Codaraxis@user/codaraxis) (*.net *.split)
21:39:48 × lukec quits (9dfd4d094e@2604:bf00:561:2000::10e) (*.net *.split)
21:39:48 × jkoshy quits (99b9359beb@2604:bf00:561:2000::10f) (*.net *.split)
21:39:48 × Pickchea quits (~private@user/pickchea) (*.net *.split)
21:39:48 × sm2n quits (ae95cb1267@user/sm2n) (*.net *.split)
21:39:48 × x88x88x quits (~cheeg@gateway/vpn/pia/x88x88x) (*.net *.split)
21:39:48 × acidsys quits (~LSD@2.lsd.systems) (*.net *.split)
21:39:48 × geekosaur quits (~geekosaur@xmonad/geekosaur) (*.net *.split)
21:39:48 × econo quits (uid147250@user/econo) (*.net *.split)
21:39:48 × sander quits (~sander@user/sander) (*.net *.split)
21:39:48 × vjoki quits (~vjoki@2a00:d880:3:1::fea1:9ae) (*.net *.split)
21:39:48 × mvk quits (~mvk@2607:fea8:5cc1:fa00::4702) (*.net *.split)
21:39:48 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:356c:6df7:ff7f:48a3) (*.net *.split)
21:39:48 × arahael quits (~arahael@27-32-144-20.tpgi.com.au) (*.net *.split)
21:39:48 × jkaye quits (~jkaye@2601:281:8300:7530:7309:f677:c771:6123) (*.net *.split)
21:39:48 × evanrelf quits (3addc196af@2604:bf00:561:2000::f0) (*.net *.split)
21:39:48 × waleee quits (~waleee@h-82-196-111-63.NA.cust.bahnhof.se) (*.net *.split)
21:39:48 × DNH quits (~DNH@2a02:8108:1100:16d8:58c0:b83a:3eea:a1cf) (*.net *.split)
21:39:48 × emf quits (~emf@2620:10d:c090:400::5:9a5b) (*.net *.split)
21:39:48 × lbseale quits (~ep1ctetus@user/ep1ctetus) (*.net *.split)
21:39:48 × slowButPresent quits (~slowButPr@user/slowbutpresent) (*.net *.split)
21:39:48 × zmt00 quits (~zmt00@user/zmt00) (*.net *.split)
21:39:48 × xff0x quits (~xff0x@2001:1a81:527f:8300:4a2b:7ccd:5352:f2b5) (*.net *.split)
21:39:48 × Sgeo quits (~Sgeo@user/sgeo) (*.net *.split)
21:39:48 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (*.net *.split)
21:39:48 × mc47 quits (~mc47@xmonad/TheMC47) (*.net *.split)
21:39:48 × Typedfern quits (~Typedfern@75.red-88-22-25.staticip.rima-tde.net) (*.net *.split)
21:39:48 × TranquilEcho quits (~grom@user/tranquilecho) (*.net *.split)
21:39:48 × mmhat quits (~mmh@55d431d8.access.ecotel.net) (*.net *.split)
21:39:48 × Profpatsch quits (~Profpatsc@static.88-198-193-255.clients.your-server.de) (*.net *.split)
21:39:49 × masterbuilder quits (~user@user/masterbuilder) (*.net *.split)
21:39:49 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (*.net *.split)
21:39:49 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (*.net *.split)
21:39:49 × sweater quits (~sweater@206.81.18.26) (*.net *.split)
21:39:49 × carbolymer quits (~carbolyme@dropacid.net) (*.net *.split)
21:39:49 × shanemikel quits (~shanemike@desk.roadwar.net) (*.net *.split)
21:39:49 × remexre quits (~remexre@user/remexre) (*.net *.split)
21:39:49 × teddyc quits (theodorc@cassarossa.samfundet.no) (*.net *.split)
21:39:49 × dyniec quits (~dyniec@mail.dybiec.info) (*.net *.split)
21:39:49 × rembo10 quits (~rembo10@remulis.com) (*.net *.split)
21:39:49 × TimWolla quits (~timwolla@2a01:4f8:150:6153:beef::6667) (*.net *.split)
21:39:49 × cocreature quits (~moritz@2a03:b0c0:3:d0::c8:f001) (*.net *.split)
21:39:49 × xacktm quits (xacktm@user/xacktm) (*.net *.split)
21:39:49 × acowley quits (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (*.net *.split)
21:39:49 × Boarders_ quits (sid425905@id-425905.lymington.irccloud.com) (*.net *.split)
21:39:49 × JSharp quits (sid4580@id-4580.lymington.irccloud.com) (*.net *.split)
21:39:49 × ysh quits (sid6017@id-6017.ilkley.irccloud.com) (*.net *.split)
21:39:49 × whatif quits (~user@2400:8902::f03c:92ff:fe60:98d8) (*.net *.split)
21:39:49 × sprout_ quits (~quassel@2a02:a467:ccd6:1:4de4:2055:b8c4:f1e) (*.net *.split)
21:39:49 × saolsen quits (sid26430@id-26430.lymington.irccloud.com) (*.net *.split)
21:39:49 × tapas quits (sid467876@id-467876.ilkley.irccloud.com) (*.net *.split)
21:39:49 × cbarrett quits (sid192934@id-192934.helmsley.irccloud.com) (*.net *.split)
21:39:49 × enemeth79 quits (sid309041@id-309041.lymington.irccloud.com) (*.net *.split)
21:39:49 × siers quits (~ij@user/ij) (*.net *.split)
21:39:49 × bjs quits (sid190364@user/bjs) (*.net *.split)
21:39:49 × sclv quits (sid39734@haskell/developer/sclv) (*.net *.split)
21:39:49 × mrianbloom quits (sid350277@id-350277.ilkley.irccloud.com) (*.net *.split)
21:39:49 × dmj` quits (sid72307@id-72307.hampstead.irccloud.com) (*.net *.split)
21:39:49 × acertain quits (sid470584@id-470584.hampstead.irccloud.com) (*.net *.split)
21:39:49 × Pent quits (sid313808@id-313808.lymington.irccloud.com) (*.net *.split)
21:39:49 × gaze___ quits (sid387101@id-387101.helmsley.irccloud.com) (*.net *.split)
21:39:49 × V quits (~v@anomalous.eu) (*.net *.split)
21:39:49 × AndreasK quits (sid320732@id-320732.uxbridge.irccloud.com) (*.net *.split)
21:39:49 × SethTisue__ quits (sid14912@id-14912.ilkley.irccloud.com) (*.net *.split)
21:39:49 × hongminhee quits (sid295@id-295.tinside.irccloud.com) (*.net *.split)
21:39:49 × pragma- quits (~chaos@user/pragmatic-chaos) (*.net *.split)
21:39:49 × OscarH quits (~OscarH@90.201.86.195) (*.net *.split)
21:39:49 × dka quits (~code-is-a@ns3059207.ip-193-70-33.eu) (*.net *.split)
21:39:49 × piele quits (~piele@tbonesteak.creativeserver.net) (*.net *.split)
21:39:49 × ncopa quits (~ncopa@gbr2-dev1.alpinelinux.org) (*.net *.split)
21:39:49 × phma quits (~phma@host-67-44-208-5.hnremote.net) (*.net *.split)
21:39:49 × haskl quits (~haskl@user/haskl) (*.net *.split)
21:39:49 × pie__ quits (~pie_bnc@user/pie/x-2818909) (*.net *.split)
21:39:49 × bcoppens_ quits (~bartcopp@vpn2.bartcoppens.be) (*.net *.split)
21:39:49 × m1dnight_ quits (~christoph@christophe.dev) (*.net *.split)
21:39:49 × [exa] quits (~exa@user/exa/x-3587197) (*.net *.split)
21:39:49 × Hecate quits (~mariposa@user/hecate) (*.net *.split)
21:39:49 × dfordivam1 quits (~dfordivam@tk2-219-19469.vs.sakura.ne.jp) (*.net *.split)
21:39:49 × anderson quits (~ande@user/anderson) (*.net *.split)
21:39:49 × glider quits (~glider@user/glider) (*.net *.split)
21:39:49 × dminuoso quits (~dminuoso@user/dminuoso) (*.net *.split)
21:39:49 × aforemny quits (~aforemny@static.248.158.34.188.clients.your-server.de) (*.net *.split)
21:39:49 × Techcable_ quits (~Techcable@168.235.93.147) (*.net *.split)
21:39:49 × madnight_ quits (~madnight@static.59.103.201.195.clients.your-server.de) (*.net *.split)
21:39:49 × greyrat_ quits (~greyrat@ip202.ip-51-178-215.eu) (*.net *.split)
21:39:49 × m5zs7k quits (aquares@web10.mydevil.net) (*.net *.split)
21:39:49 × eL_Bart0- quits (eL_Bart0@dietunichtguten.org) (*.net *.split)
21:39:49 × davl_ quits (~davl@207.154.228.18) (*.net *.split)
21:39:49 × MidAutumnMoon6 quits (~MidAutumn@user/midautumnmoon) (*.net *.split)
21:39:50 × Teacup quits (~teacup@user/teacup) (*.net *.split)
21:39:50 × dolio quits (~dolio@130.44.130.54) (*.net *.split)
21:39:50 × jzsinatra quits (~jzsinatra@88-114-238-31.elisa-laajakaista.fi) (*.net *.split)
21:39:50 × statusbot quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (*.net *.split)
21:39:50 × dtman34 quits (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (*.net *.split)
21:39:50 × hiredman quits (~hiredman@frontier1.downey.family) (*.net *.split)
21:39:50 × peutri quits (~peutri@ns317027.ip-94-23-46.eu) (*.net *.split)
21:39:50 × lyxia quits (~lyxia@poisson.chat) (*.net *.split)
21:39:50 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (*.net *.split)
21:39:50 × heath quits (~heath@user/heath) (*.net *.split)
21:39:50 × incertia quits (~incertia@d4-50-26-103.nap.wideopenwest.com) (*.net *.split)
21:39:50 × ikke quits (~kevin@alpine/developer/ikke) (*.net *.split)
21:39:50 × nisstyre quits (~wes@user/nisstyre) (*.net *.split)
21:39:50 × Athas quits (athas@sigkill.dk) (*.net *.split)
21:39:50 × haveo quits (~haveo@sl35.iuwt.fr) (*.net *.split)
21:39:50 × cods quits (~fred@82-65-232-44.subs.proxad.net) (*.net *.split)
21:39:50 × Patternmaster quits (~georg@li1192-118.members.linode.com) (*.net *.split)
21:39:50 × bens quits (~bens@www.typius.com) (*.net *.split)
21:39:50 × jjhoo quits (~jahakala@user/jjhoo) (*.net *.split)
21:39:50 × dawdler quits (~dawdler@user/dawdler) (*.net *.split)
21:39:50 × finsternis quits (~X@23.226.237.192) (*.net *.split)
21:39:50 × bgamari quits (~bgamari@64.223.235.131) (*.net *.split)
21:39:50 × yahb quits (xsbot@user/mniip/bot/yahb) (*.net *.split)
21:39:50 × turlando quits (~turlando@user/turlando) (*.net *.split)
21:39:50 × mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (*.net *.split)
21:39:50 × dwt_ quits (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) (*.net *.split)
21:39:50 × jackhill quits (~jackhill@kalessin.dragonsnail.net) (*.net *.split)
21:39:50 × Unode quits (~Unode@194.94.44.220) (*.net *.split)
21:39:50 × derelict quits (~derelict@user/derelict) (*.net *.split)
21:39:50 × asm quits (~alexander@user/asm) (*.net *.split)
21:39:50 × gawen quits (~gawen@user/gawen) (*.net *.split)
21:39:50 × oats quits (~thomas@user/oats) (*.net *.split)
21:39:50 × caubert quits (~caubert@136.244.111.235) (*.net *.split)
21:39:50 × WhateverRabbit quits (~rabbit@206.81.18.26) (*.net *.split)
21:39:50 × niko quits (~niko@libera/staff/niko) (*.net *.split)
21:39:50 × spoofer quits (~spoofer@64.185.111.205) (*.net *.split)
21:39:50 × hgolden quits (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (*.net *.split)
21:39:50 × adamCS quits (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) (*.net *.split)
21:39:50 × mmaruseacph2 quits (~mihai@198.199.100.72) (*.net *.split)
21:39:50 × acidjnk_new quits (~acidjnk@p200300d0c7271e72fcf154b5eecf3df6.dip0.t-ipconnect.de) (*.net *.split)
21:39:50 × ubert quits (~Thunderbi@p200300ecdf0ba218e6b318fffe838f33.dip0.t-ipconnect.de) (*.net *.split)
21:39:50 × joeyh quits (joeyh@kitenet.net) (*.net *.split)
21:39:50 × sunarch quits (uid526836@user/sunarch) (*.net *.split)
21:39:50 × unyu quits (~pyon@user/pyon) (*.net *.split)
21:39:50 × reumeth quits (~reumeth@user/reumeth) (*.net *.split)
21:39:50 × FragByte quits (~christian@user/fragbyte) (*.net *.split)
21:39:50 × notzmv quits (~zmv@user/notzmv) (*.net *.split)
21:39:50 × nautical quits (~nautical@2601:602:900:1630::396f) (*.net *.split)
21:39:51 × ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (*.net *.split)
21:39:51 × infinity0 quits (~infinity0@occupy.ecodis.net) (*.net *.split)
21:39:51 × shriekingnoise quits (~shrieking@186.137.144.80) (*.net *.split)
21:39:51 × hays quits (rootvegeta@fsf/member/hays) (*.net *.split)
21:39:51 × johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (*.net *.split)
21:39:51 × retro_ quits (~retro@97e2ba2e.skybroadband.com) (*.net *.split)
21:39:51 × TMA quits (tma@twin.jikos.cz) (*.net *.split)
21:39:51 × iphy quits (sid67735@id-67735.lymington.irccloud.com) (*.net *.split)
21:39:51 × whez quits (sid470288@id-470288.lymington.irccloud.com) (*.net *.split)
21:39:51 × _0x47_ quits (sid508683@id-508683.tinside.irccloud.com) (*.net *.split)
21:39:51 × awpr quits (uid446117@id-446117.lymington.irccloud.com) (*.net *.split)
21:39:51 × teehemkay_ quits (sid14792@id-14792.lymington.irccloud.com) (*.net *.split)
21:39:51 × angerman quits (sid209936@id-209936.ilkley.irccloud.com) (*.net *.split)
21:39:51 × ephemient quits (uid407513@id-407513.lymington.irccloud.com) (*.net *.split)
21:39:51 × gregberns__ quits (sid315709@id-315709.helmsley.irccloud.com) (*.net *.split)
21:39:51 × kaizen quits (sid501599@id-501599.helmsley.irccloud.com) (*.net *.split)
21:39:51 × MironZ quits (~MironZ@nat-infra.ehlab.uk) (*.net *.split)
21:39:51 × Feuermagier_ quits (~Feuermagi@154.28.188.22) (*.net *.split)
21:39:51 × Kaiepi quits (~Kaiepi@156.34.44.192) (*.net *.split)
21:39:51 × Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (*.net *.split)
21:39:51 × micro quits (~micro@user/micro) (*.net *.split)
21:39:51 × russruss quits (~russruss@my.russellmcc.com) (*.net *.split)
21:39:51 × monochrom quits (trebla@216.138.220.146) (*.net *.split)
21:39:51 × S11001001 quits (sid42510@id-42510.ilkley.irccloud.com) (*.net *.split)
21:39:51 × nitrix quits (~nitrix@user/nitrix) (*.net *.split)
21:39:51 × NiKaN quits (sid385034@id-385034.helmsley.irccloud.com) (*.net *.split)
21:39:51 × Cale quits (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (*.net *.split)
21:39:51 × thaumavorio quits (~thaumavor@thaumavor.io) (*.net *.split)
21:39:51 × quintasan quits (~quassel@quintasan.pl) (*.net *.split)
21:39:51 × tv quits (~tv@user/tv) (*.net *.split)
21:39:51 × tnks quits (sid412124@id-412124.helmsley.irccloud.com) (*.net *.split)
21:39:51 × duckonomy quits (~duckonomy@177.ip-144-217-84.net) (*.net *.split)
21:39:51 × marienz quits (~marienz@libera/staff/marienz) (*.net *.split)
21:39:51 × davetapley quits (sid666@id-666.uxbridge.irccloud.com) (*.net *.split)
21:39:51 × rtpg quits (sid443069@id-443069.ilkley.irccloud.com) (*.net *.split)
21:39:51 × b20n quits (sid115913@id-115913.uxbridge.irccloud.com) (*.net *.split)
21:39:51 × lightandlight quits (sid135476@id-135476.helmsley.irccloud.com) (*.net *.split)
21:39:51 × caasih quits (sid13241@id-13241.ilkley.irccloud.com) (*.net *.split)
21:39:51 × edmundnoble quits (sid229620@id-229620.helmsley.irccloud.com) (*.net *.split)
21:39:51 × PotatoGim quits (sid99505@id-99505.lymington.irccloud.com) (*.net *.split)
21:39:51 × philpax_ quits (sid516926@id-516926.lymington.irccloud.com) (*.net *.split)
21:39:51 × jakesyl_ quits (sid56879@id-56879.hampstead.irccloud.com) (*.net *.split)
21:39:51 × bradparker quits (sid262931@uxbridge.irccloud.com) (*.net *.split)
21:39:51 × Ekho quits (~Ekho@user/ekho) (*.net *.split)
21:39:51 × vgtw quits (~vgtw@c-6a60205c.07-348-756d651.bbcust.telenor.se) (*.net *.split)
21:39:51 × yushyin quits (3RNeQpThcJ@karif.server-speed.net) (*.net *.split)
21:39:51 × m4lvin quits (~m4lvin@w4eg.de) (*.net *.split)
21:39:51 × fryguybob quits (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (*.net *.split)
21:39:51 × myme quits (~myme@40.51-175-185.customer.lyse.net) (*.net *.split)
21:39:51 × amk quits (~amk@109.255.169.126) (*.net *.split)
21:39:51 × averell quits (~averell@user/averell) (*.net *.split)
21:39:51 × tom__ quits (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (*.net *.split)
21:39:51 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (*.net *.split)
21:39:51 × mjrosenb quits (~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net) (*.net *.split)
21:39:51 × dibblego quits (~dibblego@haskell/developer/dibblego) (*.net *.split)
21:39:51 × bbear quits (~znc@21212.s.t4vps.eu) (*.net *.split)
21:39:51 × darkstardevx quits (~darkstard@50.39.115.145) (*.net *.split)
21:39:51 × erisco quits (~erisco@d24-57-249-233.home.cgocable.net) (*.net *.split)
21:39:51 × dragestil quits (~znc@user/dragestil) (*.net *.split)
21:39:51 × welterde quits (welterde@thinkbase.srv.welterde.de) (*.net *.split)
21:39:51 × earthy quits (~arthurvl@2001:984:275b:1:ba27:ebff:fea0:40b0) (*.net *.split)
21:39:51 × cawfee quits (~root@2406:3003:2077:2758::babe) (*.net *.split)
21:39:51 × liskin quits (~liskin@xmonad/liskin) (*.net *.split)
21:39:51 × mud quits (~mud@user/kadoban) (*.net *.split)
21:39:51 × emergence quits (~emergence@vm0.max-p.me) (*.net *.split)
21:39:51 × tinwood quits (~tinwood@canonical/tinwood) (*.net *.split)
21:39:51 × leah2 quits (~leah@vuxu.org) (*.net *.split)
21:39:51 × defanor quits (~defanor@tart.uberspace.net) (*.net *.split)
21:39:51 × MasseR quits (~MasseR@51.15.143.128) (*.net *.split)
21:39:51 × codedmart quits (codedmart@2600:3c01::f03c:92ff:fefe:8511) (*.net *.split)
21:39:51 × nshepperd quits (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (*.net *.split)
21:39:51 × haasn quits (~nand@haasn.dev) (*.net *.split)
21:39:51 × Putonlalla quits (~sapekiis@it-cyan.it.jyu.fi) (*.net *.split)
21:39:51 × koolazer quits (~koo@user/koolazer) (*.net *.split)
21:39:51 × mikko quits (~mikko@2a02:7b40:d418:6a61::1) (*.net *.split)
21:39:51 × Taneb quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (*.net *.split)
21:39:51 × bjobjo quits (~bjobjo@user/bjobjo) (*.net *.split)
21:39:51 × xnbya quits (~xnbya@2a01:4f8:c17:cbdd::1) (*.net *.split)
21:39:51 × bastelfreak quits (~bastelfre@basteles-bastelknecht.bastelfreak.org) (*.net *.split)
21:39:51 × Adran quits (~adran@botters/adran) (*.net *.split)
21:39:51 × energizer quits (~energizer@user/energizer) (*.net *.split)
21:39:51 × tomjaguarpaw quits (~tom@li367-225.members.linode.com) (*.net *.split)
21:39:51 × res0nat0r8 quits (~Fletch@dia.whatbox.ca) (*.net *.split)
21:39:52 × Arsen quits (arsen@managarm/dev/Arsen) (*.net *.split)
21:39:52 × hrdl quits (~hrdl@mail.hrdl.eu) (*.net *.split)
21:39:52 × immae quits (~immae@2a01:4f8:141:53e7::) (*.net *.split)
21:39:52 × cross quits (~cross@spitfire.i.gajendra.net) (*.net *.split)
21:39:52 × janus quits (janus@anubis.0x90.dk) (*.net *.split)
21:39:52 × phaazon quits (~phaazon@2001:41d0:a:fe76::1) (*.net *.split)
21:39:52 × sphynx quits (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288) (*.net *.split)
21:39:52 × dixie quits (~dixie@real.wilbury.sk) (*.net *.split)
21:39:52 × dunj3 quits (~dunj3@kingdread.de) (*.net *.split)
21:39:52 × cpape quits (~user@2a01:4f9:c010:632d::1) (*.net *.split)
21:39:52 × sm[i]_ quits (~user@li229-222.members.linode.com) (*.net *.split)
21:39:52 × xsarnik quits (xsarnik@lounge.fi.muni.cz) (*.net *.split)
21:39:52 × tubogram quits (~tubogram@user/tubogram) (*.net *.split)
21:39:52 × cjb quits (~cjb@user/cjb) (*.net *.split)
21:39:52 × Axman6 quits (~Axman6@user/axman6) (*.net *.split)
21:39:56 favonia joins (~favonia@user/favonia)
21:39:58 × hololeap quits (~hololeap@user/hololeap) (Excess Flood)
21:40:55 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
21:40:55 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
21:41:24 hololeap joins (~hololeap@user/hololeap)
21:43:04 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
21:43:21 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
21:44:29 jbox joins (~jbox@2600:1700:2196:2060:75f5:b1ad:65ea:5c0a)
21:44:29 zincy_ joins (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
21:44:29 Codaraxis_ joins (~Codaraxis@user/codaraxis)
21:44:29 cjb joins (~cjb@user/cjb)
21:44:29 lukec joins (9dfd4d094e@2604:bf00:561:2000::10e)
21:44:29 acidjnk_new joins (~acidjnk@p200300d0c7271e72fcf154b5eecf3df6.dip0.t-ipconnect.de)
21:44:29 jkoshy joins (99b9359beb@2604:bf00:561:2000::10f)
21:44:29 sm2n joins (ae95cb1267@user/sm2n)
21:44:29 acidsys joins (~LSD@2.lsd.systems)
21:44:29 ubert joins (~Thunderbi@p200300ecdf0ba218e6b318fffe838f33.dip0.t-ipconnect.de)
21:44:29 geekosaur joins (~geekosaur@xmonad/geekosaur)
21:44:29 econo joins (uid147250@user/econo)
21:44:29 vjoki joins (~vjoki@2a00:d880:3:1::fea1:9ae)
21:44:29 sander joins (~sander@user/sander)
21:44:29 joeyh joins (joeyh@kitenet.net)
21:44:29 sunarch joins (uid526836@user/sunarch)
21:44:29 mvk joins (~mvk@2607:fea8:5cc1:fa00::4702)
21:44:29 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:356c:6df7:ff7f:48a3)
21:44:29 arahael joins (~arahael@27-32-144-20.tpgi.com.au)
21:44:29 evanrelf joins (3addc196af@2604:bf00:561:2000::f0)
21:44:29 jkaye joins (~jkaye@2601:281:8300:7530:7309:f677:c771:6123)
21:44:29 waleee joins (~waleee@h-82-196-111-63.NA.cust.bahnhof.se)
21:44:29 DNH joins (~DNH@2a02:8108:1100:16d8:58c0:b83a:3eea:a1cf)
21:44:29 emf joins (~emf@2620:10d:c090:400::5:9a5b)
21:44:29 unyu joins (~pyon@user/pyon)
21:44:29 reumeth joins (~reumeth@user/reumeth)
21:44:29 masterbuilder joins (~user@user/masterbuilder)
21:44:29 lbseale joins (~ep1ctetus@user/ep1ctetus)
21:44:29 slowButPresent joins (~slowButPr@user/slowbutpresent)
21:44:29 zmt00 joins (~zmt00@user/zmt00)
21:44:29 xff0x joins (~xff0x@2001:1a81:527f:8300:4a2b:7ccd:5352:f2b5)
21:44:29 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
21:44:29 Sgeo joins (~Sgeo@user/sgeo)
21:44:29 mc47 joins (~mc47@xmonad/TheMC47)
21:44:29 Typedfern joins (~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
21:44:29 TranquilEcho joins (~grom@user/tranquilecho)
21:44:29 FragByte joins (~christian@user/fragbyte)
21:44:29 mmhat joins (~mmh@55d431d8.access.ecotel.net)
21:44:29 Profpatsch joins (~Profpatsc@static.88-198-193-255.clients.your-server.de)
21:44:29 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
21:44:29 notzmv joins (~zmv@user/notzmv)
21:44:29 nautical joins (~nautical@2601:602:900:1630::396f)
21:44:29 sweater joins (~sweater@206.81.18.26)
21:44:29 carbolymer joins (~carbolyme@dropacid.net)
21:44:29 shanemikel joins (~shanemike@desk.roadwar.net)
21:44:29 remexre joins (~remexre@user/remexre)
21:44:29 teddyc joins (theodorc@cassarossa.samfundet.no)
21:44:29 dyniec joins (~dyniec@mail.dybiec.info)
21:44:29 rembo10 joins (~rembo10@remulis.com)
21:44:29 TimWolla joins (~timwolla@2a01:4f8:150:6153:beef::6667)
21:44:29 cocreature joins (~moritz@2a03:b0c0:3:d0::c8:f001)
21:44:29 xacktm joins (xacktm@user/xacktm)
21:44:29 pragma- joins (~chaos@user/pragmatic-chaos)
21:44:29 OscarH joins (~OscarH@90.201.86.195)
21:44:29 ncopa joins (~ncopa@gbr2-dev1.alpinelinux.org)
21:44:29 piele joins (~piele@tbonesteak.creativeserver.net)
21:44:29 dka joins (~code-is-a@ns3059207.ip-193-70-33.eu)
21:44:29 ralu joins (~ralu@static.211.245.203.116.clients.your-server.de)
21:44:29 infinity0 joins (~infinity0@occupy.ecodis.net)
21:44:29 shriekingnoise joins (~shrieking@186.137.144.80)
21:44:29 nitrix joins (~nitrix@user/nitrix)
21:44:29 hays joins (rootvegeta@fsf/member/hays)
21:44:29 phma joins (~phma@host-67-44-208-5.hnremote.net)
21:44:29 johnw joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
21:44:29 retro_ joins (~retro@97e2ba2e.skybroadband.com)
21:44:29 Axman6 joins (~Axman6@user/axman6)
21:44:29 haskl joins (~haskl@user/haskl)
21:44:29 TMA joins (tma@twin.jikos.cz)
21:44:29 iphy joins (sid67735@id-67735.lymington.irccloud.com)
21:44:29 _0x47_ joins (sid508683@id-508683.tinside.irccloud.com)
21:44:29 whez joins (sid470288@id-470288.lymington.irccloud.com)
21:44:29 awpr joins (uid446117@id-446117.lymington.irccloud.com)
21:44:29 teehemkay_ joins (sid14792@id-14792.lymington.irccloud.com)
21:44:29 angerman joins (sid209936@id-209936.ilkley.irccloud.com)
21:44:29 ephemient joins (uid407513@id-407513.lymington.irccloud.com)
21:44:29 gregberns__ joins (sid315709@id-315709.helmsley.irccloud.com)
21:44:29 kaizen joins (sid501599@id-501599.helmsley.irccloud.com)
21:44:29 MironZ joins (~MironZ@nat-infra.ehlab.uk)
21:44:29 Feuermagier_ joins (~Feuermagi@154.28.188.22)
21:44:29 Kaiepi joins (~Kaiepi@156.34.44.192)
21:44:29 Katarushisu joins (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net)
21:44:29 micro joins (~micro@user/micro)
21:44:29 sm[i]_ joins (~user@li229-222.members.linode.com)
21:44:29 xsarnik joins (xsarnik@lounge.fi.muni.cz)
21:44:29 pie__ joins (~pie_bnc@user/pie/x-2818909)
21:44:29 bcoppens_ joins (~bartcopp@vpn2.bartcoppens.be)
21:44:29 m1dnight_ joins (~christoph@christophe.dev)
21:44:29 dfordivam1 joins (~dfordivam@tk2-219-19469.vs.sakura.ne.jp)
21:44:29 [exa] joins (~exa@user/exa/x-3587197)
21:44:29 Hecate joins (~mariposa@user/hecate)
21:44:29 anderson joins (~ande@user/anderson)
21:44:29 glider joins (~glider@user/glider)
21:44:29 dminuoso joins (~dminuoso@user/dminuoso)
21:44:29 aforemny joins (~aforemny@static.248.158.34.188.clients.your-server.de)
21:44:29 Techcable_ joins (~Techcable@168.235.93.147)
21:44:29 madnight_ joins (~madnight@static.59.103.201.195.clients.your-server.de)
21:44:29 m5zs7k joins (aquares@web10.mydevil.net)
21:44:29 greyrat_ joins (~greyrat@ip202.ip-51-178-215.eu)
21:44:29 eL_Bart0- joins (eL_Bart0@dietunichtguten.org)
21:44:29 davl_ joins (~davl@207.154.228.18)
21:44:29 russruss joins (~russruss@my.russellmcc.com)
21:44:29 MidAutumnMoon6 joins (~MidAutumn@user/midautumnmoon)
21:44:29 Teacup joins (~teacup@user/teacup)
21:44:29 monochrom joins (trebla@216.138.220.146)
21:44:29 dolio joins (~dolio@130.44.130.54)
21:44:29 jzsinatra joins (~jzsinatra@88-114-238-31.elisa-laajakaista.fi)
21:44:29 statusbot joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
21:44:29 dtman34 joins (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net)
21:44:29 hiredman joins (~hiredman@frontier1.downey.family)
21:44:29 hongminhee joins (sid295@id-295.tinside.irccloud.com)
21:44:29 SethTisue__ joins (sid14912@id-14912.ilkley.irccloud.com)
21:44:29 AndreasK joins (sid320732@id-320732.uxbridge.irccloud.com)
21:44:29 V joins (~v@anomalous.eu)
21:44:29 gaze___ joins (sid387101@id-387101.helmsley.irccloud.com)
21:44:29 Pent joins (sid313808@id-313808.lymington.irccloud.com)
21:44:29 acertain joins (sid470584@id-470584.hampstead.irccloud.com)
21:44:29 dmj` joins (sid72307@id-72307.hampstead.irccloud.com)
21:44:29 mrianbloom joins (sid350277@id-350277.ilkley.irccloud.com)
21:44:29 sclv joins (sid39734@haskell/developer/sclv)
21:44:29 bjs joins (sid190364@user/bjs)
21:44:29 siers joins (~ij@user/ij)
21:44:29 enemeth79 joins (sid309041@id-309041.lymington.irccloud.com)
21:44:29 cbarrett joins (sid192934@id-192934.helmsley.irccloud.com)
21:44:29 tapas joins (sid467876@id-467876.ilkley.irccloud.com)
21:44:29 saolsen joins (sid26430@id-26430.lymington.irccloud.com)
21:44:29 sprout_ joins (~quassel@2a02:a467:ccd6:1:4de4:2055:b8c4:f1e)
21:44:29 whatif joins (~user@2400:8902::f03c:92ff:fe60:98d8)
21:44:29 ysh joins (sid6017@id-6017.ilkley.irccloud.com)
21:44:29 JSharp joins (sid4580@id-4580.lymington.irccloud.com)
21:44:29 Boarders_ joins (sid425905@id-425905.lymington.irccloud.com)
21:44:29 acowley joins (~acowley@c-68-83-22-43.hsd1.nj.comcast.net)
21:44:29 S11001001 joins (sid42510@id-42510.ilkley.irccloud.com)
21:44:29 NiKaN joins (sid385034@id-385034.helmsley.irccloud.com)
21:44:29 Cale joins (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
21:44:29 thaumavorio joins (~thaumavor@thaumavor.io)
21:44:29 quintasan joins (~quassel@quintasan.pl)
21:44:29 peutri joins (~peutri@ns317027.ip-94-23-46.eu)
21:44:29 lyxia joins (~lyxia@poisson.chat)
21:44:29 tv joins (~tv@user/tv)
21:44:29 tnks joins (sid412124@id-412124.helmsley.irccloud.com)
21:44:29 glguy joins (x@libera/staff/glguy)
21:44:29 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
21:44:29 duckonomy joins (~duckonomy@177.ip-144-217-84.net)
21:44:29 marienz joins (~marienz@libera/staff/marienz)
21:44:29 davetapley joins (sid666@id-666.uxbridge.irccloud.com)
21:44:29 rtpg joins (sid443069@id-443069.ilkley.irccloud.com)
21:44:29 b20n joins (sid115913@id-115913.uxbridge.irccloud.com)
21:44:29 lightandlight joins (sid135476@id-135476.helmsley.irccloud.com)
21:44:29 caasih joins (sid13241@id-13241.ilkley.irccloud.com)
21:44:29 edmundnoble joins (sid229620@id-229620.helmsley.irccloud.com)
21:44:29 PotatoGim joins (sid99505@id-99505.lymington.irccloud.com)
21:44:29 philpax_ joins (sid516926@id-516926.lymington.irccloud.com)
21:44:29 jakesyl_ joins (sid56879@id-56879.hampstead.irccloud.com)
21:44:29 bradparker joins (sid262931@uxbridge.irccloud.com)
21:44:29 Ekho joins (~Ekho@user/ekho)
21:44:29 heath joins (~heath@user/heath)
21:44:29 incertia joins (~incertia@d4-50-26-103.nap.wideopenwest.com)
21:44:29 ikke joins (~kevin@alpine/developer/ikke)
21:44:29 nisstyre joins (~wes@user/nisstyre)
21:44:29 Athas joins (athas@sigkill.dk)
21:44:29 haveo joins (~haveo@sl35.iuwt.fr)
21:44:29 Patternmaster joins (~georg@li1192-118.members.linode.com)
21:44:29 cods joins (~fred@82-65-232-44.subs.proxad.net)
21:44:29 bens joins (~bens@www.typius.com)
21:44:29 jjhoo joins (~jahakala@user/jjhoo)
21:44:29 dawdler joins (~dawdler@user/dawdler)
21:44:29 vgtw joins (~vgtw@c-6a60205c.07-348-756d651.bbcust.telenor.se)
21:44:29 yushyin joins (3RNeQpThcJ@karif.server-speed.net)
21:44:29 m4lvin joins (~m4lvin@w4eg.de)
21:44:29 fryguybob joins (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com)
21:44:29 finsternis joins (~X@23.226.237.192)
21:44:29 myme joins (~myme@40.51-175-185.customer.lyse.net)
21:44:29 amk joins (~amk@109.255.169.126)
21:44:29 bgamari joins (~bgamari@64.223.235.131)
21:44:29 averell joins (~averell@user/averell)
21:44:29 tom__ joins (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684)
21:44:29 yahb joins (xsbot@user/mniip/bot/yahb)
21:44:29 Maxdamantus joins (~Maxdamant@user/maxdamantus)
21:44:29 mjrosenb joins (~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net)
21:44:29 turlando joins (~turlando@user/turlando)
21:44:29 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
21:44:29 dibblego joins (~dibblego@haskell/developer/dibblego)
21:44:29 bbear joins (~znc@21212.s.t4vps.eu)
21:44:29 darkstardevx joins (~darkstard@50.39.115.145)
21:44:29 erisco joins (~erisco@d24-57-249-233.home.cgocable.net)
21:44:29 spoofer joins (~spoofer@64.185.111.205)
21:44:29 dwt_ joins (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net)
21:44:29 jackhill joins (~jackhill@kalessin.dragonsnail.net)
21:44:29 dragestil joins (~znc@user/dragestil)
21:44:29 Unode joins (~Unode@194.94.44.220)
21:44:29 welterde joins (welterde@thinkbase.srv.welterde.de)
21:44:29 derelict joins (~derelict@user/derelict)
21:44:29 earthy joins (~arthurvl@2001:984:275b:1:ba27:ebff:fea0:40b0)
21:44:29 cawfee joins (~root@2406:3003:2077:2758::babe)
21:44:29 liskin joins (~liskin@xmonad/liskin)
21:44:29 asm joins (~alexander@user/asm)
21:44:29 mud joins (~mud@user/kadoban)
21:44:29 gawen joins (~gawen@user/gawen)
21:44:29 oats joins (~thomas@user/oats)
21:44:29 emergence joins (~emergence@vm0.max-p.me)
21:44:29 caubert joins (~caubert@136.244.111.235)
21:44:29 tinwood joins (~tinwood@canonical/tinwood)
21:44:29 leah2 joins (~leah@vuxu.org)
21:44:29 WhateverRabbit joins (~rabbit@206.81.18.26)
21:44:29 niko joins (~niko@libera/staff/niko)
21:44:29 defanor joins (~defanor@tart.uberspace.net)
21:44:29 MasseR joins (~MasseR@51.15.143.128)
21:44:29 codedmart joins (codedmart@2600:3c01::f03c:92ff:fefe:8511)
21:44:29 nshepperd joins (nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
21:44:29 haasn joins (~nand@haasn.dev)
21:44:29 hgolden joins (~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
21:44:29 adamCS joins (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com)
21:44:29 mmaruseacph2 joins (~mihai@198.199.100.72)
21:44:29 Putonlalla joins (~sapekiis@it-cyan.it.jyu.fi)
21:44:29 koolazer joins (~koo@user/koolazer)
21:44:29 tubogram joins (~tubogram@user/tubogram)
21:44:29 mikko joins (~mikko@2a02:7b40:d418:6a61::1)
21:44:29 Taneb joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0)
21:44:29 bjobjo joins (~bjobjo@user/bjobjo)
21:44:29 xnbya joins (~xnbya@2a01:4f8:c17:cbdd::1)
21:44:29 bastelfreak joins (~bastelfre@basteles-bastelknecht.bastelfreak.org)
21:44:29 Adran joins (~adran@botters/adran)
21:44:29 energizer joins (~energizer@user/energizer)
21:44:29 tomjaguarpaw joins (~tom@li367-225.members.linode.com)
21:44:29 res0nat0r8 joins (~Fletch@dia.whatbox.ca)
21:44:29 Arsen joins (arsen@managarm/dev/Arsen)
21:44:29 hrdl joins (~hrdl@mail.hrdl.eu)
21:44:29 immae joins (~immae@2a01:4f8:141:53e7::)
21:44:29 cross joins (~cross@spitfire.i.gajendra.net)
21:44:29 phaazon joins (~phaazon@2001:41d0:a:fe76::1)
21:44:29 janus joins (janus@anubis.0x90.dk)
21:44:29 sphynx joins (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288)
21:44:29 dixie joins (~dixie@real.wilbury.sk)
21:44:29 cpape joins (~user@2a01:4f9:c010:632d::1)
21:44:29 dunj3 joins (~dunj3@kingdread.de)
21:44:30 × reumeth quits (~reumeth@user/reumeth) (Ping timeout: 268 seconds)
21:44:32 × glider quits (~glider@user/glider) (Max SendQ exceeded)
21:45:21 glider joins (~glider@user/glider)
21:45:32 × Topsi quits (~Tobias@dyndsl-095-033-088-116.ewe-ip-backbone.de) (Read error: Connection reset by peer)
21:45:48 Farzad joins (~FarzadBek@5.234.247.133)
21:46:56 × sunarch quits (uid526836@user/sunarch) (Ping timeout: 268 seconds)
21:47:28 sunarch joins (uid526836@user/sunarch)
21:49:23 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
21:49:41 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
21:50:21 burnsidesLlama joins (~burnsides@dhcp168-026.wadham.ox.ac.uk)
21:51:00 wootehfoot joins (~wootehfoo@user/wootehfoot)
21:57:27 jstolarek joins (~jstolarek@137.220.120.162)
22:05:51 poie joins (~poie@87.196.74.8)
22:07:04 <poie> .
22:07:13 Logio joins (em@kapsi.fi)
22:09:49 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
22:10:06 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
22:11:41 × jstolarek quits (~jstolarek@137.220.120.162) (Ping timeout: 252 seconds)
22:13:45 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
22:14:03 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
22:14:12 × zincy_ quits (~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection)
22:14:45 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
22:15:48 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
22:15:55 Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
22:16:22 lavaman joins (~lavaman@98.38.249.169)
22:17:29 <janus> DigitalKiwi: why do you wish he'd quit writing about crypto? i am happy somebody is speaking up
22:18:12 LukeHoersten joins (~LukeHoers@user/lukehoersten)
22:18:36 <maerwald> Rembane: isn't that dead?
22:19:09 × LukeHoersten quits (~LukeHoers@user/lukehoersten) (Client Quit)
22:19:12 <janus> is what dead? purescript? no
22:20:11 <DigitalKiwi> flow
22:20:20 <Rembane> maerwald: Flow is dead, but it wasn't when Typescript was created
22:20:40 <maerwald> ergonomics > properties
22:20:58 <DigitalKiwi> good thing typescript was created then eh otherwise we'd have nothing ;D
22:21:09 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
22:24:58 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:31:19 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
22:31:37 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
22:32:24 yauhsien joins (~yauhsien@61-231-58-114.dynamic-ip.hinet.net)
22:33:44 × danso quits (~danso@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 265 seconds)
22:34:41 × poie quits (~poie@87.196.74.8) (Remote host closed the connection)
22:37:28 × yauhsien quits (~yauhsien@61-231-58-114.dynamic-ip.hinet.net) (Ping timeout: 264 seconds)
22:40:25 <Axman6> janus: because a lot of his points are just wrong, and they are made in a pretty insulting way. He seems to have a particular hate for IOHK, who are one of the leaders in making crypto currency not need to boil the oceans to buy a bag of chips. he seems to have taken the stance that cryptocurrency is inherently evil and everyone should think it's bad, but really that's a difficult position to completely support
22:41:53 xcmw joins (~textual@dyn-72-33-2-173.uwnet.wisc.edu)
22:42:19 jonatanb joins (~accio@31-178-144-108.dynamic.chello.pl)
22:42:38 <janus> Axman6: i'd reply in #haskell-offtopic but it seems you're not there..
22:44:35 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
22:44:52 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
22:46:17 <EvanR> for a minute I thought we were talking about cryptography oh well
22:46:53 × jonatanb quits (~accio@31-178-144-108.dynamic.chello.pl) (Ping timeout: 252 seconds)
22:47:17 <dsal> I'm too pedantic to call cryptocurrency "crypto"
22:48:02 × Farzad quits (~FarzadBek@5.234.247.133) (Quit: Leaving)
22:49:35 <monochrom> No worries, I refuse to call web api "api", too. :)
22:50:17 <EvanR> crypto by itself of course refers to the platonic ideal of all things with crypto as its prefix
22:50:43 <dsal> monochrom: I have that problem, too, but I think I'm just slightly less pedantic there.
22:50:54 <EvanR> anything greek necessarily does that
22:52:03 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
22:52:20 hskpractice joins (~hskpracti@94-255-217-215.cust.bredband2.com)
22:52:33 × xsperry quits (~xs@user/xsperry) ()
22:52:56 <xcmw> Given a some representation of a String, what it is best way to apply a list of sorted non overlapping edits to a string where an edit has a start line, start col, end line, end col, and the new text for that range?
22:53:29 <dsal> I'd start by adjusting my data structure to something nearer the thing you're trying to do.
22:53:42 × DNH quits (~DNH@2a02:8108:1100:16d8:58c0:b83a:3eea:a1cf) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:54:12 <xcmw> Do you mean the represent of the String or the edit?
22:55:42 <dsal> Well, both. A string doesn't have line numbers.
22:55:57 <dsal> So at the very least, you'll want some kind of container of lines since that's the basic unit of your edit description.
22:56:24 <EvanR> you're line editing? How about at least IntMap Line
22:56:42 <EvanR> line number indexed set of Lines xD
22:56:51 <dsal> The downside of that is that it gets weird when you delete lines.
22:56:51 × hskpractice quits (~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
22:56:52 × alx741 quits (~alx741@181.196.69.176) (Quit: alx741)
22:56:57 <wz1000> xcmw: rope-utf16-splay might be what you are looking for. It gets used by the haskell lsp library to do something similar
22:57:05 <EvanR> then it's not literally the line number
22:57:08 <EvanR> it's just in order
22:57:17 × cosimone quits (~user@93-47-231-139.ip115.fastwebnet.it) (Remote host closed the connection)
22:57:39 <dsal> Actually, doesn't the whole Map thing have a means of accessing things by position?
22:57:48 <boxscape_> at that point I imagine a Seq makes more sense than an IntMap
22:58:06 <xcmw> This is related to LSP's TextEdit so that may be what I need
22:58:26 <dsal> :t M.elemAt
22:58:27 alx741 joins (~alx741@181.196.69.176)
22:58:27 <lambdabot> Int -> M.Map k a -> (k, a)
22:58:42 <wz1000> ok, well there are implmentations for this in the lsp library
22:59:02 <boxscape_> an IntMap gets especially awkward when you want to add lines
22:59:12 <EvanR> ah
22:59:26 <xcmw> I actually want to do this in Idris so it might a bit more difficult
22:59:51 <dsal> I assume the line numbers were in 10s, so adding lines means you add, e.g. 15. Solving the problem once and for all.
23:00:17 <EvanR> "I don't often implement text editors, but when I do, I do it in Idris"
23:00:20 <dsal> In any case, step one: Figure out how to represent your data as lines. Columns *may* be less of a pain, or worse.
23:00:53 <monochrom> Ugh this brings back fond memories of BASIC and the "renumber" command.
23:00:57 <xcmw> I'm not making a text editor, just working on an LSP server.
23:01:45 <EvanR> clearly line numbers should be Rational
23:01:48 × pfurla quits (~pfurla@2804:14d:5c81:4104:f9a9:132:7129:df1c) (Quit: gone to sleep. ZZZzzz…)
23:02:49 <zero> can we easily create something like (IO "somestring") ?
23:03:06 <EvanR> :k IO "somestring"
23:03:07 <lambdabot> error:
23:03:07 <lambdabot> • Expected a type, but ‘"somestring"’ has kind ‘GHC.Types.Symbol’
23:03:07 <lambdabot> • In the first argument of ‘IO’, namely ‘"somestring"’
23:03:15 <EvanR> :kk IO
23:03:18 <EvanR> :k IO
23:03:18 <lambdabot> * -> *
23:03:31 <EvanR> "somestring" is not a *
23:03:39 <monochrom> Is your (IO "somestring") a type? Is it a term?
23:03:39 <geekosaur> % :set -XPolyKinds
23:03:41 <Axman6> zero: what value has type "something"?
23:03:41 <yahb> geekosaur:
23:03:47 <geekosaur> % :k IO
23:03:47 <yahb> geekosaur: * -> *
23:04:00 <Axman6> ?? :: "something"
23:04:00 <lambdabot> :: "something"
23:04:07 <Axman6> o.O
23:04:11 <zero> what?
23:04:13 <EvanR> lol
23:04:28 × mvk quits (~mvk@2607:fea8:5cc1:fa00::4702) (Ping timeout: 264 seconds)
23:04:29 <EvanR> try again, what do you mean by IO "somestring"
23:04:50 jeetelongname joins (~jeet@148.197.248.54)
23:04:50 <zero> nvm, i was thinking badly
23:04:51 <dsal> Wouldn't DataKinds work?
23:05:17 <Axman6> "something" isn't a type level String though
23:05:35 <zero> i'm so confused by that
23:06:13 <xcmw> zero what are you actually trying to do?
23:07:17 <Hecate> % :k "Hello"
23:07:17 <yahb> Hecate: GHC.Types.Symbol
23:07:20 <Hecate> % :k "Hello/32"
23:07:21 <yahb> Hecate: GHC.Types.Symbol
23:08:01 <xcmw> IO "somestring" doesn't mean anything
23:08:10 <dsal> Surely it means something.
23:08:25 <EvanR> not with that attitude
23:08:47 <monochrom> Dead horse.
23:09:01 <xcmw> zero do you want pure "somestring" ?
23:09:23 <xcmw> or do you want IO String ?
23:09:37 <jeetelongname> An IO Type is nothing but the potential for a certain type afik, there is nothing to unwrap as nothing has happened (yet)
23:09:56 <xcmw> or are you trying to do something insane with types?
23:12:42 xsperry joins (~xs@user/xsperry)
23:13:17 <zero> i just needed pure
23:13:56 <EvanR> :t pure "somestring"
23:13:57 <lambdabot> Applicative f => f [Char]
23:14:15 <EvanR> bollocks that didn't get clear anything up xD
23:14:22 <EvanR> answer: IO String
23:15:29 <zero> i was doing: do { x <- (smething :: IO String) ; ... pure r where r | null x = ... {{etcetera}} }
23:17:43 × jbox quits (~jbox@2600:1700:2196:2060:75f5:b1ad:65ea:5c0a) (Changing host)
23:17:43 jbox joins (~jbox@user/jbox)
23:18:23 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
23:20:53 <EvanR> variable naming question... you have IORefs holding your value. What do you call the ref variable
23:21:15 <EvanR> what if you have multiple refs going on, what's the formula
23:25:19 <monochrom> If there is only one, I use "v" for the ref, "x" for the value inside. This doesn't scale.
23:26:09 <monochrom> Hrm let me find out what I did last time I had many of them.
23:28:08 × masterbuilder quits (~user@user/masterbuilder) (Remote host closed the connection)
23:28:34 <jackdk> I usually stick an R on the end or an r at the beginning
23:28:54 <jackdk> (similarly e/b/d when writing reflex-frp code dealing with Event/Behavior/Dynamic)
23:29:02 <EvanR> sold
23:29:48 <zero> can i use guards inside a do let?
23:30:06 <xcmw> I'm not sure that using ropes or some better data structure helps since the string isn't persisted. I just want to apply a list of edits (sorted so it can be done it a single pass) to a file.
23:30:18 <boxscape_> zero yes
23:31:01 <zero> :)
23:33:16 × ozzymcduff quits (~mathieu@81-234-151-21-no94.tbcn.telia.com) (Ping timeout: 245 seconds)
23:36:32 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:356c:6df7:ff7f:48a3) (Remote host closed the connection)
23:36:35 <xcmw> I was think about using a mealy machine or something similar.
23:37:11 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:42:02 Lycurgus joins (~juan@98.4.112.204)
23:42:44 DNH joins (~DNH@2a02:8108:1100:16d8:58c0:b83a:3eea:a1cf)
23:43:23 danso joins (~danso@23-233-111-52.cpe.pppoe.ca)
23:45:34 jeetelongname is now known as yeet
23:48:02 Erutuon joins (~Erutuon@user/erutuon)
23:48:55 yeet is now known as jeetelongname
23:53:04 × max22- quits (~maxime@2a01cb0883359800172da6e8deefe185.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
23:57:16 <wz1000> The rope just gives you an efficient way to split your input as lines. Otherwise you're going to have to iterate through the entire string to look for line boundaries after applying each edit

All times are in UTC on 2021-11-29.