Home liberachat/#haskell: Logs Calendar

Logs on 2023-07-13 (liberachat/#haskell)

00:04:24 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
00:04:24 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
00:04:24 dibblego joins (~dibblego@haskell/developer/dibblego)
00:04:30 motherfsck joins (~motherfsc@user/motherfsck)
00:10:22 bilegeek joins (~bilegeek@2600:1008:b023:ebcc:e781:815d:405f:74ed)
00:12:31 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
00:12:56 × picklejuice quits (~root@172.58.204.173) (Ping timeout: 245 seconds)
00:18:10 picklejuice joins (~root@172.56.216.194)
00:19:41 smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com)
00:20:22 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
00:20:23 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
00:20:23 dibblego joins (~dibblego@haskell/developer/dibblego)
00:20:48 neuroevolutus joins (~neuroevol@2001:ac8:9a:76::1e)
00:24:45 bratwurst joins (~dfadsva@2604:3d09:207f:f650::c680)
00:26:51 eL_Bart0 joins (eL_Bart0@dietunichtguten.org)
00:26:58 heath2 joins (~heath@user/heath)
00:26:58 caubert joins (~caubert@user/caubert)
00:26:59 bgamari joins (~bgamari@64.223.233.113)
00:31:00 × bratwurst quits (~dfadsva@2604:3d09:207f:f650::c680) (Remote host closed the connection)
00:31:21 bratwurst joins (~dfadsva@2604:3d09:207f:f650::c680)
00:36:35 × bratwurst quits (~dfadsva@2604:3d09:207f:f650::c680) (Ping timeout: 258 seconds)
00:48:10 × picklejuice quits (~root@172.56.216.194) (Ping timeout: 250 seconds)
00:48:13 picklejuice joins (~root@172.56.222.50)
00:50:42 d34df00d joins (~d34df00d@2600:1702:4f1b:7c10::e)
00:50:51 × mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 245 seconds)
00:50:56 <d34df00d> Hi!
00:51:26 <d34df00d> Let's say I have two megaparsec parsers, p and q. q accepts all that is accepted by p, and then some extra strings.
00:51:37 <d34df00d> I need to parse a list of p's followed by a single q. How do I do that?
00:52:10 pickleju1ce joins (~root@c-73-196-164-60.hsd1.nj.comcast.net)
00:52:18 <d34df00d> `some p >> q` won't work since that `p` _might_ consume what needs to be consumed by `q`
00:54:02 × picklejuice quits (~root@172.56.222.50) (Ping timeout: 246 seconds)
00:55:28 <d34df00d> And there's no easy conversion between the types produces by p and q, so I cannot just make q optional and convert the `last` of `some p` into q's type if `optional q` fails.
00:56:03 <probie> Are the parsers supplied by someone else?
00:58:23 <d34df00d> probie: nope, but they are non-trivial enough that changing them is a sort of last resort thing (and then I'm not even sure it's possible).
00:58:23 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
01:02:58 <probie> I don't suppose you can get away with `p >> some ((Right <$> try (q >> eof)) <|> (Left <$> p))` (assuming at least one p and at least one q, and q is the end of input)
01:02:59 <d34df00d> Unfortunately it might not be the end of input.
01:02:59 jargon joins (~jargon@184.101.73.95)
01:02:59 <d34df00d> As a model example, think of a comma-separated list of sublists, where each sublist is some integers followed by a double (which might be written as, well, an integer, without any dots).
01:05:36 <d34df00d> So like "1 2 3 4.2, 10 20 30, 40 50.0"
01:05:36 <d34df00d> And let's pretend there is no Integer → Double function.
01:09:16 × jargon quits (~jargon@184.101.73.95) (Remote host closed the connection)
01:09:42 <probie> `(:) <$> fmap Left p <*> some ((Right <$> try (q <* notFollowedBy p)) <|> (Left <$> p))`?
01:10:02 hexology- is now known as hexology
01:10:11 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
01:10:11 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
01:10:11 wroathe joins (~wroathe@user/wroathe)
01:10:26 razetime joins (~quassel@117.193.5.76)
01:10:47 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:11:41 <d34df00d> Oh, nice!
01:11:56 <d34df00d> I was just looking at notFollowedBy and lookahead and trying to come up with something, but it looks like it does the job!
01:16:50 arahael_ joins (~arahael@1.145.56.143)
01:16:51 azimut joins (~azimut@gateway/tor-sasl/azimut)
01:16:56 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:21:46 × neuroevolutus quits (~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
01:25:43 falafel joins (~falafel@2603-7000-a700-8710-ff20-0c7b-3a36-fc77.res6.spectrum.com)
01:27:25 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 240 seconds)
01:32:08 <Clinton[m]> I'm trying to understand if the structure I have here already exists.... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/d1ef1e294a91154b0aa072dd9a14ae27b214208d>)
01:32:42 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
01:38:00 × sm[i] quits (~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
01:38:40 m21it joins (~m21it@2800:ac:8014:1816:9812:736a:f822:ce6f)
01:41:12 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
01:42:52 sm[i] joins (~sm@024-165-041-186.res.spectrum.com)
01:44:42 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
01:45:01 Hooloovoo joins (~Hooloovoo@hax0rbana.org)
01:47:40 neuroevolutus joins (~neuroevol@2001:ac8:9a:76::1e)
01:47:40 <m21it> Is there somehow reasonable way to derive `Data.Data.Data` instance of the type `T a b` without the constructors of `T a b` being in scope? The package does expose only the type `T a b` and smart constructors. I'm ok with using any means to derive it or write by hand - `TH` or `GHC.Generics`, I just don't know how.
01:47:40 × neuroevolutus quits (~neuroevol@2001:ac8:9a:76::1e) (Client Quit)
01:52:26 × statusbot quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection)
01:59:03 statusbot10 joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
01:59:04 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
01:59:05 L29Ah joins (~L29Ah@wikipedia/L29Ah)
01:59:05 picklejuice joins (~root@172.56.222.50)
01:59:05 × statusbot10 quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection)
01:59:05 statusbot joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
01:59:05 × mstksg quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 245 seconds)
01:59:05 × pickleju1ce quits (~root@c-73-196-164-60.hsd1.nj.comcast.net) (Ping timeout: 245 seconds)
01:59:05 curby joins (~curby@cpe-76-183-125-175.tx.res.rr.com)
01:59:05 <ski> @hackage ffunctor
01:59:06 <lambdabot> https://hackage.haskell.org/package/ffunctor
01:59:13 mstksg joins (~jle`@cpe-23-240-75-236.socal.res.rr.com)
01:59:23 <ski> @help mmorph
01:59:24 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
01:59:29 <ski> @hackage mmorph
01:59:29 <lambdabot> https://hackage.haskell.org/package/mmorph
01:59:50 <ski> Clinton[m] : those seem relevant ?
02:00:10 <ski> (you could also search for `HFunctor' which seems to be another related version)
02:00:47 buckwheat joins (~buckwheat@209.122.211.192)
02:00:48 × puke quits (~puke@user/puke) (Ping timeout: 252 seconds)
02:00:51 Sciencentistguy7 joins (~sciencent@hacksoc/ordinary-member)
02:02:12 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 246 seconds)
02:02:12 Sciencentistguy7 is now known as Sciencentistguy
02:02:17 <ski> although, with `FFunctor t' you have `t :: (* -> *) -> *', but for your example, you'd want `t' to be polymorphic (so `FFunctor' would be a rank-2 type class, then), namely `t :: (k -> *) -> *' for every `k'
02:05:21 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 246 seconds)
02:07:34 × sm[i] quits (~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
02:11:04 × td_ quits (~td@i53870932.versanet.de) (Ping timeout: 252 seconds)
02:12:18 × xff0x_ quits (~xff0x@ai086045.d.east.v6connect.net) (Ping timeout: 250 seconds)
02:12:54 td_ joins (~td@i5387091F.versanet.de)
02:13:24 Yurtdejure joins (~Yurtdejur@128.153.220.246)
02:13:45 × arahael_ quits (~arahael@1.145.56.143) (Ping timeout: 246 seconds)
02:14:32 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
02:15:26 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
02:15:48 × Yurtdejure quits (~Yurtdejur@128.153.220.246) (Quit: Leaving.)
02:21:18 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
02:21:19 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
02:21:19 wroathe joins (~wroathe@user/wroathe)
02:22:19 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
02:24:44 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds)
02:24:56 [_] is now known as [itchyjunk]
02:25:34 sm[i] joins (~sm@024-165-041-186.res.spectrum.com)
02:30:22 pickleju1ce joins (~root@c-73-196-164-60.hsd1.nj.comcast.net)
02:30:26 × razetime quits (~quassel@117.193.5.76) (Ping timeout: 245 seconds)
02:30:26 × picklejuice quits (~root@172.56.222.50) (Read error: Connection reset by peer)
02:30:37 × JimL quits (~quassel@89.162.16.26) (Ping timeout: 245 seconds)
02:31:37 razetime joins (~quassel@117.193.6.5)
02:33:53 JimL joins (~quassel@89.162.16.26)
02:37:48 buckwheat joins (~buckwheat@209.122.211.192)
02:39:32 × JimL quits (~quassel@89.162.16.26) (Ping timeout: 245 seconds)
02:39:45 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:40:52 puke joins (~puke@user/puke)
02:41:59 × puke quits (~puke@user/puke) (Max SendQ exceeded)
02:42:28 puke joins (~puke@user/puke)
02:44:43 × m21it quits (~m21it@2800:ac:8014:1816:9812:736a:f822:ce6f) (Remote host closed the connection)
02:44:57 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
02:46:01 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
02:50:51 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
02:58:23 xff0x_ joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
03:00:34 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:00:34 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:00:34 finn_elija is now known as FinnElija
03:00:35 × fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
03:00:37 mewra is now known as mira
03:03:53 × tzh_ quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
03:04:39 buckwheat joins (~buckwheat@209.122.211.192)
03:09:22 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 252 seconds)
03:18:54 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
03:20:17 arahael_ joins (~arahael@1.145.2.91)
03:21:00 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
03:27:04 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
03:29:00 notzmv joins (~zmv@user/notzmv)
03:29:32 × arahael_ quits (~arahael@1.145.2.91) (Ping timeout: 245 seconds)
03:32:59 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
03:38:42 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 252 seconds)
03:38:47 aforemny_ joins (~aforemny@2001:9e8:6cee:2b00:575d:a630:13ac:5fc5)
03:38:59 × aforemny quits (~aforemny@2001:9e8:6cc8:7800:6851:c622:94fb:817b) (Ping timeout: 264 seconds)
03:54:34 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
04:01:46 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
04:07:08 buckwheat joins (~buckwheat@209.122.211.192)
04:08:07 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
04:11:11 cassiopea joins (~cassiopea@user/cassiopea)
04:11:42 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 252 seconds)
04:16:37 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
04:20:25 × XliminalX quits (~goirc@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e) (Remote host closed the connection)
04:21:41 XliminalX joins (~goirc@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e)
04:25:16 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
04:30:21 biberu joins (~biberu@user/biberu)
04:30:36 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
04:39:14 <sm> hey all. What function picks the first result of applying a monadic action to a sequence, like Monad m => (a -> m b) -> [a] -> b ? And why doesn't hoogle find anything for that type signature ?
04:41:46 <sm> aha, should be (a -> m b) -> [a] -> m b
04:44:36 <[Leary]> sm: Maybe you want `asum . fmap`?
04:44:55 <sm> thanks.. no I really just want the first
04:47:08 <[Leary]> Err. `foldr1 (<*) . fmap` then? I doubt you'd find that exposed by a library.
04:49:27 <Axman6> that's not quite the same right? that will execute the function on all inputs, I assume youy want shortcutting
04:53:16 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
04:53:17 × hgolden_ quits (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com) (Quit: Leaving)
05:01:20 <sm> right, I went with:
05:01:20 <sm> case mapM (findError ...) as of
05:01:20 <sm> Just (err:_) -> Left err
05:01:20 <sm> _ -> Right ()
05:06:08 <ski> sm : do you only want `Left', in case `findError ...' gives a `Just' for *every* element of `as' ?
05:06:46 <sm> I only want to find the first Just, and transform it to a Left
05:07:06 <sm> to report just the first error
05:07:31 <ski> what if `map (findError ...) as = [Just err,Nothing,...]', do you still want `Left err' ?
05:08:35 <ski> (because that's not what your snippet just above does. it'll only give `Left' if *every* `findError ...' call gives a `Just')
05:10:28 <monochrom> asum
05:10:29 <ski> if you want to abort on first found error (if any), then use `Either Err' (and have `findError ...' give `Left err', not `Just err' .. or convert, using `maybe (Right ()) Left :: Maybe Err -> Either Err ()')
05:11:36 <sm> ski: argh, thanks! I meant to write (Just err : _) -> ...
05:11:41 <jade[m]> <sm> "hey all. What function picks the..." <- just based off of the description it sounds like you want `foo f = f . head` which seems way too trivial?
05:11:53 <jade[m]> im sure im just not reading it right
05:12:18 <ski> yea, i guess `asum' would also work
05:12:31 <Axman6> m definitely need to be more constrained, or the function needs to return more than just b
05:12:37 sm tried to write the stupid version, and still hasn't grokked the types
05:13:15 trev joins (~trev@user/trev)
05:13:21 <ski> sm : well, in that case, did you also mean to write `map' rather than `mapM' ?
05:13:45 <ski> (also, btw, the brackets in `(Just err : _) -> ...' are redundant)
05:14:21 <sm> hmm.. didn't I get it right ? (It's working so far)
05:15:00 <sm> HLS infers that mapM's type as ([Posting] -> Maybe String) -> [[Posting]] -> Maybe [String]
05:15:16 <ski> just saying that if you change the type of your pattern, perhaps you meant to adapt the expression being scrutinized, as well (unless you intend for that `mapM' to run in the list monad, rather than `Maybe' monad ?)
05:15:48 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
05:16:00 <sm> here's the full function:... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/614ab24356285cbeebce3e92d06d954ad91e8f8a>)
05:16:58 <ski> (in which case, i guess, `as' is not a list, but a `Maybe')
05:17:08 <ski> @type \f as -> mapM f as :: [Maybe String]
05:17:09 <lambdabot> (a -> [String]) -> Maybe a -> [Maybe String]
05:17:20 <ski> @type \f as -> mapM f (as :: Maybe String) :: [Maybe String]
05:17:21 <lambdabot> (String -> [String]) -> Maybe String -> [Maybe String]
05:17:59 <sm> (and: findRecentAssertionError :: Day -> [Posting] -> Maybe String)
05:18:34 <sm> I think it's ok
05:19:04 <jade[m]> sm: > <@simonmic:matrix.org> here's the full function:... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/089823d8766ee567fc1c985261ab426b623f2ad0>)
05:19:17 <sm> gah: "ERROR: please avoid regexps larger than 300 characters, they trigger a memory leak in regex-tdfa"
05:19:55 <sm> I added this message long ago, I wonder if it's still true
05:19:57 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
05:19:58 <ski> sm : that will *only* give `Left err', if *all* elements of `acctps' (which should contain at least one element) give a `Just'
05:19:59 <chreekat> Lol
05:20:39 <ski> sm : if you intended to get a `Left err', if at *least* one of the `acctps' gives a `Just', then you need to rethink
05:21:09 <jade[m]> oh
05:21:26 <sm> ski: hmm, as you were saying. Ok, it's subtle and I guess I have missed it (twice). Thank you. I'll rethink
05:21:51 <sm> it's working, but I suppose accidentally
05:22:47 <ski> sm : fixes : use `Either String ()' as result of `findRecentAssertionError' (or convert the result to that, using `maybe'). or use `asum' as also suggested
05:23:45 catch22 joins (~catch22@204.40.96.58.static.exetel.com.au)
05:24:09 <sm> won't asum "sum" (concatenate) the strings ?
05:24:42 <ski> > asum [Nothing,Just "foo",Nothing,Just "bar"]
05:24:43 <lambdabot> Just "foo"
05:25:11 <sm> aha! Well thanks to the asum suggesters!
05:25:31 <ski> `asum' is probably the simplest, for your (existing) situation
05:25:35 <jade[m]> sm: same meaning of "sum" as in sum-type I believe
05:26:07 <ski> @type asum -- no contraint on element type `a' itself
05:26:08 <lambdabot> (Foldable t, Alternative f) => t (f a) -> f a
05:26:09 <sm> asum: "The sum of a collection of actions using (<|>), generalizing concat."
05:26:36 <ski> @type msum
05:26:37 <lambdabot> (Foldable t, MonadPlus m) => t (m a) -> m a
05:28:00 <sm> I find it rather hard to connect this abstract doc with "what will it do to a list of Maybes ?"
05:28:02 buckwheat joins (~buckwheat@209.122.211.192)
05:29:00 <sm> "concat" would seem to imply keeping all the values
05:29:31 <sm> "sum" seems to imply aggregate all the values
05:30:12 <sm> never mind, onward
05:30:14 <ski> i believe it's "sum", because of the names "mzero","mplus"
05:32:26 <Axman6> Is it bad that I'm finding myself wanting dependant types in python? I really want to represent the size of something in its type
05:32:30 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 250 seconds)
05:32:31 × erisco quits (~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 245 seconds)
05:33:11 × falafel quits (~falafel@2603-7000-a700-8710-ff20-0c7b-3a36-fc77.res6.spectrum.com) (Ping timeout: 246 seconds)
05:33:32 erisco joins (~erisco@d24-141-66-165.home.cgocable.net)
05:35:35 acidjnk joins (~acidjnk@p200300d6e7072f1890d33f2b4a36e93a.dip0.t-ipconnect.de)
05:36:24 thegeekinside joins (~thegeekin@189.217.90.138)
05:38:08 × erisco quits (~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 250 seconds)
05:38:33 erisco joins (~erisco@d24-141-66-165.home.cgocable.net)
05:38:56 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
05:43:22 × pickleju1ce quits (~root@c-73-196-164-60.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
05:43:26 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:46:00 takuan_dozo joins (~takuan@178-116-218-225.access.telenet.be)
05:46:01 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Read error: Connection reset by peer)
05:52:00 × erisco quits (~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 250 seconds)
05:53:02 erisco joins (~erisco@d24-141-66-165.home.cgocable.net)
05:57:57 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
05:59:38 <dminuoso> sm | [05:28:00] I find it rather hard to connect this abstract doc with "what will it do to a list of Maybes ?"
05:59:58 <dminuoso> This applies to pretty much any typeclass that doesnt capture a specific behavior, but just loosely collects things that all follow similar laws.
06:00:41 mncheck joins (~mncheck@193.224.205.254)
06:00:42 <dminuoso> It's largely why Monad is so difficult to absord. You cant figure out what instances do just from staring at the laws.
06:01:16 × mauke quits (~mauke@user/mauke) (Ping timeout: 245 seconds)
06:01:50 <Clinton[m]> ski: yep they were actually thank you. I was already using `barbies` elsewhere, I realised I could just add a `bmap` instance.... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/2c5f78e51c18cdf5c7a37ae85b46d33c0fa687ec>)
06:03:31 <sm> dminuoso: usually in this situation I would click on the relevant typeclass, and from there to the concrete type's implementation to see what it does. I wasn't able to do that this time
06:03:32 <sm> bit of a documentation and dev experience challenge
06:04:40 <dminuoso> I think it leads to frustrating and bad UX if looking up the implementation is whats required to understand an interface.
06:05:14 <sm> indeed, not having to do that would be even better. In good cases, the concrete type has a haddock saying what it does
06:05:38 <dminuoso> While in haddock you could in principle attach some text to the instance, it would be more useful if you could just select an instance and it would display haddock strings attached to the methods instead.
06:05:51 <dminuoso> And a universe in which methods were thoroughly documented.
06:06:02 <sm> YES
06:06:45 <sm> (For the record, I settled on this, finding it clearer than asum):
06:06:45 <sm> in case mapMaybe (findRecentAssertionError today) acctps of
06:06:45 <sm> [] -> Right ()
06:06:45 <sm> firsterr:_ -> Left firsterr
06:08:01 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
06:08:53 <dminuoso> sm: You could also traverse over the thing.
06:09:03 <dminuoso> I feel like that might capture the behavior better
06:09:42 <sm> oh, eg ?
06:11:17 <sm> just s/mapMaybe/traverse/ ?
06:11:22 <dminuoso> sm: So turn findRecentAssertionError into producing `Either Err ()`, then the whole thing becomes just a `traverse (findRecentAssertionError today) acctps`
06:11:44 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
06:12:19 <dminuoso> Because `Either T` under Monad behaves an exception effect, aborting on the first T
06:13:01 <ski> Clinton[m] : hm, surprised that seems to work with `NoTypeInType'
06:13:09 <sm> I see. Still, ilke asum, I find it a little non-obvious to the average reader/would-be-contributor that traverse will pick the first Just here. mapMaybe at least has a clear doc and the firsterr name also helps
06:13:35 <ski> (i dunno about a way to generate the boilerplate. `Generic' might work, i suppose, or else TH)
06:13:39 <sm> s/Just/error/
06:13:50 <dminuoso> sm: well, rename findRecentAssertoin error into `assertNoError`
06:13:56 <dminuoso> Or some such
06:14:26 <dminuoso> `traverse (assertNoError today) acctps` reads fine to me.
06:14:42 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
06:14:50 <dminuoso> or `for_ acctps (assertNoErr today)`
06:14:57 <sm> you would read that and think "this will evaluate to the first error" ?
06:15:19 <dminuoso> sm: To me it reads like something that goes over all acctps and checks that there are no errors. Thats the intent.
06:15:28 <dminuoso> What this does internally is something I can discover easily if I cared enough.
06:15:36 <Clinton[m]> ski: yeah, just needs `DataKinds`. I think the `singletons` library does the job. It's just a bit more generalised than my use case, so it took me a while to work out how to apply it. I'll apparently need to quasi-quote the data type definition to general the singleton template Haskell but that's fine in my use case.
06:15:37 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 245 seconds)
06:15:41 <ski> dminuoso : yea, i suggested `Either Err ()' (with `mapM', which sm was initially using), and others suggested `asum' (on `Maybe Err')
06:16:18 <ski> sm : `mapMaybe' looks fine, to me
06:16:49 <dminuoso> I guess it depends on established code styles. I relatively heavy use of `traverse`.
06:17:21 <ski> mhm, Clinton[m]
06:17:25 <sm> yup. I want this to be readable to non-expert haskellers (and myself next year)
06:17:26 <dminuoso> But I do have plenty of `wither` (generalized form of mapMaybe) as well. :)
06:17:39 <sm> well thanks for the input all. This might get refactored later, but not today, I spent too much time on it.
06:17:59 <dminuoso> Happy to bikeshed. :)
06:18:08 <sm> I had tests passing and was ready to push this bug, and it would have been a pain to track down much later. ski and #haskell FTW!!
06:18:45 × nick4 quits (~nick@2600:8807:9084:7800:8939:f628:ed3d:955) (Ping timeout: 246 seconds)
06:19:36 neuroevolutus joins (~neuroevol@2001:ac8:9a:76::1e)
06:31:02 × matijja quits (~matijja@193.77.181.201) (Ping timeout: 252 seconds)
06:31:02 × Philonous quits (~Philonous@user/philonous) (Ping timeout: 252 seconds)
06:31:16 × mncheck quits (~mncheck@193.224.205.254) (Read error: Connection reset by peer)
06:31:46 × cassiopea quits (~cassiopea@user/cassiopea) (Ping timeout: 252 seconds)
06:32:08 × mmaruseacph2 quits (~mihai@mihai.page) (Ping timeout: 252 seconds)
06:32:35 jonathan joins (~jonathan@c83-252-3-92.bredband.tele2.se)
06:32:35 Philonous_ joins (~Philonous@user/philonous)
06:32:35 mncheck-m joins (~mncheck@193.224.205.254)
06:32:35 cassiope1 joins (~cassiopea@user/cassiopea)
06:32:35 mmarusea1ph2 joins (~mihai@mihai.page)
06:32:49 matijja joins (~matijja@193.77.181.201)
06:38:10 hgolden joins (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com)
06:40:43 × dibblego quits (~dibblego@haskell/developer/dibblego) (Quit: λ)
06:40:57 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
06:40:57 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
06:40:57 dibblego joins (~dibblego@haskell/developer/dibblego)
06:41:12 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
06:41:40 michalz joins (~michalz@185.246.207.215)
06:41:55 × ft quits (~ft@p3e9bcafd.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
06:42:42 titibandit joins (~titibandi@user/titibandit)
06:43:43 ft joins (~ft@p3e9bc835.dip0.t-ipconnect.de)
06:50:45 fendor joins (~fendor@2a02:8388:1640:be00:bfd6:9a8f:d4f6:3a03)
06:51:28 × sm[i] quits (~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
06:55:19 sm[i] joins (~sm@024-165-041-186.res.spectrum.com)
06:56:33 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
07:00:38 × catch22 quits (~catch22@204.40.96.58.static.exetel.com.au) (Quit: Leaving)
07:01:02 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
07:02:05 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1)
07:02:44 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:03:48 × bilegeek quits (~bilegeek@2600:1008:b023:ebcc:e781:815d:405f:74ed) (Quit: Leaving)
07:05:16 Guest9190 joins (~finn@176-151-21-224.abo.bbox.fr)
07:15:05 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
07:20:17 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
07:21:02 buckwheat joins (~buckwheat@209.122.211.192)
07:21:53 gurkenglas joins (~gurkengla@dynamic-002-247-240-129.2.247.pool.telefonica.de)
07:22:42 fweht joins (uid404746@id-404746.lymington.irccloud.com)
07:24:09 × dibblego quits (~dibblego@haskell/developer/dibblego) (Quit: λ)
07:25:11 <arahael_> I'm attempting to create a new monad, just to try and relearn some of my old haskell, however, I want this monad to effectively "concat" every result it has, however, I'm not sure how to get access to the Semigroup instance:
07:25:15 <arahael_> What I have: instance Monad HtmlElementS where
07:25:40 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 252 seconds)
07:26:34 <arahael_> HtmlElementS is a type where I would like it to contain just HtmlElement, but because I need HtmlElementS to have type '* -> *' for some reason (Not entirely sure why...), I have to leave it underspecified. Which means the monad instance has to be fully generic. How can I otherwise make it instead be: instance Monad (HtmlElementS HtmlElement) where ... ?
07:27:26 <arahael_> Because without knowing that the type is HtmlElement, I can't access it's Semigroup instance.
07:28:32 Wstfgl0 is now known as Me-me
07:28:36 × Me-me quits (~me-me@2602:ff16:3:0:1:dc:beef:d00d) (Changing host)
07:28:36 Me-me joins (~me-me@user/me-me)
07:28:43 <dminuoso> arahael_: The why is really hard to explain beyond just looking at
07:28:46 <dminuoso> % :t (>>=)
07:28:46 <yahb2> (>>=) :: Monad m => m a -> (a -> m b) -> m b
07:28:55 <dminuoso> % :t return
07:28:56 <yahb2> return :: Monad m => a -> m a
07:29:10 <dminuoso> Note that the quantification is a bit misleading here.
07:29:20 <dminuoso> Assume you are writing an instance for a particular type called T.
07:29:24 <dminuoso> Then you have:
07:29:36 <dminuoso> (>>=) :: forall a b. T a -> (a -> T b) -> m b
07:29:55 <dminuoso> arahael_: Can you see how fundamentally this is about parameterized types that you cant/dont control?
07:30:25 <arahael_> I think so, so there's no way for me to say something like, "Define this as an instance of Monad whenever a and b have a Semigroup instance?"
07:30:29 × Putonlalla quits (~Putonlall@it-cyan.it.jyu.fi) (Ping timeout: 258 seconds)
07:30:45 <dminuoso> arahael_: Maybe start from the beginning. The desire to make it a Monad instance seems strange.
07:30:47 <arahael_> Because if I could say that, then that'd be a different type quantification?
07:30:52 <dminuoso> Why do you insist on making a Monad instance?
07:31:32 <arahael_> dminuoso: It is a bit strange, yeah. What I'm attempting to do is define a nice little DSL that makes it easy to code generate an HTML document. Not sure if it's something pragmatic, it's just a useful excercise to explore haskell with.
07:32:34 <arahael_> So basically I want to be able to do something like: html = do h1 "The Title"; p "This is the first paragraph"; etc...
07:32:52 <dminuoso> Okay. So the Monad wish comes from wanting to write this inside do-notation?
07:32:58 <arahael_> Basically, yeah.
07:33:01 <dminuoso> Okay thats fine
07:33:24 <dminuoso> arahael_: So consider this example why it must be parametrized:
07:33:25 <arahael_> It also came from observing that 'Free monads" are apparently great for defining DSL's like that. Except I don't really understand how to define those either.
07:33:32 <dminuoso> You could write: a <- pure '1'
07:33:50 <dminuoso> Whether you actually want to write that or not is irrelevant. If you make it Monad, that interface must be supported.
07:33:52 <dminuoso> Similarly:
07:34:03 <dminuoso> `a <- yourHTMLbuilderMonad` in general must be something sensible
07:34:11 <ski> perhaps you could make an output/logging/writer monad
07:34:41 <ski> i guess, `Writer HtmlElement' or so
07:35:42 <arahael_> dminuoso: Trouble is, right now, the `a <- yourHtmlBuilderMonad` only returns the last item because my `>>=` is just: HtmlElementS a >>= f = f a
07:36:12 <dminuoso> arahael_: What Im rather saying is, a monad has some (generalized/rough) notion of "result" that each action can embody.
07:36:17 <ski> you've defined `newtype HtmlElementS a = HtmlElementS a' ?
07:36:23 <arahael_> ski: Yes.
07:36:35 <dminuoso> arahael_: Perhaps start with what ski recommended wrt output/logging/writer.
07:36:40 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
07:36:40 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
07:36:40 dibblego joins (~dibblego@haskell/developer/dibblego)
07:36:46 <ski> how about `data HtmlElementS a = MkHtmlElementS HtmlElement a' ?
07:37:13 titiband1t joins (~titibandi@user/titibandit)
07:37:13 <dminuoso> ski: Mmm, that wont be enough sensibly, you need a zipper at least.
07:37:14 <ski> (which is basically equivalent to `type HtmlElementS = Writer HtmlElement')
07:37:17 <arahael_> ski: I did think about just using a state monad, but I wanted to figure out how to *define* this.
07:37:41 <ski> why state ?
07:37:45 <ski> dminuoso : why zipper ?
07:38:07 <dminuoso> ski: In most conceivable scenarios for HTML building, you will not just want a list of HTML tags, but probably build a tree of things.
07:38:13 <ski> anyway, nothing stopping you from explicitly giving the `Monad' instance
07:38:32 <dminuoso> But I guess you can also just do things like nested do-blocks with this style
07:38:33 <ski> dminuoso : could be fixed with an auxilary combinator ?
07:38:52 <arahael_> dminuoso: I'm currently looking up resources that might guide me towards knowing how to *implement* the writer monad.
07:39:05 <ski> well, i mean, like `p' and similar could gather up and put in a substructure
07:39:20 <ski> (so `HtmlElement' would be the tree type, then)
07:39:41 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 258 seconds)
07:39:41 <dminuoso> arahael_: Writer monad really isnt much more than just a tuple.
07:40:08 <dminuoso> arahael_: The idea is that one element is some sort of 'log' that you can append things into, together with some sort of action result type.
07:40:15 <arahael_> dminuoso: Sounds like the *monad* is building the value, then? I was trying to make it the HtmlElement itself build the value?
07:40:33 <ski> arahael_ : output/logger/writer is just : concatenate/combine output from parallel computations
07:40:53 <dminuoso> arahael_: The building isnt the "monad", the building happens in the combinators.
07:41:40 <dminuoso> If we take a tuple over some log we append to, then (>>=) becomes isomorphic to: (Log, a) -> (a -> (Log, b)) -> (Log, b)
07:41:41 <ski> arahael_ : you wanting to use `do' means that `(>>=)' (and `(>>)') will be called under the covers. that does the plumbing of combining the output log from all parts of the computation, into a single one
07:41:59 <dminuoso> arahael_: And if you stare at that type signature for just a minute, you might begin to realize how silly simple the idea really is.
07:42:11 <ski> (logA,a) >>= k = (logA <> logB,b)
07:42:12 chele joins (~chele@user/chele)
07:42:13 <ski> where
07:42:17 <ski> (logB,b) = k a
07:42:53 × titiband1t quits (~titibandi@user/titibandit) (Remote host closed the connection)
07:42:54 <dminuoso> Oh, I guess I elided a Monoid constraint on `a` (which technically just needs to be Semigroup there, but oh well)
07:42:58 <ski> (logA,_) >> (logB,b) = (logA <> logB,b) -- the simpler case
07:43:02 <arahael_> dminuoso: Yeah, about that...
07:43:02 <dminuoso> err Log!
07:43:09 <arahael_> dminuoso: How do you get access to that constraint?
07:43:19 <dminuoso> arahael_: In this particular example its assumed to already exist on Log.
07:43:26 <arahael_> dminuoso: How!?
07:43:31 <dminuoso> `instance Monoid Log`
07:43:39 <arahael_> Ah, for MOnoid, yeah.
07:43:46 <arahael_> But Monad requires a * -> * type.
07:43:55 <arahael_> So there's no way it knows about "Log", rihgt?
07:43:58 <arahael_> *Right?
07:43:58 <ski> yes ?
07:44:00 <ski> no need
07:44:07 carbolymer_ is now known as carbolymer
07:44:12 <ski> it's `Log', not `a', which needs `Semigroup'/`Monoid'
07:44:26 <ski> (`Monoid' is needed for `return'/`pure')
07:44:34 <arahael_> In my case I've already defined the Semigroup instance for HtmlElement, but HtmlElementS can't know about it.
07:44:35 Putonlalla joins (~Putonlall@it-cyan.it.jyu.fi)
07:45:27 <ski> `a' is just whatever custom "monadic result type" that the user of your `HtmlElementS' monad will use. you don't really need to care about it, apart from plumbing it around correctly. `a' is not the logging type (`HtmlElement' in your case)
07:46:18 <ski> arahael_ : "but HtmlElementS can't know about it" -- of course it can know about it, as long as `instance Semigroup HtmlElement where ...' is either in the same module, or in a module which is (transitively) imported into your module
07:46:28 <arahael_> It is in the same module.
07:47:05 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds)
07:47:05 aforemny_ is now known as aforemny
07:47:11 × neuroevolutus quits (~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
07:47:13 <arahael_> But I mean, I can't do antyhing like: data HtmlElementS = HtmlElementS HtmlElement; because I need to keep that type parameter in there.
07:47:44 <ski> if you'd be using `Writer', then this would be `instance Monoid w => Monad (Writer w)'. in the `Monad' instance, considering `Writer w a', you're not allowed to add any constraints to *`a'* .. but you *are* allowed to add constaints for `w' (`HtmlElement' in your case)
07:48:10 CiaoSen joins (~Jura@2a05:5800:295:7d00:664b:f0ff:fe37:9ef)
07:48:57 <arahael_> I need to go soon, is there some good reading material that I should go through for this? I'm already wanting to look up the code for 'Writer', but I'm noticing that most of the examples in Hoogle seem to be based on Monad transformers, which is a complication I dont yet want to figure out.
07:48:59 <ski> (but since `HtmlElement' is a type constant, not a type variable, there's no need to say `instance Monoid HtmlElement => Monad HtmlElementS where ...'. because `instance Monoid HtmlElement' is already known, we can remove the (redundant) explicit constraint `Monoid HtmlElement => ' from the former instance declaration)
07:49:15 <ski> @where Typeclassopedia
07:49:15 <lambdabot> http://www.haskell.org/haskellwiki/Typeclassopedia
07:49:20 <ski> @where AAM
07:49:20 <lambdabot> http://www.haskell.org/haskellwiki/All_About_Monads
07:49:54 <ski> those should talk about `Writer w a', which is what's relevant here
07:51:11 <arahael_> I think that's a great page for me to spend some time understanding, I should head off for my thing and then get back to reading that page, and probably implement a bunch of those monads myself before trying to do something fancy with a new monad type.
07:51:54 <ski> yes. implementing yourself will probably help. also try to make some example usage as well, using them to solve some simple task
07:52:21 <arahael_> Thanks ski, (and thanks dminuoso, for explaining why the types just didn't work how I wanted it, too!) :)
07:52:36 <arahael_> ski: I think I'll do exactly that. :)
07:52:52 <ski> @where wadler-monads
07:52:53 <lambdabot> Monad(ic (, idiomatic/applicative and arrow) effects) introduction papers by Philip Wadler in 1992-01 - 2010 at <https://homepages.inf.ed.ac.uk/wadler/topics/monads.html>. Start from oldest. Perhaps
07:52:53 <lambdabot> skip the ones touching upon composable continuations, idioms, constraints, arrows, on a first read
07:53:30 <arahael_> I think I'll go through that haskellwiki page first, ,the language there looks reasonably approachable.
07:53:34 <ski> you could try some of Wadler's papers (starting from older ones), possibly
07:53:39 <ski> Walder tends to be quite readable
07:54:00 <arahael_> Ok, well I'll check them out and see whichever ones I want to work through. :)
07:54:01 <ski> s/Walder/Wadler/
07:54:08 <arahael_> I do need to go now, though - thanks again for your help!
07:54:14 <ski> yw
07:55:08 <ski> @where hell-monads
07:55:08 <lambdabot> "What the hell are Monads?" by Noel Winstanley in 1999-02 at <https://www-users.mat.umk.pl/~fly/materialy/fp/haskell-doc/Monads.html>. Possibly the first (non-paper) general monad tutorial
07:55:50 <dminuoso> Lately Ive been wondering whether these law-centric typeclasses were ever a good idea.
07:57:00 gmg joins (~user@user/gehmehgeh)
07:57:58 <ski> hm, guess that link seems to be broken. <https://web.archive.org/web/19991018214519/http://www.dcs.gla.ac.uk/~nww/Monad.html> works, as well as <https://web.archive.org/web/20221208185730/https://www-users.mat.umk.pl/~fly/materialy/fp/haskell-doc/Monads.html>
07:58:28 <ski> elaborate ?
07:59:45 <dminuoso> So take Monoid for instance. It is an abstract interface that has no clear purpose.
08:00:21 <ski> ah, you might be touching upon that there can in general be multiple distinct valid instances ?
08:00:34 <dminuoso> Sure, that's half of it.
08:00:44 <dminuoso> The other half is that often across the instances, there's no common theme other than really just the laws.
08:01:34 <dminuoso> If I asked you "what does <|>" do, you have no choice but to say "anything really, its just about the laws"
08:02:04 <dminuoso> Which makes any ad-hoc incantation (where you have an immediate local monomorphization) just hidden code selection.
08:02:05 <ski> (also reminds me of occasionally, people, years ago, suggesting something like `class (Functor f,Functor g) => NatTrans f g where natTrans :: f a -> g a' .. which thankfully didn't become a thing)
08:02:37 <dminuoso> Say if I write `[1,2] <> [3,4]` Im really just being sneaky, in that the reader cant clearly know what this will do.
08:03:00 <dminuoso> You have to specifically know what the Monoid [] instance does, you cant clearly infer the behavior from the laws alone.
08:03:21 <dminuoso> Monoid is useful when its used in polymorphic positions say Monad Writer
08:03:53 <dminuoso> Or law-centric typeclasses in general
08:04:29 <ski> being able to talk about objects in other categories, might perhaps help with part of this
08:04:49 <dminuoso> `a >>= f` is quite useless unless you happen know the types involved and the behavior of the monad instance. a `concatMap` f has clear ascribed behavior and behavior.
08:04:59 <dminuoso> ascribed behavior and semantics.
08:05:29 <ski> (saying `Sum Integer' is a workaround to trying to specify the additive monoid of integers, not as a set/type, but as a monoid)
08:06:10 <dminuoso> ski: Well is `getSum (Sum 1 <> Sum 2)` any more useful than `1 + 2`?
08:06:36 <dminuoso> Though this is a slightly bad example in that the newtype wrapper very explicitly mentions the behavior
08:07:03 <ski> yea .. if you're already in a concrete situation, using a concrete specialization is often preferable. like `map' over `fmap', or `concat' over `join'
08:08:23 <ski> well, the point of `Sum' is really to be able to plug in some specific "summarizing" (monoid) behaviour, into some operation that works over any monoid
08:09:01 merijn joins (~merijn@195.114.232.94)
08:09:16 <ski> (like traversing some custom tree, perhaps pruning away some subtrees, while summarizing found information, perhaps)
08:09:45 <dminuoso> ski: Right. Law-centric typeclasses are primarily useful for writing code that is polymorphic over them.
08:11:20 <dminuoso> With Monad it often works because some discipline where only one instance is really ever used.
08:13:15 <dminuoso> And in part this is why Monad is such a hard hurdle, mainly because its interface and laws are largely not relevant for someone instantiating m in `Monad m => ...`
08:13:42 <dminuoso> Its mainly relevant for people writing polymorphic `forall m. Monad m => ...` code
08:14:08 mmhat joins (~mmh@p200300f1c7114c4cee086bfffe095315.dip0.t-ipconnect.de)
08:14:09 × mmhat quits (~mmh@p200300f1c7114c4cee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
08:19:13 danse-nr3 joins (~francesco@151.57.246.23)
08:20:26 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:b51c:90a2:c6ee:ffbb) (Remote host closed the connection)
08:21:57 × danse-nr3 quits (~francesco@151.57.246.23) (Read error: Connection reset by peer)
08:22:13 danse-nr3 joins (~francesco@151.47.247.62)
08:24:07 × razetime quits (~quassel@117.193.6.5) (Ping timeout: 245 seconds)
08:27:28 titiband1t joins (~titibandi@user/titibandit)
08:27:38 × danse-nr3 quits (~francesco@151.47.247.62) (Ping timeout: 252 seconds)
08:28:54 danse-nr3 joins (~francesco@151.54.45.22)
08:30:22 × jonathan quits (~jonathan@c83-252-3-92.bredband.tele2.se) (Ping timeout: 245 seconds)
08:31:39 × sm[i] quits (~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
08:32:13 sm[i] joins (~sm@024-165-041-186.res.spectrum.com)
08:32:15 × mei quits (~mei@user/mei) (Remote host closed the connection)
08:32:20 dcoutts joins (~duncan@195.80.64.243)
08:32:36 <merijn> oh fun times
08:32:50 × sm[i] quits (~sm@024-165-041-186.res.spectrum.com) (Client Quit)
08:32:55 <merijn> now I need to go update a ton of code because * gets deprecated in kind signatures
08:33:18 misterfish joins (~misterfis@87.215.131.102)
08:34:39 mei joins (~mei@user/mei)
08:35:22 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
08:39:21 × titiband1t quits (~titibandi@user/titibandit) (Remote host closed the connection)
08:39:43 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
08:39:43 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
08:39:43 dibblego joins (~dibblego@haskell/developer/dibblego)
08:44:55 <danse-nr3> i guess you are in good company, wondering whether it can be automated. Just found out about hlint --refactor
08:45:04 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
08:45:25 × dcoutts quits (~duncan@195.80.64.243) (Ping timeout: 240 seconds)
08:47:58 razetime joins (~quassel@117.193.6.5)
08:51:14 <Profpatsch> I never realized that fmap for Map.Strict is kinda dangerous oO
08:51:20 <Profpatsch> It uses the lazy fmap
08:51:41 <Profpatsch> So one should always use Map.map or Map.mapWithKey
08:52:16 <Profpatsch> hlint should really include a lint that detects the usage of bad instances (maybe it does and I don’t know about it?)
08:52:45 <Profpatsch> Like, we already lint for Data.Map -> Data.Map.Strict
08:52:55 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds)
08:53:04 <Profpatsch> containers has an uncanny amount of tripwires :(
08:57:50 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
08:59:42 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
08:59:58 robobub joins (uid248673@id-248673.uxbridge.irccloud.com)
09:00:58 <danse-nr3> well not really "dangerous" as far as i understand ... just slow
09:04:08 × tbidne[m] quits (~tbidnemat@2001:470:69fc:105::3:6d42) (Remote host closed the connection)
09:05:32 × danse-nr3 quits (~francesco@151.54.45.22) (Remote host closed the connection)
09:06:55 danse-nr3 joins (~francesco@151.54.45.22)
09:08:17 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
09:09:30 × razetime quits (~quassel@117.193.6.5) (Remote host closed the connection)
09:11:27 razetime joins (~quassel@117.193.6.5)
09:14:24 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
09:15:47 × bontaq quits (~user@ool-45779b84.dyn.optonline.net) (Ping timeout: 246 seconds)
09:17:45 jonathan_ joins (~jonathan@ip-185-104-137-43.ptr.icomera.net)
09:18:13 <Profpatsch> Yeah that’s dangerous :P
09:20:54 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
09:22:37 × ft quits (~ft@p3e9bc835.dip0.t-ipconnect.de) (Quit: leaving)
09:25:01 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
09:27:17 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
09:30:39 waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
09:31:25 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
09:32:32 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
09:34:17 Lord_of_Life_ is now known as Lord_of_Life
09:35:40 Midjak joins (~Midjak@82.66.147.146)
09:47:56 Wojciech_K joins (~Wojciech_@2a01:4f9:6a:18a8::239)
09:53:21 barcisz joins (~barcisz@31-151-117-10.dynamic.upc.nl)
09:53:32 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
10:00:37 buckwheat joins (~buckwheat@209.122.211.192)
10:02:02 × waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 245 seconds)
10:02:22 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:03:16 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
10:03:42 × jonathan_ quits (~jonathan@ip-185-104-137-43.ptr.icomera.net) (Ping timeout: 245 seconds)
10:04:31 waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
10:05:47 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
10:11:19 × infinity0 quits (~infinity0@pwned.gg) (Remote host closed the connection)
10:12:25 jonathan_ joins (~jonathan@ip-185-104-137-43.ptr.icomera.net)
10:13:14 × xff0x_ quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds)
10:13:26 infinity0 joins (~infinity0@pwned.gg)
10:15:51 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
10:23:42 × jonathan_ quits (~jonathan@ip-185-104-137-43.ptr.icomera.net) (Ping timeout: 250 seconds)
10:27:27 × waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 245 seconds)
10:28:01 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
10:29:32 × CiaoSen quits (~Jura@2a05:5800:295:7d00:664b:f0ff:fe37:9ef) (Ping timeout: 245 seconds)
10:36:05 <danse-nr3> hlint --refactor can do huge amounts of edits by itself, but it has a strange annoying bug where it repeats comments lots of times
10:37:36 __monty__ joins (~toonn@user/toonn)
10:39:33 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
10:39:33 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
10:39:33 dibblego joins (~dibblego@haskell/developer/dibblego)
10:47:01 buckwheat joins (~buckwheat@209.122.211.192)
10:47:54 picklejuice joins (~root@c-73-196-164-60.hsd1.nj.comcast.net)
10:51:16 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
10:57:16 buckwheat joins (~buckwheat@209.122.211.192)
10:57:36 × buckwheat quits (~buckwheat@209.122.211.192) (Client Quit)
10:58:13 buckwheat joins (~buckwheat@209.122.211.192)
10:59:23 jonathan_ joins (~jonathan@c-5eea6678-74736162.cust.telenor.se)
11:00:26 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
11:06:43 xff0x_ joins (~xff0x@2405:6580:b080:900:4b46:1f06:e600:57cc)
11:07:52 × razetime quits (~quassel@117.193.6.5) (Ping timeout: 245 seconds)
11:08:37 razetime joins (~quassel@117.193.2.3)
11:09:23 × razetime quits (~quassel@117.193.2.3) (Remote host closed the connection)
11:10:44 st4hoo joins (~st4hoo@188.146.127.34)
11:14:51 × mechap quits (~mechap@user/mechap) (Ping timeout: 246 seconds)
11:14:55 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
11:14:55 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
11:14:55 dibblego joins (~dibblego@haskell/developer/dibblego)
11:16:03 mechap joins (~mechap@user/mechap)
11:16:55 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:21:17 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
11:23:21 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
11:25:02 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
11:25:03 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
11:25:03 dibblego joins (~dibblego@haskell/developer/dibblego)
11:25:55 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
11:28:00 jsomedon joins (uid606872@id-606872.hampstead.irccloud.com)
11:30:09 mikoto-chan joins (~mikoto-ch@2001:999:780:6f0f:ee7:650:b115:e67d)
11:31:12 × jonathan_ quits (~jonathan@c-5eea6678-74736162.cust.telenor.se) (Ping timeout: 245 seconds)
11:36:35 jonathan_ joins (~jonathan@94.234.102.120)
11:37:52 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
11:40:07 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
11:41:12 × mechap quits (~mechap@user/mechap) (Ping timeout: 240 seconds)
11:43:45 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
11:43:46 × jonathan_ quits (~jonathan@94.234.102.120) (Read error: Connection reset by peer)
11:44:36 jonathan_ joins (~jonathan@host-217-213-130-57.mobileonline.telia.com)
11:48:17 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
11:49:10 dobblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
11:49:10 × dibblego quits (~dibblego@haskell/developer/dibblego) (Read error: Connection reset by peer)
11:49:10 × dobblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
11:49:10 dobblego joins (~dibblego@haskell/developer/dibblego)
11:49:28 dobblego is now known as dibblego
11:50:42 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
11:52:37 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
11:53:40 euandreh joins (~Thunderbi@189.6.18.7)
11:57:45 ddellacosta joins (~ddellacos@146.70.165.140)
11:58:03 × st4hoo quits (~st4hoo@188.146.127.34) (Remote host closed the connection)
11:58:27 st4hoo joins (~st4hoo@188.146.127.34)
12:01:26 CiaoSen joins (~Jura@2a05:5800:295:7d00:664b:f0ff:fe37:9ef)
12:03:44 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
12:04:17 euandreh joins (~Thunderbi@189.6.18.7)
12:08:42 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 245 seconds)
12:09:01 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
12:11:17 euandreh joins (~Thunderbi@189.6.18.7)
12:14:14 × danse-nr3 quits (~francesco@151.54.45.22) (Ping timeout: 252 seconds)
12:20:57 × mikoto-chan quits (~mikoto-ch@2001:999:780:6f0f:ee7:650:b115:e67d) (Ping timeout: 246 seconds)
12:25:54 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds)
12:33:28 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
12:33:29 mikoto-chan joins (~mikoto-ch@2001:999:780:6f0f:ee7:650:b115:e67d)
12:33:32 × xff0x_ quits (~xff0x@2405:6580:b080:900:4b46:1f06:e600:57cc) (Ping timeout: 240 seconds)
12:35:45 xff0x_ joins (~xff0x@ai086045.d.east.v6connect.net)
12:37:26 mechap joins (~mechap@user/mechap)
12:37:56 × mechap quits (~mechap@user/mechap) (Client Quit)
12:38:04 × gurkenglas quits (~gurkengla@dynamic-002-247-240-129.2.247.pool.telefonica.de) (Ping timeout: 252 seconds)
12:38:38 comerijn joins (~merijn@185.143.104.11)
12:39:07 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
12:41:25 × merijn quits (~merijn@195.114.232.94) (Ping timeout: 240 seconds)
12:43:12 × comerijn quits (~merijn@185.143.104.11) (Ping timeout: 252 seconds)
12:44:51 × cods quits (~fred@82-65-232-44.subs.proxad.net) (Quit: leaving)
12:44:53 merijn joins (~merijn@195.114.232.94)
12:45:47 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
12:46:05 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
12:46:35 mauke joins (~mauke@user/mauke)
12:49:31 waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
12:50:54 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 252 seconds)
12:53:51 cods joins (~fred@82-65-232-44.subs.proxad.net)
12:55:33 <merijn> And now for the epic journey of converting 4 packages into a single package with multiple public libraries
12:56:51 danse-nr3 joins (~francesco@151.19.253.178)
12:57:36 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
13:02:12 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 240 seconds)
13:05:22 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
13:09:12 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
13:10:18 bratwurst joins (~dfadsva@2604:3d09:207f:f650::c680)
13:12:14 <Profpatsch> wow I just love Haskell; writing tests for a pretty involved csv parser which needs to fetch multiple things from the database in between, moved all database fetchers into a mock record argument, now I can just write a test in `pure`
13:12:44 <Profpatsch> Pretty mechanical conversion. I don’t even want to know how brittle this refactor would be in a language with unrestricted side-effects
13:13:01 <kuribas> or with crazy mocking practices like python.
13:14:00 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds)
13:14:07 <Profpatsch> I mean the “pure” handler is still an an `m`, but it’s only MonadIO, MonadThrow and MonadLogger, all of which are available to the test handler
13:15:15 <Profpatsch> the non-pure `m` is in MonadPostgres, MonadHttpRequest etc, and also wrapped in a Transaction transformer to run it all atomic on the database
13:15:31 <Profpatsch> mtl is amazing
13:15:42 × trev quits (~trev@user/trev) (Quit: trev)
13:16:30 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1)
13:18:22 buckwheat joins (~buckwheat@209.122.211.192)
13:19:47 × bratwurst quits (~dfadsva@2604:3d09:207f:f650::c680) (Ping timeout: 264 seconds)
13:20:02 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
13:20:40 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
13:22:08 × st4hoo quits (~st4hoo@188.146.127.34) (Quit: Leaving)
13:22:20 × laman3 quits (~laman@rego.ai) (Quit: WeeChat 3.5)
13:22:27 × mikoto-chan quits (~mikoto-ch@2001:999:780:6f0f:ee7:650:b115:e67d) (Ping timeout: 245 seconds)
13:24:41 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429)
13:25:47 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
13:25:55 ccapndave joins (~ccapndave@mob-194-230-147-118.cgn.sunrise.net)
13:26:50 × waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
13:28:54 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429) (Ping timeout: 246 seconds)
13:28:56 shriekingnoise joins (~shrieking@186.137.175.87)
13:31:36 × dsrt^ quits (~cd@24.125.210.85) (Remote host closed the connection)
13:32:27 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
13:34:19 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
13:36:09 danse-nr3_ joins (~francesco@151.54.45.22)
13:37:06 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
13:37:16 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
13:37:20 × ccapndave quits (~ccapndave@mob-194-230-147-118.cgn.sunrise.net) (Quit: Textual IRC Client: www.textualapp.com)
13:37:46 × jsomedon quits (uid606872@id-606872.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
13:38:11 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
13:39:36 × danse-nr3 quits (~francesco@151.19.253.178) (Ping timeout: 245 seconds)
13:41:27 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
13:42:58 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 252 seconds)
13:43:56 waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
13:46:52 dcoutts joins (~duncan@195.80.64.243)
13:49:52 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
13:53:10 × driib quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
13:54:34 driib joins (~driib@vmi931078.contaboserver.net)
13:54:58 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 258 seconds)
13:55:14 × jonathan_ quits (~jonathan@host-217-213-130-57.mobileonline.telia.com) (Remote host closed the connection)
13:55:39 jonathan_ joins (~jonathan@host-217-213-130-57.mobileonline.telia.com)
13:59:25 sm[i] joins (~sm@024-165-041-186.res.spectrum.com)
13:59:38 <monochrom> Profpatsch: Mock testing is driving by parametricity (free theorems): http://www.vex.net/~trebla/haskell/abs-type-param.html :)
14:00:02 <monochrom> err s/driving/powered/
14:00:03 × sm[i] quits (~sm@024-165-041-186.res.spectrum.com) (Client Quit)
14:00:33 <monochrom> In fact I am teaching that today in class!
14:01:23 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
14:02:02 × barcisz quits (~barcisz@31-151-117-10.dynamic.upc.nl) (Ping timeout: 252 seconds)
14:04:32 × mncheck-m quits (~mncheck@193.224.205.254) (Ping timeout: 245 seconds)
14:04:47 × acidjnk quits (~acidjnk@p200300d6e7072f1890d33f2b4a36e93a.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
14:05:55 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 240 seconds)
14:11:34 × dcoutts quits (~duncan@195.80.64.243) (Ping timeout: 252 seconds)
14:12:07 × kitzman_ quits (~kitzman@user/dekenevs) (Quit: C-x C-c)
14:12:18 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
14:12:57 <yin> i'm having trouble installing ghc via ghcup on void linux
14:13:16 <maerwald> yin: yes
14:13:18 <maerwald> sec
14:13:28 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
14:13:29 <yin> it hangs on "installing ghc (this may take a while)"
14:13:47 <maerwald> musl?
14:14:07 <yin> glibc
14:14:28 <maerwald> that should work
14:14:42 <maerwald> also need: xbps-install -S curl gcc gmp make ncurses ncurses-libtinfo-libs perl
14:15:37 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 245 seconds)
14:15:40 <yin> check
14:15:42 <monochrom> Will there be a null linux too? :)
14:17:37 <Profpatsch> monochrom: the problem I have with statements such as this, is that “mocking” is an intuitive term, not a formal one
14:17:57 <Profpatsch> ofc it’s true on an intuitive level, but the formalisms around it are not needed for understanding imo
14:18:13 euandreh joins (~Thunderbi@189.6.18.7)
14:18:21 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
14:18:55 <Profpatsch> once you give it a formal definition, you can start being more precise, but then the question becomes whether you formal definition corresponds to reality in any meaningful way :P
14:18:57 gmg joins (~user@user/gehmehgeh)
14:19:13 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
14:19:16 <monochrom> I think this one does.
14:19:48 <Profpatsch> tbh I feel like type classes and higher kinded types help a lot more in Haskell’s case
14:20:00 <Profpatsch> you can’t do half of these things in Rust, or Scala
14:20:15 thegeekinside joins (~thegeekin@189.217.90.138)
14:20:16 <Profpatsch> or maybe you can, but it amounts to losing some amount of hair
14:20:42 <Profpatsch> RankN is also super useful
14:20:58 <Profpatsch> like, many refactorings are just not possible in typed languages without these
14:21:39 <yin> what's the log file for ghcup ghc install?
14:21:52 <Profpatsch> I guess you could replace all type classes with RankN function arguments pretty mechanically, but then you are back to annoying manual work
14:22:31 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 245 seconds)
14:24:11 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
14:25:31 dcoutts joins (~duncan@195.80.64.243)
14:25:50 euandreh joins (~Thunderbi@189.6.18.7)
14:26:40 <yin> maerwald: it just hangs
14:26:43 <maerwald> yin: something in ~/.ghcup/logs
14:26:49 <maerwald> run with -v
14:26:57 <maerwald> ghcup -v install ghc
14:27:44 × mei quits (~mei@user/mei) (Remote host closed the connection)
14:29:23 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
14:30:08 mei joins (~mei@user/mei)
14:30:17 × myxos quits (~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Ping timeout: 246 seconds)
14:30:55 × michalz quits (~michalz@185.246.207.215) (Ping timeout: 240 seconds)
14:30:57 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
14:33:30 johnw_ joins (~johnw@69.62.242.138)
14:33:33 × johnw quits (~johnw@69.62.242.138) (Read error: Connection reset by peer)
14:34:57 × dcoutts quits (~duncan@195.80.64.243) (Ping timeout: 245 seconds)
14:35:39 mechap joins (~mechap@user/mechap)
14:35:46 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 252 seconds)
14:39:00 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
14:39:34 euandreh joins (~Thunderbi@189.6.18.7)
14:42:28 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
14:47:02 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
14:47:52 dcoutts joins (~duncan@195.80.64.243)
14:49:12 <kuribas> Profpatsch: can you imagine what you can do in idris with dependent types?
14:49:42 <kuribas> Profpatsch: no more annoying newtypes to work around limitations in haskell hkts.
14:51:36 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
14:52:02 <Profpatsch> kuribas: no I can’t, wake me when Idris has a performing compiler and somebody has reimplemented all of Snoyberg’s libraries to production quality :)
14:53:58 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
14:56:43 shapr joins (~user@2600:1700:c640:3100:8173:1c9d:ab8d:9a27)
14:58:52 × dcoutts quits (~duncan@195.80.64.243) (Ping timeout: 250 seconds)
14:58:52 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 252 seconds)
14:59:44 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
15:02:10 × merijn quits (~merijn@195.114.232.94) (Ping timeout: 252 seconds)
15:02:15 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1)
15:04:44 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 252 seconds)
15:07:06 × jonathan_ quits (~jonathan@host-217-213-130-57.mobileonline.telia.com) (Ping timeout: 245 seconds)
15:09:32 Sgeo joins (~Sgeo@user/sgeo)
15:10:36 <kuribas> it has a performing compiler.
15:10:48 <kuribas> It may not be performing very well, but it's performing!
15:11:15 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
15:12:27 × waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 245 seconds)
15:13:03 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
15:16:12 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
15:21:37 × driib quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
15:21:46 kitzman joins (~kitzman@user/dekenevs)
15:23:03 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
15:23:15 jonathan_ joins (~jonathan@host-217-213-130-57.mobileonline.telia.com)
15:24:41 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429)
15:25:18 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 250 seconds)
15:26:11 euandreh joins (~Thunderbi@189.6.18.7)
15:27:27 × CiaoSen quits (~Jura@2a05:5800:295:7d00:664b:f0ff:fe37:9ef) (Ping timeout: 245 seconds)
15:27:52 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
15:32:33 × jonathan_ quits (~jonathan@host-217-213-130-57.mobileonline.telia.com) (Read error: Connection reset by peer)
15:33:26 trev joins (~trev@user/trev)
15:34:03 jonathan_ joins (~jonathan@host-217-213-130-57.mobileonline.telia.com)
15:34:35 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
15:34:50 acidjnk joins (~acidjnk@p200300d6e7072f18d1756600c61e2eb6.dip0.t-ipconnect.de)
15:36:19 <kuribas> And I am not really interested in snoyberg libraries.
15:36:52 <kuribas> oh wait, wai is snoyberg right?
15:36:59 <kuribas> I do want wai.
15:37:06 <yin> maerwald: https://paste.jrvieira.com/1689262618294
15:37:44 driib joins (~driib@vmi931078.contaboserver.net)
15:37:48 <maerwald> yin: what does the log file show
15:37:51 <yin> should it be ...fedora27-linuz.tar.xz ?
15:38:00 <yin> this is the log file
15:38:46 <maerwald> what log files are there
15:38:57 dcoutts joins (~duncan@195.80.64.243)
15:39:00 <jade[m]> I recently saw the `Num` instance for `Num b => a -> b` which was super interesting, but also had someone say it was debated whether the instance should be in base
15:39:17 <yin> a blank ghc-configure.log and ghcup.log (this)
15:39:30 <jade[m]> why is that the case when it is a valid instance and the only one that exists for the type?
15:39:34 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 252 seconds)
15:40:33 <yin> maerwald: i pasted the tail, here's in full: https://paste.jrvieira.com/1689262817710
15:40:38 <geekosaur> jade[m], because it causes a lot of confusion when you forget a parameter to a function and suddenly ghc can find a match for `Num (a -> b)`
15:41:34 barcisz joins (~barcisz@31-151-117-10.dynamic.upc.nl)
15:41:47 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
15:42:04 <maerwald> yin: your configure gets *terminated*
15:42:10 <maerwald> selinux or some sh*t?
15:42:27 <maerwald> not ghcups fault for sure
15:42:42 <yin> just a fresh void linux install on a vm
15:42:54 <maerwald> well, termination doesn't happen by accident
15:43:12 <jade[m]> geekosaur: that makes sense I suppose
15:43:42 <jade[m]> to me it moreso seems like that'd be the issue of the error messages, but iirc you run into theoretical limotations
15:43:59 <geekosaur> jade[m], that said, we're seeing more and more confusing instances showing up in base (consider Foldable (a,b)) so it might happen at some point
15:44:46 <geekosaur> oh, the error messages are confusing enough even without that instance. they get much worse with it. and type inference means the more rope you give ghc, the more likely it hangs you at some distant point from the error
15:45:18 <yin> NoImplicitPrelude ftw
15:46:07 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
15:46:26 <jade[m]> thanks for the info :)
15:46:27 <geekosaur> actually putting it in base would be safe if it were banished to Data.Function.Num or something that you had to import to get it
15:46:54 <geekosaur> I think there's a similar thing for a Show instance for functions
15:47:31 <jade[m]> that one's really useless imo
15:47:33 <geekosaur> although, then you get the argument that the instance is actually for any Applicative, so should it be Control.Applicative.Num
15:47:45 <jade[m]> if the one you are talking about is the `<function>` one
15:47:49 <geekosaur> yes, but anything better has annoying constraints
15:48:17 <yin> maerwald: i found this https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/366
15:48:38 <maerwald> yin: that's not the same error
15:48:55 <yin> it's not but might be a clue?
15:48:56 <maerwald> your 'sh ./configure' gets *terminated*
15:48:59 <maerwald> no
15:49:08 <maerwald> there's a terminator on your system
15:49:42 <maerwald> you can try it manually
15:49:50 <maerwald> ghcup prefetch ghc
15:50:04 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
15:50:07 <maerwald> then: tar xf ~/.ghcup/cache/<tarball>
15:50:51 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
15:51:53 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
15:52:41 <yin> it runs for a long time before it get terminated though
15:53:02 <maerwald> yeah, something trashed
15:53:51 <rachelambda> geekosaur: what's the Show instance for functions?
15:53:54 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 250 seconds)
15:54:36 × jonathan_ quits (~jonathan@host-217-213-130-57.mobileonline.telia.com) (Ping timeout: 252 seconds)
15:54:47 <yin> Show instance for what now?
15:55:14 <rachelambda> that's what I was thinking
15:55:41 <geekosaur[c]> As jade[m] said it's just "<function>"
15:55:50 <lyxia> https://hackage.haskell.org/package/base-4.18.0.0/docs/Text-Show-Functions.html
15:55:56 <rachelambda> ah
15:55:58 <rachelambda> thank you
15:56:20 <geekosaur[c]> There's a smarter one that shows types but it's monomorphic
15:56:25 <mauke> wait, there's a Num Reader instance in base now?
15:57:02 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
15:57:13 <geekosaur[c]> No Jade was asking why there wasn't
15:57:29 euandreh joins (~Thunderbi@189.6.18.7)
15:58:39 <yin> geekosaur[c]: what's with the [c] ? i know [m] is for matrix
15:58:41 <mauke> ah, I misunderstood
15:59:41 <geekosaur[c]> IRCcloud because I'm on my phone
16:00:22 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
16:00:50 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:01:41 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 245 seconds)
16:02:18 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
16:02:59 dhil joins (~dhil@78.45.150.83.ewm.ftth.as8758.net)
16:03:27 sm[i] joins (~sm@024-165-041-186.res.spectrum.com)
16:03:30 off^ joins (~cd@24.125.210.85)
16:03:46 × danse-nr3_ quits (~francesco@151.54.45.22) (Ping timeout: 245 seconds)
16:04:10 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
16:04:51 <[Leary]> jade[m]: The only argument I've seen against that instance is that numeric literals accidentally written in application position e.g. `5 ()` would type check and go unnoticed.
16:05:30 <mauke> it can get super confusing
16:05:34 <jade[m]> that's a valid concern actually
16:05:38 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
16:05:41 <mauke> > (sin + cos) 0.5
16:05:42 <lambdabot> error:
16:05:42 <lambdabot> • No instance for (Num (Double -> Double))
16:05:42 <lambdabot> arising from a use of ‘e_105’
16:06:04 <jade[m]> mauke: yeah but that's the part that's actually useful imo
16:06:37 nick4 joins (~nick@2600:8807:9084:7800:f0c8:66b8:cafe:5e4)
16:06:53 <jade[m]> [Leary]: any sequence of numbers would also typecheck, right?
16:06:56 <jade[m]> i.e. 1 2 3
16:07:15 euandreh joins (~Thunderbi@189.6.18.7)
16:07:24 <mauke> @let instance Num a => Num (e -> a) where fromInteger = pure . fromInteger; abs = fmap abs; signum = fmap signum; negate = fmap negate; (+) = liftA2 (+); (-) = liftA2 (-); (*) = liftA2 (*)
16:07:25 <lambdabot> Defined.
16:07:29 <mauke> > (sin + cos) 0.5
16:07:30 <lambdabot> 1.3570081004945758
16:07:42 <mauke> > 1 "yeah, so what's this?" sin show
16:07:43 <lambdabot> 1
16:09:17 <rachelambda> I wish fromInteger was not a part of Num
16:09:35 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 264 seconds)
16:09:53 <geekosaur[c]> Lots of people do
16:10:02 <rachelambda> I except it to be a cold take
16:10:10 <rachelambda> haha
16:10:44 <[Leary]> jade[m]: Yes. Or a number followed by any sequence of arguments.
16:11:07 <rachelambda> along with wishing there were AddMonoid, MulMonoid, AddGroup, MulGroup, Ring, Field, etc classes in place of the current bunch of classes
16:11:14 <rachelambda> I guess I should just go use a custom prelude
16:11:23 <jade[m]> numeric-prelude
16:11:47 <mauke> @let instance Num a => Num (IO a) where fromInteger = pure . fromInteger; abs = fmap abs; signum = fmap signum; negate = fmap negate; (+) = liftA2 (+); (-) = liftA2 (-); (*) = liftA2 (*)
16:11:47 <rachelambda> 👍
16:11:48 <lambdabot> Defined.
16:12:16 <mauke> finally I can write `readLn + readLn`
16:12:44 <mauke> :t readLn + readLn
16:12:45 <lambdabot> (Num a, Read a) => IO a
16:13:07 <jade[m]> mauke: I feel like this isn't even that bad
16:13:14 <rachelambda> @let instance (Num a, Applicative f) => Num (f a) where fromInteger = pure . fromInteger; abs = fmap abs; signum = fmap signum; negate = fmap negate; (+) = liftA2 (+); (-) = liftA2 (-); (*) = liftA2 (*)
16:13:15 <lambdabot> Defined.
16:13:19 <rachelambda> haha
16:13:23 <rachelambda> slightly cursed
16:13:41 <rachelambda> if only there was a way to iterate over any typeclass rather than only Num
16:13:45 <rachelambda> to make it truly awful
16:13:48 <ddellacosta> Data.Cursed.Slightly
16:14:28 <int-e> Data.Cursed.Cursed (re-cursed)
16:14:46 <ddellacosta> haha very nice
16:15:23 <rachelambda> I think I've seen code like this once trying to implement rank polymorphism as seen in array languages
16:15:42 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
16:15:51 <yin> i wish we had this https://www.youtube.com/watch?v=jFk1qpr1ytk
16:16:02 <mauke> that instance could be made slightly more confusing by doing fromInteger = fmap pure fromInteger
16:16:04 <rachelambda> it's a bit cute using weird instances for Num and the like
16:17:13 <mauke> "for many cases Natural numbers retain all of the positive aspects of the Integers with none of the negatives" ohyou.jpg
16:20:12 <yin> :)
16:20:47 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
16:24:49 notzmv joins (~zmv@user/notzmv)
16:26:30 <rachelambda> naturals are very nice
16:26:32 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:27:28 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
16:29:09 ripspin joins (~chatzilla@1.145.198.92)
16:31:42 <yin> Word
16:32:39 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
16:33:34 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
16:35:00 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
16:35:30 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:38:21 <rachelambda> "you would say jose but memory is finite, and I would say why are you doing functional programming"
16:38:25 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 240 seconds)
16:38:30 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
16:38:58 × picklejuice quits (~root@c-73-196-164-60.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
16:40:59 picklejuice joins (~root@172.56.222.214)
16:43:21 <yin> good public speaker
16:45:06 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
16:45:30 razetime joins (~quassel@117.193.3.219)
16:46:27 thegeekinside joins (~thegeekin@189.217.90.138)
16:47:02 <rachelambda> yeah, he's great to listen to
16:47:49 falafel joins (~falafel@2603-7000-a700-8710-9d84-55b0-693c-e89b.res6.spectrum.com)
16:49:44 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
16:50:17 × Inst_ quits (~Inst@2601:6c4:4081:2fc0:5c21:6c0c:79b0:64a3) (Ping timeout: 246 seconds)
16:50:51 × razetime quits (~quassel@117.193.3.219) (Ping timeout: 245 seconds)
16:51:28 razetime joins (~quassel@117.193.5.192)
16:52:32 ars23 joins (~ars23@2a02:2f09:3f14:a200:15ad:aa36:9d5c:6013)
16:53:42 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 245 seconds)
16:53:59 × ars23 quits (~ars23@2a02:2f09:3f14:a200:15ad:aa36:9d5c:6013) (Client Quit)
16:54:14 euandreh joins (~Thunderbi@189.6.18.7)
16:55:12 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
16:56:37 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
16:57:53 ars23 joins (~ars23@86.120.205.92)
17:00:22 × razetime quits (~quassel@117.193.5.192) (Ping timeout: 245 seconds)
17:00:50 razetime joins (~quassel@117.193.2.221)
17:01:12 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
17:02:22 jmd_ joins (~jmdaemon@user/jmdaemon)
17:04:44 ski . o O ( `instance (Finite a,Show a,Show b) => Show (a -> b)' )
17:05:35 × migas quits (~migas@astra4961.startdedicated.net) (Remote host closed the connection)
17:05:51 migas joins (~migas@astra4961.startdedicated.net)
17:06:03 <ski> (where e.g. `show not = "\\case {False -> True; True -> False}"')
17:07:34 <rachelambda> awful, I love it
17:08:09 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
17:12:23 × misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 258 seconds)
17:12:29 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 246 seconds)
17:12:52 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
17:13:49 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:15:33 × barcisz quits (~barcisz@31-151-117-10.dynamic.upc.nl) (Quit: Connection closed)
17:19:45 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
17:24:57 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
17:27:54 gok joins (~gok@2601:282:d00:2d60:2143:a66f:233:9ea7)
17:31:33 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
17:33:52 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection)
17:35:12 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:36:16 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
17:37:11 × mxs quits (~mxs@user/mxs) (Ping timeout: 264 seconds)
17:37:19 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
17:39:07 mxs joins (~mxs@user/mxs)
17:39:48 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
17:42:06 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
17:43:03 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
17:44:25 × razetime quits (~quassel@117.193.2.221) (Ping timeout: 240 seconds)
17:46:59 razetime joins (~quassel@117.193.1.86)
17:47:27 × picklejuice quits (~root@172.56.222.214) (Ping timeout: 245 seconds)
17:47:59 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 264 seconds)
17:48:50 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
17:49:04 picklejuice joins (~root@172.56.219.90)
17:50:03 buckwheat joins (~buckwheat@209.122.211.192)
17:51:35 × razetime quits (~quassel@117.193.1.86) (Ping timeout: 264 seconds)
17:53:27 razetime joins (~quassel@117.193.3.135)
17:53:30 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds)
17:54:22 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 250 seconds)
17:56:32 × nick4 quits (~nick@2600:8807:9084:7800:f0c8:66b8:cafe:5e4) (Ping timeout: 240 seconds)
17:56:37 × jmd_ quits (~jmdaemon@user/jmdaemon) (Ping timeout: 245 seconds)
17:58:42 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
18:00:04 euandreh joins (~Thunderbi@189.6.18.7)
18:01:22 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
18:06:02 razetime_ joins (~quassel@117.193.7.68)
18:06:04 × razetime quits (~quassel@117.193.3.135) (Ping timeout: 250 seconds)
18:06:16 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
18:06:50 × fendor quits (~fendor@2a02:8388:1640:be00:bfd6:9a8f:d4f6:3a03) (Remote host closed the connection)
18:07:07 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
18:09:36 jmd_ joins (~jmdaemon@user/jmdaemon)
18:11:41 × razetime_ quits (~quassel@117.193.7.68) (Ping timeout: 245 seconds)
18:12:28 razetime joins (~quassel@117.193.1.199)
18:13:12 nick4 joins (~nick@2600:8807:9084:7800:f0c8:66b8:cafe:5e4)
18:14:57 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
18:16:43 × aforemny quits (~aforemny@2001:9e8:6cee:2b00:575d:a630:13ac:5fc5) (Quit: ZNC 1.8.2 - https://znc.in)
18:16:45 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
18:17:04 aforemny joins (~aforemny@i59F516E4.versanet.de)
18:17:19 × gok quits (~gok@2601:282:d00:2d60:2143:a66f:233:9ea7) (Quit: Client closed)
18:17:47 × nick4 quits (~nick@2600:8807:9084:7800:f0c8:66b8:cafe:5e4) (Ping timeout: 246 seconds)
18:21:25 × lottaquestions quits (~nick@2607:fa49:503d:b200:5acb:c775:e1cd:3a88) (Ping timeout: 240 seconds)
18:21:37 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
18:22:00 × pieguy128 quits (~pieguy128@bras-base-mtrlpq5031w-grc-54-65-92-160-253.dsl.bell.ca) (Ping timeout: 252 seconds)
18:28:32 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
18:29:48 buckwheat joins (~buckwheat@209.122.211.192)
18:31:10 × jmd_ quits (~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds)
18:32:36 phma_ joins (phma@2001:5b0:211f:7128:594e:98f8:7c9e:d433)
18:33:21 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
18:33:29 Lears joins (~Leary]@user/Leary/x-0910699)
18:34:17 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
18:34:22 caasih_ joins (sid13241@id-13241.ilkley.irccloud.com)
18:34:28 × ripspin quits (~chatzilla@1.145.198.92) (Remote host closed the connection)
18:34:32 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 245 seconds)
18:34:41 chaitlatte0_ joins (ea29c0bb16@2604:bf00:561:2000::1124)
18:34:41 jil` joins (~user@vps-15050500.vps.ovh.net)
18:34:44 lukec_ joins (9dfd4d094e@2604:bf00:561:2000::10e)
18:34:45 bsima1_ joins (9d7e39c8ad@2604:bf00:561:2000::dd)
18:34:45 jkoshy_ joins (99b9359beb@user/jkoshy)
18:34:45 n1essa_ joins (3d621153a5@2604:bf00:561:2000::df7)
18:34:47 ggb_ joins (a62ffbaf4f@2604:bf00:561:2000::3ac)
18:34:52 jakzale_ joins (6291399afa@user/jakzale)
18:34:56 fvr_ joins (ef3e56ca8b@2604:bf00:561:2000::3c4)
18:34:58 arcadewise_ joins (52968ed80d@2604:bf00:561:2000::3df)
18:35:04 fluffyballoon_ joins (45ce440a48@2604:bf00:561:2000::e2)
18:35:04 whereiseveryone_ joins (206ba86c98@2604:bf00:561:2000::2e4)
18:35:04 shreyasminocha_ joins (51fdc93eda@user/shreyasminocha)
18:35:04 theesm_ joins (2cbdf4b38a@2604:bf00:561:2000::11c8)
18:35:10 jleightcap_ joins (7bc4014b62@user/jleightcap)
18:35:10 JoelMcCracken_ joins (5ea8252fbb@2604:bf00:561:2000::10e3)
18:35:10 b0o_ joins (0e4a0bf4c9@2604:bf00:561:2000::1bf)
18:35:10 sus_ joins (1b7af6299f@user/zeromomentum)
18:35:10 rselim_ joins (ce261f06ff@2604:bf00:561:2000::257)
18:35:11 Ankhers_ joins (e99e97ef8e@2604:bf00:561:2000::2a2)
18:35:11 sm2n_ joins (ae95cb1267@user/sm2n)
18:35:13 Athas_ joins (athas@sigkill.dk)
18:35:15 cbarrett_ joins (sid192934@id-192934.helmsley.irccloud.com)
18:35:17 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:35:24 berberman_ joins (~berberman@user/berberman)
18:35:24 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:35:27 JSharp_ joins (sid4580@id-4580.lymington.irccloud.com)
18:35:48 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:36:12 × razetime quits (~quassel@117.193.1.199) (Ping timeout: 245 seconds)
18:36:24 megaTherion_ joins (~therion@unix.io)
18:36:29 h2t_ joins (~h2t@user/h2t)
18:36:49 wagle_ joins (~wagle@quassel.wagle.io)
18:36:58 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
18:37:40 jjhoo_ joins (~jahakala@user/jjhoo)
18:37:47 nshepper1 joins (nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
18:37:51 takuan joins (~takuan@178-116-218-225.access.telenet.be)
18:38:02 nckx_ joins (~nckx@guix/contributor/nckx)
18:38:08 Cadey joins (~cadey@tailscale/xe)
18:39:07 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
18:39:13 arthurvl joins (~arthurvl@77-174-49-144.fixed.kpn.net)
18:39:41 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:41:19 × trev quits (~trev@user/trev) (Quit: trev)
18:41:22 cyphase_eviltwin joins (~cyphase@user/cyphase)
18:42:09 × Midjak quits (~Midjak@82.66.147.146) (*.net *.split)
18:42:09 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (*.net *.split)
18:42:09 × takuan_dozo quits (~takuan@178-116-218-225.access.telenet.be) (*.net *.split)
18:42:09 × mrmr quits (~mrmr@user/mrmr) (*.net *.split)
18:42:09 × cyphase quits (~cyphase@user/cyphase) (*.net *.split)
18:42:09 × phma quits (~phma@host-67-44-208-125.hnremote.net) (*.net *.split)
18:42:09 × kimiamania6 quits (~681cf57f@user/kimiamania) (*.net *.split)
18:42:09 × berberman quits (~berberman@user/berberman) (*.net *.split)
18:42:09 × Xe quits (~cadey@tailscale/xe) (*.net *.split)
18:42:09 × Flow quits (~none@gentoo/developer/flow) (*.net *.split)
18:42:09 × [Leary] quits (~Leary]@user/Leary/x-0910699) (*.net *.split)
18:42:09 × nckx quits (~nckx@guix/contributor/nckx) (*.net *.split)
18:42:09 × Cale quits (~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com) (*.net *.split)
18:42:09 × caasih quits (sid13241@id-13241.ilkley.irccloud.com) (*.net *.split)
18:42:09 × earthy quits (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (*.net *.split)
18:42:09 × JSharp quits (sid4580@id-4580.lymington.irccloud.com) (*.net *.split)
18:42:09 × nshepperd quits (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (*.net *.split)
18:42:09 × jjhoo quits (~jahakala@user/jjhoo) (*.net *.split)
18:42:09 × megaTherion quits (~therion@unix.io) (*.net *.split)
18:42:09 × h2t quits (~h2t@user/h2t) (*.net *.split)
18:42:09 × cbarrett quits (sid192934@id-192934.helmsley.irccloud.com) (*.net *.split)
18:42:09 × jil quits (~user@vps-15050500.vps.ovh.net) (*.net *.split)
18:42:09 × jleightcap quits (7bc4014b62@user/jleightcap) (*.net *.split)
18:42:09 × Ankhers quits (e99e97ef8e@2604:bf00:561:2000::2a2) (*.net *.split)
18:42:09 × fluffyballoon quits (45ce440a48@2604:bf00:561:2000::e2) (*.net *.split)
18:42:09 × b0o quits (0e4a0bf4c9@2604:bf00:561:2000::1bf) (*.net *.split)
18:42:09 × jakzale quits (6291399afa@user/jakzale) (*.net *.split)
18:42:09 × sm2n quits (ae95cb1267@user/sm2n) (*.net *.split)
18:42:09 × whereiseveryone quits (206ba86c98@2604:bf00:561:2000::2e4) (*.net *.split)
18:42:09 × chaitlatte0 quits (ea29c0bb16@user/chaitlatte0) (*.net *.split)
18:42:09 × rselim quits (ce261f06ff@user/milesrout) (*.net *.split)
18:42:09 × lukec quits (9dfd4d094e@2604:bf00:561:2000::10e) (*.net *.split)
18:42:09 × ggb quits (a62ffbaf4f@2604:bf00:561:2000::3ac) (*.net *.split)
18:42:10 × bsima1 quits (9d7e39c8ad@2604:bf00:561:2000::dd) (*.net *.split)
18:42:10 × theesm quits (2cbdf4b38a@2604:bf00:561:2000::11c8) (*.net *.split)
18:42:10 × sus quits (1b7af6299f@user/zeromomentum) (*.net *.split)
18:42:10 × shreyasminocha quits (51fdc93eda@user/shreyasminocha) (*.net *.split)
18:42:10 × jkoshy quits (99b9359beb@user/jkoshy) (*.net *.split)
18:42:10 × arcadewise quits (52968ed80d@2604:bf00:561:2000::3df) (*.net *.split)
18:42:10 × n1essa quits (3d621153a5@2604:bf00:561:2000::df7) (*.net *.split)
18:42:10 × JoelMcCracken quits (5ea8252fbb@2604:bf00:561:2000::10e3) (*.net *.split)
18:42:10 × fvr quits (ef3e56ca8b@2604:bf00:561:2000::3c4) (*.net *.split)
18:42:10 × wagle quits (~wagle@quassel.wagle.io) (*.net *.split)
18:42:10 × Athas quits (athas@sigkill.dk) (*.net *.split)
18:42:11 nckx_ is now known as nckx
18:42:11 caasih_ is now known as caasih
18:42:11 JSharp_ is now known as JSharp
18:42:12 megaTherion_ is now known as megaTherion
18:42:12 Ankhers_ is now known as Ankhers
18:42:12 Lord_of_Life_ is now known as Lord_of_Life
18:42:12 b0o_ is now known as b0o
18:42:12 chaitlatte0_ is now known as chaitlatte0
18:42:12 jakzale_ is now known as jakzale
18:42:12 theesm_ is now known as theesm
18:42:12 fluffyballoon_ is now known as fluffyballoon
18:42:12 lukec_ is now known as lukec
18:42:12 rselim_ is now known as rselim
18:42:12 sus_ is now known as sus
18:42:12 jleightcap_ is now known as jleightcap
18:42:12 jkoshy_ is now known as jkoshy
18:42:12 n1essa_ is now known as n1essa
18:42:12 ggb_ is now known as ggb
18:42:12 fvr_ is now known as fvr
18:42:13 sm2n_ is now known as sm2n
18:42:13 cbarrett_ is now known as cbarrett
18:42:13 shreyasminocha_ is now known as shreyasminocha
18:42:13 JoelMcCracken_ is now known as JoelMcCracken
18:42:13 bsima1_ is now known as bsima1
18:42:13 arcadewise_ is now known as arcadewise
18:42:19 whereiseveryone_ is now known as whereiseveryone
18:42:44 Cadey is now known as Xe
18:43:26 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429) (Remote host closed the connection)
18:43:30 mrmr joins (~mrmr@user/mrmr)
18:43:46 kimiamania6 joins (~681cf57f@user/kimiamania)
18:44:01 jmd_ joins (~jmdaemon@user/jmdaemon)
18:44:55 × fiddlerwoaroof quits (~fiddlerwo@user/fiddlerwoaroof) (Ping timeout: 260 seconds)
18:46:00 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
18:47:20 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
18:47:55 × jmd_ quits (~jmdaemon@user/jmdaemon) (Remote host closed the connection)
18:48:16 jmd_ joins (~jmdaemon@user/jmdaemon)
18:49:22 fiddlerwoaroof joins (~fiddlerwo@user/fiddlerwoaroof)
18:50:08 Cale joins (~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com)
18:50:08 Flow joins (~none@gentoo/developer/flow)
18:50:27 × fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
18:50:42 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds)
18:51:45 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
18:52:02 buhman_ is now known as buhman
18:52:26 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 252 seconds)
18:52:32 × buhman quits (sid411355@id-411355.tinside.irccloud.com) (Changing host)
18:52:32 buhman joins (sid411355@user/buhman)
18:53:31 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:54:53 <shapr> so quiet
18:55:05 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:55:49 <[exa]> y tho
18:56:36 <shapr> probably because I'm trying to prevent a rant about property based testing
18:56:43 <shapr> I have *opinions*
18:56:43 ubert joins (~Thunderbi@178.115.54.100.wireless.dyn.drei.com)
18:56:46 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds)
18:57:31 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
18:57:51 <Rembane> shapr: I would love to hear one. Either here or in #haskell-offtopic
18:59:59 <shapr> Rembane: How about a few lines that's an excerpt from an email I sent to Rudy Matela last week?
19:00:41 <shapr> Rembane: how many property based checks is enough? How many is too many and just wasting CPU?
19:00:51 buckwheat joins (~buckwheat@209.122.211.192)
19:01:10 <shapr> I came up with an answer last year during my most recent time at Recurse Center: https://github.com/shapr/kudzu/
19:01:47 <shapr> My answer is, "use the Haskell Program Coverage tool to ask the GHC runtime to tell me which regions of the code have been executed"
19:02:14 <shapr> I turn each region into a Bool value, and turn that into a count of regions executed.
19:02:34 <shapr> When the total count of regions stops increasing, that's enough tests.
19:02:50 <shapr> look how small it is! https://github.com/shapr/kudzu/blob/main/src/Kudzu.hs
19:02:59 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 264 seconds)
19:03:13 <Rembane> I love the idea! How well does it work?
19:03:19 <shapr> It works extremely well
19:03:25 <shapr> BUT WAIT! there's more!
19:03:53 <shapr> Rembane: can you guess whic of QuickCheck, HedgeHog, or LeanCheck took the fewest number of generated inputs to reach "enough" ?
19:04:25 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
19:04:49 <shapr> For even more excitement, can you guess why LeanCheck took the fewest number of steps to cover the same amount of code?
19:04:52 × ubert quits (~Thunderbi@178.115.54.100.wireless.dyn.drei.com) (Quit: ubert)
19:05:00 <shapr> Anyway, that's the short talk
19:05:23 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 246 seconds)
19:05:36 <shapr> For a longer and weirder talk, cdsmith and I wrote a large piece of either genius or insanity, depending on your viewpoint: https://github.com/shapr/trynocular
19:06:03 <Rembane> shapr: I was going to guess QuickCheck because I like to have that package as an answer. I can't guess why LeanCheck took the fewest number of steps. I haven't used the package at all. :D
19:06:08 <Rembane> shapr: Why not both?
19:06:30 <shapr> The question for trynocular was: can I do gradient descent on random test inputs, and use that to explore what inputs exercise which parts of a codebase?
19:06:59 <shapr> The answer is pretty much yes
19:07:24 <shapr> With trynocular, it's more about really smart input generators
19:07:57 <shapr> roughly, the thunks are wrapped in unsafePerformIO that lets them report when they were forced
19:08:08 <shapr> So you know that's an input the code is using
19:08:24 <Rembane> That's super neat!
19:08:51 <shapr> The one sad part of this whole adventure was that I checked reverse dependencies of all the property based test libraries on hackage
19:09:02 <shapr> and 1. far fewer property tests on hackage than I expected
19:09:05 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
19:09:27 <shapr> and 2. many libraries that depend on a PBT library use it for unit tests with static inputs :-(
19:09:56 <shapr> Rembane: anyway, if you get as excited about PBT as I do, you really want to read Rudy Matela's thesis on PBT tools
19:10:12 <shapr> https://matela.com.br/
19:10:33 <shapr> I'm a huge fan of PBT and Rudy has the coolest tools and ideas I've seen in decades of reading research papers on this topic
19:11:19 <shapr> Rembane: in my opinion, LeanCheck is the simplest and best value generator for property based tests, in almost all cases
19:11:25 <Rembane> shapr: Thank you for the links! I am super excited about PBT!
19:11:29 <shapr> hurrah!
19:11:31 <shapr> I'm not the only one!
19:11:42 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
19:11:43 <Rembane> shapr: I'm a bit tired though so I'm not very good at english at the moment.
19:11:47 <shapr> kein problem
19:12:02 <shapr> Wait, I forget which language is your first
19:12:16 <shapr> inga problem? svenska?
19:12:21 shapr shrugs
19:12:52 × phma_ quits (phma@2001:5b0:211f:7128:594e:98f8:7c9e:d433) (Read error: Connection reset by peer)
19:13:10 <shapr> And now I go back to trying to get afl-gcc to work inside nix
19:13:14 <Rembane> Svenska it is!
19:13:16 phma_ joins (phma@2001:5b0:211f:7128:594e:98f8:7c9e:d433)
19:13:23 <Rembane> shapr: Sounds exciting! GL HF!
19:13:47 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
19:14:08 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 246 seconds)
19:14:23 nick4 joins (~nick@2600:100d:b119:20c8:388e:ed2:1b56:5150)
19:14:55 <shapr> tack så mycket! tror det blir kul
19:15:10 fweht joins (uid404746@id-404746.lymington.irccloud.com)
19:15:39 <Rembane> shapr: No worries! ^^
19:15:57 <mauke> I only know PBF
19:16:56 <shapr> what's the F?
19:17:06 <mauke> fellowship
19:17:20 lottaquestions joins (~nick@2607:fa49:503d:b200:3c9:7bb3:d043:de20)
19:18:16 tomboy64 joins (~tomboy64@user/tomboy64)
19:20:37 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
19:22:26 codaraxis joins (~codaraxis@user/codaraxis)
19:23:09 <picklejuice> set
19:24:06 × picklejuice quits (~root@172.56.219.90) (Quit: leaving)
19:25:33 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
19:26:12 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds)
19:28:59 × troydm quits (~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
19:29:11 lottaquestions_ joins (~nick@2607:fa49:503d:b200:3c9:7bb3:d043:de20)
19:29:24 × lottaquestions quits (~nick@2607:fa49:503d:b200:3c9:7bb3:d043:de20) (Ping timeout: 246 seconds)
19:29:27 troydm joins (~troydm@user/troydm)
19:30:44 × nick4 quits (~nick@2600:100d:b119:20c8:388e:ed2:1b56:5150) (Ping timeout: 246 seconds)
19:32:23 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
19:37:06 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
19:38:13 nick4 joins (~nick@2600:8807:9144:2e00:1de:2bc9:a973:53c9)
19:41:17 pieguy128 joins (~pieguy128@67.70.103.226)
19:43:55 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429)
19:46:11 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
19:47:52 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 245 seconds)
19:48:05 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cd6:b2b2:8eef:d429) (Ping timeout: 246 seconds)
19:49:01 × XliminalX quits (~goirc@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e) (Remote host closed the connection)
19:50:52 XliminalX joins (~goirc@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e)
19:50:53 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
19:53:45 × XliminalX quits (~goirc@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e) (Read error: Connection reset by peer)
19:55:14 euandreh joins (~Thunderbi@189.6.18.7)
19:55:40 XliminalX joins (~goirc@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e)
19:56:34 buckwheat joins (~buckwheat@209.122.211.192)
19:57:44 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
19:58:44 × jmd_ quits (~jmdaemon@user/jmdaemon) (Ping timeout: 250 seconds)
19:59:13 Inst_ joins (~Inst@2601:6c4:4081:2fc0:dd33:627c:a196:edc4)
19:59:19 <yin> when installing ghc manually, is ./configure supposed to give me some output while running?
19:59:47 × mxs quits (~mxs@user/mxs) (Ping timeout: 246 seconds)
20:00:33 × APic quits (apic@apic.name) (Ping timeout: 246 seconds)
20:01:03 <probie> yin: It gives me output
20:01:12 × falafel quits (~falafel@2603-7000-a700-8710-9d84-55b0-693c-e89b.res6.spectrum.com) (Ping timeout: 245 seconds)
20:01:13 <c_wraith> you should get a lot of gcc output from running ./configure
20:02:15 <yin> i get nothing. i can see it's writing to disk for some minutes and then inexplicably terminates
20:02:38 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 260 seconds)
20:03:10 mxs joins (~mxs@user/mxs)
20:03:53 <yin> reintalling gcc...
20:04:19 <probie> What OS are you on, what version of GHC are you trying to build, and did you run ./boot first? (not that not-running ./boot would cause no output, but you'll need to run it before you can build)
20:06:08 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 252 seconds)
20:09:16 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
20:10:02 ft joins (~ft@p3e9bc835.dip0.t-ipconnect.de)
20:10:25 vgtw joins (~vgtw@user/vgtw)
20:10:41 jmdaemon joins (~jmdaemon@user/jmdaemon)
20:12:32 zeenk joins (~zeenk@2a02:2f04:a00b:1800::7fe)
20:14:29 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
20:15:07 × ars23 quits (~ars23@86.120.205.92) (Quit: Leaving)
20:15:51 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:17:00 × pieguy128 quits (~pieguy128@67.70.103.226) (Ping timeout: 246 seconds)
20:17:44 Athas_ is now known as Athas
20:21:39 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
20:21:42 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
20:23:38 jonathan joins (~jonathan@c-5eea7352-74736162.cust.telenor.se)
20:23:43 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
20:23:59 APic joins (apic@apic.name)
20:26:54 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 250 seconds)
20:29:05 × lottaquestions_ quits (~nick@2607:fa49:503d:b200:3c9:7bb3:d043:de20) (Read error: Connection reset by peer)
20:29:30 lottaquestions_ joins (~nick@2607:fa49:503d:b200:3c9:7bb3:d043:de20)
20:29:56 × APic quits (apic@apic.name) (Ping timeout: 250 seconds)
20:31:29 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
20:31:57 azimut joins (~azimut@gateway/tor-sasl/azimut)
20:33:10 buckwheat joins (~buckwheat@209.122.211.192)
20:34:27 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
20:38:06 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 260 seconds)
20:39:46 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 258 seconds)
20:41:42 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
20:42:34 APic joins (~apic@apic.name)
20:42:51 × titibandit quits (~titibandi@user/titibandit) (Read error: Connection reset by peer)
20:43:57 neuroevolutus joins (~neuroevol@2001:ac8:9a:76::1e)
20:47:03 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 258 seconds)
20:47:35 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 246 seconds)
20:48:27 titibandit joins (~titibandi@user/titibandit)
20:52:49 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
20:57:45 × fun-safe-math quits (~fun-safe-@c-24-21-226-85.hsd1.or.comcast.net) ()
20:58:29 × bontaq quits (~user@ool-45779b84.dyn.optonline.net) (Remote host closed the connection)
21:02:17 × YuutaW quits (~YuutaW@mail.yuuta.moe) (Ping timeout: 246 seconds)
21:02:22 boxscape_ joins (~boxscape_@81.191.27.107)
21:03:35 × dhil quits (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 264 seconds)
21:04:10 <yin> glibc void linux fresh install on a vm
21:04:23 <yin> tried 10 different versions od ghc
21:04:42 <yin> did not run ./boot
21:04:50 YuutaW joins (~YuutaW@2404:f4c0:f9c3:502::100:17b7)
21:05:10 <yin> what's boot?
21:07:17 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
21:07:25 <geekosaur> it verifies you have all the necessary haskell boot libraries and prepares everything for configure
21:09:13 <yin> this is what i get in the logs https://paste.jrvieira.com/1689262817710
21:09:21 <yin> from ghcup
21:11:09 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
21:11:11 <mauke> are there any other files in ~/.ghcup/logs?
21:11:45 <yin> no
21:12:01 <Hecate> yin: as described in https://ghc.dev/, building ghc requires running "./boot && ./configure"
21:13:39 <mauke> not a great error
21:13:47 <mauke> I'd probably bust out strace -f at this point
21:16:11 pavonia joins (~user@user/siracusa)
21:16:25 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 240 seconds)
21:19:53 <juri_> my talk to CCCCamp was accepted. https://pretalx.c3voc.de/chaos-communication-camp-2023/talk/review/TSTWWQ37BBEXKFWJRHMNQJWQRGDKBGCA
21:20:23 <Hecate> juri_: congrats!
21:20:56 <Hecate> Axman6: can I kindly ask for a review on this? I am quite out of my depth regarding the failure of the test here: https://github.com/haskell-cryptography/libsodium-bindings/pull/94
21:21:11 <juri_> Hecate: thanks! I'm nervous already. :)
21:21:28 <Hecate> juri_: yeah I understand, 'twas the same thing when my talk was accepted at FOSDEM
21:21:52 <juri_> Hecate: this is my third CCC talk. :)
21:22:02 <juri_> I'm just always nervous. :P
21:22:38 buckwheat joins (~buckwheat@209.122.211.192)
21:23:06 × sm[i] quits (~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
21:23:12 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
21:23:15 <Hecate> juri_: hahaha
21:23:23 <Hecate> well good luck nonetheless!
21:23:34 <juri_> thank you! :)
21:24:43 <yin> ok this is weird
21:24:57 <yin> ./configure (line 19): Unsupported use of '='. In fish, please use 'set DUALCASE 1'.
21:25:00 <yin> DUALCASE=1; export DUALCASE # for MKS sh
21:25:02 <yin> ^~~~~~~~~^
21:25:05 <yin> warning: Error while reading file ./configure
21:25:18 sm[i] joins (~sm@024-165-041-186.res.spectrum.com)
21:25:29 <Hecate> yin: AH! :D You use a non-POSIX shell, don't you?
21:25:37 <yin> i get this error even if i dont use fish
21:25:45 <Hecate> oh no
21:25:55 <yin> oh no indeed
21:25:57 <Hecate> yin: name and version of your shell?
21:26:11 <Hecate> wait this should be using sh
21:26:25 <geekosaur> it should have a `#! /bin/sh` at the top
21:26:30 <Hecate> yeah
21:26:40 <boxscape_> ...is it possible that /bin/sh is pointing to fish?
21:26:41 <yin> bash 5.2.15
21:26:54 <Hecate> exact same version here
21:26:57 <yin> geekosaur: it does have #! /bon/sh
21:27:01 <yin> *bin
21:27:26 <Hecate> yin: and you've run ./boot before, right?
21:27:38 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 272 seconds)
21:27:55 <yin> yes, and i have used fish
21:28:02 <Hecate> very peculiar
21:28:04 <yin> but cloned the repo again
21:28:15 <Hecate> ok
21:28:19 falafel joins (~falafel@2603-7000-a700-8710-f0a4-a73f-8e9b-67cd.res6.spectrum.com)
21:28:33 <Hecate> unfortunately I have to leave, but do ask for help in #ghc, yin
21:28:44 <yin> ok ty
21:29:34 <yin> boxscape_: lol no
21:29:41 <boxscape_> good :)
21:30:26 <boxscape_> yin I guess the same thing happens if you run `/bin/sh configure` instead of `./configure`?
21:30:30 × Guest9190 quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 246 seconds)
21:30:39 <yin> sec
21:34:51 <yin> exact same thing
21:35:07 <yin> something's wrong with my system
21:36:56 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:39:39 × son0p quits (~ff@181.136.122.143) (Remote host closed the connection)
21:39:48 × jonathan quits (~jonathan@c-5eea7352-74736162.cust.telenor.se) (Remote host closed the connection)
21:40:08 jonathan joins (~jonathan@94.234.115.82)
21:42:36 <geekosaur> I really hope they didn't do something stupid like put /bin.sh under an /etc/alternatives style system and include a non-POSIX shell in the alternatives
21:44:26 × jonathan quits (~jonathan@94.234.115.82) (Ping timeout: 246 seconds)
21:44:52 <yin> no way
21:45:10 <yin> i made a shell script and it works fine
21:45:46 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
21:47:46 son0p joins (~ff@181.136.122.143)
21:51:28 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:54:03 buckwheat joins (~buckwheat@209.122.211.192)
21:54:21 anon24339985 joins (~anon24339@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
21:54:35 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
21:55:59 × acarrico quits (~acarrico@dhcp-68-142-49-163.greenmountainaccess.net) (Quit: Leaving.)
21:57:28 × neuroevolutus quits (~neuroevol@2001:ac8:9a:76::1e) (Quit: Client closed)
21:59:11 wroathe joins (~wroathe@user/wroathe)
21:59:18 × buckwheat quits (~buckwheat@209.122.211.192) (Ping timeout: 272 seconds)
22:02:47 × YuutaW quits (~YuutaW@2404:f4c0:f9c3:502::100:17b7) (Ping timeout: 240 seconds)
22:02:47 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:03:08 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
22:04:37 YuutaW joins (~YuutaW@2404:f4c0:f9c3:502::100:17b7)
22:06:40 × dcoutts quits (~duncan@195.80.64.243) (Remote host closed the connection)
22:09:35 × Noinia quits (~Frank@77-162-168-71.fixed.kpn.net) (Ping timeout: 252 seconds)
22:09:35 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
22:09:35 × ddellacosta quits (~ddellacos@146.70.165.140) (Ping timeout: 252 seconds)
22:14:11 × nick4 quits (~nick@2600:8807:9144:2e00:1de:2bc9:a973:53c9) (Ping timeout: 246 seconds)
22:14:11 dcoutts_ joins (~duncan@195.80.64.243)
22:14:11 wagle_ is now known as wagle
22:14:11 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
22:14:11 Noinia joins (~Frank@77-162-168-71.fixed.kpn.net)
22:14:12 wroathe joins (~wroathe@user/wroathe)
22:14:12 ddellacosta joins (~ddellacos@146.70.165.140)
22:14:12 <yin> welp guess i'll pass on void for now
22:14:12 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 272 seconds)
22:16:04 thegeekinside joins (~thegeekin@189.217.90.138)
22:22:10 × Aleksejs quits (~Aleksejs@107.170.21.106) (Ping timeout: 252 seconds)
22:22:16 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
22:22:51 Aleksejs joins (~Aleksejs@107.170.21.106)
22:23:44 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
22:23:54 CiaoSen joins (~Jura@2a05:5800:295:7d00:664b:f0ff:fe37:9ef)
22:25:22 × acidjnk quits (~acidjnk@p200300d6e7072f18d1756600c61e2eb6.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
22:28:46 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 252 seconds)
22:30:40 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
22:31:10 nick4 joins (~nick@2600:100d:b14c:edbb:4cc2:d98d:24ee:66dd)
22:34:45 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:36:56 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 246 seconds)
22:37:24 dmgk joins (~dmgk@user/dmgk)
22:39:12 × nick4 quits (~nick@2600:100d:b14c:edbb:4cc2:d98d:24ee:66dd) (Ping timeout: 272 seconds)
22:39:13 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
22:44:16 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 272 seconds)
22:49:14 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
22:49:15 × ft quits (~ft@p3e9bc835.dip0.t-ipconnect.de) (Remote host closed the connection)
22:50:46 ft joins (~ft@p3e9bc835.dip0.t-ipconnect.de)
22:51:55 × Inst_ quits (~Inst@2601:6c4:4081:2fc0:dd33:627c:a196:edc4) (Ping timeout: 240 seconds)
22:53:48 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
22:54:55 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds)
22:55:13 nick4 joins (~nick@50.86.118.19)
22:55:46 kimjetwav joins (~user@2607:fea8:235e:b600:e655:bdac:14d2:fa34)
22:56:13 × sm[i] quits (~sm@024-165-041-186.res.spectrum.com) (Quit: sm[i])
23:02:59 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
23:04:45 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
23:04:57 nick2 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
23:07:04 × nick4 quits (~nick@50.86.118.19) (Ping timeout: 272 seconds)
23:09:50 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 252 seconds)
23:12:12 × mei quits (~mei@user/mei) (Remote host closed the connection)
23:13:48 × off^ quits (~cd@24.125.210.85) (Remote host closed the connection)
23:17:25 mei joins (~mei@user/mei)
23:20:18 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
23:21:00 × nick2 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 272 seconds)
23:21:41 × Claro quits (~claro@user/Claro) (Ping timeout: 245 seconds)
23:24:11 × CiaoSen quits (~Jura@2a05:5800:295:7d00:664b:f0ff:fe37:9ef) (Ping timeout: 246 seconds)
23:24:34 × oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 250 seconds)
23:26:57 buckwheat joins (~buckwheat@209.122.211.192)
23:30:03 Claro joins (~claro@45.84.139.156)
23:30:06 × Claro quits (~claro@45.84.139.156) (Changing host)
23:30:06 Claro joins (~claro@user/Claro)
23:30:07 × zeenk quits (~zeenk@2a02:2f04:a00b:1800::7fe) (Quit: Konversation terminated!)
23:30:10 × Claro quits (~claro@user/Claro) (Client Quit)
23:30:27 × fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
23:30:45 Claro joins (~claro@45.84.139.156)
23:30:45 × Claro quits (~claro@45.84.139.156) (Changing host)
23:30:45 Claro joins (~claro@user/Claro)
23:34:25 × mechap quits (~mechap@user/mechap) (Quit: WeeChat 4.0.2)
23:38:55 oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
23:39:10 arahael_ joins (~arahael@124-149-31-4.dyn.iinet.net.au)
23:40:28 dsrt^ joins (~cd@24.125.210.85)
23:43:45 mauke_ joins (~mauke@user/mauke)
23:43:56 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 252 seconds)
23:44:55 jmd_ joins (~jmdaemon@user/jmdaemon)
23:45:24 × mauke quits (~mauke@user/mauke) (Ping timeout: 252 seconds)
23:45:24 mauke_ is now known as mauke
23:46:40 nick2 joins (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3)
23:47:51 mechap joins (~mechap@user/mechap)
23:51:08 × nick2 quits (~nick@2600:8807:9084:7800:b0ad:2249:4f5f:92e3) (Ping timeout: 246 seconds)
23:51:12 × tcard_ quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection)
23:51:29 tcard_ joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
23:54:01 × oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Quit: oo_miguel)
23:57:47 sm[i] joins (~sm@024-165-041-186.res.spectrum.com)

All times are in UTC on 2023-07-13.