Home liberachat/#haskell: Logs Calendar

Logs on 2023-11-22 (liberachat/#haskell)

00:00:37 <zzz> (\forall x. x -> \x -> x) -- :p
00:00:53 <monochrom> Wait, how do I read that?
00:01:00 <ski> `index' ?
00:01:04 <monochrom> Yeah.
00:01:52 <monochrom> OK I am beginning to see it.
00:02:04 <ski> there's a mechanical translation to existing Haskell
00:02:06 <monochrom> "Is this higher-order matching?" butterfly man meme :)
00:02:37 <ski> nah, it's just basic lambda patterns (and view patterns, and allowing definiendums in patterns ..)
00:03:11 <ski> to match on `\<expr> -> <pat>', you apply the function value to `<expr>' and match the result against `<pat>'
00:03:20 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
00:03:41 <ski> except, in the example above, `<pat>' is actually `<defd>' (definiendum)
00:04:30 <ski> index (Cons x xs) = f
00:04:31 <ski> where
00:04:36 <ski> f 0 = x
00:04:50 <ski> (index -> \n -> f (n + 1)) = xs
00:04:51 <ski> or
00:04:59 <ski> \n -> f (n + 1) = index xs
00:05:00 <ski> or
00:05:06 <ski> f (n + 1) = index xs n
00:07:01 <ski> @let tabulate :: Ix i => (i,i) -> (i -> e) -> Array i e; tabulate ix f = listArray [f i | i <- range ix]
00:07:02 <lambdabot> /sandbox/tmp/.L.hs:175:17: error:
00:07:02 <lambdabot> • Couldn't match expected type ‘Array i e’
00:07:02 <lambdabot> with actual type ‘[e0] -> Array i0 e0’
00:07:10 × sabino quits (~sabino@user/sabino) (Quit: Lambda _ -> x)
00:07:15 <ski> @let tabulate :: Ix i => (i,i) -> (i -> e) -> Array i e; tabulate ix f = listArray ix [f i | i <- range ix]
00:07:17 <lambdabot> Defined.
00:07:42 <ski> @let memoArray :: Ix i => (i -> e) -> (i -> e); memoArray f = (tabulate f !)
00:07:43 <lambdabot> /sandbox/tmp/.L.hs:177:16: error:
00:07:43 <lambdabot> Ambiguous occurrence ‘tabulate’
00:07:43 <lambdabot> It could refer to
00:07:50 <ski> @let memoArray :: Ix i => (i -> e) -> (i -> e); memoArray f = (L.tabulate f !)
00:07:51 <lambdabot> /sandbox/tmp/.L.hs:177:16: error:
00:07:51 <lambdabot> • Couldn't match expected type ‘Array i e’
00:07:51 <lambdabot> with actual type ‘(i0 -> e0) -> Array i0 e0’
00:08:15 <ski> er, sorry, need ix
00:08:24 <ski> @let memoArray :: Ix i => (i,i) -> (i -> e) -> (i -> e); memoArray ix f = (L.tabulate ix f !)
00:08:26 <lambdabot> Defined.
00:09:13 <monochrom> Oh yeah that's Löb's combinator. :)
00:09:27 <ski> > let (memoArray (0,12) -> fib12) = \case 0 -> 0; 1 -> 1; n -> fib12 (n-1) + fib12 (n-2) in map fib12 [0 .. 12]
00:09:28 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144]
00:09:46 <ski> (just to illustrate that you can use view patterns also in pattern definitions, not just in arguments in function definitions)
00:10:07 <ski> .. unfortunately, `(memoArray (0,12) -> fib12) n' does not work, though, no parse
00:10:20 <ski> (not quite Löb, just memoing)
00:12:11 <ski> monochrom : anyway, in `\n -> f (n + 1)', the pattern `n + 1' binds `n' (`NPlusKPatterns'), and is used in the expression `n' in the `\n ->' part
00:12:32 <ski> (and is discharged above that, when we transition from definiendum to pattern)
00:12:42 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
00:13:25 <ski> (guess i could have said `\(n - 1) -> f n' instead. but then you have to think about ordering. probably should be left-to-right anyway)
00:13:41 <ski> monochrom : makes sense, now ?
00:14:25 × chomwitt quits (~chomwitt@2a02:587:7a24:bc00:1ac0:4dff:fedb:a3f1) (Ping timeout: 255 seconds)
00:14:45 <ski> imagine writing
00:15:21 <ski> map (\x -> y)@(map -> \xs -> ys) (x:xs) = y:ys
00:15:40 <ski> there's lots of fun stuff like that one could possibly be doing
00:15:57 <ski> (of course, whether one *should* is another question. but it would be nice to have the option, i think)
00:16:32 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
00:17:22 <ski> anyway, the pattern `\<expr> -> <pat>' (not the `<defd>' version) is equivalent to `($ <expr>) -> <pat>' (view patterns)
00:17:25 × tv quits (~tv@user/tv) (Ping timeout: 245 seconds)
00:18:00 <zzz> in the same vein from my previous example: https://paste.jrvieira.com/1700612270215
00:18:01 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 276 seconds)
00:18:08 <ski> an observation on a function amounts to feeding it some input, and seeing what the corresponding output is
00:19:07 <ski> (i got the idea of observation here from "Topolog Via Logic" by Steven Vickers. it's about semantics, lattices, frames, and such. but i figured one should be able to use this as syntax for a feature in pattern-matching)
00:20:15 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
00:21:15 <ski> zzz : unfortunatly, no result type signatures in definiendums :(
00:21:21 <ski> (this is also something i miss from SML)
00:21:47 <ski> (also, your second piece of code has type errors .. but that's a fixable issue)
00:22:03 <zzz> (yes i fixed it as soon i saw it)
00:22:05 <ski> f x :: Bool
00:22:15 <ski> | x = id x
00:22:17 <ski> | otherwise | not x
00:22:32 <ski> .. not sure if you could avoid repeaing `x' there
00:23:21 <ski> (of course, you could also say `f (x :: Bool) :: Bool', a la SML. except that, no result type signatures)
00:24:06 <ski> map (\(_ :: a) -> _ :: b) (_ !! _ :: a) !! _ :: b
00:24:25 <ski> (just going nuts with "Declaration follows use." a la C)
00:24:55 <zzz> i guess what triggers me is that guards are allowed in value definitions in the first place
00:25:05 <ski> why ?
00:25:15 <ski> it's quite handy, at times
00:25:23 <zzz> dont get me wrong, i love it
00:25:28 Guest16 joins (~Guest16@c-73-181-110-71.hsd1.co.comcast.net)
00:25:29 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:25:34 <ski> .. of course, i'd still want proper definition conditionals, and definition `case's
00:25:45 <zzz> but it gives rise to these "inconsistencies"
00:25:47 califax joins (~califax@user/califx)
00:26:10 <ski> what's the inconsistency that you have in mind ?
00:26:12 lbseale joins (~quassel@user/ep1ctetus)
00:26:20 <ski> if ...
00:26:24 <ski> then
00:26:27 × Guest16 quits (~Guest16@c-73-181-110-71.hsd1.co.comcast.net) (Client Quit)
00:26:30 <ski> f x = ..x..
00:26:32 <ski> else
00:26:34 <ski> f x = ..x..
00:26:37 <ski> please ^
00:27:13 <zzz> oh no. why would you want that?
00:27:29 <ski> alternate definitions, depending on context
00:27:39 <ski> said context could e.g. be referring to platform constants
00:27:59 <ski> (in that case, an implementation could dead-code-eliminate away all but one definition)
00:28:45 <ski> local
00:28:52 <ski> f x = ..x..f..g..
00:28:58 <ski> g x = ..x..f..g..
00:29:00 <ski> in
00:29:15 <ski> h x = ..x..f..g..h..i..
00:29:21 <ski> i x y = ..x..y..f..g..h..i..
00:29:27 <ski> is also useful, sometimes
00:29:43 <ski> (basically a `let'-`in' at declaration level)
00:29:52 <ski> `f' and `g' are local, `h' and `i' are not
00:30:06 <zzz> i see
00:30:12 <ski> consider how many times you've said
00:30:18 <ski> foobar ... = (foo,bar)
00:30:20 <ski> where
00:30:23 <ski> foo x = ...
00:30:27 <ski> bar y z = ...
00:31:31 <ski> er, sorry, `foobar ...' was supposed to be `(myFoo,myBar)', in this case. allowing parameters is more complicated, i think
00:31:45 <ski> basically, you want some local defi
00:31:54 <ski> nitions scope over multiple declarations
00:32:27 <ski> of course, one can use modules for hiding local stuff. but often i want more finegrained control, for longer modules
00:34:33 <ski> .. i'd also like special support for `if' and `case' inside do, so that branches would contain sequences of commands (*without* starting a new `do', and without needing to end with an expression)
00:34:38 <ski> if ...
00:34:40 <ski> then
00:34:48 <ski> putStrLn ...
00:34:57 <ski> (x,y) <- ...
00:35:00 <ski> else
00:35:04 <ski> x <- ...
00:35:07 <ski> ...
00:35:10 <ski> y <- ...
00:35:25 <ski> and `x' and `y' are in scope after this
00:36:11 <ski> it should also be possible to apply some wrapper function around a subsequence of commands, as long as that wrapper function is *polymorphic* in the result
00:36:24 <ski> so, has type `forall a. m a -> m a'
00:36:47 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
00:37:11 <ski> (btw, Erlang has this "bind a variable in all branches, it's then in scope afterwards" thing. it got it from Prolog)
00:38:12 × mmhat quits (~mmh@p200300f1c70fae30ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.1.1)
00:38:16 <ski> (that stuff about polymorphism already exists for `TransformListComp' (SQL-like additions like "group" and some more))
00:38:51 <ski> (iirc, the "wrapper function" thing also exist for arrow syntax)
00:40:24 <ski> .. i guess one could also allow `forall a. m a -> m (a,t)' (or so), and then you'd have to do `z <- if ....', where `z' gets type `t'
00:41:44 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
00:45:53 × shapr quits (~user@2600:1700:c640:3100:10bd:417a:786b:3407) (Remote host closed the connection)
00:46:07 shapr joins (~user@2600:1700:c640:3100:740e:a0c5:306f:88bb)
00:50:19 × axeman quits (~quassel@ip5b40ac1e.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
00:51:12 kayvan joins (~user@52-119-115-185.PUBLIC.monkeybrains.net)
00:55:50 <monochrom> ski: Between Löb and memoization: http://www.vex.net/~trebla/tmp/Loeb.hs
00:56:57 <monochrom> TLDR: ((Int -> a) -> (Int -> a)) -> Int -> a ≅ (Int -> ((Int -> a) -> -> a)) -> Int -> a ≅ [] ([]a -> a) -> [] a (or replace [] by any functor that Int-> represents)
00:57:00 <ski> yea, i would've used `($ xs) <$>'
00:57:12 <ski> (no need for `Applicative')
00:57:28 <ski> ah, i see you do, later :)
00:58:20 <monochrom> I think I started with generalizing from "x = f x" to "x = foo <*> pure x".
00:58:51 <monochrom> Natural intuitive generalizations are often suboptimal generalizations. :)
00:59:30 <ski> yep, you're basically using `memoFix :: Ix i => (i,i) -> ((i -> e) -> (i -> e)) -> (i -> e)', which is fine. difference with mine is that i inserted the `memoArray' into the recursive cycle directly, rather than factoring out recursion
01:00:05 <ski> it's nice, i hadn't even thought of approaching it starting from `Applicative'
01:00:50 <ski> ah .. that translation from `memoFix'/`memo_list' to `loeb' is indeed quite nice :)
01:02:10 <ski> (i see you're using the name `tabulate' as well, i shouldn't be surprised, given that you're well familiar with SML ;)
01:02:23 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:03:16 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:19c0:53d0:5da5:a978)
01:03:27 <monochrom> Hrm, I didn't get the name "tabulate" from SML. But I got it from the Hutton APLicative paper linked there.
01:03:30 califax joins (~califax@user/califx)
01:05:01 <ski> btw, if you haven't seen it before : "(The Cartoon Guide to) Löb's Theorem" by Eliezer Yudkowsky(,with thanks to Torkel Franzén,Marcello Herreshoff) in 2008 at <https://web.archive.org/web/20150430235615/http://www.yudkowsky.net/assets/44/LobsTheorem.pdf>
01:05:23 <ski> ah, probably Hutton got it from there, then
01:07:05 <ski> oh, and yes, the proof of Löb is basically the fixed-point combinator, with some quasiquotations thrown into the mix
01:07:30 × kayvan quits (~user@52-119-115-185.PUBLIC.monkeybrains.net) (Remote host closed the connection)
01:07:32 <ski> (instructive to try, in Scheme)
01:08:22 <ski> - List.tabulate;
01:08:31 <ski> val it = fn : int * (int -> 'a) -> 'a list
01:08:59 <ski> (also in `Vector' and `Array')
01:09:28 <ski> @type Data.Vector.generate
01:09:29 <lambdabot> Int -> (Int -> a) -> Data.Vector.Vector a
01:11:54 <ski> non-Springer : <https://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/aplicative.pdf>
01:12:03 <ski> (haven't seen this one before, ty)
01:12:33 × mima quits (~mmh@aftr-62-216-211-248.dynamic.mnet-online.de) (Ping timeout: 256 seconds)
01:13:28 <ski> also relevant "What is a Naperian container?" <https://web.archive.org/web/20160325011523/http://sneezy.cs.nott.ac.uk/containers/blog/?p=14>
01:16:50 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Ping timeout: 260 seconds)
01:16:51 <ski> oh, also re arrays : "Multi-dimensional array views for systems programmers" by pervognsen (Per Vognsen) at 2019-01-20(?) - 2019-04-30 at <https://gist.github.com/pervognsen/0e1be3b683d62b16fd81381c909bf67e> is quite interesting
01:19:07 <ski> (this also ties into addition,multiplication,exponentiation on naturals (related to lists, continuations, and logic programming), and related operations on `Fin n' .. addition is "laying out side by side", multiplication is "coordinates", and exponentiation is "base numeral system")
01:19:45 <ski> (well, you could say "offsets", rather than "laying out side by side")
01:20:37 <ski> the lifting from scalar in the paper is related to ellipsis patterns and templates in `syntax-rules' in Scheme
01:24:31 <monochrom> Ugh, now my paper collection has an aplicative.pdf and an Applicative.pdf. Not confuing at all. :)
01:26:43 <EvanR> good thing your filesystem isn't case insensitive AND run-length insensitive
01:27:05 <monochrom> haha imagine a running-length-insensitive system
01:28:36 <ski> no repetition for you
01:29:01 <ski> now i'm wondering how much that decreases number of bits
01:29:52 <ski> instead of `d^n', we get `d*(d-1)^(n-1)'
01:30:02 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:19c0:53d0:5da5:a978) (Ping timeout: 256 seconds)
01:30:39 <monochrom> Yeah
01:31:10 <ski> (log d + (n-1) * log (d-1)) / (n * log d)
01:31:45 <ski> 1/n + ((n-1)/n) * (log (d-1))/(log d)
01:36:50 <ski> anyway, that `Log f' in `Naperian f' reminds me of elasticity of demand, `E f'. where `E f * f a = D f a * a'. `D f a' is the one-hole context, and `E f' is the path
01:41:18 <ski> (hm, their `Log f = p', if `f a = p -> a' (all `a'), doesn't look like an exact analogy. i suppose you could say `Log f = Log_a (f a)' for all `a' (iow, assuming constancy))
01:43:08 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
01:48:01 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
02:00:16 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
02:00:44 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:02:54 × pointlessslippe1 quits (~pointless@212.82.82.3) (Ping timeout: 256 seconds)
02:09:05 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 256 seconds)
02:10:11 pointlessslippe1 joins (~pointless@212.82.82.3)
02:29:56 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
02:31:47 ft_ joins (~ft@p508db3bc.dip0.t-ipconnect.de)
02:33:35 × ft quits (~ft@p508db3bc.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
02:33:37 ft_ is now known as ft
02:34:35 × xff0x quits (~xff0x@2405:6580:b080:900:5540:e72e:d839:e215) (Ping timeout: 256 seconds)
02:34:43 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
02:37:56 × phma quits (phma@2001:5b0:210b:89e8:2742:c8bf:8662:607d) (Read error: Connection reset by peer)
02:38:20 phma joins (phma@2001:5b0:210b:89e8:2742:c8bf:8662:607d)
02:58:43 <hammond> so template haskell is the macro system for haskell kinda?
03:02:32 × otto_s quits (~user@p5b044278.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
03:03:09 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:03:09 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:03:09 finn_elija is now known as FinnElija
03:03:58 otto_s joins (~user@p4ff27388.dip0.t-ipconnect.de)
03:07:11 × ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 264 seconds)
03:07:34 ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net)
03:09:39 <ski> hammond : kinda
03:11:53 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:14:59 × td_ quits (~td@i5387093B.versanet.de) (Ping timeout: 264 seconds)
03:15:28 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 276 seconds)
03:16:14 td_ joins (~td@i53870926.versanet.de)
03:16:23 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
03:16:43 × edr quits (~edr@user/edr) (Quit: Leaving)
03:16:55 × johnw quits (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
03:19:35 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
03:28:46 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:19c0:53d0:5da5:a978)
03:36:54 Guest20 joins (~Guest21@2607:fea8:4ce3:8b00:4068:4af2:ef01:b2ee)
03:37:52 <hammond> ski i havent seen how it worked, but can you change the syntax of the language with it for example?
03:38:01 <hammond> ppl make it sound complex.
03:38:19 × Guest20 quits (~Guest21@2607:fea8:4ce3:8b00:4068:4af2:ef01:b2ee) (Client Quit)
03:38:58 <ski> not really. you write `$(foo bar baz)' to splice in code that's executed at compile-time
03:39:50 <ski> you can also have quasiquotations, `[foo| ... ]', where `foo' gets passed `...' as a string
03:40:34 <ski> but it's not really for custom concrete syntax (the way that CamlP4 in OCaml works, e.g.)
03:41:50 johnw joins (~johnw@69.62.242.138)
03:41:54 <hammond> I see.
03:41:54 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:19c0:53d0:5da5:a978) (Read error: Connection reset by peer)
03:42:10 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:19c0:53d0:5da5:a978)
03:43:11 × m257 quits (~maaz@bras-base-hspron0502w-grc-02-184-147-203-180.dsl.bell.ca) (Ping timeout: 264 seconds)
03:43:39 <ski> (reminds me of a project with quasiquotations, interpreting (parsing) the body as Haskell, but then translating that in an interesting way, that i haven't worked on in a while)
03:47:19 × Square2 quits (~Square4@user/square) (Ping timeout: 276 seconds)
03:47:36 × shapr quits (~user@2600:1700:c640:3100:740e:a0c5:306f:88bb) (Remote host closed the connection)
03:47:49 shapr joins (~user@2600:1700:c640:3100:695f:d0b:a0eb:640c)
03:50:25 lottaquestions_ joins (~nick@2607:fa49:503d:b200:33ec:47ab:d48a:3020)
03:50:43 × lottaquestions quits (~nick@2607:fa49:503d:b200:103e:31e4:ac33:5629) (Ping timeout: 260 seconds)
03:50:49 × koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (Remote host closed the connection)
03:52:14 koala_man joins (~vidar@157.146.251.23.bc.googleusercontent.com)
03:59:57 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
04:02:41 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
04:04:30 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:19c0:53d0:5da5:a978) (Remote host closed the connection)
04:05:06 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:19c0:53d0:5da5:a978)
04:06:44 Feuermagier joins (~Feuermagi@user/feuermagier)
04:10:04 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:19c0:53d0:5da5:a978) (Ping timeout: 276 seconds)
04:18:50 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
04:20:20 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
04:21:30 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:19c0:53d0:5da5:a978)
04:41:52 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
04:45:37 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 246 seconds)
04:46:07 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds)
04:46:35 thegeekinside joins (~thegeekin@189.217.90.224)
04:48:24 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
04:48:31 Maxdamantus joins (~Maxdamant@user/maxdamantus)
04:49:50 rosco joins (~rosco@175.136.157.149)
04:50:54 thegeekinside joins (~thegeekin@189.217.90.224)
04:50:57 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
04:51:32 thegeekinside joins (~thegeekin@189.217.90.224)
04:51:32 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
04:53:50 × ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 260 seconds)
04:54:51 thegeekinside joins (~thegeekin@189.217.90.224)
04:54:54 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
04:55:47 ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net)
04:57:32 thegeekinside joins (~thegeekin@189.217.90.224)
04:57:33 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
04:59:58 thegeekinside joins (~thegeekin@189.217.90.224)
05:00:57 aforemny_ joins (~aforemny@i59F516C5.versanet.de)
05:02:14 × aforemny quits (~aforemny@2001:9e8:6cda:4700:b553:6b25:ff55:5d85) (Ping timeout: 260 seconds)
05:02:21 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:05:06 thegeekinside joins (~thegeekin@189.217.90.224)
05:05:07 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:07:31 thegeekinside joins (~thegeekin@189.217.90.224)
05:07:51 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:10:17 thegeekinside joins (~thegeekin@189.217.90.224)
05:11:55 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:16:46 thegeekinside joins (~thegeekin@189.217.90.224)
05:20:50 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:23:23 thegeekinside joins (~thegeekin@189.217.90.224)
05:23:24 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:23:55 thegeekinside joins (~thegeekin@189.217.90.224)
05:23:58 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:26:36 thegeekinside joins (~thegeekin@189.217.90.224)
05:26:36 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:27:12 notzmv joins (~zmv@user/notzmv)
05:29:36 thegeekinside joins (~thegeekin@189.217.90.224)
05:31:58 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:32:28 thegeekinside joins (~thegeekin@189.217.90.224)
05:32:29 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:32:31 × califax quits (~califax@user/califx) (Ping timeout: 240 seconds)
05:33:08 thegeekinside joins (~thegeekin@189.217.90.224)
05:33:19 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
05:33:28 califax joins (~califax@user/califx)
05:36:00 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
05:37:03 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:39:34 thegeekinside joins (~thegeekin@189.217.90.224)
05:39:47 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:42:10 thegeekinside joins (~thegeekin@189.217.90.224)
05:42:13 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
05:42:33 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:45:01 thegeekinside joins (~thegeekin@189.217.90.224)
05:45:02 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:45:32 thegeekinside joins (~thegeekin@189.217.90.224)
05:45:33 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:46:14 thegeekinside joins (~thegeekin@189.217.90.224)
05:46:15 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:46:44 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
05:47:14 thegeekinside joins (~thegeekin@189.217.90.224)
05:47:17 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:47:57 thegeekinside joins (~thegeekin@189.217.90.224)
05:47:58 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:52:46 thegeekinside joins (~thegeekin@189.217.90.224)
05:53:05 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
05:55:22 thegeekinside joins (~thegeekin@189.217.90.224)
05:59:43 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
06:14:34 zetef joins (~quassel@95.77.17.251)
06:17:54 yaxe1 joins (~yaxe1@user/yaxe1)
06:19:23 trev joins (~trev@user/trev)
06:22:47 chomwitt joins (~chomwitt@2a02:587:7a24:bc00:1ac0:4dff:fedb:a3f1)
06:23:23 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:24:44 yaxe1_ joins (~yaxe1@user/yaxe1)
06:27:54 alp_ joins (~alp@2001:861:e3d6:8f80:47b6:3219:584d:839)
06:28:47 × yaxe1 quits (~yaxe1@user/yaxe1) (Ping timeout: 264 seconds)
06:34:51 × yaxe1_ quits (~yaxe1@user/yaxe1) (Ping timeout: 256 seconds)
06:46:58 Xyloes joins (~wyx@2400:dd01:103a:1012:5923:33ce:7857:fc04)
07:04:47 acidjnk joins (~acidjnk@p200300d6e72b93351de783cd8454c847.dip0.t-ipconnect.de)
07:05:01 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 256 seconds)
07:07:29 axeman joins (~quassel@ip5b40ac1e.dynamic.kabel-deutschland.de)
07:10:22 ubert joins (~Thunderbi@178.115.68.48.wireless.dyn.drei.com)
07:14:13 × califax quits (~califax@user/califx) (Remote host closed the connection)
07:14:30 sord937 joins (~sord937@gateway/tor-sasl/sord937)
07:17:04 califax joins (~califax@user/califx)
07:18:24 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
07:20:31 × axeman quits (~quassel@ip5b40ac1e.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
07:25:12 axeman joins (~quassel@ip5b40ac1e.dynamic.kabel-deutschland.de)
07:31:34 × Buggys quits (Buggys@shelltalk.net) (Ping timeout: 260 seconds)
07:38:30 × [_________] quits (~oos95GWG@user/oos95GWG) (Quit: [_________])
07:39:00 [_________] joins (~oos95GWG@user/oos95GWG)
07:39:37 lortabac joins (~lorenzo@2a01:e0a:541:b8f0:ec7c:79cd:c63a:f4f8)
07:41:33 Buggys joins (Buggys@Buggy.shelltalk.net)
07:42:22 × SrPx quits (sid108780@id-108780.uxbridge.irccloud.com) (Ping timeout: 246 seconds)
07:42:51 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 256 seconds)
07:43:55 SrPx joins (sid108780@uxbridge.irccloud.com)
07:44:10 × davetapley quits (sid666@id-666.uxbridge.irccloud.com) (Ping timeout: 260 seconds)
07:45:58 × SrPx quits (sid108780@uxbridge.irccloud.com) (Max SendQ exceeded)
07:46:27 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:46:33 × alanz quits (sid110616@id-110616.uxbridge.irccloud.com) (Ping timeout: 260 seconds)
07:47:42 × superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (*.net *.split)
07:47:42 davetapley joins (sid666@uxbridge.irccloud.com)
07:48:16 SrPx joins (sid108780@uxbridge.irccloud.com)
07:49:40 alanz joins (sid110616@id-110616.uxbridge.irccloud.com)
07:50:37 × zetef quits (~quassel@95.77.17.251) (Ping timeout: 255 seconds)
07:51:58 mc47 joins (~mc47@xmonad/TheMC47)
07:54:01 yaxe1 joins (~yaxe1@user/yaxe1)
07:54:52 superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net)
08:01:24 jmdaemon joins (~jmdaemon@user/jmdaemon)
08:01:43 zetef joins (~quassel@95.77.17.251)
08:02:47 gmg joins (~user@user/gehmehgeh)
08:03:22 × alp_ quits (~alp@2001:861:e3d6:8f80:47b6:3219:584d:839) (Ping timeout: 246 seconds)
08:04:11 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
08:05:53 alp_ joins (~alp@2001:861:e3d6:8f80:2854:b41c:efae:b69b)
08:06:09 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:13:57 ThofVe joins (~ThofVe@178.208.16.70)
08:19:04 poscat0x04 joins (~poscat@user/poscat)
08:19:20 × axeman quits (~quassel@ip5b40ac1e.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
08:20:15 nucranium joins (~nucranium@2a02:8010:6173:0:7d81:65c5:a598:8bba)
08:20:53 CiaoSen joins (~Jura@2a05:5800:27e:6600:2a3a:4dff:fe84:dbd5)
08:20:58 × poscat quits (~poscat@user/poscat) (Ping timeout: 276 seconds)
08:24:20 mima joins (~mmh@aftr-62-216-211-165.dynamic.mnet-online.de)
08:25:25 × nucranium quits (~nucranium@2a02:8010:6173:0:7d81:65c5:a598:8bba) (Quit: WeeChat 4.0.5)
08:29:16 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
08:31:00 <Athas> Is there a package on Hackage that exposes the entire C math.h library?
08:36:40 <probie> Is there much incentive to write one? You can already just use them with something like `foreign import unsafe "capi" "math.h atan2" c_atan2 :: Double -> Double -> Double`
08:36:56 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:37:32 × rosco quits (~rosco@175.136.157.149) (Quit: Lost terminal)
08:41:58 <Athas> Yeah, that's what I do. But maybe I can be the last one to do so.
08:42:02 × Shock_ quits (~shOkEy@85-238-77-96.pool.digikabel.hu) (Ping timeout: 260 seconds)
08:42:12 <Athas> It is somewhat annoying that they are not already in base somewhere.
08:42:26 <Lycurgus> nothing to generate that?
08:42:30 <Athas> I'm not sure base has any way to round floats properly, actually.
08:51:36 fendor joins (~fendor@2a02:8388:1640:be00:8705:c56:c793:802b)
08:51:47 <probie> It has ways to round them to `Int`s and `Integer`s, and then you can convert them back, but I guess that's awkward since it won't handle NaN or infinities properly
08:54:38 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds)
08:54:47 × shapr quits (~user@2600:1700:c640:3100:695f:d0b:a0eb:640c) (Remote host closed the connection)
08:55:00 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
08:55:01 shapr joins (~user@2600:1700:c640:3100:e532:46ea:2417:b949)
08:58:22 × cstml quits (~cstml@user/cstml) (Ping timeout: 260 seconds)
08:58:48 × ThofVe quits (~ThofVe@178.208.16.70) (Ping timeout: 250 seconds)
08:59:43 chele joins (~chele@user/chele)
09:00:05 × zetef quits (~quassel@95.77.17.251) (Ping timeout: 240 seconds)
09:03:04 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
09:04:04 ThofVe joins (~ThofVe@178.208.16.70)
09:05:30 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:10:34 Shock_ joins (~shOkEy@178-164-206-123.pool.digikabel.hu)
09:11:43 dhil joins (~dhil@2001:8e0:2014:3100:5987:a1c5:570d:50dd)
09:17:23 × forell quits (~forell@user/forell) (Ping timeout: 264 seconds)
09:17:29 forell_ joins (~forell@host-178-216-90-220.sta.tvknaszapraca.pl)
09:18:28 notzmv joins (~zmv@user/notzmv)
09:23:16 × yaxe1 quits (~yaxe1@user/yaxe1) (Remote host closed the connection)
09:24:53 yaxe1 joins (~yaxe1@user/yaxe1)
09:25:02 × yaxe1 quits (~yaxe1@user/yaxe1) (Remote host closed the connection)
09:25:15 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
09:29:04 axeman joins (~quassel@ip5b40ac1e.dynamic.kabel-deutschland.de)
09:37:51 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
09:38:16 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
09:39:38 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:19c0:53d0:5da5:a978) (Remote host closed the connection)
09:42:50 × tzh quits (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
09:43:13 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
09:43:56 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 268 seconds)
09:46:08 kritzefitz joins (~kritzefit@debian/kritzefitz)
09:46:54 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
09:47:53 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
09:53:14 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
09:53:32 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
09:56:55 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:57:09 Jackneill_ joins (~Jackneill@20014C4E1E1205003CA6608F8946CB70.dsl.pool.telekom.hu)
10:00:32 danse-nr3 joins (~danse@151.57.186.185)
10:00:39 zetef joins (~quassel@95.77.17.251)
10:05:39 × axeman quits (~quassel@ip5b40ac1e.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
10:05:47 × zetef quits (~quassel@95.77.17.251) (Ping timeout: 256 seconds)
10:06:51 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
10:07:34 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 276 seconds)
10:08:16 Lord_of_Life_ is now known as Lord_of_Life
10:11:52 hays joins (rootvegeta@fsf/member/hays)
10:12:01 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 256 seconds)
10:13:53 mmhat joins (~mmh@p200300f1c70fae30ee086bfffe095315.dip0.t-ipconnect.de)
10:16:06 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972)
10:17:08 __monty__ joins (~toonn@user/toonn)
10:19:37 zetef joins (~quassel@95.77.17.251)
10:22:32 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 252 seconds)
10:37:43 rosco joins (~rosco@175.136.157.149)
10:38:46 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 246 seconds)
10:40:50 kritzefitz joins (~kritzefit@debian/kritzefitz)
10:42:34 axeman joins (~quassel@ip5b40ac1e.dynamic.kabel-deutschland.de)
10:45:30 gawen joins (~gawen@user/gawen)
10:46:52 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
10:47:45 img joins (~img@user/img)
10:52:44 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
10:53:37 img joins (~img@user/img)
11:03:15 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972) (Ping timeout: 245 seconds)
11:03:46 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
11:04:28 euleritian joins (~euleritia@dynamic-046-114-200-003.46.114.pool.telefonica.de)
11:04:53 × zetef quits (~quassel@95.77.17.251) (Ping timeout: 260 seconds)
11:05:01 × mixfix41 quits (~plaguedog@user/mixfix41) (Ping timeout: 268 seconds)
11:05:31 motherfsck joins (~motherfsc@user/motherfsck)
11:07:29 × CiaoSen quits (~Jura@2a05:5800:27e:6600:2a3a:4dff:fe84:dbd5) (Ping timeout: 268 seconds)
11:10:15 × alp_ quits (~alp@2001:861:e3d6:8f80:2854:b41c:efae:b69b) (Ping timeout: 256 seconds)
11:12:50 xff0x joins (~xff0x@2405:6580:b080:900:7037:3ff0:3081:873c)
11:13:38 × euleritian quits (~euleritia@dynamic-046-114-200-003.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
11:13:56 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
11:18:54 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
11:19:30 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
11:20:30 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 256 seconds)
11:21:04 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
11:22:04 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
11:22:27 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
11:23:09 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
11:23:20 gmg joins (~user@user/gehmehgeh)
11:25:41 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 256 seconds)
11:26:50 sawilagar joins (~sawilagar@user/sawilagar)
11:28:36 kritzefitz joins (~kritzefit@debian/kritzefitz)
11:31:34 × axeman quits (~quassel@ip5b40ac1e.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
11:31:41 kritzefitz_ joins (~kritzefit@debian/kritzefitz)
11:33:03 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 256 seconds)
11:36:32 kritzefitz_ is now known as kritzefitz
11:38:55 × rosco quits (~rosco@175.136.157.149) (Quit: Lost terminal)
11:42:26 × ubert quits (~Thunderbi@178.115.68.48.wireless.dyn.drei.com) (Read error: Connection reset by peer)
11:42:46 ubert joins (~Thunderbi@178.115.68.48.wireless.dyn.drei.com)
11:43:34 × ubert quits (~Thunderbi@178.115.68.48.wireless.dyn.drei.com) (Remote host closed the connection)
11:43:54 × ThofVe quits (~ThofVe@178.208.16.70) (Ping timeout: 250 seconds)
11:47:47 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
11:47:56 euleritian joins (~euleritia@dynamic-046-114-200-003.46.114.pool.telefonica.de)
11:48:45 × dhil quits (~dhil@2001:8e0:2014:3100:5987:a1c5:570d:50dd) (Read error: Connection reset by peer)
11:52:11 dhil joins (~dhil@2001:8e0:2014:3100:e64:a377:2b5c:81b6)
11:56:17 alp_ joins (~alp@2001:861:e3d6:8f80:96af:bfe:888:c717)
11:58:30 ubert joins (~Thunderbi@178.115.68.48.wireless.dyn.drei.com)
11:59:02 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:04:52 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:16:28 × shapr quits (~user@2600:1700:c640:3100:e532:46ea:2417:b949) (Remote host closed the connection)
12:16:42 shapr joins (~user@2600:1700:c640:3100:29fc:a95f:cc8b:e3d5)
12:17:10 × fendor quits (~fendor@2a02:8388:1640:be00:8705:c56:c793:802b) (Ping timeout: 256 seconds)
12:19:31 × danse-nr3 quits (~danse@151.57.186.185) (Ping timeout: 256 seconds)
12:20:13 danse-nr3 joins (~danse@151.57.186.185)
12:33:56 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1)
12:36:31 ThofVe joins (~ThofVe@178.208.16.70)
12:37:07 billchenchina joins (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
12:47:56 × acidjnk quits (~acidjnk@p200300d6e72b93351de783cd8454c847.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
12:55:20 <cheater> any ideas why Data.ByteString.Lazy doesn't have a putStrLn?
12:55:48 <cheater> seems like a weird thing not to have given it's in every other bytestring
12:57:42 CodeGerrard joins (~Gerr@197.221.253.209)
12:58:31 acidjnk joins (~acidjnk@p200300d6e72b933550e7445b70f008d5.dip0.t-ipconnect.de)
12:59:19 × danse-nr3 quits (~danse@151.57.186.185) (Ping timeout: 255 seconds)
12:59:30 danse-nr3 joins (~danse@151.57.136.158)
13:00:53 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972)
13:06:59 CiaoSen joins (~Jura@2a05:5800:27e:6600:2a3a:4dff:fe84:dbd5)
13:08:46 × euleritian quits (~euleritia@dynamic-046-114-200-003.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
13:09:04 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
13:09:37 axeman joins (~quassel@91.64.172.30)
13:11:41 <ncf> cheater: it was deprecated https://hackage.haskell.org/package/bytestring-0.10.8.2/docs/Data-ByteString-Lazy.html#v:putStrLn
13:12:28 <cheater> bewildering
13:13:28 <cheater> thanks for the investigative work
13:14:52 <ncf> well, moved
13:16:25 leungbk joins (~user@2603-8000-1201-2dd2-17dc-641e-3e10-b270.res6.spectrum.com)
13:16:37 <cheater> right
13:17:44 <cheater> well, at least we won't get unexpected errors once we all convert our terminals to only accept newlines in cuneiform
13:18:10 <cheater> try explaining *that* oversight to your great great great great grand kids
13:18:17 <ncf> itym ebcdic
13:18:35 <cheater> gread grandpa has a photo in his drawer of using ascii \n
13:18:52 × sefidel quits (~sefidel@user/sefidel) (Remote host closed the connection)
13:19:39 sefidel joins (~sefidel@user/sefidel)
13:20:17 × sefidel quits (~sefidel@user/sefidel) (Remote host closed the connection)
13:21:50 × Xyloes quits (~wyx@2400:dd01:103a:1012:5923:33ce:7857:fc04) (Quit: Konversation terminated!)
13:22:54 <kuribas> You should not be printing bytestrings.
13:23:03 Xyloes joins (~wyx@2400:dd01:103a:1012:5923:33ce:7857:fc04)
13:23:04 <kuribas> bytestrings are just binary data, with no meaning.
13:23:28 <kuribas> How do you print it? As an image? As ascii? As zipped data?
13:23:42 sefidel joins (~sefidel@user/sefidel)
13:25:14 × Xyloes quits (~wyx@2400:dd01:103a:1012:5923:33ce:7857:fc04) (Client Quit)
13:25:56 × pieguy128 quits (~pieguy128@bas1-montreal02-65-92-163-232.dsl.bell.ca) (Ping timeout: 268 seconds)
13:25:56 Xyloes joins (~wyx@2400:dd01:103a:1012:5923:33ce:7857:fc04)
13:27:01 × leungbk quits (~user@2603-8000-1201-2dd2-17dc-641e-3e10-b270.res6.spectrum.com) (Quit: ERC 5.6-git (IRC client for GNU Emacs 30.0.50))
13:27:23 leungbk joins (~user@2603-8000-1201-2dd2-17dc-641e-3e10-b270.res6.spectrum.com)
13:27:46 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:28:13 × axeman quits (~quassel@91.64.172.30) (Ping timeout: 255 seconds)
13:36:00 × ThofVe quits (~ThofVe@178.208.16.70) (Quit: Client closed)
13:45:12 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
13:47:33 × picnoir quits (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) (Quit: WeeChat 4.1.1)
13:48:40 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 245 seconds)
13:48:55 × koz quits (~koz@121.99.240.58) (Ping timeout: 256 seconds)
13:50:23 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
13:50:48 picnoir joins (~picnoir@about/aquilenet/vodoo/NinjaTrappeur)
13:58:55 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972) (Ping timeout: 268 seconds)
13:59:25 × mima quits (~mmh@aftr-62-216-211-165.dynamic.mnet-online.de) (Ping timeout: 260 seconds)
13:59:50 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
14:01:01 koz joins (~koz@121.99.240.58)
14:01:46 L29Ah joins (~L29Ah@wikipedia/L29Ah)
14:02:10 × picnoir quits (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) (Quit: WeeChat 4.1.1)
14:03:22 picnoir joins (~picnoir@about/aquilenet/vodoo/NinjaTrappeur)
14:17:23 × ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 252 seconds)
14:18:18 axeman joins (~quassel@ip5b40ac1e.dynamic.kabel-deutschland.de)
14:19:53 × danse-nr3 quits (~danse@151.57.136.158) (Ping timeout: 268 seconds)
14:22:23 × Xyloes quits (~wyx@2400:dd01:103a:1012:5923:33ce:7857:fc04) (Quit: Konversation terminated!)
14:23:13 thegeekinside joins (~thegeekin@189.217.90.224)
14:26:43 × CiaoSen quits (~Jura@2a05:5800:27e:6600:2a3a:4dff:fe84:dbd5) (Ping timeout: 255 seconds)
14:28:22 danse-nr3 joins (~danse@151.57.136.158)
14:29:17 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 256 seconds)
14:29:48 CiaoSen joins (~Jura@185.37.251.168)
14:29:59 × foul_owl quits (~kerry@157.97.134.165) (Ping timeout: 264 seconds)
14:33:05 edr joins (~edr@user/edr)
14:42:26 foul_owl joins (~kerry@185.219.141.164)
14:51:00 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:04:11 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
15:07:00 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
15:07:02 × jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
15:07:17 jinsun joins (~jinsun@user/jinsun)
15:10:10 zetef joins (~quassel@95.77.17.251)
15:14:46 × leungbk quits (~user@2603-8000-1201-2dd2-17dc-641e-3e10-b270.res6.spectrum.com) (Quit: ERC 5.6-git (IRC client for GNU Emacs 30.0.50))
15:15:06 fendor joins (~fendor@2a02:8388:1640:be00:8705:c56:c793:802b)
15:16:05 Simikando joins (~Simikando@bband-dyn93.95-103-156.t-com.sk)
15:18:50 × potato44 quits (uid421314@id-421314.lymington.irccloud.com) (Quit: Connection closed for inactivity)
15:25:04 × ski quits (~ski@ext-1-042.eduroam.chalmers.se) (Ping timeout: 246 seconds)
15:26:35 ski joins (~ski@ext-1-042.eduroam.chalmers.se)
15:28:37 × danse-nr3 quits (~danse@151.57.136.158) (Remote host closed the connection)
15:28:50 mima joins (~mmh@dhcp-138-246-3-127.dynamic.eduroam.mwn.de)
15:29:03 danse-nr3 joins (~danse@151.57.136.158)
15:30:14 Jackneill joins (~Jackneill@20014C4E1E120500F60962E32F241FFF.dsl.pool.telekom.hu)
15:30:30 × Jackneill_ quits (~Jackneill@20014C4E1E1205003CA6608F8946CB70.dsl.pool.telekom.hu) (Ping timeout: 268 seconds)
15:31:13 Sgeo joins (~Sgeo@user/sgeo)
15:39:14 × CiaoSen quits (~Jura@185.37.251.168) (Ping timeout: 260 seconds)
15:41:39 × shapr quits (~user@2600:1700:c640:3100:29fc:a95f:cc8b:e3d5) (Remote host closed the connection)
15:41:52 shapr joins (~user@2600:1700:c640:3100:5d65:223d:9bac:e160)
15:54:28 × zetef quits (~quassel@95.77.17.251) (Ping timeout: 255 seconds)
15:55:51 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972)
15:57:57 × vjoki quits (~vjoki@2a00:d880:3:1::fea1:9ae) (Ping timeout: 260 seconds)
16:03:39 vjoki joins (~vjoki@2a00:d880:3:1::fea1:9ae)
16:03:39 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Quit: WeeChat 4.1.0)
16:08:56 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 256 seconds)
16:09:57 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
16:10:05 pieguy128 joins (~pieguy128@bras-base-mtrlpq5031w-grc-49-67-70-103-21.dsl.bell.ca)
16:14:33 × Putonlalla quits (~Putonlall@it-cyan.it.jyu.fi) (Ping timeout: 256 seconds)
16:16:25 × Simikando quits (~Simikando@bband-dyn93.95-103-156.t-com.sk) (Ping timeout: 255 seconds)
16:17:11 × p3n quits (~p3n@217.198.124.246) (Quit: ZNC 1.8.2 - https://znc.in)
16:18:41 p3n joins (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1)
16:19:35 Square joins (~Square@user/square)
16:22:37 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 256 seconds)
16:23:00 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972) (Remote host closed the connection)
16:23:20 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972)
16:23:20 kritzefitz joins (~kritzefit@debian/kritzefitz)
16:24:45 × axeman quits (~quassel@ip5b40ac1e.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
16:25:27 Pandry joins (~Pandry@93-41-34-64.ip79.fastwebnet.it)
16:25:37 × qqq quits (~qqq@92.43.167.61) (Remote host closed the connection)
16:28:19 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
16:28:57 Putonlalla joins (~Putonlall@it-cyan.it.jyu.fi)
16:34:24 koz_ joins (~koz@121.99.240.58)
16:35:07 × koz quits (~koz@121.99.240.58) (Ping timeout: 260 seconds)
16:37:45 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972) (Remote host closed the connection)
16:39:05 axeman joins (~quassel@ip5b40ac1e.dynamic.kabel-deutschland.de)
16:40:45 notzmv joins (~zmv@user/notzmv)
16:43:47 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
16:48:19 × koz_ quits (~koz@121.99.240.58) (Quit: ZNC 1.8.2 - https://znc.in)
16:48:58 koz joins (~koz@121.99.240.58)
16:52:20 × shapr quits (~user@2600:1700:c640:3100:5d65:223d:9bac:e160) (Remote host closed the connection)
16:52:35 shapr joins (~user@2600:1700:c640:3100:b285:ab20:7123:ee63)
16:56:12 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972)
16:56:31 × danse-nr3 quits (~danse@151.57.136.158) (Read error: Connection reset by peer)
16:57:01 danse-nr3 joins (~danse@151.57.206.239)
16:57:20 jmdaemon joins (~jmdaemon@user/jmdaemon)
16:58:49 × acarrico quits (~acarrico@dhcp-68-142-49-163.greenmountainaccess.net) (Quit: Leaving.)
17:03:18 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
17:03:51 euleritian joins (~euleritia@dynamic-046-114-205-219.46.114.pool.telefonica.de)
17:05:16 Simikando joins (~Simikando@bband-dyn93.95-103-156.t-com.sk)
17:06:26 AlexNoo_ joins (~AlexNoo@178.34.163.165)
17:06:52 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972) (Remote host closed the connection)
17:07:38 sansk joins (~sansk@user/sansk)
17:09:39 × AlexZenon quits (~alzenon@94.233.240.219) (Ping timeout: 256 seconds)
17:10:05 × AlexNoo quits (~AlexNoo@94.233.240.219) (Ping timeout: 252 seconds)
17:13:23 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds)
17:16:14 AlexZenon joins (~alzenon@178.34.163.165)
17:20:00 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:20:53 lottaquestions joins (~nick@2607:fa49:503d:b200:ced0:26d6:58ac:b557)
17:22:15 × Simikando quits (~Simikando@bband-dyn93.95-103-156.t-com.sk) (Ping timeout: 260 seconds)
17:22:25 × lottaquestions_ quits (~nick@2607:fa49:503d:b200:33ec:47ab:d48a:3020) (Ping timeout: 260 seconds)
17:25:33 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
17:25:35 AlexNoo_ is now known as AlexNoo
17:26:31 × gabriel_sevecek quits (~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 4.0.5)
17:27:40 gabriel_sevecek joins (~gabriel@188-167-229-200.dynamic.chello.sk)
17:28:55 × lottaquestions quits (~nick@2607:fa49:503d:b200:ced0:26d6:58ac:b557) (Read error: Connection reset by peer)
17:29:08 Simikando joins (~Simikando@bband-dyn93.95-103-156.t-com.sk)
17:29:20 lottaquestions joins (~nick@2607:fa49:503d:b200:ced0:26d6:58ac:b557)
17:34:20 × sansk quits (~sansk@user/sansk) (Quit: WeeChat 4.0.4)
17:41:24 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972)
17:41:59 × euleritian quits (~euleritia@dynamic-046-114-205-219.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
17:42:17 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
17:42:44 jmdaemon joins (~jmdaemon@user/jmdaemon)
17:45:18 × alp_ quits (~alp@2001:861:e3d6:8f80:96af:bfe:888:c717) (Remote host closed the connection)
17:46:52 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
17:47:11 tzh joins (~tzh@c-71-193-181-0.hsd1.or.comcast.net)
17:47:51 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972) (Remote host closed the connection)
17:48:06 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972)
17:48:22 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
17:49:46 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:50:18 ChaiTRex joins (~ChaiTRex@user/chaitrex)
17:52:11 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
17:58:02 mrqubo joins (~arch@91.207.184.206)
18:01:00 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
18:02:15 <mrqubo> I'm writing compiler in Haskell for a school project. I wanted to use it to simplify usage of state and reader monads but I found at least 7 of different libraries. Can anyone recommend which one could I use?
18:02:45 <mrqubo> Oh, wait, I removed the important part. I'm talking about effects libraries.
18:04:19 <dminuoso_> mrqubo: The answers will differ depending on who you ask.
18:04:27 <dminuoso_> If you ask me: Ditch effect libraries, just do what GHC does internally:
18:04:30 <dminuoso_> Use IO.
18:04:38 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
18:04:48 <dminuoso_> IORef for state. IO exceptions for errors. IO for outside effects.
18:05:07 <dminuoso_> Include a Reader style function, wrap it into a fancy `Comp` newtype, done.
18:05:34 <dminuoso_> (This is in fact precisely what we do for our SDN compiler)
18:05:38 <EvanR> ReaderT stuff IO, where stuff can be a record of things you need for state, or other things
18:06:02 <EvanR> simplest effects library xD
18:06:04 <dminuoso_> newtype Comp e a = Comp { runComp :: ReaderT (CompEnv e) IO a }
18:06:20 <dminuoso_> And CompEnv is packed with IORefs
18:06:52 <dminuoso_> Errors get added to an IORef, and then I have combinators like >|> that sequence only if no errors are present
18:06:54 <dminuoso_> That sort of stuff.
18:07:14 <dminuoso_> Best effects are the ones you make yourself, tailored to your project.
18:07:18 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972) (Remote host closed the connection)
18:07:26 × xsarnik quits (xsarnik@lounge.fi.muni.cz) (Quit: Ping timeout (120 seconds))
18:07:40 xsarnik joins (xsarnik@lounge.fi.muni.cz)
18:09:13 × YuutaW quits (~YuutaW@mail.yuuta.moe) (Ping timeout: 276 seconds)
18:10:28 hgolden_ joins (~hgolden@2603-8000-9d00-3ed1-dd4f-298a-9c49-a0ed.res6.spectrum.com)
18:11:07 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:11:10 × analoq quits (~yashi@user/dies) (Ping timeout: 276 seconds)
18:11:28 YuutaW joins (~YuutaW@mail.yuuta.moe)
18:12:26 analoq joins (~yashi@user/dies)
18:13:46 × hgolden quits (~hgolden@2603-8000-9d00-3ed1-dd4f-298a-9c49-a0ed.res6.spectrum.com) (Ping timeout: 276 seconds)
18:14:59 × danse-nr3 quits (~danse@151.57.206.239) (Ping timeout: 264 seconds)
18:19:37 × gentauro quits (~gentauro@user/gentauro) (Ping timeout: 276 seconds)
18:19:49 gentauro joins (~gentauro@user/gentauro)
18:21:34 <probie> Reject monad transformers entirely and embrace `CompEnv e -> IO a` :p
18:21:55 <dminuoso_> probie: Oh sure. I just use ReaderT out of complete lazyness.
18:22:09 <dminuoso_> It means I can do generalized newtype deriving for MonadIO, MonadReader
18:22:26 <dminuoso_> transformers was already in my transitive dependency closure, so no cost paid.
18:23:48 <EvanR> Config -> IO a
18:24:02 <EvanR> I wish I could find that meme
18:27:11 <analoq> /j #leagueoflinux
18:27:30 <analoq> ups :3
18:29:59 × Fischmiep quits (~Fischmiep@user/Fischmiep) (Ping timeout: 256 seconds)
18:30:38 Fischmiep joins (~Fischmiep@user/Fischmiep)
18:30:58 × Pixi quits (~Pixi@user/pixi) (Ping timeout: 255 seconds)
18:38:28 × Simikando quits (~Simikando@bband-dyn93.95-103-156.t-com.sk) (Ping timeout: 276 seconds)
18:38:57 danza joins (~francesco@151.57.206.239)
18:43:38 simendsjo joins (~user@84.209.170.3)
18:46:46 <dminuoso_> Is that a PC game?
18:47:19 <dminuoso_> 5 admins fighting 5 admins? You get to upgrade kernels, install modules - and as an evolution path you get to switch from init to systemd?
18:47:41 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972)
18:50:19 × axeman quits (~quassel@ip5b40ac1e.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
18:51:05 × danza quits (~francesco@151.57.206.239) (Ping timeout: 256 seconds)
18:55:57 <EvanR> a smash bros-like fighting game with all the linux distro mascots
18:57:27 <dminuoso_> Do you think I can enter with just postgresql? Mammoth eat penguins!
18:57:34 Simikando joins (~Simikando@bband-dyn93.95-103-156.t-com.sk)
18:57:57 <EvanR> yes adjacent mascots are secret unlockables
18:58:49 <EvanR> throwable temporary programming language mascot helpers
18:59:20 <EvanR> gotta catch all next 700 programming languages
19:02:36 Pixi joins (~Pixi@user/pixi)
19:03:42 <probie> A new exciting FOSS game with gnumerous fighters?
19:04:19 <probie> It sounds like a real headache getting relevant licensing for all the mascots
19:04:41 × mankyKitty quits (sid31287@helmsley.irccloud.com) (Read error: Connection reset by peer)
19:04:49 mankyKitty joins (sid31287@id-31287.helmsley.irccloud.com)
19:04:56 × aspen quits (sid449115@helmsley.irccloud.com) (Ping timeout: 252 seconds)
19:05:06 aspen joins (sid449115@id-449115.helmsley.irccloud.com)
19:05:26 × hamess quits (~hamess@user/hamess) (Quit: **BRB** dyed my hair bLacK. Mom got so mad lol)
19:05:46 hamess joins (~hamess@user/hamess)
19:06:59 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972) (Remote host closed the connection)
19:07:14 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972)
19:08:33 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972) (Remote host closed the connection)
19:15:24 × Simikando quits (~Simikando@bband-dyn93.95-103-156.t-com.sk) (Remote host closed the connection)
19:15:35 × mima quits (~mmh@dhcp-138-246-3-127.dynamic.eduroam.mwn.de) (Ping timeout: 264 seconds)
19:15:43 × masterbuilder quits (~quassel@user/masterbuilder) (Ping timeout: 246 seconds)
19:16:02 adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan)
19:16:31 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 240 seconds)
19:19:15 masterbuilder joins (~quassel@user/masterbuilder)
19:20:49 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
19:21:09 mc47 joins (~mc47@xmonad/TheMC47)
19:21:51 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
19:23:06 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972)
19:23:42 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 260 seconds)
19:24:24 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972) (Remote host closed the connection)
19:24:35 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
19:34:58 erty joins (~user@user/aeroplane)
19:39:32 × billchenchina quits (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection)
19:39:47 billchenchina joins (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
19:40:17 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
19:41:42 × billchenchina quits (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Max SendQ exceeded)
19:41:51 <erty> How to handle Ctrl+C in a program, for example in this one https://paste.rs/G985m . I am following this documentation https://hackage.haskell.org/package/process-1.2.0.0/docs/System-Process.html#g:4
19:41:57 <erty> This program runs a node command that takes 2 seconds to complete, and if in that Ctrl+C is pressed, It exits with `Just ExitSuccess`. But I want it to report UserInterrupt or something. How can I do that? Please help
19:42:13 <erty> thanks
19:42:28 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
19:45:05 <erty> To run the program in shell, do chmod +x haskell.hs and then ./haskell.hs
19:48:53 <exarkun> If the program that you run exits with a success code after receiving Ctrl+C (SIGINT probably, but not necessarily) then it's a bit out of your hands.
19:49:27 <exarkun> You could intercept the Ctrl+C, make a note of it, pass it on, and then translate ExitSuccess into UserInterrupt... but I'm not sure who that's helping.
19:50:44 × Lycurgus quits (~georg@user/Lycurgus) (Quit: leaving)
19:51:43 <int-e> worksforme? http://paste.debian.net/1298990/
19:52:56 × chomwitt quits (~chomwitt@2a02:587:7a24:bc00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
19:53:17 chomwitt joins (~chomwitt@2a02:587:7a24:bc00:1ac0:4dff:fedb:a3f1)
19:53:35 × lortabac quits (~lorenzo@2a01:e0a:541:b8f0:ec7c:79cd:c63a:f4f8) (Quit: WeeChat 3.5)
19:55:48 <erty> int-e: But unfortunately, not for me :(
19:56:29 <int-e> I'm not sure whether there's a race here though, between the child terminating and you called getProcessExitCode
19:57:09 <erty> Its always success, ^Cfinally Just ExitSuccess
19:57:09 <int-e> Oh but if you're getting `Just ExitSuccess` then that isn't an issue
19:57:50 <int-e> Oh, maybe this is relevant? node is v18.13.0 here
19:58:06 <[exa]> erty: what shell and OS? propagation of the SIGINT is dark magic. I'd recommend doing at least setsid before spawning the child process
19:58:07 <int-e> or maybe try `sleep 2` instead of the node thing
19:59:04 <erty> [exa]: I am using Ubuntu and I ran the code in emacs shell
19:59:21 <erty> and Haskell-Interactive-mode as well
19:59:32 <exarkun> Heh, emacs shell.
19:59:37 <exarkun> At least try in a real shell to compare.
19:59:56 <erty> exarkun: I did in xterm but no help
20:00:12 <exarkun> Can you reproduce int-e's behavior wiith node 18.13.0?
20:00:21 <erty> lemme try
20:00:41 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
20:00:45 <int-e> what else *could* be relevant... ghc is 9.2.7, process is 1.6.16.0.
20:00:58 <exarkun> Or, relatedly, if you just run node yourself and ctrl+c it, does it exit with 0 or something else?
20:01:16 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2831:95f0:1fbb:6972)
20:01:19 × phma quits (phma@2001:5b0:210b:89e8:2742:c8bf:8662:607d) (Read error: Connection reset by peer)
20:01:43 phma joins (~phma@host-67-44-208-228.hnremote.net)
20:01:57 <sm[i]> @where stack-script
20:01:57 <lambdabot> https://docs.haskellstack.org/en/stable/script_command single-file Haskell scripts with stack
20:02:00 <erty> exarkun: the problem persisted with `sleep 2` command as well
20:02:21 <sm[i]> @where+ stack-script https://docs.haskellstack.org/en/stable/scripts single-file Haskell shebang scripts with stack
20:02:21 <lambdabot> It is stored.
20:03:02 <exarkun> erty: still worth checking directlly, but I guess it's not /very/ likely you have such a broken version of sleep...
20:03:06 Pickchea joins (~private@user/pickchea)
20:04:07 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds)
20:04:23 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
20:05:09 <erty> changing node to 18.13 didn't help
20:05:45 × mrvdb quits (~mrvdb@185.92.221.186) (Ping timeout: 245 seconds)
20:06:45 mrvdb joins (~mrvdb@2001:19f0:5000:8582:5400:ff:fe07:3df5)
20:06:52 <erty> ghc is 9.2.4
20:07:55 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
20:08:05 jmdaemon joins (~jmdaemon@user/jmdaemon)
20:08:48 <[exa]> erty: btw also try a different terminal
20:08:49 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 276 seconds)
20:09:15 <[exa]> I'm not sure which component there actually converts the ^c to SIGINT but it might very well be the terminal
20:09:23 <erty> [exa]: I did, with xterm, but it didn't helped
20:09:53 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
20:09:54 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
20:10:27 <erty> Is it working for all of you?
20:10:34 <geekosaur> it's the terminal driver
20:10:39 <geekosaur> stty -a
20:11:09 thegman joins (~thegman@184-089-015-126.res.spectrum.com)
20:11:15 <geekosaur> look at intr and isig
20:11:21 <geekosaur> and icanon
20:13:08 <erty> geekosaur: intr has `intr = ^C;` but the last don't have `=`
20:13:22 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 276 seconds)
20:13:37 <geekosaur> no, they're simple flags and would show with a minus in front if they were off
20:14:01 <geekosaur> `-isig` means no processing of the intr, quit, or stop characters
20:14:14 <geekosaur> (ctrl-c, ctrl-\, ctrl-z)
20:14:30 <erty> they don't have minus
20:14:31 <geekosaur> (by default)
20:14:38 <geekosaur> interesting
20:14:55 <erty> geekosaur: Is the program working for you
20:15:47 × thegman quits (~thegman@184-089-015-126.res.spectrum.com) (Client Quit)
20:15:47 harveypwca joins (~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b)
20:15:54 <int-e> Funny, stty -a doesn't work for me in emacs' shell mode (Inappropriate ioctl for device; `bash` complained about this earlier too), but interrupting processes with C-c C-c still results in ExitFailure.
20:16:16 <mauke> time to strace?
20:16:17 <geekosaur> right, emacs shell mode is Special
20:16:41 <geekosaur> erty, I don't have node installed so I can't readily test it
20:17:03 <erty> geekosaur: you can use `sleep 2` command instead
20:17:15 <erty> replace 11th line with (shell "sleep 2")
20:17:57 <erty> I was just following the aforementioned documentation for handling Ctrl-C, and according to that, code error should be UserInterrupt
20:18:07 Square2 joins (~Square4@user/square)
20:18:15 <erty> If I am not doing something wrong
20:18:20 potato44 joins (uid421314@id-421314.lymington.irccloud.com)
20:18:34 <mauke> oh, something about process groups maybe?
20:18:50 <geekosaur> https://paste.tomsmeding.com/vne66PAz
20:19:49 <mauke> ExitFailure (-2)? that doesn't sound legal
20:20:02 × shapr quits (~user@2600:1700:c640:3100:b285:ab20:7123:ee63) (Remote host closed the connection)
20:20:15 shapr joins (~user@2600:1700:c640:3100:58c6:dc14:3874:202f)
20:20:20 <erty> mauke: i have create_group = False in the record
20:20:26 <mauke> is someone mapping signals to negative exit statuses?
20:20:34 <geekosaur> the shell, usually
20:20:47 <geekosaur> tery using proc instead of shell
20:21:06 <mauke> the shell adds 128 when setting $?
20:21:10 × Square quits (~Square@user/square) (Ping timeout: 276 seconds)
20:21:32 <geekosaur> actually I think it's platform dependent whether it's a signed or unsigned byte
20:22:19 <erty> geekosaur: unfortunately, proc doesn't helps
20:23:36 <mauke> I don't think that's how WEXITSTATUS() works
20:23:46 × simendsjo quits (~user@84.209.170.3) (Ping timeout: 276 seconds)
20:25:59 × mrqubo quits (~arch@91.207.184.206) (Quit: Konversation terminated!)
20:34:09 sh1n joins (~sh1n@2800:2131:8e40:c3d:a382:6ff7:1760:32a9)
20:36:48 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Remote host closed the connection)
20:37:12 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
20:40:23 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
20:45:28 DemonDerg is now known as FestiveDemonDerg
20:45:42 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
20:46:17 maaz joins (~maaz@bras-base-hspron0502w-grc-02-184-147-203-180.dsl.bell.ca)
20:46:35 maaz is now known as m257
20:47:28 FestiveDemonDerg is now known as FestiveDragon
20:49:20 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
20:51:46 thegeekinside joins (~thegeekin@189.217.90.224)
20:51:47 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
20:54:18 thegeekinside joins (~thegeekin@189.217.90.224)
20:54:41 jmdaemon joins (~jmdaemon@user/jmdaemon)
20:55:37 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
20:58:33 × trev quits (~trev@user/trev) (Quit: trev)
20:59:43 × sh1n quits (~sh1n@2800:2131:8e40:c3d:a382:6ff7:1760:32a9) (Ping timeout: 256 seconds)
21:00:35 <johnw> mauke: or rather, it's a negative value that gets reported as unsigned
21:02:57 thegeekinside joins (~thegeekin@189.217.90.224)
21:02:58 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
21:04:42 thegeekinside joins (~thegeekin@189.217.90.224)
21:04:43 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
21:07:07 thegeekinside joins (~thegeekin@189.217.90.224)
21:07:38 × thegeekinside quits (~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
21:09:04 mima joins (~mmh@aftr-62-216-211-67.dynamic.mnet-online.de)
21:10:21 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 256 seconds)
21:10:29 thegeekinside joins (~thegeekin@189.217.90.224)
21:10:56 × hgolden_ quits (~hgolden@2603-8000-9d00-3ed1-dd4f-298a-9c49-a0ed.res6.spectrum.com) (Remote host closed the connection)
21:12:44 hgolden joins (~hgolden@2603-8000-9d00-3ed1-dd4f-298a-9c49-a0ed.res6.spectrum.com)
21:13:42 × tomboy64 quits (~tomboy64@user/tomboy64) (Read error: Connection reset by peer)
21:13:48 tomboy65 joins (~tomboy64@user/tomboy64)
21:16:03 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 260 seconds)
21:17:33 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
21:21:39 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
21:23:24 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
21:24:51 kuruczgy joins (55b66dd3ae@2604:bf00:561:2000::127f)
21:27:50 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Client Quit)
21:28:06 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
21:28:32 × mmhat quits (~mmh@p200300f1c70fae30ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
21:28:54 mmhat joins (~mmh@p200300f1c70fae24ee086bfffe095315.dip0.t-ipconnect.de)
21:32:40 newsham joins (~newsham@2603-800c-2c01-6825-0120-b505-2ba2-3688.res6.spectrum.com)
21:32:58 <newsham> What's the tick mark in 'S here?
21:32:59 <newsham> data Fin (n :: Nat) where
21:32:59 <newsham>     FZ :: Fin ('S n)
21:33:00 <newsham>     FS :: Fin n -> Fin ('S n)
21:33:00 <newsham>   deriving (Typeable)
21:33:10 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
21:33:20 <johnw> it refers to a type-level data constructor
21:33:24 <johnw> see DataKinds
21:33:25 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
21:33:37 × dhil quits (~dhil@2001:8e0:2014:3100:e64:a377:2b5c:81b6) (Ping timeout: 246 seconds)
21:33:48 <johnw> in this case, Nat is a data type that was lifted to the kind level
21:33:59 <johnw> so its value-level constructor is S, and it's type-level constructor is 'S
21:35:11 <johnw> note that in dependently-typed languages, a distinction like this is unnecessary
21:35:17 <newsham> *nod*
21:35:21 <newsham> thank you.
21:36:59 jmdaemon joins (~jmdaemon@user/jmdaemon)
21:38:30 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
21:38:45 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
21:39:04 × elkcl quits (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Ping timeout: 255 seconds)
21:42:01 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
21:42:01 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
21:42:01 finn_elija is now known as FinnElija
21:44:57 elkcl joins (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru)
21:48:22 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
21:53:23 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
21:58:38 × harveypwca quits (~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b) (Quit: Leaving)
21:58:50 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
21:59:04 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
22:07:05 × CodeGerrard quits (~Gerr@197.221.253.209) (Ping timeout: 260 seconds)
22:07:43 × ubert quits (~Thunderbi@178.115.68.48.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
22:09:06 × newsham quits (~newsham@2603-800c-2c01-6825-0120-b505-2ba2-3688.res6.spectrum.com) (Quit: Client closed)
22:10:34 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 255 seconds)
22:17:30 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
22:23:37 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 255 seconds)
22:27:35 × fendor quits (~fendor@2a02:8388:1640:be00:8705:c56:c793:802b) (Remote host closed the connection)
22:29:29 emmanuelux joins (~emmanuelu@user/emmanuelux)
22:33:42 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
22:34:47 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 256 seconds)
22:36:19 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:38:24 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:38:48 coot_ joins (~coot@89-69-206-216.dynamic.chello.pl)
22:40:47 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Ping timeout: 264 seconds)
22:40:47 coot_ is now known as coot
22:42:35 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 264 seconds)
22:47:23 × ystael quits (~ystael@user/ystael) (Ping timeout: 256 seconds)
22:51:13 × Jackneill quits (~Jackneill@20014C4E1E120500F60962E32F241FFF.dsl.pool.telekom.hu) (Ping timeout: 256 seconds)
23:09:55 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
23:11:57 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
23:16:35 × acidjnk quits (~acidjnk@p200300d6e72b933550e7445b70f008d5.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
23:20:14 axeman joins (~quassel@ip5b40ac1e.dynamic.kabel-deutschland.de)
23:32:07 × mima quits (~mmh@aftr-62-216-211-67.dynamic.mnet-online.de) (Ping timeout: 255 seconds)
23:35:40 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in)
23:36:13 jmdaemon joins (~jmdaemon@user/jmdaemon)
23:41:34 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds)
23:51:13 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
23:54:34 leungbk joins (~user@2603-8000-1201-2dd2-ea27-bf48-2f1b-70de.res6.spectrum.com)
23:56:58 × axeman quits (~quassel@ip5b40ac1e.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)

All times are in UTC on 2023-11-22.