2024/01/23

2024-01-23 00:00:12 +0100 <geekosaur> that answer pretty much works, with fdToHandle to create a Haskell Handle from an fd number
2024-01-23 00:01:00 +0100 <geekosaur> if you want to write directly to the console, you can open /dev/tty on a unixlike or CON on windoes
2024-01-23 00:01:04 +0100 <geekosaur> *windows
2024-01-23 00:02:21 +0100 <geekosaur> (also, you seem to be using "pipe" oddly. a pipe is an inter-process communication mechanism, it writes to a process)
2024-01-23 00:02:25 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-23 00:03:01 +0100igemnace(~ian@user/igemnace)
2024-01-23 00:04:44 +0100 <ph88> geekosaur, you got it
2024-01-23 00:04:49 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 246 seconds)
2024-01-23 00:05:18 +0100Guest15(~Guest29@86-82-248-239.fixed.kpn.net) (Quit: Client closed)
2024-01-23 00:05:23 +0100 <ph88> how do i acquire the next free file descriptor ?
2024-01-23 00:06:35 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2024-01-23 00:07:03 +0100 <ph88> hhmm seems i have to tell the shell to give the haskell program a file descriptor https://stackoverflow.com/a/32697347/1833322 if i understand correctly
2024-01-23 00:08:02 +0100 <cheater> geekosaur: that's a bad idea, instead you should open the current pid's fd's and write to those
2024-01-23 00:08:17 +0100 <mauke> ph88: what exactly are you trying to do?
2024-01-23 00:08:20 +0100 <cheater> like /proc/123423/fd/1 or whatever
2024-01-23 00:08:35 +0100 <ph88> mauke, write to terminal using another handle than stdout and stderr
2024-01-23 00:09:18 +0100 <mauke> ph88: isn't that just openFile "/dev/tty"?
2024-01-23 00:09:46 +0100 <geekosaur> that's what I said earlier
2024-01-23 00:10:14 +0100 <ph88> let me try
2024-01-23 00:10:27 +0100d34df00d(~d34df00d@2600:1702:4f1b:7c10::43)
2024-01-23 00:10:48 +0100 <d34df00d> Hi!
2024-01-23 00:11:06 +0100 <d34df00d> Is there anything like Eq1.liftEq ( https://hackage.haskell.org/package/base-4.19.0.0/docs/Data-Functor-Classes.html#v:liftEq ), but for monadic equality tests?
2024-01-23 00:12:13 +0100 <d34df00d> Ideally, with a TH thingie like https://hackage.haskell.org/package/deriving-compat-0.6.5/docs/Data-Eq-Deriving.html#v:makeLiftEq
2024-01-23 00:12:53 +0100acidjnk(~acidjnk@p200300d6e737e732388182bf15709a86.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2024-01-23 00:21:57 +0100 <ph88> geekosaur, mauke i tried your suggestion https://bpa.st/275A have a bit of a problem with capturing the output to a file
2024-01-23 00:22:11 +0100 <ph88> output is not redirected to file
2024-01-23 00:22:26 +0100 <geekosaur> no, using that evades all redirections
2024-01-23 00:22:34 +0100 <geekosaur> what exactly are you trying to do?
2024-01-23 00:23:15 +0100 <ph88> have the ability to capture program output to a file with 3> (or another number) i don't want to use stdout or stderr
2024-01-23 00:23:36 +0100 <mauke> what
2024-01-23 00:23:45 +0100 <mauke> I asked what you wanted to do, and you said "write to terminal"
2024-01-23 00:24:10 +0100 <ph88> i also said in the same sentence "using another handle than stdout and stderr"
2024-01-23 00:24:15 +0100 <geekosaur> also, that's confused. if the program writes to stdout, it writes to stdout
2024-01-23 00:24:16 +0100 <mauke> yes
2024-01-23 00:24:17 +0100athan(~athan@173-042-095-241.biz.spectrum.com)
2024-01-23 00:24:25 +0100 <mauke> 'handle' in your code is not stdout or stderr
2024-01-23 00:24:39 +0100 <ph88> i don't want to write to stdout or stderr, but to a new FD
2024-01-23 00:24:57 +0100 <mauke> yes, that is what's happening
2024-01-23 00:25:18 +0100 <tri> quick questions, when uses functions from bytestring and vector package, the compiler says these packages are hidden. I could easily fix it by explicitly add them to cabal project config. But should i use these packages at all? Why is there the thing called hidden package?
2024-01-23 00:25:38 +0100 <ph88> mauke, how to capture it to a file on the terminal ?
2024-01-23 00:25:56 +0100 <mauke> ph88: that doesn't make sense
2024-01-23 00:25:58 +0100 <sclv> they are hidden because the cabal file does not specify them
2024-01-23 00:25:58 +0100iakov(~iakov@2a02:8106:244:b000:bb8c:d849:459b:3c4) (Quit: Client closed)
2024-01-23 00:26:10 +0100 <mauke> ph88: files are not "on the terminal". they're files.
2024-01-23 00:26:29 +0100 <sclv> using them is good. hidden just means any package installed but not specified to be used
2024-01-23 00:26:42 +0100 <ph88> mauke, haskell program write to 3> output goes to file
2024-01-23 00:26:51 +0100 <tri> sclv: ah ok. Im just afraid it's deprecated or something. Thank you
2024-01-23 00:27:11 +0100 <mauke> ph88: why 3?
2024-01-23 00:27:23 +0100 <ph88> any number other than 1 for stdout or 2 for stderr
2024-01-23 00:27:36 +0100 <mauke> that seems like a terrible interface
2024-01-23 00:27:51 +0100 <mauke> this still feels like an XY problem
2024-01-23 00:30:58 +0100 <mauke> the main thing that bothers me is that I see file descriptor numbers as hidden internals of a program (except for the standard 0/1/2), but you seem to want to expose them as part of the public interface
2024-01-23 00:31:35 +0100 <ph88> https://unix.stackexchange.com/questions/385569/is-it-possible-to-write-to-other-file-descriptors-…
2024-01-23 00:31:49 +0100 <mauke> why not provide a command line option such as '-o somefile'?
2024-01-23 00:32:07 +0100 <ph88> file descriptors and tied to the OS, it's not hidden internal or a program
2024-01-23 00:32:15 +0100 <ph88> of a program *
2024-01-23 00:32:34 +0100 <dmj`> Does anybody know what instances of typeclasses GHC *cannot* monomorphize (dictionary passing translation + specialization)? Oleg K says GHC can't monomorphize all cases, but doesn't give specifics.
2024-01-23 00:32:36 +0100 <geekosaur> but it is terrible UX
2024-01-23 00:32:54 +0100 <mauke> what I talk about with my OS is none of your business
2024-01-23 00:33:00 +0100 <geekosaur> dmj`, any use that involves polymorphic recursion
2024-01-23 00:34:13 +0100 <geekosaur> for an example, most Show instances invoke the Show instances of other types under control of the passed-in Show dictionary, so neither of those can be monomorphized
2024-01-23 00:35:08 +0100 <mauke> that doesn't follow directly. you still need polymorphic recursion
2024-01-23 00:35:13 +0100 <dmj`> geekosaur: yea so he mentions that too (that existential types and arbitrary rank polymorphism are incompatbile w/ monomorph), but vanilla haskell98 doesn't have that stuff (and that's what I think he's referring to in his paper -- to Haskell98, not GHC per se)
2024-01-23 00:35:49 +0100 <mauke> polymorphic recursion doesn't involve existentials or higher ranks
2024-01-23 00:37:00 +0100 <mauke> > let foo :: (Show a) => Int -> a -> String; foo 0 x = show x; foo n x = foo (n - 1) ((), x) in foo 5 'x'
2024-01-23 00:37:02 +0100 <lambdabot> "((),((),((),((),((),'x')))))"
2024-01-23 00:37:25 +0100 <mauke> > let foo :: (Show a) => Int -> a -> String; foo 0 x = show x; foo n x = foo (n - 1) ((), x) in foo 10 'x'
2024-01-23 00:37:27 +0100 <lambdabot> "((),((),((),((),((),((),((),((),((),((),'x'))))))))))"
2024-01-23 00:38:09 +0100 <dmj`> mauke: he mentions both "Furthermore, monomorphization cannot be done for polymorphically recursive or higher-rank (first-class polymorphic) functions."
2024-01-23 00:38:31 +0100 <mauke> my example is H98
2024-01-23 00:39:18 +0100Sgeo(~Sgeo@user/sgeo)
2024-01-23 00:40:29 +0100Lycurgus(~georg@li1192-118.members.linode.com)
2024-01-23 00:40:29 +0100Lycurgus(~georg@li1192-118.members.linode.com) (Changing host)
2024-01-23 00:40:29 +0100Lycurgus(~georg@user/Lycurgus)
2024-01-23 00:41:10 +0100 <mauke> foo 5 'x' recursively invokes foo at the types Char, ((), Char), ((), ((), Char)), ((), ((), ((), Char))), ...
2024-01-23 00:41:29 +0100 <mauke> these are all distinct types and they're generated at runtime
2024-01-23 00:42:02 +0100 <mauke> > let foo :: (Show a) => Int -> a -> String; foo 0 x = show x; foo n x = foo (n - 1) [x] in foo 5 'x'
2024-01-23 00:42:04 +0100 <lambdabot> "[[[[\"x\"]]]]"
2024-01-23 00:42:36 +0100 <mauke> this one is Char, [Char], [[Char]], [[[Char]]], [[[Char]]], [[[[Char]]]]
2024-01-23 00:44:23 +0100 <mauke> this is something you can't do with C++ templates because the body of foo<T> would contain a call to foo<list<T>>
2024-01-23 00:45:04 +0100 <mauke> the call is conditional (at runtime), but at compile time you'd have to pre-generate an infinite number of functions, "just in case"
2024-01-23 00:45:57 +0100 <mauke> the dictionary passing implementation works just fine because the [a] instance for Show is basically just a function that transforms the 'a' dictionary to a '[a]' dictionary
2024-01-23 00:46:13 +0100Guest73(~Guest73@94.139.221.210)
2024-01-23 00:46:24 +0100 <mauke> so we can easily generate dictionaries at runtime, at whatever depth is needed
2024-01-23 00:46:50 +0100 <Guest73> Hi
2024-01-23 00:46:51 +0100 <mauke> (similarly, for the first example, the Show (a, b) instance is built from Show dictionaries for a and b)
2024-01-23 00:48:46 +0100mmhat(~mmh@p200300f1c724f91bee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.1.3)
2024-01-23 00:48:47 +0100 <geekosaur> Guest73, hi
2024-01-23 00:48:55 +0100 <dmj`> mauke: that is a really good example, thank you
2024-01-23 00:50:31 +0100Guest73(~Guest73@94.139.221.210) (Client Quit)
2024-01-23 00:51:23 +0100 <dmj`> mauke: too bad, was hoping to be able to do away with runtime dictionaries
2024-01-23 00:51:32 +0100xff0x(~xff0x@ai085147.d.east.v6connect.net) (Ping timeout: 252 seconds)
2024-01-23 00:51:51 +0100iakov(~iakov@2a02:8106:244:b000:57f6:37d4:b4f4:dc14)
2024-01-23 00:53:10 +0100 <dmj`> mauke: Lennart says Mu does complete monomorphization, wonder if they disallowed polymorphic recursion
2024-01-23 00:53:38 +0100 <c_wraith> Yeah, you'd have to disable polymorphic recursion over class-constrained types
2024-01-23 00:53:39 +0100xff0x(~xff0x@178.255.149.135)
2024-01-23 00:54:10 +0100 <c_wraith> That's the feature that results in building arbitrary dictionaries at runtime
2024-01-23 00:54:32 +0100iakov(~iakov@2a02:8106:244:b000:57f6:37d4:b4f4:dc14) (Client Quit)
2024-01-23 00:54:36 +0100 <c_wraith> Well, ok. You'd also need to make sure existentials were off...
2024-01-23 00:54:50 +0100 <c_wraith> (or at least disable existentials + classes)
2024-01-23 00:55:36 +0100 <mauke> are existentials even useful without classes?
2024-01-23 00:57:00 +0100 <c_wraith> yes.
2024-01-23 00:57:11 +0100 <c_wraith> CoYoneda is great
2024-01-23 00:58:03 +0100 <EvanR> the dependent map container thing uses existentials and cheats to get the value back but no classes
2024-01-23 00:58:04 +0100 <c_wraith> I guess it's capitalized as Coyoneda, but eh. otherwise great
2024-01-23 00:58:50 +0100 <c_wraith> that shuttle thing I never finished used an existential to bundle refs with generators
2024-01-23 01:01:40 +0100 <ph88> is there a way to search for functions which calls another function ?
2024-01-23 01:01:40 +0100 <jackdk> EvanR: DSum certainly, but DMap's going to need its flavour of Ord (GCompare) to put things into the map
2024-01-23 01:02:17 +0100 <jackdk> I'm not aware of any call-graph tools, but grep is a crude hammer
2024-01-23 01:02:27 +0100 <EvanR> er,
2024-01-23 01:02:30 +0100 <d34df00d> ph88: haskell-language-server has support for finding references, so if your editor has LSP support, you're golden.
2024-01-23 01:02:45 +0100 <d34df00d> (works great in my (neo)vim)
2024-01-23 01:03:10 +0100 <EvanR> Ord for the keys makes sense
2024-01-23 01:03:18 +0100 <EvanR> I don't see why GCompare is involved
2024-01-23 01:03:23 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-23 01:04:24 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-01-23 01:05:34 +0100_________(~nobody@user/noodly) (Ping timeout: 268 seconds)
2024-01-23 01:05:37 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-23 01:07:10 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
2024-01-23 01:07:14 +0100_________(~nobody@user/noodly)
2024-01-23 01:10:47 +0100oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 264 seconds)
2024-01-23 01:10:58 +0100xff0x(~xff0x@178.255.149.135) (Ping timeout: 276 seconds)
2024-01-23 01:12:09 +0100xff0x(~xff0x@ai085147.d.east.v6connect.net)
2024-01-23 01:18:55 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2024-01-23 01:30:07 +0100johnw(~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
2024-01-23 01:30:22 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-01-23 01:30:30 +0100 <dmj`> mauke: is there any way partial evaluation could be used to bound the number of specialized functions created during monomorphization. For example, error if the max tuple size is reached
2024-01-23 01:30:33 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2024-01-23 01:33:23 +0100 <dmj`> mauke: to allow polymorphic recursion to be monomorphized, for a subset of polymorphic recursive functions
2024-01-23 01:35:28 +0100rvalue(~rvalue@user/rvalue) (Quit: ZNC - https://znc.in)
2024-01-23 01:35:44 +0100rvalue(~rvalue@user/rvalue)
2024-01-23 01:37:49 +0100turlando(~turlando@user/turlando) (Ping timeout: 255 seconds)
2024-01-23 01:50:35 +0100turlando(~turlando@user/turlando)
2024-01-23 01:51:22 +0100 <ph88> how can i step into functions defined in other modules ?
2024-01-23 01:51:30 +0100 <ph88> with a debugger
2024-01-23 01:51:33 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds)
2024-01-23 01:52:15 +0100Tuplanolla(~Tuplanoll@91-159-68-95.elisa-laajakaista.fi) (Quit: Leaving.)
2024-01-23 01:56:28 +0100 <geekosaur> you have to load them as source, which will be difficult if they're in other libraries/packages
2024-01-23 01:57:54 +0100 <geekosaur> in general you can :add a module prefixed with a * to load it as source
2024-01-23 02:04:43 +0100bdg(~bdg@2001:8a0:f533:f100:975:c789:646b:a0ee)
2024-01-23 02:10:13 +0100 <dmj`> mauke: "test.rs:27:0: 34:1 error: overly deep expansion of inlined function" what rust does
2024-01-23 02:12:06 +0100bdg(~bdg@2001:8a0:f533:f100:975:c789:646b:a0ee) (Quit: WeeChat 4.2.0)
2024-01-23 02:14:18 +0100son0p(~ff@181.32.158.171)
2024-01-23 02:16:28 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-01-23 02:17:10 +0100euleritian(~euleritia@dynamic-176-006-188-169.176.6.pool.telefonica.de)
2024-01-23 02:18:58 +0100_xor(~xor@ip-208-102-243-175.dynamic.fuse.net)
2024-01-23 02:19:27 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-23 02:24:25 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 276 seconds)
2024-01-23 02:27:33 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2024-01-23 02:27:53 +0100turlando(~turlando@user/turlando) (Ping timeout: 256 seconds)
2024-01-23 02:28:00 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-01-23 02:29:27 +0100johnw(~johnw@69.62.242.138)
2024-01-23 02:30:46 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2024-01-23 02:31:13 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2024-01-23 02:32:35 +0100turlando(~turlando@user/turlando)
2024-01-23 02:33:21 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2024-01-23 02:33:45 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
2024-01-23 02:34:44 +0100Lord_of_Life_Lord_of_Life
2024-01-23 02:36:52 +0100igemnace(~ian@user/igemnace) (Quit: WeeChat 4.1.3)
2024-01-23 02:41:21 +0100ystael(~ystael@user/ystael) (Ping timeout: 256 seconds)
2024-01-23 02:46:46 +0100EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2024-01-23 02:47:05 +0100EvanR(~EvanR@user/evanr)
2024-01-23 02:51:42 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2024-01-23 02:54:21 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-23 02:58:22 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2024-01-23 02:58:57 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2024-01-23 03:13:26 +0100xff0x(~xff0x@ai085147.d.east.v6connect.net) (Ping timeout: 252 seconds)
2024-01-23 03:30:47 +0100ph88(~ph88@ip5b403f30.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-01-23 03:30:58 +0100mima(~mmh@aftr-62-216-211-136.dynamic.mnet-online.de) (Ping timeout: 246 seconds)
2024-01-23 03:50:41 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Read error: Connection reset by peer)
2024-01-23 03:51:00 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2024-01-23 04:01:19 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-01-23 04:03:02 +0100califax(~califax@user/califx) (Remote host closed the connection)
2024-01-23 04:03:02 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-01-23 04:03:08 +0100motherfsck(~motherfsc@user/motherfsck)
2024-01-23 04:03:32 +0100califax(~califax@user/califx)
2024-01-23 04:03:40 +0100califax(~califax@user/califx) (Remote host closed the connection)
2024-01-23 04:03:45 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-01-23 04:03:52 +0100Typedfern(~Typedfern@220.red-83-37-25.dynamicip.rima-tde.net) (Ping timeout: 246 seconds)
2024-01-23 04:04:00 +0100califax(~califax@user/califx)
2024-01-23 04:04:45 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2024-01-23 04:05:19 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-23 04:10:06 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds)
2024-01-23 04:14:47 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-23 04:16:12 +0100myxos(~myxos@065-028-251-121.inf.spectrum.com) (Quit: myxos)
2024-01-23 04:16:30 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-01-23 04:17:08 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-23 04:22:04 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 276 seconds)
2024-01-23 04:22:10 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2024-01-23 04:27:31 +0100 <dmj`> c_wraith: no existentials is fine with me :)
2024-01-23 04:27:49 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-23 04:29:44 +0100 <dmj`> c_wraith: wouldn't that also mean disabling recursive calls within typeclass instances though
2024-01-23 04:30:02 +0100 <c_wraith> No
2024-01-23 04:30:34 +0100 <c_wraith> polymorphic recursion is something else.
2024-01-23 04:31:16 +0100 <c_wraith> polymorphic recursion is when the thing you're writing *isn't* part of the class
2024-01-23 04:31:32 +0100 <c_wraith> So it's the same value even after the renaming pass
2024-01-23 04:32:38 +0100Typedfern(~Typedfern@82.red-83-37-31.dynamicip.rima-tde.net)
2024-01-23 04:33:52 +0100 <c_wraith> err. the renamer doesn't rename class values. Eh. Whatever. It's when it's the same value, not a different one that happens to share the same name.
2024-01-23 04:34:02 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-23 04:43:45 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) (Remote host closed the connection)
2024-01-23 04:44:00 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c)
2024-01-23 04:46:43 +0100jargon(~jargon@211.sub-174-205-225.myvzw.com) (Remote host closed the connection)
2024-01-23 04:48:04 +0100thegeekinside(~thegeekin@189.180.85.240) (Ping timeout: 276 seconds)
2024-01-23 04:49:19 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds)
2024-01-23 04:49:22 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
2024-01-23 04:51:41 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-01-23 04:54:40 +0100td_(~td@i53870929.versanet.de) (Ping timeout: 268 seconds)
2024-01-23 04:55:58 +0100td_(~td@i53870938.versanet.de)
2024-01-23 04:56:41 +0100euleritian(~euleritia@dynamic-176-006-188-169.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-23 04:56:58 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-23 04:58:22 +0100 <c_wraith> dmj`: relevantly, polymorphic recursion is the main way (in Haskell) to get types that depend on runtime values. And that means if that type has a class constraint, the exact code to run simply isn't known at compile time. There's no way to monomorphize it
2024-01-23 05:00:04 +0100 <c_wraith> > let f :: Show a => a -> Int -> String ; f x 0 = show x ; f x n = f (x, x) (n - 1) in f "hi" 3
2024-01-23 05:00:06 +0100 <lambdabot> "(((\"hi\",\"hi\"),(\"hi\",\"hi\")),((\"hi\",\"hi\"),(\"hi\",\"hi\")))"
2024-01-23 05:00:26 +0100 <c_wraith> you don't know at compile time what specific instance of Show `f` will be using there.
2024-01-23 05:00:37 +0100 <c_wraith> And while that's a very contrived example, it's enough to show the problem
2024-01-23 05:10:29 +0100pavonia(~user@user/siracusa)
2024-01-23 05:11:07 +0100Axman6(~Axman6@user/axman6) (Ping timeout: 258 seconds)
2024-01-23 05:18:09 +0100aforemny_(~aforemny@i59F516CD.versanet.de)
2024-01-23 05:18:40 +0100 <dmj`> c_wraith: okay great, yea the goal would be to remove all dynamic determination of what code should get executed. If that means no existential, higher rank types or polymorphic recursion, that’s okay. It does exclude things like ST and requires different way to handle exceptions (Haskell 98), way.
2024-01-23 05:18:58 +0100 <c_wraith> ST isn't excluded
2024-01-23 05:19:17 +0100 <c_wraith> It only excludes those things when they quantify over a constrained type variable
2024-01-23 05:19:55 +0100aforemny(~aforemny@i59F516D1.versanet.de) (Ping timeout: 276 seconds)
2024-01-23 05:20:05 +0100 <c_wraith> the universally quantified type variable in runST is even phantom
2024-01-23 05:21:31 +0100 <dmj`> c_wraith: for polymorphic recursion yes, but monomorphization is also prohibited by higher rank types according to Oleg K
2024-01-23 05:24:01 +0100 <c_wraith> in a technical sense, yes. But if you keep types lifted, you'll never see the difference.
2024-01-23 05:24:17 +0100 <dmj`> c_wraith: you’re saying full monomorphization can be had with rank n types ?
2024-01-23 05:24:31 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds)
2024-01-23 05:24:45 +0100 <c_wraith> No, but I'm saying you can generate the same code in some cases if you aren't also eliminating laziness.
2024-01-23 05:27:01 +0100 <c_wraith> like, my example from earlier... I have a data type like this in it: data Pack m = forall a. Pack (m a) (TMVar (Either SomeException a))
2024-01-23 05:27:33 +0100 <c_wraith> Ok, the SomeException part would break without classes. But if you ignore the error reporting, and focus on the other part
2024-01-23 05:27:43 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-01-23 05:28:12 +0100 <dmj`> c_wraith: if ST can be implemented without rank n types safely I’m all for it. Doing mutability in IO might be good enough. ST is just a self imposed restriction over IO anyway. The types will stay lifted, and lazy by default. The optimizer would try to lower the types therefore removing unnecessary laziness by inlining / simplifying / unpacking. But monomorphization should open the door to SIMD easily.
2024-01-23 05:28:16 +0100 <c_wraith> The code that uses that doesn't need to monomorphize to generate optimal code. It just copies a pointer from one spot to another
2024-01-23 05:28:51 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2024-01-23 05:30:00 +0100 <c_wraith> You only run into problems with that when you remove the uniform lifted representation of data types
2024-01-23 05:30:13 +0100 <c_wraith> which is usually what people *actually* want when they say they want to monomorphize
2024-01-23 05:35:19 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-01-23 05:36:02 +0100 <dmj`> c_wraith: regarding the existential types, keeping type inference decidable would be nice. Existentials and rank n types can lead to some tough type errors for beginners.
2024-01-23 05:37:10 +0100euleritian(~euleritia@77.22.252.56)
2024-01-23 05:37:21 +0100 <c_wraith> beginners get near those topics?
2024-01-23 05:38:27 +0100 <dmj`> c_wraith: via libraries, yea I think so
2024-01-23 05:39:40 +0100 <dmj`> c_wraith: the uniform representation should still be there. I’d like to lambda lift, closure convert and defunctionalize into a first order language where closures turn into data constructors, then optimizations can try to lower everything
2024-01-23 05:40:18 +0100 <c_wraith> I'm very wary of doing anything "for beginners". My experience is that beginners stop being beginners and start asking how to do things, and it's much better to say "oh, learn this new thing" than "we removed it because beginners were sad"
2024-01-23 05:40:52 +0100Axman6(~Axman6@user/axman6)
2024-01-23 05:43:39 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2024-01-23 05:44:39 +0100 <dmj`> c_wraith: type checking / inference should be a lot faster too with a simplified system, not just for beginners. It could be cool to experiment with a staging or macro system to produce types / constructors as an alternative to GADTs, type families, TH and generics
2024-01-23 05:46:07 +0100 <dmj`> c_wraith: my experience with beginners is they want to try everything (which is normal for learning) and experienced people already have tried everything and know when *not* to use something… beginners don’t necessarily ime
2024-01-23 05:49:27 +0100 <dmj`> c_wraith: both ST and exceptions will expose people to the existentials and rank n . Maybe rank 2 could be used if things stay decidable
2024-01-23 05:49:47 +0100 <c_wraith> only SomeException exposes people to existentials
2024-01-23 05:50:18 +0100 <c_wraith> (though without it, exceptions really have to have a fixed set of constructors in a Haskell-like language)
2024-01-23 05:50:34 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Leaving...)
2024-01-23 05:51:02 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-23 05:54:22 +0100 <tri> hi, im having trouble understanding this piece of code that reads line from CSV.and prints them out
2024-01-23 05:54:28 +0100 <tri> https://paste.tomsmeding.com/P2kywWyv
2024-01-23 05:55:12 +0100 <tri> so the code is in the do notation, and i know the last expression of the IO () do notation has to be an IO ()
2024-01-23 05:55:43 +0100 <tri> in the case of Left, i understand because putStrLn is an IO ()
2024-01-23 05:55:56 +0100 <c_wraith> The outermost function in the Right case is V.forM_
2024-01-23 05:56:09 +0100 <tri> yea so here's what im stuck at
2024-01-23 05:56:38 +0100 <tri> forM_ is running the lambda against all the item in the vector
2024-01-23 05:56:52 +0100 <tri> so coming from C#, it's like a ForEach on a List
2024-01-23 05:57:04 +0100 <tri> and the result of this code is like a vector of IO ()
2024-01-23 05:57:19 +0100 <c_wraith> ah. it's V.forM_ , not V.forM
2024-01-23 05:57:27 +0100 <c_wraith> that _ is part of the name
2024-01-23 05:57:43 +0100 <tri> yea and it sayd something like discarding the result
2024-01-23 05:57:49 +0100 <tri> but anyway
2024-01-23 05:57:52 +0100 <c_wraith> and it's an idiom that means "don't create a new data structure, just run this for the effects"
2024-01-23 05:59:23 +0100 <dmj`> c_wraith: maybe we could be better at keeping pure code from throwing exceptions, totality checks. Haskell98 didn’t have SomeException, just IOError afaik
2024-01-23 05:59:46 +0100 <c_wraith> Yeah, SomeException was part of making the exception mechanism support user-defined exception types
2024-01-23 05:59:52 +0100 <tri> so after reading the type signature of forM_ again, it's kinda make sense
2024-01-23 06:00:16 +0100 <c_wraith> tri: and especially contrast with forM
2024-01-23 06:00:29 +0100 <tri> so, is it safe to say 95% of using forM_ is to run IO for each item in a vector?
2024-01-23 06:00:54 +0100 <tri> or run IO for an item wrapped in a monad, if I use Control.Monad.forM_ ?
2024-01-23 06:01:21 +0100 <c_wraith> Well forM_ is a name that's used with a lot more things than Vector. Vector needs its own special version because it can't be an instance of Foldable.
2024-01-23 06:01:26 +0100 <tri> in other word, if i were to use forM_, 95% of the time is to do some sideeffect?
2024-01-23 06:01:45 +0100 <c_wraith> But yes, it's just about running side effects with the contents of a collection
2024-01-23 06:02:54 +0100 <c_wraith> (ok, Data.Vector.Vector is an instance of Foldable, but none of the others are.)
2024-01-23 06:03:26 +0100 <tri> ok
2024-01-23 06:03:30 +0100 <tri> so about forM
2024-01-23 06:04:20 +0100 <tri> Monad m => Vector a -> (a -> m b) -> m (Vector b)
2024-01-23 06:04:30 +0100 <dmj`> c_wraith: wonder if that could have been done with type classes
2024-01-23 06:04:43 +0100 <tri> im interpreting it as...
2024-01-23 06:05:08 +0100 <tri> sorry forget what i said
2024-01-23 06:05:20 +0100 <tri> that forM looks like a traversable
2024-01-23 06:05:25 +0100 <c_wraith> dmj`: it's part of the Data.Vector.Generic.Vector class
2024-01-23 06:05:54 +0100 <Axman6> tri: yes, it is basically the traverse instance for Vector
2024-01-23 06:05:59 +0100 <c_wraith> tri: mapM and traverse are the same function. forM = flip mapP
2024-01-23 06:06:08 +0100 <Axman6> M*
2024-01-23 06:06:09 +0100 <tri> oh ok so that's from the traversable
2024-01-23 06:06:14 +0100 <tri> i didn't read to that chapter
2024-01-23 06:06:15 +0100 <c_wraith> err. yes. mapM
2024-01-23 06:06:29 +0100 <Axman6> a slightly more "friendly" name (and a bit shorter)
2024-01-23 06:06:30 +0100 <tri> but from my experience with F# that looks like a traversable so i took a guess
2024-01-23 06:06:49 +0100 <Axman6> :t map
2024-01-23 06:06:50 +0100 <lambdabot> (a -> b) -> [a] -> [b]
2024-01-23 06:06:51 +0100 <Axman6> :t mapM
2024-01-23 06:06:52 +0100 <lambdabot> (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b)
2024-01-23 06:06:55 +0100 <Axman6> :t forM
2024-01-23 06:06:56 +0100 <lambdabot> (Traversable t, Monad m) => t a -> (a -> m b) -> m (t b)
2024-01-23 06:06:57 +0100 <Axman6> :t forM_
2024-01-23 06:06:58 +0100 <lambdabot> (Foldable t, Monad m) => t a -> (a -> m b) -> m ()
2024-01-23 06:07:08 +0100 <Axman6> :t traverse
2024-01-23 06:07:10 +0100 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
2024-01-23 06:07:12 +0100 <dmj`> c_wraith: meant for me? :)
2024-01-23 06:07:49 +0100 <c_wraith> nope! typing is not working well!
2024-01-23 06:07:59 +0100 <Axman6> tri: looks like you have the right intuition there - I feel like your next question might be "why do we have so many names for the same thing"
2024-01-23 06:08:18 +0100michalz(~michalz@185.246.207.200)
2024-01-23 06:09:01 +0100 <tri> well idk yet. That's question is going to be for a more experienced me
2024-01-23 06:09:35 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Ping timeout: 268 seconds)
2024-01-23 06:09:35 +0100 <tri> anyway, is the forM_ related to traversable?
2024-01-23 06:09:37 +0100 <Axman6> the answer is half historical, and half convenience. sometimes mapM is more convenient to write than forM: mapM somethingSimple [a,b,c,d,e,f,g,h] is often more clean than forM [a,b,c,d,e,f,g,h] somethingSimple, but forM someList $ \x -> do\n ... looks more for loop-y and often nests much more nicely
2024-01-23 06:09:51 +0100 <Axman6> :t forM_
2024-01-23 06:09:52 +0100 <lambdabot> (Foldable t, Monad m) => t a -> (a -> m b) -> m ()
2024-01-23 06:10:06 +0100 <tri> it's a foldable so im not sure
2024-01-23 06:10:12 +0100 <tri> and i haven't read the Foldable chapter yet
2024-01-23 06:10:15 +0100 <Axman6> forM_ is Foldable, because we don't care about building a new structure, we just want the values inside
2024-01-23 06:10:24 +0100 <Axman6> :t foldMap
2024-01-23 06:10:25 +0100 <lambdabot> (Foldable t, Monoid m) => (a -> m) -> t a -> m
2024-01-23 06:10:56 +0100 <Axman6> give me all the a's, let me turn them into some Monoid (things which can be easily combined together) and combine them all together.
2024-01-23 06:12:21 +0100 <tri> well that went over my head but thank you for your help
2024-01-23 06:12:59 +0100earthy(~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Ping timeout: 268 seconds)
2024-01-23 06:13:44 +0100 <tri> Axman6: is there anything equivalent to forM_, just like forM and mapM?
2024-01-23 06:17:21 +0100thegeekinside(~thegeekin@189.180.85.240)
2024-01-23 06:19:43 +0100 <xacktm> equivalent? like, since `forM = flip mapM`, then `forM_ = flip mapM_` ?
2024-01-23 06:20:09 +0100 <tri> :t MapM_
2024-01-23 06:20:10 +0100 <lambdabot> error:
2024-01-23 06:20:10 +0100 <lambdabot> • Data constructor not in scope: MapM_
2024-01-23 06:20:10 +0100 <lambdabot> • Perhaps you meant variable ‘mapM_’ (imported from Data.Foldable)
2024-01-23 06:20:15 +0100 <tri> :t mapM_
2024-01-23 06:20:16 +0100 <lambdabot> (Foldable t, Monad m) => (a -> m b) -> t a -> m ()
2024-01-23 06:20:23 +0100 <tri> :t forM_
2024-01-23 06:20:24 +0100 <lambdabot> (Foldable t, Monad m) => t a -> (a -> m b) -> m ()
2024-01-23 06:20:49 +0100 <tri> xacktm: as tested above, yes you are right. Thank you
2024-01-23 06:21:02 +0100mhatta(~mhatta@www21123ui.sakura.ne.jp) (Remote host closed the connection)
2024-01-23 06:22:11 +0100 <xacktm> np the word you were looking for is analogue btw
2024-01-23 06:22:14 +0100 <xacktm> :t flip
2024-01-23 06:22:15 +0100 <lambdabot> (a -> b -> c) -> b -> a -> c
2024-01-23 06:23:54 +0100 <tri> thank you
2024-01-23 06:26:46 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-23 06:26:58 +0100mhatta(~mhatta@www21123ui.sakura.ne.jp)
2024-01-23 06:28:16 +0100 <Axman6> tri: if you understnad traversable, you can definitely understand Foldable (it's a simpler class that does a similar things, but is just about extracting values, rather than mapping them, like Traversable)
2024-01-23 06:28:20 +0100 <Axman6> :t toList
2024-01-23 06:28:21 +0100 <lambdabot> Foldable t => t a -> [a]
2024-01-23 06:28:47 +0100 <tri> i mean i kind of understand from the name
2024-01-23 06:28:47 +0100 <Axman6> that's the canonical Fldable function IMO, if you have a foldable which contains a's, you can get all the a's.
2024-01-23 06:28:57 +0100 <tri> because i know how to use fold function
2024-01-23 06:29:14 +0100 <tri> but i still need to read the chapter to have a full understanding
2024-01-23 06:29:38 +0100 <Axman6> > fold (\x -> [a,a]) [a,b,c] :: [Expr]
2024-01-23 06:29:39 +0100 <lambdabot> error:
2024-01-23 06:29:39 +0100 <lambdabot> • Couldn't match type ‘[Expr]’ with ‘[Expr] -> [Expr]’
2024-01-23 06:29:39 +0100 <lambdabot> Expected type: p0 -> [Expr] -> [Expr]
2024-01-23 06:29:49 +0100 <Axman6> > fold (\x -> [x,x]) [a,b,c] :: [Expr]
2024-01-23 06:29:51 +0100 <lambdabot> error:
2024-01-23 06:29:51 +0100 <lambdabot> • Couldn't match type ‘[a0]’ with ‘[Expr] -> [Expr]’
2024-01-23 06:29:51 +0100 <lambdabot> Expected type: a0 -> [Expr] -> [Expr]
2024-01-23 06:30:00 +0100 <Axman6> ok I'm bad at this
2024-01-23 06:30:09 +0100 <Axman6> > foldMap (\x -> [x,x]) [a,b,c] :: [Expr]
2024-01-23 06:30:10 +0100 <lambdabot> [a,a,b,b,c,c]
2024-01-23 06:30:15 +0100 <tri> also in F#, there's a thing called sequencing which iirc is related to traversable.
2024-01-23 06:30:27 +0100igemnace(~ian@user/igemnace)
2024-01-23 06:30:43 +0100 <haskellbridge> 05<i​rregularsphere> does an existential `exists a` basically mean "some `a` satisfy this, some don't" or "only applies for some `a`"
2024-01-23 06:33:32 +0100michalz(~michalz@185.246.207.200) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-23 06:36:22 +0100michalz(~michalz@185.246.207.203)
2024-01-23 06:46:54 +0100trev(~trev@user/trev)
2024-01-23 06:55:01 +0100 <tri> Hi im having trouble parsing csv. im using this https://hackage.haskell.org/package/cassava-0.5.3.0/docs/Data-Csv.html#g:4
2024-01-23 06:56:00 +0100 <tri> this is my code so far https://paste.tomsmeding.com/c8xitufW
2024-01-23 06:56:11 +0100 <tri> im having trouble on the very last line
2024-01-23 06:57:03 +0100 <tri> basically, i know that i have to use decodeByName to decode the string read from csv file to my Haskell record
2024-01-23 06:57:23 +0100 <tri> :t decodeByName
2024-01-23 06:57:24 +0100 <lambdabot> error: Variable not in scope: decodeByName
2024-01-23 07:00:05 +0100 <tri> this is the type of decodeByName https://paste.tomsmeding.com/Yj5vLbJH
2024-01-23 07:00:49 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-01-23 07:00:50 +0100 <tri> in my case of expression, in the Right case, i would have a Vector of ANY
2024-01-23 07:01:10 +0100 <tri> so how do i turn that vector of any to a vector of my data record Position?
2024-01-23 07:14:53 +0100telser(~quassel@user/telser) (Ping timeout: 252 seconds)
2024-01-23 07:17:20 +0100 <tri> actually i got it
2024-01-23 07:17:21 +0100 <tri> nvm
2024-01-23 07:17:27 +0100euleritian(~euleritia@77.22.252.56) (Ping timeout: 256 seconds)
2024-01-23 07:17:51 +0100euleritian(~euleritia@dynamic-176-002-133-146.176.2.pool.telefonica.de)
2024-01-23 07:22:41 +0100acidjnk(~acidjnk@p200300d6e737e7577de83db70375434d.dip0.t-ipconnect.de)
2024-01-23 07:23:11 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2024-01-23 07:28:37 +0100Square(~Square4@user/square) (Ping timeout: 276 seconds)
2024-01-23 07:30:50 +0100Square(~Square4@user/square)
2024-01-23 07:35:10 +0100earthy(~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net)
2024-01-23 07:35:54 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-01-23 07:44:16 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-01-23 07:46:41 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-01-23 07:48:50 +0100harveypwca(~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b)
2024-01-23 07:50:13 +0100Square(~Square4@user/square) (Ping timeout: 264 seconds)
2024-01-23 07:53:55 +0100thegeekinside(~thegeekin@189.180.85.240) (Remote host closed the connection)
2024-01-23 07:55:55 +0100CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
2024-01-23 08:04:37 +0100Erutuon(~Erutuon@user/erutuon)
2024-01-23 08:05:01 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-23 08:05:32 +0100CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-01-23 08:06:11 +0100justsomeguy(~justsomeg@user/justsomeguy)
2024-01-23 08:07:04 +0100CrunchyFlakes(~CrunchyFl@146.52.130.128)
2024-01-23 08:07:46 +0100shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 264 seconds)
2024-01-23 08:09:32 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-01-23 08:13:14 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 260 seconds)
2024-01-23 08:20:05 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2024-01-23 08:22:31 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
2024-01-23 08:26:34 +0100rosco(~rosco@175.136.156.77)
2024-01-23 08:30:27 +0100average(uid473595@user/average) (Quit: Connection closed for inactivity)
2024-01-23 08:30:37 +0100cross(~cross@spitfire.i.gajendra.net) (Quit: Lost terminal)
2024-01-23 08:31:58 +0100CiaoSen(~Jura@2a05:5800:2ba:a600:ca4b:d6ff:fec1:99da)
2024-01-23 08:33:33 +0100chele(~chele@user/chele)
2024-01-23 08:35:35 +0100euleritian(~euleritia@dynamic-176-002-133-146.176.2.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-23 08:35:54 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-23 08:36:06 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2024-01-23 08:38:11 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-01-23 08:38:13 +0100earthy(~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Ping timeout: 264 seconds)
2024-01-23 08:41:43 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2024-01-23 08:42:31 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-01-23 08:43:12 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-23 08:45:28 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2024-01-23 08:49:41 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 260 seconds)
2024-01-23 08:49:42 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-01-23 08:50:45 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-23 08:56:34 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-01-23 08:57:05 +0100mima(~mmh@aftr-62-216-211-79.dynamic.mnet-online.de)
2024-01-23 09:00:17 +0100oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
2024-01-23 09:02:01 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2024-01-23 09:03:16 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2024-01-23 09:04:48 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) (Remote host closed the connection)
2024-01-23 09:05:24 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2024-01-23 09:06:39 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2024-01-23 09:06:56 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c)
2024-01-23 09:10:02 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c)
2024-01-23 09:12:41 +0100danse-nr3(~danse@151.47.88.94)
2024-01-23 09:13:24 +0100gmg(~user@user/gehmehgeh)
2024-01-23 09:14:37 +0100danse-nr3(~danse@151.47.88.94) (Remote host closed the connection)
2024-01-23 09:15:00 +0100danse-nr3(~danse@151.47.88.94)
2024-01-23 09:25:47 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds)
2024-01-23 09:26:14 +0100m1dnight(~christoph@78-22-2-15.access.telenet.be) (Quit: WeeChat 4.1.1)
2024-01-23 09:26:20 +0100harveypwca(~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b) (Quit: Leaving)
2024-01-23 09:27:22 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection)
2024-01-23 09:27:35 +0100m1dnight(~christoph@78-22-2-15.access.telenet.be)
2024-01-23 09:29:25 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c)
2024-01-23 09:32:08 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) (Remote host closed the connection)
2024-01-23 09:36:24 +0100econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-23 09:50:46 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds)
2024-01-23 10:00:05 +0100 <Hecate> If anyone has got any question regarding object linking with GHC, would you mind seeing if it's answered here: https://gitlab.haskell.org/ghc/ghc/-/wikis/Linking ?
2024-01-23 10:00:17 +0100 <Hecate> and if it's not, can I get a link to the answer so that I may reference it?
2024-01-23 10:00:38 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-01-23 10:04:52 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c)
2024-01-23 10:05:46 +0100Flow(~none@gentoo/developer/flow) (Ping timeout: 245 seconds)
2024-01-23 10:07:12 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-23 10:07:43 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
2024-01-23 10:09:52 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-01-23 10:12:40 +0100Flow(~none@gentoo/developer/flow)
2024-01-23 10:16:26 +0100Luj(~Luj@2a01:e0a:5f9:9681:9efa:99eb:317c:5cbb) (Quit: Ping timeout (120 seconds))
2024-01-23 10:16:46 +0100Luj(~Luj@2a01:e0a:5f9:9681:d777:c1f:db87:45b8)
2024-01-23 10:43:36 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-01-23 10:46:16 +0100statusbot3(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection)
2024-01-23 10:46:25 +0100statusbot(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
2024-01-23 10:52:08 +0100danse-nr3(~danse@151.47.88.94) (Ping timeout: 256 seconds)
2024-01-23 10:53:53 +0100ft(~ft@p508dbda4.dip0.t-ipconnect.de) (Quit: leaving)
2024-01-23 10:56:54 +0100mmhat(~mmh@p200300f1c724f91bee086bfffe095315.dip0.t-ipconnect.de)
2024-01-23 10:57:37 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
2024-01-23 10:58:46 +0100cfricke(~cfricke@user/cfricke)
2024-01-23 10:58:47 +0100danse-nr3(~danse@151.47.88.94)
2024-01-23 11:00:10 +0100notzmv(~zmv@user/notzmv)
2024-01-23 11:02:23 +0100cyphase(~cyphase@user/cyphase) (Ping timeout: 264 seconds)
2024-01-23 11:05:31 +0100ph88(~ph88@ip5b403f30.dynamic.kabel-deutschland.de)
2024-01-23 11:06:15 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds)
2024-01-23 11:19:09 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2024-01-23 11:22:59 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-23 11:23:41 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds)
2024-01-23 11:24:50 +0100__monty__(~toonn@user/toonn)
2024-01-23 11:48:55 +0100earthy(~arthurvl@77-174-49-144.fixed.kpn.net)
2024-01-23 11:54:24 +0100ph88(~ph88@ip5b403f30.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-01-23 11:59:11 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-01-23 12:10:32 +0100danse-nr3(~danse@151.47.88.94) (Read error: Connection reset by peer)
2024-01-23 12:10:50 +0100danse-nr3(~danse@rm-19-13-46.service.infuturo.it)
2024-01-23 12:11:49 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds)
2024-01-23 12:14:01 +0100xff0x(~xff0x@ai085147.d.east.v6connect.net)
2024-01-23 12:17:47 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 256 seconds)
2024-01-23 12:19:01 +0100rosco(~rosco@175.136.156.77) (Read error: Connection reset by peer)
2024-01-23 12:28:30 +0100__monty__(~toonn@user/toonn) (Ping timeout: 260 seconds)
2024-01-23 12:29:46 +0100CiaoSen(~Jura@2a05:5800:2ba:a600:ca4b:d6ff:fec1:99da) (Ping timeout: 268 seconds)
2024-01-23 12:30:55 +0100califax(~califax@user/califx) (Ping timeout: 240 seconds)
2024-01-23 12:31:36 +0100califax(~califax@user/califx)
2024-01-23 12:37:01 +0100glguy(g@libera/staff/glguy) (Read error: Connection reset by peer)
2024-01-23 12:37:16 +0100glguy(g@libera/staff/glguy)
2024-01-23 12:37:18 +0100cyphase(~cyphase@user/cyphase)
2024-01-23 12:37:58 +0100g(g@libera/staff/glguy) (Read error: Connection reset by peer)
2024-01-23 12:45:42 +0100g(glguy@libera/staff/glguy)
2024-01-23 12:49:01 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
2024-01-23 12:49:37 +0100__monty__(~toonn@user/toonn)
2024-01-23 12:52:55 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
2024-01-23 12:55:06 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-01-23 12:59:13 +0100rosco(~rosco@175.136.156.77)
2024-01-23 13:02:03 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-01-23 13:05:47 +0100myxos(~myxos@065-028-251-121.inf.spectrum.com)
2024-01-23 13:07:31 +0100danse-nr3(~danse@rm-19-13-46.service.infuturo.it) (Ping timeout: 256 seconds)
2024-01-23 13:08:50 +0100phma_(~phma@host-67-44-208-39.hnremote.net)
2024-01-23 13:09:57 +0100phma(phma@2001:5b0:211f:a328:df89:a9c1:b8f3:9c33) (Read error: Connection reset by peer)
2024-01-23 13:30:14 +0100califax(~califax@user/califx) (Remote host closed the connection)
2024-01-23 13:31:37 +0100califax(~califax@user/califx)
2024-01-23 13:39:25 +0100danse-nr3(~danse@rm-19-51-222.service.infuturo.it)
2024-01-23 13:40:22 +0100cyphase(~cyphase@user/cyphase) (Ping timeout: 260 seconds)
2024-01-23 13:45:09 +0100cyphase(~cyphase@user/cyphase)
2024-01-23 13:57:11 +0100son0p(~ff@181.32.158.171) (Quit: Bye)
2024-01-23 14:10:27 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
2024-01-23 14:16:13 +0100paltech(~paltech@2001:6b0:1:1041:d0f3:cc40:ae9:da17)
2024-01-23 14:16:26 +0100paltech(~paltech@2001:6b0:1:1041:d0f3:cc40:ae9:da17) (Client Quit)
2024-01-23 14:16:47 +0100paltech(~paltech@2001:6b0:1:1041:d0f3:cc40:ae9:da17)
2024-01-23 14:17:07 +0100califax(~califax@user/califx) (Remote host closed the connection)
2024-01-23 14:17:25 +0100califax(~califax@user/califx)
2024-01-23 14:30:23 +0100 <ski> i​rregularsphere : skip the "some don't" part
2024-01-23 14:54:12 +0100shriekingnoise(~shrieking@186.137.175.87)
2024-01-23 14:55:41 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection)
2024-01-23 15:01:48 +0100paltech(~paltech@2001:6b0:1:1041:d0f3:cc40:ae9:da17) (Ping timeout: 250 seconds)
2024-01-23 15:07:50 +0100causal(~eric@50.35.85.7) (Quit: WeeChat 4.1.1)
2024-01-23 15:12:49 +0100cheater_(~Username@user/cheater)
2024-01-23 15:16:33 +0100cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2024-01-23 15:16:34 +0100cheater_cheater
2024-01-23 15:21:49 +0100kmein(~weechat@user/kmein) (Ping timeout: 256 seconds)
2024-01-23 15:23:10 +0100kmein(~weechat@user/kmein)
2024-01-23 15:23:13 +0100 <haskellbridge> 05<i​rregularsphere> ah right
2024-01-23 15:25:01 +0100thegeekinside(~thegeekin@189.180.85.240)
2024-01-23 15:25:52 +0100 <haskellbridge> 05<i​rregularsphere> though does an existential allow for no types to be valid
2024-01-23 15:26:27 +0100 <haskellbridge> 05<i​rregularsphere> I'm not sure how to construct an example but I'm expecting GHC/others to let it slide
2024-01-23 15:29:17 +0100 <tomsmeding> irregularsphere: an existential variable can be any type, that's the point of an existential
2024-01-23 15:30:09 +0100 <haskellbridge> 05<i​rregularsphere> what I mean is that no types ever satisfy the conditional/predicate after an existential
2024-01-23 15:30:40 +0100 <tomsmeding> the type class constraints inside the quantifier, you mean?
2024-01-23 15:30:47 +0100 <tomsmeding> the existential can still be any type
2024-01-23 15:31:04 +0100 <tomsmeding> whether the thing under the quantifier has any inhabitants is a separate point :p
2024-01-23 15:31:12 +0100 <tomsmeding> 'undefined' has a lot of types
2024-01-23 15:33:28 +0100trev(~trev@user/trev) (Quit: trev)
2024-01-23 15:33:41 +0100 <tomsmeding> it becomes a bit more fuzzy if you have 'exists a. (a ~ Int) => ...'
2024-01-23 15:33:44 +0100mima(~mmh@aftr-62-216-211-79.dynamic.mnet-online.de) (Ping timeout: 252 seconds)
2024-01-23 15:33:54 +0100trev(~trev@user/trev)
2024-01-23 15:34:08 +0100 <tomsmeding> ghc is being annoying in letting me construct such a thing, even with undefined
2024-01-23 15:35:20 +0100 <tomsmeding> in any case, it seems to me the most productive way to think about that is still that 'a' can be anything, including e.g. Bool; it's just that the term that has this type _must_ be bottom, because it will include evidence that e.g. Bool ~ Int, which does not exist
2024-01-23 15:35:52 +0100 <tomsmeding> I'm assuming here that you encode the existential with something like 'data Exists c where Exists :: c a => a -> Exists c'
2024-01-23 15:38:31 +0100ystael(~ystael@user/ystael)
2024-01-23 15:40:59 +0100igemnace(~ian@user/igemnace) (Read error: Connection reset by peer)
2024-01-23 15:44:00 +0100 <EvanR> there's a valid type for exists n such that (n ~ Int, IsEven n, IsOdd n), but no way to build it
2024-01-23 15:44:14 +0100 <EvanR> nooo I messed that up
2024-01-23 15:44:25 +0100 <EvanR> no dependent types
2024-01-23 15:44:56 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-23 15:45:40 +0100average(uid473595@user/average)
2024-01-23 15:46:45 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-01-23 15:47:42 +0100euleritian(~euleritia@dynamic-176-006-197-230.176.6.pool.telefonica.de)
2024-01-23 15:48:53 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 240 seconds)
2024-01-23 15:54:32 +0100 <tomsmeding> heh
2024-01-23 15:55:21 +0100 <__monty__> It's identical to the empty type no?
2024-01-23 15:55:34 +0100 <__monty__> Void or such.
2024-01-23 15:55:35 +0100 <tomsmeding> __monty__: it said `n ~ Int`, not `n : Int`
2024-01-23 15:56:15 +0100 <tomsmeding> if it was (::) then it was dependent; if it said `n :: Nat` then it was type-level
2024-01-23 15:56:21 +0100mmhat(~mmh@p200300f1c724f91bee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2024-01-23 15:56:21 +0100 <tomsmeding> and we were talking about value-level Ints :)
2024-01-23 15:56:44 +0100mmhat(~mmh@p200300f1c724f9e1ee086bfffe095315.dip0.t-ipconnect.de)
2024-01-23 15:56:51 +0100 <ncf> yes, the type of even and odd integers is empty
2024-01-23 15:57:42 +0100 <tomsmeding> in Agda the type Sigma Int (\n -> even n && odd n) is empty
2024-01-23 15:57:50 +0100 <tomsmeding> good luck expressing that in Haskell
2024-01-23 15:58:30 +0100igemnace(~ian@user/igemnace)
2024-01-23 16:00:42 +0100 <__monty__> Oh, because of bottom?
2024-01-23 16:01:09 +0100 <tomsmeding> hm?
2024-01-23 16:01:11 +0100 <tomsmeding> even ignoring bottom
2024-01-23 16:01:17 +0100 <tomsmeding> there ain't enough dependence
2024-01-23 16:01:22 +0100 <tomsmeding> unless you want to introduce singletons
2024-01-23 16:01:42 +0100 <tomsmeding> (n ~ Int, IsEven n, IsOdd n) doesn't kind-check
2024-01-23 16:02:47 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1)
2024-01-23 16:03:21 +0100ncf. o O ( a type is even if it is finite and has even cardinality... )
2024-01-23 16:03:46 +0100 <tomsmeding> :p I guess
2024-01-23 16:08:30 +0100 <haskellbridge> 05<i​rregularsphere> ...so `exists` with `~` is basically a weaker form of dependency
2024-01-23 16:08:46 +0100 <tomsmeding> haven't I just been trying to argue it's _not_ dependency? :p
2024-01-23 16:09:00 +0100 <haskellbridge> 05<i​rregularsphere> emphasis on "weaker"
2024-01-23 16:09:42 +0100 <ncf> exists is dependent
2024-01-23 16:10:08 +0100 <ncf> it's just restricted to types
2024-01-23 16:10:47 +0100 <ncf> or... things that have a kind, i guess
2024-01-23 16:11:00 +0100tomsmedinghas always interpreted "dependent" as meaning "a type depending on a term"
2024-01-23 16:11:20 +0100 <tomsmeding> types depending on types is just... polymorphism, right?
2024-01-23 16:11:29 +0100 <tomsmeding> though this is a terminology discussion at this point
2024-01-23 16:12:05 +0100 <ncf> you're right; i hate those
2024-01-23 16:12:22 +0100 <tomsmeding> then let's not get into the weeds :p
2024-01-23 16:12:45 +0100 <ncf> but e.g. https://en.wikipedia.org/wiki/Lambda_cube does use the weaker meaning of "dependency"
2024-01-23 16:13:12 +0100 <tomsmeding> ah I see
2024-01-23 16:15:22 +0100m1dnight(~christoph@78-22-2-15.access.telenet.be) (Quit: WeeChat 4.1.1)
2024-01-23 16:15:49 +0100m1dnight(~christoph@78-22-2-15.access.telenet.be)
2024-01-23 16:18:03 +0100ddellacosta(~ddellacos@ool-44c73d16.dyn.optonline.net) (Ping timeout: 256 seconds)
2024-01-23 16:19:11 +0100euleritian(~euleritia@dynamic-176-006-197-230.176.6.pool.telefonica.de) (Ping timeout: 256 seconds)
2024-01-23 16:19:19 +0100 <kuribas> tomsmeding: but in a dependent language a type is a term.
2024-01-23 16:19:26 +0100 <tomsmeding> which haskell is not!
2024-01-23 16:19:50 +0100 <__monty__> Does Type-in-Type affect this?
2024-01-23 16:19:59 +0100 <kuribas> right, so haskell doesn't have a dependent type, just things which look similar.
2024-01-23 16:20:10 +0100 <tomsmeding> kuribas: that's what I'd say
2024-01-23 16:20:23 +0100 <ncf> __monty__: not really
2024-01-23 16:21:01 +0100 <danse-nr3> terminology discussions are annoying but they do help
2024-01-23 16:21:07 +0100 <tomsmeding> % type T = forall n. (n ~ Int, Eq n, Ord n) => n
2024-01-23 16:21:07 +0100 <yahb2> <interactive>:99:1: error: ; • Illegal equational constraint n ~ Int ; (Use GADTs or TypeFamilies to permit this) ; • In the type synonym declaration for ‘T’
2024-01-23 16:21:11 +0100 <tomsmeding> % :set -XGADTs
2024-01-23 16:21:11 +0100 <yahb2> <no output>
2024-01-23 16:21:13 +0100 <kuribas> tomsmeding: not yet at least :)
2024-01-23 16:21:13 +0100 <tomsmeding> % type T = forall n. (n ~ Int, Eq n, Ord n) => n
2024-01-23 16:21:13 +0100 <yahb2> <no output>
2024-01-23 16:21:25 +0100 <tomsmeding> ghc accepts this and only because of TypeInType I suspect :p
2024-01-23 16:21:57 +0100 <ncf> seems to work without TypeInType
2024-01-23 16:22:00 +0100 <tomsmeding> whether it has any useful meaning, however...
2024-01-23 16:22:09 +0100 <tomsmeding> ncf: how are you turning off TypeInType?
2024-01-23 16:22:13 +0100 <kuribas> tomsmeding: maybe never, but every once in a while I hear some progress has been made...
2024-01-23 16:22:15 +0100 <ncf> :set -XNoTypeInType
2024-01-23 16:22:22 +0100 <tomsmeding> ncf: https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/poly_kinds.html#extension-TypeInType
2024-01-23 16:22:26 +0100 <tomsmeding> the thing cannot be turned off
2024-01-23 16:22:30 +0100m1dnight(~christoph@78-22-2-15.access.telenet.be) (Quit: WeeChat 4.1.1)
2024-01-23 16:22:32 +0100 <ncf> ugh
2024-01-23 16:22:40 +0100 <tomsmeding> that bridge has been burned a while ago
2024-01-23 16:22:46 +0100m1dnight(~christoph@78-22-2-15.access.telenet.be)
2024-01-23 16:23:05 +0100euleritian(~euleritia@dynamic-176-006-200-141.176.6.pool.telefonica.de)
2024-01-23 16:23:11 +0100 <tomsmeding> kuribas: all hope is not lost but things are slow :p
2024-01-23 16:25:07 +0100 <haskellbridge> 05<i​rregularsphere> reading this discussion felt like zoning out
2024-01-23 16:26:46 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-23 16:26:47 +0100son0p(~ff@181.32.158.171)
2024-01-23 16:26:54 +0100 <haskellbridge> 05<i​rregularsphere> _...burned?_
2024-01-23 16:27:18 +0100 <tomsmeding> it's not the right english idiom but I couldn't think of the right one
2024-01-23 16:27:43 +0100 <danse-nr3> i thought /burning bridges/ was an idiom
2024-01-23 16:28:08 +0100 <danse-nr3> oh i see
2024-01-23 16:28:11 +0100 <tomsmeding> it is, but iirc it's more for leaving people leaving behind bad relations
2024-01-23 16:28:25 +0100 <tomsmeding> this is more like "the choice has been made, no turning back now"
2024-01-23 16:28:33 +0100 <danse-nr3> feels suited to all irreversible actions
2024-01-23 16:28:33 +0100 <ncf> the ship has sailed
2024-01-23 16:28:39 +0100 <tomsmeding> ncf: thank you
2024-01-23 16:29:04 +0100 <tomsmeding> that's the one :)
2024-01-23 16:29:05 +0100 <danse-nr3> i think cortez did burn some ships as well, by the way (=
2024-01-23 16:29:22 +0100akegalj(~akegalj@cpe-188-129-77-238.dynamic.amis.hr)
2024-01-23 16:29:34 +0100 <danse-nr3> they were the crews' bridges to the old world
2024-01-23 16:31:22 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 276 seconds)
2024-01-23 16:40:12 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-23 16:42:17 +0100danse-nr3(~danse@rm-19-51-222.service.infuturo.it) (Ping timeout: 268 seconds)
2024-01-23 16:42:45 +0100 <EvanR> that ship has sailed
2024-01-23 16:43:03 +0100 <EvanR> that can of woopass was opened
2024-01-23 16:44:22 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-23 16:48:02 +0100mima(~mmh@dhcp-138-246-3-41.dynamic.eduroam.mwn.de)
2024-01-23 16:52:44 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-01-23 16:55:22 +0100 <mauke> that rubicon has been crossed
2024-01-23 16:56:08 +0100danse-nr3(~danse@rm-19-9-134.service.infuturo.it)
2024-01-23 16:59:32 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-23 17:00:57 +0100statusbot4(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
2024-01-23 17:01:12 +0100Pixi`(~Pixi@user/pixi)
2024-01-23 17:01:16 +0100akegalj(~akegalj@cpe-188-129-77-238.dynamic.amis.hr) (Quit: leaving)
2024-01-23 17:01:20 +0100phma(phma@2001:5b0:212a:ca28:8adb:c496:397:1cd2)
2024-01-23 17:01:51 +0100Feuermagier_(~Feuermagi@user/feuermagier)
2024-01-23 17:01:51 +0100Feuermagier(~Feuermagi@user/feuermagier) (Killed (platinum.libera.chat (Nickname regained by services)))
2024-01-23 17:01:51 +0100Feuermagier_Feuermagier
2024-01-23 17:01:56 +0100hamster(~ham@user/ham)
2024-01-23 17:02:11 +0100euleritian(~euleritia@dynamic-176-006-200-141.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-23 17:02:29 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-23 17:02:40 +0100Katarushisu12(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
2024-01-23 17:02:45 +0100kimiamania4648(~65804703@user/kimiamania)
2024-01-23 17:02:53 +0100qhong_(~qhong@DN160vrd000d6kpg009l6c0000fj.stanford.edu)
2024-01-23 17:03:01 +0100pounce_(~pounce@user/cute/pounce)
2024-01-23 17:03:11 +0100siers69(~ij@user/ij)
2024-01-23 17:03:21 +0100mniip_(mniip@libera/staff/mniip)
2024-01-23 17:03:33 +0100p3n_(~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1)
2024-01-23 17:03:35 +0100stefan-_-(~cri@42dots.de)
2024-01-23 17:03:37 +0100cptaffe`(~cptaffe@user/cptaffe)
2024-01-23 17:03:38 +0100nitrix_(~nitrix@user/nitrix)
2024-01-23 17:03:40 +0100CiaoSen(~Jura@2a05:5800:2ba:a600:ca4b:d6ff:fec1:99da)
2024-01-23 17:03:42 +0100swistak-(~swistak@185.21.216.141)
2024-01-23 17:03:50 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 260 seconds)
2024-01-23 17:03:57 +0100krei-se(~krei-se@p508747fd.dip0.t-ipconnect.de)
2024-01-23 17:03:57 +0100mhatta_(~mhatta@www21123ui.sakura.ne.jp)
2024-01-23 17:04:38 +0100YoungFrawg(~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be)
2024-01-23 17:04:49 +0100phma(phma@2001:5b0:212a:ca28:8adb:c496:397:1cd2) (Read error: Connection reset by peer)
2024-01-23 17:05:42 +0100phma(phma@2001:5b0:210b:d438:d098:3d2c:a016:35e3)
2024-01-23 17:05:53 +0100takuan_dozo(~takuan@178-116-218-225.access.telenet.be)
2024-01-23 17:06:11 +0100ski_(~ski@remote11.chalmers.se)
2024-01-23 17:06:29 +0100RemiYuko(~licht@user/akechishiro)
2024-01-23 17:06:33 +0100qqq_(~qqq@92.43.167.61)
2024-01-23 17:07:46 +0100earthy(~arthurvl@77-174-49-144.fixed.kpn.net) (Ping timeout: 264 seconds)
2024-01-23 17:08:35 +0100mhatta(~mhatta@www21123ui.sakura.ne.jp) (Ping timeout: 264 seconds)
2024-01-23 17:08:35 +0100stefan-_(~cri@42dots.de) (Ping timeout: 264 seconds)
2024-01-23 17:08:35 +0100p3n(~p3n@217.198.124.246) (Ping timeout: 264 seconds)
2024-01-23 17:08:35 +0100swistak(~swistak@185.21.216.141) (Ping timeout: 264 seconds)
2024-01-23 17:08:35 +0100qhong(~qhong@rescomp-21-400677.stanford.edu) (Ping timeout: 264 seconds)
2024-01-23 17:08:35 +0100cptaffe(~cptaffe@user/cptaffe) (Ping timeout: 264 seconds)
2024-01-23 17:08:35 +0100vulpine(xfnw@tilde.team) (Ping timeout: 264 seconds)
2024-01-23 17:08:35 +0100pounce(~pounce@user/cute/pounce) (Ping timeout: 264 seconds)
2024-01-23 17:08:35 +0100phma_(~phma@host-67-44-208-39.hnremote.net) (Ping timeout: 264 seconds)
2024-01-23 17:08:36 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 264 seconds)
2024-01-23 17:08:36 +0100qqq(~qqq@92.43.167.61) (Ping timeout: 264 seconds)
2024-01-23 17:08:36 +0100AkechiShiro(~licht@user/akechishiro) (Ping timeout: 264 seconds)
2024-01-23 17:08:36 +0100ham(~ham@user/ham) (Ping timeout: 264 seconds)
2024-01-23 17:08:36 +0100kimiamania464(~65804703@user/kimiamania) (Ping timeout: 264 seconds)
2024-01-23 17:08:36 +0100Vajb(~Vajb@n7kymlrhl8zspe1o45k-1.v6.elisa-mobile.fi) (Ping timeout: 264 seconds)
2024-01-23 17:08:36 +0100krei-se-(~krei-se@p508747fd.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-01-23 17:08:36 +0100YoungFrog(~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Ping timeout: 264 seconds)
2024-01-23 17:08:37 +0100siers(~ij@user/ij) (Ping timeout: 264 seconds)
2024-01-23 17:08:37 +0100nitrix(~nitrix@user/nitrix) (Ping timeout: 264 seconds)
2024-01-23 17:08:37 +0100Pixi(~Pixi@user/pixi) (Ping timeout: 264 seconds)
2024-01-23 17:08:37 +0100ski(~ski@remote11.chalmers.se) (Ping timeout: 264 seconds)
2024-01-23 17:08:37 +0100mmhat(~mmh@p200300f1c724f9e1ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-01-23 17:08:37 +0100statusbot(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Ping timeout: 264 seconds)
2024-01-23 17:08:37 +0100Katarushisu1(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Ping timeout: 264 seconds)
2024-01-23 17:08:38 +0100cptaffe`cptaffe
2024-01-23 17:08:38 +0100Katarushisu12Katarushisu1
2024-01-23 17:08:39 +0100nitrix_nitrix
2024-01-23 17:08:40 +0100kimiamania4648kimiamania464
2024-01-23 17:08:41 +0100pounce_pounce
2024-01-23 17:08:41 +0100YoungFrawgYoungFrog
2024-01-23 17:08:53 +0100mniip(mniip@libera/staff/mniip) (Read error: Connection reset by peer)
2024-01-23 17:13:01 +0100synapse(~synapse@176.254.244.83) (Ping timeout: 256 seconds)
2024-01-23 17:14:50 +0100Square(~Square@user/square)
2024-01-23 17:16:55 +0100synapse(~synapse@176.254.244.83)
2024-01-23 17:17:55 +0100vulpine(xfnw@tilde.team)
2024-01-23 17:18:15 +0100mmhat(~mmh@p200300f1c724f9e1ee086bfffe095315.dip0.t-ipconnect.de)
2024-01-23 17:20:27 +0100mniip_mniip
2024-01-23 17:26:22 +0100ski_ski
2024-01-23 17:37:18 +0100chele(~chele@user/chele) (Remote host closed the connection)
2024-01-23 17:47:02 +0100kmein(~weechat@user/kmein) (Quit: ciao kakao)
2024-01-23 17:47:05 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) (Remote host closed the connection)
2024-01-23 17:47:23 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:558a:c642:c5e9:5691)
2024-01-23 17:51:07 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2024-01-23 17:52:53 +0100CiaoSen(~Jura@2a05:5800:2ba:a600:ca4b:d6ff:fec1:99da) (Ping timeout: 240 seconds)
2024-01-23 17:55:09 +0100kmein(~weechat@user/kmein)
2024-01-23 17:57:16 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-23 17:59:41 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2024-01-23 18:00:36 +0100euleritian(~euleritia@dynamic-046-114-163-142.46.114.pool.telefonica.de)
2024-01-23 18:01:47 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 264 seconds)
2024-01-23 18:02:38 +0100danse-nr3(~danse@rm-19-9-134.service.infuturo.it) (Ping timeout: 260 seconds)
2024-01-23 18:03:27 +0100potato44(uid421314@id-421314.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-23 18:03:30 +0100euleritian(~euleritia@dynamic-046-114-163-142.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-23 18:03:49 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-23 18:11:32 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 4.1.2)
2024-01-23 18:11:59 +0100mmhat(~mmh@p200300f1c724f9e1ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.0)
2024-01-23 18:17:09 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Ping timeout: 260 seconds)
2024-01-23 18:18:40 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2024-01-23 18:24:28 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-01-23 18:26:58 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
2024-01-23 18:31:38 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-01-23 18:36:40 +0100troydm(~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)
2024-01-23 18:36:56 +0100lottaquestions(~nick@2607:fa49:503d:b200:7e84:60b6:2c6a:f57e)
2024-01-23 18:37:00 +0100troydm(~troydm@user/troydm)
2024-01-23 18:40:12 +0100mulk(~mulk@p5b2dc93f.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-01-23 18:40:57 +0100steew(~steew@user/steew) (Remote host closed the connection)
2024-01-23 18:43:24 +0100rosco(~rosco@175.136.156.77) (Remote host closed the connection)
2024-01-23 18:45:12 +0100mulk(~mulk@p5b2dc93f.dip0.t-ipconnect.de)
2024-01-23 18:47:42 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
2024-01-23 18:48:15 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-01-23 19:06:55 +0100__monty_1(~toonn@user/toonn)
2024-01-23 19:08:35 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-23 19:08:37 +0100__monty__(~toonn@user/toonn) (Ping timeout: 246 seconds)
2024-01-23 19:08:45 +0100__monty_1__monty__
2024-01-23 19:08:50 +0100mc47(~mc47@xmonad/TheMC47)
2024-01-23 19:16:07 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds)
2024-01-23 19:18:08 +0100Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Ping timeout: 252 seconds)
2024-01-23 19:18:22 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-01-23 19:20:06 +0100Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2024-01-23 19:22:38 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Read error: Connection reset by peer)
2024-01-23 19:23:05 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-01-23 19:25:12 +0100hololeap(~quassel@user/hololeap) (Quit: Bye)
2024-01-23 19:26:17 +0100hololeap(~quassel@user/hololeap)
2024-01-23 19:30:38 +0100Erutuon(~Erutuon@user/erutuon)
2024-01-23 19:32:49 +0100Square(~Square@user/square) (Ping timeout: 264 seconds)
2024-01-23 19:42:31 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds)
2024-01-23 19:44:52 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-01-23 19:47:25 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-01-23 19:47:53 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-01-23 19:52:37 +0100sroso(~sroso@user/SrOso)
2024-01-23 19:54:28 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2024-01-23 19:57:15 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-23 19:57:43 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2024-01-23 19:58:27 +0100trev(~trev@user/trev) (Quit: trev)
2024-01-23 20:00:57 +0100potato44(uid421314@id-421314.lymington.irccloud.com)
2024-01-23 20:10:46 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-23 20:13:22 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-23 20:14:12 +0100 <haskellbridge> 15<J​ade> why does the source of `Control.Category` a `RULE` `(p . q) . r = p . (q . r)`?
2024-01-23 20:14:25 +0100 <haskellbridge> 15<J​ade> How does this help optimization specifically?
2024-01-23 20:15:49 +0100Square(~Square@user/square)
2024-01-23 20:17:51 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 260 seconds)
2024-01-23 20:25:01 +0100mc47(~mc47@xmonad/TheMC47) (Ping timeout: 264 seconds)
2024-01-23 20:26:43 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2024-01-23 20:28:23 +0100mima(~mmh@dhcp-138-246-3-41.dynamic.eduroam.mwn.de) (Ping timeout: 256 seconds)
2024-01-23 20:30:06 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-23 20:32:29 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c)
2024-01-23 20:34:16 +0100 <monochrom> Under lazy evaluation, `((f . g) . h) x` incurs one more step than `(f . (g . h)) x`
2024-01-23 20:34:31 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 255 seconds)
2024-01-23 20:38:54 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-23 20:48:39 +0100mikess(~mikess@user/mikess)
2024-01-23 20:51:40 +0100jargon(~jargon@211.sub-174-205-225.myvzw.com)
2024-01-23 20:55:30 +0100pastly(~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection)
2024-01-23 20:56:03 +0100pastly(~pastly@gateway/tor-sasl/pastly)
2024-01-23 21:00:02 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-23 21:00:12 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-23 21:01:31 +0100Zmzi(rscastilho@user/Zmzi)
2024-01-23 21:03:15 +0100Zmzi(rscastilho@user/Zmzi) (Remote host closed the connection)
2024-01-23 21:05:01 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 276 seconds)
2024-01-23 21:14:26 +0100jinsun(~jinsun@user/jinsun)
2024-01-23 21:17:13 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-23 21:24:26 +0100jinsun(~jinsun@user/jinsun) ()
2024-01-23 21:29:17 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-23 21:30:47 +0100mima(~mmh@aftr-62-216-211-120.dynamic.mnet-online.de)
2024-01-23 21:34:10 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 264 seconds)
2024-01-23 21:39:50 +0100phma(phma@2001:5b0:210b:d438:d098:3d2c:a016:35e3) (Read error: Connection reset by peer)
2024-01-23 21:40:07 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-23 21:41:16 +0100phma(phma@2001:5b0:211f:c9b8:8d72:9b4c:9f04:5951)
2024-01-23 21:43:22 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-01-23 21:48:10 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-01-23 21:49:50 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-23 21:59:19 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-23 22:00:21 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-23 22:03:57 +0100dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-01-23 22:05:28 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 276 seconds)
2024-01-23 22:09:20 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-01-23 22:12:14 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:558a:c642:c5e9:5691) (Remote host closed the connection)
2024-01-23 22:14:03 +0100igemnace(~ian@user/igemnace) (Ping timeout: 268 seconds)
2024-01-23 22:17:49 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds)
2024-01-23 22:20:43 +0100potato44(uid421314@id-421314.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-23 22:26:28 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection)
2024-01-23 22:26:58 +0100 <haskellbridge> 15<J​ade> ohh okay, thank you
2024-01-23 22:30:28 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-23 22:31:02 +0100irrgit(~irrgit@86.106.90.226)
2024-01-23 22:35:01 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 268 seconds)
2024-01-23 22:42:14 +0100yeahitsme(~bob@user/yeahitsme) (Read error: Connection reset by peer)
2024-01-23 22:42:37 +0100yeahitsme(~bob@2a01:799:15e2:1800:8bf3:5e36:1335:cc51)
2024-01-23 22:45:00 +0100earthy(~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net)
2024-01-23 22:49:01 +0100__monty__(~toonn@user/toonn) (Ping timeout: 264 seconds)
2024-01-23 22:49:03 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
2024-01-23 22:49:35 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:558a:c642:c5e9:5691)
2024-01-23 22:56:21 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-23 23:03:54 +0100__monty__(~toonn@user/toonn)
2024-01-23 23:06:19 +0100lottaquestions(~nick@2607:fa49:503d:b200:7e84:60b6:2c6a:f57e) (Ping timeout: 260 seconds)
2024-01-23 23:17:31 +0100yotta(~cha0s@14.191.144.106)
2024-01-23 23:22:35 +0100 <yotta> Does anybody know the proper way to recover the file descriptor from FD? There is a mkFD function but there is not a reverse function to recover the low level file descriptor.
2024-01-23 23:26:52 +0100 <mauke> which FD?
2024-01-23 23:29:21 +0100 <tomsmeding> yotta: System.Posix.Internals.FD is just CInt, and GHC.IO.FD.FD has an fdFD field
2024-01-23 23:29:45 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-01-23 23:32:35 +0100 <yotta> I'm talking about GHC.IO.FD.FD. I'm aware of fdFD but FD also have the fdIsNonBlocking constructor. The later wraps around an Int not CInt
2024-01-23 23:32:54 +0100 <tomsmeding> yotta: that's how haddock renders a record ;)
2024-01-23 23:33:06 +0100 <tomsmeding> those are two fields of the record; there is just one constructor, called FD
2024-01-23 23:33:21 +0100 <yotta> oh, my mistake
2024-01-23 23:34:30 +0100 <mauke> how is that not a boolean
2024-01-23 23:34:31 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 276 seconds)
2024-01-23 23:34:55 +0100 <Axman6> True, False, NullPointerException
2024-01-23 23:35:09 +0100 <mauke> isNonBlocking fd = fdIsNonBlocking fd /= 0
2024-01-23 23:35:15 +0100 <mauke> ö_ö
2024-01-23 23:35:15 +0100 <Axman6> wait, that's Java's bool
2024-01-23 23:37:09 +0100 <Rembane> NullPointerException is a very long name for _|_
2024-01-23 23:40:54 +0100jargon(~jargon@211.sub-174-205-225.myvzw.com) (Remote host closed the connection)
2024-01-23 23:44:20 +0100thegeekinside(~thegeekin@189.180.85.240) (Ping timeout: 252 seconds)
2024-01-23 23:47:05 +0100thegeekinside(~thegeekin@189.180.85.240)
2024-01-23 23:50:41 +0100michalz(~michalz@185.246.207.203) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-23 23:52:04 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 276 seconds)