2021/11/04

2021-11-04 00:00:15 +0100 <boxscape_> definitely seems like the cutoff was increased though
2021-11-04 00:00:16 +0100Axman6will stop abusing lambdabot
2021-11-04 00:00:23 +0100 <boxscape_> @botsnack
2021-11-04 00:00:23 +0100 <lambdabot> :)
2021-11-04 00:02:40 +0100 <Cajun> i wonder if it would be possible to force the tuple'd `d` type variables in that monster to be unique so it can give the entire alphabet. i dont know enough about type level stuff to tell if its possible off the bat :P
2021-11-04 00:04:08 +0100 <monochrom> GHC may prefer to enumerate d0, d1, d2... instead of running through the alphabet.
2021-11-04 00:06:13 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-04 00:06:50 +0100 <mjrosenb> does anything seem off about {value ^? _Ctor . to (==OtherCtor)}
2021-11-04 00:10:05 +0100 <hpc> Cajun: some rank-2 stuff can probably force it
2021-11-04 00:10:22 +0100 <hpc> with reasonably short code
2021-11-04 00:13:41 +0100 <Cajun> i figured it would require some foralls but i dont know how to use them to force types to be unique. will require some tinkering
2021-11-04 00:14:10 +0100 <mjrosenb> well, in that code, they're all explicitly the same. You can set it up such that they're naturally different
2021-11-04 00:14:41 +0100mjrosenbattempts to remember how
2021-11-04 00:14:46 +0100 <hpc> :t \x -> (runST x, runST x)
2021-11-04 00:14:47 +0100 <lambdabot> error:
2021-11-04 00:14:47 +0100 <lambdabot> • Couldn't match expected type ‘ST s a’ with actual type ‘p’
2021-11-04 00:14:47 +0100 <lambdabot> because type variable ‘s’ would escape its scope
2021-11-04 00:15:42 +0100 <glguy> Axman6: Use /say
2021-11-04 00:16:33 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
2021-11-04 00:17:00 +0100 <monochrom> Normally "\x" is monomorphizing. You will need some handwritten type annotations.
2021-11-04 00:19:28 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3)
2021-11-04 00:19:46 +0100 <Cajun> https://paste.tomsmeding.com/jcf3L2oX sadly this didnt work either, ghc is too smart
2021-11-04 00:19:49 +0100 <hpc> :t let f = \x -> (Const x, Const x) in f.f.f.f
2021-11-04 00:19:50 +0100 <lambdabot> forall k1 k2 k3 k4 k5 k6 k7 k8 a (b1 :: k1) (b2 :: k2) (b3 :: k3) (b4 :: k4) (b5 :: k5) (b6 :: k6) (b7 :: k7) (b8 :: k8). a -> (Const (Const (Const (Const a b1, Const a b2) b3, Const (Const a b1,
2021-11-04 00:19:50 +0100 <lambdabot> Const a b2) b4) b5, Const (Const (Const a b1, Const a b2) b3, Const (Const a b1, Const a b2) b4) b6) b7, Const (Const (Const (Const a b1, Const a b2) b3, Const (Const a b1, Const a b2) b4) b5, Const
2021-11-04 00:19:50 +0100 <lambdabot> (Const (Const a b1, Const a b2) b3, Const (Const a b1, Const a b2) b4) b6) b8)
2021-11-04 00:20:02 +0100 <hpc> there we go
2021-11-04 00:20:32 +0100 <hpc> oh man, it even does the kind polymorphism
2021-11-04 00:21:55 +0100ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2021-11-04 00:22:47 +0100 <Cajun> wouldnt `Const x` be only partially applied?
2021-11-04 00:23:17 +0100 <hpc> :t Const
2021-11-04 00:23:18 +0100 <lambdabot> forall k a (b :: k). a -> Const a b
2021-11-04 00:23:34 +0100 <Cajun> ah well that makes sense
2021-11-04 00:23:53 +0100 <Cajun> the type has the `b` but the term doesnt. fun
2021-11-04 00:24:15 +0100 <hpc> yep
2021-11-04 00:24:28 +0100 <hpc> or another way to look at it
2021-11-04 00:24:36 +0100 <hpc> that data constructor makes Const a b = a
2021-11-04 00:24:37 +0100 <hpc> :k Const
2021-11-04 00:24:38 +0100 <lambdabot> * -> k -> *
2021-11-04 00:24:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-11-04 00:24:45 +0100 <hpc> and that's the type parameters
2021-11-04 00:24:50 +0100 <hpc> so you sort of get Const a b = a
2021-11-04 00:25:12 +0100 <hpc> b is ignored and can be anything
2021-11-04 00:25:37 +0100 <hpc> and a is constrained to Type by being involved in the data constructor
2021-11-04 00:26:11 +0100 <Cajun> in the source for Data.Functor.Const, it doesnt explicitly state the kind polymorphism. can GHC just assume polymorphic kinds instead of Type?
2021-11-04 00:26:24 +0100 <boxscape_> with -XPolyKinds it does
2021-11-04 00:26:32 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2021-11-04 00:27:47 +0100morphism(~ret@static.247.176.55.162.clients.your-server.de) (Ping timeout: 268 seconds)
2021-11-04 00:29:13 +0100morphism(~ret@86.57.6.225)
2021-11-04 00:33:44 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-11-04 00:33:44 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-11-04 00:33:44 +0100wroathe(~wroathe@user/wroathe)
2021-11-04 00:43:19 +0100 <mjrosenb> I'm guessing there isn't a built in function equivalent to Data.Set.fromList . Data.Map.elems
2021-11-04 00:44:48 +0100kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
2021-11-04 00:45:06 +0100 <Axman6> type Set a = Map a (); then it's just void :P
2021-11-04 00:45:12 +0100 <sclv> no reason there would be. there's keysSet for the keys, fwiw
2021-11-04 00:45:25 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-11-04 00:47:21 +0100aegon(~mike@174.127.249.180) (Quit: leaving)
2021-11-04 00:48:09 +0100 <mjrosenb> the best argument that I can think of for why it would exist is that the values of a map have no inherent order, so why return them in a structure that has an inherent order.
2021-11-04 00:48:33 +0100 <sclv> well they can have multiplicity
2021-11-04 00:48:42 +0100 <sclv> which this loses. so arguably you'd want a multiset
2021-11-04 00:48:45 +0100 <mjrosenb> then again, the inherent order of the keys of a map is why keysSet exists, so *shrug*
2021-11-04 00:48:50 +0100 <Axman6> :t Data.Set.fromList . Data.Map.elems
2021-11-04 00:48:50 +0100 <mjrosenb> agreed.
2021-11-04 00:48:51 +0100 <lambdabot> Ord a => M.Map k a -> S.Set a
2021-11-04 00:49:05 +0100danso(~danso@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 260 seconds)
2021-11-04 00:49:12 +0100 <Axman6> oh my bad, thought it was the keys, not the values, yeah that's a bit of an odd operation
2021-11-04 00:49:20 +0100alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-11-04 00:49:32 +0100 <boxscape_> they kind of have an inherent order in the sense that the keys require an Ord constraint
2021-11-04 00:49:40 +0100alzgh(~alzgh@user/alzgh)
2021-11-04 00:49:56 +0100 <boxscape_> but that argument wouldn't work for HashMap
2021-11-04 00:49:59 +0100 <boxscape_> which also returns a list
2021-11-04 00:50:31 +0100pop3(~pop3@user/pop3) (Remote host closed the connection)
2021-11-04 00:51:07 +0100pop3(~pop3@user/pop3)
2021-11-04 00:51:10 +0100 <boxscape_> just found about recover-rtti and it's "anythingToString :: a -> String" function, and I'm amazed that all this information is available on the heap
2021-11-04 00:51:18 +0100 <monochrom> I think all of you forgot that library function existence is a result of the tug war between user demand and author mood, not a result of "rational" arguments.
2021-11-04 00:52:00 +0100 <shapr> Any bad points to list comprehensions?
2021-11-04 00:52:10 +0100 <shapr> like, for usability or anything else?
2021-11-04 00:52:14 +0100 <geekosaur> not to standard list comprehensions
2021-11-04 00:52:33 +0100 <geekosaur> TransformListComps is disliked by some, also MonadComprehensions
2021-11-04 00:52:59 +0100 <shapr> what's the bad side(s) of MonadComprehensions?
2021-11-04 00:53:13 +0100 <monochrom> Indeed even "rational" "arguments" are just cosmetics for "I have a use case".
2021-11-04 00:53:14 +0100 <shapr> geekosaur: do you happen to remember any of the reasons for dislike?
2021-11-04 00:53:30 +0100 <geekosaur> all list comprehensions are rewritten as monad comprehensions instead of a more optimal form using filter and map
2021-11-04 00:53:33 +0100 <shapr> I'm just trying to think about pros and cons of various features
2021-11-04 00:54:17 +0100 <geekosaur> that is they're rewritten to operations in the list monad
2021-11-04 00:55:10 +0100 <geekosaur> TransformListCompl is barely used and I'm not sure anyone actually understands it except monochrom, who has a batty example lying around somewhere
2021-11-04 00:56:31 +0100Cajun(~Cajun@user/cajun) (Quit: Client closed)
2021-11-04 00:57:47 +0100Cajun(~Cajun@user/cajun)
2021-11-04 00:59:08 +0100 <boxscape_> at some point it was suggested to remove it but some people said they use it
2021-11-04 01:01:39 +0100Guest41(~Guest41@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-11-04 01:02:43 +0100 <shapr> geekosaur: https://github.com/shapr/tmuxmarta/blob/master/src/Lib.hs#L65
2021-11-04 01:02:59 +0100 <shapr> make that TWO examples!
2021-11-04 01:03:10 +0100 <shapr> boxscape_: do you remember where/when that was suggested?
2021-11-04 01:03:33 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2021-11-04 01:03:39 +0100 <boxscape_> unfortunately not really :-/ I remember reading it maybe one or two years ago and I think spj was involved in the discussion, but that's it
2021-11-04 01:04:38 +0100cosimone`(~user@93-34-133-207.ip49.fastwebnet.it) (Ping timeout: 260 seconds)
2021-11-04 01:06:38 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
2021-11-04 01:07:00 +0100zebrag(~chris@user/zebrag)
2021-11-04 01:08:10 +0100kilolympus(~kilolympu@185.65.135.177) (Ping timeout: 252 seconds)
2021-11-04 01:10:30 +0100max22-(~maxime@2a01cb0883359800dcf2cfbbabba90b8.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-11-04 01:10:58 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net)
2021-11-04 01:12:06 +0100catman(~catman@user/catman) (Ping timeout: 260 seconds)
2021-11-04 01:22:03 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
2021-11-04 01:22:25 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-11-04 01:23:11 +0100forell(~forell@user/forell) (Ping timeout: 264 seconds)
2021-11-04 01:23:16 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 268 seconds)
2021-11-04 01:24:15 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-11-04 01:27:40 +0100forell(~forell@user/forell)
2021-11-04 01:28:20 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Remote host closed the connection)
2021-11-04 01:29:24 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-11-04 01:30:18 +0100Vajb(~Vajb@2001:999:66:281c:27a0:1549:39e5:8b1a)
2021-11-04 01:31:15 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Remote host closed the connection)
2021-11-04 01:32:27 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-11-04 01:33:22 +0100Khelben(~Khelben@2001:818:e316:e700:85c9:6d4e:a6d0:2b03)
2021-11-04 01:34:26 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2021-11-04 01:39:12 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net)
2021-11-04 01:43:01 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 268 seconds)
2021-11-04 01:44:14 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-11-04 01:47:01 +0100pop3(~pop3@user/pop3) (Remote host closed the connection)
2021-11-04 01:47:11 +0100Inst(~Inst@2601:6c4:4080:3f80:cd36:4dbb:1af8:be8) (Read error: Connection reset by peer)
2021-11-04 01:47:34 +0100pop3(~pop3@user/pop3)
2021-11-04 01:48:39 +0100Inst(~Inst@c-98-208-218-119.hsd1.fl.comcast.net)
2021-11-04 01:49:25 +0100haritz(~hrtz@user/haritz) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
2021-11-04 01:50:57 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-11-04 01:50:57 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-11-04 01:50:57 +0100wroathe(~wroathe@user/wroathe)
2021-11-04 01:54:11 +0100 <hippoid> Bifunctor https://hackage.haskell.org/package/base-4.16.0.0/docs/src/Data.Bifunctor.html#Bifunctor has a default implementation for first, second, and bimap. first uses bimap, and bimap uses first, and I don't know how to think about this
2021-11-04 01:54:41 +0100 <hippoid> My naive thought is that this results in a kind of infinite loop, but that can't be right
2021-11-04 01:55:01 +0100 <geekosaur> there will also be a MINIMAL pragma
2021-11-04 01:55:33 +0100 <geekosaur> the idea is, if you implement either one you get the other for free. the MINIMAL pragma ensures that at least one of them must be defined
2021-11-04 01:55:48 +0100cigsender(~cigsender@74.124.58.162) (Quit: Lost terminal)
2021-11-04 01:55:52 +0100 <hippoid> geekosaur: ahh, interesting
2021-11-04 01:55:53 +0100 <geekosaur> implement in an instance, that is
2021-11-04 01:55:58 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2021-11-04 01:55:58 +0100CannabisIndica(~herb@user/mesaboogie) (Ping timeout: 260 seconds)
2021-11-04 01:56:13 +0100 <geekosaur> the ones provided in the class declaration are only used if an instance doesn't define that method
2021-11-04 01:56:45 +0100 <hippoid> so any instance must provide at least bimap, or first and second?
2021-11-04 01:56:57 +0100 <geekosaur> yes
2021-11-04 01:57:14 +0100 <hippoid> thanks, i dont think i would have ever figured that out!
2021-11-04 01:59:37 +0100dsamperi(~dsamperi@2603-7000-3b42-5400-ad06-78d6-67f9-46d9.res6.spectrum.com)
2021-11-04 02:01:51 +0100juhp(~juhp@128.106.188.220) (Quit: juhp)
2021-11-04 02:01:58 +0100haritz(~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220)
2021-11-04 02:01:58 +0100haritz(~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host)
2021-11-04 02:01:58 +0100haritz(~hrtz@user/haritz)
2021-11-04 02:02:05 +0100juhp(~juhp@128.106.188.220)
2021-11-04 02:02:55 +0100pop3(~pop3@user/pop3) (Remote host closed the connection)
2021-11-04 02:03:23 +0100pop3(~pop3@user/pop3)
2021-11-04 02:04:55 +0100lbseale_(~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
2021-11-04 02:06:06 +0100juhp(~juhp@128.106.188.220) (Client Quit)
2021-11-04 02:06:21 +0100juhp(~juhp@128.106.188.220)
2021-11-04 02:06:26 +0100 <boxscape_> hippoid: simpler example: Eq has (==) = not (/=) as well as (/=) = not (==)
2021-11-04 02:06:30 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 276 seconds)
2021-11-04 02:07:02 +0100danso(~danso@23-233-111-52.cpe.pppoe.ca)
2021-11-04 02:07:13 +0100 <geekosaur> and a MINIMAL pragma specifying that at least one of those must be defined by an instance
2021-11-04 02:07:16 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2021-11-04 02:07:31 +0100Guest41(~Guest41@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds)
2021-11-04 02:08:08 +0100 <mjrosenb> Data.Set.mapMonotonic, fst is monotonic as long as (x,a) and (x,b) aren't in the set, right?
2021-11-04 02:12:10 +0100hippoid(~idris@184.105.6.88) (Quit: leaving)
2021-11-04 02:12:11 +0100lavaman(~lavaman@98.38.249.169)
2021-11-04 02:12:34 +0100hippoid(~idris@184.105.6.88)
2021-11-04 02:12:40 +0100 <boxscape_> mjrosenb that sounds right to me
2021-11-04 02:14:32 +0100azimut_(~azimut@gateway/tor-sasl/azimut)
2021-11-04 02:14:53 +0100nehsou^(~nehsou@wsip-98-188-242-6.mc.at.cox.net) (Remote host closed the connection)
2021-11-04 02:14:57 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
2021-11-04 02:16:55 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
2021-11-04 02:17:13 +0100alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-11-04 02:21:07 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 02:24:03 +0100Khelben(~Khelben@2001:818:e316:e700:85c9:6d4e:a6d0:2b03) (Remote host closed the connection)
2021-11-04 02:24:47 +0100nrl^(~nrl@wsip-98-188-242-6.mc.at.cox.net)
2021-11-04 02:25:26 +0100Inst(~Inst@c-98-208-218-119.hsd1.fl.comcast.net) (Quit: Leaving)
2021-11-04 02:26:43 +0100Inst(~Inst@c-98-208-218-119.hsd1.fl.comcast.net)
2021-11-04 02:27:19 +0100epolanski(uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-04 02:32:58 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 268 seconds)
2021-11-04 02:37:13 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-11-04 02:38:44 +0100dsamperi(~dsamperi@2603-7000-3b42-5400-ad06-78d6-67f9-46d9.res6.spectrum.com) (Quit: Konversation terminated!)
2021-11-04 02:41:17 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection)
2021-11-04 02:43:55 +0100bitmapper(uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-04 02:55:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-11-04 02:56:53 +0100mmhat(~mmh@55d4baf7.access.ecotel.net) (Quit: WeeChat 3.3)
2021-11-04 03:00:55 +0100CannabisIndica(~herb@user/mesaboogie)
2021-11-04 03:05:28 +0100CannabisIndica(~herb@user/mesaboogie) (Client Quit)
2021-11-04 03:08:51 +0100CannabisIndica(~herb@user/mesaboogie)
2021-11-04 03:10:15 +0100pop3(~pop3@user/pop3) (Remote host closed the connection)
2021-11-04 03:11:27 +0100pop3(~pop3@user/pop3)
2021-11-04 03:12:41 +0100Cajun(~Cajun@user/cajun) (Quit: Client closed)
2021-11-04 03:13:13 +0100biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2021-11-04 03:13:22 +0100lavaman(~lavaman@98.38.249.169)
2021-11-04 03:13:33 +0100biberu(~biberu@user/biberu)
2021-11-04 03:16:19 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-11-04 03:16:31 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-11-04 03:19:49 +0100slaydr(~slaydr@45.131.194.34)
2021-11-04 03:20:01 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net)
2021-11-04 03:20:35 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-04 03:26:01 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-04 03:27:00 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net)
2021-11-04 03:28:06 +0100kupi(uid212005@id-212005.hampstead.irccloud.com)
2021-11-04 03:31:53 +0100fvr(uid503686@id-503686.uxbridge.irccloud.com)
2021-11-04 03:32:10 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-11-04 03:32:20 +0100hololeap_(~hololeap@user/hololeap)
2021-11-04 03:33:36 +0100hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-11-04 03:33:50 +0100kronicmage(user28253@neotame.csclub.uwaterloo.ca) (Quit: WeeChat 3.0.1)
2021-11-04 03:34:01 +0100kronicmage(user72429@neotame.csclub.uwaterloo.ca)
2021-11-04 03:35:43 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-11-04 03:35:43 +0100MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-11-04 03:36:39 +0100MQ-17J(~MQ-17J@8.6.144.203)
2021-11-04 03:43:46 +0100ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
2021-11-04 03:48:12 +0100xff0x(~xff0x@port-92-193-245-245.dynamic.as20676.net) (Ping timeout: 268 seconds)
2021-11-04 03:49:29 +0100xff0x(~xff0x@2001:1a81:5236:1e00:a124:ca01:b87f:741d)
2021-11-04 03:55:46 +0100juri_(~juri@178.63.35.222)
2021-11-04 03:59:18 +0100 <dsal> What's that gross hack for exposing a constructor without allowing pattern matching on it? i.e., I want to be able to make things, but not take them apart.
2021-11-04 03:59:54 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Ping timeout: 268 seconds)
2021-11-04 04:01:21 +0100 <dsal> I guess I'm thinking of the one where you expose the record accessor functions without the constructor. Right now, I've just `something = Something`. I guess that'll do.
2021-11-04 04:03:44 +0100bilegeek(~bilegeek@2600:1008:b00f:bd9f:b35d:f157:9cec:ab62)
2021-11-04 04:04:54 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-04 04:12:51 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 268 seconds)
2021-11-04 04:17:46 +0100alx741(~alx741@186.178.109.189) (Quit: alx741)
2021-11-04 04:20:02 +0100 <sm> https://www.reddit.com/r/haskell/comments/qm9lra/stack_dependency_hell/hj8lbdh/ - GHC doesn't allow linking with multiple versions of a package because it does whole-program compilation, which is where much of the speed comes from - am I right ?
2021-11-04 04:20:51 +0100 <sm> and if so, does rust not do whole-program compilation (doesn't need to ?)
2021-11-04 04:21:39 +0100 <monochrom> No, actually GHC allows it as much as possible. (There are still very understandable limits.) cabal-install is the one that plays it very safe and insists on uniqueness.
2021-11-04 04:21:58 +0100 <boxscape_> sm: that seems hard to believe considering there's a project to make GHC become a whole-project compiler https://github.com/grin-compiler/ghc-whole-program-compiler-project
2021-11-04 04:22:09 +0100 <boxscape_> s/whole-project/whole-program
2021-11-04 04:22:13 +0100 <monochrom> And stack, stack doesn't even want you to use hackage.
2021-11-04 04:22:26 +0100 <sm> ohh.. better edit my answer
2021-11-04 04:22:43 +0100euandreh(~euandreh@2804:14c:33:9fe5:3a97:eaba:c01a:d700) (Ping timeout: 268 seconds)
2021-11-04 04:23:36 +0100euandreh(~euandreh@2804:14c:33:9fe5:25ae:baa7:4680:70ca)
2021-11-04 04:23:50 +0100smwas wrong on the internet for a sec
2021-11-04 04:24:07 +0100 <sm> stack has no problem using hackage
2021-11-04 04:24:30 +0100smsaves monochrom from being wrong on the internet
2021-11-04 04:24:50 +0100 <monochrom> I said "want" not "problem".
2021-11-04 04:26:40 +0100 <monochrom> The intention of a program's authors can be mostly gleaned from defaults, the design of the config files, how easy it is to do certain things and how hard to do certain other "no problem in theory" things.
2021-11-04 04:26:45 +0100 <sm> and cabal doesn't allow linking with multiple versions of a package because... ? it is something optimisation related isn't it ?
2021-11-04 04:27:35 +0100 <monochrom> Even the language Haskell itself, you can feel it doesn't want you to use IO for everything, even though "there is no problem". My saying "doesn't want" is justifiable, very right, not wrong at all.
2021-11-04 04:27:36 +0100 <sclv> its because its extremely hard to express
2021-11-04 04:28:04 +0100 <monochrom> It plays it very safe. That's all.
2021-11-04 04:28:05 +0100bhrgunatha(~bhrgunath@2001-b011-8005-cec6-1c67-2ef9-44d3-785b.dynamic-ip6.hinet.net)
2021-11-04 04:28:24 +0100bhrgunatha(~bhrgunath@2001-b011-8005-cec6-1c67-2ef9-44d3-785b.dynamic-ip6.hinet.net) (Remote host closed the connection)
2021-11-04 04:29:01 +0100shriekingnoise_(~shrieking@186.137.144.80)
2021-11-04 04:29:02 +0100 <remexre> what's the technique called where you treat ([a] -> [a]) as a "chunk" of a linked list for concatenating using composition?
2021-11-04 04:29:11 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2021-11-04 04:29:23 +0100sminstalls things from hackage with stack all the time, per docs (https://docs.haskellstack.org/en/stable/build_command/#target-syntax), but YMMV :)
2021-11-04 04:29:38 +0100 <dsal> remexre: Like a DList?
2021-11-04 04:29:52 +0100 <remexre> ah, yep, that's it!
2021-11-04 04:30:08 +0100shriekingnoise(~shrieking@186.137.144.80) (Ping timeout: 268 seconds)
2021-11-04 04:30:09 +0100 <monochrom> I even know a blog that says Haskell beginners should stay in IO all the time.
2021-11-04 04:30:31 +0100 <monochrom> Again, I'm talking about "want" not "legal".
2021-11-04 04:32:11 +0100 <monochrom> I know this because I write programs that are biased, too.
2021-11-04 04:32:30 +0100 <dolio> Someone should come up with a different name for DList.
2021-11-04 04:32:48 +0100 <dolio> Like Cayley list or something.
2021-11-04 04:33:30 +0100 <monochrom> My https://github.com/treblacy/hasdoc chooses to make it easier to look up by package name, harder to look up by module name (you have to add a non-default -m switch).
2021-11-04 04:34:28 +0100 <monochrom> One can make the case of "but I add -m all the time". That still doesn't contradict the author's bias that the author thinks that package name is more common.
2021-11-04 04:36:30 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 260 seconds)
2021-11-04 04:38:47 +0100MQ-17J(~MQ-17J@8.6.144.203) (Read error: Connection reset by peer)
2021-11-04 04:40:40 +0100jollygood2(~bc8165b6@217.29.117.252)
2021-11-04 04:42:17 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2021-11-04 04:42:17 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-11-04 04:42:17 +0100finn_elijaFinnElija
2021-11-04 04:42:48 +0100 <jollygood2> monochrom, what does stackage want you to use, then? I thought it is 100% dependent on libraries on hackage. or maybe I misunderstand what you mean
2021-11-04 04:43:09 +0100 <dolio> Stack wants you to use stackage.
2021-11-04 04:44:03 +0100 <jollygood2> stackage is a curated collection of hackage libraries
2021-11-04 04:44:04 +0100 <monochrom> One of those times when "white horse is not horse" makes sense.
2021-11-04 04:44:05 +0100MQ-17J(~MQ-17J@8.6.144.203)
2021-11-04 04:44:54 +0100 <monochrom> hackage is not curated.
2021-11-04 04:45:32 +0100fizzsegfaultbuzz(~segfaultf@135-180-0-138.static.sonic.net) (Ping timeout: 268 seconds)
2021-11-04 04:47:06 +0100boxscape_(~boxscape_@i59F67A7D.versanet.de) (Quit: Connection closed)
2021-11-04 04:47:28 +0100 <monochrom> There is also a forgetful functor from Hask to Set. This still does not contradict "Hask is not Set" or even "Haskell semantists don't want you to think of sets".
2021-11-04 04:49:59 +0100[_](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-11-04 04:51:11 +0100 <dolio> Well, that may or may not be true, depending on what you're doing.
2021-11-04 04:51:22 +0100 <monochrom> heh
2021-11-04 04:51:31 +0100 <dolio> Hask might be too awesome to be contained in sets.
2021-11-04 04:51:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 04:52:21 +0100 <monochrom> I'm sure my students think of "the Int type is a set" all the time. And my course doesn't go deep enough, so I let them, it works fine in the context of my pretty introductory course.
2021-11-04 04:54:54 +0100 <monochrom> Well, I guess Int is not a very illustrative example, it's almost a set. When you get to [Int]->[Int] it begins to break more.
2021-11-04 04:55:30 +0100 <dolio> The big problems are stuff like `data T = C ((T -> Bool) -> Bool)`
2021-11-04 04:55:41 +0100 <monochrom> Yeah.
2021-11-04 05:00:42 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net)
2021-11-04 05:05:53 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-11-04 05:09:36 +0100 <sm> jollygood2: stack wants your build/install commands to be repeatable, so it requires you to to either use packages in the specified stackage snapshot, or if you use hackage packages not in the snapshot, to explicitly name them and their versions
2021-11-04 05:10:07 +0100 <sm> (in an extra-deps list in package.yaml or on the command line)
2021-11-04 05:25:08 +0100mbuf(~Shakthi@122.174.233.21)
2021-11-04 05:26:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-11-04 05:29:20 +0100waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 268 seconds)
2021-11-04 05:41:41 +0100fvr(uid503686@id-503686.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-04 05:47:15 +0100ahlk(~user@2600:1700:31c0:3a10::43) (Read error: Connection reset by peer)
2021-11-04 05:47:47 +0100kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-04 05:53:59 +0100Vajb(~Vajb@2001:999:66:281c:27a0:1549:39e5:8b1a) (Read error: Connection reset by peer)
2021-11-04 05:54:17 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-11-04 06:06:21 +0100shidima(~shidima@84-104-108-90.cable.dynamic.v4.ziggo.nl)
2021-11-04 06:09:48 +0100nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Quit: WeeChat 3.3)
2021-11-04 06:10:37 +0100nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263)
2021-11-04 06:22:03 +0100nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Quit: WeeChat 3.3)
2021-11-04 06:24:50 +0100slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-11-04 06:31:26 +0100wei2912(~wei2912@138.75.71.147)
2021-11-04 06:36:33 +0100betelgeuse(~betelgeus@94-225-47-8.access.telenet.be) (Ping timeout: 268 seconds)
2021-11-04 06:37:17 +0100betelgeuse(~betelgeus@94-225-47-8.access.telenet.be)
2021-11-04 06:39:37 +0100mei(~mei@user/mei)
2021-11-04 06:39:59 +0100emf_(~emf@2620:10d:c090:400::5:5f62) (Ping timeout: 264 seconds)
2021-11-04 06:41:51 +0100Jing(~textual@2604:a840:3::10f2)
2021-11-04 06:45:52 +0100mei(~mei@user/mei) (Read error: Connection reset by peer)
2021-11-04 06:53:14 +0100shailangsa(~shailangs@host217-39-45-200.range217-39.btcentralplus.com) (Ping timeout: 260 seconds)
2021-11-04 06:56:53 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 268 seconds)
2021-11-04 06:57:20 +0100alzgh(~alzgh@user/alzgh)
2021-11-04 06:58:08 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 268 seconds)
2021-11-04 07:00:03 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-11-04 07:01:02 +0100 <energizer> what is the implementation of fmap for List?
2021-11-04 07:01:51 +0100 <energizer> (or does the question not make sense)
2021-11-04 07:02:50 +0100 <Axman6> @ :t fmap @[]
2021-11-04 07:02:56 +0100 <Axman6> % :t fmap @[]
2021-11-04 07:02:56 +0100 <yahb> Axman6: (a -> b) -> [a] -> [b]
2021-11-04 07:03:05 +0100 <Axman6> does that type look familliar to you?
2021-11-04 07:04:13 +0100 <Axman6> That definitewly sounds like a homework question to me, so sorry for not giving you the answer outright
2021-11-04 07:04:44 +0100bitmapper(uid464869@id-464869.lymington.irccloud.com)
2021-11-04 07:05:00 +0100 <energizer> not homework, i'm trying to understand a blog post that uses `deriving Functor`
2021-11-04 07:06:15 +0100 <Axman6> well, fmap :: (a -> b) -> f a -> f b, we can replace f with [] if we think it _can_ be a functor and see if we can write that function. doing that, we get fmap :: (a -> b) -> [a] -> [b]
2021-11-04 07:06:46 +0100 <Axman6> what behaviour do you expect fmap to have when used on a list? what would fmap show [1,2,3] return?
2021-11-04 07:07:58 +0100 <energizer> [show 1, show 2, show 3]
2021-11-04 07:08:16 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-11-04 07:08:46 +0100 <Axman6> which would be ["1","2","3"] yeah?
2021-11-04 07:08:56 +0100 <Axman6> > fmap show [1,2,3] -- It is!
2021-11-04 07:08:58 +0100 <lambdabot> ["1","2","3"]
2021-11-04 07:09:55 +0100 <Axman6> so, what do you expect fmap show [] to return?
2021-11-04 07:10:08 +0100 <energizer> []
2021-11-04 07:10:15 +0100 <Axman6> or, even better, that do you expect fmap f [] = ?
2021-11-04 07:10:18 +0100 <Axman6> great
2021-11-04 07:10:37 +0100 <Axman6> so, fmap f [] = [], we're half way there, since lists only have two constructors
2021-11-04 07:10:58 +0100 <energizer> fmap f x:xs = f x : fmap f xs
2021-11-04 07:10:59 +0100 <Axman6> what about the other constructor, (:)? fmap f (x : xs) = ???
2021-11-04 07:11:16 +0100 <Axman6> close enough, needs brackets around (x:xs), but that's it
2021-11-04 07:11:56 +0100 <energizer> alright cool
2021-11-04 07:12:16 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-11-04 07:12:59 +0100 <Axman6> to be sure, you should also check the Functor laws hold: fmap id xs = xs, and fmap f (fmap g xs) = fmap (f . g) xs
2021-11-04 07:15:49 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-11-04 07:16:02 +0100Vajb(~Vajb@85-76-35-250-nat.elisa-mobile.fi)
2021-11-04 07:17:35 +0100zebrag(~chris@user/zebrag) (Remote host closed the connection)
2021-11-04 07:19:01 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net)
2021-11-04 07:22:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 07:24:02 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-11-04 07:29:21 +0100Vajb(~Vajb@85-76-35-250-nat.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-11-04 07:29:36 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-11-04 07:30:01 +0100bilegeek(~bilegeek@2600:1008:b00f:bd9f:b35d:f157:9cec:ab62) (Quit: Leaving)
2021-11-04 07:32:20 +0100 <awpr> https://hackage.haskell.org/package/base-4.16.0.0/docs/Data-Type-Ord.html#t:-60- interesting definition, that
2021-11-04 07:33:32 +0100shailangsa(~shailangs@host86-185-98-19.range86-185.btcentralplus.com)
2021-11-04 07:33:56 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-11-04 07:35:52 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-11-04 07:37:16 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-11-04 07:42:58 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
2021-11-04 07:43:11 +0100fvr(uid503686@id-503686.uxbridge.irccloud.com)
2021-11-04 07:50:10 +0100shidima(~shidima@84-104-108-90.cable.dynamic.v4.ziggo.nl) (Ping timeout: 260 seconds)
2021-11-04 07:53:03 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Remote host closed the connection)
2021-11-04 07:56:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-11-04 08:02:36 +0100 <Axman6> that... doesn't look right
2021-11-04 08:03:21 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Quit: ERC (IRC client for Emacs 27.1))
2021-11-04 08:03:41 +0100 <awpr> nbd for me, I can just leave it behind while turning https://hackage.haskell.org/package/numeric-kinds-0.1.0.0/docs/Kinds-Num.html into a compatibility shim
2021-11-04 08:03:48 +0100 <awpr> and seems to be already fixed in git
2021-11-04 08:04:03 +0100cosimone(~user@93-44-187-173.ip98.fastwebnet.it)
2021-11-04 08:04:37 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-11-04 08:05:35 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-11-04 08:11:02 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-11-04 08:12:45 +0100michalz(~michalz@185.246.204.109)
2021-11-04 08:14:48 +0100morphism(~ret@86.57.6.225) (Quit: WeeChat 3.3)
2021-11-04 08:16:32 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-11-04 08:24:10 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2021-11-04 08:24:17 +0100 <whatsupdoc> <hint>:1:3: parse error on input ‘=’
2021-11-04 08:28:24 +0100acidjnk_new(~acidjnk@p200300d0c726702918431f3aede9e057.dip0.t-ipconnect.de)
2021-11-04 08:36:16 +0100 <Inst> oh yeah, awpr, this is the "blowhard" i was talking about
2021-11-04 08:39:30 +0100fendor(~fendor@178.115.63.67.wireless.dyn.drei.com)
2021-11-04 08:47:13 +0100max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
2021-11-04 09:00:11 +0100trcc(~trcc@users-1190.st.net.au.dk)
2021-11-04 09:00:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 09:03:21 +0100trcc_(~trcc@users-1190.st.net.au.dk)
2021-11-04 09:04:32 +0100trcc(~trcc@users-1190.st.net.au.dk) (Ping timeout: 260 seconds)
2021-11-04 09:05:18 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-11-04 09:05:24 +0100hendursa1(~weechat@user/hendursaga)
2021-11-04 09:05:25 +0100gehmehgeh(~user@user/gehmehgeh)
2021-11-04 09:07:41 +0100niko(~niko@libera/staff/niko) (Remote host closed the connection)
2021-11-04 09:07:42 +0100hendursaga(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-11-04 09:10:05 +0100shidima(~shidima@83.232.63.181)
2021-11-04 09:11:38 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-04 09:16:26 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2021-11-04 09:17:27 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-11-04 09:17:51 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-11-04 09:20:23 +0100chele(~chele@user/chele)
2021-11-04 09:23:22 +0100nschoe(~quassel@178.251.84.79)
2021-11-04 09:25:12 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:ac85:493a:6db9:7a0f)
2021-11-04 09:27:10 +0100o(~niko@libera/staff/niko)
2021-11-04 09:32:16 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl)
2021-11-04 09:35:03 +0100timCF(~timCF@200-149-20-81.sta.estpak.ee) (Quit: leaving)
2021-11-04 09:36:45 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-11-04 09:38:54 +0100Inst(~Inst@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 260 seconds)
2021-11-04 09:43:48 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-11-04 09:44:03 +0100lavaman(~lavaman@98.38.249.169)
2021-11-04 09:44:10 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-11-04 09:44:24 +0100jollygood2(~bc8165b6@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2021-11-04 09:46:26 +0100Inst(~Inst@2601:6c4:4080:3f80:cd36:4dbb:1af8:be8)
2021-11-04 09:53:20 +0100gdown(~gavin@h69-11-248-109.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection)
2021-11-04 09:54:59 +0100__monty__(~toonn@user/toonn)
2021-11-04 10:02:36 +0100fendor(~fendor@178.115.63.67.wireless.dyn.drei.com) (Remote host closed the connection)
2021-11-04 10:03:19 +0100cads(~cads@ip-64-72-99-234.lasvegas.net) (Quit: Leaving)
2021-11-04 10:06:39 +0100fendor(~fendor@178.115.63.67.wireless.dyn.drei.com)
2021-11-04 10:07:18 +0100wonko(~wjc@user/wonko)
2021-11-04 10:11:51 +0100kadir(~kadir@95.7.9.203)
2021-11-04 10:19:45 +0100mc47(~mc47@xmonad/TheMC47)
2021-11-04 10:20:56 +0100 <mc47> geekosaur: the #xmonad-unlogged message is also displayed here
2021-11-04 10:23:05 +0100bitmapper(uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-04 10:23:17 +0100azeem(~azeem@2a00:801:3cb:bcc0:53ee:32be:de18:8352) (Read error: Connection reset by peer)
2021-11-04 10:24:11 +0100azeem(~azeem@emp-89-199.eduroam.uu.se)
2021-11-04 10:25:09 +0100 <mc47> And not displayed in #xmonad
2021-11-04 10:25:44 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-11-04 10:26:14 +0100kuribas(~user@ptr-25vy0i85hqqtidw9mko.18120a2.ip6.access.telenet.be)
2021-11-04 10:30:15 +0100shriekingnoise_(~shrieking@186.137.144.80) (Quit: Quit)
2021-11-04 10:31:50 +0100fendor_(~fendor@178.115.63.67.wireless.dyn.drei.com)
2021-11-04 10:32:07 +0100fendor(~fendor@178.115.63.67.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
2021-11-04 10:35:17 +0100Arsen(~arsen@managarm/dev/Arsen) (Quit: Quit.)
2021-11-04 10:35:40 +0100Arsen(~arsen@managarm/dev/Arsen)
2021-11-04 10:36:19 +0100cfricke(~cfricke@user/cfricke)
2021-11-04 10:36:25 +0100xff0x(~xff0x@2001:1a81:5236:1e00:a124:ca01:b87f:741d) (Remote host closed the connection)
2021-11-04 10:36:41 +0100xff0x(~xff0x@2001:1a81:5236:1e00:ed13:7d8f:8a23:addd)
2021-11-04 10:36:59 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net)
2021-11-04 10:39:34 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-04 10:39:34 +0100aleator(~aleator@176-93-61-167.bb.dnainternet.fi)
2021-11-04 10:39:51 +0100ubert(~Thunderbi@p548c9652.dip0.t-ipconnect.de) (Quit: ubert)
2021-11-04 10:41:20 +0100 <aleator> Hi! I'm seeking help with haskell.nix. I get "anonymous function at ... called without required argument '<one of my dependencies>' at .. make-package-set.nix:87:27" Would anyone happen to know what this could be about?
2021-11-04 10:42:43 +0100 <dminuoso> aleator: As with nix, it's hard to say in general
2021-11-04 10:43:02 +0100 <dminuoso> Your best luck is using --show-trace, look at the source/line/column of various points in the stack trace
2021-11-04 10:43:05 +0100 <dminuoso> and determine what's going on
2021-11-04 10:43:24 +0100 <dminuoso> Could be anything ranging from "mismatching arguments", forgot an argument, an argument too much, you stuff the wrong thing in the wrong place
2021-11-04 10:45:15 +0100 <aleator> dminuoso: Yeah. I had hoped this to be something familiar to someone. All the related bits seem to be generated by haskell.nix infrastructure. And everything works until I add a that specific dependency, after which it doesn't.
2021-11-04 10:45:37 +0100 <aleator> Builds with stack though.
2021-11-04 10:46:31 +0100 <dminuoso> aleator: Can you show the diff from the smallest portion that introduces that error?
2021-11-04 10:48:24 +0100 <aleator> dminuoso: With some work, yeah. I'll need to do bit of work to get there though.
2021-11-04 10:50:05 +0100Arsen(~arsen@managarm/dev/Arsen) (Quit: Quit.)
2021-11-04 10:50:20 +0100Arsen(~arsen@managarm/dev/Arsen)
2021-11-04 10:51:38 +0100Arsen(~arsen@managarm/dev/Arsen) (Client Quit)
2021-11-04 10:51:53 +0100Arsen(~arsen@managarm/dev/Arsen)
2021-11-04 10:53:38 +0100tcard_(~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
2021-11-04 10:56:39 +0100Arsen(~arsen@managarm/dev/Arsen) (Client Quit)
2021-11-04 10:57:53 +0100tcard(~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp)
2021-11-04 10:58:35 +0100xff0x(~xff0x@2001:1a81:5236:1e00:ed13:7d8f:8a23:addd) (Ping timeout: 264 seconds)
2021-11-04 10:58:53 +0100xff0x(~xff0x@2001:1a81:5236:1e00:8d66:5d08:1338:5e80)
2021-11-04 10:59:06 +0100Unhammer(~Unhammer@user/unhammer) (Ping timeout: 260 seconds)
2021-11-04 11:03:54 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.3)
2021-11-04 11:04:59 +0100Arsen(arsen@managarm/dev/Arsen)
2021-11-04 11:05:01 +0100shidima_(~shidima@46.44.183.25)
2021-11-04 11:07:51 +0100shidima(~shidima@83.232.63.181) (Read error: Connection reset by peer)
2021-11-04 11:08:20 +0100zer0bitz(~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi)
2021-11-04 11:08:55 +0100ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
2021-11-04 11:10:26 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net)
2021-11-04 11:12:36 +0100Unhammer(~Unhammer@user/unhammer)
2021-11-04 11:13:41 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-04 11:15:26 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-11-04 11:18:16 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2021-11-04 11:39:32 +0100Neuromancer(~Neuromanc@user/neuromancer) (Remote host closed the connection)
2021-11-04 11:39:48 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 256 seconds)
2021-11-04 11:41:43 +0100ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection)
2021-11-04 11:41:44 +0100gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2021-11-04 11:43:45 +0100abrantesasf(abrantesas@gateway/vpn/protonvpn/abrantesasf)
2021-11-04 11:45:39 +0100ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233)
2021-11-04 11:46:59 +0100Feuermagier(~Feuermagi@user/feuermagier)
2021-11-04 11:47:22 +0100gentauro(~gentauro@user/gentauro)
2021-11-04 11:48:39 +0100Everything(~Everythin@37.115.210.35)
2021-11-04 11:48:51 +0100fusion86(~fusion@2a02-a44c-e6e5-1-768d-77d5-1db4-35ae.fixed6.kpn.net)
2021-11-04 11:50:55 +0100Cajun(~Cajun@user/cajun)
2021-11-04 11:51:20 +0100mmhat(~mmh@55d4a8dc.access.ecotel.net)
2021-11-04 11:51:41 +0100fvr(uid503686@id-503686.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-04 11:54:38 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net)
2021-11-04 11:54:49 +0100 <geekosaur> mc47, that's odd, I set it in #xmonad and glguy set the message here because I don't have perms
2021-11-04 11:57:41 +0100 <geekosaur> hrm, may be your client. hexchat decided to display the notices in my chanserv tab, and otherwise displays them somewhat randomly
2021-11-04 11:57:56 +0100 <geekosaur> (notices are poorly handled by hexchat, I've noticed)
2021-11-04 11:58:58 +0100Lycurgus(~juan@98.4.112.204)
2021-11-04 11:59:39 +0100boxscape_(~boxscape_@vpn-44-229.hq.eso.org)
2021-11-04 12:00:53 +0100alx741(~alx741@186.178.109.189)
2021-11-04 12:05:17 +0100hololeap_hololeap
2021-11-04 12:08:38 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:ac85:493a:6db9:7a0f) (Ping timeout: 260 seconds)
2021-11-04 12:10:50 +0100hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2021-11-04 12:12:48 +0100AlexNoo_(~AlexNoo@94.233.241.187)
2021-11-04 12:13:25 +0100gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2021-11-04 12:15:43 +0100AlexZenon(~alzenon@94.233.241.118) (Ping timeout: 268 seconds)
2021-11-04 12:16:20 +0100lavaman(~lavaman@98.38.249.169)
2021-11-04 12:16:35 +0100AlexNoo(~AlexNoo@94.233.241.118) (Ping timeout: 264 seconds)
2021-11-04 12:16:57 +0100Alex_test(~al_test@94.233.241.118) (Ping timeout: 268 seconds)
2021-11-04 12:17:35 +0100hippoid(~idris@184.105.6.88) (Quit: Lost terminal)
2021-11-04 12:19:02 +0100gentauro(~gentauro@user/gentauro)
2021-11-04 12:19:24 +0100AlexZenon(~alzenon@94.233.241.187)
2021-11-04 12:20:59 +0100Alex_test(~al_test@94.233.241.187)
2021-11-04 12:21:00 +0100gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2021-11-04 12:21:10 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-11-04 12:21:13 +0100Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-11-04 12:24:02 +0100gentauro(~gentauro@user/gentauro)
2021-11-04 12:29:19 +0100abrantesasf(abrantesas@gateway/vpn/protonvpn/abrantesasf) (Remote host closed the connection)
2021-11-04 12:35:07 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-11-04 12:37:36 +0100gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2021-11-04 12:40:22 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 268 seconds)
2021-11-04 12:40:54 +0100forell(~forell@user/forell) (Ping timeout: 260 seconds)
2021-11-04 12:42:50 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-11-04 12:42:59 +0100forell(~forell@user/forell)
2021-11-04 12:43:30 +0100gentauro(~gentauro@user/gentauro)
2021-11-04 12:46:33 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-11-04 12:47:01 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-11-04 12:47:17 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 12:50:51 +0100jle`(~jle`@2603-8001-3b02-84d4-0000-0000-0000-025d.res6.spectrum.com) (Ping timeout: 268 seconds)
2021-11-04 12:50:51 +0100gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2021-11-04 12:51:26 +0100jle`(~jle`@2603-8001-3b02-84d4-0000-0000-0000-025d.res6.spectrum.com)
2021-11-04 12:56:48 +0100vysn(~vysn@user/vysn)
2021-11-04 12:56:52 +0100gentauro(~gentauro@user/gentauro)
2021-11-04 12:57:22 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:d501:c9ea:33ea:39c7)
2021-11-04 12:58:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-11-04 12:58:11 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 13:01:57 +0100Jing(~textual@2604:a840:3::10f2) (Remote host closed the connection)
2021-11-04 13:02:01 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-04 13:02:26 +0100Jing(~textual@2604:a840:3::10f2)
2021-11-04 13:04:25 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net)
2021-11-04 13:05:24 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-04 13:06:17 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 268 seconds)
2021-11-04 13:06:34 +0100gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2021-11-04 13:07:38 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
2021-11-04 13:08:46 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-11-04 13:08:50 +0100koz(~koz@2404:4408:430f:a900:ca69:658c:ba89:aa9f) (Ping timeout: 260 seconds)
2021-11-04 13:09:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 13:11:14 +0100nschoe(~quassel@178.251.84.79) (Ping timeout: 260 seconds)
2021-11-04 13:11:38 +0100Jing(~textual@2604:a840:3::10f2) (Remote host closed the connection)
2021-11-04 13:11:53 +0100burnsidesLlama(~burnsides@dhcp168-032.wadham.ox.ac.uk)
2021-11-04 13:12:12 +0100Jing(~textual@125.105.142.242)
2021-11-04 13:12:16 +0100gentauro(~gentauro@user/gentauro)
2021-11-04 13:12:52 +0100koz(~koz@121.99.240.58)
2021-11-04 13:15:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-11-04 13:15:26 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 13:20:40 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-11-04 13:21:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 13:21:13 +0100gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2021-11-04 13:21:42 +0100fusion86(~fusion@2a02-a44c-e6e5-1-768d-77d5-1db4-35ae.fixed6.kpn.net) (Ping timeout: 268 seconds)
2021-11-04 13:22:02 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-04 13:22:38 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net)
2021-11-04 13:25:01 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-11-04 13:26:00 +0100MQ-17J(~MQ-17J@8.6.144.203) (Ping timeout: 268 seconds)
2021-11-04 13:26:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-11-04 13:26:39 +0100gentauro(~gentauro@user/gentauro)
2021-11-04 13:27:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 13:27:28 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-11-04 13:27:45 +0100cfricke(~cfricke@user/cfricke)
2021-11-04 13:28:26 +0100gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2021-11-04 13:29:53 +0100MQ-17J(~MQ-17J@8.6.144.203)
2021-11-04 13:33:24 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-04 13:33:55 +0100gentauro(~gentauro@user/gentauro)
2021-11-04 13:33:58 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net)
2021-11-04 13:35:27 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-04 13:36:23 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net)
2021-11-04 13:36:54 +0100MQ-17J(~MQ-17J@8.6.144.203) (Ping timeout: 260 seconds)
2021-11-04 13:37:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-11-04 13:38:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 13:38:49 +0100shriekingnoise(~shrieking@186.137.144.80)
2021-11-04 13:38:50 +0100 <fendor_> a rather abstruse question, can I dispatch somehow on a type? E.g. when it is a list, then do this, otherwise this? Can I use Dynamic for that somehow?
2021-11-04 13:39:50 +0100 <lortabac> fendor_: that's what type classes are for
2021-11-04 13:40:25 +0100 <lortabac> unless you mean dispatching at runtime
2021-11-04 13:40:57 +0100 <fendor_> hm, I think typeclasses work just enough in this case
2021-11-04 13:40:57 +0100 <Hecate> (which is also what typeclasses are for :P)
2021-11-04 13:41:21 +0100 <Hecate> fendor_: Display does this https://hackage.haskell.org/package/text-display-0.0.1.0/docs/Data-Text-Display.html#v:displayList
2021-11-04 13:41:38 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-11-04 13:41:52 +0100mc47(~mc47@xmonad/TheMC47)
2021-11-04 13:42:56 +0100 <maerwald> generics, but that's just typeclasses as well
2021-11-04 13:43:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-11-04 13:44:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 13:44:28 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-11-04 13:45:30 +0100 <merijn> fendor_: You can dispatch on TypeRep, sure
2021-11-04 13:45:45 +0100jonathanclarke(~jonathanc@202.51.76.91) (Ping timeout: 268 seconds)
2021-11-04 13:46:22 +0100 <fendor_> I think I didn't see the forest because of all the trees, typeclasses sound find in this situation
2021-11-04 13:48:57 +0100slowButPresent(~slowButPr@user/slowbutpresent)
2021-11-04 13:50:10 +0100 <boxscape_> but typerep is also just a (magical) class
2021-11-04 13:50:22 +0100 <boxscape_> err
2021-11-04 13:50:24 +0100 <boxscape_> Typeable
2021-11-04 13:54:12 +0100 <fendor_> and magic is heresy
2021-11-04 13:55:15 +0100_xor(~xor@72.49.199.147) (Read error: Connection reset by peer)
2021-11-04 13:55:23 +0100 <merijn> I mean, typeable isn't really magic
2021-11-04 13:56:31 +0100 <boxscape_> "magical" as in "the compiler gives it special treatment"
2021-11-04 13:57:19 +0100 <merijn> I don't agree with that assessment, Typeable isn't given special treatment at all
2021-11-04 13:57:39 +0100 <merijn> The only special bit is that Typeable (nowadays) disallows user implemenetations, only compiler derived ones
2021-11-04 13:57:51 +0100 <merijn> But that's not due to being magic, that's to prevent users from fucking up
2021-11-04 13:58:01 +0100 <boxscape_> I suppose it depends on how we define magic
2021-11-04 13:58:06 +0100 <merijn> Typeable the class behaves just like any other typeclass
2021-11-04 13:58:34 +0100 <merijn> The only special bit is "*must* be derived" and that's only fairly recently
2021-11-04 13:58:45 +0100 <tomjaguarpaw> Two derived Foldable instances of "representationally equivalent" types will be "representationally equivalent". Two derived Typeable instances won't.
2021-11-04 13:59:00 +0100 <tomjaguarpaw> So the class is not magic, but the deriving is.
2021-11-04 13:59:33 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 276 seconds)
2021-11-04 14:00:22 +0100_xor(~xor@72.49.199.147)
2021-11-04 14:01:17 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-11-04 14:01:59 +0100 <tomjaguarpaw> Having said that, Show is possibly a counterexample to my argument.
2021-11-04 14:03:40 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-11-04 14:08:13 +0100yin(~z@user/zero)
2021-11-04 14:09:33 +0100 <zwro[m]> `let y = f x in seq y (y,x)` is the same as `let !y = f x in (y,x)` right?
2021-11-04 14:09:43 +0100max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2021-11-04 14:10:53 +0100 <yin> ghci
2021-11-04 14:11:02 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 268 seconds)
2021-11-04 14:11:11 +0100 <boxscape_> zwro[m]: sounds right
2021-11-04 14:12:25 +0100kilolympus(~kilolympu@185.65.135.177)
2021-11-04 14:14:18 +0100 <tomsmeding> yes, that's what bang patterns do
2021-11-04 14:14:28 +0100 <tomsmeding> (in the case of let bindings)
2021-11-04 14:15:27 +0100trcc(~trcc@eduroam09.au.dk)
2021-11-04 14:15:42 +0100trcc(~trcc@eduroam09.au.dk) (Read error: Connection reset by peer)
2021-11-04 14:16:03 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-04 14:17:20 +0100fusion86(~fusion@2a02-a44c-e6e5-1-77df-2fce-b355-5feb.fixed6.kpn.net)
2021-11-04 14:19:03 +0100trcc_(~trcc@users-1190.st.net.au.dk) (Ping timeout: 268 seconds)
2021-11-04 14:19:27 +0100werner98(~werner@2601:2c2:400:4440:ecf2:897:10c1:3ea6)
2021-11-04 14:20:36 +0100 <yin> @def bindl f x = let y = f x in (y,x)
2021-11-04 14:20:37 +0100 <lambdabot> .L.hs:153:1: error: [-Woverlapping-patterns, -Werror=overlapping-patterns]
2021-11-04 14:20:38 +0100 <lambdabot> Pattern match is redundant
2021-11-04 14:20:38 +0100 <lambdabot> In an equation for ‘bindl’: bindl f x = ...
2021-11-04 14:20:46 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2021-11-04 14:21:01 +0100 <yin> :3
2021-11-04 14:21:31 +0100shriekingnoise(~shrieking@186.137.144.80) (Ping timeout: 268 seconds)
2021-11-04 14:21:31 +0100xff0x(~xff0x@2001:1a81:5236:1e00:8d66:5d08:1338:5e80) (Ping timeout: 268 seconds)
2021-11-04 14:21:49 +0100shriekingnoise(~shrieking@186.137.144.80)
2021-11-04 14:22:04 +0100xff0x(~xff0x@2001:1a81:5236:1e00:2c63:dc9c:df4d:2374)
2021-11-04 14:23:39 +0100cigsender(~cigsender@74.124.58.162)
2021-11-04 14:23:53 +0100 <yin> @undef
2021-11-04 14:23:53 +0100 <lambdabot> Undefined.
2021-11-04 14:24:24 +0100trcc(~trcc@eduroam09.au.dk)
2021-11-04 14:24:25 +0100 <yin> @undefine
2021-11-04 14:24:25 +0100 <lambdabot> Undefined.
2021-11-04 14:24:26 +0100boxscape_(~boxscape_@vpn-44-229.hq.eso.org) (Quit: Connection closed)
2021-11-04 14:24:55 +0100 <yin> @def bindl f x = let y = f x in (y,x)
2021-11-04 14:24:56 +0100 <lambdabot> Defined.
2021-11-04 14:25:12 +0100 <werner98> take 5 [1..10]
2021-11-04 14:25:13 +0100shidima_(~shidima@46.44.183.25) (Ping timeout: 268 seconds)
2021-11-04 14:25:18 +0100 <yin> @def binds f x = let !y = f x in (y,x)
2021-11-04 14:25:19 +0100 <lambdabot> Defined.
2021-11-04 14:25:36 +0100 <werner98> >take 5 [1..10]
2021-11-04 14:25:51 +0100 <yin> > snd $ bindl (const umdefined) 7
2021-11-04 14:25:52 +0100 <lambdabot> error:
2021-11-04 14:25:52 +0100 <lambdabot> • Variable not in scope: umdefined
2021-11-04 14:25:52 +0100 <lambdabot> • Perhaps you meant ‘undefined’ (imported from Prelude)
2021-11-04 14:26:00 +0100 <yin> > snd $ bindl (const undefined) 7
2021-11-04 14:26:02 +0100 <lambdabot> 7
2021-11-04 14:26:25 +0100AlexNoo_AlexNoo
2021-11-04 14:26:34 +0100 <yin> > snd $ binds (const undefined) 7
2021-11-04 14:26:36 +0100 <lambdabot> *Exception: Prelude.undefined
2021-11-04 14:26:54 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-11-04 14:27:04 +0100aleator(~aleator@176-93-61-167.bb.dnainternet.fi) (Ping timeout: 268 seconds)
2021-11-04 14:27:27 +0100 <werner98> typedfern_ map
2021-11-04 14:28:04 +0100 <yin> there you go
2021-11-04 14:28:11 +0100 <maerwald> I feel like I'm following someone elses ghci session
2021-11-04 14:28:35 +0100 <yin> sorry about that
2021-11-04 14:28:53 +0100 <werner98> @help
2021-11-04 14:28:53 +0100 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
2021-11-04 14:29:12 +0100 <maerwald> you can try command by PMing lambdabot and then share the thing that actually works here
2021-11-04 14:29:23 +0100 <yin> what was supposed to be 3 simple lines turned into this mess
2021-11-04 14:29:34 +0100burnsidesLlama(~burnsides@dhcp168-032.wadham.ox.ac.uk) (Remote host closed the connection)
2021-11-04 14:30:11 +0100 <yin> that's what i did but i forgot to @undefine and all hell broke loose
2021-11-04 14:31:18 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2021-11-04 14:32:44 +0100thblt(~thblt@user/thblt) (ERC (IRC client for Emacs 28.0.50))
2021-11-04 14:33:00 +0100Guest68(~Guest68@202.164.137.68)
2021-11-04 14:33:01 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-11-04 14:33:04 +0100yin(~z@user/zero) ()
2021-11-04 14:33:26 +0100boxscape_(~boxscape_@134.171.73.76)
2021-11-04 14:34:04 +0100fusion86(~fusion@2a02-a44c-e6e5-1-77df-2fce-b355-5feb.fixed6.kpn.net) (Quit: Leaving)
2021-11-04 14:34:07 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-11-04 14:37:24 +0100sayola(~vekto@dslb-002-201-085-156.002.201.pools.vodafone-ip.de) (Quit: Leaving.)
2021-11-04 14:39:24 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 268 seconds)
2021-11-04 14:42:03 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net)
2021-11-04 14:45:10 +0100werner98(~werner@2601:2c2:400:4440:ecf2:897:10c1:3ea6) (Ping timeout: 256 seconds)
2021-11-04 14:47:24 +0100yauhsien(~yauhsien@118-167-41-229.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-11-04 14:50:52 +0100Guest41(~Guest41@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-11-04 14:56:13 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-11-04 14:56:14 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-11-04 14:56:14 +0100wroathe(~wroathe@user/wroathe)
2021-11-04 14:56:32 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-11-04 14:59:45 +0100alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-11-04 15:00:04 +0100alzgh(~alzgh@user/alzgh)
2021-11-04 15:01:11 +0100lavaman(~lavaman@98.38.249.169)
2021-11-04 15:01:47 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-11-04 15:04:01 +0100Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de)
2021-11-04 15:04:41 +0100gg(~gg@2a01:e0a:819:1510:9c2f:617b:a3fa:cf0d) (Ping timeout: 268 seconds)
2021-11-04 15:06:19 +0100burnsidesLlama(~burnsides@dhcp168-032.wadham.ox.ac.uk)
2021-11-04 15:07:08 +0100abrantesasf(abrantesas@gateway/vpn/protonvpn/abrantesasf)
2021-11-04 15:09:14 +0100michalz(~michalz@185.246.204.109) (Ping timeout: 260 seconds)
2021-11-04 15:11:59 +0100Inst(~Inst@2601:6c4:4080:3f80:cd36:4dbb:1af8:be8) (Remote host closed the connection)
2021-11-04 15:12:18 +0100Inst(~Inst@2601:6c4:4080:3f80:cd36:4dbb:1af8:be8)
2021-11-04 15:12:57 +0100Everything(~Everythin@37.115.210.35) (Quit: leaving)
2021-11-04 15:14:32 +0100gg(~gg@88.160.100.84)
2021-11-04 15:15:38 +0100Cajun(~Cajun@user/cajun) (Quit: Client closed)
2021-11-04 15:18:01 +0100trcc(~trcc@eduroam09.au.dk) (Remote host closed the connection)
2021-11-04 15:20:34 +0100fendor_(~fendor@178.115.63.67.wireless.dyn.drei.com) (Remote host closed the connection)
2021-11-04 15:23:23 +0100trcc(~trcc@eduroam09.au.dk)
2021-11-04 15:24:37 +0100michalz(~michalz@185.246.204.58)
2021-11-04 15:25:31 +0100trcc(~trcc@eduroam09.au.dk) (Remote host closed the connection)
2021-11-04 15:26:11 +0100alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-11-04 15:26:32 +0100alzgh(~alzgh@user/alzgh)
2021-11-04 15:26:35 +0100waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
2021-11-04 15:27:29 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2021-11-04 15:28:12 +0100Lycurgus(~juan@98.4.112.204)
2021-11-04 15:29:52 +0100Achylles(~Achylles_@2804:431:d725:bb1e:5dd8:3b02:6cc3:2744)
2021-11-04 15:31:47 +0100nrl^(~nrl@wsip-98-188-242-6.mc.at.cox.net) (Remote host closed the connection)
2021-11-04 15:33:40 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl) (Read error: Connection reset by peer)
2021-11-04 15:37:52 +0100alzgh(~alzgh@user/alzgh) (Ping timeout: 256 seconds)
2021-11-04 15:39:39 +0100burnsidesLlama(~burnsides@dhcp168-032.wadham.ox.ac.uk) (Remote host closed the connection)
2021-11-04 15:42:49 +0100justsomeguy(~justsomeg@user/justsomeguy)
2021-11-04 15:44:11 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-11-04 15:44:11 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-11-04 15:44:11 +0100wroathe(~wroathe@user/wroathe)
2021-11-04 15:49:05 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2021-11-04 15:51:38 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl)
2021-11-04 15:51:43 +0100werner58(~werner@2601:2c2:400:4440:dc41:dccb:7773:558f)
2021-11-04 15:51:52 +0100werner58(~werner@2601:2c2:400:4440:dc41:dccb:7773:558f) (Client Quit)
2021-11-04 15:52:44 +0100werner100(~werner100@2601:2c2:400:4440:dc41:dccb:7773:558f)
2021-11-04 15:53:22 +0100Achylles(~Achylles_@2804:431:d725:bb1e:5dd8:3b02:6cc3:2744) (Remote host closed the connection)
2021-11-04 15:55:05 +0100trcc(~trcc@eduroam09.au.dk)
2021-11-04 15:55:07 +0100trcc(~trcc@eduroam09.au.dk) (Remote host closed the connection)
2021-11-04 15:55:08 +0100Guest68(~Guest68@202.164.137.68) (Quit: Client closed)
2021-11-04 15:55:39 +0100trcc(~trcc@users-1190.st.net.au.dk)
2021-11-04 15:56:24 +0100k`(~user@152.1.137.158)
2021-11-04 15:57:38 +0100dsamperi(~dsamperi@2603-7000-3b42-5400-0c2e-16c3-2bfb-81aa.res6.spectrum.com)
2021-11-04 15:58:13 +0100 <k`> What are your thoughts on indexing functions that index from the left given a nonnegative argument and the right given a negative one, vs functions that only index in one direction and throw an error when given a negative argument?
2021-11-04 15:59:32 +0100 <geekosaur> they only make sense for structures that support such indexing. for lists, for example, you can't really index from the right
2021-11-04 16:00:05 +0100 <geekosaur> and then there's Data.Array where negative indexes are directly supported via Data.Ix, so you can't repurpose them to index from the right
2021-11-04 16:00:16 +0100caef^(~caef@wsip-98-188-242-6.mc.at.cox.net)
2021-11-04 16:00:38 +0100 <boxscape_> Data.Vector could if it wanted to, I imagine
2021-11-04 16:00:59 +0100 <k`> geekosaur: In principle I agree, but I have seen real Haskell packages that intentionally access lists the 'wrong' way because they want to avoid depending on more complicated packages and they only use small lists.
2021-11-04 16:01:37 +0100max22-(~maxime@2a01cb088335980044786ab87c2c3d64.ipv6.abo.wanadoo.fr)
2021-11-04 16:02:03 +0100 <boxscape_> I think if you have O(1) access and use Int as index, it's probably a decent idea
2021-11-04 16:02:15 +0100 <k`> And I'm talking about strictly using zero-based Int indices, which won't necessarily match the 'official' indices of a structure (for example a Map from `String` to function).
2021-11-04 16:03:04 +0100 <k`> OK. To me it seems slightly more error-prone, but on the other hand the smaller API surface seems like a win.
2021-11-04 16:03:24 +0100 <boxscape_> what kind of error is it prone to?
2021-11-04 16:03:54 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
2021-11-04 16:04:04 +0100 <geekosaur> smaller but more complicated, seems to me, unless you go all the way and use modulus arithmetic for indexing
2021-11-04 16:04:27 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2021-11-04 16:04:34 +0100 <geekosaur> hm, no, I guess that doesn't quite fit either
2021-11-04 16:04:40 +0100 <k`> If you unintentionally give a function that requires a positive index a negative one, it can throw an error. But if negative indexes have a special meaning, you instead get a seemingly valid value.
2021-11-04 16:05:11 +0100 <geekosaur> no, it does. I'm confusing myself
2021-11-04 16:05:49 +0100pop3(~pop3@user/pop3) (Remote host closed the connection)
2021-11-04 16:05:50 +0100geekosaurshould just go off and do laundry, that can be done while insufficiently caffeinated :)
2021-11-04 16:06:45 +0100pop3(~pop3@user/pop3)
2021-11-04 16:07:23 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.3)
2021-11-04 16:07:36 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-11-04 16:08:10 +0100 <k`> I'm phrasing this all hypothetically, but you could in fact define it all in terms of `Foldable`.
2021-11-04 16:09:22 +0100 <k`> > let foldrState' s0 f z0 mx = foldr f' (\_-> z0) mx s0 where f' x k s = let (s', z') = f s x (s' `seq` k s') in z'
2021-11-04 16:09:24 +0100 <lambdabot> <no location info>: error:
2021-11-04 16:09:24 +0100 <lambdabot> not an expression: ‘let foldrState' s0 f z0 mx = foldr f' (\_-> z0) mx s...
2021-11-04 16:09:30 +0100ec(~ec@gateway/tor-sasl/ec)
2021-11-04 16:10:35 +0100 <k`> > foldrState' s0 f z0 mx = foldr f' (const z0) mx s0 where f' x k s = let (s', z') = f s x (s' `seq` k s') in z'
2021-11-04 16:10:36 +0100 <lambdabot> <hint>:1:24: error: parse error on input ‘=’
2021-11-04 16:10:52 +0100 <k`> Eh, I don't know how to use Lambdabot.
2021-11-04 16:11:22 +0100 <geekosaur> use @let for definitions
2021-11-04 16:11:31 +0100 <geekosaur> "> " only accepts expressions
2021-11-04 16:11:43 +0100 <k`> Oh, thanks.
2021-11-04 16:12:49 +0100Guest41(~Guest41@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed)
2021-11-04 16:13:40 +0100 <k`> @let foldrState' s0 f z0 mx = foldr f' (const z0) mx s0 where f' x k s = let (s', z') = f s x (s' `seq` k s') in z'
2021-11-04 16:13:41 +0100 <lambdabot> Defined.
2021-11-04 16:15:10 +0100 <k`> @let foldlState' s0 f z0 mx = foldl f' (const z0) mx s0 where f' k x s = let (s', z') = f s (s' `seq` k s') x in z'
2021-11-04 16:15:11 +0100 <lambdabot> Defined.
2021-11-04 16:16:14 +0100burnsidesLlama(~burnsides@dhcp168-032.wadham.ox.ac.uk)
2021-11-04 16:18:26 +0100 <k`> @let nthR i = foldrState' 0 (\ i' x mx -> (i' + 1, if i' == i then Just x else mx))
2021-11-04 16:18:27 +0100 <lambdabot> Defined.
2021-11-04 16:18:44 +0100 <k`> > nthR 5 [1..]
2021-11-04 16:18:45 +0100 <lambdabot> error:
2021-11-04 16:18:45 +0100 <lambdabot> • Couldn't match expected type ‘Maybe a2’ with actual type ‘[a0]’
2021-11-04 16:18:45 +0100 <lambdabot> • In the second argument of ‘nthR’, namely ‘[1 .. ]’
2021-11-04 16:18:56 +0100trcc_(~trcc@eduroam09.au.dk)
2021-11-04 16:19:25 +0100 <k`> Forgot my accumulator.
2021-11-04 16:20:11 +0100 <k`> @let nthR i = foldrState' 0 (\ i' x mx -> (i' + 1, if i' == i then Just x else mx)) Nothing
2021-11-04 16:20:12 +0100 <lambdabot> .L.hs:162:5: error:
2021-11-04 16:20:12 +0100 <lambdabot> • Couldn't match type ‘Maybe a1’ with ‘t a1 -> Maybe a1’
2021-11-04 16:20:12 +0100 <lambdabot> Expected type: Maybe a1 -> t a1 -> Maybe a1
2021-11-04 16:20:34 +0100 <k`> Sorry, sorry.
2021-11-04 16:20:56 +0100 <geekosaur> you might do this in pm with lambdabot and show the result once it's working
2021-11-04 16:21:07 +0100 <k`> Oh man, totally forgot I could pm.
2021-11-04 16:21:22 +0100 <geekosaur> also you'll run into that these definitons actually go into a file so it'll give you conflicting types in the end, I suspect
2021-11-04 16:21:35 +0100 <geekosaur> so you'll have to @undefine first and start over :(
2021-11-04 16:21:39 +0100burnsidesLlama(~burnsides@dhcp168-032.wadham.ox.ac.uk) (Remote host closed the connection)
2021-11-04 16:21:46 +0100burnside_(~burnsides@dhcp168-032.wadham.ox.ac.uk)
2021-11-04 16:22:02 +0100trcc(~trcc@users-1190.st.net.au.dk) (Ping timeout: 260 seconds)
2021-11-04 16:22:14 +0100 <geekosaur> yahb is an actual ghci so you might find it easier to experiment in. uses % as prefix, also accepts pm
2021-11-04 16:22:37 +0100 <k`> geekosaur: Thanks!
2021-11-04 16:23:25 +0100 <k`> /msg yahb let foldrState' s0 f z0 mx = foldr f' (\_-> z0) mx s0 where f' x k s = let (s', z') = f s x (s' `seq` k s') in z'
2021-11-04 16:23:37 +0100trcc_(~trcc@eduroam09.au.dk) (Ping timeout: 268 seconds)
2021-11-04 16:23:52 +0100 <boxscape_> k` remember to prepend the %
2021-11-04 16:24:09 +0100 <k`> boxscape_: :)
2021-11-04 16:27:24 +0100werner100(~werner100@2601:2c2:400:4440:dc41:dccb:7773:558f) (Quit: Ping timeout (120 seconds))
2021-11-04 16:27:38 +0100acidjnk_new(~acidjnk@p200300d0c726702918431f3aede9e057.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-11-04 16:28:25 +0100haskl(~haskl@user/haskl) (Read error: Connection reset by peer)
2021-11-04 16:31:49 +0100slack1256(~slack1256@191.126.227.206)
2021-11-04 16:33:20 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-04 16:36:23 +0100burnside_(~burnsides@dhcp168-032.wadham.ox.ac.uk) (Remote host closed the connection)
2021-11-04 16:36:57 +0100burnsidesLlama(~burnsides@dhcp168-032.wadham.ox.ac.uk)
2021-11-04 16:37:22 +0100canxiu(uid524910@id-524910.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-04 16:40:31 +0100 <k`> > nth 3 [1..]
2021-11-04 16:40:32 +0100 <lambdabot> Just 4
2021-11-04 16:40:44 +0100 <k`> > nth (-1) [1..7]
2021-11-04 16:40:45 +0100 <lambdabot> Just 7
2021-11-04 16:41:14 +0100burnsidesLlama(~burnsides@dhcp168-032.wadham.ox.ac.uk) (Ping timeout: 260 seconds)
2021-11-04 16:41:45 +0100 <geekosaur> come to think of it, that's another reason against negative indexing: negative literals :(
2021-11-04 16:41:46 +0100Sgeo(~Sgeo@user/sgeo)
2021-11-04 16:42:02 +0100 <k`> @type nth
2021-11-04 16:42:03 +0100 <lambdabot> (Ord t1, Num t1, Foldable t2) => t1 -> t2 a -> Maybe a
2021-11-04 16:42:03 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-11-04 16:42:07 +0100 <geekosaur> we now have something like 4 different extensions to try to fix negative literals, all of which suck in one way or another
2021-11-04 16:43:38 +0100 <k`> Here's my pet wish for some day: `- 1` is `subtract 1` ; `-1` is `negate 1` ; in general infix operators must be surrounded by whitespace (or parentheses).
2021-11-04 16:43:58 +0100pop3(~pop3@user/pop3) (Remote host closed the connection)
2021-11-04 16:44:04 +0100 <geekosaur> I think that's one of the extensions
2021-11-04 16:44:16 +0100 <k`> Oh, cool. How obscure is it?
2021-11-04 16:44:17 +0100 <geekosaur> but it means some othyer idioms don't work because now they need spaces
2021-11-04 16:44:30 +0100cigsender(~cigsender@74.124.58.162) (Ping timeout: 260 seconds)
2021-11-04 16:45:02 +0100pop3(~pop3@user/pop3)
2021-11-04 16:45:03 +0100 <k`> What idioms have ever required infix operators be unspaced?
2021-11-04 16:45:41 +0100 <geekosaur> sections
2021-11-04 16:45:43 +0100 <geekosaur> https://downloads.haskell.org/ghc/latest/docs/html/users_guide/exts/lexical_negation.html
2021-11-04 16:45:50 +0100 <geekosaur> doesn't require it but is convenient
2021-11-04 16:45:57 +0100 <merijn> Allowing infix operators without spaces was a mistake
2021-11-04 16:46:00 +0100 <geekosaur> now you can't say (+1) it has to be (+ 1)
2021-11-04 16:46:11 +0100 <merijn> geekosaur: Acceptable sacrifice
2021-11-04 16:46:26 +0100 <k`> geekosaur: For me that's 100% always an improvement.
2021-11-04 16:46:27 +0100 <merijn> Fuck the entire mess we're in now
2021-11-04 16:46:32 +0100 <monochrom> I like writing like "m=n-1"
2021-11-04 16:46:32 +0100 <geekosaur> but it breaks a shitload of code
2021-11-04 16:46:44 +0100 <merijn> geekosaur: Sure, we can't fix it now
2021-11-04 16:46:46 +0100 <k`> Honestly, for me `+1` looks like positive 1.
2021-11-04 16:47:09 +0100 <monochrom> I mean I like having that option. I don't do it all the time, but once in a while I would like to do it when it doesn't hurt.
2021-11-04 16:47:15 +0100 <merijn> geekosaur: But Haskell would be a better and less edge-casy language if we'd banned it from the start
2021-11-04 16:47:16 +0100 <k`> Yeah, that's why I said 'pet wish for some day' rather than 'shrill immediate demand'.
2021-11-04 16:47:54 +0100 <k`> I would shrilly and immediately demand spaces if that were a nonbreaking change...
2021-11-04 16:48:01 +0100 <merijn> monochrom: Sure, but do you like it more than you would like getting rid off: negate, ambiguity of -, and the ability to use . for record syntax without 15 billion ambiguous interpretation
2021-11-04 16:48:14 +0100 <geekosaur> hm, actually if I'm reading the manual right they removed some of the earlier attempts at negative literals when they added this one. good
2021-11-04 16:48:17 +0100 <merijn> monochrom: eh, I guess I meant subtract, not negate
2021-11-04 16:48:18 +0100 <monochrom> But seriously the real mess is the obsession with plain text files.
2021-11-04 16:48:26 +0100 <merijn> monochrom: Also true, but harder to fix
2021-11-04 16:48:27 +0100 <geekosaur> we were kinda piling up bad attempts there
2021-11-04 16:48:59 +0100ec(~ec@gateway/tor-sasl/ec)
2021-11-04 16:49:31 +0100 <monochrom> Allow me to ramble a bit more. The following is not your fault. Just my pet peeve.
2021-11-04 16:49:48 +0100 <monochrom> Programmer obsession with plain text files runs really deep.
2021-11-04 16:49:54 +0100 <merijn> monochrom: Requiring spaces around infix operators means that '-x', '(-x)', and '(- x)' each have a single unambiguous meaning and parse. It also removes the ambiguity whether "Foo.x" is a qualified name of composition of a constructor and a function
2021-11-04 16:50:20 +0100haskl(~haskl@user/haskl)
2021-11-04 16:50:27 +0100 <monochrom> Once I went to a conference and there was an exhibition section for researchers to show posters and demos, as usual.
2021-11-04 16:50:37 +0100 <merijn> monochrom: It's also means that "record.x" can be given its own unambiguous interpretation as record indexing (since qualified names have a capital as first character)
2021-11-04 16:50:59 +0100 <merijn> (and composition would be forced to be "record . x")
2021-11-04 16:51:06 +0100 <merijn> Imagine the utopia we could've had!
2021-11-04 16:51:20 +0100 <monochrom> One booth talked about modeling a certain thing by graphs (the graph theory kind).
2021-11-04 16:51:22 +0100 <k`> Hear hear
2021-11-04 16:51:34 +0100 <yushyin> that's how i write it anyway
2021-11-04 16:51:35 +0100 <merijn> Instead we're stucking with subtract, 15 billion record syntax extensions, NegativeLiterals and 10 types of ambiguous parses
2021-11-04 16:51:43 +0100 <geekosaur> oh wow, someone got that right
2021-11-04 16:52:02 +0100Lycurgus(~juan@98.4.112.204) (Ping timeout: 256 seconds)
2021-11-04 16:52:21 +0100 <monochrom> The researcher went on to show displaying or inputting (I forgot which) a graph by a textual language he invented.
2021-11-04 16:52:41 +0100 <merijn> monochrom: Because UI code is hard :p
2021-11-04 16:53:07 +0100 <monochrom> Yeah there was a parser freak right there.
2021-11-04 16:53:33 +0100 <monochrom> Inventing the nth syntax for adjacency lists.
2021-11-04 16:54:14 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
2021-11-04 16:54:26 +0100favonia(~favonia@user/favonia) (Ping timeout: 268 seconds)
2021-11-04 16:55:19 +0100geekosaurwonders if this researcher otherwise only knew matlab
2021-11-04 16:56:25 +0100 <monochrom> This was a software engineering conference. I think even though he would know matlab from common CS education he would not think much of it.
2021-11-04 16:57:11 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-11-04 16:57:57 +0100k`got through college using only Matlab (except in computer architecture)
2021-11-04 16:58:09 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-11-04 16:58:38 +0100 <boxscape_> I was about to say that it wouldn't be unambiguous since in `data Rec = A { a :: Bool } | B`, writing `B.a` should be an attempt at field selection rather than a qualified name, but no, that's already interpreted as a qualified name now
2021-11-04 16:58:39 +0100kadir(~kadir@95.7.9.203) (WeeChat 3.3)
2021-11-04 16:59:02 +0100 <boxscape_> (you can do `let b = B in b.a` though)
2021-11-04 16:59:58 +0100 <boxscape_> does that mean b is not referentially transparent
2021-11-04 17:00:20 +0100 <monochrom> (B).a
2021-11-04 17:00:29 +0100 <boxscape_> ah, you're right, okay
2021-11-04 17:00:47 +0100 <monochrom> For the same reason "let x=2+2 in 3*x" does not equal 3*2+2
2021-11-04 17:00:48 +0100 <k`> Am I the only one who basically gave up on using record syntax, period, except with lenses?
2021-11-04 17:00:54 +0100 <boxscape_> hm, fair
2021-11-04 17:01:07 +0100 <monochrom> Once again the mess is obsession with plain text files.
2021-11-04 17:01:11 +0100 <boxscape_> yeah
2021-11-04 17:01:45 +0100 <boxscape_> k` I think I'll be using -XOverloadedRecordDot if and only if I don't have lens as a dependency for something else
2021-11-04 17:01:55 +0100lbseale(~lbseale@user/ep1ctetus)
2021-11-04 17:02:02 +0100 <monochrom> I still use record syntax, and without lenses. In fact, I go as far as to use RecordWildCards once in a while.
2021-11-04 17:02:14 +0100 <dsamperi> What does :p at end of line mean?
2021-11-04 17:02:28 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-11-04 17:02:32 +0100 <monochrom> It's an emoticon.
2021-11-04 17:02:47 +0100 <monochrom> Like :) but with an extra tongue.
2021-11-04 17:02:55 +0100hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-11-04 17:02:56 +0100boxscape_(~boxscape_@134.171.73.76) (Quit: see you)
2021-11-04 17:03:20 +0100 <yushyin> k`: the combination of NoFieldSelectors, NamedFieldPuns and RecordWildCards can be quite useful for simple stuff
2021-11-04 17:03:24 +0100 <k`> It's consing the preceeding expression to `p` .
2021-11-04 17:03:28 +0100hendursaga(~weechat@user/hendursaga)
2021-11-04 17:04:30 +0100 <dsamperi> :;
2021-11-04 17:05:42 +0100 <k`> yushyin: Guess I'm just extension-shy and record-shy...
2021-11-04 17:07:00 +0100 <k`> yushyin: Haven't looked at the uses of `NoFieldSelectors` . That's pretty neat. Thanks.
2021-11-04 17:08:15 +0100 <yushyin> afair with GHC2021 you would only need to -XNoFieldSelectors
2021-11-04 17:11:18 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-11-04 17:13:18 +0100fendor(~fendor@178.115.33.172.wireless.dyn.drei.com)
2021-11-04 17:17:54 +0100shidima_(~shidima@84-104-108-90.cable.dynamic.v4.ziggo.nl)
2021-11-04 17:17:57 +0100shidima_shidima
2021-11-04 17:18:28 +0100Guest41(~Guest41@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-11-04 17:18:32 +0100nschoe(~quassel@178.251.84.79)
2021-11-04 17:25:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 17:28:01 +0100ec(~ec@gateway/tor-sasl/ec)
2021-11-04 17:28:12 +0100 <dsal> Does ghc do anything fancy to turn $ into . or similar? I'm looking at code with a lot of $ and it seems expensive.
2021-11-04 17:30:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-11-04 17:31:03 +0100 <geekosaur> I don't think so. but $ is cheap since it's just function application with a weird precedence
2021-11-04 17:31:40 +0100 <Profpatsch> dsal: You can safely assume GHC is smart enough to optimize those away
2021-11-04 17:31:49 +0100 <c_wraith> unless you're using it partially applied, ($) doesn't even exist in compiled code
2021-11-04 17:31:52 +0100favonia(~favonia@user/favonia)
2021-11-04 17:32:08 +0100 <dsal> Yeah, I assume it's not something worth worrying about.
2021-11-04 17:32:31 +0100 <dsal> Just seeing $ everywhere looks less elegant. Like new money. Programmers trying to bling out their code.
2021-11-04 17:32:48 +0100 <Profpatsch> dsal: you can also use &
2021-11-04 17:32:57 +0100 <Profpatsch> for better community effect of your code
2021-11-04 17:33:25 +0100fizzsegfaultbuzz(~segfaultf@135-180-0-138.static.sonic.net)
2021-11-04 17:33:30 +0100 <Profpatsch> you want your code to say “-yes, and” to your manager after all
2021-11-04 17:36:42 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-11-04 17:36:59 +0100thelounge2191(7aa71341@67.205.143.82)
2021-11-04 17:37:17 +0100 <dsal> haha
2021-11-04 17:37:37 +0100poljar(~poljar@78-3-31-140.adsl.net.t-com.hr) (Quit: WeeChat 3.2)
2021-11-04 17:37:38 +0100 <kuribas> In dependend haskell, will you be able to use a value level function on types?
2021-11-04 17:37:55 +0100 <geekosaur> nobody knows yet
2021-11-04 17:38:07 +0100 <geekosaur> dependent haskell is a *long* way off
2021-11-04 17:38:23 +0100 <dsal> Dependent haskell solves all of everyone's problems.
2021-11-04 17:38:52 +0100 <geekosaur> and mostly unspecced as yet
2021-11-04 17:39:12 +0100 <Profpatsch> will it still be Haskell tho
2021-11-04 17:39:42 +0100 <kuribas> Profpatsch: I suppose it will be backwards compatible.
2021-11-04 17:39:56 +0100 <kuribas> Profpatsch: so, yes.
2021-11-04 17:40:02 +0100sonny(~sonny@bras-base-london1483w-grc-30-74-12-157-200.dsl.bell.ca)
2021-11-04 17:40:06 +0100 <kuribas> as far as you consider any extension "Haskell"
2021-11-04 17:40:25 +0100 <kuribas> You might say that GADTs, Datakinds, type families, etc... aren't "Haskell".
2021-11-04 17:41:12 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-11-04 17:41:20 +0100 <kuribas> ah " To put it another way, any term whatsoever will be acceptable as an argument to f :: foreach a -> blah; and any term whatsoever would be acceptable in a type or kind signature. (NB: Richard and Stephanie definitely want this. Simon is not yet convinced that the pain will be worth the gain.)"
2021-11-04 17:42:25 +0100boxscape_(~boxscape_@i577BCB60.versanet.de)
2021-11-04 17:42:39 +0100geekosauris glad someone is thinking about the pain part, at least
2021-11-04 17:43:15 +0100 <kuribas> geekosaur: who's pain, the compiler writer, or developers?
2021-11-04 17:43:26 +0100 <geekosaur> "yes"
2021-11-04 17:43:36 +0100boxscape_(~boxscape_@i577BCB60.versanet.de) (Client Quit)
2021-11-04 17:43:47 +0100mc47(~mc47@xmonad/TheMC47) (Ping timeout: 268 seconds)
2021-11-04 17:43:52 +0100boxscape_(~boxscape_@i577BCB60.versanet.de)
2021-11-04 17:45:23 +0100 <c_wraith> I don't really care about full dependent types. I just want to be able to promote and demote values without using reflection or singletons
2021-11-04 17:45:28 +0100 <kuribas> but will it be worse than "singletons"?
2021-11-04 17:45:52 +0100 <Profpatsch> If I have a ConduitT a b m r and want to transform it into a ConduitT (c, a) (c, b) m r how would I do that?
2021-11-04 17:46:13 +0100 <Profpatsch> I’m not strong enough
2021-11-04 17:46:59 +0100 <c_wraith> that seems like... it's ambiguous
2021-11-04 17:47:21 +0100 <boxscape_> kuribas it would be somewhat surprising if fully dependent types were worse than singletons considering the idea is to make everything better that singletons has to bend over backwards to achieve
2021-11-04 17:47:49 +0100 <Profpatsch> c_wraith: yeah, if more than one stream element is produced, it should just copy the c
2021-11-04 17:47:52 +0100ec(~ec@gateway/tor-sasl/ec)
2021-11-04 17:47:59 +0100 <Profpatsch> As in then multiple elements get the same c
2021-11-04 17:48:05 +0100 <c_wraith> Profpatsch: what if it never got a c at all?
2021-11-04 17:48:20 +0100 <Profpatsch> c_wraith: Hm
2021-11-04 17:48:22 +0100 <Profpatsch> Good point
2021-11-04 17:48:32 +0100 <Profpatsch> I have a ConduitT () c m r
2021-11-04 17:48:45 +0100 <Profpatsch> And I Zipped it with a ConduitT () a mr
2021-11-04 17:49:02 +0100 <Profpatsch> Hm maybe what I want to do is zip later
2021-11-04 17:49:13 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-11-04 17:49:39 +0100thelounge2191(7aa71341@67.205.143.82) (Quit: The Lounge - https://thelounge.chat)
2021-11-04 17:49:43 +0100 <kuribas> dsal: maybe we should just migrate to idris?
2021-11-04 17:49:44 +0100boxscape_(~boxscape_@i577BCB60.versanet.de) (Quit: Connection closed)
2021-11-04 17:49:58 +0100 <kuribas> it's haskell-like with dependent types.
2021-11-04 17:50:04 +0100 <kuribas> Which is what we want right?
2021-11-04 17:51:20 +0100 <dolio> If that's what you want, it's not a bad idea.
2021-11-04 17:54:33 +0100 <Profpatsch> c_wraith: lol I just had to move brackets around my pipeline a bit
2021-11-04 17:54:35 +0100shailangsa(~shailangs@host86-185-98-19.range86-185.btcentralplus.com) (Remote host closed the connection)
2021-11-04 17:54:57 +0100 <dsal> kuribas: does it have linear types?
2021-11-04 17:55:04 +0100 <dolio> I think it'd be cool if the people who wanted to do all kinds of type level stuff went and used idris instead, because it would mean idris has more people working with it, and the type level stuff would be better.
2021-11-04 17:55:28 +0100 <c_wraith> Profpatsch: hah. way better than forcing some ambiguous type conversion!
2021-11-04 17:55:31 +0100 <dolio> Idris 2 has linear types.
2021-11-04 17:55:43 +0100 <kuribas> dolio: I agree wholehartedly :)
2021-11-04 17:56:03 +0100 <kuribas> idris looks pretty nice, but has barely any libraries.
2021-11-04 17:56:04 +0100 <Profpatsch> c_wraith: I’m trying to get an intuition for streams, so I guess it wasn’t super obvious to me :)
2021-11-04 17:56:13 +0100 <Profpatsch> But the types don’t lie!
2021-11-04 17:56:18 +0100 <Profpatsch> (except when they do)
2021-11-04 17:56:33 +0100 <dsal> Can you write software in idris? I should try it out someday.
2021-11-04 17:56:40 +0100 <kuribas> Profpatsch: they don't lie. They may not mean what you think though...
2021-11-04 17:56:48 +0100 <kuribas> dsal: sure you can.
2021-11-04 17:56:51 +0100 <Profpatsch> kuribas: oh I just had that today
2021-11-04 17:56:52 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-11-04 17:57:04 +0100Skyfire(~pyon@user/pyon)
2021-11-04 17:57:06 +0100 <Profpatsch> The type matched up perfectly, but the function didn’t do what I thought it would
2021-11-04 17:57:23 +0100 <kuribas> dsal: you'll need write pretty any library yourself, or write bindings to scheme/C/java
2021-11-04 17:57:24 +0100 <Profpatsch> Which in this case I’d say is a fault of the types not having enough information
2021-11-04 17:57:38 +0100Vajb(~Vajb@2001:999:66:281c:27a0:1549:39e5:8b1a)
2021-11-04 17:58:45 +0100ubert(~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection)
2021-11-04 17:58:54 +0100 <kuribas> Profpatsch: putting more stuff on type level means your program becomes safer, but also harder to write.
2021-11-04 17:59:28 +0100 <kuribas> dsal: I'd even say idris is made for writing software, not for proving stuff.
2021-11-04 17:59:52 +0100 <dsal> Oh cool. I've never touched it. I've only played around in agda which didn't seem like it'd be useful for writing software.
2021-11-04 18:00:12 +0100MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com)
2021-11-04 18:00:16 +0100 <dolio> You can write software in Agda, but Idris is going to be way better on that front.
2021-11-04 18:02:35 +0100emf(~emf@2620:10d:c090:400::5:ba1c)
2021-11-04 18:02:45 +0100 <kuribas> stuff like anonymous records or providing a specification in types is way easier in idris.
2021-11-04 18:03:06 +0100 <Cale> As much as I love dependent types and being able to prove theorems in the type system, I do worry about the sorts of corners people will paint themselves into with them. I've seen cases where people managed to create bureaucratic nightmares that guarantee very little using the dependent-type-ish features already in Haskell.
2021-11-04 18:03:36 +0100hightower2(~hightower@213.147.110.20)
2021-11-04 18:04:56 +0100 <dolio> Well, part of the problem is that because it has 'verly little,' things that are pretty trivial in real dependently typed languages become very tedious in GHC.
2021-11-04 18:05:32 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:d501:c9ea:33ea:39c7) (Quit: WeeChat 2.8)
2021-11-04 18:05:39 +0100 <kuribas> unlifting a DataKind into a value.
2021-11-04 18:05:40 +0100 <Cale> That's not only it though -- in some ways, things get worse in proper dependently typed languages, because you're often breaking the functional abstraction
2021-11-04 18:06:39 +0100 <kuribas> Cale: do you have an example?
2021-11-04 18:06:43 +0100 <Cale> Like, it matters the precise ways that functions are defined, not just what their results are, because it affects what you're able to evaluate at the type level.
2021-11-04 18:07:40 +0100 <Cale> A very simple example is like how when you define addition on naturals, it matters which argument you're pattern matching on, and 0 + n might evaluate to n on its own, but n + 0 = n will require a proof
2021-11-04 18:08:21 +0100 <Cale> In a more complicated setting, having lots of types around that involve the functions in your program can make it really hard to refactor or change the implementations of those functions.
2021-11-04 18:09:10 +0100 <Cale> You can end up in situations where in order to get everything to type check, everything has to be *just so*.
2021-11-04 18:09:21 +0100 <kuribas> Cale: but couldn't you separate functions used on type level, and those on value level?
2021-11-04 18:09:27 +0100 <dsal> I can see how it's easy to go from "I just need a little proof here" to "I should do this everywhere!" to "WHAT HAVE I DONE?"
2021-11-04 18:09:46 +0100 <Cale> dsal: Yeah, it's very hard to know exactly when you've crossed the invisible line
2021-11-04 18:10:36 +0100 <Cale> You might be saving yourself a bunch of effort debugging runtime failures, but then if you spend more time than that trying to get your program to compile, or unable to refactor something that needs a performance improvement...
2021-11-04 18:10:56 +0100Jing(~textual@125.105.142.242) (Textual IRC Client: www.textualapp.com)
2021-11-04 18:11:15 +0100 <Cale> I do think there are plenty of cases where the line is farther over than what Haskell presently allows
2021-11-04 18:11:42 +0100 <Cale> But there's also lots of dumb things you can try to guarantee at compile time and end up wasting lots of effort preventing bugs that were never going to happen.
2021-11-04 18:11:48 +0100 <maerwald> "but... I need this feature for my PhD thesis"
2021-11-04 18:11:52 +0100 <maerwald> :D
2021-11-04 18:12:09 +0100 <kuribas> runtime errors are fine, if they don't happen obscurely.
2021-11-04 18:12:13 +0100 <dsal> The same tools that prevent bugs can prevent necessary features.
2021-11-04 18:13:03 +0100 <kuribas> It's about knowing where it's useful to track something in the type system.
2021-11-04 18:13:17 +0100zebrag(~chris@user/zebrag)
2021-11-04 18:13:36 +0100 <kuribas> I found tracking the type of SQL columns and return types in types is incredibly useful.
2021-11-04 18:13:46 +0100 <kuribas> And doesn't make it much harder to write.
2021-11-04 18:14:12 +0100burnsidesLlama(~burnsides@dhcp168-032.wadham.ox.ac.uk)
2021-11-04 18:14:12 +0100Vajb(~Vajb@2001:999:66:281c:27a0:1549:39e5:8b1a) (Read error: Connection reset by peer)
2021-11-04 18:14:39 +0100 <kuribas> But trying to proof that the SQL is correct in general is very hard.
2021-11-04 18:15:02 +0100 <kuribas> And likely requires you to only use a subset of SQL.
2021-11-04 18:15:08 +0100 <dolio> Well, the rules for correct SQL are extremely arbitrary.
2021-11-04 18:15:11 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-11-04 18:15:54 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 256 seconds)
2021-11-04 18:16:33 +0100 <geekosaur> one way to view dependent types is that compile time becomes the new run time
2021-11-04 18:17:07 +0100 <dsal> That's how I use TH sometimes.
2021-11-04 18:17:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 18:18:05 +0100 <kuribas> dolio: well, a lot of libraries make their own system on top of SQL, but that's an extra complexity the programmer has to learn, and also limits the usecases, possibilities for optimization, etc...
2021-11-04 18:18:18 +0100 <kuribas> dolio: while everyone knows SQL.
2021-11-04 18:18:52 +0100 <dolio> I guess. I mean, I wrote something like that. The problem with SQL is that it's very hard to generate from a library, because of the arbitrary rules.
2021-11-04 18:19:14 +0100 <kuribas> dolio: yeah, I am just generating strings.
2021-11-04 18:19:31 +0100 <kuribas> dolio: I mean, it's not much more than a fancy string builder.
2021-11-04 18:19:34 +0100 <dolio> Like, certain trivial cases that an optimizer could probably find and omit are instead syntax errors, because syntax is the only thing the standards committee has control over.
2021-11-04 18:20:10 +0100burnsidesLlama(~burnsides@dhcp168-032.wadham.ox.ac.uk) (Ping timeout: 268 seconds)
2021-11-04 18:20:22 +0100Midjak(~Midjak@82-65-111-221.subs.proxad.net) (Quit: Leaving)
2021-11-04 18:22:58 +0100MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Ping timeout: 260 seconds)
2021-11-04 18:24:45 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-11-04 18:24:45 +0100azeem(~azeem@emp-89-199.eduroam.uu.se) (Read error: Connection reset by peer)
2021-11-04 18:24:50 +0100hightower2(~hightower@213.147.110.20) (Ping timeout: 260 seconds)
2021-11-04 18:25:02 +0100azeem(~azeem@emp-89-199.eduroam.uu.se)
2021-11-04 18:25:18 +0100MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com)
2021-11-04 18:25:29 +0100 <dsal> I had this issue when people were wanting to use persistent and then esqueleto and then like, I'll try to to learn that language, but I can already see things I know how to do in SQL that are either open bugs or just not on the radar.
2021-11-04 18:25:39 +0100MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Client Quit)
2021-11-04 18:26:00 +0100 <dsal> That one didn't go very far because there are too many things I can do easily in sql that I couldn't figure out how to do at all in fancy libs.
2021-11-04 18:26:09 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Quit: "Rebooting new kernel")
2021-11-04 18:26:54 +0100 <kuribas> dsal: yeah, in my library, some things are easy to add, and other's require backwards incompatible change.
2021-11-04 18:27:03 +0100 <dolio> Yeah, getting all the things you can do in SQL wrapped into a library is also a challenge.
2021-11-04 18:27:13 +0100Hanicef(~gustaf@81-229-9-108-no92.tbcn.telia.com)
2021-11-04 18:27:33 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2021-11-04 18:27:35 +0100 <kuribas> dsal: or I could make a new combinator, but then the library will be littered with combinators.
2021-11-04 18:27:59 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-11-04 18:28:08 +0100 <kuribas> for example, recently I found out MySQL supports tuples in a `in` statement.
2021-11-04 18:28:52 +0100max22-(~maxime@2a01cb088335980044786ab87c2c3d64.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-11-04 18:29:30 +0100azeem(~azeem@emp-89-199.eduroam.uu.se) (Ping timeout: 256 seconds)
2021-11-04 18:29:42 +0100max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
2021-11-04 18:30:09 +0100 <kuribas> WHERE (firstname, lastname) IN (`Bart`, `Simpson`), (`Barney`, `Gumbles`)
2021-11-04 18:30:38 +0100 <dsal> The impedance is unfortunate, but `postgresql-simple` isn't too bad. I'm using stuff like enums (bugs for support in persistent) and PostGIS and just trying to figure out how to make a normal 4-byte key and `insert into ... returning` kinds of things. I can't remember all the things that I had trouble with on day 1.
2021-11-04 18:31:45 +0100wei2912(~wei2912@138.75.71.147) (Quit: Lost terminal)
2021-11-04 18:31:53 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl)
2021-11-04 18:32:29 +0100azeem(~azeem@2a00:801:238:f0f3:c4db:a6a8:71e6:c28)
2021-11-04 18:32:33 +0100 <kuribas> dsal: it also doesn't allow you to compose queries, matching parameters with the data can be error prone, etc...
2021-11-04 18:33:25 +0100 <dsal> Yeah. That gap is unfortunate. Best I can do is provide transactionally composable functions that take known types that we have `FromRow` and `ToRow` tested for.
2021-11-04 18:34:12 +0100 <dsal> This is similar to the "where do you draw the line" thing above. It's a bit loose, but easy to understand and flexible. Proper use makes it a bit harder to get wrong.
2021-11-04 18:34:21 +0100favonia(~favonia@user/favonia) (Ping timeout: 268 seconds)
2021-11-04 18:34:36 +0100shailangsa(~shailangs@host86-185-98-19.range86-185.btcentralplus.com)
2021-11-04 18:34:40 +0100mmhat(~mmh@55d4a8dc.access.ecotel.net) (Quit: WeeChat 3.3)
2021-11-04 18:35:25 +0100yinghua(~yinghua@2800:2121:1400:900:c56e:96f4:75cd:50ac)
2021-11-04 18:38:21 +0100 <kuribas> I have to luxury to be able to change the library when I need to add some syntax.
2021-11-04 18:41:26 +0100ec(~ec@gateway/tor-sasl/ec)
2021-11-04 18:41:31 +0100favonia(~favonia@user/favonia)
2021-11-04 18:42:20 +0100 <kuribas> But I should take sometime to implement the whole MySQL BNF syntax, document the library, and announce it.
2021-11-04 18:44:55 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-11-04 18:47:16 +0100mbuf(~Shakthi@122.174.233.21) (Quit: Leaving)
2021-11-04 18:47:47 +0100 <dsal> I'd be pretty happy if MySQL just went missing one day and nobody had to think about it again. :)
2021-11-04 18:50:35 +0100 <dolio> Incidentally, there are techniques for getting `n + 0` to work just as well as `0 + n` and such. They're just not commonly implemented. Agda has preliminary work toward that, though.
2021-11-04 18:50:43 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2021-11-04 18:51:02 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-11-04 18:51:40 +0100 <dolio> Right now you just have to tell it which additional equations it should use, I think. But it's possible for some amount of that to happen automatically by giving redundant cases in definitions and stuff.
2021-11-04 18:51:44 +0100 <Cale> There's the really easy one which is just to handicap n + 0 ;)
2021-11-04 18:53:22 +0100hightower2(~hightower@213.147.110.20)
2021-11-04 18:53:56 +0100 <Cale> I think I might've heard that's what Zombie was about?
2021-11-04 18:54:45 +0100 <Cale> Get rid of the automatic use of beta-equivalence, but perhaps make it easier to use the equalities you've proven
2021-11-04 18:54:58 +0100 <dolio> I don't know. Zombie is more about being able to have a general recursive fragment of the language that doesn't cause problems when you're proving stuff, I think.
2021-11-04 18:55:10 +0100 <dminuoso> Cale: Regarding your dependent types earlier. To quote someone from -ot from yesterday:
2021-11-04 18:55:30 +0100 <dminuoso> "when I write idris, I just write my bugs at the type level instead"
2021-11-04 18:55:48 +0100Bleant(~Bleant@2804:7f7:d68c:6ec3:ba71:4b18:997c:9fc1)
2021-11-04 18:56:48 +0100 <Bleant> Good afternoon! (if it's afternoon where you live :D). I'm new to this channel, would it be appropriate to ask questions regarding a particular problem I am having?
2021-11-04 18:56:48 +0100chele(~chele@user/chele) (Remote host closed the connection)
2021-11-04 18:56:51 +0100 <kuribas> dminuoso: where I think idris (and dependent types) are useful, is not to proof the program correct, but to specify a specification at type level, and to prove the implementation compliant.
2021-11-04 18:57:04 +0100 <geekosaur> Bleant, sure!
2021-11-04 18:57:07 +0100 <Cale> Bleant: yeah, as long as it's Haskell-related :)
2021-11-04 18:57:18 +0100slaydr(~slaydr@45.131.194.34) (Quit: leaving)
2021-11-04 18:59:32 +0100nschoe(~quassel@178.251.84.79) (Ping timeout: 256 seconds)
2021-11-04 19:00:04 +0100 <Bleant> Thanks! I've implemented (though I've yet to confirm the correctness of the merge step) mergesort in Haskell using the ST Monad with unboxed arrays. I want to deepseq the resulting UArrays for benchmarking purposes, as merely printing would slow down the program, but I get an error stating that no instance for NFData has been declared for UArray. Since its constructors are hidden, I'm not sure what I could do. What could I do?
2021-11-04 19:00:06 +0100hightower2(~hightower@213.147.110.20) (Ping timeout: 256 seconds)
2021-11-04 19:00:10 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-04 19:00:36 +0100 <Cale> You can just seq in that case
2021-11-04 19:00:54 +0100 <Cale> UArrays don't have the facility for lazy evaluation, that's the unboxed part
2021-11-04 19:01:03 +0100 <Cale> So if any part of a UArray is evaluated, the whole thing is
2021-11-04 19:03:17 +0100yinghua(~yinghua@2800:2121:1400:900:c56e:96f4:75cd:50ac) (Read error: Connection reset by peer)
2021-11-04 19:03:35 +0100yinghua(~yinghua@2800:2121:1400:900:9d55:2c9d:5a16:a12)
2021-11-04 19:04:08 +0100vicfred(~vicfred@user/vicfred)
2021-11-04 19:05:35 +0100 <Bleant> Thank you! I will try and report back :)
2021-11-04 19:05:46 +0100slack1256(~slack1256@191.126.227.206) (Ping timeout: 256 seconds)
2021-11-04 19:06:03 +0100slack1256(~slack1256@191.125.227.82)
2021-11-04 19:06:39 +0100 <monochrom> Even the normal Array doesn't need deepseqing for sorting.
2021-11-04 19:07:18 +0100 <Cale> True, since you have to look at all the elements anyway, there's no worry that they might be unevaluated
2021-11-04 19:07:31 +0100aleator(~aleator@188-67-216-232.bb.dnainternet.fi)
2021-11-04 19:08:00 +0100 <monochrom> If you say "I set the 3rd element to fib 5000", that would need deepseqing, yes.
2021-11-04 19:08:16 +0100 <monochrom> But in sorting, you're just saying, "I set the 3rd element to a!7".
2021-11-04 19:08:24 +0100 <maerwald> who's good with windows here? What type of path is `\??\C:\foo`? Doesn't appear to be an extended-length path, yet the directory package treats it specially: https://git.io/JPbcY
2021-11-04 19:08:45 +0100hightower2(~hightower@213.147.110.20)
2021-11-04 19:09:36 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-11-04 19:10:24 +0100 <geekosaur> iirc it's just a way to hide the drive letter inside the path instead of in front of it. but double check that
2021-11-04 19:11:21 +0100 <maerwald> cmd.exe doesn't even accept this path
2021-11-04 19:11:23 +0100 <monochrom> simplifyWindows is a great name :)
2021-11-04 19:11:43 +0100 <maerwald> normalise "\\??????????????\\D:\lol" -> "D:\lol", which is even more confusing
2021-11-04 19:11:51 +0100 <maerwald> since that is definitely rejected on windows
2021-11-04 19:12:28 +0100 <Cale> Maybe you can git blame and figure out where this feature got added?
2021-11-04 19:12:54 +0100 <Bleant> If, in repeatedly calling the mergesort function, I get a list of thunks, will calling foldr (\x y -> x 'seq` y) () listOfThunks force the call to each individual sort, essentially evaluating every UArray? It's what I'm trying, but it's executing so fast for a million elements that I suspect I'm doing something wrong
2021-11-04 19:13:41 +0100 <geekosaur> (\x y -> x `seq` y) is the same as plain seq
2021-11-04 19:13:48 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 268 seconds)
2021-11-04 19:14:10 +0100 <monochrom> > foldr seq () [undefined, 3]
2021-11-04 19:14:12 +0100 <lambdabot> *Exception: Prelude.undefined
2021-11-04 19:14:21 +0100 <monochrom> > foldr seq () [3, undefined]
2021-11-04 19:14:22 +0100 <lambdabot> *Exception: Prelude.undefined
2021-11-04 19:14:27 +0100 <monochrom> > foldr seq () [3, 3]
2021-11-04 19:14:29 +0100 <lambdabot> ()
2021-11-04 19:14:44 +0100 <monochrom> It seqs all elements. "Proved by a few test cases"
2021-11-04 19:15:03 +0100 <geekosaur> but as mentioned earlier the contents of the UArray are already evaluated, because they are unboxed
2021-11-04 19:15:20 +0100Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de) (WeeChat 3.3)
2021-11-04 19:15:32 +0100 <geekosaur> I think it is only the UArray itself that can be a thunk
2021-11-04 19:15:46 +0100 <Bleant> What I'm trying to prevent is getting a list of thunks, but in not using them, not having the individual functions to mergesort called
2021-11-04 19:16:24 +0100 <Bleant> Something's weird, though. I'm running a million element ten thousand times, and it's going faster than my C implementation. I'll quadruple check
2021-11-04 19:16:33 +0100ec(~ec@gateway/tor-sasl/ec)
2021-11-04 19:16:40 +0100 <monochrom> Now, this is what you should watch out for:
2021-11-04 19:16:52 +0100 <monochrom> > const 42 (foldr seq () [undefined, 3])
2021-11-04 19:16:54 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2021-11-04 19:16:54 +0100 <lambdabot> 42
2021-11-04 19:18:08 +0100aleator(~aleator@188-67-216-232.bb.dnainternet.fi) (Ping timeout: 268 seconds)
2021-11-04 19:18:36 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-11-04 19:18:49 +0100 <Bleant> I'm not familiar with const, unfortunately. I'll check it. What I'm doing currently is return $! foldr seq () [...]
2021-11-04 19:18:56 +0100 <Cale> const x y = x
2021-11-04 19:19:02 +0100burnsidesLlama(~burnsides@dhcp168-032.wadham.ox.ac.uk)
2021-11-04 19:19:07 +0100 <monochrom> I can do that too.
2021-11-04 19:19:13 +0100 <monochrom> > const 42 (return $! foldr seq () [undefined, 3])
2021-11-04 19:19:15 +0100 <lambdabot> error:
2021-11-04 19:19:15 +0100 <lambdabot> • Could not deduce (Monad m0) arising from a use of ‘return’
2021-11-04 19:19:15 +0100 <lambdabot> from the context: Num a
2021-11-04 19:19:30 +0100 <monochrom> Dammit.
2021-11-04 19:19:38 +0100 <Cale> Bleant: are you doing something like printing the () at the end?
2021-11-04 19:19:38 +0100 <monochrom> > const 42 (return $! foldr seq () [undefined, 3] :: Maybe ())
2021-11-04 19:19:40 +0100 <lambdabot> 42
2021-11-04 19:19:50 +0100 <Bleant> Wait, there is a GHCI bot? That's the coolest thing ever
2021-11-04 19:20:08 +0100 <Bleant> Cale: No, it's just the last statement in my main :: IO ()
2021-11-04 19:20:27 +0100 <Bleant> How do I reply properly?
2021-11-04 19:20:33 +0100 <monochrom> Here is another strategy. You can print just one element of the sorted array. That will be quite enough to cause a lot of evaluations.
2021-11-04 19:20:41 +0100 <monochrom> or rather s/cause/ensure/
2021-11-04 19:20:42 +0100econo(uid147250@user/econo)
2021-11-04 19:20:49 +0100 <Cale> Actually, what you have is probably fine, but it would be better to use Control.Exception.evaluate to force the evaluation to happen in sequence with IO
2021-11-04 19:21:13 +0100shidima(~shidima@84-104-108-90.cable.dynamic.v4.ziggo.nl) (Ping timeout: 268 seconds)
2021-11-04 19:21:13 +0100 <int-e> Bleant: Prefixing with nicks is as proper as it gets on IRC.
2021-11-04 19:21:16 +0100 <geekosaur> Bleant, lambdabot is not a ghci bot although it can evaluate expressions. but there is also yahb which is a ghci bot
2021-11-04 19:21:16 +0100 <Cale> Or yeah, just print one element of the array, which would guarantee that you've evaluated them all
2021-11-04 19:21:50 +0100 <Bleant> Gotta go, guys! Thanks for all the help. Looking forward to talking to you again :D
2021-11-04 19:21:54 +0100 <int-e> There's yahb which is actually a ghci frontend.
2021-11-04 19:22:02 +0100 <Bleant> I'll still take a look to see what's going on, of course
2021-11-04 19:22:02 +0100 <int-e> % foo = 1+1
2021-11-04 19:22:02 +0100 <yahb> int-e:
2021-11-04 19:22:05 +0100 <int-e> % foo
2021-11-04 19:22:05 +0100 <yahb> int-e: 2
2021-11-04 19:22:09 +0100Bleant(~Bleant@2804:7f7:d68c:6ec3:ba71:4b18:997c:9fc1) (Remote host closed the connection)
2021-11-04 19:24:55 +0100burnsidesLlama(~burnsides@dhcp168-032.wadham.ox.ac.uk) (Ping timeout: 268 seconds)
2021-11-04 19:31:36 +0100desantra(~skykanin@user/skykanin)
2021-11-04 19:34:03 +0100vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2021-11-04 19:38:59 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-11-04 19:42:07 +0100dsamperi(~dsamperi@2603-7000-3b42-5400-0c2e-16c3-2bfb-81aa.res6.spectrum.com) (Quit: Konversation terminated!)
2021-11-04 19:42:56 +0100Hanicef(~gustaf@81-229-9-108-no92.tbcn.telia.com) (Quit: leaving)
2021-11-04 19:44:38 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 268 seconds)
2021-11-04 19:50:35 +0100mc47(~mc47@xmonad/TheMC47)
2021-11-04 19:50:35 +0100Lycurgus(~juan@98.4.112.204)
2021-11-04 19:53:56 +0100favonia(~favonia@user/favonia) (Ping timeout: 256 seconds)
2021-11-04 19:56:03 +0100azeem(~azeem@2a00:801:238:f0f3:c4db:a6a8:71e6:c28) (Quit: Quit)
2021-11-04 19:57:39 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-11-04 19:59:44 +0100Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-11-04 20:01:00 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Remote host closed the connection)
2021-11-04 20:02:28 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-11-04 20:04:28 +0100aegon(~mike@174.127.249.180)
2021-11-04 20:06:05 +0100yinghua_(~yinghua@2800:2121:1400:900:c56e:96f4:75cd:50ac)
2021-11-04 20:06:16 +0100sciencentistguy(~sciencent@hacksoc/ordinary-member)
2021-11-04 20:07:33 +0100favonia(~favonia@user/favonia)
2021-11-04 20:08:42 +0100yinghua(~yinghua@2800:2121:1400:900:9d55:2c9d:5a16:a12) (Ping timeout: 268 seconds)
2021-11-04 20:11:14 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2021-11-04 20:16:22 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
2021-11-04 20:18:18 +0100favonia(~favonia@user/favonia) (Ping timeout: 256 seconds)
2021-11-04 20:19:28 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-11-04 20:19:51 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-11-04 20:20:33 +0100cads(~cads@ip-64-72-99-234.lasvegas.net)
2021-11-04 20:20:39 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-11-04 20:23:29 +0100hightower2(~hightower@213.147.110.20) (Ping timeout: 268 seconds)
2021-11-04 20:25:17 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-04 20:25:20 +0100ubert(~Thunderbi@p200300ecdf4fca7ce019fddc82d0353e.dip0.t-ipconnect.de)
2021-11-04 20:25:58 +0100Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 268 seconds)
2021-11-04 20:30:49 +0100sonny(~sonny@bras-base-london1483w-grc-30-74-12-157-200.dsl.bell.ca) (Ping timeout: 256 seconds)
2021-11-04 20:33:21 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 268 seconds)
2021-11-04 20:35:47 +0100ent(entgod@kapsi.fi) (Ping timeout: 264 seconds)
2021-11-04 20:36:20 +0100ent(entgod@kapsi.fi)
2021-11-04 20:36:52 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-11-04 20:37:28 +0100kuribas(~user@ptr-25vy0i85hqqtidw9mko.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2021-11-04 20:37:39 +0100lavaman(~lavaman@98.38.249.169)
2021-11-04 20:39:31 +0100vysn(~vysn@user/vysn) (Ping timeout: 268 seconds)
2021-11-04 20:42:07 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-11-04 20:44:28 +0100 <aegon> i'm using derive generic on MessagePack instances of data. I dug in and saw that encoding / decoding was using from and to from Generics to order things. How can i look up how that is ordering objects? (i need to parse these from a different language and order matters for the encoding / decoding)
2021-11-04 20:44:55 +0100unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2021-11-04 20:45:32 +0100 <aegon> i'm also using it on a UUID and i'm not sure if its using show on it or whatnot to encode, learniung how to poke around at generic derivations today it seems
2021-11-04 20:47:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 20:48:17 +0100eldritch__eldritch
2021-11-04 20:49:30 +0100sprout_(~quassel@2a02:a467:ccd6:1:f161:c9c3:b403:49f6)
2021-11-04 20:49:38 +0100 <aegon> hmm, i guess i could use from and to manually on an instance and just look
2021-11-04 20:49:39 +0100 <dsal> If order matters in such a way that isn't clearly defined by spec, I wouldn't expect derived values to do exactly what you need.
2021-11-04 20:50:24 +0100 <aegon> the order within a field matters but the spec doesnt state which value comes first and there are no unique ids or names thrown into the packed representation, just type identifiers
2021-11-04 20:51:20 +0100 <aegon> is the order of GHC.Generics (form, to) unreliable?
2021-11-04 20:51:45 +0100 <aegon> er, unreliable / undetermined
2021-11-04 20:52:29 +0100sprout(~quassel@2a02:a467:ccd6:1:58cd:ccc2:f66c:e3b) (Ping timeout: 268 seconds)
2021-11-04 20:53:21 +0100 <aegon> i think manually instancing is fine i'm just trying to understand Generics more
2021-11-04 20:53:27 +0100burnsidesLlama(~burnsides@dhcp168-032.wadham.ox.ac.uk)
2021-11-04 20:54:10 +0100 <aegon> this is a wierd case to me because it accepted / auto derived UUID, which doesn't have an instance of the target for derivation, but i can't see anything in the lib that determines or defines the needed class by Show or Storable or StorableFixed so :?
2021-11-04 20:54:18 +0100mmhat(~mmh@55d4a8dc.access.ecotel.net)
2021-11-04 20:54:32 +0100 <aegon> it might be doing it by constructor and data fields?
2021-11-04 20:54:43 +0100 <dsal> If the spec doesn't say an order matters, but an order matters to your application, then it sounds like you're going beyond the specification so a generic implementation shouldn't help.
2021-11-04 20:55:05 +0100 <dsal> I'm not familiar with the specific things you're talking about, though.
2021-11-04 20:55:50 +0100 <aegon> its messge pack, the spec just doen't choose to restrict a sequencing
2021-11-04 20:56:04 +0100 <dsal> Understood. I just barely know what message pack is. :)
2021-11-04 20:56:09 +0100 <aegon> you could say thats a bad spec but it also mostly doesn't matter, the use case is apps that know data ahead of time
2021-11-04 20:56:34 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-04 20:56:46 +0100 <aegon> its a json like format specializing in fast, small, in place parsing / encoding with good memory management controls
2021-11-04 20:56:50 +0100 <dsal> Just at the point where there's no canonical ordering by spec, but you need an ordering, I'd expect to have to write some code.
2021-11-04 20:57:22 +0100 <aegon> yeah, it looks like there is a instance based of Storable but also Unbox, does a class have to explicitly instance Unbox or is it a side effect possibly of Bang syntax
2021-11-04 20:57:48 +0100 <aegon> the class in question doesn't have an Unbox written but afaik is written "unboxed" `data UUID = UUID !Word64 !Word64`
2021-11-04 20:58:44 +0100desantra(~skykanin@user/skykanin) (Quit: WeeChat 3.3)
2021-11-04 21:00:23 +0100krjst(~krjst@2604:a880:800:c1::16b:8001) (Ping timeout: 246 seconds)
2021-11-04 21:01:07 +0100pop3(~pop3@user/pop3) (Remote host closed the connection)
2021-11-04 21:01:27 +0100hightower2(~hightower@213.147.110.20)
2021-11-04 21:01:42 +0100 <aegon> wellll, manual it is, i don't want the Storable derived version of this, but the Binary version and hwo knows what these generics are doing
2021-11-04 21:01:57 +0100pop3(~pop3@user/pop3)
2021-11-04 21:03:53 +0100pop3(~pop3@user/pop3) (Remote host closed the connection)
2021-11-04 21:04:38 +0100pop3(~pop3@user/pop3)
2021-11-04 21:05:25 +0100juhp(~juhp@128.106.188.220) (Ping timeout: 268 seconds)
2021-11-04 21:05:39 +0100 <dsal> Sometimes, I spend so much of my day trying to figure out how to avoid writing code that I don't even write any code.
2021-11-04 21:06:40 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2021-11-04 21:07:02 +0100hightower2(~hightower@213.147.110.20) (Ping timeout: 256 seconds)
2021-11-04 21:07:35 +0100juhp(~juhp@128.106.188.220)
2021-11-04 21:09:34 +0100 <aegon> lol, i live with another coder and she's doing the same today. Afaik the whole morning has been spent trying to figure out how to use the infer keyword in typescript to remove the need for a switch statement... in all liklihood this would end up in javascript with the same runtime. but we both get sucked down typing rabbit holes
2021-11-04 21:10:18 +0100 <aegon> i'm manually instancing now though
2021-11-04 21:10:36 +0100 <dsal> I was working with interns doing typescript and it proxied a lot of pain back to me.
2021-11-04 21:10:48 +0100 <shapr> I shall change my title to explorer of rabbit holes.
2021-11-04 21:11:08 +0100 <geekosaur> <-- human fuzzer
2021-11-04 21:13:55 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-11-04 21:14:42 +0100mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 260 seconds)
2021-11-04 21:15:53 +0100Guest41(~Guest41@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed)
2021-11-04 21:17:14 +0100alx741(~alx741@186.178.109.189) (Ping timeout: 256 seconds)
2021-11-04 21:20:01 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-11-04 21:21:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-11-04 21:24:21 +0100caef^(~caef@wsip-98-188-242-6.mc.at.cox.net) (Remote host closed the connection)
2021-11-04 21:29:43 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-11-04 21:31:45 +0100alx741(~alx741@181.196.68.55)
2021-11-04 21:32:53 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:b05b:c1ec:b58c:ef2d)
2021-11-04 21:32:54 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-04 21:38:07 +0100slack1256(~slack1256@191.125.227.82) (Ping timeout: 268 seconds)
2021-11-04 21:39:04 +0100pavonia(~user@user/siracusa)
2021-11-04 21:41:38 +0100krjst(~krjst@2604:a880:800:c1::16b:8001)
2021-11-04 21:46:54 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net)
2021-11-04 21:48:26 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
2021-11-04 21:49:54 +0100sprout(~quassel@2a02:a467:ccd6:1:5495:68b3:d03c:732e)
2021-11-04 21:51:13 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-11-04 21:53:31 +0100sprout_(~quassel@2a02:a467:ccd6:1:f161:c9c3:b403:49f6) (Ping timeout: 268 seconds)
2021-11-04 21:59:42 +0100xff0x(~xff0x@2001:1a81:5236:1e00:2c63:dc9c:df4d:2374) (Ping timeout: 268 seconds)
2021-11-04 22:00:18 +0100xff0x(~xff0x@2001:1a81:5236:1e00:5867:e42a:e65f:e597)
2021-11-04 22:00:56 +0100 <aegon> hmm, will GHC always choose the most specific instance? Trying to figure out if i need to use a newtype here. UUID is an instance of Storable which means by proxy it has an instance of MessagePack already.. however, i always want my instances to use a custom instance of message pack that uses bytestring serialization (which is rfc compliant) can i get away with instancing this for uuid somewhere in my
2021-11-04 22:01:02 +0100 <aegon> module and be assured it will be used within the module instaead of the generic Storable instance?
2021-11-04 22:02:05 +0100werner100(~werner100@2601:2c2:400:4440:99e8:39f6:7f1b:a334)
2021-11-04 22:02:58 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-11-04 22:03:43 +0100Guest4193(~Guest41@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-11-04 22:04:16 +0100wonko(~wjc@user/wonko) (Ping timeout: 256 seconds)
2021-11-04 22:05:24 +0100dsrt^(~dsrt@wsip-98-188-242-6.mc.at.cox.net)
2021-11-04 22:05:39 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl)
2021-11-04 22:07:33 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-11-04 22:07:46 +0100 <geekosaur> it won't let you without an OVERLAP pragma of some kind, and even then it's best effort, not guaranteed
2021-11-04 22:08:45 +0100 <geekosaur> actually if there's already an instance for that type I think you may need IncoherentInstances. or it m9ight just not let you at all
2021-11-04 22:08:51 +0100 <geekosaur> you'd have to newtype it
2021-11-04 22:09:26 +0100 <awpr> if this is https://hackage.haskell.org/package/msgpack-1.0.1.0/docs/Data-MessagePack-Object.html#t:MessagePack, there isn't a catch-all instance based on Storable, at least not in that package
2021-11-04 22:11:01 +0100 <geekosaur> catch-all instances are generally a bad thing, so I'd not expect to see one. unless you defined it yourself, in which case you may be about to discover why it's a bad idea
2021-11-04 22:11:04 +0100sciencentistguy(~sciencent@hacksoc/ordinary-member) (Ping timeout: 256 seconds)
2021-11-04 22:11:57 +0100 <aegon> awpr's right, itstht package and i was misreading the constrains on instances for Vector a :!
2021-11-04 22:17:33 +0100werner100(~werner100@2601:2c2:400:4440:99e8:39f6:7f1b:a334) (Quit: Ping timeout (120 seconds))
2021-11-04 22:18:02 +0100Pickchea(~private@user/pickchea)
2021-11-04 22:19:31 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-11-04 22:26:12 +0100yrlnry(~mjd@pool-74-109-22-90.phlapa.fios.verizon.net) (Ping timeout: 268 seconds)
2021-11-04 22:33:45 +0100sonny(~sonny@bras-base-london1483w-grc-30-74-12-157-200.dsl.bell.ca)
2021-11-04 22:33:45 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:b05b:c1ec:b58c:ef2d) (Quit: WeeChat 2.8)
2021-11-04 22:35:58 +0100sonny(~sonny@bras-base-london1483w-grc-30-74-12-157-200.dsl.bell.ca) ()
2021-11-04 22:36:22 +0100fendor(~fendor@178.115.33.172.wireless.dyn.drei.com) (Remote host closed the connection)
2021-11-04 22:37:03 +0100azimut_(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2021-11-04 22:37:34 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2021-11-04 22:37:58 +0100fendor(~fendor@178.115.33.172.wireless.dyn.drei.com)
2021-11-04 22:40:43 +0100pop3(~pop3@user/pop3) (Remote host closed the connection)
2021-11-04 22:41:27 +0100acidjnk_new(~acidjnk@p200300d0c726704784feaa35b47dd204.dip0.t-ipconnect.de)
2021-11-04 22:48:25 +0100gg(~gg@88.160.100.84) (Ping timeout: 268 seconds)
2021-11-04 22:58:28 +0100pop3(~pop3@user/pop3)
2021-11-04 22:59:23 +0100fendor(~fendor@178.115.33.172.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-11-04 23:01:38 +0100gg(~gg@2a01:e0a:819:1510:89f0:97ca:21c4:6ea6)
2021-11-04 23:03:34 +0100Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-11-04 23:07:45 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection)
2021-11-04 23:08:02 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-04 23:08:02 +0100hightower2(~hightower@213.147.110.20)
2021-11-04 23:08:23 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl) (Remote host closed the connection)
2021-11-04 23:11:21 +0100vysn(~vysn@user/vysn)
2021-11-04 23:11:27 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-11-04 23:13:04 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
2021-11-04 23:15:16 +0100cosimone(~user@93-44-187-173.ip98.fastwebnet.it) (Quit: ERC (IRC client for Emacs 27.1))
2021-11-04 23:15:50 +0100burnsidesLlama(~burnsides@dhcp168-032.wadham.ox.ac.uk) (Remote host closed the connection)
2021-11-04 23:16:08 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-11-04 23:17:00 +0100jinsun(~quassel@user/jinsun) (Read error: Connection reset by peer)
2021-11-04 23:17:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-04 23:18:26 +0100jinsun(~quassel@user/jinsun)
2021-11-04 23:19:11 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2021-11-04 23:21:28 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-11-04 23:22:20 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
2021-11-04 23:25:22 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-11-04 23:26:01 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 268 seconds)
2021-11-04 23:34:57 +0100burnsidesLlama(~burnsides@dhcp168-032.wadham.ox.ac.uk)
2021-11-04 23:36:01 +0100pop3(~pop3@user/pop3) (Remote host closed the connection)
2021-11-04 23:36:15 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-11-04 23:36:44 +0100pop3(~pop3@user/pop3)
2021-11-04 23:41:52 +0100mestre(~mestre@191.177.175.57)
2021-11-04 23:42:42 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-11-04 23:42:52 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-11-04 23:43:24 +0100Inst_(~Inst@2601:6c4:4080:3f80:1d49:739d:9075:d5df)
2021-11-04 23:46:56 +0100max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Quit: Leaving)
2021-11-04 23:47:42 +0100Inst(~Inst@2601:6c4:4080:3f80:cd36:4dbb:1af8:be8) (Ping timeout: 260 seconds)
2021-11-04 23:51:53 +0100mestre(~mestre@191.177.175.57) (Quit: Lost terminal)
2021-11-04 23:52:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-11-04 23:58:44 +0100ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2021-11-04 23:59:56 +0100xff0x(~xff0x@2001:1a81:5236:1e00:5867:e42a:e65f:e597) (Ping timeout: 268 seconds)