Logs on 2024-01-23 (liberachat/#haskell)
| 00:01:40 | <ph88> | is there a way to search for functions which calls another function ? |
| 00:01:40 | <jackdk> | EvanR: DSum certainly, but DMap's going to need its flavour of Ord (GCompare) to put things into the map |
| 00:02:17 | <jackdk> | I'm not aware of any call-graph tools, but grep is a crude hammer |
| 00:02:27 | <EvanR> | er, |
| 00:02:30 | <d34df00d> | ph88: haskell-language-server has support for finding references, so if your editor has LSP support, you're golden. |
| 00:02:45 | <d34df00d> | (works great in my (neo)vim) |
| 00:03:10 | <EvanR> | Ord for the keys makes sense |
| 00:03:18 | <EvanR> | I don't see why GCompare is involved |
| 00:03:23 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 00:04:24 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 00:05:34 | × | _________ quits (~nobody@user/noodly) (Ping timeout: 268 seconds) |
| 00:05:37 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 00:07:10 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
| 00:07:14 | → | _________ joins (~nobody@user/noodly) |
| 00:10:47 | × | oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 264 seconds) |
| 00:10:58 | × | xff0x quits (~xff0x@178.255.149.135) (Ping timeout: 276 seconds) |
| 00:12:09 | → | xff0x joins (~xff0x@ai085147.d.east.v6connect.net) |
| 00:18:55 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 00:30:07 | × | johnw quits (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in) |
| 00:30:22 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 00:30:30 | <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 |
| 00:30:33 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 00:33:23 | <dmj`> | mauke: to allow polymorphic recursion to be monomorphized, for a subset of polymorphic recursive functions |
| 00:35:28 | × | rvalue quits (~rvalue@user/rvalue) (Quit: ZNC - https://znc.in) |
| 00:35:44 | → | rvalue joins (~rvalue@user/rvalue) |
| 00:37:49 | × | turlando quits (~turlando@user/turlando) (Ping timeout: 255 seconds) |
| 00:50:35 | → | turlando joins (~turlando@user/turlando) |
| 00:51:22 | <ph88> | how can i step into functions defined in other modules ? |
| 00:51:30 | <ph88> | with a debugger |
| 00:51:33 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds) |
| 00:52:15 | × | Tuplanolla quits (~Tuplanoll@91-159-68-95.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:56:28 | <geekosaur> | you have to load them as source, which will be difficult if they're in other libraries/packages |
| 00:57:54 | <geekosaur> | in general you can :add a module prefixed with a * to load it as source |
| 01:04:43 | → | bdg joins (~bdg@2001:8a0:f533:f100:975:c789:646b:a0ee) |
| 01:10:13 | <dmj`> | mauke: "test.rs:27:0: 34:1 error: overly deep expansion of inlined function" what rust does |
| 01:12:06 | × | bdg quits (~bdg@2001:8a0:f533:f100:975:c789:646b:a0ee) (Quit: WeeChat 4.2.0) |
| 01:14:18 | → | son0p joins (~ff@181.32.158.171) |
| 01:16:28 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 01:17:10 | → | euleritian joins (~euleritia@dynamic-176-006-188-169.176.6.pool.telefonica.de) |
| 01:18:58 | → | _xor joins (~xor@ip-208-102-243-175.dynamic.fuse.net) |
| 01:19:27 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 01:24:25 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 276 seconds) |
| 01:27:33 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 01:27:53 | × | turlando quits (~turlando@user/turlando) (Ping timeout: 256 seconds) |
| 01:28:00 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 01:29:27 | → | johnw joins (~johnw@69.62.242.138) |
| 01:30:46 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 01:31:13 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 01:32:35 | → | turlando joins (~turlando@user/turlando) |
| 01:33:21 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 01:33:45 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds) |
| 01:34:44 | Lord_of_Life_ | is now known as Lord_of_Life |
| 01:36:52 | × | igemnace quits (~ian@user/igemnace) (Quit: WeeChat 4.1.3) |
| 01:41:21 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 256 seconds) |
| 01:46:46 | × | EvanR quits (~EvanR@user/evanr) (Remote host closed the connection) |
| 01:47:05 | → | EvanR joins (~EvanR@user/evanr) |
| 01:51:42 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 01:54:21 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 01:58:22 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 01:58:57 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 02:13:26 | × | xff0x quits (~xff0x@ai085147.d.east.v6connect.net) (Ping timeout: 252 seconds) |
| 02:30:47 | × | ph88 quits (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 02:30:58 | × | mima quits (~mmh@aftr-62-216-211-136.dynamic.mnet-online.de) (Ping timeout: 246 seconds) |
| 02:50:41 | × | tzh quits (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Read error: Connection reset by peer) |
| 02:51:00 | → | tzh joins (~tzh@c-71-193-181-0.hsd1.or.comcast.net) |
| 03:01:19 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 03:03:02 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 03:03:02 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 03:03:08 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 03:03:32 | → | califax joins (~califax@user/califx) |
| 03:03:40 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 03:03:45 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 03:03:52 | × | Typedfern quits (~Typedfern@220.red-83-37-25.dynamicip.rima-tde.net) (Ping timeout: 246 seconds) |
| 03:04:00 | → | califax joins (~califax@user/califx) |
| 03:04:45 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 03:05:19 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 03:10:06 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds) |
| 03:14:47 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 03:16:12 | × | myxos quits (~myxos@065-028-251-121.inf.spectrum.com) (Quit: myxos) |
| 03:16:30 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 03:17:08 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 03:22:04 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 276 seconds) |
| 03:22:10 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 03:27:31 | <dmj`> | c_wraith: no existentials is fine with me :) |
| 03:27:49 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 03:29:44 | <dmj`> | c_wraith: wouldn't that also mean disabling recursive calls within typeclass instances though |
| 03:30:02 | <c_wraith> | No |
| 03:30:34 | <c_wraith> | polymorphic recursion is something else. |
| 03:31:16 | <c_wraith> | polymorphic recursion is when the thing you're writing *isn't* part of the class |
| 03:31:32 | <c_wraith> | So it's the same value even after the renaming pass |
| 03:32:38 | → | Typedfern joins (~Typedfern@82.red-83-37-31.dynamicip.rima-tde.net) |
| 03:33:52 | <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. |
| 03:34:02 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 03:43:45 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) (Remote host closed the connection) |
| 03:44:00 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) |
| 03:46:43 | × | jargon quits (~jargon@211.sub-174-205-225.myvzw.com) (Remote host closed the connection) |
| 03:48:04 | × | thegeekinside quits (~thegeekin@189.180.85.240) (Ping timeout: 276 seconds) |
| 03:49:19 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds) |
| 03:49:22 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds) |
| 03:51:41 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 03:54:40 | × | td_ quits (~td@i53870929.versanet.de) (Ping timeout: 268 seconds) |
| 03:55:58 | → | td_ joins (~td@i53870938.versanet.de) |
| 03:56:41 | × | euleritian quits (~euleritia@dynamic-176-006-188-169.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 03:56:58 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 03:58:22 | <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 |
| 04:00:04 | <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 |
| 04:00:06 | <lambdabot> | "(((\"hi\",\"hi\"),(\"hi\",\"hi\")),((\"hi\",\"hi\"),(\"hi\",\"hi\")))" |
| 04:00:26 | <c_wraith> | you don't know at compile time what specific instance of Show `f` will be using there. |
| 04:00:37 | <c_wraith> | And while that's a very contrived example, it's enough to show the problem |
| 04:10:29 | → | pavonia joins (~user@user/siracusa) |
| 04:11:07 | × | Axman6 quits (~Axman6@user/axman6) (Ping timeout: 258 seconds) |
| 04:18:09 | → | aforemny_ joins (~aforemny@i59F516CD.versanet.de) |
| 04:18:40 | <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. |
| 04:18:58 | <c_wraith> | ST isn't excluded |
| 04:19:17 | <c_wraith> | It only excludes those things when they quantify over a constrained type variable |
| 04:19:55 | × | aforemny quits (~aforemny@i59F516D1.versanet.de) (Ping timeout: 276 seconds) |
| 04:20:05 | <c_wraith> | the universally quantified type variable in runST is even phantom |
| 04:21:31 | <dmj`> | c_wraith: for polymorphic recursion yes, but monomorphization is also prohibited by higher rank types according to Oleg K |
| 04:24:01 | <c_wraith> | in a technical sense, yes. But if you keep types lifted, you'll never see the difference. |
| 04:24:17 | <dmj`> | c_wraith: you’re saying full monomorphization can be had with rank n types ? |
| 04:24:31 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds) |
| 04:24:45 | <c_wraith> | No, but I'm saying you can generate the same code in some cases if you aren't also eliminating laziness. |
| 04:27:01 | <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)) |
| 04:27:33 | <c_wraith> | Ok, the SomeException part would break without classes. But if you ignore the error reporting, and focus on the other part |
| 04:27:43 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 04:28:12 | <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. |
| 04:28:16 | <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 |
| 04:28:51 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 04:30:00 | <c_wraith> | You only run into problems with that when you remove the uniform lifted representation of data types |
| 04:30:13 | <c_wraith> | which is usually what people *actually* want when they say they want to monomorphize |
| 04:35:19 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 04:36:02 | <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. |
| 04:37:10 | → | euleritian joins (~euleritia@77.22.252.56) |
| 04:37:21 | <c_wraith> | beginners get near those topics? |
| 04:38:27 | <dmj`> | c_wraith: via libraries, yea I think so |
| 04:39:40 | <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 |
| 04:40:18 | <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" |
| 04:40:52 | → | Axman6 joins (~Axman6@user/axman6) |
| 04:43:39 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 04:44:39 | <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 |
| 04:46:07 | <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 |
| 04:49:27 | <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 |
| 04:49:47 | <c_wraith> | only SomeException exposes people to existentials |
| 04:50:18 | <c_wraith> | (though without it, exceptions really have to have a fixed set of constructors in a Haskell-like language) |
| 04:50:34 | ← | tri parts (~tri@ool-18bc2e74.dyn.optonline.net) (Leaving...) |
| 04:51:02 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 04:54:22 | <tri> | hi, im having trouble understanding this piece of code that reads line from CSV.and prints them out |
| 04:54:28 | <tri> | https://paste.tomsmeding.com/P2kywWyv |
| 04:55:12 | <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 () |
| 04:55:43 | <tri> | in the case of Left, i understand because putStrLn is an IO () |
| 04:55:56 | <c_wraith> | The outermost function in the Right case is V.forM_ |
| 04:56:09 | <tri> | yea so here's what im stuck at |
| 04:56:38 | <tri> | forM_ is running the lambda against all the item in the vector |
| 04:56:52 | <tri> | so coming from C#, it's like a ForEach on a List |
| 04:57:04 | <tri> | and the result of this code is like a vector of IO () |
| 04:57:19 | <c_wraith> | ah. it's V.forM_ , not V.forM |
| 04:57:27 | <c_wraith> | that _ is part of the name |
| 04:57:43 | <tri> | yea and it sayd something like discarding the result |
| 04:57:49 | <tri> | but anyway |
| 04:57:52 | <c_wraith> | and it's an idiom that means "don't create a new data structure, just run this for the effects" |
| 04:59:23 | <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 |
| 04:59:46 | <c_wraith> | Yeah, SomeException was part of making the exception mechanism support user-defined exception types |
| 04:59:52 | <tri> | so after reading the type signature of forM_ again, it's kinda make sense |
| 05:00:16 | <c_wraith> | tri: and especially contrast with forM |
| 05:00:29 | <tri> | so, is it safe to say 95% of using forM_ is to run IO for each item in a vector? |
| 05:00:54 | <tri> | or run IO for an item wrapped in a monad, if I use Control.Monad.forM_ ? |
| 05:01:21 | <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. |
| 05:01:26 | <tri> | in other word, if i were to use forM_, 95% of the time is to do some sideeffect? |
| 05:01:45 | <c_wraith> | But yes, it's just about running side effects with the contents of a collection |
| 05:02:54 | <c_wraith> | (ok, Data.Vector.Vector is an instance of Foldable, but none of the others are.) |
| 05:03:26 | <tri> | ok |
| 05:03:30 | <tri> | so about forM |
| 05:04:20 | <tri> | Monad m => Vector a -> (a -> m b) -> m (Vector b) |
| 05:04:30 | <dmj`> | c_wraith: wonder if that could have been done with type classes |
| 05:04:43 | <tri> | im interpreting it as... |
| 05:05:08 | <tri> | sorry forget what i said |
| 05:05:20 | <tri> | that forM looks like a traversable |
| 05:05:25 | <c_wraith> | dmj`: it's part of the Data.Vector.Generic.Vector class |
| 05:05:54 | <Axman6> | tri: yes, it is basically the traverse instance for Vector |
| 05:05:59 | <c_wraith> | tri: mapM and traverse are the same function. forM = flip mapP |
| 05:06:08 | <Axman6> | M* |
| 05:06:09 | <tri> | oh ok so that's from the traversable |
| 05:06:14 | <tri> | i didn't read to that chapter |
| 05:06:15 | <c_wraith> | err. yes. mapM |
| 05:06:29 | <Axman6> | a slightly more "friendly" name (and a bit shorter) |
| 05:06:30 | <tri> | but from my experience with F# that looks like a traversable so i took a guess |
| 05:06:49 | <Axman6> | :t map |
| 05:06:50 | <lambdabot> | (a -> b) -> [a] -> [b] |
| 05:06:51 | <Axman6> | :t mapM |
| 05:06:52 | <lambdabot> | (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b) |
| 05:06:55 | <Axman6> | :t forM |
| 05:06:56 | <lambdabot> | (Traversable t, Monad m) => t a -> (a -> m b) -> m (t b) |
| 05:06:57 | <Axman6> | :t forM_ |
| 05:06:58 | <lambdabot> | (Foldable t, Monad m) => t a -> (a -> m b) -> m () |
| 05:07:08 | <Axman6> | :t traverse |
| 05:07:10 | <lambdabot> | (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) |
| 05:07:12 | <dmj`> | c_wraith: meant for me? :) |
| 05:07:49 | <c_wraith> | nope! typing is not working well! |
| 05:07:59 | <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" |
| 05:08:18 | → | michalz joins (~michalz@185.246.207.200) |
| 05:09:01 | <tri> | well idk yet. That's question is going to be for a more experienced me |
| 05:09:35 | × | tt1231 quits (~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Ping timeout: 268 seconds) |
| 05:09:35 | <tri> | anyway, is the forM_ related to traversable? |
| 05:09:37 | <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 |
| 05:09:51 | <Axman6> | :t forM_ |
| 05:09:52 | <lambdabot> | (Foldable t, Monad m) => t a -> (a -> m b) -> m () |
| 05:10:06 | <tri> | it's a foldable so im not sure |
| 05:10:12 | <tri> | and i haven't read the Foldable chapter yet |
| 05:10:15 | <Axman6> | forM_ is Foldable, because we don't care about building a new structure, we just want the values inside |
| 05:10:24 | <Axman6> | :t foldMap |
| 05:10:25 | <lambdabot> | (Foldable t, Monoid m) => (a -> m) -> t a -> m |
| 05:10:56 | <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. |
| 05:12:21 | <tri> | well that went over my head but thank you for your help |
| 05:12:59 | × | earthy quits (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Ping timeout: 268 seconds) |
| 05:13:44 | <tri> | Axman6: is there anything equivalent to forM_, just like forM and mapM? |
| 05:17:21 | → | thegeekinside joins (~thegeekin@189.180.85.240) |
| 05:19:43 | <xacktm> | equivalent? like, since `forM = flip mapM`, then `forM_ = flip mapM_` ? |
| 05:20:09 | <tri> | :t MapM_ |
| 05:20:10 | <lambdabot> | error: |
| 05:20:10 | <lambdabot> | • Data constructor not in scope: MapM_ |
| 05:20:10 | <lambdabot> | • Perhaps you meant variable ‘mapM_’ (imported from Data.Foldable) |
| 05:20:15 | <tri> | :t mapM_ |
| 05:20:16 | <lambdabot> | (Foldable t, Monad m) => (a -> m b) -> t a -> m () |
| 05:20:23 | <tri> | :t forM_ |
| 05:20:24 | <lambdabot> | (Foldable t, Monad m) => t a -> (a -> m b) -> m () |
| 05:20:49 | <tri> | xacktm: as tested above, yes you are right. Thank you |
| 05:21:02 | × | mhatta quits (~mhatta@www21123ui.sakura.ne.jp) (Remote host closed the connection) |
| 05:22:11 | <xacktm> | np the word you were looking for is analogue btw |
| 05:22:14 | <xacktm> | :t flip |
| 05:22:15 | <lambdabot> | (a -> b -> c) -> b -> a -> c |
| 05:23:54 | <tri> | thank you |
| 05:26:46 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 05:26:58 | → | mhatta joins (~mhatta@www21123ui.sakura.ne.jp) |
| 05:28:16 | <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) |
| 05:28:20 | <Axman6> | :t toList |
| 05:28:21 | <lambdabot> | Foldable t => t a -> [a] |
| 05:28:47 | <tri> | i mean i kind of understand from the name |
| 05:28:47 | <Axman6> | that's the canonical Fldable function IMO, if you have a foldable which contains a's, you can get all the a's. |
| 05:28:57 | <tri> | because i know how to use fold function |
| 05:29:14 | <tri> | but i still need to read the chapter to have a full understanding |
| 05:29:38 | <Axman6> | > fold (\x -> [a,a]) [a,b,c] :: [Expr] |
| 05:29:39 | <lambdabot> | error: |
| 05:29:39 | <lambdabot> | • Couldn't match type ‘[Expr]’ with ‘[Expr] -> [Expr]’ |
| 05:29:39 | <lambdabot> | Expected type: p0 -> [Expr] -> [Expr] |
| 05:29:49 | <Axman6> | > fold (\x -> [x,x]) [a,b,c] :: [Expr] |
| 05:29:51 | <lambdabot> | error: |
| 05:29:51 | <lambdabot> | • Couldn't match type ‘[a0]’ with ‘[Expr] -> [Expr]’ |
| 05:29:51 | <lambdabot> | Expected type: a0 -> [Expr] -> [Expr] |
| 05:30:00 | <Axman6> | ok I'm bad at this |
| 05:30:09 | <Axman6> | > foldMap (\x -> [x,x]) [a,b,c] :: [Expr] |
| 05:30:10 | <lambdabot> | [a,a,b,b,c,c] |
| 05:30:15 | <tri> | also in F#, there's a thing called sequencing which iirc is related to traversable. |
| 05:30:27 | → | igemnace joins (~ian@user/igemnace) |
| 05:30:43 | <haskellbridge> | 05<irregularsphere> does an existential `exists a` basically mean "some `a` satisfy this, some don't" or "only applies for some `a`" |
| 05:33:32 | × | michalz quits (~michalz@185.246.207.200) (Quit: ZNC 1.8.2 - https://znc.in) |
| 05:36:22 | → | michalz joins (~michalz@185.246.207.203) |
| 05:46:54 | → | trev joins (~trev@user/trev) |
| 05:55:01 | <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 |
| 05:56:00 | <tri> | this is my code so far https://paste.tomsmeding.com/c8xitufW |
| 05:56:11 | <tri> | im having trouble on the very last line |
| 05:57:03 | <tri> | basically, i know that i have to use decodeByName to decode the string read from csv file to my Haskell record |
| 05:57:23 | <tri> | :t decodeByName |
| 05:57:24 | <lambdabot> | error: Variable not in scope: decodeByName |
| 06:00:05 | <tri> | this is the type of decodeByName https://paste.tomsmeding.com/Yj5vLbJH |
| 06:00:49 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 06:00:50 | <tri> | in my case of expression, in the Right case, i would have a Vector of ANY |
| 06:01:10 | <tri> | so how do i turn that vector of any to a vector of my data record Position? |
| 06:14:53 | × | telser quits (~quassel@user/telser) (Ping timeout: 252 seconds) |
| 06:17:20 | <tri> | actually i got it |
| 06:17:21 | <tri> | nvm |
| 06:17:27 | × | euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 256 seconds) |
| 06:17:51 | → | euleritian joins (~euleritia@dynamic-176-002-133-146.176.2.pool.telefonica.de) |
| 06:22:41 | → | acidjnk joins (~acidjnk@p200300d6e737e7577de83db70375434d.dip0.t-ipconnect.de) |
| 06:23:11 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:28:37 | × | Square quits (~Square4@user/square) (Ping timeout: 276 seconds) |
| 06:30:50 | → | Square joins (~Square4@user/square) |
| 06:35:10 | → | earthy joins (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) |
| 06:35:54 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 06:44:16 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 06:46:41 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 06:48:50 | → | harveypwca joins (~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b) |
| 06:50:13 | × | Square quits (~Square4@user/square) (Ping timeout: 264 seconds) |
| 06:53:55 | × | thegeekinside quits (~thegeekin@189.180.85.240) (Remote host closed the connection) |
| 06:55:55 | → | CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 07:04:37 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 07:05:01 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:05:32 | × | CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 07:06:11 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 07:07:04 | → | CrunchyFlakes joins (~CrunchyFl@146.52.130.128) |
| 07:07:46 | × | shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 264 seconds) |
| 07:09:32 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:13:14 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 260 seconds) |
| 07:20:05 | × | tzh quits (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz) |
| 07:22:31 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds) |
| 07:26:34 | → | rosco joins (~rosco@175.136.156.77) |
| 07:30:27 | × | average quits (uid473595@user/average) (Quit: Connection closed for inactivity) |
| 07:30:37 | × | cross quits (~cross@spitfire.i.gajendra.net) (Quit: Lost terminal) |
| 07:31:58 | → | CiaoSen joins (~Jura@2a05:5800:2ba:a600:ca4b:d6ff:fec1:99da) |
| 07:33:33 | → | chele joins (~chele@user/chele) |
| 07:35:35 | × | euleritian quits (~euleritia@dynamic-176-002-133-146.176.2.pool.telefonica.de) (Read error: Connection reset by peer) |
| 07:35:54 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 07:36:06 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 07:38:11 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 07:38:13 | × | earthy quits (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Ping timeout: 264 seconds) |
| 07:41:43 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 07:42:31 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 07:43:12 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 07:45:28 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving) |
| 07:49:41 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds) |
| 07:49:42 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 07:50:45 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 07:56:34 | → | coot joins (~coot@89-69-206-216.dynamic.chello.pl) |
| 07:57:05 | → | mima joins (~mmh@aftr-62-216-211-79.dynamic.mnet-online.de) |
| 08:00:17 | → | oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
| 08:02:01 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 08:03:16 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 08:04:48 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) (Remote host closed the connection) |
| 08:05:24 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 08:06:39 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 08:06:56 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) |
| 08:10:02 | → | fendor joins (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) |
| 08:12:41 | → | danse-nr3 joins (~danse@151.47.88.94) |
| 08:13:24 | → | gmg joins (~user@user/gehmehgeh) |
| 08:14:37 | × | danse-nr3 quits (~danse@151.47.88.94) (Remote host closed the connection) |
| 08:15:00 | → | danse-nr3 joins (~danse@151.47.88.94) |
| 08:25:47 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds) |
| 08:26:14 | × | m1dnight quits (~christoph@78-22-2-15.access.telenet.be) (Quit: WeeChat 4.1.1) |
| 08:26:20 | × | harveypwca quits (~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b) (Quit: Leaving) |
| 08:27:22 | × | fendor quits (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection) |
| 08:27:35 | → | m1dnight joins (~christoph@78-22-2-15.access.telenet.be) |
| 08:29:25 | → | fendor joins (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) |
| 08:32:08 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) (Remote host closed the connection) |
| 08:36:24 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 08:50:46 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds) |
| 09:00:05 | <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 ? |
| 09:00:17 | <Hecate> | and if it's not, can I get a link to the answer so that I may reference it? |
| 09:00:38 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 09:04:52 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) |
| 09:05:46 | × | Flow quits (~none@gentoo/developer/flow) (Ping timeout: 245 seconds) |
| 09:07:12 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:07:43 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
| 09:09:52 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 09:12:40 | → | Flow joins (~none@gentoo/developer/flow) |
| 09:16:26 | × | Luj quits (~Luj@2a01:e0a:5f9:9681:9efa:99eb:317c:5cbb) (Quit: Ping timeout (120 seconds)) |
| 09:16:46 | → | Luj joins (~Luj@2a01:e0a:5f9:9681:d777:c1f:db87:45b8) |
| 09:43:36 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 09:46:16 | × | statusbot3 quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection) |
| 09:46:25 | → | statusbot joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
| 09:52:08 | × | danse-nr3 quits (~danse@151.47.88.94) (Ping timeout: 256 seconds) |
| 09:53:53 | × | ft quits (~ft@p508dbda4.dip0.t-ipconnect.de) (Quit: leaving) |
| 09:56:54 | → | mmhat joins (~mmh@p200300f1c724f91bee086bfffe095315.dip0.t-ipconnect.de) |
| 09:57:37 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
| 09:58:46 | → | cfricke joins (~cfricke@user/cfricke) |
| 09:58:47 | → | danse-nr3 joins (~danse@151.47.88.94) |
| 10:00:10 | → | notzmv joins (~zmv@user/notzmv) |
| 10:02:23 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 264 seconds) |
| 10:05:31 | → | ph88 joins (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) |
| 10:06:15 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds) |
| 10:19:09 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 10:22:59 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 10:23:41 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds) |
| 10:24:50 | → | __monty__ joins (~toonn@user/toonn) |
| 10:48:55 | → | earthy joins (~arthurvl@77-174-49-144.fixed.kpn.net) |
| 10:54:24 | × | ph88 quits (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 10:59:11 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 11:10:32 | × | danse-nr3 quits (~danse@151.47.88.94) (Read error: Connection reset by peer) |
| 11:10:50 | → | danse-nr3 joins (~danse@rm-19-13-46.service.infuturo.it) |
| 11:11:49 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds) |
| 11:14:01 | → | xff0x joins (~xff0x@ai085147.d.east.v6connect.net) |
| 11:17:47 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 256 seconds) |
| 11:19:01 | × | rosco quits (~rosco@175.136.156.77) (Read error: Connection reset by peer) |
| 11:28:30 | × | __monty__ quits (~toonn@user/toonn) (Ping timeout: 260 seconds) |
| 11:29:46 | × | CiaoSen quits (~Jura@2a05:5800:2ba:a600:ca4b:d6ff:fec1:99da) (Ping timeout: 268 seconds) |
| 11:30:55 | × | califax quits (~califax@user/califx) (Ping timeout: 240 seconds) |
| 11:31:36 | → | califax joins (~califax@user/califx) |
| 11:37:01 | × | glguy quits (g@libera/staff/glguy) (Read error: Connection reset by peer) |
| 11:37:16 | → | glguy joins (g@libera/staff/glguy) |
| 11:37:18 | → | cyphase joins (~cyphase@user/cyphase) |
| 11:37:58 | × | g quits (g@libera/staff/glguy) (Read error: Connection reset by peer) |
| 11:45:42 | → | g joins (glguy@libera/staff/glguy) |
| 11:49:01 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds) |
| 11:49:37 | → | __monty__ joins (~toonn@user/toonn) |
| 11:52:55 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
| 11:55:06 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 11:59:13 | → | rosco joins (~rosco@175.136.156.77) |
| 12:02:03 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 12:05:47 | → | myxos joins (~myxos@065-028-251-121.inf.spectrum.com) |
| 12:07:31 | × | danse-nr3 quits (~danse@rm-19-13-46.service.infuturo.it) (Ping timeout: 256 seconds) |
| 12:08:50 | → | phma_ joins (~phma@host-67-44-208-39.hnremote.net) |
| 12:09:57 | × | phma quits (phma@2001:5b0:211f:a328:df89:a9c1:b8f3:9c33) (Read error: Connection reset by peer) |
| 12:30:14 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 12:31:37 | → | califax joins (~califax@user/califx) |
| 12:39:25 | → | danse-nr3 joins (~danse@rm-19-51-222.service.infuturo.it) |
| 12:40:22 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 260 seconds) |
| 12:45:09 | → | cyphase joins (~cyphase@user/cyphase) |
| 12:57:11 | × | son0p quits (~ff@181.32.158.171) (Quit: Bye) |
| 13:10:27 | → | billchenchina joins (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) |
| 13:16:13 | → | paltech joins (~paltech@2001:6b0:1:1041:d0f3:cc40:ae9:da17) |
| 13:16:26 | × | paltech quits (~paltech@2001:6b0:1:1041:d0f3:cc40:ae9:da17) (Client Quit) |
| 13:16:47 | → | paltech joins (~paltech@2001:6b0:1:1041:d0f3:cc40:ae9:da17) |
| 13:17:07 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 13:17:25 | → | califax joins (~califax@user/califx) |
| 13:30:23 | <ski> | irregularsphere : skip the "some don't" part |
| 13:54:12 | → | shriekingnoise joins (~shrieking@186.137.175.87) |
| 13:55:41 | × | billchenchina quits (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection) |
| 14:01:48 | × | paltech quits (~paltech@2001:6b0:1:1041:d0f3:cc40:ae9:da17) (Ping timeout: 250 seconds) |
| 14:07:50 | × | causal quits (~eric@50.35.85.7) (Quit: WeeChat 4.1.1) |
| 14:12:49 | → | cheater_ joins (~Username@user/cheater) |
| 14:16:33 | × | cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds) |
| 14:16:34 | cheater_ | is now known as cheater |
| 14:21:49 | × | kmein quits (~weechat@user/kmein) (Ping timeout: 256 seconds) |
| 14:23:10 | → | kmein joins (~weechat@user/kmein) |
| 14:23:13 | <haskellbridge> | 05<irregularsphere> ah right |
| 14:25:01 | → | thegeekinside joins (~thegeekin@189.180.85.240) |
| 14:25:52 | <haskellbridge> | 05<irregularsphere> though does an existential allow for no types to be valid |
| 14:26:27 | <haskellbridge> | 05<irregularsphere> I'm not sure how to construct an example but I'm expecting GHC/others to let it slide |
| 14:29:17 | <tomsmeding> | irregularsphere: an existential variable can be any type, that's the point of an existential |
| 14:30:09 | <haskellbridge> | 05<irregularsphere> what I mean is that no types ever satisfy the conditional/predicate after an existential |
| 14:30:40 | <tomsmeding> | the type class constraints inside the quantifier, you mean? |
| 14:30:47 | <tomsmeding> | the existential can still be any type |
| 14:31:04 | <tomsmeding> | whether the thing under the quantifier has any inhabitants is a separate point :p |
| 14:31:12 | <tomsmeding> | 'undefined' has a lot of types |
| 14:33:28 | × | trev quits (~trev@user/trev) (Quit: trev) |
| 14:33:41 | <tomsmeding> | it becomes a bit more fuzzy if you have 'exists a. (a ~ Int) => ...' |
| 14:33:44 | × | mima quits (~mmh@aftr-62-216-211-79.dynamic.mnet-online.de) (Ping timeout: 252 seconds) |
| 14:33:54 | → | trev joins (~trev@user/trev) |
| 14:34:08 | <tomsmeding> | ghc is being annoying in letting me construct such a thing, even with undefined |
| 14:35:20 | <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 |
| 14:35:52 | <tomsmeding> | I'm assuming here that you encode the existential with something like 'data Exists c where Exists :: c a => a -> Exists c' |
| 14:38:31 | → | ystael joins (~ystael@user/ystael) |
| 14:40:59 | × | igemnace quits (~ian@user/igemnace) (Read error: Connection reset by peer) |
| 14:44:00 | <EvanR> | there's a valid type for exists n such that (n ~ Int, IsEven n, IsOdd n), but no way to build it |
| 14:44:14 | <EvanR> | nooo I messed that up |
| 14:44:25 | <EvanR> | no dependent types |
| 14:44:56 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 14:45:40 | → | average joins (uid473595@user/average) |
| 14:46:45 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 14:47:42 | → | euleritian joins (~euleritia@dynamic-176-006-197-230.176.6.pool.telefonica.de) |
| 14:48:53 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 240 seconds) |
| 14:54:32 | <tomsmeding> | heh |
| 14:55:21 | <__monty__> | It's identical to the empty type no? |
| 14:55:34 | <__monty__> | Void or such. |
| 14:55:35 | <tomsmeding> | __monty__: it said `n ~ Int`, not `n : Int` |
| 14:56:15 | <tomsmeding> | if it was (::) then it was dependent; if it said `n :: Nat` then it was type-level |
| 14:56:21 | × | mmhat quits (~mmh@p200300f1c724f91bee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 14:56:21 | <tomsmeding> | and we were talking about value-level Ints :) |
| 14:56:44 | → | mmhat joins (~mmh@p200300f1c724f9e1ee086bfffe095315.dip0.t-ipconnect.de) |
| 14:56:51 | <ncf> | yes, the type of even and odd integers is empty |
| 14:57:42 | <tomsmeding> | in Agda the type Sigma Int (\n -> even n && odd n) is empty |
| 14:57:50 | <tomsmeding> | good luck expressing that in Haskell |
| 14:58:30 | → | igemnace joins (~ian@user/igemnace) |
| 15:00:42 | <__monty__> | Oh, because of bottom? |
| 15:01:09 | <tomsmeding> | hm? |
| 15:01:11 | <tomsmeding> | even ignoring bottom |
| 15:01:17 | <tomsmeding> | there ain't enough dependence |
| 15:01:22 | <tomsmeding> | unless you want to introduce singletons |
| 15:01:42 | <tomsmeding> | (n ~ Int, IsEven n, IsOdd n) doesn't kind-check |
| 15:02:47 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1) |
| 15:03:21 | ncf | . o O ( a type is even if it is finite and has even cardinality... ) |
| 15:03:46 | <tomsmeding> | :p I guess |
| 15:08:30 | <haskellbridge> | 05<irregularsphere> ...so `exists` with `~` is basically a weaker form of dependency |
| 15:08:46 | <tomsmeding> | haven't I just been trying to argue it's _not_ dependency? :p |
| 15:09:00 | <haskellbridge> | 05<irregularsphere> emphasis on "weaker" |
| 15:09:42 | <ncf> | exists is dependent |
| 15:10:08 | <ncf> | it's just restricted to types |
| 15:10:47 | <ncf> | or... things that have a kind, i guess |
| 15:11:00 | tomsmeding | has always interpreted "dependent" as meaning "a type depending on a term" |
| 15:11:20 | <tomsmeding> | types depending on types is just... polymorphism, right? |
| 15:11:29 | <tomsmeding> | though this is a terminology discussion at this point |
| 15:12:05 | <ncf> | you're right; i hate those |
| 15:12:22 | <tomsmeding> | then let's not get into the weeds :p |
| 15:12:45 | <ncf> | but e.g. https://en.wikipedia.org/wiki/Lambda_cube does use the weaker meaning of "dependency" |
| 15:13:12 | <tomsmeding> | ah I see |
| 15:15:22 | × | m1dnight quits (~christoph@78-22-2-15.access.telenet.be) (Quit: WeeChat 4.1.1) |
| 15:15:49 | → | m1dnight joins (~christoph@78-22-2-15.access.telenet.be) |
| 15:18:03 | × | ddellacosta quits (~ddellacos@ool-44c73d16.dyn.optonline.net) (Ping timeout: 256 seconds) |
| 15:19:11 | × | euleritian quits (~euleritia@dynamic-176-006-197-230.176.6.pool.telefonica.de) (Ping timeout: 256 seconds) |
| 15:19:19 | <kuribas> | tomsmeding: but in a dependent language a type is a term. |
| 15:19:26 | <tomsmeding> | which haskell is not! |
| 15:19:50 | <__monty__> | Does Type-in-Type affect this? |
| 15:19:59 | <kuribas> | right, so haskell doesn't have a dependent type, just things which look similar. |
| 15:20:10 | <tomsmeding> | kuribas: that's what I'd say |
| 15:20:23 | <ncf> | __monty__: not really |
| 15:21:01 | <danse-nr3> | terminology discussions are annoying but they do help |
| 15:21:07 | <tomsmeding> | % type T = forall n. (n ~ Int, Eq n, Ord n) => n |
| 15:21:07 | <yahb2> | <interactive>:99:1: error: ; • Illegal equational constraint n ~ Int ; (Use GADTs or TypeFamilies to permit this) ; • In the type synonym declaration for ‘T’ |
| 15:21:11 | <tomsmeding> | % :set -XGADTs |
| 15:21:11 | <yahb2> | <no output> |
| 15:21:13 | <kuribas> | tomsmeding: not yet at least :) |
| 15:21:13 | <tomsmeding> | % type T = forall n. (n ~ Int, Eq n, Ord n) => n |
| 15:21:13 | <yahb2> | <no output> |
| 15:21:25 | <tomsmeding> | ghc accepts this and only because of TypeInType I suspect :p |
| 15:21:57 | <ncf> | seems to work without TypeInType |
| 15:22:00 | <tomsmeding> | whether it has any useful meaning, however... |
| 15:22:09 | <tomsmeding> | ncf: how are you turning off TypeInType? |
| 15:22:13 | <kuribas> | tomsmeding: maybe never, but every once in a while I hear some progress has been made... |
| 15:22:15 | <ncf> | :set -XNoTypeInType |
| 15:22:22 | <tomsmeding> | ncf: https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/poly_kinds.html#extension-TypeInType |
| 15:22:26 | <tomsmeding> | the thing cannot be turned off |
| 15:22:30 | × | m1dnight quits (~christoph@78-22-2-15.access.telenet.be) (Quit: WeeChat 4.1.1) |
| 15:22:32 | <ncf> | ugh |
| 15:22:40 | <tomsmeding> | that bridge has been burned a while ago |
| 15:22:46 | → | m1dnight joins (~christoph@78-22-2-15.access.telenet.be) |
| 15:23:05 | → | euleritian joins (~euleritia@dynamic-176-006-200-141.176.6.pool.telefonica.de) |
| 15:23:11 | <tomsmeding> | kuribas: all hope is not lost but things are slow :p |
| 15:25:07 | <haskellbridge> | 05<irregularsphere> reading this discussion felt like zoning out |
| 15:26:46 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 15:26:47 | → | son0p joins (~ff@181.32.158.171) |
| 15:26:54 | <haskellbridge> | 05<irregularsphere> _...burned?_ |
| 15:27:18 | <tomsmeding> | it's not the right english idiom but I couldn't think of the right one |
| 15:27:43 | <danse-nr3> | i thought /burning bridges/ was an idiom |
| 15:28:08 | <danse-nr3> | oh i see |
| 15:28:11 | <tomsmeding> | it is, but iirc it's more for leaving people leaving behind bad relations |
| 15:28:25 | <tomsmeding> | this is more like "the choice has been made, no turning back now" |
| 15:28:33 | <danse-nr3> | feels suited to all irreversible actions |
| 15:28:33 | <ncf> | the ship has sailed |
| 15:28:39 | <tomsmeding> | ncf: thank you |
| 15:29:04 | <tomsmeding> | that's the one :) |
| 15:29:05 | <danse-nr3> | i think cortez did burn some ships as well, by the way (= |
| 15:29:22 | → | akegalj joins (~akegalj@cpe-188-129-77-238.dynamic.amis.hr) |
| 15:29:34 | <danse-nr3> | they were the crews' bridges to the old world |
| 15:31:22 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 276 seconds) |
| 15:40:12 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:42:17 | × | danse-nr3 quits (~danse@rm-19-51-222.service.infuturo.it) (Ping timeout: 268 seconds) |
| 15:42:45 | <EvanR> | that ship has sailed |
| 15:43:03 | <EvanR> | that can of woopass was opened |
| 15:44:22 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:48:02 | → | mima joins (~mmh@dhcp-138-246-3-41.dynamic.eduroam.mwn.de) |
| 15:52:44 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 15:55:22 | <mauke> | that rubicon has been crossed |
| 15:56:08 | → | danse-nr3 joins (~danse@rm-19-9-134.service.infuturo.it) |
| 15:59:32 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 16:00:57 | → | statusbot4 joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
| 16:01:12 | → | Pixi` joins (~Pixi@user/pixi) |
| 16:01:16 | × | akegalj quits (~akegalj@cpe-188-129-77-238.dynamic.amis.hr) (Quit: leaving) |
| 16:01:20 | → | phma joins (phma@2001:5b0:212a:ca28:8adb:c496:397:1cd2) |
| 16:01:51 | → | Feuermagier_ joins (~Feuermagi@user/feuermagier) |
| 16:01:51 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Killed (platinum.libera.chat (Nickname regained by services))) |
| 16:01:51 | Feuermagier_ | is now known as Feuermagier |
| 16:01:56 | → | hamster joins (~ham@user/ham) |
| 16:02:11 | × | euleritian quits (~euleritia@dynamic-176-006-200-141.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:02:29 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:02:40 | → | Katarushisu12 joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
| 16:02:45 | → | kimiamania4648 joins (~65804703@user/kimiamania) |
| 16:02:53 | → | qhong_ joins (~qhong@DN160vrd000d6kpg009l6c0000fj.stanford.edu) |
| 16:03:01 | → | pounce_ joins (~pounce@user/cute/pounce) |
| 16:03:11 | → | siers69 joins (~ij@user/ij) |
| 16:03:21 | → | mniip_ joins (mniip@libera/staff/mniip) |
| 16:03:33 | → | p3n_ joins (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) |
| 16:03:35 | → | stefan-_- joins (~cri@42dots.de) |
| 16:03:37 | → | cptaffe` joins (~cptaffe@user/cptaffe) |
| 16:03:38 | → | nitrix_ joins (~nitrix@user/nitrix) |
| 16:03:40 | → | CiaoSen joins (~Jura@2a05:5800:2ba:a600:ca4b:d6ff:fec1:99da) |
| 16:03:42 | → | swistak- joins (~swistak@185.21.216.141) |
| 16:03:50 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 260 seconds) |
| 16:03:57 | → | krei-se joins (~krei-se@p508747fd.dip0.t-ipconnect.de) |
| 16:03:57 | → | mhatta_ joins (~mhatta@www21123ui.sakura.ne.jp) |
| 16:04:38 | → | YoungFrawg joins (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) |
| 16:04:49 | × | phma quits (phma@2001:5b0:212a:ca28:8adb:c496:397:1cd2) (Read error: Connection reset by peer) |
| 16:05:42 | → | phma joins (phma@2001:5b0:210b:d438:d098:3d2c:a016:35e3) |
| 16:05:53 | → | takuan_dozo joins (~takuan@178-116-218-225.access.telenet.be) |
| 16:06:11 | → | ski_ joins (~ski@remote11.chalmers.se) |
| 16:06:29 | → | RemiYuko joins (~licht@user/akechishiro) |
| 16:06:33 | → | qqq_ joins (~qqq@92.43.167.61) |
| 16:07:46 | × | earthy quits (~arthurvl@77-174-49-144.fixed.kpn.net) (Ping timeout: 264 seconds) |
| 16:08:35 | × | mhatta quits (~mhatta@www21123ui.sakura.ne.jp) (Ping timeout: 264 seconds) |
| 16:08:35 | × | stefan-_ quits (~cri@42dots.de) (Ping timeout: 264 seconds) |
| 16:08:35 | × | p3n quits (~p3n@217.198.124.246) (Ping timeout: 264 seconds) |
| 16:08:35 | × | swistak quits (~swistak@185.21.216.141) (Ping timeout: 264 seconds) |
| 16:08:35 | × | qhong quits (~qhong@rescomp-21-400677.stanford.edu) (Ping timeout: 264 seconds) |
| 16:08:35 | × | cptaffe quits (~cptaffe@user/cptaffe) (Ping timeout: 264 seconds) |
| 16:08:35 | × | vulpine quits (xfnw@tilde.team) (Ping timeout: 264 seconds) |
| 16:08:35 | × | pounce quits (~pounce@user/cute/pounce) (Ping timeout: 264 seconds) |
| 16:08:35 | × | phma_ quits (~phma@host-67-44-208-39.hnremote.net) (Ping timeout: 264 seconds) |
| 16:08:36 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 264 seconds) |
| 16:08:36 | × | qqq quits (~qqq@92.43.167.61) (Ping timeout: 264 seconds) |
| 16:08:36 | × | AkechiShiro quits (~licht@user/akechishiro) (Ping timeout: 264 seconds) |
| 16:08:36 | × | ham quits (~ham@user/ham) (Ping timeout: 264 seconds) |
| 16:08:36 | × | kimiamania464 quits (~65804703@user/kimiamania) (Ping timeout: 264 seconds) |
| 16:08:36 | × | Vajb quits (~Vajb@n7kymlrhl8zspe1o45k-1.v6.elisa-mobile.fi) (Ping timeout: 264 seconds) |
| 16:08:36 | × | krei-se- quits (~krei-se@p508747fd.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 16:08:36 | × | YoungFrog quits (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Ping timeout: 264 seconds) |
| 16:08:37 | × | siers quits (~ij@user/ij) (Ping timeout: 264 seconds) |
| 16:08:37 | × | nitrix quits (~nitrix@user/nitrix) (Ping timeout: 264 seconds) |
| 16:08:37 | × | Pixi quits (~Pixi@user/pixi) (Ping timeout: 264 seconds) |
| 16:08:37 | × | ski quits (~ski@remote11.chalmers.se) (Ping timeout: 264 seconds) |
| 16:08:37 | × | mmhat quits (~mmh@p200300f1c724f9e1ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 16:08:37 | × | statusbot quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Ping timeout: 264 seconds) |
| 16:08:37 | × | Katarushisu1 quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Ping timeout: 264 seconds) |
| 16:08:38 | cptaffe` | is now known as cptaffe |
| 16:08:38 | Katarushisu12 | is now known as Katarushisu1 |
| 16:08:39 | nitrix_ | is now known as nitrix |
| 16:08:40 | kimiamania4648 | is now known as kimiamania464 |
| 16:08:41 | pounce_ | is now known as pounce |
| 16:08:41 | YoungFrawg | is now known as YoungFrog |
| 16:08:53 | × | mniip quits (mniip@libera/staff/mniip) (Read error: Connection reset by peer) |
| 16:13:01 | × | synapse quits (~synapse@176.254.244.83) (Ping timeout: 256 seconds) |
| 16:14:50 | → | Square joins (~Square@user/square) |
| 16:16:55 | → | synapse joins (~synapse@176.254.244.83) |
| 16:17:55 | → | vulpine joins (xfnw@tilde.team) |
| 16:18:15 | → | mmhat joins (~mmh@p200300f1c724f9e1ee086bfffe095315.dip0.t-ipconnect.de) |
| 16:20:27 | mniip_ | is now known as mniip |
| 16:26:22 | ski_ | is now known as ski |
| 16:37:18 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:47:02 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 16:47:05 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) (Remote host closed the connection) |
| 16:47:23 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:558a:c642:c5e9:5691) |
| 16:51:07 | → | econo_ joins (uid147250@id-147250.tinside.irccloud.com) |
| 16:52:53 | × | CiaoSen quits (~Jura@2a05:5800:2ba:a600:ca4b:d6ff:fec1:99da) (Ping timeout: 240 seconds) |
| 16:55:09 | → | kmein joins (~weechat@user/kmein) |
| 16:57:16 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 16:59:41 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
| 17:00:36 | → | euleritian joins (~euleritia@dynamic-046-114-163-142.46.114.pool.telefonica.de) |
| 17:01:47 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 264 seconds) |
| 17:02:38 | × | danse-nr3 quits (~danse@rm-19-9-134.service.infuturo.it) (Ping timeout: 260 seconds) |
| 17:03:27 | × | potato44 quits (uid421314@id-421314.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 17:03:30 | × | euleritian quits (~euleritia@dynamic-046-114-163-142.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 17:03:49 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 17:11:32 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.1.2) |
| 17:11:59 | × | mmhat quits (~mmh@p200300f1c724f9e1ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.0) |
| 17:17:09 | × | fendor quits (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Ping timeout: 260 seconds) |
| 17:18:40 | → | tzh joins (~tzh@c-71-193-181-0.hsd1.or.comcast.net) |
| 17:24:28 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 17:26:58 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
| 17:31:38 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 17:36:40 | × | troydm quits (~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
| 17:36:56 | → | lottaquestions joins (~nick@2607:fa49:503d:b200:7e84:60b6:2c6a:f57e) |
| 17:37:00 | → | troydm joins (~troydm@user/troydm) |
| 17:40:12 | × | mulk quits (~mulk@p5b2dc93f.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 17:40:57 | × | steew quits (~steew@user/steew) (Remote host closed the connection) |
| 17:43:24 | × | rosco quits (~rosco@175.136.156.77) (Remote host closed the connection) |
| 17:45:12 | → | mulk joins (~mulk@p5b2dc93f.dip0.t-ipconnect.de) |
| 17:47:42 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
| 17:48:15 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 18:06:55 | → | __monty_1 joins (~toonn@user/toonn) |
| 18:08:35 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:08:37 | × | __monty__ quits (~toonn@user/toonn) (Ping timeout: 246 seconds) |
| 18:08:45 | __monty_1 | is now known as __monty__ |
| 18:08:50 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 18:16:07 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds) |
| 18:18:08 | × | Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Ping timeout: 252 seconds) |
| 18:18:22 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 18:20:06 | → | Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
| 18:22:38 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Read error: Connection reset by peer) |
| 18:23:05 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 18:25:12 | × | hololeap quits (~quassel@user/hololeap) (Quit: Bye) |
| 18:26:17 | → | hololeap joins (~quassel@user/hololeap) |
| 18:30:38 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 18:32:49 | × | Square quits (~Square@user/square) (Ping timeout: 264 seconds) |
| 18:42:31 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds) |
| 18:44:52 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 18:47:25 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 18:47:53 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 18:52:37 | → | sroso joins (~sroso@user/SrOso) |
| 18:54:28 | × | Lycurgus quits (~georg@user/Lycurgus) (Quit: leaving) |
| 18:57:15 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:57:43 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 18:58:27 | × | trev quits (~trev@user/trev) (Quit: trev) |
| 19:00:57 | → | potato44 joins (uid421314@id-421314.lymington.irccloud.com) |
| 19:10:46 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 19:13:22 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 19:14:12 | <haskellbridge> | 15<Jade> why does the source of `Control.Category` a `RULE` `(p . q) . r = p . (q . r)`? |
| 19:14:25 | <haskellbridge> | 15<Jade> How does this help optimization specifically? |
| 19:15:49 | → | Square joins (~Square@user/square) |
| 19:17:51 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 260 seconds) |
| 19:25:01 | × | mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 264 seconds) |
| 19:26:43 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 19:28:23 | × | mima quits (~mmh@dhcp-138-246-3-41.dynamic.eduroam.mwn.de) (Ping timeout: 256 seconds) |
| 19:30:06 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 19:32:29 | → | fendor joins (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) |
| 19:34:16 | <monochrom> | Under lazy evaluation, `((f . g) . h) x` incurs one more step than `(f . (g . h)) x` |
| 19:34:31 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 255 seconds) |
| 19:38:54 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 19:48:39 | → | mikess joins (~mikess@user/mikess) |
| 19:51:40 | → | jargon joins (~jargon@211.sub-174-205-225.myvzw.com) |
| 19:55:30 | × | pastly quits (~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection) |
| 19:56:03 | → | pastly joins (~pastly@gateway/tor-sasl/pastly) |
| 20:00:02 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:00:12 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 20:01:31 | → | Zmzi joins (rscastilho@user/Zmzi) |
| 20:03:15 | × | Zmzi quits (rscastilho@user/Zmzi) (Remote host closed the connection) |
| 20:05:01 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 276 seconds) |
| 20:14:26 | → | jinsun joins (~jinsun@user/jinsun) |
| 20:17:13 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:24:26 | × | jinsun quits (~jinsun@user/jinsun) () |
| 20:29:17 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 20:30:47 | → | mima joins (~mmh@aftr-62-216-211-120.dynamic.mnet-online.de) |
| 20:34:10 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 264 seconds) |
| 20:39:50 | × | phma quits (phma@2001:5b0:210b:d438:d098:3d2c:a016:35e3) (Read error: Connection reset by peer) |
| 20:40:07 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:41:16 | → | phma joins (phma@2001:5b0:211f:c9b8:8d72:9b4c:9f04:5951) |
| 20:43:22 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 20:48:10 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 20:49:50 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:59:19 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 21:00:21 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 21:03:57 | → | dsrt^ joins (~cd@c-98-242-74-66.hsd1.ga.comcast.net) |
| 21:05:28 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 276 seconds) |
| 21:09:20 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
| 21:12:14 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:558a:c642:c5e9:5691) (Remote host closed the connection) |
| 21:14:03 | × | igemnace quits (~ian@user/igemnace) (Ping timeout: 268 seconds) |
| 21:17:49 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds) |
| 21:20:43 | × | potato44 quits (uid421314@id-421314.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 21:26:28 | × | fendor quits (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection) |
| 21:26:58 | <haskellbridge> | 15<Jade> ohh okay, thank you |
| 21:30:28 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 21:31:02 | → | irrgit joins (~irrgit@86.106.90.226) |
| 21:35:01 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 268 seconds) |
| 21:42:14 | × | yeahitsme quits (~bob@user/yeahitsme) (Read error: Connection reset by peer) |
| 21:42:37 | → | yeahitsme joins (~bob@2a01:799:15e2:1800:8bf3:5e36:1335:cc51) |
| 21:45:00 | → | earthy joins (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) |
| 21:49:01 | × | __monty__ quits (~toonn@user/toonn) (Ping timeout: 264 seconds) |
| 21:49:03 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
| 21:49:35 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:558a:c642:c5e9:5691) |
| 21:56:21 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:03:54 | → | __monty__ joins (~toonn@user/toonn) |
| 22:06:19 | × | lottaquestions quits (~nick@2607:fa49:503d:b200:7e84:60b6:2c6a:f57e) (Ping timeout: 260 seconds) |
| 22:17:31 | → | yotta joins (~cha0s@14.191.144.106) |
| 22:22:35 | <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. |
| 22:26:52 | <mauke> | which FD? |
| 22:29:21 | <tomsmeding> | yotta: System.Posix.Internals.FD is just CInt, and GHC.IO.FD.FD has an fdFD field |
| 22:29:45 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 22:32:35 | <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 |
| 22:32:54 | <tomsmeding> | yotta: that's how haddock renders a record ;) |
| 22:33:06 | <tomsmeding> | those are two fields of the record; there is just one constructor, called FD |
| 22:33:21 | <yotta> | oh, my mistake |
| 22:34:30 | <mauke> | how is that not a boolean |
| 22:34:31 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 276 seconds) |
| 22:34:55 | <Axman6> | True, False, NullPointerException |
| 22:35:09 | <mauke> | isNonBlocking fd = fdIsNonBlocking fd /= 0 |
| 22:35:15 | <mauke> | ö_ö |
| 22:35:15 | <Axman6> | wait, that's Java's bool |
| 22:37:09 | <Rembane> | NullPointerException is a very long name for _|_ |
| 22:40:54 | × | jargon quits (~jargon@211.sub-174-205-225.myvzw.com) (Remote host closed the connection) |
| 22:44:20 | × | thegeekinside quits (~thegeekin@189.180.85.240) (Ping timeout: 252 seconds) |
| 22:47:05 | → | thegeekinside joins (~thegeekin@189.180.85.240) |
| 22:50:41 | × | michalz quits (~michalz@185.246.207.203) (Quit: ZNC 1.8.2 - https://znc.in) |
| 22:52:04 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 276 seconds) |
| 23:14:18 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 23:14:52 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 23:16:23 | → | wlhn joins (~wenzel@dl5nxl8j-r4kxslv6t5kt-3.rev.dnainternet.fi) |
| 23:16:44 | × | takuan_dozo quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 23:21:09 | × | acidjnk quits (~acidjnk@p200300d6e737e7577de83db70375434d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 23:26:23 | → | kayvan joins (~user@52-119-115-185.PUBLIC.monkeybrains.net) |
| 23:33:35 | × | kaskal quits (~kaskal@2001:4bb8:2dc:65bd:8282:e361:c97e:4971) (Ping timeout: 260 seconds) |
| 23:34:18 | → | kaskal joins (~kaskal@2001:4bb8:2c3:39c1:ff3f:d58:4fd9:e10c) |
| 23:42:37 | → | ft joins (~ft@p508dbda4.dip0.t-ipconnect.de) |
| 23:47:11 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:48:35 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 23:49:40 | <EvanR> | except and unless some jackass is unironically catching NullPointerExceptions |
| 23:59:28 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
All times are in UTC on 2024-01-23.