Home liberachat/#haskell: Logs Calendar

Logs on 2021-09-02 (liberachat/#haskell)

00:01:10 × SystemFFan quits (~SystemFFa@188.70.6.7) (Ping timeout: 240 seconds)
00:01:44 <glguy> Aw, shoot. hledger thinks ==* means something else
00:01:47 <glguy> err
00:01:49 <monochrom> Hydrazer: If a main is not required, I would try an empty file. If a module declaration is not counted toward code size, I would try "module M where".
00:01:50 <glguy> ledger does
00:02:34 <sm> [OT] ledger doesn't parse it, yes. If you need that sticking to = is sometimes best
00:02:35 <glguy> Hydrazer: main=main
00:03:39 <glguy> sm: I want ==* because I want to assert that an event is closed out when I belive that to be the case
00:03:59 <glguy> and I have an account tree: Events:<Event Name>:<Person>
00:04:17 <glguy> so I'm looking at being able to write: Events:Summer Camp 2021 ==* $0
00:05:03 <glguy> I only really care about ledger compatibility because my spacemaces has ledger-mode
00:05:16 <glguy> I should see about getting hledger in its place
00:05:23 <johnw> noooo.....
00:05:32 glguy hides
00:05:42 <sm> doh! act natural!
00:05:55 <glguy> oh, hi johnw; I meant my friend might try to do that thing
00:06:01 <johnw> :(
00:07:55 <sm> howdy john
00:08:05 × Hydrazer quits (~Hydrazer@S010684c9b26eee6d.cg.shawcable.net) (Ping timeout: 256 seconds)
00:15:28 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 252 seconds)
00:19:17 × vysn quits (~vysn@user/vysn) (Ping timeout: 245 seconds)
00:19:57 <glguy> sm: Have I showed this to you before? https://gist.github.com/glguy/e996b1ea2fef5dd5e8a32f39da8a3f78
00:21:19 <johnw> sm: hi!
00:23:28 <sm> perhaps not glguy, nice!
00:24:34 VoidNoir0 joins (~VoidNoir0@72.80.203.52)
00:24:50 × VoidNoir0 quits (~VoidNoir0@72.80.203.52) (Client Quit)
00:26:26 VoidNoir0 joins (~VoidNoir0@72.80.203.52)
00:27:07 × pbrisbin quits (~patrick@pool-108-16-214-93.phlapa.fios.verizon.net) (Ping timeout: 245 seconds)
00:27:28 × VoidNoir0 quits (~VoidNoir0@72.80.203.52) (Client Quit)
00:27:43 OscarH joins (~OscarH@2a02:c7f:a0da:ae00:ba27:ebff:fe84:d2f4)
00:29:06 VoidNoir0 joins (~VoidNoir0@72.80.203.52)
00:29:50 <glguy> OH, we're not in #plaintextaccounting
00:30:35 <sm> right :) but it's quiet
00:30:54 <glguy> Well, i was going to share *haskell source code* so still on topic: https://gist.github.com/glguy/fe5ea89e8d447874b704326e889d7f4b
00:31:13 <sm> +1
00:34:28 <sm> nice scripts! I'll link em
00:39:01 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
00:40:13 jakalx joins (~jakalx@base.jakalx.net)
00:43:19 × lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
00:45:51 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
00:47:15 × oxide quits (~lambda@user/oxide) (Quit: oxide)
00:47:54 × desantra quits (~skykanin@user/skykanin) (Quit: WeeChat 3.2)
00:50:14 × aegon quits (~mike@174.127.249.180) (Quit: leaving)
00:59:23 pzanco joins (~Android@187.104.158.159)
01:02:35 × thyriaen quits (~thyriaen@x4db75db3.dyn.telefonica.de) (Remote host closed the connection)
01:05:36 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds)
01:07:09 × ArctVaulMarsHMPJ quits (~pjetcetal@128-71-152-79.broadband.corbina.ru) (Ping timeout: 244 seconds)
01:16:07 neurocyte5 joins (~neurocyte@46.243.81.86)
01:16:07 × neurocyte5 quits (~neurocyte@46.243.81.86) (Changing host)
01:16:07 neurocyte5 joins (~neurocyte@user/neurocyte)
01:18:10 × neurocyte quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
01:18:10 neurocyte5 is now known as neurocyte
01:21:39 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:29:14 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
01:30:02 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:30:56 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:31:55 × mei quits (~mei@user/mei) (Ping timeout: 252 seconds)
01:34:07 × xff0x quits (~xff0x@2001:1a81:52f2:5d00:a43c:729f:4397:fe8e) (Ping timeout: 252 seconds)
01:36:00 xff0x joins (~xff0x@2001:1a81:5329:9c00:3941:fe2c:440c:b590)
01:36:13 NinjaTrappeur joins (~ninja@user/ninjatrappeur)
01:36:22 dmj` peeks in
01:41:43 vysn joins (~vysn@user/vysn)
01:42:16 × alx741 quits (~alx741@186.178.109.154) (Quit: alx741)
01:45:10 × waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 240 seconds)
01:46:40 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
01:49:55 × pzanco quits (~Android@187.104.158.159) (Quit: -a- IRC for Android 2.1.59)
01:51:10 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
01:59:47 Hydrazer joins (~Hydrazer@S010684c9b26eee6d.cg.shawcable.net)
02:00:28 × sim590 quits (~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 252 seconds)
02:01:48 Feuermagier joins (~Feuermagi@user/feuermagier)
02:03:03 <Hydrazer> does anyone know if there is a builtin that does something gets the head and tail of a list as a tuple? something like https://paste.tomsmeding.com/p8J4D5zB
02:03:22 <Hydrazer> that gets*
02:04:30 <Hydrazer> or maybe as a list [[1], [2, 3][
02:05:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
02:05:06 wirez joins (~wirez@user/wirez)
02:05:10 <wirez> what do you call a program that's a part of a suite and works with the other programs in the suite?
02:05:40 <Axman6> This is the weirdest setup for a joke I've heard for a long time...
02:06:01 <Hydrazer> lol
02:06:03 <wirez> component seems too generic because programs can have components
02:06:22 <wirez> Axman6: XD
02:06:28 ArctVaulMarsHMPJ joins (~pjetcetal@128-71-152-79.broadband.corbina.ru)
02:06:32 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Remote host closed the connection)
02:07:25 sayola joins (~vekto@dslb-088-064-186-138.088.064.pools.vodafone-ip.de)
02:07:46 vicfred joins (~vicfred@user/vicfred)
02:10:06 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
02:10:42 × dsrt^ quits (~dsrt@wsip-98-188-244-188.mc.at.cox.net) (Ping timeout: 244 seconds)
02:12:07 <sayola> there isnt an option where i dont have to pack this into a newtype to make an instance, or is there?
02:12:07 <sayola> newtype Foo a = Foo (Bar (Baz a))
02:12:07 <sayola> instance Functor Foo
02:12:15 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 244 seconds)
02:13:18 <dsal> sayola: Can you expand on your question? That is a newtype.
02:13:40 × typedfern__ quits (~Typedfern@28.red-83-57-142.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
02:14:18 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:14:59 <Axman6> what you have is just Compose Bar Baz
02:15:03 <sayola> dsal: i would like to instance `Bar (Baz a)` with `a` as the free variable.
02:15:09 <Axman6> which is a Functor if Bar and Baz are Functors
02:16:25 <sayola> i meant for any instance that is requiring * -> * kind, when the type variable is not on the topmost level
02:16:43 × Hydrazer quits (~Hydrazer@S010684c9b26eee6d.cg.shawcable.net) (Ping timeout: 256 seconds)
02:16:50 <Axman6> :t ala
02:16:51 <lambdabot> (Functor f, Rewrapped s t, Rewrapped t s) => (Unwrapped s -> s) -> ((Unwrapped t -> t) -> f s) -> f (Unwrapped s)
02:17:00 <Axman6> :t ala Compose
02:17:01 <lambdabot> error:
02:17:02 <lambdabot> • Data constructor not in scope: Compose :: Unwrapped s -> s
02:17:02 <lambdabot> • Perhaps you meant variable ‘icompose’ (imported from Control.Lens)
02:17:15 <Axman6> %:t ala Compose
02:17:27 <Axman6> % :t ala Compose
02:17:28 <yahb> Axman6: ; <interactive>:1:5: error:; * Data constructor not in scope: Compose :: Unwrapped s -> s; * Perhaps you meant one of these: variable `M.compose' (imported from Data.Map), variable `IM.compose' (imported from Data.IntMap), variable `icompose' (imported from Control.Lens)
02:17:36 <Axman6> :(
02:23:02 <Axman6> @hoogle Compose
02:23:02 <lambdabot> module Data.Functor.Compose
02:23:02 <lambdabot> Data.Functor.Compose newtype Compose f g a
02:23:02 <lambdabot> Data.Functor.Compose Compose :: f (g a) -> Compose f g a
02:23:04 × td_ quits (~td@94.134.91.219) (Ping timeout: 252 seconds)
02:23:11 <Axman6> % import Data.Functor.Compose
02:23:12 <yahb> Axman6:
02:23:15 <sayola> isnt this defeating the point, since its packed inside another newtype? kinda would like to have it blank. or am just not understanding Compose
02:23:18 <Axman6> % :t ala Compose
02:23:18 <yahb> Axman6: forall {k2} {k3} {k} {k1} {f :: * -> *} {f'1 :: k2 -> *} {g'1 :: k3 -> k2} {a'1 :: k3} {f'2 :: k -> *} {g'2 :: k1 -> k} {a'2 :: k1}. Functor f => ((f'1 (g'1 a'1) -> Compose f'1 g'1 a'1) -> f (Compose f'2 g'2 a'2)) -> f (f'2 (g'2 a'2))
02:23:53 <Axman6> I don't understand the question
02:24:17 <Axman6> but my point is that the type Compose Bar Baz a is the same as Foo a, but comes with the Functor instance for free
02:24:28 <sayola> ok
02:24:35 <sayola> but i dont want Foo
02:24:36 <Axman6> assuming Bar and Baz are Functors
02:24:51 td_ joins (~td@muedsl-82-207-238-003.citykom.de)
02:26:01 <sayola> Functors is only an example. i mean for instancing anything in general
02:28:10 <sayola> take this:
02:28:10 <sayola> instance Functor (Bar (Baz a))
02:28:10 <sayola> `a` is supposed to be the free variable for functor. can i possibly write the instance declaration so that it is? and without having to work around with a newtype
02:28:41 <Axman6> no
02:28:46 <sayola> thank you
02:28:47 typedfern__ joins (~Typedfern@171.red-83-51-60.dynamicip.rima-tde.net)
02:28:49 <sayola> all i wanted to know
02:32:13 × TranquilEcho quits (~grom@user/tranquilecho) (Quit: WeeChat 2.8)
02:32:24 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 244 seconds)
02:38:35 hexfive joins (~eric@50.35.83.177)
02:40:34 × VoidNoir0 quits (~VoidNoir0@72.80.203.52) (Quit: Connection closed)
02:42:32 × mmalter quits (~mmalter@88.171.43.194) (Remote host closed the connection)
02:43:37 VoidNoir0 joins (~VoidNoir0@72.80.203.52)
02:50:47 × hexfive quits (~eric@50.35.83.177) (Quit: WeeChat 3.0.1)
02:51:47 × OscarH quits (~OscarH@2a02:c7f:a0da:ae00:ba27:ebff:fe84:d2f4) (Ping timeout: 245 seconds)
02:54:21 sim590 joins (~simon@modemcable090.207-203-24.mc.videotron.ca)
03:10:02 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 245 seconds)
03:11:26 bradyt_ joins (~bradyt@user/bradyt)
03:11:28 × otto_s quits (~user@p5de2f920.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
03:11:49 × bradyt quits (~bradyt@user/bradyt) (Quit: bradyt)
03:13:15 otto_s joins (~user@p5de2f28d.dip0.t-ipconnect.de)
03:18:16 sleblanc joins (~sleblanc@user/sleblanc)
03:21:22 × edwtjo quits (~edwtjo@user/edwtjo) (Ping timeout: 240 seconds)
03:22:29 × bradyt_ quits (~bradyt@user/bradyt) (Quit: "")
03:23:44 edwtjo joins (~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se)
03:23:44 × edwtjo quits (~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se) (Changing host)
03:23:44 edwtjo joins (~edwtjo@user/edwtjo)
03:25:24 OscarH joins (~OscarH@2a02:c7f:a0da:ae00:ba27:ebff:fe84:d2f4)
03:32:40 × Morrow_ quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 240 seconds)
03:39:21 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
03:40:35 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Remote host closed the connection)
03:41:43 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
03:43:48 hyiltiz joins (~quassel@31.220.5.250)
03:47:33 lavaman joins (~lavaman@98.38.249.169)
03:48:01 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
03:49:42 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
03:51:35 daylily joins (~daylily@104.225.153.233.16clouds.com)
03:51:36 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
03:52:10 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
03:52:43 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
03:54:40 bradyt joins (~bradyt@user/bradyt)
03:57:35 × bradyt quits (~bradyt@user/bradyt) (Client Quit)
03:58:41 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
04:01:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:02:22 × Natch quits (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection)
04:02:51 × daylily quits (~daylily@104.225.153.233.16clouds.com) (Quit: Igloo IRC: https://iglooirc.com)
04:03:00 daylily joins (~daylily@104.225.153.233.16clouds.com)
04:03:10 × sleblanc quits (~sleblanc@user/sleblanc) (Ping timeout: 252 seconds)
04:07:46 Natch joins (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se)
04:08:10 × daylily quits (~daylily@104.225.153.233.16clouds.com) (Ping timeout: 240 seconds)
04:14:06 Skyfire joins (~pyon@user/pyon)
04:18:07 <jle`> sayola: note it doesn't quite kind-check
04:18:09 <jle`> :t fmap
04:18:10 <lambdabot> Functor f => (a -> b) -> f a -> f b
04:18:15 <jle`> what would "f" be?
04:18:22 <jle`> er, maybe 'unify' is a better word
04:18:52 <jle`> the haskell type system doesn't really know about functors or compositions and anything too advance, all it knows how to do is unify type variables
04:19:09 <jle`> unification machine go brrr :)
04:22:44 <Axman6> jle`: did you have any luck with hls?
04:26:22 <sayola> jle`: `f` would be `Bar (Baz a)`, as in `fmap :: (a -> b) -> Bar (Baz a) -> Bar (Baz b)`. not sure if i'm missing something. category theory gives me headache.
04:26:37 <jle`> sayola: that doesn't quite make sense for f
04:26:41 <jle`> `f a`
04:26:55 <jle`> if `f` is `Bar (Baz a)`, then that becomes `(Bar (Baz a)) a)` ?
04:27:05 <sayola> yeah, thats kinda the issue
04:27:05 <jle`> imagine a search-and-replace
04:27:12 <jle`> where you insert 'Bar (Baz a)' for f
04:27:19 <jle`> it doesn't quite make sense :)
04:27:33 <Axman6> you can't insert Bar (Baz either
04:27:33 <jle`> at least, it doesn't really work in haskell's type system
04:27:41 <Axman6> but you can insert Compose Bar Baz
04:27:41 <sayola> dunno. makes sense to me. dunno if it kills the compiler designer
04:27:52 <jle`> sayola: yeah, it makes sense conceptually, but doesn't fit wiht haskell's type system
04:27:59 <jle`> which is pretty simplistic
04:28:06 <jle`> it isn't aware of any category theory
04:28:07 <Axman6> its nothing to do with the compiler, it's how the langiage is defined, which is very consistent
04:28:24 <jle`> the haskell system doesn't know any category theory concepts, or what makes sense in the domain you are using it for
04:28:28 <jle`> it only knows how to "plug in" type variables
04:28:44 <jle`> and if you can't phrase your thing in terms of plugging in type variables, the type system' can't really express it
04:28:59 <jle`> Axman6: ah i haven't looked into it yet D:
04:29:28 <sayola> ok. lets say that the higher end of type systems give me headache x)
04:29:38 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
04:29:45 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Client Quit)
04:30:01 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
04:30:54 <Axman6> D:
04:31:21 <Axman6> sayola: this is a very long way from the higher end of the type system, this is simple dealing with brackets, it's primary school maths
04:31:36 <jle`> sayola: heh, yeah at least in this case it looks like your intuition on what is tricky in substitution is a good one, since you've run into a wall that's really there :)
04:32:02 <jle`> usually if i'm trying to unify something and it doesn't make sense or gives me pain in my soul, it's a sign to take a step back
04:32:07 <Axman6> Like, not to be too rude, but this is an extremely simpleidea
04:32:28 <jle`> hm, i do think that this is a non-obvious thing; this question does get asked a lot
04:32:38 <jle`> unifying higher-kinded types is something that takes getting used to
04:32:47 <Axman6> :t let fmapCompose f = getCompose . fmap f . Compose in fmapCompose
04:32:48 <lambdabot> error:
04:32:48 <lambdabot> Variable not in scope: getCompose :: f0 b1 -> c1
04:32:48 <lambdabot> error:
04:32:55 <Axman6> % :t let fmapCompose f = getCompose . fmap f . Compose in fmapCompose
04:32:56 <yahb> Axman6: forall {k1} {f :: k1 -> *} {g :: * -> k1} {a1} {a2}. Functor (Compose f g) => (a1 -> a2) -> f (g a1) -> f (g a2)
04:33:28 <jle`> asking "what could f be" is the start of many tricky haskell puzzles :)
04:34:37 × hgolden quits (~hgolden2@cpe-172-114-84-61.socal.res.rr.com) (Quit: Konversation terminated!)
04:35:17 oxide joins (~lambda@user/oxide)
04:35:20 <Axman6> % :t let fmapCompose3 f = getCompose . getCompose . fmap f . Compose . Compose in fmapCompose
04:35:21 <yahb> Axman6: ; <interactive>:1:78: error:; * Variable not in scope: fmapCompose; * Perhaps you meant `fmapCompose3' (line 1)
04:35:26 <Axman6> % :t let fmapCompose3 f = getCompose . getCompose . fmap f . Compose . Compose in fmapCompose3
04:35:26 <yahb> Axman6: forall {k1} {k2} {f :: k1 -> *} {g1 :: k2 -> k1} {g2 :: * -> k2} {a1} {a2}. Functor (Compose (Compose f g1) g2) => (a1 -> a2) -> f (g1 (g2 a1)) -> f (g1 (g2 a2))
04:35:26 ubert joins (~Thunderbi@77.119.167.244.wireless.dyn.drei.com)
04:35:53 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
04:37:48 <sayola> Axman6: imo its just easy to miss something, considering the dimensions. e.g. am still not sure what the type system can and can not do. not to mention all the extensions that manipulate these options. and then figuring out how to pack the actual code into it.
04:40:30 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
04:40:53 <sayola> btw. i just remembered newtype deriving ... probably the solution to the actual problem i have, if i'm not missing something x)
04:44:00 <jle`> it depends on what you actually want to do i think; if you just want to map over the 'a' in Bar (Baz a), you can do fmap (fmap f)
04:44:40 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
04:46:25 <sayola> assuming that Bar is also a functor
04:46:33 <jle`> right
04:47:19 wirez parts (~wirez@user/wirez) (part)
04:47:43 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 252 seconds)
04:50:35 × oxide quits (~lambda@user/oxide) (Quit: oxide)
04:58:27 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
05:02:48 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:06:44 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Read error: No route to host)
05:07:53 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:08:21 bradyt joins (~bradyt@user/bradyt)
05:09:03 daylily joins (~daylily@104.225.153.233.16clouds.com)
05:12:35 michalz joins (~michalz@185.246.204.61)
05:13:02 mei joins (~mei@user/mei)
05:13:30 × mei quits (~mei@user/mei) (Client Quit)
05:14:07 × daylily quits (~daylily@104.225.153.233.16clouds.com) (Ping timeout: 252 seconds)
05:14:12 × jushur quits (~human@user/jushur) (Quit: ¯\_(ツ)_/¯)
05:14:40 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
05:14:40 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
05:16:11 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 244 seconds)
05:16:16 jushur joins (~human@user/jushur)
05:16:28 hyiltiz joins (~quassel@31.220.5.250)
05:19:38 bitmapper joins (uid464869@id-464869.tooting.irccloud.com)
05:20:15 mei joins (~mei@user/mei)
05:25:52 × vysn quits (~vysn@user/vysn) (Ping timeout: 245 seconds)
05:31:34 × juhp quits (~juhp@128.106.188.220) (Quit: juhp)
05:31:43 juhp joins (~juhp@128.106.188.220)
05:35:34 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
05:37:35 × zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection)
05:39:06 zaquest joins (~notzaques@5.128.210.178)
05:44:45 Erutuon joins (~Erutuon@user/erutuon)
05:50:01 slavaqq joins (~slavaqq@sdmail.sdserver.cz)
05:51:33 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
05:51:33 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
05:51:33 wroathe joins (~wroathe@user/wroathe)
05:51:39 max22- joins (~maxime@2a01cb088335980087ef5e22f6c6ad9b.ipv6.abo.wanadoo.fr)
05:52:34 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
05:55:58 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 244 seconds)
05:58:00 lep is now known as lep-
06:02:37 kuribas joins (~user@ptr-25vy0iagfpe8knotjos.18120a2.ip6.access.telenet.be)
06:05:07 <kuribas> What's the beset way to do exhaustive property testing?
06:07:55 <kuribas> For example, taking a finit set of dates, and generating all lists with finit length of those dates.
06:07:59 <kuribas> Then checking properties.
06:08:20 <kuribas> tomsmeding: "potentially more efficient because less (++) ?"
06:08:39 <kuribas> tomsmeding: perhaps, but "[a] ++ " isn't that bad...
06:09:07 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
06:09:30 <kuribas> also, if I sort first, then fromAscList will be much more efficient.
06:10:10 <kuribas> I am thinking just using unit tests, but maybe the interface isn't made for large number of tests?
06:14:31 hyiltiz joins (~quassel@31.220.5.250)
06:16:16 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
06:18:25 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:21:34 <kuribas> tomsmeding: oh, and in my option using the reader monad without ReaderT is evil ;-)
06:22:18 <opqdonut> kuribas: smallcheck does exhaustive checking
06:22:44 Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk)
06:27:54 <kuribas> opqdonut: right, the "generate :: (Depth -> [a]) -> Series m a" function is just what I wanted :)
06:32:14 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:37:37 Pickchea joins (~private@user/pickchea)
06:42:40 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
06:44:52 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 252 seconds)
06:45:53 × slavaqq quits (~slavaqq@sdmail.sdserver.cz) (Ping timeout: 256 seconds)
06:48:05 hgolden joins (~hgolden2@cpe-172-114-84-61.socal.res.rr.com)
06:54:09 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
06:55:05 trcc joins (~trcc@2-104-60-169-cable.dk.customer.tdc.net)
06:58:23 × trcc quits (~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
06:58:35 trcc joins (~trcc@2-104-60-169-cable.dk.customer.tdc.net)
07:01:38 × Guest372 quits (~xxx@47.245.54.240) (Remote host closed the connection)
07:02:18 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
07:02:22 Gurkenglas joins (~Gurkengla@dslb-088-075-022-191.088.075.pools.vodafone-ip.de)
07:02:44 Guest372 joins (~xxx@47.245.54.240)
07:06:52 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
07:10:51 lep- is now known as lep
07:12:57 × cheater quits (~Username@user/cheater) (Ping timeout: 244 seconds)
07:15:14 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
07:16:07 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
07:25:28 Morrow_ joins (~Morrow@31.154.96.164)
07:26:19 aman joins (~aman@user/aman)
07:26:39 acidjnk_new joins (~acidjnk@p200300d0c720300659598fb61e40d514.dip0.t-ipconnect.de)
07:26:40 × sim590 quits (~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 252 seconds)
07:27:17 mc47 joins (~mc47@xmonad/TheMC47)
07:27:18 × xff0x quits (~xff0x@2001:1a81:5329:9c00:3941:fe2c:440c:b590) (Ping timeout: 256 seconds)
07:28:13 xff0x joins (~xff0x@2001:1a81:5329:9c00:532c:18c2:3151:8d2a)
07:29:57 lavaman joins (~lavaman@98.38.249.169)
07:30:36 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:32:32 × Morrow_ quits (~Morrow@31.154.96.164) (Ping timeout: 245 seconds)
07:34:08 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 244 seconds)
07:34:53 dsrt^ joins (~dsrt@wsip-98-188-244-188.mc.at.cox.net)
07:34:56 <tomsmeding> kuribas: ah, from your 'reverse' I lazily concluded that new elements would be appended on the end with the expression you posted
07:35:33 <kuribas> tomsmeding: in that case I wouldn't need a reverse, no?
07:36:16 lortabac joins (~lortabac@2a01:e0a:541:b8f0:e4f5:e96c:7308:8daf)
07:37:05 <tomsmeding> hmmmm, you're right lol
07:38:17 <kuribas> sort could faster though, I'd need to benchmark...
07:38:25 <kuribas> I didn't really think about performance.
07:39:41 slavaqq joins (~slavaqq@sdmail.sdserver.cz)
07:41:07 ishutin_ joins (~ishutin@92-249-150-146.static.digikabel.hu)
07:43:01 gehmehgeh joins (~user@user/gehmehgeh)
07:44:33 × ishutin quits (~ishutin@178-164-206-57.pool.digikabel.hu) (Ping timeout: 248 seconds)
07:49:27 <kuribas> tomsmeding: map basically adds each element at a time.
07:51:38 × phma quits (~phma@host-67-44-208-4.hnremote.net) (Read error: Connection reset by peer)
07:52:36 <tomsmeding> kuribas: yeah, but that doesn't say whether it adds them on the left or on the right of the accumulated element, or in some other order
07:52:46 <tomsmeding> I could have looked at the documentation but I was lazy :p
07:53:31 <kuribas> tomsmeding: it's new_key ++ old_key. The documentation is rather bad indeed.
07:54:10 × OscarH quits (~OscarH@2a02:c7f:a0da:ae00:ba27:ebff:fe84:d2f4) (Ping timeout: 252 seconds)
07:54:35 <tomsmeding> makes sense though, given that fromListWith (++) is probably a common usecase
07:55:30 phma joins (~phma@host-67-44-209-33.hnremote.net)
07:58:51 × timCF quits (~timCF@200-149-20-81.sta.estpak.ee) (Quit: leaving)
08:01:54 × V quits (~v@anomalous.eu) (Ping timeout: 250 seconds)
08:03:00 dhruvasagar joins (~dhruvasag@49.207.59.235)
08:03:56 nschoe joins (~quassel@178.251.84.79)
08:04:56 hendursa1 joins (~weechat@user/hendursaga)
08:07:51 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds)
08:17:19 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Remote host closed the connection)
08:18:11 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
08:19:51 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
08:24:11 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
08:25:53 dsp joins (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
08:27:03 <dsp> I am trying to install Cabal 3.6.0.0 to build a project that requires cabal 3.6. I tried installing cabal-install using apt on Ubuntu 21.4 then using `cabal install cabal-install` to get the most recent versionw hich appears to be 3.4. I tried to install Cabal-3.6.0.0 using `cabal install Cabal-3.6.0.0` but i still cannot build the project due to verison mismatch
08:27:13 <dsp> any idea how i install Cabal 3.6.0.0 correctly?
08:28:05 <sclv> what project could possibly require cabal 3.6?
08:28:09 <dsp> hsthrift
08:28:18 <sclv> ah
08:28:32 <dsp> I am trying to compile glean which requires hsthrift
08:28:34 <JavierNeira[m]> wow that is really bleeding edge
08:28:43 <sclv> note there’s not yet a cabal install release with that lib yet
08:29:07 cheater joins (~Username@user/cheater)
08:29:25 <dsp> https://github.com/facebookincubator/hsthrift/blob/main/lib/thrift-lib.cabal see cabal-version: 3.6
08:29:25 × bitmapper quits (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity)
08:29:48 <sclv> arguably you should pull the cabal 3.6 branch from github
08:30:01 <dsp> fair enough. I'll do that
08:30:07 <sclv> and build the cabal install binary from that branch
08:30:17 <dsp> Ya that's sensible. Appreciate the help sclv.
08:31:19 <sclv> alternatively maybe they don’t need that version? like try downgrading the number in that file and see whats the worst that happens :-)
08:31:34 <dsp> Talkinga bout help, I have another question (I am fairly new to haskell, so sorry about that). I am using sql quasiquotes from sqlite-simple, but want to have an IN statement. E.g. "SELECT x FROM y WHERE z IN(?)". Now this expansion is not supported, instead you would have to add as many ? as there are elements in e.g. a list you want to query. What's the best appraoch to go about taht
08:31:36 <merijn> sclv: But newer is always better! ;)
08:31:40 × favonia quits (~favonia@user/favonia) (Ping timeout: 240 seconds)
08:31:48 <dsp> I am thinking about building a new quasi quoter or so for it. I am curious how people solve these
08:32:08 <merijn> dsp: You can't really solve those other than "generate the query dynamically"
08:32:26 <merijn> Trust me, I tried :p
08:33:03 <dsp> merijn: How do people do that usually? I like to write the query in quasiquotes for readability. So maybe just switch to RawText-QQ and parse the query for a placeholder and replace it?
08:34:03 <merijn> dsp: The *proper* way to do it is to generate the query with ? placeholders as string, then pass that to query creation then fill in the ? using prepared statement
08:34:07 × slavaqq quits (~slavaqq@sdmail.sdserver.cz) (Ping timeout: 256 seconds)
08:34:53 × hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
08:35:00 teo joins (~teo@137.220.120.222)
08:36:09 jtomas joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
08:36:20 <dsp> merijn: right. So pure string manipulation before passing it to query creation right? I hope i understand it correctly how to do it, I'll give it a shot.
08:36:44 <dsp> I am mostly concerned how to retain the readability of quasiquoting + generating the ? dynamically
08:38:38 <merijn> I mean, what's the quasi quote really doing?
08:39:02 <dsp> basically just allowing me to write nice multi-line queries in the code
08:39:09 Akronymus joins (~Akronymus@85.31.8.180)
08:39:14 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
08:39:23 <Akronymus> A few weeks ago I asked about a weird haskell function in here.
08:39:32 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
08:39:36 <Akronymus> I think I finally found it: https://wiki.haskell.org/Zygohistomorphic_prepromorphisms
08:46:28 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 244 seconds)
08:46:54 × trcc quits (~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
08:54:16 MoC joins (~moc@user/moc)
08:54:37 slavaqq joins (~slavaqq@sdmail.sdserver.cz)
08:57:06 ubert1 joins (~Thunderbi@91.141.75.40.wireless.dyn.drei.com)
08:57:58 × ubert quits (~Thunderbi@77.119.167.244.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
08:57:58 ubert1 is now known as ubert
09:03:26 jippiedoe joins (~david@2a02-a44c-e14e-1-4b6a-72bf-d881-3da7.fixed6.kpn.net)
09:05:00 burnsidesLlama joins (~burnsides@dhcp168-020.wadham.ox.ac.uk)
09:08:21 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
09:11:44 Morrow_ joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
09:17:48 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
09:19:07 × charukiewicz quits (~quassel@irouteince04.i.subnet.rcn.com) (Read error: Connection reset by peer)
09:19:30 charukiewicz joins (~quassel@irouteince04.i.subnet.rcn.com)
09:22:12 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Ping timeout: 245 seconds)
09:28:41 × slavaqq quits (~slavaqq@sdmail.sdserver.cz) (Quit: Client closed)
09:29:40 × burnsidesLlama quits (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
09:32:19 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:32:46 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
09:37:40 __monty__ joins (~toonn@user/toonn)
09:44:57 deejaytee joins (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net)
09:45:22 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
09:45:40 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
09:50:33 acidjnk_new3 joins (~acidjnk@p200300d0c72030066952f67dc93adefd.dip0.t-ipconnect.de)
09:52:58 × jtomas quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Remote host closed the connection)
09:54:04 × acidjnk_new quits (~acidjnk@p200300d0c720300659598fb61e40d514.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
09:54:44 fendor joins (~fendor@91.141.68.147.wireless.dyn.drei.com)
09:57:21 slavaqq joins (~slavaqq@sdmail.sdserver.cz)
10:04:59 vysn joins (~vysn@user/vysn)
10:06:02 burnsidesLlama joins (~burnsides@dhcp168-020.wadham.ox.ac.uk)
10:07:24 trcc joins (~trcc@2-104-60-169-cable.dk.customer.tdc.net)
10:08:24 enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
10:11:10 × burnsidesLlama quits (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
10:12:32 × xff0x quits (~xff0x@2001:1a81:5329:9c00:532c:18c2:3151:8d2a) (Ping timeout: 245 seconds)
10:13:25 xff0x joins (~xff0x@2001:1a81:5329:9c00:9b27:ac34:a98:1a7c)
10:18:16 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
10:21:00 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:31:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
10:38:01 merijn joins (~merijn@2001:981:ab73:1:2088:973a:439d:f0e5)
10:38:35 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
10:39:12 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 245 seconds)
10:39:29 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
10:41:11 burnsidesLlama joins (~burnsides@dhcp168-020.wadham.ox.ac.uk)
10:43:34 × merijn quits (~merijn@2001:981:ab73:1:2088:973a:439d:f0e5) (Ping timeout: 252 seconds)
10:43:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:45:18 × burnsidesLlama quits (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 244 seconds)
10:45:39 xstill joins (~xstill@fimu/xstill)
10:49:04 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
10:49:47 comerijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:51:58 jakalx parts (~jakalx@base.jakalx.net) ()
10:52:01 × deejaytee quits (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Ping timeout: 244 seconds)
10:53:44 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:54:05 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
10:54:20 jakalx joins (~jakalx@base.jakalx.net)
10:54:23 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
10:56:12 neo joins (~neo3@cpe-292712.ip.primehome.com)
10:59:48 × comerijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
11:00:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:00:59 alx741 joins (~alx741@186.178.109.154)
11:01:04 Topsi joins (~Tobias@dyndsl-095-033-094-080.ewe-ip-backbone.de)
11:05:12 marjinal1st joins (~Thunderbi@185.67.125.128)
11:07:06 × trcc quits (~trcc@2-104-60-169-cable.dk.customer.tdc.net) ()
11:09:52 AlexNoo_ joins (~AlexNoo@178.34.151.114)
11:10:29 acidjnk_new joins (~acidjnk@p5487d0ba.dip0.t-ipconnect.de)
11:11:17 × Alex_test quits (~al_test@178.34.163.49) (Ping timeout: 245 seconds)
11:12:10 × AlexZenon quits (~alzenon@178.34.163.49) (Ping timeout: 244 seconds)
11:12:39 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
11:13:07 × AlexNoo quits (~AlexNoo@178.34.163.49) (Ping timeout: 240 seconds)
11:13:53 × acidjnk_new3 quits (~acidjnk@p200300d0c72030066952f67dc93adefd.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
11:15:43 Alex_test joins (~al_test@178.34.151.114)
11:16:42 AlexZenon joins (~alzenon@178.34.151.114)
11:17:10 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
11:17:40 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
11:17:51 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 244 seconds)
11:19:11 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
11:20:22 × jespada quits (~jespada@90.254.245.194) (Ping timeout: 252 seconds)
11:21:21 jespada joins (~jespada@90.254.245.194)
11:22:10 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
11:23:40 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Ping timeout: 240 seconds)
11:24:47 fendor_ joins (~fendor@178.165.178.184.wireless.dyn.drei.com)
11:25:18 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
11:28:11 × fendor quits (~fendor@91.141.68.147.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
11:30:33 OscarH joins (~OscarH@054449d6.skybroadband.com)
11:31:41 lavaman joins (~lavaman@98.38.249.169)
11:32:23 × dsp quits (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Remote host closed the connection)
11:36:10 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
11:36:31 _xor joins (~xor@74.215.232.67)
11:40:55 erinvanderveen[m joins (~erinvande@2001:470:69fc:105::e8f3)
11:41:02 <infinisil> We're considering wrapping a supposedly pure C library doing some crypto verification. Is it a good idea to make this wrapper pure via `unsafePerformIIO`?
11:41:22 <hpc> if you're using FFI, you don't need it
11:41:32 <hpc> just give your functions the right type when you foreign import them
11:41:53 <hpc> (but using unsafePerformIO after the fact is basically the same thing)
11:41:58 <merijn> infinisil: You can even do that implicitly when you foreign import them
11:41:59 dsp joins (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net)
11:42:12 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
11:42:23 <merijn> infinisil: How good of an idea that is depends heavily how sure you are that they're in fact pure ;)
11:42:56 <infinisil> I see, guess that makes sense
11:43:34 <infinisil> The library is well-tested and does pure things (verifying signatures is what we're interested in), the library is https://github.com/Yubico/libfido2 fyi
11:44:08 deejaytee joins (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net)
11:45:19 <erinvanderveen[m> Could any problems occur if GHC assumes the functions are pure, when in certain unlikely cases they aren't?
11:45:21 <erinvanderveen[m> A malloc failing for example.
11:46:21 fendor_ is now known as fendor
11:47:32 × JSharp quits (sid4580@id-4580.tooting.irccloud.com) ()
11:47:58 JSharp joins (sid4580@id-4580.lymington.irccloud.com)
11:48:00 <hpc> erinvanderveen[m: more the question there is, what happens when foreign code has an error
11:48:26 <hpc> at a low level (in ghc at least), IO and pure code are the same thing
11:49:02 <hpc> when malloc fails it returns a null pointer, so unless that's handled you get a segfault
11:49:27 <merijn> erinvanderveen[m: If a function *isn't* pure and you use unsafeX to make GHC think it is, then problems can occur, yes
11:50:18 <merijn> erinvanderveen[m: If you give functions a pure type it's equivalent to saying "I'm ok with this running 0, 1, or more times and don't really care in what order"
11:50:40 × xff0x quits (~xff0x@2001:1a81:5329:9c00:9b27:ac34:a98:1a7c) (Ping timeout: 252 seconds)
11:51:06 euandreh joins (~euandreh@2804:14c:33:9fe5:554e:b40c:516f:45c1)
11:53:25 <infinisil> Alright, so I think it's pretty easy: If the function in C is pure, make it pure in Haskell too. If it isn't, don't
11:53:40 xff0x joins (~xff0x@2001:1a81:5329:9c00:9b27:ac34:a98:1a7c)
11:55:51 <erinvanderveen[m> Thank you for your answers.
11:56:10 machinedgod joins (~machinedg@135.23.192.217)
11:56:10 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 240 seconds)
11:57:11 <merijn> In fact, it's not really a matter of "can problems occur" and more "how horribly will they manifest" ;)
11:57:41 burnsidesLlama joins (~burnsides@dhcp168-020.wadham.ox.ac.uk)
11:58:01 <merijn> infinisil: And make sure you do safe foreign imports unless you're really, *really*, REALLY sure what you're doing
11:58:17 × idnar quits (sid12240@debian/mithrandi) ()
11:58:32 idnar joins (sid12240@debian/mithrandi)
11:59:19 × dsal quits (sid13060@id-13060.tooting.irccloud.com) ()
11:59:35 dsal joins (sid13060@id-13060.lymington.irccloud.com)
12:02:34 × teehemkay quits (sid14792@id-14792.tooting.irccloud.com) ()
12:02:48 teehemkay joins (sid14792@id-14792.lymington.irccloud.com)
12:03:27 × max22- quits (~maxime@2a01cb088335980087ef5e22f6c6ad9b.ipv6.abo.wanadoo.fr) (Ping timeout: 245 seconds)
12:03:56 × neo quits (~neo3@cpe-292712.ip.primehome.com) (Read error: Connection reset by peer)
12:04:21 × slavaqq quits (~slavaqq@sdmail.sdserver.cz) (Ping timeout: 256 seconds)
12:06:25 × nrr quits (sid20938@tooting.irccloud.com) ()
12:06:41 nrr joins (sid20938@id-20938.lymington.irccloud.com)
12:07:26 hyiltiz joins (~quassel@31.220.5.250)
12:07:39 <tdammers> I like that wording... not just "will it be horrible", but "how horrible exactly will it get"
12:07:46 sleblanc joins (~sleblanc@user/sleblanc)
12:07:50 × NemesisD quits (sid24071@tooting.irccloud.com) ()
12:08:05 NemesisD joins (sid24071@id-24071.lymington.irccloud.com)
12:13:27 <kuribas> I am looking at the hspec-smallcheck package, but I don't see any way to change the depth?
12:14:02 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
12:14:51 <sshine_> kuribas, depth as in implicit size parameter?
12:15:03 <kuribas> sshine_: I suppose?
12:15:55 <kuribas> sshine_: depth as in what you pass to smallCheck: https://hackage.haskell.org/package/smallcheck-1.2.1/docs/Test-SmallCheck-Drivers.html#v:smallCheck
12:16:03 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:16:10 <sshine_> kuribas, ah, `changeDepth`. can't you do 'property $ changeDepth ...'?
12:16:38 lavaman joins (~lavaman@98.38.249.169)
12:16:48 <Akronymus> This is such a nice place of sanity.
12:16:53 <sshine_> seems like hspec-smallcheck only exposes the 'property' wrapper for embedding into Specs.
12:17:04 × Pickchea quits (~private@user/pickchea) (Ping timeout: 252 seconds)
12:17:10 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 240 seconds)
12:17:41 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
12:17:47 <sshine_> Akronymus, as in, you want to change the depth of a property so you do property . changeDepth ...? :D
12:17:53 lavaman joins (~lavaman@98.38.249.169)
12:19:20 <Akronymus> sshine_ as in, reading #haskell keeps me somewhat sane.
12:19:37 <Akronymus> Currently learning ABL/Progress/OpenEdge for work.
12:19:45 <kuribas> sshine_: hmm, maybe I need to use the smallCheck function.
12:19:46 <Akronymus> And it makes me wanna gauge my eyes out.
12:20:08 <kuribas> sshine_: that instance "Testable IO (IO ())" is a big smell though...
12:20:27 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
12:20:31 <int-e> . o O ( Detestable instance )
12:20:34 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed)
12:20:48 <hpc> that'd be a good package name
12:22:46 <sshine_> kuribas, admittedly, hspec-hedgehog has a lot more than 'property'. but I always tend to make a few test helpers of my own anyways.
12:23:08 <kuribas> sshine_: a bit of documentation migh have helped too :)
12:23:18 tfeb joins (tfb@gateway/vpn/protonvpn/tfb)
12:23:20 <sshine_> kuribas, yep!
12:23:55 <sshine_> https://hackage.haskell.org/package/hspec-hedgehog-0.0.1.2/docs/Test-Hspec-Hedgehog.html is a good example of what https://hackage.haskell.org/package/hspec-smallcheck-0.5.2/docs/Test-Hspec-SmallCheck.html could have looked like :P
12:24:18 <sshine_> I guess there is some at https://hackage.haskell.org/package/smallcheck-1.1.3.1/docs/Test-SmallCheck.html
12:24:42 <kuribas> sshine_: yes, much better!
12:25:22 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed) (Ping timeout: 256 seconds)
12:26:01 sshine_ is now known as sshine
12:27:11 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
12:27:51 gehmehgeh joins (~user@user/gehmehgeh)
12:38:31 arjun joins (~Srain@user/arjun)
12:44:38 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 256 seconds)
12:44:55 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
12:47:19 × sleblanc quits (~sleblanc@user/sleblanc) (Ping timeout: 252 seconds)
12:48:07 pbrisbin joins (~patrick@pool-108-16-214-93.phlapa.fios.verizon.net)
12:48:28 slowButPresent joins (~slowButPr@user/slowbutpresent)
12:48:42 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
12:48:45 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:49:18 × tfeb quits (tfb@gateway/vpn/protonvpn/tfb) (Remote host closed the connection)
12:50:10 × sclv quits (sid39734@haskell/developer/sclv) ()
12:50:25 sclv joins (sid39734@haskell/developer/sclv)
12:55:55 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
12:56:07 × marjinal1st quits (~Thunderbi@185.67.125.128) (Ping timeout: 252 seconds)
12:57:12 max22- joins (~maxime@2a01cb0883359800a52ea8a51dfe9c16.ipv6.abo.wanadoo.fr)
13:00:09 × mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 244 seconds)
13:00:44 × iphy quits (sid67735@tooting.irccloud.com) ()
13:01:03 iphy joins (sid67735@id-67735.lymington.irccloud.com)
13:03:14 × degraafk quits (sid71464@tooting.irccloud.com) ()
13:03:30 degraafk joins (sid71464@id-71464.lymington.irccloud.com)
13:03:45 × adamse quits (sid72084@user/adamse) ()
13:03:55 slavaqq joins (~slavaqq@sdmail.sdserver.cz)
13:04:03 adamse joins (sid72084@user/adamse)
13:04:48 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
13:05:00 <_bin> What sort of concurrency mechanism is best for making a lot of network requests at once?
13:05:28 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
13:06:11 favonia joins (~favonia@user/favonia)
13:08:58 × christiaanb quits (sid84827@tooting.irccloud.com) ()
13:09:13 christiaanb joins (sid84827@id-84827.lymington.irccloud.com)
13:10:08 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 256 seconds)
13:11:11 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
13:11:16 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
13:12:07 AlexNoo_ is now known as AlexNoo
13:14:35 × PotatoGim quits (sid99505@id-99505.tooting.irccloud.com) ()
13:15:01 PotatoGim joins (sid99505@id-99505.lymington.irccloud.com)
13:15:41 × burnsidesLlama quits (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
13:15:42 × hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1)
13:15:55 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
13:16:18 hendursaga joins (~weechat@user/hendursaga)
13:18:47 shriekingnoise joins (~shrieking@186.137.144.80)
13:19:10 marjinal1st joins (~Thunderbi@178.251.45.235)
13:19:53 TranquilEcho joins (~grom@user/tranquilecho)
13:20:26 × marjinal1st quits (~Thunderbi@178.251.45.235) (Client Quit)
13:20:34 MQ-17J joins (~MQ-17J@2607:fb90:1d9d:5d52:46a4:38fe:ef69:4458)
13:20:44 marjinal1st joins (~Thunderbi@178.251.45.235)
13:20:57 × marjinal1st quits (~Thunderbi@178.251.45.235) (Client Quit)
13:22:47 burnsidesLlama joins (~burnsides@dhcp168-020.wadham.ox.ac.uk)
13:24:58 <merijn> How much is a lot?
13:32:52 <[exa]> _bin: anything that prevents resource starvation. also see ^
13:33:13 <_bin> Uhh, probably a few thousand. mapConcurrent?
13:33:31 <_bin> (I'm reasonably sure that doing this won't get me banned from the API)
13:33:34 benin0369323 joins (~benin@183.82.25.23)
13:33:49 <merijn> I mean, a few thousand can probably just be done with 1 thread per thing
13:34:06 <[exa]> yeah, standard hs concurrency should handle that reasonably well
13:34:22 <merijn> I have a rate-limited parallel map, but that needs an update which I will get to Any Day Now (TM)
13:34:45 wroathe joins (~wroathe@user/wroathe)
13:37:24 Pickchea joins (~private@user/pickchea)
13:39:28 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Remote host closed the connection)
13:40:08 × hsiktas quits (sid224847@tooting.irccloud.com) ()
13:40:37 hsiktas joins (sid224847@id-224847.lymington.irccloud.com)
13:41:14 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
13:46:10 <_bin> What do you mean by standard concurrency? I can just make requests normally and it will automatically parallelize?
13:46:22 <wz1000> some services might not like it if you make a few thousand concurrent requests to the same server
13:49:28 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
13:50:15 × burnsidesLlama quits (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
13:50:40 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.2)
13:51:50 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
13:51:50 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
13:51:50 wroathe joins (~wroathe@user/wroathe)
13:55:26 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 244 seconds)
13:55:30 × gentauro quits (~gentauro@user/gentauro) (Ping timeout: 250 seconds)
13:58:01 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 244 seconds)
13:59:40 dudek joins (~dudek@185.150.236.103)
13:59:48 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
14:01:07 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds)
14:01:42 × max22- quits (~maxime@2a01cb0883359800a52ea8a51dfe9c16.ipv6.abo.wanadoo.fr) (Ping timeout: 256 seconds)
14:02:15 <_bin> Yeah but honestly this one is so badly written that I don't think there's any rate-limiting
14:02:19 Sgeo joins (~Sgeo@user/sgeo)
14:02:26 gentauro joins (~gentauro@user/gentauro)
14:02:57 × Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
14:03:22 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
14:03:46 <[exa]> _bin: haskell RTS contains a pretty powerfull event polling that can organize the green threads with parallel requests really nicely and quickly
14:03:53 <[exa]> there's even a benchmark somewhere
14:04:19 × MQ-17J quits (~MQ-17J@2607:fb90:1d9d:5d52:46a4:38fe:ef69:4458) (Ping timeout: 252 seconds)
14:07:36 <[exa]> so, in short, yeah- just spawning all the requests with forkIO and waiting until all finish should do nicely (which is afaik what mapConcurrent does)
14:07:53 Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
14:12:18 × MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
14:14:24 hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com)
14:14:37 × opac quits (~opac@ip-28-56.sn2.clouditalia.com) (Quit: Going offline, see ya! (www.adiirc.com))
14:14:42 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds)
14:16:27 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
14:17:42 sim590 joins (~simon@modemcable090.207-203-24.mc.videotron.ca)
14:19:53 MidAutumnMoon joins (~MidAutumn@user/midautumnmoon)
14:21:47 × MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Client Quit)
14:22:05 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed)
14:24:59 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.2)
14:26:10 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed) (Ping timeout: 240 seconds)
14:27:28 × acidjnk_new quits (~acidjnk@p5487d0ba.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
14:27:49 ruifengx joins (~ruifengx@111.43.122.32)
14:27:58 × Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 252 seconds)
14:28:19 burnsidesLlama joins (~burnsides@dhcp168-020.wadham.ox.ac.uk)
14:28:52 MidAutumnMoon joins (~MidAutumn@user/midautumnmoon)
14:30:08 × Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
14:31:49 × MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Client Quit)
14:32:59 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
14:33:43 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
14:34:01 × burnsidesLlama quits (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
14:37:31 <ruifengx> hi everyone, my teacher thinks the name "Prelude" for the Haskell standard library is an acronym for "pre-include", despite the fact that "prelude" already has its own meaning as "any action, event, comment, etc. that precedes something else". I'm not a native English speaker, nor is my teacher. I failed to convince him, so I come here for some clarifications on this: could someone (perhaps a native English speaker) prove me (in)correct?
14:39:22 × MoC quits (~moc@user/moc) (Quit: Konversation terminated!)
14:39:34 MidAutumnMoon joins (~MidAutumn@user/midautumnmoon)
14:40:59 × integral quits (sid296274@user/integral) ()
14:41:09 <maerwald> https://www.haskell.org/onlinereport/standard-prelude.html
14:41:17 integral joins (sid296274@user/integral)
14:41:23 <maerwald> doesn't contain a definition and doesn't say anything about pre-include
14:41:42 <maerwald> so I'm assuming it means the english word 'Prelude'
14:43:04 × Topsi quits (~Tobias@dyndsl-095-033-094-080.ewe-ip-backbone.de) (Ping timeout: 256 seconds)
14:44:05 <maerwald> also, winning an argument aginst your teacher is a good cause
14:45:05 <ruifengx> ok, thanks lol
14:45:20 <merijn> ruifengx: I'm fairly sure it's just the standard English meaning, yes
14:46:11 <merijn> pre-include seems silly, since there's no "include" notion in Haskell
14:48:15 <ruifengx> Yeah, I argued in Haskell we "import" instead of "include", but he seemed not convinced at all :)
14:48:53 × MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
14:49:55 × dextaa quits (~DV@user/dextaa) (Ping timeout: 252 seconds)
14:50:00 <lortabac> TBH winning an argument against your teacher is not always a good idea
14:50:21 <lortabac> sometimes the best thing to do is to say yes and forget about it
14:50:31 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
14:50:54 <gehmehgeh> lortabac, maerwald: Yes and no. It can be quite glorious if you're right about the Afghan war and get a bad grade in politcs class because of it
14:51:06 <gehmehgeh> I agree that this has to be done in good measure
14:51:08 <gehmehgeh> :D
14:51:33 <gehmehgeh> (I mention Afghanistan because that's what happened to me 20 years ago in class)
14:51:35 <gehmehgeh> :D
14:51:45 <lortabac> I've seen too many people getting bad grades because they were right
14:51:59 <gehmehgeh> ruifengx: He's your teacher in what context?
14:52:06 × gonz__ quits (sid304396@tooting.irccloud.com) ()
14:52:17 hyiltiz joins (~quassel@31.220.5.250)
14:52:24 gonz__ joins (sid304396@id-304396.lymington.irccloud.com)
14:52:42 dextaa joins (~DV@user/dextaa)
14:52:46 MQ-17J joins (~MQ-17J@2607:fb90:1d86:6272:b64e:2431:9a16:7a5b)
14:53:01 <ruifengx> Actually we are working on a textbook, and I think it is a good idea to get things 100% correct for textbooks
14:53:13 <ruifengx> I'm the TA for this course
14:54:43 <kuribas> that changes things
14:54:56 × slavaqq quits (~slavaqq@sdmail.sdserver.cz) (Quit: Client closed)
14:55:03 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:55:03 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
14:55:03 wroathe joins (~wroathe@user/wroathe)
14:55:13 MidAutumnMoon joins (~MidAutumn@user/midautumnmoon)
14:56:17 × enemeth79 quits (sid309041@tooting.irccloud.com) ()
14:56:24 <kuribas> prelude in music is a small piece that comes before the main work.
14:56:29 <kuribas> Often improvised.
14:56:34 enemeth79 joins (sid309041@id-309041.lymington.irccloud.com)
14:56:44 <lortabac> if it can help: https://dictionary.cambridge.org/dictionary/english/prelude
14:57:42 <lortabac> that said, only the person who came up with the name "Prelude" has the definitive answer :)
14:57:59 <merijn> Well, presumably anyone on the committee has it
14:58:10 <merijn> To bad augustss doesn't idle here anymore
14:59:00 <lortabac> I've seen them on Reddit recently IIRC
14:59:25 <merijn> Yeah, he still lurks there, I blame the bank lawyers for him disappearing from IRC :p
14:59:27 <maerwald> I think it's irrelevant what they meant, unless it's in the haskell report
14:59:37 <maerwald> but it isn't, so it's the standard english word
15:00:01 <lortabac> fair point
15:00:16 <ruifengx> We did check the dictionary and found this definition, and we both agreed a prelude for music is a great analogy for the standard library. He was just wondering whether it might come originally from "pre-include", being a pun...
15:00:18 <kuribas> if it was a clever acronym, it should be written at least *somewhere*.
15:00:35 <kuribas> People often invent clever acronyms, but then are vocal about it.
15:01:07 <maerwald> Like schönfinkeln?
15:01:10 × Pent quits (sid313808@tooting.irccloud.com) ()
15:01:30 Pent joins (sid313808@id-313808.lymington.irccloud.com)
15:02:29 <kuribas> ruifengx: so I would ask him where he read that.
15:02:36 <ruifengx> Anyway, I sent him a screenshot of this conversation, and he seems convinced now.
15:02:39 <gehmehgeh> Also, there's more than one Prelude, isn't it? I mean there's the standard one and then there's also things like RIO...
15:02:46 <gehmehgeh> So it can't possible be a "pre-include"
15:03:05 <gehmehgeh> (well, ok, it could, but it seems odd)
15:03:11 <maerwald> glad we won the argument
15:03:17 <gehmehgeh> haha
15:03:19 <gehmehgeh> :D
15:03:30 <maerwald> btw: https://doc.rust-lang.org/std/prelude/index.html
15:03:55 <ruifengx> He came up with this "pre-include" thing by himself, because "prelude" was not in his vocabulary :)
15:04:31 <maerwald> in the rust documentation, I think it's even more clear, because prelude is written lowercase
15:04:46 <maerwald> in the haskell report it's always uppercase
15:05:01 <ruifengx> To be fair, "prelude" is not at all a common word for us, and a "pre-include" was a best guess I think
15:05:36 × turlando quits (~turlando@user/turlando) (Read error: Connection reset by peer)
15:05:37 <ruifengx> Yes, lowercase prelude is prehaps an evidence
15:05:43 <maerwald> :D
15:05:49 turlando joins (~turlando@93-42-250-112.ip89.fastwebnet.it)
15:05:49 × turlando quits (~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host)
15:05:49 turlando joins (~turlando@user/turlando)
15:05:52 rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
15:06:14 <maerwald> maybe need the HF board to vote on this issue
15:08:46 <maerwald> we could fix it in the next haskell report
15:08:46 <ruifengx> thanks again for your help
15:09:43 <ruifengx> module names are uppercase in Haskell and lowercase in Rust, so I guess that's where this difference originiate
15:09:52 <yushyin> maerwald: next haskell report, how funny you are :P
15:10:25 <maerwald> ruifengx: this is getting way to deep :p
15:11:24 <ruifengx> Speaking of the next haskell report ... How exactly is Haskell Prime going?
15:12:05 <merijn> ruifengx: Funny joke :p
15:12:19 <ruifengx> XD
15:12:32 <maerwald> Haskell report is a job for the Haskell Foundation imo, but this might *just* be my opinion
15:13:21 <kuribas> ruifengx: just out of curiosity, what is your language?
15:13:23 Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
15:13:48 <maerwald> I'm guessing german... deriving "pre-include" seems german
15:14:04 <maerwald> we like to combine words
15:14:09 <kuribas> but .. but ... Bach!
15:14:18 aegon joins (~mike@174.127.249.180)
15:14:22 <kuribas> how can you be German and not know Bach?
15:14:24 × vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.2)
15:14:56 tfeb joins (~tfb@88.98.95.237)
15:15:12 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
15:15:35 <ruifengx> kuribas: Chinese, I'm in mainland China
15:15:45 <maerwald> close enough
15:16:22 × MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
15:16:55 MidAutumnMoon joins (~MidAutumn@user/midautumnmoon)
15:17:14 × Akronymus quits (~Akronymus@85.31.8.180) (Quit: Client closed)
15:17:28 <maerwald> ruifengx: sjtug?
15:17:28 Akronymus joins (~Akronymus@85.31.8.180)
15:18:17 <maerwald> that's the only chinese university I know that does some haskell stuff I think
15:18:40 <ruifengx> maerwald: no, I'm at Peking University
15:19:36 <kuribas> ruifengx: you speak pretty well english
15:20:11 <ruifengx> Prof. Zhenjiang Hu (previously at NII in Japan) came here ~2yrs ago, and he brings back some functional things here
15:20:27 <maerwald> cool
15:20:31 <dmj`> Peking is a great school
15:20:32 <kuribas> nice to hear haskell made it to china :)
15:20:42 × aria quits (sid380617@id-380617.tooting.irccloud.com) ()
15:20:58 aria joins (sid380617@id-380617.lymington.irccloud.com)
15:21:35 <ruifengx> I believe it has always been here, just did not make it into universities
15:21:37 × Akronymus quits (~Akronymus@85.31.8.180) (Client Quit)
15:22:26 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
15:22:57 <maerwald> ruifengx: sjtug maintains a lot of mirrors for various things (including ghc bindists)... are there issues with accessing hackage or downloads.haskell.org from china?
15:23:23 max22- joins (~maxime@2a01cb0883359800b9a79637bda73194.ipv6.abo.wanadoo.fr)
15:23:24 <gehmehgeh> ruifengx: Interesting that you say you're from "mainland China" instead just "China"
15:23:58 <ruifengx> "mainland China" for addressing network issues :P
15:24:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
15:25:09 <ruifengx> maerwald: sometimes we have trouble fetching files from raw.githubusercontents.com, and that should affect stack
15:25:42 danso joins (~danso@23.233.111.52)
15:26:29 <ruifengx> most of the time it is just the speed being intolerably slow, so we have various mirror sites ...
15:27:44 <ruifengx> FYI, students in Tsinghua University also maintained a mirror called TUNA: https://mirrors.tuna.tsinghua.edu.cn/
15:28:39 <maerwald> I'm only aware of https://git.io/JEpTW
15:30:19 × tfeb quits (~tfb@88.98.95.237) (Quit: died)
15:30:40 × Pickchea quits (~private@user/pickchea) (Ping timeout: 252 seconds)
15:31:33 <ruifengx> on TUNA there are mirrors for Hackage and Stackage
15:31:34 <maerwald> https://github.com/tuna/issues/issues/587
15:31:50 <maerwald> not sure what that ticket says
15:31:51 <ruifengx> BTW git.io is blocked by GFW, a vivid example of *network issues*
15:32:04 <maerwald> https://github.com/sjtug/portal/blob/master/content/post/mirror-help/ghcup.md
15:32:38 <maerwald> hmm, dramforever is from tuna?
15:32:55 <maerwald> wasn't that an IRC regular?
15:33:22 <ruifengx> The ticket says the configuration for stack was outdated and needed an update (already fixed now)
15:34:25 × micro quits (~micro@user/micro) (Ping timeout: 248 seconds)
15:35:18 micro joins (~micro@user/micro)
15:35:19 <ruifengx> yep I guess dramforever is from THU
15:36:26 × MQ-17J quits (~MQ-17J@2607:fb90:1d86:6272:b64e:2431:9a16:7a5b) (Read error: Connection reset by peer)
15:36:43 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
15:37:43 <turlando> Is there a way to get a list of directories only inside a given directory using turtle (or stdlib functions)?
15:38:14 <maerwald> atomically?
15:38:22 <maerwald> I mean, as atomic as it gets
15:38:34 opac joins (~opac@ip-28-56.sn2.clouditalia.com)
15:38:35 <turlando> As atomic as the POSIX allows...
15:39:02 <maerwald> right, then `directory` won't help you with that
15:39:28 <turlando> directory as in System.Directory?
15:39:32 <maerwald> yeah
15:40:00 ruifengx parts (~ruifengx@111.43.122.32) ()
15:40:06 <maerwald> turlando: https://hackage.haskell.org/package/hpath-posix-0.13.3/docs/System-Posix-RawFilePath-Directory-Traversals.html#v:getDirectoryContents
15:40:08 <maerwald> sth like that
15:40:38 <maerwald> you just filter on it... that's the same you'd do in a manual loop
15:40:40 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 240 seconds)
15:41:06 <turlando> Thanks maerwald, I will try that way
15:42:03 bitmapper joins (uid464869@id-464869.tooting.irccloud.com)
15:42:20 <maerwald> I mean, readdir syscall doesn't allow flags
15:42:44 <maerwald> it will always return both
15:43:07 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
15:43:10 <turlando> I see, that's not a big issue if I can filter files out easily
15:43:27 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed)
15:43:31 <maerwald> yeah, and still better than running `doesDirectoryExist` on the result
15:43:37 <maerwald> which is another syscall and non-atomic
15:45:32 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
15:46:19 × jippiedoe quits (~david@2a02-a44c-e14e-1-4b6a-72bf-d881-3da7.fixed6.kpn.net) (Quit: Leaving)
15:48:55 <maerwald> `filter ((==dtDir) . fst) <$> getDirectoryContents`
15:49:06 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
15:49:06 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
15:49:31 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
15:49:32 <maerwald> or rather `fmap snd . filter ((==dtDir) . fst) <$> getDirectoryContents`
15:52:45 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:54:41 <maerwald> I wonder if it's more efficient if you unsafeInterlaveIO it with `filter`, so the filter fuses with the loop?
15:54:51 <maerwald> or unsafePerformIO
15:55:20 <maerwald> (and then forcing and evaluating it and putting it back into IO)
15:55:31 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
15:55:49 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
15:55:54 <turlando> Good question, I have no idea, and for now performance is not a concern
15:56:06 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
15:56:27 <maerwald> right, just thinking what would happen in a directory with 10k files and 1 dir... it would probably build the entire list in memory before filtering
15:57:21 × max22- quits (~maxime@2a01cb0883359800b9a79637bda73194.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
15:57:53 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
15:58:10 <maerwald> oh wait
15:58:26 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
15:58:27 <maerwald> I forgot that I wrote this: https://hackage.haskell.org/package/streamly-posix-0.1.0.2/docs/Streamly-External-Posix-DirStream.html
15:58:34 <maerwald> that's probably better
15:59:09 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
15:59:33 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:e4f5:e96c:7308:8daf) (Quit: WeeChat 2.8)
15:59:37 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
15:59:52 <maerwald> (if you're familiar with streamly)
16:00:00 <turlando> I'm not unfortunately
16:00:08 <maerwald> great way to get started
16:00:25 <turlando> :)
16:01:54 lavaman joins (~lavaman@98.38.249.169)
16:05:10 max22- joins (~maxime@2a01cb08833598004d1bbe70867eb08c.ipv6.abo.wanadoo.fr)
16:05:44 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
16:05:58 lbseale joins (~lbseale@user/ep1ctetus)
16:08:04 × nschoe quits (~quassel@178.251.84.79) (Ping timeout: 256 seconds)
16:09:34 Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
16:10:07 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
16:13:36 nschoe joins (~quassel@178.251.84.79)
16:13:40 × Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Ping timeout: 240 seconds)
16:15:32 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:15:32 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
16:15:32 wroathe joins (~wroathe@user/wroathe)
16:20:19 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed) (Remote host closed the connection)
16:20:32 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
16:21:01 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
16:25:38 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
16:25:55 × ephemient quits (uid407513@id-407513.tooting.irccloud.com) ()
16:26:11 ephemient joins (uid407513@id-407513.lymington.irccloud.com)
16:28:07 × Adeon quits (sid418992@tooting.irccloud.com) ()
16:28:22 Adeon joins (sid418992@id-418992.lymington.irccloud.com)
16:30:10 × nschoe quits (~quassel@178.251.84.79) (Ping timeout: 256 seconds)
16:31:10 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
16:31:28 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
16:31:31 × teo quits (~teo@137.220.120.222) ()
16:34:40 × Morrow_ quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 240 seconds)
16:36:49 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
16:39:29 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
16:39:46 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
16:41:00 × Boarders quits (sid425905@id-425905.tooting.irccloud.com) ()
16:41:04 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
16:41:15 Boarders joins (sid425905@id-425905.lymington.irccloud.com)
16:44:56 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection)
16:48:24 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed)
16:48:33 × phma quits (~phma@host-67-44-209-33.hnremote.net) (Read error: Connection reset by peer)
16:49:43 phma joins (~phma@host-67-44-208-129.hnremote.net)
16:57:09 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:57:09 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
16:57:09 wroathe joins (~wroathe@user/wroathe)
16:59:21 × bitmapper quits (uid464869@id-464869.tooting.irccloud.com) ()
16:59:36 bitmapper joins (uid464869@id-464869.lymington.irccloud.com)
17:00:56 × enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
17:02:24 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
17:07:40 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
17:09:35 × hrnz quits (~ulli@irc.plumbing) (Quit: das ist mir zu bld hier; bb)
17:09:53 hrnz joins (~ulli@irc.plumbing)
17:16:41 arjun parts (~Srain@user/arjun) (Leave.)
17:20:23 Erutuon joins (~Erutuon@user/erutuon)
17:22:53 × alx741 quits (~alx741@186.178.109.154) (Quit: alx741)
17:33:29 elf_fortrez joins (~elf_fortr@adsl-72-50-7-12.prtc.net)
17:34:11 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
17:36:21 econo joins (uid147250@user/econo)
17:37:10 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
17:37:10 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
17:37:27 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
17:37:46 ec_ joins (~ec@gateway/tor-sasl/ec)
17:38:27 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
17:40:00 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
17:45:48 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.2)
17:49:27 × elf_fortrez quits (~elf_fortr@adsl-72-50-7-12.prtc.net) (Ping timeout: 256 seconds)
17:50:27 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
17:51:02 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
17:51:43 lavaman joins (~lavaman@98.38.249.169)
17:52:04 jacks2 joins (~bc8167eb@217.29.117.252)
17:53:10 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
17:53:10 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
17:53:10 wroathe joins (~wroathe@user/wroathe)
17:54:06 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:54:07 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
17:57:36 koolazer joins (~koo@user/koolazer)
17:57:40 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
18:00:09 Brumaire joins (~quassel@81-64-14-121.rev.numericable.fr)
18:01:23 ec__ joins (~ec@gateway/tor-sasl/ec)
18:05:51 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
18:07:09 × ec__ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
18:07:10 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 240 seconds)
18:07:18 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed) (Remote host closed the connection)
18:08:50 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
18:08:50 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
18:08:50 wroathe joins (~wroathe@user/wroathe)
18:09:37 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
18:09:43 Guest8166 joins (~lordgrenv@31.210.177.64)
18:10:52 × Vooch quits (~iovoo@096-038-011-034.biz.spectrum.com) (Quit: Konversation terminated!)
18:13:02 <jacks2> I use doesDirectoryExist/doesFileExist to check whether my program needs to create initial config file and directory structure to it. since everyone seem to hate those functions, what would be the proper way to do it?
18:14:34 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
18:16:03 Pickchea joins (~private@user/pickchea)
18:17:40 × kuribas quits (~user@ptr-25vy0iagfpe8knotjos.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
18:21:08 <dmj`> jacks2: sounds good to me
18:22:16 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
18:22:33 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
18:23:59 ec__ joins (~ec@gateway/tor-sasl/ec)
18:24:41 lavaman joins (~lavaman@98.38.249.169)
18:26:40 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
18:26:57 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
18:28:14 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
18:29:10 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
18:30:58 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
18:30:58 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
18:30:58 wroathe joins (~wroathe@user/wroathe)
18:31:06 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
18:35:40 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
18:38:29 chris joins (~chris@81.96.113.213)
18:38:30 chris is now known as Guest73
18:40:14 Morrow_ joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
18:40:16 acidjnk_new joins (~acidjnk@p200300d0c720308244f5798d54dcee82.dip0.t-ipconnect.de)
18:40:48 <maerwald> jacks2: catching exceptions
18:45:30 × ec__ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
18:47:32 <maerwald> https://hackage.haskell.org/package/directory-1.3.6.2/docs/src/System.Directory.html#createDirectoryIfMissing
18:47:57 <maerwald> there directory actually does something right
18:48:12 mastarija joins (~mastarija@31.217.20.102)
18:49:00 <maerwald> for reading config file sth like `handle (\e -> if isDoesNotExistError e then pure "initial config" else throw e) $ readFile "config-file"`
18:49:10 × APic quits (apic@apic.name) (Ping timeout: 240 seconds)
18:49:40 <maerwald> note that on windows you get different exceptions
18:49:56 × Guest73 quits (~chris@81.96.113.213) (Ping timeout: 244 seconds)
18:50:44 ec__ joins (~ec@gateway/tor-sasl/ec)
18:51:38 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed)
18:52:31 chris joins (~chris@81.96.113.213)
18:52:34 chris is now known as Guest846
18:52:59 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
18:53:02 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 244 seconds)
18:57:12 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
19:05:39 × ec__ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
19:07:01 burnsidesLlama joins (~burnsides@dhcp168-020.wadham.ox.ac.uk)
19:08:44 × whez quits (sid470288@id-470288.tooting.irccloud.com) ()
19:08:57 whez joins (sid470288@id-470288.lymington.irccloud.com)
19:10:28 ec__ joins (~ec@gateway/tor-sasl/ec)
19:11:33 × aman quits (~aman@user/aman) (Quit: aman)
19:12:40 × benin0369323 quits (~benin@183.82.25.23) (Remote host closed the connection)
19:12:48 × burnsidesLlama quits (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
19:13:51 burnsidesLlama joins (~burnsides@dhcp168-020.wadham.ox.ac.uk)
19:20:36 × ec__ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
19:21:02 × hendi quits (sid489601@id-489601.tooting.irccloud.com) ()
19:21:17 hendi joins (sid489601@id-489601.lymington.irccloud.com)
19:22:41 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
19:24:38 × Guest846 quits (~chris@81.96.113.213) (Remote host closed the connection)
19:25:15 chris joins (~chris@81.96.113.213)
19:25:16 <ski> @type handleJust (guard . System.IO.Error.isDoesNotExistError) (\() -> pure "initial config") (readFile "config-file")
19:25:17 <lambdabot> IO [Char]
19:25:17 ec__ joins (~ec@gateway/tor-sasl/ec)
19:25:18 chris is now known as Guest1692
19:27:08 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
19:28:00 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2)
19:29:42 × Guest1692 quits (~chris@81.96.113.213) (Ping timeout: 245 seconds)
19:37:11 × burnsidesLlama quits (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
19:38:28 Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com)
19:51:09 × ec__ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
19:52:17 × Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
19:55:26 nvmd joins (~nvmd@user/nvmd)
19:55:38 × nvmd quits (~nvmd@user/nvmd) (Client Quit)
19:55:50 nvmd joins (~nvmd@user/nvmd)
19:56:00 ec__ joins (~ec@gateway/tor-sasl/ec)
19:58:02 × adam_ quits (uid515807@id-515807.tooting.irccloud.com) ()
19:58:16 adam_ joins (uid515807@id-515807.lymington.irccloud.com)
20:01:58 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
20:04:56 × juhp quits (~juhp@128.106.188.220) (Ping timeout: 256 seconds)
20:05:31 desantra joins (~skykanin@user/skykanin)
20:07:03 juhp joins (~juhp@128.106.188.220)
20:08:35 burnsidesLlama joins (~burnsides@dhcp168-020.wadham.ox.ac.uk)
20:08:42 × ec__ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
20:09:26 wroathe joins (~wroathe@user/wroathe)
20:09:31 × mei quits (~mei@user/mei) (Ping timeout: 252 seconds)
20:10:37 ec__ joins (~ec@gateway/tor-sasl/ec)
20:12:52 × burnsidesLlama quits (~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
20:13:52 × hrnz quits (~ulli@irc.plumbing) (Quit: das ist mir zu bld hier; bb)
20:14:11 hrnz joins (~ulli@vegan.im.it)
20:16:10 <_bin> How do I debug a `show` call giving `Prelude.read: no parse`?
20:17:59 <sm> _bin: in your code ?
20:19:21 <Hecate> _bin: spread a HasCallStack in all the functions that may contain `read`, or are the parents of such functions.
20:19:42 <Hecate> Then have fun with the callstack functions to show the callstack
20:19:50 × mastarija quits (~mastarija@31.217.20.102) (Quit: Leaving)
20:20:02 <Hecate> I encourage you to use the version of read that returns a Maybe or an Either
20:20:11 justsomeguy joins (~justsomeg@user/justsomeguy)
20:20:51 <sm> why would show give a read error ?
20:21:13 <sm> if it's one of your types, check your Show instance
20:24:43 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:28:13 × maerwald quits (~maerwald@user/maerwald) (Ping timeout: 250 seconds)
20:29:03 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
20:30:35 × Unhammer quits (~Unhammer@user/unhammer) (Quit: WeeChat 1.6)
20:32:23 me_ joins (~me@178.70.139.179)
20:33:10 × ubert quits (~Thunderbi@91.141.75.40.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
20:34:23 ubert joins (~Thunderbi@91.141.75.40.wireless.dyn.drei.com)
20:35:03 Topsi joins (~Tobias@dyndsl-095-033-094-080.ewe-ip-backbone.de)
20:37:06 × max22- quits (~maxime@2a01cb08833598004d1bbe70867eb08c.ipv6.abo.wanadoo.fr) (Quit: Leaving)
20:37:18 × ec__ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
20:38:05 <tomsmeding> or the value being shown forces some read somewhere that fails
20:39:28 × Morrow_ quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 244 seconds)
20:40:42 ec__ joins (~ec@gateway/tor-sasl/ec)
20:44:35 Morrow_ joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
20:46:22 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
20:48:41 Everything joins (~Everythin@128-124-169-247.mobile.vf-ua.net)
20:48:55 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
20:49:46 Guest71 joins (~Guest71@adsl-72-50-5-53.prtc.net)
20:50:49 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
20:51:42 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
20:52:10 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
20:54:17 × euandreh quits (~euandreh@2804:14c:33:9fe5:554e:b40c:516f:45c1) (Quit: WeeChat 3.2)
20:54:24 Lord_of_Life_ is now known as Lord_of_Life
20:56:11 <arahael> How does one deliberately return something like that? Is there a "raise exception from pure code" routine?
20:56:54 vysn joins (~vysn@user/vysn)
20:58:20 __monty__ joins (~toonn@user/toonn)
20:58:30 × michalz quits (~michalz@185.246.204.61) (Remote host closed the connection)
20:59:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
21:02:33 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:03:13 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:03:13 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
21:03:13 wroathe joins (~wroathe@user/wroathe)
21:05:18 × Morrow_ quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 244 seconds)
21:06:26 <sm> tomsmeding++
21:06:40 × dsp quits (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Remote host closed the connection)
21:06:46 <sm> error, arahael ?
21:07:24 <arahael> sm: too obvious! thanks.
21:07:53 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 244 seconds)
21:08:30 × ec__ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
21:08:55 Lycurgus joins (~juan@98.4.106.186)
21:11:59 hays is now known as h_
21:12:20 pavonia joins (~user@user/siracusa)
21:13:29 ec__ joins (~ec@gateway/tor-sasl/ec)
21:15:21 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
21:19:25 × Guest8166 quits (~lordgrenv@31.210.177.64) (Read error: Connection reset by peer)
21:20:10 × machinedgod quits (~machinedg@135.23.192.217) (Ping timeout: 240 seconds)
21:24:01 zebrag joins (~chris@user/zebrag)
21:28:24 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed) (Remote host closed the connection)
21:31:09 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
21:35:32 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
21:36:29 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
21:36:53 <_bin> tomsmeding: You're right, that appears to be the cause. Still getting my head around laziness, I guess.
21:38:10 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 240 seconds)
21:38:24 × ec__ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
21:38:29 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
21:40:46 ec_ joins (~ec@gateway/tor-sasl/ec)
21:40:51 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed)
21:41:00 ec_ is now known as ec
21:43:34 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
21:46:14 stampirl joins (~stampirl@195-154-112-77.rev.poneytelecom.eu)
21:46:38 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
21:46:38 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 244 seconds)
21:48:25 hannessteffenhag joins (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
21:48:30 justsomeguy joins (~justsomeg@user/justsomeguy)
21:49:21 × fendor quits (~fendor@178.165.178.184.wireless.dyn.drei.com) (Read error: Connection reset by peer)
21:52:50 × hannessteffenhag quits (~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
21:53:07 × Guest71 quits (~Guest71@adsl-72-50-5-53.prtc.net) (Ping timeout: 256 seconds)
21:55:53 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:56:45 lavaman joins (~lavaman@98.38.249.169)
22:00:22 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed) (Remote host closed the connection)
22:01:10 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
22:01:17 kawpuh joins (~kawpuh@71-150-122-133.lightspeed.brhmal.sbcglobal.net)
22:02:47 Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
22:04:08 × Brumaire quits (~quassel@81-64-14-121.rev.numericable.fr) (Quit: ran away)
22:05:45 × sim590 quits (~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 244 seconds)
22:06:40 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 252 seconds)
22:07:44 × kawpuh quits (~kawpuh@71-150-122-133.lightspeed.brhmal.sbcglobal.net) (Remote host closed the connection)
22:08:57 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
22:09:59 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:e4b5:4e5:fb1:9aed)
22:10:47 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood)
22:11:39 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
22:14:11 ec joins (~ec@gateway/tor-sasl/ec)
22:15:35 kawpuh joins (~kawpuh@71-150-122-133.lightspeed.brhmal.sbcglobal.net)
22:17:04 × TranquilEcho quits (~grom@user/tranquilecho) (Quit: WeeChat 2.8)
22:19:39 sim590 joins (~simon@modemcable090.207-203-24.mc.videotron.ca)
22:22:53 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:29:19 × kawpuh quits (~kawpuh@71-150-122-133.lightspeed.brhmal.sbcglobal.net) (Quit: Client closed)
22:31:51 × obfusk quits (~quassel@a82-161-150-56.adsl.xs4all.nl) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
22:32:15 obfusk joins (~quassel@a82-161-150-56.adsl.xs4all.nl)
22:35:13 Morrow_ joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
22:35:24 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:35:24 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
22:35:24 wroathe joins (~wroathe@user/wroathe)
22:36:54 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
22:38:06 × lechner quits (~lechner@debian/lechner) (Ping timeout: 250 seconds)
22:40:09 lechner joins (~lechner@debian/lechner)
22:41:39 × desantra quits (~skykanin@user/skykanin) (Quit: WeeChat 3.2)
22:53:57 ec joins (~ec@gateway/tor-sasl/ec)
22:55:09 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:56:10 × Gurkenglas quits (~Gurkengla@dslb-088-075-022-191.088.075.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
22:56:14 × dudek quits (~dudek@185.150.236.103) (Quit: Leaving)
22:57:14 hexfive joins (~eric@50.35.83.177)
22:57:28 delYsid joins (~user@84-115-55-45.cable.dynamic.surfer.at)
23:00:45 × hexfive quits (~eric@50.35.83.177) (Client Quit)
23:02:37 × acidjnk_new quits (~acidjnk@p200300d0c720308244f5798d54dcee82.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
23:05:30 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
23:10:43 ec joins (~ec@gateway/tor-sasl/ec)
23:13:07 kawpuh joins (~kawpuh@71-150-122-133.lightspeed.brhmal.sbcglobal.net)
23:13:32 × jacks2 quits (~bc8167eb@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
23:13:36 × qwedfg quits (~qwedfg@user/qwedfg) (Read error: Connection reset by peer)
23:15:25 × Lycurgus quits (~juan@98.4.106.186) (Quit: Exeunt)
23:17:04 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
23:17:33 qwedfg joins (~qwedfg@user/qwedfg)
23:19:20 × vysn quits (~vysn@user/vysn) (Ping timeout: 252 seconds)
23:20:05 maerwald joins (~maerwald@mail.hasufell.de)
23:21:11 × maerwald quits (~maerwald@mail.hasufell.de) (Changing host)
23:21:11 maerwald joins (~maerwald@user/maerwald)
23:23:19 × Topsi quits (~Tobias@dyndsl-095-033-094-080.ewe-ip-backbone.de) (Read error: Connection reset by peer)
23:27:48 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
23:29:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
23:29:40 × kimjetwav quits (~user@2607:fea8:235f:9730:7b24:e3f4:a84d:7dd0) (Ping timeout: 240 seconds)
23:30:52 kimjetwav joins (~user@2607:fea8:235f:9730:eb91:4ced:41eb:8545)
23:33:27 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
23:36:19 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 252 seconds)
23:37:33 machinedgod joins (~machinedg@24.105.81.50)
23:38:02 waleee joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
23:40:23 ec joins (~ec@gateway/tor-sasl/ec)
23:42:47 hseg joins (~gesh@IGLD-84-228-238-9.inter.net.il)
23:43:37 <hseg> hi. are there alternative preludes where the IntN types error on overflow?
23:43:54 <dsal> I remember this fight recently...
23:44:20 <hseg> or that provide overflowing IntN newtypes?
23:45:22 <hseg> bc I'm opening a ticket against semirings giving IntN both an OrderedRing instance (which implicitly views IntN as a finite approximation of Integer), and a wrapping Ring instance
23:45:36 <nitrix> There are safeint packages that throw exceptions, but that has the usual problem of checking for exceptions.
23:45:57 <hseg> especially since the wrapping Ring instance is explicitly described as "modular arithmetic"
23:46:22 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 245 seconds)
23:46:55 <hseg> aren't there system signals that can be trapped for?
23:47:05 <hseg> iirc that's the terminology
23:47:44 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
23:52:11 <hpc> pretty sure setting those traps is a process-global state
23:52:12 <hseg> apparently there isn't a hardware trap for this. wtf
23:52:28 <hseg> ah, right
23:52:46 <hseg> so that's problematic as well
23:52:54 <hpc> also look at how rust is handling this, in their quest to kill undefined behavior
23:53:11 <hpc> i remember overflow being one of their big sticking points
23:54:24 alx741 joins (~alx741@186.178.109.154)
23:55:48 × deejaytee quits (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Ping timeout: 244 seconds)
23:56:09 <hseg> ig I'll just recommend in the ticket that IntN not be given default instances either way, and instead to have Modular and Segment wrappers
23:56:22 <hseg> where Modular t has modular arith semantics
23:56:40 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
23:56:55 <hseg> and Segment t implies t is a subtype of a larger type that has a valid instance, and that overflows might break semantics
23:57:10 <hseg> checking for overflows being up to the user
23:57:33 <hseg> not up to me to fix haskell's integer situation, after all

All times are in UTC on 2021-09-02.