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 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-01-23 00:03:01 +0100 | igemnace | (~ian@user/igemnace) |
2024-01-23 00:04:44 +0100 | <ph88> | geekosaur, you got it |
2024-01-23 00:04:49 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 246 seconds) |
2024-01-23 00:05:18 +0100 | Guest15 | (~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 +0100 | L29Ah | (~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 +0100 | d34df00d | (~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 +0100 | acidjnk | (~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 +0100 | athan | (~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 +0100 | iakov | (~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 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2024-01-23 00:40:29 +0100 | Lycurgus | (~georg@li1192-118.members.linode.com) |
2024-01-23 00:40:29 +0100 | Lycurgus | (~georg@li1192-118.members.linode.com) (Changing host) |
2024-01-23 00:40:29 +0100 | Lycurgus | (~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 +0100 | Guest73 | (~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 +0100 | mmhat | (~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 +0100 | Guest73 | (~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 +0100 | xff0x | (~xff0x@ai085147.d.east.v6connect.net) (Ping timeout: 252 seconds) |
2024-01-23 00:51:51 +0100 | iakov | (~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 +0100 | xff0x | (~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 +0100 | iakov | (~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 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-01-23 01:04:24 +0100 | tri | (~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 +0100 | tri | (~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 +0100 | oo_miguel | (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 264 seconds) |
2024-01-23 01:10:58 +0100 | xff0x | (~xff0x@178.255.149.135) (Ping timeout: 276 seconds) |
2024-01-23 01:12:09 +0100 | xff0x | (~xff0x@ai085147.d.east.v6connect.net) |
2024-01-23 01:18:55 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2024-01-23 01:30:07 +0100 | johnw | (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in) |
2024-01-23 01:30:22 +0100 | azimut | (~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 +0100 | peterbecich | (~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 +0100 | rvalue | (~rvalue@user/rvalue) (Quit: ZNC - https://znc.in) |
2024-01-23 01:35:44 +0100 | rvalue | (~rvalue@user/rvalue) |
2024-01-23 01:37:49 +0100 | turlando | (~turlando@user/turlando) (Ping timeout: 255 seconds) |
2024-01-23 01:50:35 +0100 | turlando | (~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 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds) |
2024-01-23 01:52:15 +0100 | Tuplanolla | (~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 +0100 | bdg | (~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 +0100 | bdg | (~bdg@2001:8a0:f533:f100:975:c789:646b:a0ee) (Quit: WeeChat 4.2.0) |
2024-01-23 02:14:18 +0100 | son0p | (~ff@181.32.158.171) |
2024-01-23 02:16:28 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
2024-01-23 02:17:10 +0100 | euleritian | (~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 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-23 02:24:25 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 276 seconds) |
2024-01-23 02:27:33 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2024-01-23 02:27:53 +0100 | turlando | (~turlando@user/turlando) (Ping timeout: 256 seconds) |
2024-01-23 02:28:00 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-01-23 02:29:27 +0100 | johnw | (~johnw@69.62.242.138) |
2024-01-23 02:30:46 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2024-01-23 02:31:13 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2024-01-23 02:32:35 +0100 | turlando | (~turlando@user/turlando) |
2024-01-23 02:33:21 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2024-01-23 02:33:45 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds) |
2024-01-23 02:34:44 +0100 | Lord_of_Life_ | Lord_of_Life |
2024-01-23 02:36:52 +0100 | igemnace | (~ian@user/igemnace) (Quit: WeeChat 4.1.3) |
2024-01-23 02:41:21 +0100 | ystael | (~ystael@user/ystael) (Ping timeout: 256 seconds) |
2024-01-23 02:46:46 +0100 | EvanR | (~EvanR@user/evanr) (Remote host closed the connection) |
2024-01-23 02:47:05 +0100 | EvanR | (~EvanR@user/evanr) |
2024-01-23 02:51:42 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2024-01-23 02:54:21 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-23 02:58:22 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2024-01-23 02:58:57 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2024-01-23 03:13:26 +0100 | xff0x | (~xff0x@ai085147.d.east.v6connect.net) (Ping timeout: 252 seconds) |
2024-01-23 03:30:47 +0100 | ph88 | (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
2024-01-23 03:30:58 +0100 | mima | (~mmh@aftr-62-216-211-136.dynamic.mnet-online.de) (Ping timeout: 246 seconds) |
2024-01-23 03:50:41 +0100 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Read error: Connection reset by peer) |
2024-01-23 03:51:00 +0100 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) |
2024-01-23 04:01:19 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds) |
2024-01-23 04:03:02 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-23 04:03:02 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2024-01-23 04:03:08 +0100 | motherfsck | (~motherfsc@user/motherfsck) |
2024-01-23 04:03:32 +0100 | califax | (~califax@user/califx) |
2024-01-23 04:03:40 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-23 04:03:45 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-23 04:03:52 +0100 | Typedfern | (~Typedfern@220.red-83-37-25.dynamicip.rima-tde.net) (Ping timeout: 246 seconds) |
2024-01-23 04:04:00 +0100 | califax | (~califax@user/califx) |
2024-01-23 04:04:45 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2024-01-23 04:05:19 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-23 04:10:06 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds) |
2024-01-23 04:14:47 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-23 04:16:12 +0100 | myxos | (~myxos@065-028-251-121.inf.spectrum.com) (Quit: myxos) |
2024-01-23 04:16:30 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
2024-01-23 04:17:08 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-23 04:22:04 +0100 | tri | (~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 +0100 | peterbecich | (~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 +0100 | Typedfern | (~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 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-23 04:43:45 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) (Remote host closed the connection) |
2024-01-23 04:44:00 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) |
2024-01-23 04:46:43 +0100 | jargon | (~jargon@211.sub-174-205-225.myvzw.com) (Remote host closed the connection) |
2024-01-23 04:48:04 +0100 | thegeekinside | (~thegeekin@189.180.85.240) (Ping timeout: 276 seconds) |
2024-01-23 04:49:19 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds) |
2024-01-23 04:49:22 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds) |
2024-01-23 04:51:41 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-23 04:54:40 +0100 | td_ | (~td@i53870929.versanet.de) (Ping timeout: 268 seconds) |
2024-01-23 04:55:58 +0100 | td_ | (~td@i53870938.versanet.de) |
2024-01-23 04:56:41 +0100 | euleritian | (~euleritia@dynamic-176-006-188-169.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-23 04:56:58 +0100 | euleritian | (~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 +0100 | pavonia | (~user@user/siracusa) |
2024-01-23 05:11:07 +0100 | Axman6 | (~Axman6@user/axman6) (Ping timeout: 258 seconds) |
2024-01-23 05:18:09 +0100 | aforemny_ | (~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 +0100 | aforemny | (~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 +0100 | ChaiTRex | (~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 +0100 | ChaiTRex | (~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 +0100 | albet70 | (~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 +0100 | euleritian | (~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 +0100 | euleritian | (~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 +0100 | Axman6 | (~Axman6@user/axman6) |
2024-01-23 05:43:39 +0100 | albet70 | (~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 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Leaving...) |
2024-01-23 05:51:02 +0100 | tri | (~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 +0100 | michalz | (~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 +0100 | tt1231 | (~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 +0100 | earthy | (~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 +0100 | thegeekinside | (~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 +0100 | mhatta | (~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 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-01-23 06:26:58 +0100 | mhatta | (~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 +0100 | igemnace | (~ian@user/igemnace) |
2024-01-23 06:30:43 +0100 | <haskellbridge> | 05<irregularsphere> 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 +0100 | michalz | (~michalz@185.246.207.200) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-01-23 06:36:22 +0100 | michalz | (~michalz@185.246.207.203) |
2024-01-23 06:46:54 +0100 | trev | (~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 +0100 | telser | (~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 +0100 | euleritian | (~euleritia@77.22.252.56) (Ping timeout: 256 seconds) |
2024-01-23 07:17:51 +0100 | euleritian | (~euleritia@dynamic-176-002-133-146.176.2.pool.telefonica.de) |
2024-01-23 07:22:41 +0100 | acidjnk | (~acidjnk@p200300d6e737e7577de83db70375434d.dip0.t-ipconnect.de) |
2024-01-23 07:23:11 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2024-01-23 07:28:37 +0100 | Square | (~Square4@user/square) (Ping timeout: 276 seconds) |
2024-01-23 07:30:50 +0100 | Square | (~Square4@user/square) |
2024-01-23 07:35:10 +0100 | earthy | (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) |
2024-01-23 07:35:54 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
2024-01-23 07:44:16 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-23 07:46:41 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
2024-01-23 07:48:50 +0100 | harveypwca | (~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b) |
2024-01-23 07:50:13 +0100 | Square | (~Square4@user/square) (Ping timeout: 264 seconds) |
2024-01-23 07:53:55 +0100 | thegeekinside | (~thegeekin@189.180.85.240) (Remote host closed the connection) |
2024-01-23 07:55:55 +0100 | CrunchyFlakes | (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
2024-01-23 08:04:37 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2024-01-23 08:05:01 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-01-23 08:05:32 +0100 | CrunchyFlakes | (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
2024-01-23 08:06:11 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2024-01-23 08:07:04 +0100 | CrunchyFlakes | (~CrunchyFl@146.52.130.128) |
2024-01-23 08:07:46 +0100 | shriekingnoise | (~shrieking@186.137.175.87) (Ping timeout: 264 seconds) |
2024-01-23 08:09:32 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-01-23 08:13:14 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 260 seconds) |
2024-01-23 08:20:05 +0100 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz) |
2024-01-23 08:22:31 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds) |
2024-01-23 08:26:34 +0100 | rosco | (~rosco@175.136.156.77) |
2024-01-23 08:30:27 +0100 | average | (uid473595@user/average) (Quit: Connection closed for inactivity) |
2024-01-23 08:30:37 +0100 | cross | (~cross@spitfire.i.gajendra.net) (Quit: Lost terminal) |
2024-01-23 08:31:58 +0100 | CiaoSen | (~Jura@2a05:5800:2ba:a600:ca4b:d6ff:fec1:99da) |
2024-01-23 08:33:33 +0100 | chele | (~chele@user/chele) |
2024-01-23 08:35:35 +0100 | euleritian | (~euleritia@dynamic-176-002-133-146.176.2.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-23 08:35:54 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-23 08:36:06 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2024-01-23 08:38:11 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-01-23 08:38:13 +0100 | earthy | (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Ping timeout: 264 seconds) |
2024-01-23 08:41:43 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2024-01-23 08:42:31 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-01-23 08:43:12 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-23 08:45:28 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving) |
2024-01-23 08:49:41 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 260 seconds) |
2024-01-23 08:49:42 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-01-23 08:50:45 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-23 08:56:34 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2024-01-23 08:57:05 +0100 | mima | (~mmh@aftr-62-216-211-79.dynamic.mnet-online.de) |
2024-01-23 09:00:17 +0100 | oo_miguel | (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
2024-01-23 09:02:01 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2024-01-23 09:03:16 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2024-01-23 09:04:48 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) (Remote host closed the connection) |
2024-01-23 09:05:24 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2024-01-23 09:06:39 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2024-01-23 09:06:56 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) |
2024-01-23 09:10:02 +0100 | fendor | (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) |
2024-01-23 09:12:41 +0100 | danse-nr3 | (~danse@151.47.88.94) |
2024-01-23 09:13:24 +0100 | gmg | (~user@user/gehmehgeh) |
2024-01-23 09:14:37 +0100 | danse-nr3 | (~danse@151.47.88.94) (Remote host closed the connection) |
2024-01-23 09:15:00 +0100 | danse-nr3 | (~danse@151.47.88.94) |
2024-01-23 09:25:47 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds) |
2024-01-23 09:26:14 +0100 | m1dnight | (~christoph@78-22-2-15.access.telenet.be) (Quit: WeeChat 4.1.1) |
2024-01-23 09:26:20 +0100 | harveypwca | (~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b) (Quit: Leaving) |
2024-01-23 09:27:22 +0100 | fendor | (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection) |
2024-01-23 09:27:35 +0100 | m1dnight | (~christoph@78-22-2-15.access.telenet.be) |
2024-01-23 09:29:25 +0100 | fendor | (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) |
2024-01-23 09:32:08 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) (Remote host closed the connection) |
2024-01-23 09:36:24 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2024-01-23 09:50:46 +0100 | justsomeguy | (~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 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-01-23 10:04:52 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) |
2024-01-23 10:05:46 +0100 | Flow | (~none@gentoo/developer/flow) (Ping timeout: 245 seconds) |
2024-01-23 10:07:12 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-01-23 10:07:43 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
2024-01-23 10:09:52 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-01-23 10:12:40 +0100 | Flow | (~none@gentoo/developer/flow) |
2024-01-23 10:16:26 +0100 | Luj | (~Luj@2a01:e0a:5f9:9681:9efa:99eb:317c:5cbb) (Quit: Ping timeout (120 seconds)) |
2024-01-23 10:16:46 +0100 | Luj | (~Luj@2a01:e0a:5f9:9681:d777:c1f:db87:45b8) |
2024-01-23 10:43:36 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2024-01-23 10:46:16 +0100 | statusbot3 | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection) |
2024-01-23 10:46:25 +0100 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
2024-01-23 10:52:08 +0100 | danse-nr3 | (~danse@151.47.88.94) (Ping timeout: 256 seconds) |
2024-01-23 10:53:53 +0100 | ft | (~ft@p508dbda4.dip0.t-ipconnect.de) (Quit: leaving) |
2024-01-23 10:56:54 +0100 | mmhat | (~mmh@p200300f1c724f91bee086bfffe095315.dip0.t-ipconnect.de) |
2024-01-23 10:57:37 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
2024-01-23 10:58:46 +0100 | cfricke | (~cfricke@user/cfricke) |
2024-01-23 10:58:47 +0100 | danse-nr3 | (~danse@151.47.88.94) |
2024-01-23 11:00:10 +0100 | notzmv | (~zmv@user/notzmv) |
2024-01-23 11:02:23 +0100 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 264 seconds) |
2024-01-23 11:05:31 +0100 | ph88 | (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) |
2024-01-23 11:06:15 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds) |
2024-01-23 11:19:09 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2024-01-23 11:22:59 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-01-23 11:23:41 +0100 | lortabac | (~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 +0100 | earthy | (~arthurvl@77-174-49-144.fixed.kpn.net) |
2024-01-23 11:54:24 +0100 | ph88 | (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-01-23 11:59:11 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-01-23 12:10:32 +0100 | danse-nr3 | (~danse@151.47.88.94) (Read error: Connection reset by peer) |
2024-01-23 12:10:50 +0100 | danse-nr3 | (~danse@rm-19-13-46.service.infuturo.it) |
2024-01-23 12:11:49 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds) |
2024-01-23 12:14:01 +0100 | xff0x | (~xff0x@ai085147.d.east.v6connect.net) |
2024-01-23 12:17:47 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 256 seconds) |
2024-01-23 12:19:01 +0100 | rosco | (~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 +0100 | CiaoSen | (~Jura@2a05:5800:2ba:a600:ca4b:d6ff:fec1:99da) (Ping timeout: 268 seconds) |
2024-01-23 12:30:55 +0100 | califax | (~califax@user/califx) (Ping timeout: 240 seconds) |
2024-01-23 12:31:36 +0100 | califax | (~califax@user/califx) |
2024-01-23 12:37:01 +0100 | glguy | (g@libera/staff/glguy) (Read error: Connection reset by peer) |
2024-01-23 12:37:16 +0100 | glguy | (g@libera/staff/glguy) |
2024-01-23 12:37:18 +0100 | cyphase | (~cyphase@user/cyphase) |
2024-01-23 12:37:58 +0100 | g | (g@libera/staff/glguy) (Read error: Connection reset by peer) |
2024-01-23 12:45:42 +0100 | g | (glguy@libera/staff/glguy) |
2024-01-23 12:49:01 +0100 | waleee | (~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 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
2024-01-23 12:55:06 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-01-23 12:59:13 +0100 | rosco | (~rosco@175.136.156.77) |
2024-01-23 13:02:03 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-01-23 13:05:47 +0100 | myxos | (~myxos@065-028-251-121.inf.spectrum.com) |
2024-01-23 13:07:31 +0100 | danse-nr3 | (~danse@rm-19-13-46.service.infuturo.it) (Ping timeout: 256 seconds) |
2024-01-23 13:08:50 +0100 | phma_ | (~phma@host-67-44-208-39.hnremote.net) |
2024-01-23 13:09:57 +0100 | phma | (phma@2001:5b0:211f:a328:df89:a9c1:b8f3:9c33) (Read error: Connection reset by peer) |
2024-01-23 13:30:14 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-23 13:31:37 +0100 | califax | (~califax@user/califx) |
2024-01-23 13:39:25 +0100 | danse-nr3 | (~danse@rm-19-51-222.service.infuturo.it) |
2024-01-23 13:40:22 +0100 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 260 seconds) |
2024-01-23 13:45:09 +0100 | cyphase | (~cyphase@user/cyphase) |
2024-01-23 13:57:11 +0100 | son0p | (~ff@181.32.158.171) (Quit: Bye) |
2024-01-23 14:10:27 +0100 | billchenchina | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) |
2024-01-23 14:16:13 +0100 | paltech | (~paltech@2001:6b0:1:1041:d0f3:cc40:ae9:da17) |
2024-01-23 14:16:26 +0100 | paltech | (~paltech@2001:6b0:1:1041:d0f3:cc40:ae9:da17) (Client Quit) |
2024-01-23 14:16:47 +0100 | paltech | (~paltech@2001:6b0:1:1041:d0f3:cc40:ae9:da17) |
2024-01-23 14:17:07 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-23 14:17:25 +0100 | califax | (~califax@user/califx) |
2024-01-23 14:30:23 +0100 | <ski> | irregularsphere : skip the "some don't" part |
2024-01-23 14:54:12 +0100 | shriekingnoise | (~shrieking@186.137.175.87) |
2024-01-23 14:55:41 +0100 | billchenchina | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection) |
2024-01-23 15:01:48 +0100 | paltech | (~paltech@2001:6b0:1:1041:d0f3:cc40:ae9:da17) (Ping timeout: 250 seconds) |
2024-01-23 15:07:50 +0100 | causal | (~eric@50.35.85.7) (Quit: WeeChat 4.1.1) |
2024-01-23 15:12:49 +0100 | cheater_ | (~Username@user/cheater) |
2024-01-23 15:16:33 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 260 seconds) |
2024-01-23 15:16:34 +0100 | cheater_ | cheater |
2024-01-23 15:21:49 +0100 | kmein | (~weechat@user/kmein) (Ping timeout: 256 seconds) |
2024-01-23 15:23:10 +0100 | kmein | (~weechat@user/kmein) |
2024-01-23 15:23:13 +0100 | <haskellbridge> | 05<irregularsphere> ah right |
2024-01-23 15:25:01 +0100 | thegeekinside | (~thegeekin@189.180.85.240) |
2024-01-23 15:25:52 +0100 | <haskellbridge> | 05<irregularsphere> though does an existential allow for no types to be valid |
2024-01-23 15:26:27 +0100 | <haskellbridge> | 05<irregularsphere> 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<irregularsphere> 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 +0100 | trev | (~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 +0100 | mima | (~mmh@aftr-62-216-211-79.dynamic.mnet-online.de) (Ping timeout: 252 seconds) |
2024-01-23 15:33:54 +0100 | trev | (~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 +0100 | ystael | (~ystael@user/ystael) |
2024-01-23 15:40:59 +0100 | igemnace | (~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 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) |
2024-01-23 15:45:40 +0100 | average | (uid473595@user/average) |
2024-01-23 15:46:45 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
2024-01-23 15:47:42 +0100 | euleritian | (~euleritia@dynamic-176-006-197-230.176.6.pool.telefonica.de) |
2024-01-23 15:48:53 +0100 | tri | (~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 +0100 | mmhat | (~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 +0100 | mmhat | (~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 +0100 | igemnace | (~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 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1) |
2024-01-23 16:03:21 +0100 | ncf | . 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<irregularsphere> ...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<irregularsphere> 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 +0100 | tomsmeding | has 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 +0100 | m1dnight | (~christoph@78-22-2-15.access.telenet.be) (Quit: WeeChat 4.1.1) |
2024-01-23 16:15:49 +0100 | m1dnight | (~christoph@78-22-2-15.access.telenet.be) |
2024-01-23 16:18:03 +0100 | ddellacosta | (~ddellacos@ool-44c73d16.dyn.optonline.net) (Ping timeout: 256 seconds) |
2024-01-23 16:19:11 +0100 | euleritian | (~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 +0100 | m1dnight | (~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 +0100 | m1dnight | (~christoph@78-22-2-15.access.telenet.be) |
2024-01-23 16:23:05 +0100 | euleritian | (~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<irregularsphere> reading this discussion felt like zoning out |
2024-01-23 16:26:46 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) |
2024-01-23 16:26:47 +0100 | son0p | (~ff@181.32.158.171) |
2024-01-23 16:26:54 +0100 | <haskellbridge> | 05<irregularsphere> _...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 +0100 | akegalj | (~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 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 276 seconds) |
2024-01-23 16:40:12 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-01-23 16:42:17 +0100 | danse-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 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-01-23 16:48:02 +0100 | mima | (~mmh@dhcp-138-246-3-41.dynamic.eduroam.mwn.de) |
2024-01-23 16:52:44 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-01-23 16:55:22 +0100 | <mauke> | that rubicon has been crossed |
2024-01-23 16:56:08 +0100 | danse-nr3 | (~danse@rm-19-9-134.service.infuturo.it) |
2024-01-23 16:59:32 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) |
2024-01-23 17:00:57 +0100 | statusbot4 | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
2024-01-23 17:01:12 +0100 | Pixi` | (~Pixi@user/pixi) |
2024-01-23 17:01:16 +0100 | akegalj | (~akegalj@cpe-188-129-77-238.dynamic.amis.hr) (Quit: leaving) |
2024-01-23 17:01:20 +0100 | phma | (phma@2001:5b0:212a:ca28:8adb:c496:397:1cd2) |
2024-01-23 17:01:51 +0100 | Feuermagier_ | (~Feuermagi@user/feuermagier) |
2024-01-23 17:01:51 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Killed (platinum.libera.chat (Nickname regained by services))) |
2024-01-23 17:01:51 +0100 | Feuermagier_ | Feuermagier |
2024-01-23 17:01:56 +0100 | hamster | (~ham@user/ham) |
2024-01-23 17:02:11 +0100 | euleritian | (~euleritia@dynamic-176-006-200-141.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-23 17:02:29 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-23 17:02:40 +0100 | Katarushisu12 | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
2024-01-23 17:02:45 +0100 | kimiamania4648 | (~65804703@user/kimiamania) |
2024-01-23 17:02:53 +0100 | qhong_ | (~qhong@DN160vrd000d6kpg009l6c0000fj.stanford.edu) |
2024-01-23 17:03:01 +0100 | pounce_ | (~pounce@user/cute/pounce) |
2024-01-23 17:03:11 +0100 | siers69 | (~ij@user/ij) |
2024-01-23 17:03:21 +0100 | mniip_ | (mniip@libera/staff/mniip) |
2024-01-23 17:03:33 +0100 | p3n_ | (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) |
2024-01-23 17:03:35 +0100 | stefan-_- | (~cri@42dots.de) |
2024-01-23 17:03:37 +0100 | cptaffe` | (~cptaffe@user/cptaffe) |
2024-01-23 17:03:38 +0100 | nitrix_ | (~nitrix@user/nitrix) |
2024-01-23 17:03:40 +0100 | CiaoSen | (~Jura@2a05:5800:2ba:a600:ca4b:d6ff:fec1:99da) |
2024-01-23 17:03:42 +0100 | swistak- | (~swistak@185.21.216.141) |
2024-01-23 17:03:50 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 260 seconds) |
2024-01-23 17:03:57 +0100 | krei-se | (~krei-se@p508747fd.dip0.t-ipconnect.de) |
2024-01-23 17:03:57 +0100 | mhatta_ | (~mhatta@www21123ui.sakura.ne.jp) |
2024-01-23 17:04:38 +0100 | YoungFrawg | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) |
2024-01-23 17:04:49 +0100 | phma | (phma@2001:5b0:212a:ca28:8adb:c496:397:1cd2) (Read error: Connection reset by peer) |
2024-01-23 17:05:42 +0100 | phma | (phma@2001:5b0:210b:d438:d098:3d2c:a016:35e3) |
2024-01-23 17:05:53 +0100 | takuan_dozo | (~takuan@178-116-218-225.access.telenet.be) |
2024-01-23 17:06:11 +0100 | ski_ | (~ski@remote11.chalmers.se) |
2024-01-23 17:06:29 +0100 | RemiYuko | (~licht@user/akechishiro) |
2024-01-23 17:06:33 +0100 | qqq_ | (~qqq@92.43.167.61) |
2024-01-23 17:07:46 +0100 | earthy | (~arthurvl@77-174-49-144.fixed.kpn.net) (Ping timeout: 264 seconds) |
2024-01-23 17:08:35 +0100 | mhatta | (~mhatta@www21123ui.sakura.ne.jp) (Ping timeout: 264 seconds) |
2024-01-23 17:08:35 +0100 | stefan-_ | (~cri@42dots.de) (Ping timeout: 264 seconds) |
2024-01-23 17:08:35 +0100 | p3n | (~p3n@217.198.124.246) (Ping timeout: 264 seconds) |
2024-01-23 17:08:35 +0100 | swistak | (~swistak@185.21.216.141) (Ping timeout: 264 seconds) |
2024-01-23 17:08:35 +0100 | qhong | (~qhong@rescomp-21-400677.stanford.edu) (Ping timeout: 264 seconds) |
2024-01-23 17:08:35 +0100 | cptaffe | (~cptaffe@user/cptaffe) (Ping timeout: 264 seconds) |
2024-01-23 17:08:35 +0100 | vulpine | (xfnw@tilde.team) (Ping timeout: 264 seconds) |
2024-01-23 17:08:35 +0100 | pounce | (~pounce@user/cute/pounce) (Ping timeout: 264 seconds) |
2024-01-23 17:08:35 +0100 | phma_ | (~phma@host-67-44-208-39.hnremote.net) (Ping timeout: 264 seconds) |
2024-01-23 17:08:36 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 264 seconds) |
2024-01-23 17:08:36 +0100 | qqq | (~qqq@92.43.167.61) (Ping timeout: 264 seconds) |
2024-01-23 17:08:36 +0100 | AkechiShiro | (~licht@user/akechishiro) (Ping timeout: 264 seconds) |
2024-01-23 17:08:36 +0100 | ham | (~ham@user/ham) (Ping timeout: 264 seconds) |
2024-01-23 17:08:36 +0100 | kimiamania464 | (~65804703@user/kimiamania) (Ping timeout: 264 seconds) |
2024-01-23 17:08:36 +0100 | Vajb | (~Vajb@n7kymlrhl8zspe1o45k-1.v6.elisa-mobile.fi) (Ping timeout: 264 seconds) |
2024-01-23 17:08:36 +0100 | krei-se- | (~krei-se@p508747fd.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2024-01-23 17:08:36 +0100 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Ping timeout: 264 seconds) |
2024-01-23 17:08:37 +0100 | siers | (~ij@user/ij) (Ping timeout: 264 seconds) |
2024-01-23 17:08:37 +0100 | nitrix | (~nitrix@user/nitrix) (Ping timeout: 264 seconds) |
2024-01-23 17:08:37 +0100 | Pixi | (~Pixi@user/pixi) (Ping timeout: 264 seconds) |
2024-01-23 17:08:37 +0100 | ski | (~ski@remote11.chalmers.se) (Ping timeout: 264 seconds) |
2024-01-23 17:08:37 +0100 | mmhat | (~mmh@p200300f1c724f9e1ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2024-01-23 17:08:37 +0100 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Ping timeout: 264 seconds) |
2024-01-23 17:08:37 +0100 | Katarushisu1 | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Ping timeout: 264 seconds) |
2024-01-23 17:08:38 +0100 | cptaffe` | cptaffe |
2024-01-23 17:08:38 +0100 | Katarushisu12 | Katarushisu1 |
2024-01-23 17:08:39 +0100 | nitrix_ | nitrix |
2024-01-23 17:08:40 +0100 | kimiamania4648 | kimiamania464 |
2024-01-23 17:08:41 +0100 | pounce_ | pounce |
2024-01-23 17:08:41 +0100 | YoungFrawg | YoungFrog |
2024-01-23 17:08:53 +0100 | mniip | (mniip@libera/staff/mniip) (Read error: Connection reset by peer) |
2024-01-23 17:13:01 +0100 | synapse | (~synapse@176.254.244.83) (Ping timeout: 256 seconds) |
2024-01-23 17:14:50 +0100 | Square | (~Square@user/square) |
2024-01-23 17:16:55 +0100 | synapse | (~synapse@176.254.244.83) |
2024-01-23 17:17:55 +0100 | vulpine | (xfnw@tilde.team) |
2024-01-23 17:18:15 +0100 | mmhat | (~mmh@p200300f1c724f9e1ee086bfffe095315.dip0.t-ipconnect.de) |
2024-01-23 17:20:27 +0100 | mniip_ | mniip |
2024-01-23 17:26:22 +0100 | ski_ | ski |
2024-01-23 17:37:18 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2024-01-23 17:47:02 +0100 | kmein | (~weechat@user/kmein) (Quit: ciao kakao) |
2024-01-23 17:47:05 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) (Remote host closed the connection) |
2024-01-23 17:47:23 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:558a:c642:c5e9:5691) |
2024-01-23 17:51:07 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2024-01-23 17:52:53 +0100 | CiaoSen | (~Jura@2a05:5800:2ba:a600:ca4b:d6ff:fec1:99da) (Ping timeout: 240 seconds) |
2024-01-23 17:55:09 +0100 | kmein | (~weechat@user/kmein) |
2024-01-23 17:57:16 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) |
2024-01-23 17:59:41 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
2024-01-23 18:00:36 +0100 | euleritian | (~euleritia@dynamic-046-114-163-142.46.114.pool.telefonica.de) |
2024-01-23 18:01:47 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 264 seconds) |
2024-01-23 18:02:38 +0100 | danse-nr3 | (~danse@rm-19-9-134.service.infuturo.it) (Ping timeout: 260 seconds) |
2024-01-23 18:03:27 +0100 | potato44 | (uid421314@id-421314.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-01-23 18:03:30 +0100 | euleritian | (~euleritia@dynamic-046-114-163-142.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-23 18:03:49 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-23 18:11:32 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 4.1.2) |
2024-01-23 18:11:59 +0100 | mmhat | (~mmh@p200300f1c724f9e1ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.0) |
2024-01-23 18:17:09 +0100 | fendor | (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Ping timeout: 260 seconds) |
2024-01-23 18:18:40 +0100 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) |
2024-01-23 18:24:28 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2024-01-23 18:26:58 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
2024-01-23 18:31:38 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2024-01-23 18:36:40 +0100 | troydm | (~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 +0100 | lottaquestions | (~nick@2607:fa49:503d:b200:7e84:60b6:2c6a:f57e) |
2024-01-23 18:37:00 +0100 | troydm | (~troydm@user/troydm) |
2024-01-23 18:40:12 +0100 | mulk | (~mulk@p5b2dc93f.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2024-01-23 18:40:57 +0100 | steew | (~steew@user/steew) (Remote host closed the connection) |
2024-01-23 18:43:24 +0100 | rosco | (~rosco@175.136.156.77) (Remote host closed the connection) |
2024-01-23 18:45:12 +0100 | mulk | (~mulk@p5b2dc93f.dip0.t-ipconnect.de) |
2024-01-23 18:47:42 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
2024-01-23 18:48:15 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-23 19:06:55 +0100 | __monty_1 | (~toonn@user/toonn) |
2024-01-23 19:08:35 +0100 | tromp | (~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 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2024-01-23 19:16:07 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds) |
2024-01-23 19:18:08 +0100 | Natch | (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Ping timeout: 252 seconds) |
2024-01-23 19:18:22 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-23 19:20:06 +0100 | Natch | (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
2024-01-23 19:22:38 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Read error: Connection reset by peer) |
2024-01-23 19:23:05 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-23 19:25:12 +0100 | hololeap | (~quassel@user/hololeap) (Quit: Bye) |
2024-01-23 19:26:17 +0100 | hololeap | (~quassel@user/hololeap) |
2024-01-23 19:30:38 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2024-01-23 19:32:49 +0100 | Square | (~Square@user/square) (Ping timeout: 264 seconds) |
2024-01-23 19:42:31 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds) |
2024-01-23 19:44:52 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-23 19:47:25 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2024-01-23 19:47:53 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-23 19:52:37 +0100 | sroso | (~sroso@user/SrOso) |
2024-01-23 19:54:28 +0100 | Lycurgus | (~georg@user/Lycurgus) (Quit: leaving) |
2024-01-23 19:57:15 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-01-23 19:57:43 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-01-23 19:58:27 +0100 | trev | (~trev@user/trev) (Quit: trev) |
2024-01-23 20:00:57 +0100 | potato44 | (uid421314@id-421314.lymington.irccloud.com) |
2024-01-23 20:10:46 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-01-23 20:13:22 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) |
2024-01-23 20:14:12 +0100 | <haskellbridge> | 15<Jade> why does the source of `Control.Category` a `RULE` `(p . q) . r = p . (q . r)`? |
2024-01-23 20:14:25 +0100 | <haskellbridge> | 15<Jade> How does this help optimization specifically? |
2024-01-23 20:15:49 +0100 | Square | (~Square@user/square) |
2024-01-23 20:17:51 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 260 seconds) |
2024-01-23 20:25:01 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Ping timeout: 264 seconds) |
2024-01-23 20:26:43 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
2024-01-23 20:28:23 +0100 | mima | (~mmh@dhcp-138-246-3-41.dynamic.eduroam.mwn.de) (Ping timeout: 256 seconds) |
2024-01-23 20:30:06 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) |
2024-01-23 20:32:29 +0100 | fendor | (~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 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 255 seconds) |
2024-01-23 20:38:54 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2024-01-23 20:48:39 +0100 | mikess | (~mikess@user/mikess) |
2024-01-23 20:51:40 +0100 | jargon | (~jargon@211.sub-174-205-225.myvzw.com) |
2024-01-23 20:55:30 +0100 | pastly | (~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection) |
2024-01-23 20:56:03 +0100 | pastly | (~pastly@gateway/tor-sasl/pastly) |
2024-01-23 21:00:02 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-01-23 21:00:12 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) |
2024-01-23 21:01:31 +0100 | Zmzi | (rscastilho@user/Zmzi) |
2024-01-23 21:03:15 +0100 | Zmzi | (rscastilho@user/Zmzi) (Remote host closed the connection) |
2024-01-23 21:05:01 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 276 seconds) |
2024-01-23 21:14:26 +0100 | jinsun | (~jinsun@user/jinsun) |
2024-01-23 21:17:13 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-01-23 21:24:26 +0100 | jinsun | (~jinsun@user/jinsun) () |
2024-01-23 21:29:17 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) |
2024-01-23 21:30:47 +0100 | mima | (~mmh@aftr-62-216-211-120.dynamic.mnet-online.de) |
2024-01-23 21:34:10 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 264 seconds) |
2024-01-23 21:39:50 +0100 | phma | (phma@2001:5b0:210b:d438:d098:3d2c:a016:35e3) (Read error: Connection reset by peer) |
2024-01-23 21:40:07 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-01-23 21:41:16 +0100 | phma | (phma@2001:5b0:211f:c9b8:8d72:9b4c:9f04:5951) |
2024-01-23 21:43:22 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2024-01-23 21:48:10 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-01-23 21:49:50 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-01-23 21:59:19 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-01-23 22:00:21 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) |
2024-01-23 22:03:57 +0100 | dsrt^ | (~cd@c-98-242-74-66.hsd1.ga.comcast.net) |
2024-01-23 22:05:28 +0100 | tri | (~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 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:558a:c642:c5e9:5691) (Remote host closed the connection) |
2024-01-23 22:14:03 +0100 | igemnace | (~ian@user/igemnace) (Ping timeout: 268 seconds) |
2024-01-23 22:17:49 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds) |
2024-01-23 22:20:43 +0100 | potato44 | (uid421314@id-421314.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-01-23 22:26:28 +0100 | fendor | (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection) |
2024-01-23 22:26:58 +0100 | <haskellbridge> | 15<Jade> ohh okay, thank you |
2024-01-23 22:30:28 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) |
2024-01-23 22:31:02 +0100 | irrgit | (~irrgit@86.106.90.226) |
2024-01-23 22:35:01 +0100 | tri | (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 268 seconds) |
2024-01-23 22:42:14 +0100 | yeahitsme | (~bob@user/yeahitsme) (Read error: Connection reset by peer) |
2024-01-23 22:42:37 +0100 | yeahitsme | (~bob@2a01:799:15e2:1800:8bf3:5e36:1335:cc51) |
2024-01-23 22:45:00 +0100 | earthy | (~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 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2024-01-23 22:49:35 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:558a:c642:c5e9:5691) |
2024-01-23 22:56:21 +0100 | tromp | (~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 +0100 | lottaquestions | (~nick@2607:fa49:503d:b200:7e84:60b6:2c6a:f57e) (Ping timeout: 260 seconds) |
2024-01-23 23:17:31 +0100 | yotta | (~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 +0100 | tri | (~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 +0100 | tri | (~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 +0100 | jargon | (~jargon@211.sub-174-205-225.myvzw.com) (Remote host closed the connection) |
2024-01-23 23:44:20 +0100 | thegeekinside | (~thegeekin@189.180.85.240) (Ping timeout: 252 seconds) |
2024-01-23 23:47:05 +0100 | thegeekinside | (~thegeekin@189.180.85.240) |
2024-01-23 23:50:41 +0100 | michalz | (~michalz@185.246.207.203) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-01-23 23:52:04 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 276 seconds) |