2021/01/31

2021-01-31 00:00:11 +0100Tario(~Tario@201.192.165.173)
2021-01-31 00:00:15 +0100 <ephemient> more than once I've wanted a enumValues = [minBound..maxBound] :: (Bounded a, Enum a) => [a]
2021-01-31 00:03:35 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-01-31 00:04:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 00:05:53 +0100mananamenos_(~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 246 seconds)
2021-01-31 00:06:29 +0100 <ski> > replicateM 3 "01"
2021-01-31 00:06:30 +0100 <lambdabot> ["000","001","010","011","100","101","110","111"]
2021-01-31 00:07:14 +0100 <ski> > filterM (const [False,True]) "012"
2021-01-31 00:07:15 +0100 <lambdabot> ["","2","1","12","0","02","01","012"]
2021-01-31 00:10:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-01-31 00:10:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 00:11:40 +0100 <ski> > sequence ["01","ab","+-"]
2021-01-31 00:11:41 +0100 <lambdabot> ["0a+","0a-","0b+","0b-","1a+","1a-","1b+","1b-"]
2021-01-31 00:11:56 +0100ski. o O ( `replicateM :: forall (m :: Nat). (n ::) Nat -> a^m -> (a^n)^(m^n)' )
2021-01-31 00:12:31 +0100ski. o O ( `sequence :: forall (m :: Nat) (n :: Nat). (a^m)^n -> (a^n)^(m^n)' )
2021-01-31 00:13:47 +0100Kaeipi(~Kaiepi@47.54.252.148)
2021-01-31 00:14:58 +0100usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2021-01-31 00:15:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-31 00:15:51 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-31 00:16:05 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-01-31 00:16:16 +0100 <dolio> monochrom: QED: https://cs.stackexchange.com/q/123763/93254
2021-01-31 00:16:22 +0100pruiz(~pruiz@2a01:4b00:8467:2300:c02f:54be:9b7:7ed3) (Quit: WeeChat 2.8)
2021-01-31 00:16:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 00:16:40 +0100 <monochrom> Yikes
2021-01-31 00:17:36 +0100 <dolio> Oh, apparently that was asked much longer ago than I thought. Someone must have bumped it.
2021-01-31 00:19:09 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-01-31 00:21:05 +0100ehigham(d92c1d84@host217-44-29-132.range217-44.btcentralplus.com) (Ping timeout: 248 seconds)
2021-01-31 00:21:16 +0100 <ski> (bumped ?)
2021-01-31 00:21:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-31 00:21:50 +0100 <dolio> Did something to put it back in the 'recent questions' list.
2021-01-31 00:22:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 00:22:26 +0100 <dolio> Or, 'hot questions'.
2021-01-31 00:23:16 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-01-31 00:24:21 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-31 00:24:31 +0100dxld(~dxld@80-109-136-248.cable.dynamic.surfer.at) (Ping timeout: 256 seconds)
2021-01-31 00:25:04 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-01-31 00:25:47 +0100albel727(~albel727@unaffiliated/albel727) (Ping timeout: 264 seconds)
2021-01-31 00:29:33 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-01-31 00:29:35 +0100frdg(~user@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-01-31 00:32:15 +0100 <frdg> Is it possible to pattern match with a lambda? For example I want to say something in the realm of `\Just x -> x OR \Nothing -> error`, similar to how I could do it with a named function.
2021-01-31 00:34:14 +0100 <ezrakilty> You can do so with a single case, but not I think with more than one
2021-01-31 00:34:21 +0100 <dolio> LambdaCase is close if you want multiple cases.
2021-01-31 00:34:22 +0100 <ezrakilty> e.g. \(Just x) -> x
2021-01-31 00:34:34 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-31 00:35:09 +0100Tario(~Tario@201.192.165.173)
2021-01-31 00:35:16 +0100 <frdg> ok Ill look at LambdaCase. or just name the function.
2021-01-31 00:35:21 +0100 <ephemient> :t fromJust
2021-01-31 00:35:22 +0100 <lambdabot> Maybe a -> a
2021-01-31 00:35:42 +0100 <ephemient> (if you literally want Just x -> x and Nothing -> error)
2021-01-31 00:36:08 +0100 <frdg> unfortuantely that was just an example
2021-01-31 00:38:39 +0100 <ephemient> LambdaCase is fine then. I'm kinda sad it didn't end up making the cut for -XGHC2021
2021-01-31 00:41:31 +0100forgottenone(~forgotten@176.42.24.169) (Quit: Konversation terminated!)
2021-01-31 00:41:46 +0100 <frdg> would something that makes the cut for -XGHC2021 be included without needing a pragma?
2021-01-31 00:42:17 +0100fendor_(~fendor@178.115.130.239.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-01-31 00:42:51 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-wxwbipkpfyibgvpa)
2021-01-31 00:44:12 +0100son0p(~son0p@181.136.122.143)
2021-01-31 00:44:12 +0100heatsink(~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe) (Remote host closed the connection)
2021-01-31 00:44:51 +0100Guest11447(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
2021-01-31 00:45:05 +0100conal(~conal@64.71.133.70)
2021-01-31 00:46:11 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-01-31 00:46:49 +0100Guest11447(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-01-31 00:46:49 +0100Guest11447finn_elija
2021-01-31 00:49:24 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2021-01-31 00:49:25 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-01-31 00:49:42 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-01-31 00:49:59 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Remote host closed the connection)
2021-01-31 00:50:34 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-01-31 00:52:09 +0100frdg(~user@pool-96-252-123-136.bstnma.fios.verizon.net) ("ERC (IRC client for Emacs 27.1)")
2021-01-31 00:52:40 +0100son0p(~son0p@181.136.122.143) (Quit: Lost terminal)
2021-01-31 00:54:57 +0100prlCIql6ruclcri(~f9jawUfat@2800:810:514:e7:987f:5088:7420:bc98) (Quit: Leaving)
2021-01-31 00:55:51 +0100SwarmCollective(~joseph@cpe-65-31-18-174.insight.res.rr.com)
2021-01-31 00:57:32 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 00:58:14 +0100acidjnk_new(~acidjnk@p200300d0c704e724244a7a9812caad6a.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2021-01-31 00:59:53 +0100sayola(~vekto@dslb-002-201-085-014.002.201.pools.vodafone-ip.de)
2021-01-31 01:01:53 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 246 seconds)
2021-01-31 01:02:22 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds)
2021-01-31 01:02:28 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
2021-01-31 01:05:26 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-31 01:05:40 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 01:06:56 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-01-31 01:08:12 +0100Tario(~Tario@200.119.187.22)
2021-01-31 01:08:25 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-01-31 01:08:49 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2021-01-31 01:08:56 +0100 <koz_> Is there some concise way to spell 'the elements of this Vector are not all the same'?
2021-01-31 01:09:49 +0100 <infinisil> Maybe something like "is not a multiple of the identity"
2021-01-31 01:10:21 +0100 <koz_> infinisil: I don't understand what 'multiple' or 'identity' means in the context of Data.Vector from vector.
2021-01-31 01:11:27 +0100 <infinisil> identity in regards to the dot product of vectors
2021-01-31 01:11:37 +0100 <infinisil> Which is just all 1's
2021-01-31 01:12:00 +0100 <infinisil> Anyways, I guess that's not what you're looking for, but that's a concise way to specify that all elements are the same (or not)
2021-01-31 01:12:25 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2021-01-31 01:12:32 +0100 <koz_> Thanks, but indeed this is not what I'm looking for.
2021-01-31 01:13:05 +0100 <infinisil> (I have no idea what you're looking for then, what's a "way to spell"?)
2021-01-31 01:13:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 01:13:46 +0100 <koz_> infinisil: I have a Vector full of a, such that Eq a. How do I write, in Haskell, the equivalent of 'True if every element is equal to every other element, False otherwise', concisely?
2021-01-31 01:14:16 +0100 <infinisil> Oh, so you're looking for an implementation of a check for that
2021-01-31 01:15:53 +0100bennofs_(~quassel@dslb-094-222-050-219.094.222.pools.vodafone-ip.de)
2021-01-31 01:17:11 +0100 <Ariakenom> I like how laziness makes this work \xs -> all (==head xs) xs
2021-01-31 01:17:12 +0100 <koz_> Best I can think of is somethign to the tune of \v -> and [v ! i == v ! j | i <- [0 .. length v - 1], j <- [0 .. length v - 1]]
2021-01-31 01:17:13 +0100 <jkaye[m]> koz_ if list if empty, True, otherwise are all elements equal to the head element. Very simple recursion
2021-01-31 01:17:38 +0100 <jkaye[m]> You don't need to check all elements against each other
2021-01-31 01:17:45 +0100 <koz_> Although jkaye[m]'s suggestion is indeed better, thanks!
2021-01-31 01:17:56 +0100 <Ariakenom> jkaye[m]: and you dont need the first check due to laziness
2021-01-31 01:18:09 +0100 <jkaye[m]> If you use head you need it
2021-01-31 01:18:34 +0100 <Ariakenom> all f [] = True
2021-01-31 01:18:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-31 01:18:46 +0100 <jkaye[m]> Yep exactly what I meant!
2021-01-31 01:19:16 +0100bennofs__(~quassel@dslb-094-222-083-164.094.222.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2021-01-31 01:19:45 +0100 <Ariakenom> head on empty list in "f" doesn't matter if f isn't used
2021-01-31 01:22:00 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-31 01:22:19 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 01:22:29 +0100 <ski> @instances-importing Data.Vector Foldable
2021-01-31 01:22:30 +0100 <lambdabot> Alt f, Ap f, Dual, First, Last, Maybe, Product, Sum, Vector, []
2021-01-31 01:22:33 +0100conal(~conal@64.71.133.70)
2021-01-31 01:22:56 +0100 <Ariakenom> % :t all
2021-01-31 01:22:57 +0100 <yahb> Ariakenom: Foldable t => (a -> Bool) -> t a -> Bool
2021-01-31 01:23:03 +0100 <ski> @type all :: (a -> Bool) -> (Data.Vector.Vector a -> Bool)
2021-01-31 01:23:04 +0100 <lambdabot> (a -> Bool) -> Data.Vector.Vector a -> Bool
2021-01-31 01:23:13 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
2021-01-31 01:23:36 +0100conal_(~conal@64.71.133.70)
2021-01-31 01:25:34 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
2021-01-31 01:26:03 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-01-31 01:26:59 +0100conal(~conal@64.71.133.70) (Ping timeout: 264 seconds)
2021-01-31 01:27:57 +0100skilooks at jkaye[m]
2021-01-31 01:28:19 +0100erisco(~erisco@104-195-141-253.cpe.teksavvy.com)
2021-01-31 01:28:56 +0100 <jkaye[m]> ski yep. Just gotta get that first `a` there
2021-01-31 01:29:23 +0100 <jkaye[m]> I don't think I'm taking crazy pills
2021-01-31 01:29:54 +0100 <ski> jkaye[m] : something like what Ariakenom suggested doesn't work ?
2021-01-31 01:30:11 +0100 <jkaye[m]> No
2021-01-31 01:30:15 +0100 <ski> why not ?
2021-01-31 01:30:16 +0100 <jkaye[m]> Where does f come from?
2021-01-31 01:30:23 +0100 <ski> which `f' ?
2021-01-31 01:30:35 +0100 <jkaye[m]> The function is `Vec a -> Bool`
2021-01-31 01:30:43 +0100 <ski> yes ?
2021-01-31 01:30:52 +0100 <Ariakenom> \xs -> all (==head xs) xs
2021-01-31 01:30:54 +0100 <Ariakenom> no f
2021-01-31 01:31:42 +0100 <jkaye[m]> Okay, I see what you meab
2021-01-31 01:31:47 +0100 <jkaye[m]> * Okay, I see what you mean
2021-01-31 01:31:50 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 264 seconds)
2021-01-31 01:31:52 +0100 <jkaye[m]> You're right, that worjs
2021-01-31 01:31:58 +0100 <jkaye[m]> * You're right, that works
2021-01-31 01:32:52 +0100 <ski> you could probably use the aztec trick, as well
2021-01-31 01:33:04 +0100 <Ariakenom> does it work for length 0 and 1?
2021-01-31 01:33:14 +0100 <Ariakenom> [] and [1]
2021-01-31 01:34:11 +0100 <ski> > and ((zipWith (==) `ap` tail) "0000")
2021-01-31 01:34:13 +0100 <lambdabot> True
2021-01-31 01:34:15 +0100 <ski> > and ((zipWith (==) `ap` tail) "0010")
2021-01-31 01:34:16 +0100 <lambdabot> False
2021-01-31 01:36:11 +0100rajivr(uid269651@gateway/web/irccloud.com/x-wkqzxzwdoldxjjgk)
2021-01-31 01:36:52 +0100erisco(~erisco@104-195-141-253.cpe.teksavvy.com) (Quit: Leaving)
2021-01-31 01:39:53 +0100 <infinisil> Hmm, but how about not relying on partial functions
2021-01-31 01:40:39 +0100 <ski> use `drop 1' instead of `tail'
2021-01-31 01:40:51 +0100 <jkaye[m]> Does it really matter if it's guaranteed not to be a problem?
2021-01-31 01:41:03 +0100 <jkaye[m]> Other than intellectually I guess
2021-01-31 01:41:08 +0100 <infinisil> ^^
2021-01-31 01:41:27 +0100 <ski> perhaps to satisfy some termination checker ?
2021-01-31 01:42:20 +0100 <jkaye[m]> I wonder what liquid haskell would think about it
2021-01-31 01:43:06 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 01:43:47 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-01-31 01:44:36 +0100heatsink(~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe)
2021-01-31 01:45:21 +0100 <infinisil> > allEqual xs = [xs] == group xs
2021-01-31 01:45:23 +0100 <lambdabot> <hint>:1:13: error: <hint>:1:13: error: parse error on input ‘=’
2021-01-31 01:45:25 +0100 <infinisil> How about that!
2021-01-31 01:45:58 +0100 <infinisil> > (\xs -> [xs] == group xs) (repeat 10 0)
2021-01-31 01:46:00 +0100 <lambdabot> error:
2021-01-31 01:46:00 +0100 <lambdabot> • Couldn't match expected type ‘t0 -> [a0]’ with actual type ‘[a1]’
2021-01-31 01:46:00 +0100 <lambdabot> • The function ‘repeat’ is applied to two arguments,
2021-01-31 01:46:13 +0100 <infinisil> > (\xs -> [xs] == group xs) (replicate 10 0)
2021-01-31 01:46:14 +0100 <lambdabot> True
2021-01-31 01:46:25 +0100 <infinisil> > (\xs -> [xs] == group xs) (replicate 10 0 ++ [1] ++ replicate 10 0)
2021-01-31 01:46:26 +0100 <lambdabot> False
2021-01-31 01:47:15 +0100conal_(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-31 01:47:22 +0100 <ski> @check \n x -> let xs = replicate n x in [xs] == group xs
2021-01-31 01:47:23 +0100 <lambdabot> *** Failed! Falsifiable (after 1 test):
2021-01-31 01:47:23 +0100 <lambdabot> 0 ()
2021-01-31 01:48:35 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds)
2021-01-31 01:48:36 +0100 <MarcelineVQ> @let allEqual xs = [xs] == group xs
2021-01-31 01:48:37 +0100 <lambdabot> Defined.
2021-01-31 01:48:42 +0100 <MarcelineVQ> > allEqual []
2021-01-31 01:48:42 +0100jamm_(~jamm@unaffiliated/jamm)
2021-01-31 01:48:44 +0100 <lambdabot> False
2021-01-31 01:48:47 +0100conal(~conal@64.71.133.70)
2021-01-31 01:49:06 +0100 <infinisil> Damn, group not returning any result should be illegal
2021-01-31 01:49:12 +0100heatsink(~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe) (Ping timeout: 260 seconds)
2021-01-31 01:49:20 +0100 <ski> @type NE.group
2021-01-31 01:49:21 +0100 <lambdabot> (Foldable f, Eq a) => f a -> [NonEmpty a]
2021-01-31 01:49:25 +0100 <infinisil> Yeah just saw that too
2021-01-31 01:49:32 +0100 <ski> `group' returns a list of non-empty lists
2021-01-31 01:49:46 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 01:50:52 +0100 <infinisil> @let allEqual xs = [xs :| []] == NE.group xs
2021-01-31 01:50:53 +0100 <lambdabot> .L.hs:158:29: error:
2021-01-31 01:50:53 +0100 <lambdabot> • Occurs check: cannot construct the infinite type: a ~ [a]
2021-01-31 01:50:53 +0100 <lambdabot> Expected type: [NonEmpty [a]]
2021-01-31 01:51:13 +0100gzj(~gzj@unaffiliated/gzj)
2021-01-31 01:51:25 +0100mozzarella(~sam@unaffiliated/sam113101) (Ping timeout: 240 seconds)
2021-01-31 01:52:04 +0100 <ski> @check ((all <$> (==) <*> group) .) . replicate
2021-01-31 01:52:06 +0100 <lambdabot> +++ OK, passed 100 tests.
2021-01-31 01:52:19 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-31 01:52:39 +0100 <infinisil> Heh
2021-01-31 01:52:42 +0100 <infinisil> That feels like cheating
2021-01-31 01:53:17 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
2021-01-31 01:53:40 +0100conal(~conal@64.71.133.70)
2021-01-31 01:53:57 +0100 <infinisil> But nice
2021-01-31 01:54:18 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:67bb:b9ef:e561:ae2:7da2)
2021-01-31 01:58:34 +0100machinedgod(~machinedg@24.105.81.50)
2021-01-31 01:59:03 +0100thongpv87(~thongpv87@103.6.151.121) (Remote host closed the connection)
2021-01-31 02:01:01 +0100thongpv87(~thongpv87@103.6.151.121)
2021-01-31 02:01:35 +0100 <koz_> :t unlines
2021-01-31 02:01:36 +0100 <lambdabot> [String] -> String
2021-01-31 02:01:50 +0100 <infinisil> ski: But heck, how did you manage to make that type check
2021-01-31 02:01:58 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-01-31 02:02:24 +0100 <ski> er, i just hand-pled it ?
2021-01-31 02:02:57 +0100 <infinisil> :t (<$>)
2021-01-31 02:02:58 +0100 <lambdabot> Functor f => (a -> b) -> f a -> f b
2021-01-31 02:03:14 +0100 <infinisil> :t all
2021-01-31 02:03:15 +0100 <lambdabot> Foldable t => (a -> Bool) -> t a -> Bool
2021-01-31 02:03:18 +0100 <infinisil> :t (==)
2021-01-31 02:03:19 +0100 <lambdabot> Eq a => a -> a -> Bool
2021-01-31 02:03:19 +0100 <ski> `all <$> (==) <*> group' is `\xs -> all (xs ==) (group xs)'
2021-01-31 02:03:31 +0100 <ski> and `\x y -> f (g x y)' is `(f .) . g'
2021-01-31 02:03:31 +0100teardown(~user@gateway/tor-sasl/mrush) (Remote host closed the connection)
2021-01-31 02:03:52 +0100jlamothe(~jlamothe@198.251.55.207)
2021-01-31 02:03:53 +0100 <ski> that's basically all there is to it
2021-01-31 02:03:54 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-01-31 02:03:55 +0100 <infinisil> Hmm
2021-01-31 02:04:19 +0100 <infinisil> Ahh, the functor for (->) just applies the same argument to all functions
2021-01-31 02:04:54 +0100 <mniip> what
2021-01-31 02:05:10 +0100 <infinisil> Or the applicative I mean
2021-01-31 02:05:23 +0100 <mniip> that's kinda true yes
2021-01-31 02:05:36 +0100 <mniip> there's an "environment" that's being propagated down
2021-01-31 02:05:38 +0100 <ski> environment distributes the config to all branches, yes
2021-01-31 02:06:28 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-31 02:06:39 +0100 <infinisil> Yeah looking at it like that, makes sense :)
2021-01-31 02:06:40 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-31 02:07:11 +0100 <infinisil> @pointfree \xs -> all (xs ==) (group xs)
2021-01-31 02:07:11 +0100 <lambdabot> Unknown command, try @list
2021-01-31 02:07:19 +0100heatsink(~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe)
2021-01-31 02:07:23 +0100 <ski> @pointless \xs -> all (xs ==) (group xs)
2021-01-31 02:07:23 +0100 <lambdabot> liftM2 all (==) group
2021-01-31 02:07:36 +0100 <infinisil> :o
2021-01-31 02:07:37 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 265 seconds)
2021-01-31 02:07:42 +0100 <ski> (could use `liftA2' .. but it didn't exist, when the plugin was written)
2021-01-31 02:07:49 +0100 <infinisil> > :t liftA2
2021-01-31 02:07:51 +0100 <lambdabot> <hint>:1:1: error: <hint>:1:1: error: parse error on input ‘:’
2021-01-31 02:07:54 +0100 <infinisil> :t liftA2
2021-01-31 02:07:55 +0100 <lambdabot> Applicative f => (a -> b -> c) -> f a -> f b -> f c
2021-01-31 02:08:14 +0100 <infinisil> :t liftA2 all (==) group
2021-01-31 02:08:15 +0100 <lambdabot> Eq a => [a] -> Bool
2021-01-31 02:08:18 +0100 <infinisil> Nice
2021-01-31 02:09:12 +0100 <infinisil> Not as generic as it could be though
2021-01-31 02:10:08 +0100 <ski> @type liftA2 `asTypeIn` \liftA2 -> liftA2 all (==) group
2021-01-31 02:10:09 +0100 <lambdabot> Eq a => (([a] -> Bool) -> [[a]] -> Bool) -> ([a] -> [a] -> Bool) -> ([a] -> [[a]]) -> [a] -> Bool
2021-01-31 02:10:15 +0100 <ski> hm .. somewhat excessive
2021-01-31 02:10:52 +0100 <ski> @type liftA2 `asTypeIn` \liftA2 f g h x -> liftA2 f g h x
2021-01-31 02:10:53 +0100 <lambdabot> (a -> b -> t1) -> (t2 -> a) -> (t2 -> b) -> t2 -> t1
2021-01-31 02:10:53 +0100jedws(~jedws@121.209.199.128)
2021-01-31 02:11:38 +0100 <ski> int-e : was missing `asTypeIn' :)
2021-01-31 02:12:03 +0100 <ski> (oh, also `Natural', while we're at it ..)
2021-01-31 02:13:08 +0100 <ski> infinisil : not as generic ?
2021-01-31 02:14:01 +0100 <infinisil> Huh!
2021-01-31 02:14:03 +0100pera(~pera@unaffiliated/pera) (Quit: leaving)
2021-01-31 02:14:04 +0100 <infinisil> Wait how would I use that?
2021-01-31 02:14:36 +0100 <ski> use which ?
2021-01-31 02:16:02 +0100 <ski> you mean `asTypeIn' ?
2021-01-31 02:16:14 +0100 <ski> @src asTypeIn
2021-01-31 02:16:14 +0100 <lambdabot> a `asTypeIn` f = a where _ = f a
2021-01-31 02:16:15 +0100 <lambdabot> infixl 0 `asTypeIn`
2021-01-31 02:16:32 +0100 <ski> it's just a glorified `const' (as is `asAppliedTo')
2021-01-31 02:16:42 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-01-31 02:16:55 +0100 <ski> @src asAppliedTo
2021-01-31 02:16:55 +0100 <lambdabot> f `asAppliedTo` a = f where _ = f a
2021-01-31 02:16:55 +0100 <lambdabot> infixl 0 `asAppliedTo`
2021-01-31 02:16:56 +0100 <infinisil> I'm probably missing something
2021-01-31 02:17:07 +0100 <ski> @type map `asAppliedTo` ord
2021-01-31 02:17:08 +0100 <lambdabot> (Char -> Int) -> [Char] -> [Int]
2021-01-31 02:17:52 +0100 <infinisil> I was wondering if we could find an implementation of `liftA2 all (==) group` that had a more generic type, like with Traversable instead of []
2021-01-31 02:18:04 +0100 <ski> they are just two lambdabot-defined functions which are sometimes helpful to show a (more) monomorphic type of something
2021-01-31 02:18:28 +0100mozzarella(~sam@unaffiliated/sam113101)
2021-01-31 02:18:34 +0100 <ski> well, it's `group' that forces `[]'
2021-01-31 02:18:56 +0100 <ski> so .. can you generalize `group', is then the question ?
2021-01-31 02:19:47 +0100 <infinisil> I guess yeah :)
2021-01-31 02:21:22 +0100 <infinisil> Anyways, it's easy to make a generic total function by just pattern matching
2021-01-31 02:22:07 +0100 <ski> on what ?
2021-01-31 02:22:24 +0100 <infinisil> The list
2021-01-31 02:22:44 +0100 <infinisil> If empty, just return True, otherwise `all (== x) xs`
2021-01-31 02:22:57 +0100 <infinisil> Though I guess you need Foldable, Traversable isn't enough
2021-01-31 02:23:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-31 02:23:47 +0100xelxebar_(~xelxebar@gateway/tor-sasl/xelxebar)
2021-01-31 02:23:54 +0100 <ski> every instance of `Traversable' is an instance of `Foldable' (but not vice versa)
2021-01-31 02:24:45 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 268 seconds)
2021-01-31 02:24:57 +0100 <ski> well, if you want to generalize from list, then you don't have a list to match on
2021-01-31 02:25:10 +0100 <infinisil> Oh yeah, had those flipped around
2021-01-31 02:25:40 +0100 <ski> (you could get a list using `Foldable. but then you can't get back again ..)
2021-01-31 02:26:35 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-01-31 02:28:58 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 02:29:44 +0100zeta_0(~zeta@2601:8c0:1:2630:a6ba:f759:774b:830c)
2021-01-31 02:30:33 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
2021-01-31 02:30:36 +0100tromp_(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 02:30:51 +0100 <zeta_0> I have a miso nix related issue, will any of you be able to help me out? I already asked for help in the #nixos channel, but no one has responded yet!
2021-01-31 02:30:54 +0100 <zeta_0> https://github.com/dmjio/miso#nix
2021-01-31 02:32:01 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:67bb:b9ef:e561:ae2:7da2) (Quit: Textual IRC Client: www.textualapp.com)
2021-01-31 02:33:50 +0100 <zeta_0> when I follow the miso/nix example, everything works fine, but whenever I try to configure this with my (direnv+nix-diren+emacs-direnv) setup, callCabal2Nix does not work, a bunch of dependency errors are returned?
2021-01-31 02:34:57 +0100 <infinisil> ski: I feel like foldMap could be used with a suitable Monoid, but I don't think such a Monoid exists already
2021-01-31 02:35:06 +0100 <infinisil> :t foldMap
2021-01-31 02:35:07 +0100 <lambdabot> (Foldable t, Monoid m) => (a -> m) -> t a -> m
2021-01-31 02:35:23 +0100tromp_(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds)
2021-01-31 02:35:48 +0100 <ski> infinisil : aiming at what type ?
2021-01-31 02:36:37 +0100 <infinisil> > :t foldMap Just
2021-01-31 02:36:38 +0100 <lambdabot> <hint>:1:1: error: <hint>:1:1: error: parse error on input ‘:’
2021-01-31 02:36:43 +0100 <infinisil> :t foldMap Just
2021-01-31 02:36:44 +0100 <ski> @type foldMap Just
2021-01-31 02:36:44 +0100 <lambdabot> (Foldable t, Semigroup a) => t a -> Maybe a
2021-01-31 02:36:45 +0100 <lambdabot> (Foldable t, Semigroup a) => t a -> Maybe a
2021-01-31 02:36:51 +0100 <infinisil> Then isJust!
2021-01-31 02:37:06 +0100 <infinisil> Wait no
2021-01-31 02:37:39 +0100 <ski> are you aiming at `group :: (Foldable t,Eq a) => t a -> [[a]]', or what ?
2021-01-31 02:39:09 +0100 <infinisil> Something like Maybe, but with a Semigroup instance that compares values, and in case both sides are Just, it only returns Just when they are equal
2021-01-31 02:39:43 +0100 <infinisil> Eq a => Semigroup (Maybe a)
2021-01-31 02:41:57 +0100Ariakenom(~Ariakenom@2001:9b1:efb:fc00:9c13:27da:3792:17be) (Quit: Leaving)
2021-01-31 02:43:53 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 02:45:11 +0100 <infinisil> Would be defined like
2021-01-31 02:45:18 +0100 <infinisil> Just a <> Just b | a == b = Just a
2021-01-31 02:45:22 +0100 <infinisil> _ <> _ = Nothing
2021-01-31 02:45:57 +0100 <infinisil> Then I believe `isJust . foldMap Just` would check whether all elements are equal
2021-01-31 02:46:26 +0100 <infinisil> (but this doesn't work because there's already another Semigroup (Maybe a) instance)
2021-01-31 02:47:26 +0100 <zeta_0> https://github.com/dmjio/miso#nix https://dpaste.org/sTcE https://dpaste.org/e2Wh https://dpaste.org/LJNC
2021-01-31 02:48:05 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-01-31 02:48:48 +0100 <zeta_0> if any of you would like to take a look and help me with my miso/nix error, thanks, I got miso to work with my (direnv+nix-direnv+emacs-direnv) setup, but I can't get callCabal2Nix working, it's throwing errors, which I pastebined above.
2021-01-31 02:49:54 +0100metreo(~Thunderbi@unaffiliated/metreo) (Quit: metreo)
2021-01-31 02:50:28 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 260 seconds)
2021-01-31 02:51:36 +0100gluegadget(sid22336@gateway/web/irccloud.com/x-uqcwrzaflpkghsoy) (Ping timeout: 265 seconds)
2021-01-31 02:51:37 +0100heyj(sid171370@gateway/web/irccloud.com/x-bflehhffxpswalwj) (Ping timeout: 260 seconds)
2021-01-31 02:51:37 +0100Firedancer(sid336191@gateway/web/irccloud.com/x-eedluoddpkolzhde) (Ping timeout: 260 seconds)
2021-01-31 02:51:37 +0100simony(sid226116@gateway/web/irccloud.com/x-wuwbandquivjrcox) (Ping timeout: 260 seconds)
2021-01-31 02:51:37 +0100SanchayanMaity(sid478177@gateway/web/irccloud.com/x-xfixrnosidhdkmvo) (Ping timeout: 260 seconds)
2021-01-31 02:51:38 +0100mpickering(sid78412@gateway/web/irccloud.com/x-nlhzowtetdmoksio) (Ping timeout: 264 seconds)
2021-01-31 02:51:43 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-01-31 02:52:03 +0100acertain(sid470584@gateway/web/irccloud.com/x-ukmpkghtxinppagh) (Ping timeout: 272 seconds)
2021-01-31 02:52:12 +0100edwinb(sid69486@gateway/web/irccloud.com/x-mayongskwkdlziau) (Ping timeout: 260 seconds)
2021-01-31 02:52:14 +0100nick_h(sid319833@gateway/web/irccloud.com/x-ikiutvcdzbiuuesy) (Ping timeout: 264 seconds)
2021-01-31 02:52:28 +0100mpickering(sid78412@gateway/web/irccloud.com/x-gpnegcmfmjdgvvhd)
2021-01-31 02:52:32 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection)
2021-01-31 02:52:36 +0100nick_h(sid319833@gateway/web/irccloud.com/x-fmszvbukywibvnjt)
2021-01-31 02:52:38 +0100edwinb(sid69486@gateway/web/irccloud.com/x-ksiofhqyzwmiecwk)
2021-01-31 02:52:50 +0100affinespaces(sid327561@gateway/web/irccloud.com/x-bebojrcoufbnwpah) (Ping timeout: 264 seconds)
2021-01-31 02:52:50 +0100vgtw(~vgtw@gateway/tor-sasl/vgtw)
2021-01-31 02:53:17 +0100SanchayanMaity(sid478177@gateway/web/irccloud.com/x-rpffknmnzhckxcik)
2021-01-31 02:53:32 +0100Firedancer(sid336191@gateway/web/irccloud.com/x-ligfkiqpgzdsoowm)
2021-01-31 02:53:37 +0100simony(sid226116@gateway/web/irccloud.com/x-yvxwbmloxgyrtusv)
2021-01-31 02:53:40 +0100heyj(sid171370@gateway/web/irccloud.com/x-jlmkaetfreswmuao)
2021-01-31 02:53:56 +0100gluegadget(sid22336@gateway/web/irccloud.com/x-rxofsnehgcvjxzjy)
2021-01-31 02:54:06 +0100acertain(sid470584@gateway/web/irccloud.com/x-yywtldtivzbefsrr)
2021-01-31 02:54:39 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
2021-01-31 02:54:49 +0100affinespaces(sid327561@gateway/web/irccloud.com/x-jflhsfrfrwoamxgm)
2021-01-31 02:55:01 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br)
2021-01-31 02:57:51 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-01-31 02:59:08 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2021-01-31 02:59:29 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 2.9)
2021-01-31 03:00:13 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 03:02:45 +0100d3od(~nickmeno3@78-1-83-60.adsl.net.t-com.hr) (Ping timeout: 240 seconds)
2021-01-31 03:03:00 +0100d3od(~nickmeno3@78-0-99-153.adsl.net.t-com.hr)
2021-01-31 03:05:17 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Quit: Ping timeout (120 seconds))
2021-01-31 03:07:46 +0100bgamari(~bgamari@72.65.102.166) (Ping timeout: 256 seconds)
2021-01-31 03:09:10 +0100bgamari(~bgamari@72.65.102.164)
2021-01-31 03:14:06 +0100miguel_clean(~Miguel@89-72-187-203.dynamic.chello.pl) (Quit: Leaving.)
2021-01-31 03:16:36 +0100jedws(~jedws@121.209.199.128) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-31 03:22:02 +0100jpds_(~jpds@gateway/tor-sasl/jpds)
2021-01-31 03:22:43 +0100 <zeta_0> here's an issue if any of you would like to take a look, thanks in advance: https://github.com/dmjio/miso/issues/641
2021-01-31 03:23:57 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-01-31 03:23:57 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
2021-01-31 03:24:30 +0100carlomagno(~cararell@148.87.23.9) (Remote host closed the connection)
2021-01-31 03:25:11 +0100carlomagno(~cararell@148.87.23.9)
2021-01-31 03:25:13 +0100jedws(~jedws@121.209.199.128)
2021-01-31 03:25:32 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-01-31 03:27:26 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 03:28:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 03:28:41 +0100dcoutts_(~dcoutts@unaffiliated/dcoutts)
2021-01-31 03:31:05 +0100dcoutts__(~duncan@51.186.125.91.dyn.plus.net) (Ping timeout: 240 seconds)
2021-01-31 03:31:06 +0100Tario(~Tario@200.119.187.22) (Read error: Connection reset by peer)
2021-01-31 03:31:17 +0100Tario(~Tario@201.192.165.173)
2021-01-31 03:31:35 +0100dcoutts__(~duncan@85.186.125.91.dyn.plus.net)
2021-01-31 03:31:45 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
2021-01-31 03:32:05 +0100dcoutts(~dcoutts@unaffiliated/dcoutts) (Ping timeout: 240 seconds)
2021-01-31 03:32:06 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2021-01-31 03:34:35 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 03:34:41 +0100xff0x_(~xff0x@2001:1a81:5286:1d00:27bb:49b:c3ad:c098) (Ping timeout: 258 seconds)
2021-01-31 03:36:23 +0100xff0x_(~xff0x@2001:1a81:52bf:eb00:e63f:41c2:291d:74fd)
2021-01-31 03:36:32 +0100_Alleria(~AllahuAkb@2603-7000-3040-0000-749a-5200-2a68-b0ee.res6.spectrum.com) (Ping timeout: 260 seconds)
2021-01-31 03:37:47 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds)
2021-01-31 03:38:53 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Ping timeout: 256 seconds)
2021-01-31 03:39:27 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-01-31 03:42:27 +0100heatsink(~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe) (Remote host closed the connection)
2021-01-31 03:42:46 +0100bgamari_(~bgamari@72.65.102.22)
2021-01-31 03:43:47 +0100bgamari(~bgamari@72.65.102.164) (Ping timeout: 264 seconds)
2021-01-31 03:43:52 +0100shailangsa(~shailangs@host86-186-177-234.range86-186.btcentralplus.com) (Disconnected by services)
2021-01-31 03:47:30 +0100sh9(~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8)
2021-01-31 03:49:02 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-01-31 03:50:08 +0100heatsink(~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe)
2021-01-31 03:50:57 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 03:52:25 +0100e71_(~e71@89.187.165.99)
2021-01-31 03:54:20 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-31 03:55:16 +0100Lowl3v3l(~Lowl3v3l@dslb-002-203-233-121.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2021-01-31 03:55:47 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-01-31 03:57:52 +0100nineonine(~nineonine@S0106a0ff7073d5d5.vf.shawcable.net)
2021-01-31 03:58:42 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-01-31 03:58:46 +0100Alleria_(~AllahuAkb@69.202.254.168)
2021-01-31 03:58:54 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-01-31 04:01:05 +0100zeta_0(~zeta@2601:8c0:1:2630:a6ba:f759:774b:830c) (Quit: rcirc on GNU Emacs 27.1)
2021-01-31 04:01:47 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 264 seconds)
2021-01-31 04:01:56 +0100nineonine(~nineonine@S0106a0ff7073d5d5.vf.shawcable.net) (Ping timeout: 240 seconds)
2021-01-31 04:02:13 +0100Tario(~Tario@201.192.165.173)
2021-01-31 04:03:53 +0100thongpv87(~thongpv87@103.6.151.121) (Quit: Lost terminal)
2021-01-31 04:04:35 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 04:09:25 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds)
2021-01-31 04:09:58 +0100Shailangsa_(~shailangs@host86-186-177-234.range86-186.btcentralplus.com)
2021-01-31 04:10:04 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-01-31 04:12:44 +0100glguy(x@freenode/staff/haskell.developer.glguy) (Read error: Connection reset by peer)
2021-01-31 04:13:05 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-01-31 04:13:16 +0100glguy(x@freenode/staff/haskell.developer.glguy)
2021-01-31 04:13:26 +0100gzj(~gzj@unaffiliated/gzj)
2021-01-31 04:13:56 +0100halbGefressen(~halbGefre@2a02:810d:f40:2a9c:a4fe:2adc:248b:466f)
2021-01-31 04:14:54 +0100 <halbGefressen> Hi guys, I am trying to understand this definition of the faculty function, but I still don't get it: fac = fix \f x -> if x == 1 then 1 else x * f (x-1)
2021-01-31 04:15:02 +0100 <halbGefressen> What is going on here?
2021-01-31 04:15:07 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 04:16:08 +0100ezrakilty(~ezrakilty@75-172-109-5.tukw.qwest.net) (Remote host closed the connection)
2021-01-31 04:16:38 +0100 <halbGefressen> (the correct syntax is this, sorry:) fac = fix $ \f x -> if x == 1 then 1 else x * f (x-1)
2021-01-31 04:18:01 +0100drbean(~drbean@TC210-63-209-161.static.apol.com.tw)
2021-01-31 04:19:30 +0100 <glguy> halbGefressen, is the issue that it uses "fix"?
2021-01-31 04:19:32 +0100 <mniip> that's normally called the factorial
2021-01-31 04:19:51 +0100 <glguy> ?src fix
2021-01-31 04:19:51 +0100 <lambdabot> fix f = let x = f x in x
2021-01-31 04:19:53 +0100 <halbGefressen> i forgot how its called in english, I mean that
2021-01-31 04:20:02 +0100 <halbGefressen> yea, I don't get the use of fix here
2021-01-31 04:20:14 +0100 <glguy> Well, let's just inline the definition, then
2021-01-31 04:20:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 04:20:42 +0100 <glguy> fac = let g = (\f x -> if x == 1 then 1 else x * f (x-1)) g in g
2021-01-31 04:20:53 +0100berberman(~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2021-01-31 04:20:55 +0100 <glguy> I renamed 'x' to 'g' to avoid clashing with your existing x
2021-01-31 04:20:59 +0100 <glguy> Good so far?
2021-01-31 04:21:17 +0100berberman(~berberman@unaffiliated/berberman)
2021-01-31 04:21:21 +0100 <halbGefressen> ohh, I get it now
2021-01-31 04:21:35 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-01-31 04:21:37 +0100 <halbGefressen> wait no
2021-01-31 04:21:44 +0100 <glguy> OK, let's keep going then
2021-01-31 04:21:53 +0100 <glguy> we'll apply the lambda expression to g
2021-01-31 04:22:10 +0100 <glguy> fac = let g = (\x -> if x == 1 then 1 else x * g (x-1)) in g
2021-01-31 04:22:28 +0100 <glguy> Are you OK with that?
2021-01-31 04:22:36 +0100 <halbGefressen> that seems to make sense
2021-01-31 04:22:50 +0100 <glguy> OK, and g = (\x -> ... is another way of writing, g x = ...
2021-01-31 04:22:51 +0100 <halbGefressen> wait, now we have a recursive function
2021-01-31 04:22:59 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 04:23:06 +0100 <glguy> fac = let g x = if x == 1 then 1 else x * g (x-1) in g
2021-01-31 04:23:07 +0100 <halbGefressen> or well, we had it all the time, but this time it looks more familiar
2021-01-31 04:23:24 +0100Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2021-01-31 04:23:59 +0100 <halbGefressen> ahhhh thank you, I think I got it
2021-01-31 04:24:01 +0100 <halbGefressen> :D
2021-01-31 04:24:04 +0100 <glguy> :)
2021-01-31 04:24:41 +0100e71_e71e71
2021-01-31 04:24:47 +0100halbGefressen(~halbGefre@2a02:810d:f40:2a9c:a4fe:2adc:248b:466f) (Quit: halbGefressen)
2021-01-31 04:25:05 +0100theDon(~td@muedsl-82-207-238-229.citykom.de) (Ping timeout: 240 seconds)
2021-01-31 04:25:24 +0100e71e71e71_
2021-01-31 04:26:45 +0100Codaraxis__(Codaraxis@gateway/vpn/mullvad/codaraxis) (Ping timeout: 240 seconds)
2021-01-31 04:27:11 +0100theDon(~td@94.134.91.199)
2021-01-31 04:30:50 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-01-31 04:32:10 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-ihpmwhrtqcetefmy) ()
2021-01-31 04:36:30 +0100jamm_(~jamm@unaffiliated/jamm)
2021-01-31 04:38:23 +0100proteusguy(~proteusgu@cm-58-10-154-202.revip7.asianet.co.th) (Ping timeout: 264 seconds)
2021-01-31 04:38:52 +0100 <orzo> Is it feasible to use multiplicity 0 (context: LinearTypes) as a communication of intention that something be optimized away so that it is present only at compile-time? The Idris2 seems to use it?
2021-01-31 04:39:09 +0100 <orzo> Like Idris2
2021-01-31 04:39:12 +0100 <orzo> i mean
2021-01-31 04:39:52 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 04:41:06 +0100FinnElija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-01-31 04:41:06 +0100finn_elijaGuest41169
2021-01-31 04:41:06 +0100FinnElijafinn_elija
2021-01-31 04:41:29 +0100xirhtogal(~lagothrix@unaffiliated/lagothrix)
2021-01-31 04:41:29 +0100lagothrix(~lagothrix@unaffiliated/lagothrix) (Killed (orwell.freenode.net (Nickname regained by services)))
2021-01-31 04:41:29 +0100xirhtogallagothrix
2021-01-31 04:43:38 +0100 <mniip> orzo, currently the compiler makes no optimization decisions at all based on linearity
2021-01-31 04:43:52 +0100 <mniip> it's only additional statically checked restrictions at the moment
2021-01-31 04:44:43 +0100 <orzo> that's surely only because the feature is newish
2021-01-31 04:44:44 +0100Guest41169(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
2021-01-31 04:45:26 +0100 <mniip> there's probably plans to change that
2021-01-31 04:45:30 +0100 <mniip> but on a very long scale I expect
2021-01-31 04:45:39 +0100 <mniip> it's no easy feat
2021-01-31 04:45:48 +0100 <orzo> hm
2021-01-31 04:46:11 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-01-31 04:46:36 +0100 <orzo> say i want to update one field of a large record and the update is linear, then shouldn't it in-place modify the record instead of copying?
2021-01-31 04:47:00 +0100 <koz_> orzo: Theoretically, linear typing _can_ enable a lot of perf stuff.
2021-01-31 04:47:07 +0100 <koz_> Whether it _does_ or not is a matter for the codegen backend.
2021-01-31 04:49:05 +0100 <mniip> orzo, nope because the original value in the struct might be used elsewhere
2021-01-31 04:50:26 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-01-31 04:51:13 +0100mmmattyx(uid17782@gateway/web/irccloud.com/x-idtcxnqhmlqxtsid) (Quit: Connection closed for inactivity)
2021-01-31 04:51:13 +0100 <mniip> it's more about how a linear function can take ownership of an object such as an allocation
2021-01-31 04:51:23 +0100proteusguy(~proteusgu@cm-58-10-154-202.revip7.asianet.co.th)
2021-01-31 04:51:41 +0100 <mniip> removing the necessity for tracking the lifetime of that object with a GC
2021-01-31 04:51:55 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-wxwbipkpfyibgvpa) (Quit: Connection closed for inactivity)
2021-01-31 04:53:03 +0100 <mniip> the allocation could be mutable yes, which amounts to call by mutable reference
2021-01-31 04:53:23 +0100 <orzo> are you saying a future optimization that enables in-place field update based on lineartypes is not possible or are you saying there's something about the way lineartypes is currently implemented that makes it not possible?
2021-01-31 04:53:23 +0100 <mniip> but that is now a different calling convention, and converting an immutable reference into a mutable one involves copying
2021-01-31 04:53:33 +0100 <mniip> and not all functions would benefit once you take that into account
2021-01-31 04:53:33 +0100catt(~r@31.124.181.226) (Remote host closed the connection)
2021-01-31 04:53:39 +0100ezrakilty(~ezrakilty@75-172-109-5.tukw.qwest.net)
2021-01-31 04:54:23 +0100 <orzo> if i thread the record through a bunch of computations and intermediate computations make field-updates, i don't see why the compiler can't be given the information that in-place update is safe using the lineartypes mechanism
2021-01-31 04:54:28 +0100 <ski> orzo : ".. and the update is linear, then shouldn't it in-place modify the record instead of copying?" -- not necessarily
2021-01-31 04:54:43 +0100 <ski> "linear" doesn't mean "unique reference"
2021-01-31 04:55:47 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-01-31 04:55:52 +0100 <ski> you can have a linear reference to an object, while there's also other extant references to the same object
2021-01-31 04:56:16 +0100catt(~r@31.124.181.226)
2021-01-31 04:56:36 +0100 <ski> if you were given a unique reference, and you're going to drop it, *then* an implementation could possibly reuse the memory in the construction of a new object
2021-01-31 04:56:37 +0100 <mniip> very simple example, f :: A -o A; x :: A, (x, f x)
2021-01-31 04:57:03 +0100 <mniip> yup, ownership transfer is actually a different contract than linearity
2021-01-31 04:57:30 +0100 <ski> (especially attractive if most components of the new object are to be the same as the ones in the old one, since then one wouldn't have to write to those sub-locations, even)
2021-01-31 04:58:07 +0100ezrakilty(~ezrakilty@75-172-109-5.tukw.qwest.net) (Client Quit)
2021-01-31 04:58:11 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 04:58:25 +0100 <ski> "uniqueness" expresses "hasn't been copied/shared in the past". "linearity" expresses "will not be copied/shared in the future"
2021-01-31 05:01:51 +0100 <ski> Clean and Mercury are two languages which incorporates uniqueness
2021-01-31 05:02:59 +0100 <ski> iirc, in the Linear Haskell paper, there was some example of achieving uniqueness, by using linearity and CPS
2021-01-31 05:03:00 +0100jpds_(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-01-31 05:03:09 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-01-31 05:03:22 +0100jpds_(~jpds@gateway/tor-sasl/jpds)
2021-01-31 05:03:55 +0100 <orzo> well, maybe ghc will eventually recognize that use and optimize it the way i'm saying
2021-01-31 05:04:10 +0100 <orzo> the linearity+cps to achieve uniqueness and thus in-place updates
2021-01-31 05:05:18 +0100 <ski> possibly
2021-01-31 05:07:38 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 05:12:22 +0100RusAlex(~Chel@unaffiliated/rusalex) (Read error: Connection reset by peer)
2021-01-31 05:12:49 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 248 seconds)
2021-01-31 05:13:20 +0100RusAlex(~Chel@unaffiliated/rusalex)
2021-01-31 05:13:48 +0100Shailangsa_(~shailangs@host86-186-177-234.range86-186.btcentralplus.com) ()
2021-01-31 05:14:39 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-01-31 05:18:37 +0100RusAlex(~Chel@unaffiliated/rusalex) (Read error: Connection reset by peer)
2021-01-31 05:19:36 +0100RusAlex(~Chel@unaffiliated/rusalex)
2021-01-31 05:20:18 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 05:20:38 +0100 <orzo> linear-base has a linear monad class with do notation which makes a kind of linear cps convenient
2021-01-31 05:23:13 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 05:24:25 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-01-31 05:27:22 +0100sakirious0(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Read error: Connection reset by peer)
2021-01-31 05:27:23 +0100sakirious02(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net)
2021-01-31 05:30:03 +0100 <orzo> would could have record-update sugar over Data.Array.Mutable.Linear
2021-01-31 05:30:06 +0100 <orzo> from linear-base
2021-01-31 05:30:20 +0100 <orzo> give us in-place field update using lineartypes
2021-01-31 05:30:37 +0100 <orzo> jsut not in the naive way of mniip's example
2021-01-31 05:30:57 +0100 <mniip> you still need to freeze
2021-01-31 05:31:05 +0100 <mniip> an expensive operation
2021-01-31 05:34:08 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 05:35:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 05:35:39 +0100shailangsa(~shailangs@host86-186-177-234.range86-186.btcentralplus.com)
2021-01-31 05:37:18 +0100 <orzo> freeze :: Array a -> Ur (Vector a)
2021-01-31 05:37:28 +0100 <orzo> haddock: O(1) Convert an Array to an immutable Vector (from vector package).
2021-01-31 05:37:51 +0100 <orzo> it's documented as inexpensive
2021-01-31 05:38:43 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds)
2021-01-31 05:38:50 +0100toorevitimirp(~tooreviti@117.182.181.145)
2021-01-31 05:40:04 +0100 <mniip> then the converse operation is expensive
2021-01-31 05:40:53 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 05:45:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 05:47:16 +0100mmohammadi9812(~mmohammad@188.210.96.120) (Ping timeout: 240 seconds)
2021-01-31 05:47:32 +0100mmohammadi9812(~mmohammad@188.210.122.58)
2021-01-31 05:48:51 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 05:49:13 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 256 seconds)
2021-01-31 05:49:34 +0100Tario(~Tario@201.192.165.173)
2021-01-31 05:49:45 +0100jespada(~jespada@90.254.242.138) (Ping timeout: 240 seconds)
2021-01-31 05:50:43 +0100machinedgod(~machinedg@24.105.81.50)
2021-01-31 05:52:03 +0100mmohammadi9812(~mmohammad@188.210.122.58) (Ping timeout: 256 seconds)
2021-01-31 05:52:25 +0100jespada(~jespada@90.254.242.138)
2021-01-31 05:53:49 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-01-31 05:54:19 +0100mmohammadi9812(~mmohammad@188.210.122.58)
2021-01-31 05:54:43 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 05:57:06 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-01-31 05:59:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 06:00:18 +0100catt(~r@31.124.181.226) (Remote host closed the connection)
2021-01-31 06:02:54 +0100zebrag(~inkbottle@aaubervilliers-654-1-102-193.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-01-31 06:10:33 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 06:10:45 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
2021-01-31 06:11:02 +0100acidjnk_new(~acidjnk@p200300d0c704e77020ba0d2c1a7fed29.dip0.t-ipconnect.de)
2021-01-31 06:13:38 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-01-31 06:14:05 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-01-31 06:14:16 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-01-31 06:17:27 +0100brimstone1(~brimstone@185.204.1.185) (Remote host closed the connection)
2021-01-31 06:18:56 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-171.cust.tzulo.com)
2021-01-31 06:19:09 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-171.cust.tzulo.com) (Client Quit)
2021-01-31 06:19:45 +0100catt(~r@31.124.181.226)
2021-01-31 06:21:56 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 06:24:16 +0100quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in)
2021-01-31 06:26:36 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-01-31 06:32:45 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-01-31 06:33:52 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 06:35:16 +0100mmohammadi9812(~mmohammad@188.210.122.58) (Ping timeout: 240 seconds)
2021-01-31 06:35:41 +0100mmohammadi9812(~mmohammad@5.115.1.251)
2021-01-31 06:37:41 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi)
2021-01-31 06:38:05 +0100gzj(~gzj@unaffiliated/gzj) (Ping timeout: 240 seconds)
2021-01-31 06:38:31 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-01-31 06:48:15 +0100nicecoats(~textual@h235.145.88.75.dynamic.ip.windstream.net)
2021-01-31 06:49:03 +0100betrion[m](betrionmat@gateway/shell/matrix.org/x-kgnrjpfwruxoxiik)
2021-01-31 06:49:40 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 06:51:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 06:51:40 +0100nicecoats(~textual@h235.145.88.75.dynamic.ip.windstream.net) (Client Quit)
2021-01-31 06:51:58 +0100nicecoats(~nicecoats@h235.145.88.75.dynamic.ip.windstream.net)
2021-01-31 06:53:20 +0100conal(~conal@64.71.133.70)
2021-01-31 06:54:35 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-01-31 06:56:44 +0100conal(~conal@64.71.133.70) (Client Quit)
2021-01-31 06:58:17 +0100mirrorbird(~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676)
2021-01-31 06:58:37 +0100raym(~ray@45.64.220.55) (Quit: leaving)
2021-01-31 06:58:55 +0100raym(~ray@45.64.220.55)
2021-01-31 06:59:17 +0100conal(~conal@64.71.133.70)
2021-01-31 07:00:22 +0100nicecoats(~nicecoats@h235.145.88.75.dynamic.ip.windstream.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-31 07:00:26 +0100raym(~ray@45.64.220.55) (Client Quit)
2021-01-31 07:00:45 +0100nicecoats(~nicecoats@h235.145.88.75.dynamic.ip.windstream.net)
2021-01-31 07:01:57 +0100nicecoats(~nicecoats@h235.145.88.75.dynamic.ip.windstream.net) (Client Quit)
2021-01-31 07:02:29 +0100raym(~ray@45.64.220.55)
2021-01-31 07:03:55 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 07:04:53 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-31 07:06:11 +0100conal(~conal@64.71.133.70)
2021-01-31 07:06:23 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 07:08:56 +0100slack1256(~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection)
2021-01-31 07:15:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 07:15:05 +0100conal(~conal@64.71.133.70) (Read error: Connection reset by peer)
2021-01-31 07:17:11 +0100Codaraxis__(Codaraxis@gateway/vpn/mullvad/codaraxis)
2021-01-31 07:17:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 07:19:26 +0100conal(~conal@64.71.133.70)
2021-01-31 07:20:11 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-01-31 07:20:43 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-01-31 07:20:59 +0100Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 264 seconds)
2021-01-31 07:22:20 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 07:24:47 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-31 07:25:21 +0100desophos(~desophos@2601:249:1680:a570:6c5d:6065:851c:11c8) (Read error: Connection reset by peer)
2021-01-31 07:25:33 +0100eacameron(uid256985@gateway/web/irccloud.com/x-aohjgkptcanyniwh) (Quit: Connection closed for inactivity)
2021-01-31 07:26:44 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds)
2021-01-31 07:26:54 +0100ixaxaar(~ixaxaar@49.207.210.215)
2021-01-31 07:30:23 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-01-31 07:30:36 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-01-31 07:33:36 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 240 seconds)
2021-01-31 07:33:56 +0100Tario(~Tario@200.119.186.212)
2021-01-31 07:41:10 +0100Wuzzy(~Wuzzy@p549c9562.dip0.t-ipconnect.de) (Quit: Wuzzy)
2021-01-31 07:44:40 +0100samik(67578edb@103.87.142.219)
2021-01-31 07:50:23 +0100Tario(~Tario@200.119.186.212) (Ping timeout: 264 seconds)
2021-01-31 07:50:27 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-01-31 07:50:58 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 07:51:03 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-01-31 07:51:35 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2021-01-31 07:52:50 +0100danso(~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 264 seconds)
2021-01-31 07:53:16 +0100danso(~dan@d67-193-121-2.home3.cgocable.net)
2021-01-31 07:54:15 +0100Nikotiini(~ubuntu@ec2-52-213-118-142.eu-west-1.compute.amazonaws.com) (Ping timeout: 272 seconds)
2021-01-31 07:55:20 +0100forgottenone(~forgotten@176.42.24.169)
2021-01-31 07:55:25 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-01-31 07:56:59 +0100mmohammadi9812(~mmohammad@5.115.1.251) (Ping timeout: 264 seconds)
2021-01-31 07:57:46 +0100samik(67578edb@103.87.142.219) (Quit: Ping timeout (120 seconds))
2021-01-31 07:58:41 +0100mmohammadi9812(~mmohammad@188.210.122.58)
2021-01-31 07:59:54 +0100Nikotiini(~ubuntu@ec2-52-213-118-142.eu-west-1.compute.amazonaws.com)
2021-01-31 08:03:40 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
2021-01-31 08:03:58 +0100samik(67578edb@103.87.142.219)
2021-01-31 08:04:25 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds)
2021-01-31 08:10:36 +0100mannin(mannin@90.221.74.173) (Ping timeout: 240 seconds)
2021-01-31 08:10:47 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2021-01-31 08:11:08 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 08:15:25 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-01-31 08:17:33 +0100 <samik>  while installing regex-posix with stack I'm getting build error saying there is no file regex.h, this is on Windows. How can I resolve this?
2021-01-31 08:19:22 +0100heatsink(~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe) (Remote host closed the connection)
2021-01-31 08:19:26 +0100Tario(~Tario@200.119.184.142)
2021-01-31 08:23:02 +0100forgottenone(~forgotten@176.42.24.169) (Read error: Connection reset by peer)
2021-01-31 08:23:18 +0100forgottenone(~forgotten@176.42.24.169)
2021-01-31 08:24:16 +0100 <samik> found the solution here https://github.com/haskell-hvr/regex-posix/issues/4#issuecomment-610804288 Had to install that package from mingw
2021-01-31 08:24:46 +0100 <samik> msys*
2021-01-31 08:26:02 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 08:30:54 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds)
2021-01-31 08:31:33 +0100Lowl3v3l(~Lowl3v3l@dslb-002-203-233-121.002.203.pools.vodafone-ip.de)
2021-01-31 08:32:35 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-01-31 08:34:23 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 08:38:22 +0100Tario(~Tario@200.119.184.142) (Ping timeout: 264 seconds)
2021-01-31 08:41:39 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-01-31 08:42:58 +0100mananamenos_(~mananamen@84.122.202.215.dyn.user.ono.com)
2021-01-31 08:43:50 +0100Varis(~Tadas@unaffiliated/varis)
2021-01-31 08:49:12 +0100fosky(~fosky@124.181.1.167)
2021-01-31 08:49:33 +0100HarveyPwca(~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net) (Quit: Leaving)
2021-01-31 08:54:16 +0100mananamenos_(~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 240 seconds)
2021-01-31 08:56:44 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net)
2021-01-31 09:04:22 +0100acidjnk_new(~acidjnk@p200300d0c704e77020ba0d2c1a7fed29.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-01-31 09:05:51 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-01-31 09:08:27 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 09:09:49 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection)
2021-01-31 09:10:45 +0100Rudd0(~Rudd0@185.189.115.108) (Read error: Connection reset by peer)
2021-01-31 09:11:26 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69)
2021-01-31 09:12:57 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-01-31 09:14:22 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Remote host closed the connection)
2021-01-31 09:14:34 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 09:16:51 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection)
2021-01-31 09:17:31 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 09:18:58 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Quit: Lost terminal)
2021-01-31 09:19:52 +0100heatsink(~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe)
2021-01-31 09:20:42 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
2021-01-31 09:21:25 +0100jchia[m](jchiamatri@gateway/shell/matrix.org/x-bjjkanbayhvdzkzv)
2021-01-31 09:21:35 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 09:21:52 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 260 seconds)
2021-01-31 09:23:13 +0100styledash(~styledash@157.230.173.136) (Quit: Ping timeout (120 seconds))
2021-01-31 09:23:37 +0100styledash(~styledash@157.230.173.136)
2021-01-31 09:24:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:9f3:d193:94ea:a2fe) (Ping timeout: 264 seconds)
2021-01-31 09:28:13 +0100mananamenos_(~mananamen@84.122.202.215.dyn.user.ono.com)
2021-01-31 09:30:33 +0100acidjnk_new(~acidjnk@p200300d0c704e77020ba0d2c1a7fed29.dip0.t-ipconnect.de)
2021-01-31 09:32:25 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 09:35:48 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de)
2021-01-31 09:36:33 +0100LKoen(~LKoen@107.173.9.109.rev.sfr.net)
2021-01-31 09:43:57 +0100jedws(~jedws@121.209.199.128) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-01-31 09:45:12 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it)
2021-01-31 09:47:24 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-01-31 09:47:26 +0100samik(67578edb@103.87.142.219) ()
2021-01-31 09:48:54 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 09:51:08 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 09:52:33 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection)
2021-01-31 09:53:35 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 09:54:02 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-01-31 09:56:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-31 09:58:02 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 260 seconds)
2021-01-31 10:01:41 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 10:02:58 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection)
2021-01-31 10:04:00 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 10:06:43 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 10:08:32 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 260 seconds)
2021-01-31 10:09:52 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-01-31 10:11:05 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 10:12:24 +0100Maxdamantus(~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 265 seconds)
2021-01-31 10:12:52 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 10:13:47 +0100Maxdamantus(~Maxdamant@unaffiliated/maxdamantus)
2021-01-31 10:14:20 +0100jonatanb(~jonatanb@83.24.13.14.ipv4.supernova.orange.pl)
2021-01-31 10:16:58 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-01-31 10:18:25 +0100drbean(~drbean@TC210-63-209-161.static.apol.com.tw) (Ping timeout: 240 seconds)
2021-01-31 10:18:47 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 10:21:03 +0100heatsink(~heatsink@2600:1700:bef1:5e10:5c7e:49cf:6f49:c8ad)
2021-01-31 10:21:12 +0100jonatanb(~jonatanb@83.24.13.14.ipv4.supernova.orange.pl) (Remote host closed the connection)
2021-01-31 10:23:04 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 10:23:26 +0100kini(~kini@unaffiliated/kini) (Ping timeout: 264 seconds)
2021-01-31 10:23:26 +0100fosky(~fosky@124.181.1.167) (Quit: Leaving)
2021-01-31 10:23:36 +0100krkini(~kini@unaffiliated/kini)
2021-01-31 10:24:17 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 10:24:50 +0100jamm_(~jamm@unaffiliated/jamm)
2021-01-31 10:25:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:5c7e:49cf:6f49:c8ad) (Ping timeout: 264 seconds)
2021-01-31 10:28:11 +0100xelxebar_(~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
2021-01-31 10:28:31 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2021-01-31 10:28:52 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-01-31 10:29:25 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 272 seconds)
2021-01-31 10:31:44 +0100toorevitimirp(~tooreviti@117.182.181.145) (Remote host closed the connection)
2021-01-31 10:32:32 +0100Ramoun(c53b5c74@197.59.92.116)
2021-01-31 10:32:50 +0100Ramoun(c53b5c74@197.59.92.116) (Client Quit)
2021-01-31 10:33:11 +0100Ramoun(c53b5c74@197.59.92.116)
2021-01-31 10:34:53 +0100toorevitimirp(~tooreviti@117.182.181.145)
2021-01-31 10:35:15 +0100jonatanb(~jonatanb@83.24.13.14.ipv4.supernova.orange.pl)
2021-01-31 10:36:02 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 10:37:50 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection)
2021-01-31 10:38:29 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69)
2021-01-31 10:41:16 +0100timCF(~i.tkachuk@m91-129-101-103.cust.tele2.ee) (Ping timeout: 240 seconds)
2021-01-31 10:41:44 +0100Ramoun(c53b5c74@197.59.92.116) (Quit: Connection closed)
2021-01-31 10:42:57 +0100acidjnk_new(~acidjnk@p200300d0c704e77020ba0d2c1a7fed29.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-01-31 10:43:14 +0100nineonine(~nineonine@2604:3d08:7785:9600:1d25:9d82:8276:bb69) (Ping timeout: 264 seconds)
2021-01-31 10:44:30 +0100fosky(~fosky@124.181.1.167)
2021-01-31 10:44:34 +0100fosky(~fosky@124.181.1.167) (Read error: Connection reset by peer)
2021-01-31 10:45:30 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 10:47:47 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-01-31 10:48:06 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-01-31 10:49:35 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl)
2021-01-31 10:50:07 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2021-01-31 10:52:27 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-01-31 10:54:40 +0100fendor_(~fendor@178.115.131.1.wireless.dyn.drei.com)
2021-01-31 10:56:39 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-01-31 10:56:39 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-01-31 10:57:17 +0100fendor(~fendor@178.115.130.239.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
2021-01-31 10:57:24 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-01-31 10:58:14 +0100noop_noob(b816797e@184.22.121.126)
2021-01-31 11:00:34 +0100uehhtnefa^(uehhtnefa@ip98-184-89-2.mc.at.cox.net) ()
2021-01-31 11:01:43 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-01-31 11:01:50 +0100jonatanb(~jonatanb@83.24.13.14.ipv4.supernova.orange.pl) (Remote host closed the connection)
2021-01-31 11:01:58 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 11:02:00 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-01-31 11:05:15 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection)
2021-01-31 11:05:55 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 11:08:58 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
2021-01-31 11:09:58 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-aeybxknatgemlfic) (Quit: Connection closed for inactivity)
2021-01-31 11:10:22 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 260 seconds)
2021-01-31 11:11:58 +0100Rudd0(~Rudd0@185.189.115.108)
2021-01-31 11:16:21 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-01-31 11:21:46 +0100heatsink(~heatsink@2600:1700:bef1:5e10:5c7e:49cf:6f49:c8ad)
2021-01-31 11:23:32 +0100Varis(~Tadas@unaffiliated/varis)
2021-01-31 11:25:50 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Ping timeout: 264 seconds)
2021-01-31 11:26:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:5c7e:49cf:6f49:c8ad) (Ping timeout: 264 seconds)
2021-01-31 11:26:45 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
2021-01-31 11:26:49 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 11:27:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 11:27:23 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-01-31 11:27:30 +0100miguel_clean(~Miguel@89-72-187-203.dynamic.chello.pl)
2021-01-31 11:31:46 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-01-31 11:32:21 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-01-31 11:32:36 +0100bitmagie(~Thunderbi@200116b8065856001599e2e0407cbc41.dip.versatel-1u1.de)
2021-01-31 11:32:42 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-01-31 11:32:53 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-01-31 11:33:35 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-01-31 11:35:47 +0100gzj(~gzj@unaffiliated/gzj)
2021-01-31 11:36:56 +0100hexagenic(~mattias@2001:2002:51e0:74c9:5c3d:79a1:6bfe:fd56)
2021-01-31 11:37:10 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-01-31 11:37:23 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 11:37:28 +0100toorevitimirp(~tooreviti@117.182.181.145) (Remote host closed the connection)
2021-01-31 11:38:00 +0100jonatanb(~jonatanb@83.24.13.14.ipv4.supernova.orange.pl)
2021-01-31 11:38:07 +0100tsrt^(tsrt@ip98-184-89-2.mc.at.cox.net)
2021-01-31 11:38:43 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection)
2021-01-31 11:39:45 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 11:44:26 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 264 seconds)
2021-01-31 11:44:35 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 11:46:10 +0100revtintin(~revtintin@42.61.242.247)
2021-01-31 11:46:12 +0100 <merijn> "fixed point function" or "fixpoint function" or some other spelling entirely?
2021-01-31 11:46:57 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-01-31 11:47:48 +0100coot(~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-01-31 11:49:25 +0100raym(~ray@45.64.220.55) (Ping timeout: 240 seconds)
2021-01-31 11:49:42 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-01-31 11:51:25 +0100raym(~ray@45.64.220.55)
2021-01-31 11:52:25 +0100darjeeling_(~darjeelin@115.215.41.65) (Ping timeout: 240 seconds)
2021-01-31 11:52:55 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
2021-01-31 11:54:33 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 268 seconds)
2021-01-31 11:54:49 +0100darjeeling_(~darjeelin@115.215.41.65)
2021-01-31 11:55:13 +0100jonatanb(~jonatanb@83.24.13.14.ipv4.supernova.orange.pl) (Remote host closed the connection)
2021-01-31 11:57:16 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-01-31 11:57:41 +0100 <wz1000> any recommendations for a very lightweight extensible sum library?
2021-01-31 11:58:12 +0100 <merijn> "no"? :p
2021-01-31 11:58:43 +0100 <merijn> I've only seen heavyweight ones :p
2021-01-31 11:59:25 +0100 <maerwald> wz1000: https://hackage.haskell.org/package/haskus-utils-variant-3.0/docs/Haskus-Utils-Variant.html
2021-01-31 11:59:33 +0100 <maerwald> and merijn is correct
2021-01-31 12:01:32 +0100bashke(bashke@90.221.74.173)
2021-01-31 12:02:25 +0100 <merijn> My main take away from "extensible sum" libraries: "If it ever comes to that, just rewrite your shit in Idris or something" :p
2021-01-31 12:03:36 +0100 <wz1000> I just want anonymous sums without `Left (Right (Left (Left foo)))`
2021-01-31 12:04:02 +0100 <maerwald> wz1000: use typescript :p
2021-01-31 12:04:36 +0100 <merijn> wz1000: You're in a better position to fix that in GHC than most, I think ;)
2021-01-31 12:04:36 +0100 <wz1000> I need it for haskell bindings to a typescript api...
2021-01-31 12:08:14 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-01-31 12:08:30 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 12:09:19 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-01-31 12:10:39 +0100Varis(~Tadas@unaffiliated/varis)
2021-01-31 12:11:10 +0100Xnuk(~xnuk@vultr.xnu.kr) (Quit: ZNC - https://znc.in)
2021-01-31 12:11:26 +0100Xnuk(~xnuk@45.76.202.58)
2021-01-31 12:11:52 +0100kritzefitz(~kritzefit@212.86.56.80)
2021-01-31 12:12:13 +0100 <sshine> is RecordDotSyntax in GHC 8.10?
2021-01-31 12:12:28 +0100 <merijn> Eh...consult the user guide? :p
2021-01-31 12:12:49 +0100 <sshine> oh, https://gitlab.haskell.org/ghc/ghc/-/issues/18599
2021-01-31 12:13:29 +0100 <sshine> merijn, thanks :)
2021-01-31 12:13:56 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2021-01-31 12:14:23 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 12:15:15 +0100 <merijn> I have learned one obvious thing for my own language design
2021-01-31 12:15:40 +0100 <merijn> I will *definitely* be making spaces around operators mandatory in any future language I design
2021-01-31 12:16:08 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection)
2021-01-31 12:16:11 +0100 <merijn> That would have avoid 90% of this nonsense >.>
2021-01-31 12:16:45 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 12:21:38 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 264 seconds)
2021-01-31 12:21:45 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 240 seconds)
2021-01-31 12:22:23 +0100noop_noob(b816797e@184.22.121.126) (Quit: Connection closed)
2021-01-31 12:22:30 +0100heatsink(~heatsink@2600:1700:bef1:5e10:5c7e:49cf:6f49:c8ad)
2021-01-31 12:24:38 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 12:27:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:5c7e:49cf:6f49:c8ad) (Ping timeout: 264 seconds)
2021-01-31 12:29:05 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 12:39:45 +0100lotuseater(~user@2a02:908:fbd1:b0a0:d195:6d09:bec7:c1f9) (Remote host closed the connection)
2021-01-31 12:40:08 +0100 <sshine> haha
2021-01-31 12:40:49 +0100 <merijn> sshine: That's not even a joke, the use of . is already a clusterfuck and RecordDotSyntax just makes it even worse :\
2021-01-31 12:41:08 +0100 <merijn> > map (Just.even) [1..5]
2021-01-31 12:41:09 +0100 <lambdabot> error:
2021-01-31 12:41:09 +0100 <lambdabot> Not in scope: ‘Just.even’
2021-01-31 12:41:09 +0100 <lambdabot> No module named ‘Just’ is imported.
2021-01-31 12:41:11 +0100LKoen(~LKoen@107.173.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-01-31 12:41:14 +0100 <merijn> > map (Just .even) [1..5]
2021-01-31 12:41:16 +0100 <lambdabot> [Just False,Just True,Just False,Just True,Just False]
2021-01-31 12:41:21 +0100 <sshine> merijn, a friend asked me what the status was, and revisiting this, I just had to think "wait, this is probably not that trivial to parse."
2021-01-31 12:41:22 +0100 <merijn> > map (Just. even) [1..5]
2021-01-31 12:41:24 +0100 <lambdabot> [Just False,Just True,Just False,Just True,Just False]
2021-01-31 12:41:32 +0100 <merijn> madness
2021-01-31 12:42:03 +0100 <maerwald> not too bad
2021-01-31 12:42:05 +0100 <sshine> yeah, mandatory spacing would solve some things here :)
2021-01-31 12:42:08 +0100 <merijn> > map (not.even) [1..5] -- but this somehow *is* correct
2021-01-31 12:42:09 +0100 <lambdabot> [True,False,True,False,True]
2021-01-31 12:42:25 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-01-31 12:42:39 +0100 <sshine> I hadn't thought about that.
2021-01-31 12:42:51 +0100 <merijn> maerwald: Yeah, but if we'd just mandated spaces around every operator the entire ambiguity between qualified names and . wouldn't exist
2021-01-31 12:42:54 +0100 <maerwald> if you can come up with an example where removing/adding whitespaces still compiles, but changes semantics of the program... that would be more convincing
2021-01-31 12:42:58 +0100 <sshine> also, I don't pretend to want to solve this type of problem for real-world scenarios like Haskelll
2021-01-31 12:43:12 +0100 <maerwald> and I'm sure that's possible
2021-01-31 12:43:19 +0100 <merijn> maerwald: The problem is that you now need like 6 special case rules to understand the meaning of .
2021-01-31 12:43:28 +0100 <sshine> merijn, yeah but you also have to think of "how many programs do we break by changing this?"
2021-01-31 12:43:37 +0100 <merijn> Which is either "field accessor", "qualified name" or the operator
2021-01-31 12:43:37 +0100 <sshine> merijn, and "how much do we care about that?"
2021-01-31 12:43:45 +0100 <merijn> depending on the exact spacing
2021-01-31 12:44:05 +0100 <maerwald> merijn: i use fmap instead of .
2021-01-31 12:44:07 +0100 <maerwald> xD
2021-01-31 12:44:19 +0100 <merijn> For a new language I don't think "mandatory space around operators" has almost no negative impact
2021-01-31 12:44:28 +0100 <merijn> And this whole category of ambiguity just disappears
2021-01-31 12:44:47 +0100 <merijn> I don't think Haskell can ever change this, though, sadly
2021-01-31 12:45:01 +0100 <sshine> merijn, maybe "enable RecordDotSyntax mandates more spacing" isn't bad either?
2021-01-31 12:45:18 +0100 <merijn> sshine: That makes the parser even more of a clusterfuck, though
2021-01-31 12:45:20 +0100 <sshine> merijn, it just post-pones the problem when RecordDotSyntax should be enabled by default.
2021-01-31 12:45:26 +0100 <sshine> merijn, ah yeah.
2021-01-31 12:45:29 +0100 <sshine> legacy never dies.
2021-01-31 12:45:47 +0100 <merijn> tbh, I think RecordDotSyntax and it's ilk are a bad idea
2021-01-31 12:46:18 +0100 <sshine> I think we should just accept that software breaks and change the syntax every 6 months.
2021-01-31 12:46:36 +0100lotuseater(~user@ip-176-198-181-127.hsi05.unitymediagroup.de)
2021-01-31 12:46:40 +0100 <sshine> "Is this Haskell 2021-06?"
2021-01-31 12:46:42 +0100 <maerwald> yeah... it'll make haskell vanish from industry
2021-01-31 12:46:59 +0100 <merijn> tbh, I have infinitely more faith in the usefulness of -XNoFieldSelectors
2021-01-31 12:47:30 +0100 <merijn> All these tiny syntactical extensions that basically no one is using just make *everything* more complicated and I'm not convinced by the (supposed) value
2021-01-31 12:47:33 +0100 <sshine> oh... then you can have overlapping field names?
2021-01-31 12:48:06 +0100 <sshine> I think if you don't consider the costs, having dot syntax for accessing records is nice and understandable.
2021-01-31 12:48:07 +0100 <merijn> sshine: You can already do that, by simply, not defining them in the same module
2021-01-31 12:48:18 +0100 <maerwald> I think it should be possible to support multiple syntax flavors and then have some GHC extension require a certain flavor
2021-01-31 12:48:26 +0100 <merijn> sshine: The whole problem is people inventing these syntactical extensions without considering the cost
2021-01-31 12:48:28 +0100 <sshine> merijn, that sounds convenient.
2021-01-31 12:48:39 +0100 <merijn> sshine: tbh, I think NoFieldSelectors has a *much* more useful usecase
2021-01-31 12:48:49 +0100 <wz1000> I wonder if the record dot syntax implementation still lets you write unsafeCoerce like regular record updates
2021-01-31 12:48:56 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 12:48:56 +0100 <merijn> sshine: Because it means you can finally use record syntax for sumtypes
2021-01-31 12:49:04 +0100 <sshine> maerwald, I think there is a future in Unison's approach to syntax. we're just not there yet at all.
2021-01-31 12:49:32 +0100 <merijn> sshine: I mean, you already can, but you get partial field accessors that will crash when used on the wrong constructor
2021-01-31 12:50:28 +0100 <merijn> sshine: With NoFieldSelectors it doesn't generate any selectors at all, you must use record pattern matching, NamedFieldPuns, and/or RecordWildCards for matching or constructing records
2021-01-31 12:50:36 +0100 <sshine> merijn, I buy it. so, you can always generate them *when needed*. kinda like Eq, Ord, Show.
2021-01-31 12:50:41 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection)
2021-01-31 12:51:13 +0100 <merijn> sshine: Something like this: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/model-src/ModelOptions.hs#L63-L97
2021-01-31 12:51:14 +0100 <sshine> merijn, I pretty often use RecordWildCards anyway.
2021-01-31 12:51:19 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 12:51:38 +0100 <merijn> sshine: Is currently unsafe as hell, but dropping the record selectors would suck
2021-01-31 12:51:50 +0100 <sshine> merijn, right... not having partial record getters is a pretty good argument in itself. :)
2021-01-31 12:52:15 +0100 <merijn> sshine: Plus, that frees up the selector names for lenses/prisms
2021-01-31 12:52:15 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi)
2021-01-31 12:52:31 +0100 <merijn> (which was one of the other reasons for it)
2021-01-31 12:52:31 +0100 <sshine> merijn, I guess generating record getters that aren't partial is another strategy that NoFieldSelectors would also open up for?
2021-01-31 12:52:56 +0100 <merijn> All in all that seems like the much more sensible approach to me
2021-01-31 12:53:15 +0100 <merijn> Doesn't require syntactical changes, gets you quite a lot of utility/flexibility
2021-01-31 12:53:31 +0100 <sshine> actually removes stuff
2021-01-31 12:53:45 +0100 <maerwald> and then total record selectors for open sum types
2021-01-31 12:53:47 +0100 <merijn> I think there's like 12 extensions for records or something by now and I don't know *any* of them, because nobody uses them
2021-01-31 12:53:53 +0100sshinefeels more productive when he deletes things at work. :p
2021-01-31 12:54:22 +0100 <merijn> But they all complicate the parser, require people to keep track of if/when they're enabled and lookup whatever it was they did
2021-01-31 12:54:31 +0100 <sshine> merijn, you don't use RecordWildCards?
2021-01-31 12:54:56 +0100 <merijn> sshine: I use NamedFieldPuns/RecordWildCards, but I try and avoid the latter if possible
2021-01-31 12:55:10 +0100 <sshine> why?
2021-01-31 12:55:23 +0100 <merijn> sshine: But we got OverloadedLabels, DuplicateRecordFields, and whatever
2021-01-31 12:55:34 +0100 <sshine> yeah I honestly don't even know what they do.
2021-01-31 12:55:37 +0100 <merijn> sshine: Because recordwildcards requires you to remember wtf you brought in scope
2021-01-31 12:55:45 +0100 <sshine> well, I understand DuplicateRecordFields.
2021-01-31 12:55:50 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 264 seconds)
2021-01-31 12:55:53 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 12:56:10 +0100 <sshine> it requires you to go and look at the data definition, yeah.
2021-01-31 12:56:12 +0100 <merijn> sshine: And everyone on reddit is always like "yeah! this is amazing"
2021-01-31 12:56:23 +0100 <sshine> merijn, that is a good enough reason to dislike it!
2021-01-31 12:56:38 +0100 <merijn> But I wonder how many of those people circlejerking about record extension number 15 are actually writing Haskell codebases of non-trivial size
2021-01-31 12:57:11 +0100 <sshine> I try to do the opposite of what Reddit says. otherwise I'd be neck-deep in GameStop shares.
2021-01-31 12:57:21 +0100 <maerwald> :D
2021-01-31 12:57:22 +0100 <merijn> I'm using some nested record (only 2-3 levels of nesting, though) in my code without lenses and in terms of *actual* pain it's causing me is about...2-3 out of 10?
2021-01-31 12:57:28 +0100 <merijn> Like, sure, it's annoying
2021-01-31 12:57:49 +0100 <merijn> But man, is it nowhere *near* the level of shit I have to deal with in C++/Python
2021-01-31 12:58:08 +0100 <merijn> Maybe it peaks to 4 sometimes
2021-01-31 12:59:49 +0100 <sshine> merijn, I don't ever have a data model that makes me feel the need to use lenses just for accessing records. but I can't claim that having some stupid, real-world data model doesn't eventually necessitate it, because I haven't tried it.
2021-01-31 13:00:08 +0100 <maerwald> it doesn't
2021-01-31 13:00:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 13:00:18 +0100 <maerwald> it just makes it more convenient... sometimes
2021-01-31 13:00:23 +0100 <merijn> Like, this https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/TrainConfig.hs#L52-L83 is ugly as shit, sure. But you know what, aside from writing it the first time and being an eyesore it's actually pretty maintainabl
2021-01-31 13:00:39 +0100 <sshine> I can only say that if I ever have to deal with this huge 50-100 different data type model in Haskell, as I've experienced working for companies in other languages, I'd still think that it'd be infinitely better just using custom helper getters/setters. :)
2021-01-31 13:00:58 +0100 <merijn> I think a lot of the extension circlejerking is the same bad habit you see in many dynamic languages
2021-01-31 13:01:05 +0100 <merijn> laziness over predictability
2021-01-31 13:01:21 +0100 <merijn> "I wanna do this automagically, writing only 1 single function that magically does what I want"
2021-01-31 13:01:22 +0100 <maerwald> sshine: if you have a typed API with a bazillion data types (common for large servant APIs)... then you want autogenerated accessors
2021-01-31 13:01:27 +0100 <merijn> You see the same in packaging, etc.
2021-01-31 13:01:37 +0100 <sshine> maerwald, I'm sure I do. :)
2021-01-31 13:01:54 +0100 <merijn> Just do it explicitly and directly and if the pattern occurs so often to be annoying you can always abstract it out
2021-01-31 13:02:00 +0100 <sshine> maerwald, when that happens I can join the Reddit circlejerk session about what GHC extensions will provide the best user experience. :-D
2021-01-31 13:02:59 +0100 <maerwald> right and brag about how much investing time in esoteric extensions has boosted programmer ego.. err, i mean boosted productivity
2021-01-31 13:03:19 +0100 <merijn> There's a bunch of tiny syntax extensions that should just be auto-includes in the next report, I'm not against those (NumDecimals, HexFloats, BangPatterns, TupleSections, for example)
2021-01-31 13:03:25 +0100 <sshine> RecordWildCards certainly boosts my ego. I feel so smart when I use it.
2021-01-31 13:03:31 +0100 <sshine> s/smart/lazy/
2021-01-31 13:03:57 +0100 <maerwald> I use it too and I think it's quite well-defined
2021-01-31 13:03:58 +0100 <sshine> I think if there's any downside to this, it is some cost over time I can't correctly predict.
2021-01-31 13:06:23 +0100 <sshine> question: if I have a data type, data Foo { bar :: Int, baz :: Bool }, and I create it with, Foo 5 True, then if I extend the type, I'll get a type error because of Foo's arity. but if I do, Foo { bar = 5, baz = True }, and I extend the type, it'll just assume I want the new field undefined, right? I don't like this. Foo 5 True is obscure, and Foo { bar = 5, baz = True } is explicit but unsafe. what am I
2021-01-31 13:06:28 +0100 <merijn> sshine: I mean, this is really not so bad: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/Query/Train.hs#L42-L58
2021-01-31 13:06:29 +0100 <sshine> missing?
2021-01-31 13:06:46 +0100 <maerwald> but although I appreciate it I don't think it should be part of the language
2021-01-31 13:06:57 +0100 <merijn> sshine: I believe that's a warning/error by default in -Wall ?
2021-01-31 13:07:07 +0100 <merijn> maerwald: NamedFieldPuns should be, though
2021-01-31 13:07:26 +0100 <sshine> merijn, oh, okay. good. then I just historically forgot to enable -Wall by default.
2021-01-31 13:07:27 +0100fendor(~fendor@178.115.131.1.wireless.dyn.drei.com)
2021-01-31 13:08:02 +0100 <merijn> sshine: https://downloads.haskell.org/ghc/latest/docs/html/users_guide/using-warnings.html#ghc-flag--Wmiss…
2021-01-31 13:08:17 +0100 <sshine> merijn, thx
2021-01-31 13:08:37 +0100 <merijn> -Werror=missing-fields :p
2021-01-31 13:11:06 +0100jonatanb(~jonatanb@83.24.13.14.ipv4.supernova.orange.pl)
2021-01-31 13:11:13 +0100jonatanb(~jonatanb@83.24.13.14.ipv4.supernova.orange.pl) (Remote host closed the connection)
2021-01-31 13:11:38 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 13:11:41 +0100 <sshine> right :) I think I've enabled that in my later projects, but I hadn't thought as far as it'd solve this particular problem. :-D
2021-01-31 13:16:19 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2021-01-31 13:20:28 +0100Jamalaka(~Jamalaka@185.163.110.109)
2021-01-31 13:22:46 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 13:23:47 +0100drbean(~drbean@TC210-63-209-66.static.apol.com.tw)
2021-01-31 13:24:10 +0100gzj(~gzj@unaffiliated/gzj)
2021-01-31 13:24:31 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection)
2021-01-31 13:25:09 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 13:25:26 +0100Jamalaka(~Jamalaka@185.163.110.109) (Remote host closed the connection)
2021-01-31 13:27:45 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 13:28:18 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-01-31 13:28:51 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-01-31 13:30:02 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 264 seconds)
2021-01-31 13:32:46 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 13:33:20 +0100cfricke(~cfricke@unaffiliated/cfricke)
2021-01-31 13:34:07 +0100jamm_(~jamm@unaffiliated/jamm)
2021-01-31 13:34:30 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection)
2021-01-31 13:35:29 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 13:35:58 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-01-31 13:36:03 +0100aveltras(uid364989@gateway/web/irccloud.com/x-lhtbuspbkzjkrfxv)
2021-01-31 13:39:02 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2021-01-31 13:39:02 +0100ADG1089__(~aditya@223.236.190.35)
2021-01-31 13:40:14 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 264 seconds)
2021-01-31 13:44:59 +0100__monty__(~toonn@unaffiliated/toonn)
2021-01-31 13:51:31 +0100jespada(~jespada@90.254.242.138) (Read error: Connection reset by peer)
2021-01-31 13:52:11 +0100jespada(~jespada@90.254.242.138)
2021-01-31 13:53:28 +0100bitmagie(~Thunderbi@200116b8065856001599e2e0407cbc41.dip.versatel-1u1.de) (Quit: bitmagie)
2021-01-31 13:55:12 +0100revtintin(~revtintin@42.61.242.247) (Quit: WeeChat 1.9.1)
2021-01-31 13:58:08 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-01-31 13:58:29 +0100gzj(~gzj@unaffiliated/gzj)
2021-01-31 14:03:24 +0100hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-01-31 14:04:18 +0100davr0s(~davrs@host86-185-99-39.range86-185.btcentralplus.com)
2021-01-31 14:04:23 +0100davr0s(~davrs@host86-185-99-39.range86-185.btcentralplus.com) (Remote host closed the connection)
2021-01-31 14:05:54 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-01-31 14:07:34 +0100sayola(~vekto@dslb-002-201-085-014.002.201.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2021-01-31 14:08:22 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 264 seconds)
2021-01-31 14:11:43 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 14:13:03 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0)
2021-01-31 14:13:36 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Remote host closed the connection)
2021-01-31 14:14:16 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc)
2021-01-31 14:18:41 +0100nineonine(~nineonine@2604:3d08:7785:9600:1f8:df50:2c38:89fc) (Ping timeout: 258 seconds)
2021-01-31 14:19:34 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-01-31 14:21:02 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-01-31 14:23:11 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-01-31 14:23:22 +0100darjeeling_(~darjeelin@115.215.41.65) (Ping timeout: 246 seconds)
2021-01-31 14:24:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32)
2021-01-31 14:24:12 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Client Quit)
2021-01-31 14:28:27 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-31 14:28:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32) (Ping timeout: 264 seconds)
2021-01-31 14:31:58 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 14:35:20 +0100toorevitimirp(~tooreviti@117.182.181.145)
2021-01-31 14:36:02 +0100cfricke(~cfricke@unaffiliated/cfricke) (Ping timeout: 264 seconds)
2021-01-31 14:36:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 14:37:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-01-31 14:38:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 14:38:42 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-01-31 14:38:57 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-01-31 14:44:52 +0100darjeeling_(~darjeelin@115.215.41.65)
2021-01-31 14:45:44 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 14:46:10 +0100mmohammadi9812(~mmohammad@188.210.122.58) (Ping timeout: 264 seconds)
2021-01-31 14:46:56 +0100mmohammadi9812(~mmohammad@2.178.164.60)
2021-01-31 14:47:32 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection)
2021-01-31 14:49:07 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-01-31 14:49:58 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 14:52:58 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-01-31 14:53:21 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 14:54:05 +0100drbean(~drbean@TC210-63-209-66.static.apol.com.tw) (Ping timeout: 240 seconds)
2021-01-31 14:56:25 +0100mirrorbird_(~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676)
2021-01-31 14:56:37 +0100mirrorbird(~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676) (Read error: Connection reset by peer)
2021-01-31 14:57:58 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2021-01-31 14:58:17 +0100hiroaki(~hiroaki@ip4d167562.dynamic.kabel-deutschland.de)
2021-01-31 14:59:28 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 15:00:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-01-31 15:01:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 15:01:57 +0100cfricke(~cfricke@unaffiliated/cfricke)
2021-01-31 15:02:08 +0100mirrorbird_(~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676) (Ping timeout: 265 seconds)
2021-01-31 15:04:01 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
2021-01-31 15:04:05 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-01-31 15:05:25 +0100gzj(~gzj@unaffiliated/gzj) (Ping timeout: 240 seconds)
2021-01-31 15:06:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-31 15:06:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 15:06:31 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-31 15:14:04 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 15:15:15 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-01-31 15:16:42 +0100metreo(~Thunderbi@unaffiliated/metreo)
2021-01-31 15:17:10 +0100mirrorbird_(~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676)
2021-01-31 15:18:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 15:19:01 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de)
2021-01-31 15:22:35 +0100ArConan(9de62a69@157.230.42.105)
2021-01-31 15:23:01 +0100frdg(~user@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-01-31 15:23:17 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 15:24:44 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32)
2021-01-31 15:25:08 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection)
2021-01-31 15:29:58 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32) (Ping timeout: 260 seconds)
2021-01-31 15:31:24 +0100zebrag(~inkbottle@aaubervilliers-654-1-102-193.w86-212.abo.wanadoo.fr)
2021-01-31 15:31:40 +0100 <frdg> is there a function `m1 (m2 a) -> m1 a` where m1 and m2 are monads?
2021-01-31 15:32:35 +0100 <Uniaika> frdg: two different monads, right?
2021-01-31 15:32:53 +0100sw1nn(~sw1nn@2a00:23c6:2385:3a00:2674:77a1:134b:dae9) (Ping timeout: 260 seconds)
2021-01-31 15:32:53 +0100 <frdg> yes
2021-01-31 15:34:31 +0100 <Uniaika> hmm
2021-01-31 15:34:34 +0100 <merijn> "Yes"
2021-01-31 15:34:49 +0100 <ephemient> can you lift one monad to the other?
2021-01-31 15:35:04 +0100 <merijn> Except you probably mean "a general function that works for any 2 arbitrary monads"
2021-01-31 15:35:14 +0100 <Uniaika> yeah some kind of lift + pure?
2021-01-31 15:35:17 +0100 <merijn> To which the answer is "not one that makes sense"
2021-01-31 15:35:25 +0100 <Uniaika> +1
2021-01-31 15:35:39 +0100 <frdg> ok ill try lift and pure
2021-01-31 15:36:00 +0100 <ephemient> :t (>>= lift)
2021-01-31 15:36:01 +0100 <lambdabot> (MonadTrans t, Monad m, Monad (t m)) => t m (m b) -> t m b
2021-01-31 15:36:05 +0100 <merijn> frdg: What *actual* types do you have and why do you need to collapse them like that?
2021-01-31 15:36:34 +0100 <ephemient> in this case, if m1 = t m and m2 = m, that would work
2021-01-31 15:36:43 +0100 <ephemient> otherwise, ¯\_(ツ)_/¯
2021-01-31 15:36:57 +0100krkini(~kini@unaffiliated/kini) (Remote host closed the connection)
2021-01-31 15:36:58 +0100 <ArConan> which function's type is `forall a.a->a` in preclude?
2021-01-31 15:38:16 +0100kini(~kini@unaffiliated/kini)
2021-01-31 15:38:21 +0100 <ephemient> @hoogle :: a -> a
2021-01-31 15:38:22 +0100 <lambdabot> Prelude id :: a -> a
2021-01-31 15:38:22 +0100 <lambdabot> Data.Function id :: a -> a
2021-01-31 15:38:22 +0100 <lambdabot> GHC.Base breakpoint :: a -> a
2021-01-31 15:38:42 +0100 <frdg> merijn: I have a list of parser Results
2021-01-31 15:39:07 +0100 <frdg> [Result a] I should say
2021-01-31 15:39:34 +0100darjeeling_(~darjeelin@115.215.41.65) (Ping timeout: 264 seconds)
2021-01-31 15:39:44 +0100berberman(~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2021-01-31 15:40:12 +0100berberman(~berberman@unaffiliated/berberman)
2021-01-31 15:40:20 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 15:41:16 +0100 <maerwald> frdg: supermonads
2021-01-31 15:41:29 +0100 <maerwald> frdg: https://hackage.haskell.org/package/supermonad-0.2.1.1/docs/Control-Super-Monad.html
2021-01-31 15:42:05 +0100 <maerwald> thank me later (or not at all)
2021-01-31 15:42:33 +0100 <merijn> tbh, I wager he just needs sequence or something like that
2021-01-31 15:42:40 +0100 <frdg> ill look at this
2021-01-31 15:43:03 +0100 <ArConan> @src
2021-01-31 15:43:03 +0100 <lambdabot> src <id>. Display the implementation of a standard function
2021-01-31 15:43:06 +0100 <ArConan> @src id
2021-01-31 15:43:06 +0100 <lambdabot> id x = x
2021-01-31 15:43:49 +0100charlemDick(~DickensCh@195.242.213.148)
2021-01-31 15:44:11 +0100 <ephemient> sequence would turn [Result a] into Result [a]
2021-01-31 15:44:34 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
2021-01-31 15:44:39 +0100 <ephemient> if `Result a` were a monoid, you could mconcat :: [Result a] -> Result a, but I don't know if that's the case
2021-01-31 15:44:57 +0100 <merijn> ephemient: but the question was "m1 (m2 a) -> m1 a"
2021-01-31 15:45:03 +0100 <merijn> So presumably he wants [a]
2021-01-31 15:45:04 +0100hexagenic(~mattias@2001:2002:51e0:74c9:5c3d:79a1:6bfe:fd56) (Read error: Connection reset by peer)
2021-01-31 15:45:13 +0100 <merijn> So you'd do sequence + pattern match on result
2021-01-31 15:45:13 +0100 <ephemient> oh right
2021-01-31 15:45:57 +0100sw1nn(~sw1nn@2a00:23c6:2385:3a00:bc71:9ab4:c3a5:8b4c)
2021-01-31 15:46:07 +0100hexagenic(~mattias@2001:2002:51e0:74c9:5c3d:79a1:6bfe:fd56)
2021-01-31 15:46:11 +0100 <ephemient> yeah, whatever Result is, you'd need to know more to be able to get rid of it
2021-01-31 15:49:43 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
2021-01-31 15:50:25 +0100charlemDick(~DickensCh@195.242.213.148) (Quit: leaving)
2021-01-31 15:51:40 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Read error: Connection reset by peer)
2021-01-31 15:52:27 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-31 15:54:34 +0100 <sshine> what's a good way to catch 'openFile: does not exist (No such file or directory)' and 'hGetContents: invalid argument (invalid byte sequence)' and deal with them?
2021-01-31 15:55:23 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 15:55:31 +0100 <merijn> The former is an IOException which should be in System.IO (I think)
2021-01-31 15:55:57 +0100 <merijn> The latter I'm not sure which exception it is, but it's almost certainly caused by having a broken environment
2021-01-31 15:56:14 +0100 <sshine> I'm using readFileUtf8 on a non-UTF-8 file.
2021-01-31 15:56:37 +0100 <merijn> sshine: Well, I'm not sure why you'd expect that to work?
2021-01-31 15:56:53 +0100 <sshine> merijn, I don't expect it to work. I'm asking how I handle the exception in a good way. do you use safe-exceptions?
2021-01-31 15:57:25 +0100 <maerwald> sshine: use unix package
2021-01-31 15:57:30 +0100 <maerwald> and not readFile :p
2021-01-31 15:57:54 +0100 <merijn> I don't, but you can just cathc SomeException and print the type of the exception via Data.Typeable if you can't figure out what the exception is
2021-01-31 15:58:10 +0100son0p(~son0p@181.136.122.143)
2021-01-31 15:58:13 +0100 <merijn> sshine: Note that readFileUtf8 is a *deeply* broken idea that nobody should be using
2021-01-31 15:58:24 +0100 <sshine> merijn, oh, haha. okay. :) it's not my code, but good to know.
2021-01-31 15:59:12 +0100 <maerwald> see, that's why programming basically is torture... you have to put up with other ppls madness
2021-01-31 15:59:29 +0100 <sshine> this is https://hackage.haskell.org/package/rio-0.1.20.0/docs/RIO.html#v:readFileUtf8 -- I don't know why it is madness, it doesn't say so in the haddock.
2021-01-31 15:59:35 +0100 <merijn> sshine: All exception are Typeable, you can just use typeOf on whatever is in SomeException to figure out what was thrown
2021-01-31 15:59:44 +0100 <sshine> merijn, thanks!
2021-01-31 15:59:45 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 15:59:48 +0100 <maerwald> rio, lol
2021-01-31 16:00:06 +0100 <merijn> sshine: Well, if you ever have a user whose system has non-utf8 files then code using readFileUtf8 will always crash
2021-01-31 16:00:22 +0100 <__monty__> merijn: You mean you should rely on the locale's encoding? Because equal amounts of madness lies there.
2021-01-31 16:00:31 +0100 <merijn> sshine: This is generally considered "unhelpful" in terms of UI/UX :p
2021-01-31 16:00:54 +0100 <merijn> __monty__: If you don't know for sure what the encoding is, locale is the only sensible thing you *can* do
2021-01-31 16:01:07 +0100 <maerwald> try to rely on nothing, until the very end (and... for many things, you don't actually need to know the encoding)
2021-01-31 16:01:12 +0100 <merijn> __monty__: And if you *do* know what the encoding is, you can just set it
2021-01-31 16:01:53 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 16:02:00 +0100 <__monty__> I understand and sympathise with the "Just hope everything's UTF-8" approach tbh.
2021-01-31 16:02:06 +0100 <sshine> maerwald, what is the 'unix' package equivalent of readFile? I can only find ByteString-related functions.
2021-01-31 16:02:12 +0100 <merijn> __monty__: I don't...
2021-01-31 16:02:16 +0100 <maerwald> sshine: exactly
2021-01-31 16:02:29 +0100 <sshine> so... roll my own readFileWhateverThisIs?
2021-01-31 16:02:35 +0100 <merijn> __monty__: "oh, let's just break functionality on everyone whose system is properly configured"
2021-01-31 16:02:58 +0100 <sshine> I was hoping for someone smarter than me having solved this with all the peculiarities of this obscure encoding domain :)
2021-01-31 16:03:07 +0100 <merijn> __monty__: Locale's kinda suck, sure, but they're the kinda suck that has been standard for, like, 40 years
2021-01-31 16:03:13 +0100 <merijn> sshine: haha
2021-01-31 16:03:31 +0100 <maerwald> sshine: https://hackage.haskell.org/package/hpath-directory-0.14.0/docs/System-Posix-RawFilePath-Directory…
2021-01-31 16:03:38 +0100 <merijn> sshine: The only solution is the same level of cynicism and depression as me and maerwald :p
2021-01-31 16:03:41 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection)
2021-01-31 16:03:58 +0100 <merijn> sshine: No one smarter has solved it as the problem is fundamentally unsolvable
2021-01-31 16:04:28 +0100 <merijn> You need to know the encoding of a file "out of band" to be able to decode it
2021-01-31 16:04:43 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 16:04:45 +0100 <__monty__> The solution is for people to stop being obstinate and adopt UTF-8 : )
2021-01-31 16:04:57 +0100 <sshine> merijn, ah :) I guess there is a bridge to be gapped between /usr/bin/file telling me why a file won't decode, and having readFileDerpDerp actually decode it. ;)
2021-01-31 16:05:13 +0100 <sm[m]> sshine is at least on track to catch this error and report something more useful to the user
2021-01-31 16:05:15 +0100 <merijn> __monty__: I mean, linux can't even sensibly *name* files, let alone their contents
2021-01-31 16:05:27 +0100 <merijn> sshine: file is basically just *guessing*
2021-01-31 16:05:44 +0100 <sshine> I'm actually just asking how to catch and report exceptions, not really how to solve fundamental problems of character encoding. :p
2021-01-31 16:05:45 +0100 <merijn> sshine: file is a massive pile of heuristic hacks, which "usually works"
2021-01-31 16:05:55 +0100 <sshine> merijn, hehe yes.
2021-01-31 16:05:58 +0100 <merijn> sshine: #haskell likes to get sidetracked!
2021-01-31 16:06:06 +0100sshinelikes to get sidetracked!
2021-01-31 16:06:21 +0100 <merijn> sshine: catching exceptions is easy, try or catch and done :p
2021-01-31 16:06:29 +0100 <merijn> Now you just gotta know which ones ;)
2021-01-31 16:07:19 +0100 <merijn> sshine: Hacky debugging life-hack: https://hackage.haskell.org/package/base-4.14.1.0/docs/GHC-Conc.html#v:setUncaughtExceptionHandler
2021-01-31 16:07:37 +0100 <merijn> sshine: Then set a function that uses typeOf to output the type of whatever you're not catching
2021-01-31 16:07:43 +0100 <merijn> > typeOf 'c'
2021-01-31 16:07:45 +0100 <lambdabot> Char
2021-01-31 16:07:49 +0100 <merijn> > typeOf True
2021-01-31 16:07:50 +0100 <lambdabot> Bool
2021-01-31 16:08:24 +0100 <merijn> Something like "\exc -> case exc of SomeException e -> print (typeOf e)"
2021-01-31 16:08:52 +0100 <sshine> cool!!
2021-01-31 16:09:17 +0100 <merijn> sshine: Since Typeable is a required superclass of Exception that always works :p
2021-01-31 16:09:37 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 260 seconds)
2021-01-31 16:10:27 +0100geekosaur(ae68c070@cpe-174-104-192-112.neo.res.rr.com)
2021-01-31 16:12:57 +0100frdg(~user@pool-96-252-123-136.bstnma.fios.verizon.net) ("ERC (IRC client for Emacs 27.1)")
2021-01-31 16:13:16 +0100atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 246 seconds)
2021-01-31 16:14:00 +0100conal(~conal@64.71.133.70) (Read error: Connection reset by peer)
2021-01-31 16:14:33 +0100aveltras(uid364989@gateway/web/irccloud.com/x-lhtbuspbkzjkrfxv) (Quit: Connection closed for inactivity)
2021-01-31 16:14:34 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 16:14:35 +0100vicfred(~vicfred@unaffiliated/vicfred)
2021-01-31 16:14:47 +0100urodna(~urodna@unaffiliated/urodna)
2021-01-31 16:16:14 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 16:16:25 +0100reactormonk(~reactormo@mehl.schokokeks.org) (Quit: WeeChat 2.7.1)
2021-01-31 16:18:40 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-kotwuyuzikeamtlu)
2021-01-31 16:20:24 +0100conal(~conal@64.71.133.70)
2021-01-31 16:20:54 +0100 <ephemient> sshine: I've seen `file` get confused with various CJK encodings. similarly, something can easily be legal ISO-8859-X for multiple values of X, and you can't tell without a human in the loop to say that the resulting text makes sense or not
2021-01-31 16:20:58 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-01-31 16:21:43 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Read error: Connection reset by peer)
2021-01-31 16:22:19 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-31 16:24:40 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-kjwsmgprrtjfqajz)
2021-01-31 16:26:09 +0100LKoen(~LKoen@107.173.9.109.rev.sfr.net)
2021-01-31 16:31:00 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2021-01-31 16:37:33 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 16:38:14 +0100fradet(~ubuntu@216.252.75.247) (Read error: Connection reset by peer)
2021-01-31 16:40:09 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 16:40:22 +0100mananamenos_(~mananamen@84.122.202.215.dyn.user.ono.com) (Quit: Leaving)
2021-01-31 16:40:54 +0100 <sshine> ephemient, right. I guess a cool variant of /usr/bin/file is one that says "it could be either one of these" :)
2021-01-31 16:41:45 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 16:42:00 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection)
2021-01-31 16:42:09 +0100Kaivo(~Kaivo@104-200-86-99.mc.derytele.com) (Quit: WeeChat 3.0)
2021-01-31 16:42:40 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 16:42:56 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-01-31 16:45:50 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 16:47:21 +0100Tario(~Tario@201.192.165.173)
2021-01-31 16:47:32 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 260 seconds)
2021-01-31 16:48:49 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net)
2021-01-31 16:51:23 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-01-31 16:53:25 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-01-31 16:53:29 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-01-31 16:54:04 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-01-31 16:54:55 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-31 16:55:40 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-31 16:55:50 +0100leonardys(~leonard@118.136.193.138)
2021-01-31 16:56:07 +0100Ariakenom(~Ariakenom@2001:9b1:efb:fc00:3de8:edd9:c9fe:a9b7)
2021-01-31 16:56:18 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-31 16:58:20 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-01-31 16:58:20 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2021-01-31 16:58:20 +0100neiluj(~jco@unaffiliated/neiluj)
2021-01-31 16:59:23 +0100toorevitimirp(~tooreviti@117.182.181.145) (Remote host closed the connection)
2021-01-31 17:00:11 +0100Wraul[m](wraulmatri@gateway/shell/matrix.org/x-bqjjeeyelwcdlhhc) (Quit: Idle for 30+ days)
2021-01-31 17:00:11 +0100materialfuture[m(materialfu@gateway/shell/matrix.org/x-upbooxfvqrvklyvd) (Quit: Idle for 30+ days)
2021-01-31 17:00:12 +0100son0p(~son0p@181.136.122.143) (Ping timeout: 256 seconds)
2021-01-31 17:00:25 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 240 seconds)
2021-01-31 17:02:13 +0100son0p(~son0p@181.136.122.143)
2021-01-31 17:05:15 +0100chirpsalot(~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net) (Ping timeout: 246 seconds)
2021-01-31 17:05:51 +0100Chobbes(~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net) (Ping timeout: 265 seconds)
2021-01-31 17:07:12 +0100ArConan(9de62a69@157.230.42.105) (Quit: Connection closed)
2021-01-31 17:09:59 +0100perdent(~perdent@101.175.174.67)
2021-01-31 17:10:09 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 248 seconds)
2021-01-31 17:11:32 +0100Chobbes(~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net)
2021-01-31 17:11:32 +0100chirpsalot(~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net)
2021-01-31 17:13:37 +0100berberman_(~berberman@unaffiliated/berberman)
2021-01-31 17:14:57 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2021-01-31 17:18:22 +0100berberman_(~berberman@unaffiliated/berberman) (Client Quit)
2021-01-31 17:19:04 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 17:19:10 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2021-01-31 17:19:53 +0100berberman(~berberman@unaffiliated/berberman)
2021-01-31 17:20:20 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection)
2021-01-31 17:20:50 +0100mirrorbird_(~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676) (Ping timeout: 265 seconds)
2021-01-31 17:21:19 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 17:22:31 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-31 17:23:30 +0100berberman(~berberman@unaffiliated/berberman) (Client Quit)
2021-01-31 17:23:54 +0100berberman(~berberman@unaffiliated/berberman)
2021-01-31 17:25:45 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 258 seconds)
2021-01-31 17:26:03 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32)
2021-01-31 17:28:08 +0100atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net)
2021-01-31 17:31:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32) (Ping timeout: 264 seconds)
2021-01-31 17:32:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32)
2021-01-31 17:33:05 +0100atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 240 seconds)
2021-01-31 17:33:53 +0100leonardys(~leonard@118.136.193.138) (Quit: WeeChat 3.0)
2021-01-31 17:34:45 +0100son0p(~son0p@181.136.122.143) (Ping timeout: 240 seconds)
2021-01-31 17:34:56 +0100 <ij> Does haskell have some extension that enables using _ as the argument of a lambda? (like in scala) e.g. _ { a = 1 } <-> \x -> x { a = 1 }
2021-01-31 17:35:12 +0100 <merijn> ij: No
2021-01-31 17:38:22 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-31 17:38:23 +0100 <ephemient> `set a 1` with lens, but that requires lens
2021-01-31 17:38:26 +0100 <infinisil> The closest thing would be TupleSections: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#tuple-sections
2021-01-31 17:39:11 +0100 <infinisil> ij: ^
2021-01-31 17:39:38 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection)
2021-01-31 17:39:43 +0100 <ij> using TupleSections and lenses already :)
2021-01-31 17:42:17 +0100_ashbreeze_(~mark@64.85.214.234.reverse.socket.net)
2021-01-31 17:42:37 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-01-31 17:42:53 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-01-31 17:43:09 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 272 seconds)
2021-01-31 17:43:34 +0100carlomagno(~cararell@148.87.23.9) (Remote host closed the connection)
2021-01-31 17:49:30 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2021-01-31 17:52:05 +0100DTZUZU(~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer)
2021-01-31 17:52:05 +0100DTZUZU_(~DTZUZU@207.81.119.43)
2021-01-31 17:56:05 +0100DTZUZU_(~DTZUZU@207.81.119.43) (Ping timeout: 240 seconds)
2021-01-31 17:58:03 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 17:58:55 +0100carlomagno(~cararell@148.87.23.11)
2021-01-31 17:59:48 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection)
2021-01-31 18:00:25 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 18:01:10 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving)
2021-01-31 18:02:07 +0100gzj(~gzj@unaffiliated/gzj)
2021-01-31 18:04:54 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32) (Remote host closed the connection)
2021-01-31 18:05:07 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 260 seconds)
2021-01-31 18:06:25 +0100gzj(~gzj@unaffiliated/gzj) (Ping timeout: 240 seconds)
2021-01-31 18:07:21 +0100worc3131(~quassel@2a02:c7f:dcc4:6500:217b:6c7a:eac3:3be9)
2021-01-31 18:09:43 +0100pavonia(~user@unaffiliated/siracusa)
2021-01-31 18:10:11 +0100charlemDick(~DickensCh@185.156.175.131)
2021-01-31 18:11:08 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-01-31 18:12:03 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-31 18:12:11 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2021-01-31 18:16:26 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-01-31 18:16:45 +0100LKoen(~LKoen@107.173.9.109.rev.sfr.net) (Remote host closed the connection)
2021-01-31 18:16:52 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-01-31 18:17:53 +0100zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-01-31 18:18:05 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 240 seconds)
2021-01-31 18:18:18 +0100atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net)
2021-01-31 18:20:58 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2021-01-31 18:22:26 +0100conal(~conal@45.155.40.52)
2021-01-31 18:22:46 +0100atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 246 seconds)
2021-01-31 18:22:46 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-01-31 18:23:41 +0100charlemDick(~DickensCh@185.156.175.131) (Quit: leaving)
2021-01-31 18:26:13 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 18:26:23 +0100LKoen(~LKoen@107.173.9.109.rev.sfr.net)
2021-01-31 18:27:30 +0100Yarrbeard(~Yarrbeard@2603-7081-6701-2976-d474-9e60-5ce3-9342.res6.spectrum.com)
2021-01-31 18:27:32 +0100conal(~conal@45.155.40.52) (Ping timeout: 265 seconds)
2021-01-31 18:29:04 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-31 18:29:25 +0100poscat(~poscat@114.245.115.216) (Remote host closed the connection)
2021-01-31 18:30:32 +0100worc3131(~quassel@2a02:c7f:dcc4:6500:217b:6c7a:eac3:3be9) (Ping timeout: 258 seconds)
2021-01-31 18:31:10 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2021-01-31 18:32:05 +0100Raito_Bezarius(~Raito@unaffiliated/raito-bezarius/x-8764578)
2021-01-31 18:32:37 +0100poscat1(~poscat@111.192.221.197)
2021-01-31 18:32:47 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 18:34:38 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection)
2021-01-31 18:35:18 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 18:35:24 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 256 seconds)
2021-01-31 18:35:35 +0100poscat1(~poscat@111.192.221.197) (Remote host closed the connection)
2021-01-31 18:36:20 +0100poscat(~poscat@111.192.221.197)
2021-01-31 18:38:28 +0100lassulus_(~lassulus@NixOS/user/lassulus)
2021-01-31 18:39:08 +0100atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net)
2021-01-31 18:39:55 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 260 seconds)
2021-01-31 18:41:18 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-01-31 18:41:47 +0100lassulus(~lassulus@NixOS/user/lassulus) (Ping timeout: 260 seconds)
2021-01-31 18:41:48 +0100lassulus_lassulus
2021-01-31 18:43:19 +0100sim590(~sim590@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 272 seconds)
2021-01-31 18:45:05 +0100atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 240 seconds)
2021-01-31 18:47:33 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 18:50:31 +0100ehigham(d92c1d84@host217-44-29-132.range217-44.btcentralplus.com)
2021-01-31 18:51:14 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net)
2021-01-31 18:51:49 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-01-31 18:52:08 +0100d34df00d(~d34df00d@104-14-27-213.lightspeed.austtx.sbcglobal.net)
2021-01-31 18:52:14 +0100atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net)
2021-01-31 18:53:50 +0100kuribas(~user@ptr-25vy0i6vfzb2d4iuy7c.18120a2.ip6.access.telenet.be)
2021-01-31 18:54:02 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-01-31 18:54:04 +0100zaquest(~notzaques@5.128.210.178)
2021-01-31 18:54:29 +0100 <kuribas> is there a penalty for using Storable to write low level code, vs writing it in C?
2021-01-31 18:54:38 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-01-31 18:54:50 +0100pruiz(~pruiz@2a01:4b00:8467:2300:c02f:54be:9b7:7ed3)
2021-01-31 18:55:41 +0100e2-(e2@sponsored.by.bnc4you.xyz) (Quit: Stable ZNC provider ##bnc4you)
2021-01-31 18:55:54 +0100rajivr(uid269651@gateway/web/irccloud.com/x-wkqzxzwdoldxjjgk) (Quit: Connection closed for inactivity)
2021-01-31 18:57:12 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-gxnfoztdlfcipzrw) (Quit: Connection closed for inactivity)
2021-01-31 18:57:19 +0100 <Uniaika> kuribas: I read "death penalty" as first
2021-01-31 18:57:24 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 18:57:36 +0100 <kuribas> Uniaika: I wouldn't go so extreme :)
2021-01-31 18:57:56 +0100 <maerwald> oh man, this got grim real quick... better not write low-level code at all
2021-01-31 18:58:43 +0100lassulus_(~lassulus@NixOS/user/lassulus)
2021-01-31 18:59:00 +0100 <kuribas> OTOH C is made for low level programming, and it's probably easier than in haskell...
2021-01-31 18:59:00 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection)
2021-01-31 18:59:20 +0100 <kuribas> I can just cast some struct to a binary blob, where in haskell I have to do pointer arithmetic myself...
2021-01-31 18:59:43 +0100 <kuribas> Or marshall each value to haskell, which is expensive.
2021-01-31 18:59:59 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 19:01:36 +0100lassulus(~lassulus@NixOS/user/lassulus) (Ping timeout: 240 seconds)
2021-01-31 19:01:37 +0100lassulus_lassulus
2021-01-31 19:02:41 +0100 <geekosaur> I think a lot depends on what this low level code is supposed to do
2021-01-31 19:03:09 +0100aidecoe(~aidecoe@unaffiliated/aidecoe)
2021-01-31 19:03:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-31 19:03:46 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
2021-01-31 19:03:58 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2021-01-31 19:04:50 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 264 seconds)
2021-01-31 19:04:53 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 19:05:17 +0100knupfer(~Thunderbi@200116b82c5a6500e5f8b1cf02b0ef53.dip.versatel-1u1.de)
2021-01-31 19:05:18 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32)
2021-01-31 19:05:53 +0100fiQ2(~fiQ@mirkk.ninja) (Quit: ZNC - https://znc.in)
2021-01-31 19:06:51 +0100atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 272 seconds)
2021-01-31 19:07:55 +0100fradet(~ubuntu@216.252.75.247)
2021-01-31 19:07:57 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0)
2021-01-31 19:09:34 +0100fiQ2(~fiQ@mirkk.ninja)
2021-01-31 19:09:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-31 19:10:06 +0100conal_(~conal@66.115.157.67)
2021-01-31 19:10:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:f1b8:ce88:1a44:7e32) (Ping timeout: 264 seconds)
2021-01-31 19:11:02 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 19:11:48 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 19:11:53 +0100 <orzo> before you o any low-level Storable hacks, be familiar with the Data.Primitive stuff which uses a similar-to-Storable class called Prim
2021-01-31 19:13:22 +0100 <orzo> i'm not sure why Storable wasn't used, but there's a bunch of goodies like ST monad support associated
2021-01-31 19:13:55 +0100 <geekosaur> Storable matches C representations; prim matches GHC's
2021-01-31 19:14:02 +0100 <orzo> oh
2021-01-31 19:14:22 +0100 <orzo> what type in particular shows that?
2021-01-31 19:15:03 +0100 <geekosaur> there may not be much of a difference on x86-64
2021-01-31 19:15:16 +0100 <geekosaur> but there is on some other supported platforms
2021-01-31 19:17:06 +0100 <geekosaur> I couldn't tell you offhand what would differ
2021-01-31 19:17:46 +0100 <geekosaur> also some odd corner cases, like ghc uses 64-bit Int even on i386 whereas C uses 32-bit int
2021-01-31 19:18:22 +0100 <orzo> c uses 32bit int even on x86_64
2021-01-31 19:18:24 +0100 <orzo> heh
2021-01-31 19:18:52 +0100 <sshine> https://gist.github.com/sshine/0d4d7bd8e480ad44c5ded71ad12978eb -- not sure how to show the IOException (for which the constructor is IOError). is there a trick?
2021-01-31 19:18:56 +0100 <orzo> but you mean ghc is using 64bits for its 32-bit wide ints
2021-01-31 19:18:57 +0100 <geekosaur> then that will differ also. (I thought it did but didn't recall for certain; it's been a while since I touched C)
2021-01-31 19:19:05 +0100atraii(~atraii@2601:681:8800:3a87:c800:2de4:db0b:9f0)
2021-01-31 19:19:12 +0100 <orzo> eh
2021-01-31 19:19:13 +0100cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 260 seconds)
2021-01-31 19:19:20 +0100 <orzo> Int and CInt are different types
2021-01-31 19:19:35 +0100 <geekosaur> no, I mean a specific decision was made to widen Int to 64 bits on i386 some time ago (back in 6.x)
2021-01-31 19:19:52 +0100thunderrd(~thunderrd@183.182.115.7) (Remote host closed the connection)
2021-01-31 19:19:56 +0100 <orzo> you mean maxBound will show a 64bit value?
2021-01-31 19:20:00 +0100cods(~fred@82-65-232-44.subs.proxad.net)
2021-01-31 19:20:04 +0100 <geekosaur> yeh
2021-01-31 19:20:10 +0100 <orzo> oh wow
2021-01-31 19:20:17 +0100 <orzo> i missed that
2021-01-31 19:20:36 +0100 <orzo> not 6.x, surely more recent than that
2021-01-31 19:20:45 +0100 <orzo> maybe 8.something ?
2021-01-31 19:21:06 +0100thunderrd(~thunderrd@183.182.115.7)
2021-01-31 19:21:09 +0100usr25(~usr25@unaffiliated/usr25)
2021-01-31 19:21:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-01-31 19:21:48 +0100 <d34df00d> Alright, I need to parse a big (~200 megs) XML file, which has a nice uniform structure, and convert some part of that structure into a haskell data type.
2021-01-31 19:21:58 +0100 <d34df00d> xml-conduit takes 2.5 gigs just to parse the file.
2021-01-31 19:21:58 +0100knupfer(~Thunderbi@200116b82c5a6500e5f8b1cf02b0ef53.dip.versatel-1u1.de) (Remote host closed the connection)
2021-01-31 19:22:22 +0100 <d34df00d> I haven't tried hxt yet because arrows, which I always forget, plus I've heard it's not really optimized for performance (so I'm not sure if it's even worth trying).
2021-01-31 19:22:26 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 19:22:29 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-01-31 19:22:37 +0100 <d34df00d> xeno works great, but xeno is sax, and sax kinda sucks for this task.
2021-01-31 19:22:44 +0100 <d34df00d> (or, at least, feels not haskellish)
2021-01-31 19:22:57 +0100 <d34df00d> What should I use?
2021-01-31 19:23:25 +0100 <sshine> d34df00d, I have no personal recommendation, but have you considered 'xml' or 'tagsoup'?
2021-01-31 19:24:03 +0100 <d34df00d> The file looks roughly like a huge list of <event>s, where each event is <event id="..."><param>param1</param><param>param2</param><description>Yay long string</description></event>, and I'd like to obtain a list of Event { params :: [Param], description :: String }, roughly speaking.
2021-01-31 19:24:30 +0100 <d34df00d> sshine: I've considered tagsoup, yes, but, judging from other projects, it seems to be on the slower side.
2021-01-31 19:24:37 +0100 <d34df00d> I'll take a look at xml!
2021-01-31 19:25:05 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-01-31 19:25:35 +0100 <merijn> d34df00d: xml-conduit is fairly decent for dealing with schema-less XML
2021-01-31 19:26:09 +0100 <sshine> d34df00d, I literally just typed in 'xml' into hackage and ordered by DLs! maybe xml-conduit can be tweaked to use less RAM?
2021-01-31 19:26:45 +0100 <merijn> xml-conduit has a streaming mode
2021-01-31 19:26:54 +0100 <orzo> unless WORD_SIZE_IN_BITS is defined to be not 32 on i386, ghc-9.0 branch current source shows Bounded instance for Int to be 32-bit bounds
2021-01-31 19:27:04 +0100 <orzo> you're memory is wrong, geekosaur
2021-01-31 19:27:24 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-31 19:27:32 +0100 <geekosaur> noted
2021-01-31 19:28:06 +0100 <d34df00d> merijn: does that streaming mode look like your average SAX, or is it something else? I've seen sinkDoc whose type looks promising, but I never really used conduits so I don't know what to expect.
2021-01-31 19:28:08 +0100 <orzo> i think it was more a representation thing somewhere
2021-01-31 19:28:25 +0100 <merijn> d34df00d: I have no idea what SAX is, tbh
2021-01-31 19:28:36 +0100 <orzo> on x86-64, all the number types, like Word16, are actually 64 bits
2021-01-31 19:28:43 +0100conal_(~conal@66.115.157.67) (Ping timeout: 265 seconds)
2021-01-31 19:28:49 +0100 <orzo> representation-wise
2021-01-31 19:29:08 +0100 <d34df00d> merijn: basically a bunch of callbacks for each XML event during streaming parsing (like "tag `tagname` opens", "attribute `attr` appears", "tag `tagname` closes", etc).
2021-01-31 19:29:41 +0100 <merijn> d34df00d: It's been over 2 years since I had a used for it, so no idea :p
2021-01-31 19:30:04 +0100 <d34df00d> That's what I get with xeno (which is super fast), but that's not too handy to assemble my data structure from all these events.
2021-01-31 19:30:34 +0100 <merijn> How large is this XML?
2021-01-31 19:31:04 +0100 <d34df00d> About 200 megabytes.
2021-01-31 19:31:12 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de)
2021-01-31 19:31:22 +0100 <merijn> Is that worth bothering with complicated things?
2021-01-31 19:31:41 +0100 <merijn> I mean, that sounds like "fuck it, just read it all into memory" sizes
2021-01-31 19:31:51 +0100 <maerwald> if that's a backend api yeah?
2021-01-31 19:32:00 +0100 <d34df00d> xml-conduit's parseLBS_ takes about 2.5 gigabytes of RAM just to parse that into its Document, and takes more than 30 seconds to do that (xeno does that I think in a couple of seconds).
2021-01-31 19:32:23 +0100 <merijn> d34df00d: What's the problem with xeno?
2021-01-31 19:32:27 +0100 <d34df00d> It's sax.
2021-01-31 19:32:39 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 19:33:05 +0100merijnstill has no idea what SAX is
2021-01-31 19:33:16 +0100 <d34df00d> https://hackage.haskell.org/package/xeno-0.4.2/docs/Xeno-SAX.html
2021-01-31 19:33:29 +0100 <d34df00d> So you basically supply these openF/attrF/etc callbacks.
2021-01-31 19:33:47 +0100 <d34df00d> And fold over the corresponding events occuring when parsing xml.
2021-01-31 19:33:59 +0100 <d34df00d> So if I want to do something complicated, I need to keep non-trivial state, and it gets ugly.
2021-01-31 19:34:13 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-prvdoscebbvquvnj)
2021-01-31 19:34:26 +0100 <d34df00d> Although I just noted there's Xeno.DOM, lol.
2021-01-31 19:34:30 +0100 <d34df00d> Maybe I should give it a shot too.
2021-01-31 19:35:05 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-01-31 19:36:02 +0100funkyuser99(~user@2402:e280:3e00:9cd8:ba86:367b:431b:aadd)
2021-01-31 19:38:07 +0100 <d34df00d> Yea, xeno's dom parser is like infinitely faster than xml-conduit's
2021-01-31 19:38:16 +0100e2(e2@sponsored.by.bnc4you.xyz)
2021-01-31 19:38:16 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-01-31 19:38:20 +0100 <d34df00d> 0.6 seconds, 400 megs of RAM.
2021-01-31 19:38:26 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 264 seconds)
2021-01-31 19:38:40 +0100 <maerwald> nothing can beat pythons lxml
2021-01-31 19:38:41 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 19:39:06 +0100 <maerwald> (yeah, I wrote an xml microservice once to avoid using haskell for xml)
2021-01-31 19:39:40 +0100 <d34df00d> I get this funny ache in my fingers as I just merely think about writing anything in python.
2021-01-31 19:39:59 +0100 <d34df00d> Also I bet python's lxml is actually C.
2021-01-31 19:40:12 +0100 <maerwald> well, I guess half of the data science community will disagree :D
2021-01-31 19:40:43 +0100 <maerwald> but ppl still think python is just for scripting
2021-01-31 19:41:05 +0100 <merijn> Python is for hating yourself and making you wanna die
2021-01-31 19:41:19 +0100 <maerwald> nah, it's just different trade-offts
2021-01-31 19:41:31 +0100 <maerwald> every language makes me wanna die
2021-01-31 19:41:40 +0100 <merijn> Some more than others :p
2021-01-31 19:41:52 +0100 <sshine> merijn, Python is a gateway drug to Haskell.
2021-01-31 19:42:05 +0100 <maerwald> the language just determines the amount of alcohol in my blood
2021-01-31 19:42:12 +0100 <d34df00d> That's one of the reasons I stopped doing data science things.
2021-01-31 19:42:32 +0100 <aldum> alcohol is a gateway drug to python?
2021-01-31 19:42:41 +0100 <maerwald> haha
2021-01-31 19:42:51 +0100 <merijn> aldum: You got that the wrong way around
2021-01-31 19:43:15 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 19:43:45 +0100ehigham(d92c1d84@host217-44-29-132.range217-44.btcentralplus.com) (Quit: Ping timeout (120 seconds))
2021-01-31 19:44:19 +0100garFF(~garff@0x3e2c8761.mobile.telia.dk)
2021-01-31 19:44:28 +0100 <kuribas> d34df00d: I wrote a streaming parser on top of hexpat, that should be pretty fast.
2021-01-31 19:44:33 +0100geekosaur(ae68c070@cpe-174-104-192-112.neo.res.rr.com) (Quit: Ping timeout (120 seconds))
2021-01-31 19:44:59 +0100tromp_(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 19:45:04 +0100 <d34df00d> kuribas: that's my fallback! I just wondered if I could avoid writing my logic in streaming style.
2021-01-31 19:45:10 +0100 <kuribas> d34df00d: https://hackage.haskell.org/package/hexpat-streamparser-0.0.1/docs/Text-XML-Expat-StreamParser.html
2021-01-31 19:45:26 +0100 <kuribas> d34df00d: I don't know what you mean with "streaming style", but it's just like standard combinators.
2021-01-31 19:45:34 +0100tanuki(~quassel@173.168.154.189)
2021-01-31 19:45:44 +0100 <kuribas> d34df00d: only you cannot backtrack, there is a single tag lookahead.
2021-01-31 19:45:47 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-31 19:46:02 +0100gioyik(~gioyik@gateway/tor-sasl/gioyik)
2021-01-31 19:46:23 +0100 <kuribas> d34df00d: in fact, one of the reasons I wrote it, is so I could reuse Control.Applicative.Combinators.
2021-01-31 19:46:30 +0100tromp_(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-01-31 19:46:30 +0100tromp__(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 19:46:46 +0100 <d34df00d> Oh, this looks interesting!
2021-01-31 19:47:09 +0100 <d34df00d> Looks be much less painful than using some other streaming libs directly.
2021-01-31 19:47:27 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
2021-01-31 19:50:22 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 264 seconds)
2021-01-31 19:51:23 +0100geekosaur(ae68c070@cpe-174-104-192-112.neo.res.rr.com)
2021-01-31 19:51:41 +0100bitmagie(~Thunderbi@200116b8065856001599e2e0407cbc41.dip.versatel-1u1.de)
2021-01-31 19:52:04 +0100bitmagie(~Thunderbi@200116b8065856001599e2e0407cbc41.dip.versatel-1u1.de) (Client Quit)
2021-01-31 19:52:26 +0100worc3131(~quassel@2a02:c7f:dcc4:6500:217b:6c7a:eac3:3be9)
2021-01-31 19:52:49 +0100 <kuribas> it's similar to Text.XML.Stream.Parse from xml-conduit, but it actually returns error locations.
2021-01-31 19:52:50 +0100atraii(~atraii@2601:681:8800:3a87:c800:2de4:db0b:9f0) (Ping timeout: 264 seconds)
2021-01-31 19:53:09 +0100 <kuribas> and it uses the same parser combinators as Parsec etc..
2021-01-31 19:54:22 +0100hexagenic(~mattias@2001:2002:51e0:74c9:5c3d:79a1:6bfe:fd56) (Read error: Connection reset by peer)
2021-01-31 19:55:20 +0100hexagenic(~mattias@2001:2002:51e0:74c9:5098:c4b6:1b73:7815)
2021-01-31 19:55:54 +0100 <kuribas> merijn: a SAX parser basically tokenizes the xml file, than fires different callbacks based on the next token.
2021-01-31 19:59:04 +0100 <kuribas> d34df00d: note that parseXMLFile will force the whole output value.
2021-01-31 20:01:07 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it)
2021-01-31 20:02:11 +0100jpds_(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-01-31 20:02:13 +0100atwm(~andrew@19-193-28-81.ftth.cust.kwaoo.net)
2021-01-31 20:02:35 +0100jpds_(~jpds@gateway/tor-sasl/jpds)
2021-01-31 20:02:56 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net)
2021-01-31 20:03:21 +0100berberman_(~berberman@unaffiliated/berberman)
2021-01-31 20:03:28 +0100 <kuribas> ah, and xeno cheats by ignoring the XML standard, hexpat fully implements the standard.
2021-01-31 20:04:00 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
2021-01-31 20:04:10 +0100raym(~ray@45.64.220.55) (Quit: leaving)
2021-01-31 20:04:22 +0100tanuki(~quassel@173.168.154.189) (Ping timeout: 256 seconds)
2021-01-31 20:04:31 +0100raym(~ray@45.64.220.55)
2021-01-31 20:04:50 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2021-01-31 20:05:26 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 268 seconds)
2021-01-31 20:05:26 +0100funkyuser99(~user@2402:e280:3e00:9cd8:ba86:367b:431b:aadd) ("ERC (IRC client for Emacs 26.1)")
2021-01-31 20:06:02 +0100ep1ctetus(~epictetus@ip184-187-162-163.sb.sd.cox.net) (Read error: Connection reset by peer)
2021-01-31 20:06:02 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2021-01-31 20:06:27 +0100heatsink(~heatsink@2600:1700:bef1:5e10:75dd:a55d:449b:280f)
2021-01-31 20:10:35 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2021-01-31 20:11:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:75dd:a55d:449b:280f) (Ping timeout: 264 seconds)
2021-01-31 20:13:15 +0100worc3131(~quassel@2a02:c7f:dcc4:6500:217b:6c7a:eac3:3be9) (Ping timeout: 272 seconds)
2021-01-31 20:13:40 +0100heatsink(~heatsink@2600:1700:bef1:5e10:75dd:a55d:449b:280f)
2021-01-31 20:21:41 +0100quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
2021-01-31 20:24:23 +0100 <Uniaika> uh
2021-01-31 20:24:31 +0100 <Uniaika> I have the hardest time solving this cabal riddle https://paste.tomsmeding.com/vSEJBQ4g
2021-01-31 20:24:49 +0100 <Uniaika> and especially :
2021-01-31 20:24:50 +0100 <Uniaika> [__1] rejecting: base-4.13.0.0/installed-4.13.0.0 (conflict: control-plane =>
2021-01-31 20:24:50 +0100 <Uniaika> base^>=4.14.1)
2021-01-31 20:24:58 +0100afwingnut(~af_wingnu@ip174-79-2-139.mc.at.cox.net)
2021-01-31 20:25:07 +0100 <merijn> Uniaika: Which ghc?
2021-01-31 20:25:35 +0100 <maerwald> 8.8.4?
2021-01-31 20:25:39 +0100 <Uniaika> my cabal.project file contains this stanza
2021-01-31 20:25:40 +0100 <Uniaika> with-compiler: ghc-8.10.3
2021-01-31 20:25:57 +0100 <merijn> Uniaika: Looks like it's using ghc 8.8, though :p
2021-01-31 20:26:04 +0100 <merijn> because that's what base-4.13 is
2021-01-31 20:26:16 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 240 seconds)
2021-01-31 20:26:26 +0100 <merijn> Time to run "ghc-8.10.3 --version" :p
2021-01-31 20:26:27 +0100 <Uniaika> that's what buggers me
2021-01-31 20:26:34 +0100 <Uniaika> damnit hahaha
2021-01-31 20:26:35 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-01-31 20:26:38 +0100ehigham(d92c1d84@host217-44-29-132.range217-44.btcentralplus.com)
2021-01-31 20:26:42 +0100 <Uniaika> ❯ ghc-8.10.3 --version
2021-01-31 20:26:42 +0100 <Uniaika> The Glorious Glasgow Haskell Compilation System, version 8.10.3
2021-01-31 20:26:44 +0100 <Uniaika> thank god
2021-01-31 20:26:49 +0100 <Uniaika> ghcup does its job well
2021-01-31 20:26:52 +0100 <merijn> And/or use -v3 when running cabal
2021-01-31 20:26:52 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-01-31 20:27:02 +0100 <Uniaika> hm.
2021-01-31 20:27:04 +0100 <maerwald> cabal should print the ghc it uses at the beginning
2021-01-31 20:27:50 +0100 <Uniaika> cabal gen-bounds does not do that apparently
2021-01-31 20:28:11 +0100 <merijn> This error is from gen-bounds?
2021-01-31 20:28:14 +0100afwingnut(~af_wingnu@ip174-79-2-139.mc.at.cox.net) ()
2021-01-31 20:28:20 +0100 <maerwald> Uniaika: ghc --version is what?
2021-01-31 20:28:23 +0100Jd007(~Jd007@162.156.11.151)
2021-01-31 20:28:33 +0100 <Uniaika> okay so
2021-01-31 20:28:36 +0100 <merijn> What happens if you run "cabal -w ghc-8.10.3 gen-bounds" ?
2021-01-31 20:28:40 +0100 <Uniaika> using cabal build -j works
2021-01-31 20:28:42 +0100 <Uniaika> Build profile: -w ghc-8.10.3 -O1
2021-01-31 20:28:51 +0100 <Uniaika> oh yeah I could try that, thanks merijn
2021-01-31 20:29:03 +0100 <maerwald> I'm suspecting ghc symlink is 8.8.4
2021-01-31 20:29:03 +0100 <merijn> Uniaika: Me thinks gen-bounds isn't using cabal.project :p
2021-01-31 20:29:11 +0100 <Uniaika> maerwald: fuck, you're right!
2021-01-31 20:29:15 +0100 <merijn> hah
2021-01-31 20:29:16 +0100 <Uniaika> it's symlinked to 8.8.4
2021-01-31 20:29:22 +0100 <merijn> Great minds think alike
2021-01-31 20:29:34 +0100 <Uniaika> so yeah, gen-bounds doesn't use cabal.project, this sucks
2021-01-31 20:29:37 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-kjwsmgprrtjfqajz) (Quit: Connection closed for inactivity)
2021-01-31 20:29:41 +0100 <merijn> Seems a bug to me
2021-01-31 20:29:52 +0100 <Uniaika> now, I need to tell hls to use cabal.project too
2021-01-31 20:30:02 +0100 <maerwald> Uniaika: it already does afaik
2021-01-31 20:30:32 +0100 <maerwald> it literally invokes cabal repl or something similar
2021-01-31 20:30:35 +0100 <Uniaika> maerwald: nope
2021-01-31 20:30:36 +0100 <Uniaika> Tool versions found on the $PATH
2021-01-31 20:30:36 +0100 <Uniaika> cabal: 3.4.0.0
2021-01-31 20:30:36 +0100 <Uniaika> stack: 2.5.1
2021-01-31 20:30:36 +0100 <Uniaika> ghc: 8.8.4
2021-01-31 20:30:51 +0100 <Uniaika> that's when running haskell-language-server-wrapper in the directory
2021-01-31 20:30:56 +0100 <maerwald> Uniaika: yes, for hls to work nicely, you ALSO need to set current ghc to project ghc
2021-01-31 20:31:06 +0100 <maerwald> but it still uses cabal.project
2021-01-31 20:31:22 +0100 <Uniaika> maerwald: this is extremely shitty behaviour since I have different projects that use different GHCs :(
2021-01-31 20:31:29 +0100 <maerwald> yeah
2021-01-31 20:31:36 +0100 <Uniaika> I'm going to bother the appropriate channel
2021-01-31 20:31:39 +0100 <Uniaika> thanks maerwald and merijn :)
2021-01-31 20:31:43 +0100 <Uniaika> maerwald: love your ghcup work <3
2021-01-31 20:31:48 +0100 <maerwald> per project PATH hackery is another workaround
2021-01-31 20:32:09 +0100 <Uniaika> there's a reason why I live in 2021 and not in 2006 though
2021-01-31 20:32:26 +0100 <maerwald> you can literally tell ghcup to use the current working directory as "base" (that's what I do in CI too)
2021-01-31 20:32:29 +0100Tops2(~Tobias@dyndsl-095-033-019-168.ewe-ip-backbone.de)
2021-01-31 20:32:45 +0100 <maerwald> a little overkill, if you ask me, though
2021-01-31 20:33:05 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-01-31 20:33:26 +0100 <maerwald> almost time for nix... but does hls work with nix?
2021-01-31 20:33:38 +0100 <Uniaika> hmm
2021-01-31 20:33:43 +0100 <Uniaika> I could run hls in a nix-shell
2021-01-31 20:34:05 +0100ixaxaar(~ixaxaar@49.207.210.215) (Ping timeout: 240 seconds)
2021-01-31 20:34:12 +0100 <Uniaika> but no, I'm not looking for workarounds right now, I just want people to stop giving cabal-based projects a bad reputation
2021-01-31 20:34:15 +0100 <Uniaika> and this isn't helping
2021-01-31 20:35:47 +0100darjeeling_(~darjeelin@115.215.41.65)
2021-01-31 20:35:58 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2021-01-31 20:38:51 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
2021-01-31 20:43:14 +0100kuribas(~user@ptr-25vy0i6vfzb2d4iuy7c.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-01-31 20:43:24 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-01-31 20:44:07 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi)
2021-01-31 20:44:21 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Remote host closed the connection)
2021-01-31 20:45:04 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 20:45:07 +0100 <sm[m]> cabal has its reputation for a reason
2021-01-31 20:45:41 +0100 <Uniaika> yeah it's not entirely stolen, but if the tooling around it does not behave as well, it's quite problematic
2021-01-31 20:45:46 +0100 <sm[m]> I feel people more often give it a free pass than wrongly give it a bad reputation
2021-01-31 20:47:58 +0100 <sm[m]> Uniaika: just curious, which tooling isn't behaving right, I can't quite tell
2021-01-31 20:48:46 +0100 <sm[m]> hls ?
2021-01-31 20:48:58 +0100Uniaikainvokes fendor
2021-01-31 20:49:12 +0100 <Uniaika> hls is the one that misbehaves but it seems that it might be hie-bios
2021-01-31 20:49:19 +0100 <Uniaika> that is the reason
2021-01-31 20:49:46 +0100 <zzz> > [minBound..maxBound] :: (Enum a,Bounded a) => [a]
2021-01-31 20:49:47 +0100 <lambdabot> [()]
2021-01-31 20:49:59 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 272 seconds)
2021-01-31 20:50:00 +0100 <zzz> ^ why () ?
2021-01-31 20:50:15 +0100 <geekosaur> ExtendedDefaultRules
2021-01-31 20:50:34 +0100 <zzz> thank you
2021-01-31 20:51:06 +0100 <fendor> yeah, looks like a long-standing hie-bios issue
2021-01-31 20:51:42 +0100tromp__(~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
2021-01-31 20:52:16 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 20:55:13 +0100 <maerwald> sm[m]: don't you bash on cabal now :p
2021-01-31 20:55:22 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 246 seconds)
2021-01-31 20:56:58 +0100 <maerwald> but last time i used hls it was via stack (to work around a bug in cabal+hls where it constantly reconfigures itself)
2021-01-31 20:57:45 +0100 <maerwald> so cabal for local build, stack for hls and no problems
2021-01-31 20:59:54 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net)
2021-01-31 21:01:02 +0100 <sm[m]> no bashing here
2021-01-31 21:02:50 +0100 <sm[m]> just mentioning my feeling that we too often give it a free pass, overlooking the issues encountered by users in practice - balanced critical assessment is good
2021-01-31 21:02:59 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-01-31 21:03:08 +0100 <sm[m]> if that's bashing, I'm sorry and I'll say no more :)
2021-01-31 21:03:30 +0100 <juri_> wait, there was an opportunity to bash cabal, and i missed it?
2021-01-31 21:03:36 +0100 <sclv> in this case it looks like a combination of rough edges in cabal and also it seems just hie integration is very partial
2021-01-31 21:03:49 +0100 <sclv> which is the more general thing -- the stack model is much easier for ides to interop with
2021-01-31 21:04:07 +0100fradet(~ubuntu@216.252.75.247) (Remote host closed the connection)
2021-01-31 21:04:43 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 21:04:58 +0100 <maerwald> yep, Unix way is always more work
2021-01-31 21:05:22 +0100petersen(~petersen@redhat/juhp) (Ping timeout: 264 seconds)
2021-01-31 21:06:18 +0100 <maerwald> and not a popular philosophy anymore
2021-01-31 21:06:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-31 21:07:34 +0100petersen(~petersen@redhat/juhp)
2021-01-31 21:08:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 21:08:19 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 268 seconds)
2021-01-31 21:09:02 +0100TMA(tma@twin.jikos.cz) (Ping timeout: 264 seconds)
2021-01-31 21:09:37 +0100TMA(tma@twin.jikos.cz)
2021-01-31 21:13:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-31 21:13:57 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 21:15:31 +0100dragestil(~quassel@fsf/member/dragestil) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-01-31 21:15:37 +0100 <fendor> maerwald, btw, next hie-bios release might fix the reconfigure issue
2021-01-31 21:18:22 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 21:20:45 +0100idhugo(~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-01-31 21:24:32 +0100garFF(~garff@0x3e2c8761.mobile.telia.dk) (Read error: Connection reset by peer)
2021-01-31 21:24:56 +0100fendor(~fendor@178.115.131.1.wireless.dyn.drei.com) (Remote host closed the connection)
2021-01-31 21:24:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-01-31 21:25:01 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2021-01-31 21:25:38 +0100garFF(~garff@0x3e2c8761.mobile.telia.dk)
2021-01-31 21:25:39 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 21:26:21 +0100cfricke(~cfricke@unaffiliated/cfricke)
2021-01-31 21:26:24 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 240 seconds)
2021-01-31 21:26:43 +0100dnlkrgr(~dnlkrgr@HSI-KBW-046-005-005-235.hsi8.kabel-badenwuerttemberg.de)
2021-01-31 21:27:42 +0100fendor(~fendor@178.115.131.1.wireless.dyn.drei.com)
2021-01-31 21:29:04 +0100cfricke(~cfricke@unaffiliated/cfricke) (Client Quit)
2021-01-31 21:30:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-31 21:31:30 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 21:32:22 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-01-31 21:32:45 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl)
2021-01-31 21:33:51 +0100hexagenic(~mattias@2001:2002:51e0:74c9:5098:c4b6:1b73:7815) (Quit: WeeChat 1.9.1)
2021-01-31 21:34:25 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-01-31 21:36:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-01-31 21:36:43 +0100xelxebar_(~xelxebar@gateway/tor-sasl/xelxebar)
2021-01-31 21:37:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 21:37:55 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 268 seconds)
2021-01-31 21:42:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-31 21:43:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 21:48:12 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
2021-01-31 21:52:46 +0100alx741(~alx741@186.178.110.149)
2021-01-31 21:53:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-01-31 21:53:42 +0100 <d34df00d> What's the right (memory- and time-efficient) way to store a set of Word32's?
2021-01-31 21:54:08 +0100 <d34df00d> I'd convert them to Ints and shove into an IntSet, but Int is twice as big on my machine.
2021-01-31 21:54:19 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 21:55:08 +0100 <MarcelineVQ> store where?
2021-01-31 21:56:15 +0100 <d34df00d> In memory.
2021-01-31 21:56:33 +0100 <d34df00d> I basically need set-like semantics for the specific case of (smaller) Words.
2021-01-31 21:57:42 +0100knupfer(~Thunderbi@200116b82c5a65007d58e9056fe28ef3.dip.versatel-1u1.de)
2021-01-31 21:58:46 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-01-31 21:59:02 +0100 <Franciman> d34df00d, I'd consider a sequence :P
2021-01-31 21:59:16 +0100 <Franciman> a Data.Seq
2021-01-31 21:59:23 +0100 <Franciman> no wait
2021-01-31 21:59:25 +0100 <Franciman> I mean a finger tree
2021-01-31 21:59:31 +0100 <Franciman> Data.Seq is specialized
2021-01-31 21:59:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-01-31 22:00:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 22:01:10 +0100 <d34df00d> That's, well, a sequence?
2021-01-31 22:01:25 +0100 <d34df00d> Wouldn't it have some overhead over a set-like structure that doesn't care about the relative ordering of the elements?
2021-01-31 22:01:55 +0100garFF(~garff@0x3e2c8761.mobile.telia.dk) (Quit: Leaving)
2021-01-31 22:02:23 +0100 <ephemient> https://hackage.haskell.org/package/unpacked-containers would be an option if you're not using stack
2021-01-31 22:02:31 +0100 <d34df00d> On an unrelated note, I've just did a memory profiling run of my program (with -hc), and the most space-consuming function is "primitive/basicUnsafe..." according to the diagram (and to the .hp file).
2021-01-31 22:02:40 +0100 <d34df00d> Is there a way to know what's hidden behind the ellipsis?
2021-01-31 22:02:46 +0100 <d34df00d> Otherwise "basicUnsafe" isn't too telling.
2021-01-31 22:03:14 +0100 <d34df00d> ephemient: oh, I didn't even know about that package, thank you!
2021-01-31 22:03:30 +0100 <mniip> could make your own radix tree with a large base
2021-01-31 22:03:46 +0100 <MarcelineVQ> iirc you can set a label width somehow to remove some of the ... cutoff
2021-01-31 22:04:34 +0100 <ephemient> the ideal solution will depend on what you types of operations you need, though
2021-01-31 22:04:55 +0100 <d34df00d> ephemient: inserts and membership checks.
2021-01-31 22:05:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-31 22:05:26 +0100 <d34df00d> MarcelineVQ: well, looks like the name gets cut off before going to the .hp file even.
2021-01-31 22:05:32 +0100d34df00dlooking through ghc docs on profiling now, meh.
2021-01-31 22:05:33 +0100 <ephemient> e.g. write-once read-often: sorted unboxed array would be an option
2021-01-31 22:05:41 +0100 <mniip> d34df00d, you're going to need to balance memory usage vs lookup/insert time
2021-01-31 22:05:45 +0100 <MarcelineVQ> oh, hmm, maybe that was for hp2ps
2021-01-31 22:05:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 22:05:53 +0100 <Franciman> d34df00d, a Set keeps track of the relative ordering, though
2021-01-31 22:06:02 +0100 <Franciman> at least Data.Set does
2021-01-31 22:06:13 +0100 <mniip> on one hand you have a Set which is gonna be among the most memory efficient
2021-01-31 22:06:22 +0100 <mniip> IntSet slightly faster and less memory efficient
2021-01-31 22:06:29 +0100 <mniip> and then we have a 2^32 bit long bitmask
2021-01-31 22:06:50 +0100 <d34df00d> I thought about maybe I should use a bloom filter as well or something (most checks gonna be negative).
2021-01-31 22:07:09 +0100 <d34df00d> But that's next stage, I need a zero-false-positives structure anyway.
2021-01-31 22:07:21 +0100ehigham(d92c1d84@host217-44-29-132.range217-44.btcentralplus.com) (Quit: Connection closed)
2021-01-31 22:07:33 +0100 <d34df00d> Also I didn't know IntSet is less memory efficient, that's even a bit contrary to my intuition!
2021-01-31 22:07:45 +0100 <MarcelineVQ> patricia trees are so darn neat
2021-01-31 22:08:06 +0100 <geekosaur> performance and space use are often related like that?
2021-01-31 22:08:18 +0100 <MarcelineVQ> There's a newer versio of that too, trying to remember the link, might be relevant to the convo
2021-01-31 22:08:34 +0100 <mniip> whoops I might be thinking of a different structure
2021-01-31 22:09:08 +0100 <mniip> IntSet looks to be slightly more efficient
2021-01-31 22:09:09 +0100 <ephemient> IntSet should be better than Set Int, the values are split up into bits and inlined into the nodes instead of being boxed
2021-01-31 22:09:23 +0100 <d34df00d> Yep, that's my intuition.
2021-01-31 22:09:23 +0100 <mniip> in that it coalesces some tips into a 32-bit bitmask
2021-01-31 22:09:30 +0100 <mniip> but other than that not that different
2021-01-31 22:10:28 +0100 <MarcelineVQ> blartg, can't find it, it was a patricia tree(ie) with even more collappsing for tips
2021-01-31 22:10:52 +0100 <mniip> I was thinking of some other structure that used 16-long arrays as nodes
2021-01-31 22:10:55 +0100 <MarcelineVQ> and was related to the word size, so thought it could be relevant
2021-01-31 22:10:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-31 22:11:12 +0100 <mniip> HashMap
2021-01-31 22:11:14 +0100 <mniip> that's the one
2021-01-31 22:11:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 22:11:44 +0100 <ephemient> hashing ints is a waste of computation though
2021-01-31 22:11:56 +0100 <c_wraith> Eh, that depends on the structure.
2021-01-31 22:12:06 +0100 <mniip> you could take hash = id
2021-01-31 22:12:09 +0100 <mniip> no big deal there
2021-01-31 22:12:10 +0100 <c_wraith> Some hash tables are bad when the hashes are clustered
2021-01-31 22:12:19 +0100 <c_wraith> and ints tend to be clustered
2021-01-31 22:12:33 +0100 <mniip> this is not actually a hashtable
2021-01-31 22:12:38 +0100 <mniip> it's a prefix tree
2021-01-31 22:13:00 +0100 <c_wraith> a prefix tree is kind of bad when the inputs are clustered, too
2021-01-31 22:13:10 +0100 <c_wraith> you have to traverse further to find the branches
2021-01-31 22:13:15 +0100 <mniip> hashtables and immutability/persistence don't click well
2021-01-31 22:14:07 +0100 <c_wraith> though I suppose doing LE traversal breaks up the common clustering cases
2021-01-31 22:16:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:75dd:a55d:449b:280f) (Remote host closed the connection)
2021-01-31 22:17:30 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-01-31 22:17:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 22:18:10 +0100ADG1089__(~aditya@223.236.190.35) (Remote host closed the connection)
2021-01-31 22:19:48 +0100geekosaur(ae68c070@cpe-174-104-192-112.neo.res.rr.com) (Quit: Connection closed)
2021-01-31 22:22:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-31 22:23:34 +0100fendor__(~fendor@91.141.0.151.wireless.dyn.drei.com)
2021-01-31 22:23:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 22:24:49 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313)
2021-01-31 22:26:02 +0100fendor_(~fendor@178.115.131.1.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
2021-01-31 22:26:22 +0100fendor(~fendor@178.115.131.1.wireless.dyn.drei.com) (Ping timeout: 264 seconds)
2021-01-31 22:26:31 +0100fendor(~fendor@046124067054.public.t-mobile.at)
2021-01-31 22:28:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-31 22:29:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 22:29:26 +0100nineonine(~nineonine@2604:3d08:7785:9600:acd4:a5be:3be2:2313) (Ping timeout: 264 seconds)
2021-01-31 22:29:36 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
2021-01-31 22:30:11 +0100shatriff(~vitaliish@176-52-216-242.irishtelecom.com)
2021-01-31 22:31:36 +0100kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2021-01-31 22:31:45 +0100son0p(~son0p@181.136.122.143)
2021-01-31 22:34:19 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-31 22:34:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-31 22:34:45 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 22:35:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 22:35:36 +0100jneira(501ca940@gateway/web/cgi-irc/kiwiirc.com/ip.80.28.169.64) (Ping timeout: 240 seconds)
2021-01-31 22:36:08 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 22:39:56 +0100Tario(~Tario@201.192.165.173)
2021-01-31 22:40:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-01-31 22:40:45 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 22:41:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 22:41:55 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 22:44:16 +0100ukari(~ukari@unaffiliated/ukari)
2021-01-31 22:45:07 +0100knupfer(~Thunderbi@200116b82c5a65007d58e9056fe28ef3.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2021-01-31 22:45:18 +0100arahael2arahael
2021-01-31 22:46:19 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-01-31 22:49:52 +0100renzhi(~renzhi@2607:fa49:6500:6f00::1e43)
2021-01-31 22:50:00 +0100Varis(~Tadas@unaffiliated/varis) (Read error: Connection reset by peer)
2021-01-31 22:52:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-01-31 22:53:15 +0100sim590(~sim590@modemcable090.207-203-24.mc.videotron.ca)
2021-01-31 22:53:40 +0100alx741(~alx741@186.178.110.149) (Quit: alx741)
2021-01-31 22:59:44 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-01-31 23:14:41 +0100nictki(~nictki@b2b-78-94-64-166.unitymedia.biz)
2021-01-31 23:15:00 +0100nictki(~nictki@b2b-78-94-64-166.unitymedia.biz) (Client Quit)
2021-01-31 23:16:47 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-01-31 23:17:22 +0100heatsink(~heatsink@2600:1700:bef1:5e10:75dd:a55d:449b:280f)
2021-01-31 23:19:13 +0100lawid(~quassel@dslb-090-186-099-081.090.186.pools.vodafone-ip.de) (Quit: lawid)
2021-01-31 23:19:13 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 23:19:38 +0100DavidEichmann(~david@234.109.45.217.dyn.plus.net)
2021-01-31 23:20:15 +0100 <ij> I wonder why removing IO here made it work faster https://github.com/siers/ppmz/commit/ec38fc399a03d8adbd04ce839f6c658ebd9e7db4#diff-abc40ee5b7b539d…
2021-01-31 23:20:52 +0100Tario(~Tario@201.192.165.173)
2021-01-31 23:20:56 +0100 <ij> Could it be because that allowed "all" to short-circuit without having to complete (what was previously) the IO action?
2021-01-31 23:21:20 +0100lawid(~quassel@dslb-090-186-099-081.090.186.pools.vodafone-ip.de)
2021-01-31 23:22:15 +0100heatsink(~heatsink@2600:1700:bef1:5e10:75dd:a55d:449b:280f) (Ping timeout: 258 seconds)
2021-01-31 23:23:45 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-01-31 23:24:30 +0100gioyik(~gioyik@gateway/tor-sasl/gioyik) (Quit: WeeChat 3.0)
2021-01-31 23:25:46 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 264 seconds)
2021-01-31 23:26:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-01-31 23:28:16 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-01-31 23:29:55 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving)
2021-01-31 23:30:13 +0100Tario(~Tario@200.119.186.23)
2021-01-31 23:31:07 +0100jneira(501ca940@gateway/web/cgi-irc/kiwiirc.com/ip.80.28.169.64)
2021-01-31 23:31:33 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 265 seconds)
2021-01-31 23:31:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-01-31 23:36:39 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-01-31 23:37:17 +0100Welkin(~Welkin@216.243.35.47)
2021-01-31 23:40:24 +0100 <ski> `unsafePerformIO' :(
2021-01-31 23:40:25 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-01-31 23:40:53 +0100 <ij> why ":("?
2021-01-31 23:41:42 +0100 <ski> well, i dunno what `mazeRead' is doing
2021-01-31 23:41:57 +0100 <ski> but what you said about `all' could be it
2021-01-31 23:42:34 +0100 <ski> btw, `allM id' looks pretty useless. could you use an `andM' instead ?
2021-01-31 23:42:59 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
2021-01-31 23:43:32 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-01-31 23:45:19 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2021-01-31 23:45:22 +0100 <ij> :) that did feel wrong, but I hadn't bothered thinking about it yet
2021-01-31 23:46:39 +0100 <ski> is `mazeRead' reading from some file ?
2021-01-31 23:46:55 +0100 <ij> Data.Vector.Mutable.unsafeRead
2021-01-31 23:47:34 +0100 <ij> the data is eventually from samples/* or the websocket problem server
2021-01-31 23:48:02 +0100abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-01-31 23:48:04 +0100 <ij> there's only a single file, you won't have to run all over the place to find a function :)
2021-01-31 23:48:13 +0100Welkin(~Welkin@216.243.35.47) ()
2021-01-31 23:48:15 +0100 <ski> freeze ?
2021-01-31 23:49:13 +0100 <ij> never called within the hotspots
2021-01-31 23:50:49 +0100 <ski> btw, fwiw, you don't need multiple `let's when they're contiguous, in a `do'-expression
2021-01-31 23:51:52 +0100 <ij> in cursorToContinue? yeah, it looks like I'd forgotten that
2021-01-31 23:51:58 +0100 <ij> btw, there is solve.prof attached :)
2021-01-31 23:55:43 +0100niekvandepas(~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection)
2021-01-31 23:55:44 +0100Tario(~Tario@200.119.186.23) (Read error: Connection reset by peer)
2021-01-31 23:55:53 +0100Tario(~Tario@201.192.165.173)