Logs on 2022-09-19 (liberachat/#haskell)
| 00:00:04 | × | rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 265 seconds) |
| 00:06:53 | → | Axman6 joins (~Axman6@user/axman6) |
| 00:08:54 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 258 seconds) |
| 00:11:36 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 00:13:07 | × | johnw quits (~johnw@2600:1700:cf00:db0:f056:f097:9c2d:4e24) (Quit: ZNC - http://znc.in) |
| 00:14:10 | → | rockymarine joins (~rocky@user/rockymarine) |
| 00:16:08 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 00:17:54 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 00:18:38 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 00:26:24 | × | gay9 quits (~quassel@94-168-123-190.static.v4.ziggozakelijk.nl) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 00:27:36 | → | janus joins (janus@anubis.0x90.dk) |
| 00:27:51 | <janus> | how do i declare an ffi function that doesn't take any arguments? |
| 00:28:06 | × | rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 265 seconds) |
| 00:28:54 | <EvanR> | you could give it the type IO () or IO A if it returns something |
| 00:29:26 | <EvanR> | where A is the return type |
| 00:30:00 | <EvanR> | () -> IO () is also valid but possibly pointless |
| 00:31:43 | → | rockymarine joins (~rocky@user/rockymarine) |
| 00:32:05 | → | gay9 joins (~quassel@94-168-123-190.static.v4.ziggozakelijk.nl) |
| 00:32:17 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 00:36:11 | <hpc> | alternatively, it is extra pointy ;) |
| 00:37:34 | <janus> | if i used "IO CLong" which part of the FFI declaration would state that it is a function? i'd think it would be just a long to the FFI then |
| 00:37:56 | <janus> | just because it says "ccall", it must be a function? |
| 00:43:48 | <EvanR> | the type IO Whatever means it's a function |
| 00:43:57 | <EvanR> | the type IO Whatever means it's a (foreign) function |
| 00:44:10 | <EvanR> | oh, this isn't discord |
| 00:44:38 | <EvanR> | in C, it couldn't be anything else |
| 00:50:16 | <janus> | but surely a symbol in C isn't necessarily a function? |
| 00:50:58 | <monochrom> | "IO" already states that it's a C "function". |
| 00:51:23 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds) |
| 00:53:06 | <hpc> | in C, only functions can perform IO |
| 00:54:18 | <monochrom> | https://www.haskell.org/onlinereport/haskell2010/haskellch8.html#x15-1620008.5.1 |
| 00:54:24 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal) |
| 00:55:12 | <monochrom> | So actually "ccall" and absence of "&" together say that it's a C "function". |
| 00:56:10 | <monochrom> | Becasue even "foreign import ccall foo :: CInt" is "int foo(void)". This one assumes that foo is pure. |
| 00:57:50 | <EvanR> | cool, a pure function that takes no arguments is just a constant |
| 00:58:25 | <janus> | oh, does that mean that is no difference between 'unsafePerformIO ioFun' and 'funNotInIO'? |
| 00:59:20 | <monochrom> | Yes. |
| 00:59:24 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.6) |
| 01:01:14 | <EvanR> | :thonk: if ioFun :: IO A, and isn't "pure", then there might be a difference depending on how the uPIO expression is used? |
| 01:01:58 | <janus> | i'm trying to fix up ghc-0.29 to compile with nhc98, and they use a pre-haskell98 ffi mechanism using a '_call_' keyword |
| 01:02:25 | <janus> | s/_call_/_ccall_/ |
| 01:02:49 | <monochrom> | EvanR, I believe that the question means that if my foo example turns out to be impure, then lying that it is pure gets the same illness as using unsafePerformIO. |
| 01:02:54 | → | azimut_ joins (~azimut@gateway/tor-sasl/azimut) |
| 01:03:06 | <EvanR> | yeah makes sense in context of foo |
| 01:03:56 | <monochrom> | But yeah now the result depends on how the impure thing is used and funny things done by code optimizations. |
| 01:04:46 | <monochrom> | _ccall_ is likely a precursor of ccall. |
| 01:05:14 | <janus> | nhc98 supports haskell98 all right, so i converting things to standard ffi |
| 01:05:41 | <janus> | but this is for the NameSupply, and genSymZh is probably impure |
| 01:06:01 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds) |
| 01:06:22 | <EvanR> | when in doubt, FFI your stuff as IO |
| 01:06:27 | <janus> | but they use it to construct initialNameSupply where "data NameSupply Name NameSupply NameSupply" |
| 01:06:29 | <EvanR> | impure until proven pure |
| 01:06:47 | <janus> | problem is that they use unsafePerformIO or some interleaving variant of it |
| 01:06:54 | <EvanR> | welp |
| 01:07:01 | <janus> | so maybe they are relying on it getting repeatedly evaluated somehow |
| 01:07:08 | <EvanR> | o_O |
| 01:07:23 | <EvanR> | sounds insane |
| 01:08:39 | <janus> | here is the file i am currently trying to port: https://paste.sr.ht/~janus/4429f882ec90027f116a576540beed5d01d0d21c |
| 01:09:44 | <janus> | so i thought i'd adapt the GLASGOW_HASKELL variant, since i have h98 ccall but i don't have Yale's Symbol or __gensym from HBC |
| 01:10:24 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:10:25 | <janus> | don't have LMLgensym either? (btw does anyone know where i can get LML?) |
| 01:11:31 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 01:12:04 | <EvanR> | LML, that's going back to the beginning isn't it |
| 01:12:55 | <EvanR> | is old software being impossible to build proof that time travel isn't possible |
| 01:13:18 | <janus> | i don't think LML is available anywhere on the web? nhc98 is pretty good imho, and was maintained for a long time |
| 01:13:19 | × | vglfr quits (~vglfr@145.224.94.16) (Ping timeout: 252 seconds) |
| 01:14:07 | <janus> | and it was almost bootsrapped |
| 01:15:42 | <janus> | i suppose i could try and keep it impure, since the YALE_HASKELL path suggests that they tried that |
| 01:16:31 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:18:24 | <EvanR> | hmm https://github.com/GunterMueller/Rio |
| 01:19:14 | <janus> | oooh that sounds like it is exactly meant for this use case |
| 01:23:04 | → | frost joins (~frost@user/frost) |
| 01:28:07 | <janus> | surely i can't unconditionally recurse on myself in haskell98's IO? |
| 01:28:43 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 01:29:46 | <janus> | seems like the monadic equivalent of "initialNameSupply = NameSupply <$> genSymZh <*> initialNameSupply <*> initialNameSupply" can't work |
| 01:29:47 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 258 seconds) |
| 01:31:14 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 01:32:05 | × | nunggu quits (~q@user/nunggu) (Ping timeout: 258 seconds) |
| 01:32:37 | <EvanR> | could be an especially lazy monad |
| 01:33:06 | <janus> | yeah i guess PrimIO could be lazy like that... ah bummer.. |
| 01:33:45 | × | azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 01:34:06 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 01:34:19 | <janus> | but Yale uses the 'IO' name and still has this construction |
| 01:35:09 | <EvanR> | um did <*> exist in ghc-0.29 |
| 01:35:33 | <janus> | no, it didn't. that's why i said the 'monadic equivalent'. just used applicative for brevity |
| 01:36:38 | <janus> | as you can see, Monad didn't even exist in GHC, they have monomorphized binders for all monads. oh the calamity |
| 01:36:54 | <EvanR> | it does look like an infinite binary tree of syms generated via unsafeIO evaluation |
| 01:37:33 | <janus> | yeah, not sure how to express this with NHC98... i will have to see how this is used, maybe i can avoid the infinite tree somehow |
| 01:38:29 | <EvanR> | how you learned to stop worrying and love the infinite tree |
| 01:38:33 | <EvanR> | of unsafePerformIO |
| 01:39:16 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 01:39:17 | jinsun | is now known as Guest4828 |
| 01:39:17 | jinsun__ | is now known as jinsun |
| 01:42:06 | × | Guest4828 quits (~jinsun@user/jinsun) (Ping timeout: 244 seconds) |
| 01:43:18 | <janus> | SplitUniq mentions how this part of the code is the most performance sensitive |
| 01:44:03 | <janus> | but given that i just need to run this compiler a couple of times, and our machines are so much faster than in the 90's, maybe i could get away with some naive version |
| 01:46:26 | <janus> | a Name is an Int, so it could be NameSupply 0 (NameSupply (-1) ...) (NameSupply 1 ...) |
| 01:47:42 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 01:50:59 | <EvanR> | what's this, enumerating the plane |
| 01:51:42 | <janus> | yeah, i think Name's just need to be unique, i don't think that there are any other requirements |
| 01:52:22 | <janus> | so i just need to make a binary tree that enumerates the 32-bit integers breadth first |
| 01:52:24 | × | _xor quits (~xor@74.215.182.83) (Quit: bbiab) |
| 01:53:53 | <EvanR> | interval bisection |
| 01:55:17 | → | ddellacosta joins (~ddellacos@89.45.224.130) |
| 01:55:48 | <EvanR> | [a,c] yields b=(a+c)/2, continue with [a,b] and [b,c] or something |
| 01:56:08 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 01:56:09 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 01:56:09 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:56:21 | <janus> | thanks that seems like it fits the bill |
| 01:57:14 | <EvanR> | left side + width probably makes more sense instead of overflowing |
| 01:57:27 | × | jero98772 quits (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection) |
| 02:02:19 | <EvanR> | since you can start with clean -2^31 and width/2 = 2^31 |
| 02:02:47 | <EvanR> | the first number is zero |
| 02:03:00 | × | lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 02:03:33 | × | ddellacosta quits (~ddellacos@89.45.224.130) (Ping timeout: 252 seconds) |
| 02:05:37 | → | ddellacosta joins (~ddellacos@86.106.143.161) |
| 02:13:26 | × | emmanuelux quits (~emmanuelu@2a01cb0000f39300c038d63b00f83cab.ipv6.abo.wanadoo.fr) (Quit: au revoir) |
| 02:17:29 | × | frost quits (~frost@user/frost) (Quit: Client closed) |
| 02:21:29 | → | lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 02:25:26 | → | frost joins (~frost@user/frost) |
| 02:26:17 | × | td_ quits (~td@muedsl-82-207-238-056.citykom.de) (Ping timeout: 252 seconds) |
| 02:28:03 | → | td_ joins (~td@muedsl-82-207-238-061.citykom.de) |
| 02:28:47 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
| 02:32:12 | × | xff0x quits (~xff0x@2405:6580:b080:900:dd90:9b38:b496:ed23) (Ping timeout: 264 seconds) |
| 02:35:52 | → | nate1 joins (~nate@98.45.169.16) |
| 02:36:21 | → | vglfr joins (~vglfr@145.224.94.16) |
| 02:39:19 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:39:19 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:39:19 | finn_elija | is now known as FinnElija |
| 02:43:04 | × | rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 244 seconds) |
| 02:45:17 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 02:49:44 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
| 02:51:47 | <mrianbloom> | Is there a standard function with the type :: (MonadTrans t, Monad m) => (m a -> m b -> m c) -> t m a -> t m b -> t m c |
| 02:54:47 | → | xff0x joins (~xff0x@2405:6580:b080:900:1f6b:da1d:cffe:2329) |
| 02:55:22 | <Axman6> | Not that I'm aware of - I'm not sure it would be generally possible to write one either. it would have to be specific to each t |
| 02:55:44 | → | rockymarine joins (~rocky@user/rockymarine) |
| 02:55:54 | <Axman6> | @unmty ExceptT e m a |
| 02:55:54 | <lambdabot> | m (Either e a) |
| 02:58:37 | <Axman6> | l* to be able to write unliftT2 :: (m a -> m b -> m c) -> ExceptT e m a -> ExceptT e m b -> ExceptT e m c, you need to know that the inner m's are actually returning Either, to then run them, see if either returned Left, then if not, call the function on the Right values, and lift that result back into ExceptT. It could be a type class, but I'm not sure how common it is for that to come up in practice |
| 02:59:44 | <mrianbloom> | Axman6: I see, that makes sense. What about a typeclass function for t? |
| 03:00:06 | <Axman6> | I don't understand the question |
| 03:00:51 | <mrianbloom> | A typeclass whose parameter is t |
| 03:01:02 | <Axman6> | you could have class MonadTrans t => MonadApply t where unliftA2 :: (m a -> m b -> m c) -> t m a -> t m b -> t m c, but you would need instances for each t |
| 03:01:25 | × | ddellacosta quits (~ddellacos@86.106.143.161) (Ping timeout: 268 seconds) |
| 03:01:38 | <mrianbloom> | Is there a standard typeclass like that? |
| 03:01:51 | <mrianbloom> | I'm just trying no to reinvent the wheel. |
| 03:02:09 | <mrianbloom> | *not |
| 03:03:27 | <Axman6> | Not that I'm aware of |
| 03:04:00 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 03:04:10 | <[Leary]> | mrianbloom: You can take advantage of the fact that Applicatives compose to write things like this generally, given that your Monad transformer is just the composition of a particular Monad. |
| 03:04:17 | <Axman6> | this was announced last weel, maybe it's in there :) https://hackage.haskell.org/package/monadology |
| 03:04:34 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 03:04:37 | <Axman6> | week* |
| 03:04:52 | <mrianbloom> | Nice |
| 03:05:01 | <mrianbloom> | I'll check that out. |
| 03:05:09 | <Axman6> | in fact https://hackage.haskell.org/package/monadology-0.1/docs/Control-Monad-Ology-General-Trans-Tunnel.html looks very relevant |
| 03:06:13 | <mrianbloom> | I'll give this a shot. |
| 03:07:33 | <[Leary]> | % :t liftA2 @(Compose _ _) |
| 03:07:33 | <yahb2> | liftA2 @(Compose _ _) ; :: (Applicative _1, Applicative _2) => ; (a -> b -> c) ; -> Compose _1 _2 a -> Compose _1 _2 b -> Compose _1 _2 c |
| 03:07:51 | <[Leary]> | Hmm, not quite right. |
| 03:09:35 | <[Leary]> | I guess it's just regular `liftA2`, once your `t m a` has been reduced to some `tf (m a)`. |
| 03:13:34 | <mrianbloom> | Is it the case that for both tunnel and hoist, the underlying function must be an endomorph |
| 03:20:55 | × | dtman34 quits (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
| 03:26:16 | → | nunggu joins (~q@user/nunggu) |
| 03:27:11 | → | jargon joins (~jargon@184.101.186.15) |
| 03:37:35 | × | Batzy quits (~quassel@user/batzy) (Read error: Connection reset by peer) |
| 03:37:51 | → | Batzy joins (~quassel@user/batzy) |
| 03:45:06 | × | nunggu quits (~q@user/nunggu) (Ping timeout: 258 seconds) |
| 03:46:12 | × | Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 03:46:49 | → | Batzy joins (~quassel@user/batzy) |
| 03:50:13 | × | Vajb quits (~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer) |
| 03:51:09 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) |
| 03:53:48 | × | Batzy quits (~quassel@user/batzy) (Ping timeout: 264 seconds) |
| 03:54:30 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 265 seconds) |
| 03:55:54 | × | rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 03:58:02 | → | rembo10 joins (~rembo10@main.remulis.com) |
| 04:01:11 | → | shriekingnoise joins (~shrieking@186.137.167.202) |
| 04:06:08 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 04:06:58 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 04:06:58 | × | tdsdp^ quits (~tdsdp@173-160-76-137-atlanta.hfc.comcastbusiness.net) (Remote host closed the connection) |
| 04:12:11 | → | Vajb joins (~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) |
| 04:12:34 | × | wroathe quits (~wroathe@user/wroathe) (Quit: leaving) |
| 04:12:34 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Read error: Connection reset by peer) |
| 04:15:32 | → | shriekingnoise joins (~shrieking@186.137.167.202) |
| 04:15:46 | → | nate1 joins (~nate@98.45.169.16) |
| 04:18:14 | × | rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 04:20:19 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 04:20:22 | → | rembo10 joins (~rembo10@main.remulis.com) |
| 04:31:50 | → | nate1 joins (~nate@98.45.169.16) |
| 04:33:49 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit) |
| 04:34:12 | → | shriekingnoise joins (~shrieking@186.137.167.202) |
| 04:35:47 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Read error: Connection reset by peer) |
| 04:36:18 | → | shriekingnoise joins (~shrieking@186.137.167.202) |
| 04:37:50 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Client Quit) |
| 04:40:05 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::6e80) (Ping timeout: 268 seconds) |
| 04:41:30 | × | Null_A quits (~null_a@c-73-93-244-42.hsd1.ca.comcast.net) () |
| 04:42:26 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 04:53:59 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 04:55:46 | → | nate1 joins (~nate@98.45.169.16) |
| 05:00:26 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 05:00:46 | × | Luj quits (~Luj@2a01:e0a:5f9:9681:b08d:568b:3590:6640) (Quit: Ping timeout (120 seconds)) |
| 05:01:06 | → | Luj joins (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) |
| 05:05:42 | → | titibandit joins (~titibandi@xdsl-87-78-162-143.nc.de) |
| 05:08:49 | → | Maeda joins (~Maeda@91-161-10-149.subs.proxad.net) |
| 05:09:32 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:09:51 | × | tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 260 seconds) |
| 05:10:12 | × | gmg quits (~user@user/gehmehgeh) (Ping timeout: 258 seconds) |
| 05:13:38 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 05:13:38 | jinsun | is now known as Guest7632 |
| 05:13:39 | × | Guest7632 quits (~jinsun@user/jinsun) (Killed (calcium.libera.chat (Nickname regained by services))) |
| 05:13:39 | jinsun__ | is now known as jinsun |
| 05:16:40 | × | jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
| 05:16:59 | → | jinsun joins (~jinsun@user/jinsun) |
| 05:17:08 | × | rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 265 seconds) |
| 05:27:05 | → | gmg joins (~user@user/gehmehgeh) |
| 05:27:47 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds) |
| 05:28:03 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 05:28:04 | jinsun | is now known as Guest7366 |
| 05:28:04 | jinsun__ | is now known as jinsun |
| 05:29:20 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 05:29:21 | jinsun | is now known as Guest214 |
| 05:29:21 | jinsun__ | is now known as jinsun |
| 05:31:19 | → | `2jt joins (~jtomas@86.red-88-17-188.dynamicip.rima-tde.net) |
| 05:31:31 | × | Guest7366 quits (~jinsun@user/jinsun) (Ping timeout: 244 seconds) |
| 05:32:32 | × | Guest214 quits (~jinsun@user/jinsun) (Ping timeout: 244 seconds) |
| 05:44:43 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 05:45:58 | → | rockymarine joins (~rocky@user/rockymarine) |
| 05:48:12 | × | causal quits (~user@50.35.83.177) (Quit: WeeChat 3.6) |
| 05:50:00 | × | analoq quits (~yashi@user/dies) (Ping timeout: 265 seconds) |
| 05:51:25 | → | analoq joins (~yashi@user/dies) |
| 05:53:08 | × | gmg quits (~user@user/gehmehgeh) (Ping timeout: 258 seconds) |
| 05:54:23 | → | gmg joins (~user@user/gehmehgeh) |
| 05:56:01 | → | nate1 joins (~nate@98.45.169.16) |
| 06:00:47 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 06:16:00 | → | nunggu joins (~q@user/nunggu) |
| 06:20:17 | × | rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 250 seconds) |
| 06:27:58 | × | perdent quits (~perdent@125.7.37.86) (Ping timeout: 252 seconds) |
| 06:28:24 | × | gmg quits (~user@user/gehmehgeh) (Ping timeout: 258 seconds) |
| 06:29:18 | → | c209e6dc-4d76-47 joins (~aditya@2601:249:4300:1296:195:dac6:592c:a55a) |
| 06:29:33 | <c209e6dc-4d76-47> | is there something like networkx for haskell? |
| 06:29:47 | <Axman6> | what is networkx? |
| 06:30:05 | <c209e6dc-4d76-47> | library to work on graphs/networks |
| 06:30:09 | → | gmg joins (~user@user/gehmehgeh) |
| 06:30:23 | <c209e6dc-4d76-47> | i am working on spectral graph theory |
| 06:30:29 | <Axman6> | perhaps fgl? |
| 06:31:04 | <c209e6dc-4d76-47> | let me take a look, does it support for linear algebra related stuff - eigenvalues, laplacian, etc? |
| 06:31:43 | <Axman6> | No idea I'm sorry, I've never done much with graphs, a mate of mine is/was the maintainer of fgl and did a lot of his PhD work using it |
| 06:32:58 | <c209e6dc-4d76-47> | no problem, but thanks for helping out! |
| 06:33:30 | <Axman6> | it's worth taking a look around hackage and seeing what turns up |
| 06:33:46 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 258 seconds) |
| 06:34:27 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 06:39:29 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:48:11 | → | zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) |
| 06:49:53 | → | nate1 joins (~nate@98.45.169.16) |
| 06:50:37 | → | chomwitt joins (~chomwitt@2a02:587:dc14:f500:b602:1ca2:8fdc:ffae) |
| 06:54:46 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 265 seconds) |
| 06:56:23 | × | nunggu quits (~q@user/nunggu) (Ping timeout: 258 seconds) |
| 06:58:01 | → | nunggu joins (~q@user/nunggu) |
| 06:58:57 | × | oldsk00l quits (~znc@ec2-18-134-177-246.eu-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds) |
| 07:00:59 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds) |
| 07:01:21 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:f304:45a9:c72c:4fdd) |
| 07:01:23 | × | chomwitt quits (~chomwitt@2a02:587:dc14:f500:b602:1ca2:8fdc:ffae) (Ping timeout: 268 seconds) |
| 07:01:29 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:09:45 | → | coot joins (~coot@213.134.176.158) |
| 07:14:58 | → | EvanR_ joins (~EvanR@user/evanr) |
| 07:15:21 | × | EvanR quits (~EvanR@user/evanr) (Ping timeout: 244 seconds) |
| 07:21:48 | <alp> | c209e6dc-4d76-47: you can find haskell igraph bindings out there, maybe as close as it gets. but nothing shockingy polished and comprehensive like networkx sadly, should however cover quite a bit of ground. |
| 07:23:35 | × | hochata quits (~user@user/hochata) (Ping timeout: 268 seconds) |
| 07:24:58 | → | dtman34 joins (~dtman34@2601:446:4400:2ad9:49aa:be6d:b3ac:4bab) |
| 07:27:33 | <siers> | ski, I have gotten to the F-algebra portion of "basic category theory for computer scientists" and I'm so excited that I'll be able to follow your F-algebra fueled explanations you sent me from like a month or two ago. :) |
| 07:30:07 | → | odnes joins (~odnes@ppp089210198232.access.hol.gr) |
| 07:31:17 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 07:31:53 | → | califax joins (~califax@user/califx) |
| 07:34:50 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 07:34:54 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 07:34:54 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Read error: Connection reset by peer) |
| 07:35:30 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 07:35:34 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 07:39:23 | → | toeffel joins (~toeffel@user/toeffel) |
| 07:43:54 | × | odnes quits (~odnes@ppp089210198232.access.hol.gr) (Ping timeout: 268 seconds) |
| 07:44:58 | × | c209e6dc-4d76-47 quits (~aditya@2601:249:4300:1296:195:dac6:592c:a55a) (Quit: Konversation terminated!) |
| 07:46:36 | → | odnes joins (~odnes@ppp089210198232.access.hol.gr) |
| 07:46:57 | × | titibandit quits (~titibandi@xdsl-87-78-162-143.nc.de) (Remote host closed the connection) |
| 07:46:59 | × | johnjaye quits (~pi@173.209.64.74) (Ping timeout: 265 seconds) |
| 07:47:06 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 07:48:42 | → | johnjaye joins (~pi@173.209.64.74) |
| 07:50:13 | → | MajorBiscuit joins (~MajorBisc@145.94.160.96) |
| 07:51:25 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 07:53:08 | → | king_gs joins (~Thunderbi@2806:103e:29:ac5e:a16e:4ac9:a89b:4d) |
| 07:53:18 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 07:57:07 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
| 07:57:10 | → | Pickchea joins (~private@user/pickchea) |
| 07:59:41 | × | cheater quits (~Username@user/cheater) (Quit: (BitchX) A gentleman is one who knows how to play the bagpipes, but chooses not to.) |
| 08:03:42 | <ski> | cheers, siers :) |
| 08:04:07 | → | shriekingnoise joins (~shrieking@186.137.167.202) |
| 08:08:59 | → | cheater joins (~Username@user/cheater) |
| 08:12:45 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit) |
| 08:14:18 | × | odnes quits (~odnes@ppp089210198232.access.hol.gr) (Quit: Leaving) |
| 08:17:13 | → | razetime joins (~quassel@117.254.35.177) |
| 08:17:28 | → | yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:df30:9337:5d21:828) |
| 08:17:58 | → | razetime_ joins (~quassel@117.254.35.177) |
| 08:17:59 | × | razetime_ quits (~quassel@117.254.35.177) (Client Quit) |
| 08:18:05 | × | razetime quits (~quassel@117.254.35.177) (Client Quit) |
| 08:18:28 | → | razetime joins (~quassel@117.254.35.177) |
| 08:18:48 | × | yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:df30:9337:5d21:828) (Remote host closed the connection) |
| 08:20:13 | → | yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:8fe3:ee0f:6df3:aee0) |
| 08:29:30 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 08:30:49 | × | vglfr quits (~vglfr@145.224.94.16) (Remote host closed the connection) |
| 08:31:24 | → | vglfr joins (~vglfr@145.224.94.16) |
| 08:34:27 | × | toeffel quits (~toeffel@user/toeffel) (Quit: quit) |
| 08:36:22 | → | califax joins (~califax@user/califx) |
| 08:42:21 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:49:20 | × | mestre quits (~mestre@191.177.181.194) (Ping timeout: 265 seconds) |
| 08:49:45 | × | ft quits (~ft@p3e9bc57b.dip0.t-ipconnect.de) (Quit: Lost terminal) |
| 08:50:04 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 08:51:03 | × | king_gs quits (~Thunderbi@2806:103e:29:ac5e:a16e:4ac9:a89b:4d) (Quit: king_gs) |
| 08:53:55 | → | __monty__ joins (~toonn@user/toonn) |
| 08:57:12 | × | frost quits (~frost@user/frost) (Ping timeout: 252 seconds) |
| 09:02:36 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 09:03:21 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 09:03:26 | × | yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:8fe3:ee0f:6df3:aee0) (Remote host closed the connection) |
| 09:03:44 | → | yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:2047:c85a:1d1e:f109) |
| 09:05:57 | × | nunggu quits (~q@user/nunggu) (Ping timeout: 258 seconds) |
| 09:06:09 | → | mestre joins (~mestre@191.177.181.194) |
| 09:09:25 | → | nunggu joins (~q@user/nunggu) |
| 09:13:14 | × | yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:2047:c85a:1d1e:f109) (Remote host closed the connection) |
| 09:13:33 | → | yvan-sraka joins (~yvan-srak@2a02:2788:224:71c:b243:152c:3096:7d25) |
| 09:18:50 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 244 seconds) |
| 09:19:21 | → | kuribas joins (~user@ptr-17d51epqora8ux5p3qo.18120a2.ip6.access.telenet.be) |
| 09:19:38 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 09:21:00 | → | zaquest joins (~notzaques@5.130.79.72) |
| 09:22:06 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 09:23:22 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 09:40:47 | × | jargon quits (~jargon@184.101.186.15) (Remote host closed the connection) |
| 09:42:52 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 09:44:32 | → | ix joins (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) |
| 09:50:36 | × | yvan-sraka quits (~yvan-srak@2a02:2788:224:71c:b243:152c:3096:7d25) (Remote host closed the connection) |
| 09:51:14 | <carbolymer> | does ghc have two runtimes? |
| 09:51:49 | <dminuoso> | Yes and no. The threaded and non-threaded runtime. |
| 09:51:52 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:52:06 | <carbolymer> | ah right |
| 09:56:20 | <carbolymer> | what are the downsides of using threaded rutime? |
| 09:57:23 | <dminuoso> | Ask the opposide |
| 09:57:31 | <dminuoso> | The non-threaded runtime is, officially, not even supported, despite being the default. |
| 09:57:52 | × | perrierjouet quits (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.6) |
| 09:57:56 | <dminuoso> | I dont even know why it is the way it is |
| 09:58:46 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:58:48 | <dminuoso> | carbolymer: But, consult https://gitlab.haskell.org/ghc/ghc/-/merge_requests/538 for a list of reasons why it is not yet the default. |
| 09:59:46 | → | perrierjouet joins (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
| 10:00:09 | <dminuoso> | carbolymer: In reality, using the non-threaded RTS will make quite a few things block or not work. |
| 10:03:02 | <carbolymer> | dminuoso: thanks for that link. That's why I'm asking, I don't see the reason to still keep non-threaded rts around |
| 10:05:32 | <dminuoso> | Well keeping it around is necessary for compatibility with some systems as far as I understand it |
| 10:08:24 | <ski> | @quote optimization.of.infinity |
| 10:08:24 | <lambdabot> | sipa says: it can optimize non-terminating programs into programs that output "<<loop>>" and quit; that's an optimization of infinity% ! |
| 10:11:47 | → | akegalj joins (~akegalj@93.138.18.60) |
| 10:12:58 | → | nate1 joins (~nate@98.45.169.16) |
| 10:13:09 | → | luffy joins (~chenqisu1@183.217.201.192) |
| 10:16:23 | → | cfricke joins (~cfricke@user/cfricke) |
| 10:17:45 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 250 seconds) |
| 10:21:10 | × | `2jt quits (~jtomas@86.red-88-17-188.dynamicip.rima-tde.net) (Ping timeout: 265 seconds) |
| 10:22:08 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 265 seconds) |
| 10:25:26 | × | vglfr quits (~vglfr@145.224.94.16) (Quit: Quit) |
| 10:25:33 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 10:25:39 | → | vglfr joins (~vglfr@145.224.94.16) |
| 10:25:52 | → | doyougnu joins (~doyougnu@2001:7c0:921:0:6078:e539:2d7c:fa86) |
| 10:32:48 | × | doyougnu quits (~doyougnu@2001:7c0:921:0:6078:e539:2d7c:fa86) (Ping timeout: 268 seconds) |
| 10:43:26 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 10:46:34 | <maerwald[m]> | New stack release |
| 10:48:19 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 11:01:23 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:04:31 | → | `2jt joins (~jtomas@86.red-88-17-188.dynamicip.rima-tde.net) |
| 11:05:22 | → | toeffel joins (~toeffel@user/toeffel) |
| 11:05:41 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 11:08:42 | → | chomwitt joins (~chomwitt@2a02:587:dc14:f500:b006:2ebc:491e:e6d5) |
| 11:14:57 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:16:40 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 11:18:58 | × | nunggu quits (~q@user/nunggu) (Ping timeout: 258 seconds) |
| 11:19:39 | → | nunggu joins (~q@user/nunggu) |
| 11:20:39 | toeffel | is now known as billcosby |
| 11:23:54 | → | doyougnu joins (~doyougnu@2001:7c0:921:0:85c2:c19d:1c67:c8bc) |
| 11:24:23 | × | doyougnu quits (~doyougnu@2001:7c0:921:0:85c2:c19d:1c67:c8bc) (Remote host closed the connection) |
| 11:24:41 | → | doyougnu joins (~doyougnu@2001:7c0:921:0:85c2:c19d:1c67:c8bc) |
| 11:25:30 | × | billcosby quits (~toeffel@user/toeffel) (Quit: quit) |
| 11:29:36 | × | doyougnu quits (~doyougnu@2001:7c0:921:0:85c2:c19d:1c67:c8bc) (Ping timeout: 260 seconds) |
| 11:30:01 | WaxCPU | is now known as Andrew |
| 11:31:05 | → | NieDzejkob joins (~quassel@178-37-215-128.adsl.inetia.pl) |
| 11:34:59 | × | NieDzejkob quits (~quassel@178-37-215-128.adsl.inetia.pl) (Client Quit) |
| 11:35:25 | → | Maja_ joins (~quassel@178-37-215-128.adsl.inetia.pl) |
| 11:36:40 | × | Maja_ quits (~quassel@178-37-215-128.adsl.inetia.pl) (Client Quit) |
| 11:37:01 | → | Maja_ joins (~quassel@178-37-215-128.adsl.inetia.pl) |
| 11:40:33 | Maja_ | is now known as Maja |
| 11:43:48 | × | coot quits (~coot@213.134.176.158) (Ping timeout: 265 seconds) |
| 11:48:25 | → | frost joins (~frost@user/frost) |
| 12:09:44 | → | doyougnu joins (~doyougnu@2001:7c0:921:0:85c2:c19d:1c67:c8bc) |
| 12:12:23 | → | lyle joins (~lyle@104.246.145.85) |
| 12:12:36 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:15:19 | × | nunggu quits (~q@user/nunggu) (Ping timeout: 258 seconds) |
| 12:17:00 | → | hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com) |
| 12:22:12 | → | gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 12:22:42 | × | MajorBiscuit quits (~MajorBisc@145.94.160.96) (Ping timeout: 260 seconds) |
| 12:23:29 | <dminuoso> | Mmm, I wish optparse-applicative would get rid of this silly monoid interface everywhere, and just accept [Mod T a] instead |
| 12:23:36 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 12:23:56 | <dminuoso> | Its visually disrupting with no real benefit. Seeing as we can interpret list as the free monoid, it's more than equivalent. :) |
| 12:23:59 | → | vorpuni joins (~pvorp@2001:861:3881:c690:ce8:83c1:1cb7:4be9) |
| 12:25:16 | → | MajorBiscuit joins (~MajorBisc@145.94.160.96) |
| 12:26:19 | <dminuoso> | Things like `idm` just add more confusion to unsuspecting newcomers as well |
| 12:35:52 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 12:36:04 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 12:42:39 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds) |
| 12:46:12 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 12:50:40 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 244 seconds) |
| 12:53:27 | → | coot joins (~coot@213.134.176.158) |
| 12:58:39 | → | toeffel joins (~toeffel@user/toeffel) |
| 13:06:17 | × | toeffel quits (~toeffel@user/toeffel) (Quit: quit) |
| 13:10:07 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 13:10:19 | × | razetime quits (~quassel@117.254.35.177) (Ping timeout: 265 seconds) |
| 13:12:08 | × | res0nat0r084490 quits (~Fletch@dia.whatbox.ca) (Quit: Ping timeout (120 seconds)) |
| 13:12:23 | → | res0nat0r084490 joins (~Fletch@dia.whatbox.ca) |
| 13:13:37 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 13:18:33 | × | luffy quits (~chenqisu1@183.217.201.192) (Ping timeout: 265 seconds) |
| 13:21:35 | → | razetime joins (~quassel@117.254.35.161) |
| 13:28:59 | <ski> | dminuoso : hm, there was some recentish blag which talked about something like that (except, i think, for HTML or XML generation, rather than option parsing) |
| 13:29:02 | → | PiDelport joins (uid25146@id-25146.lymington.irccloud.com) |
| 13:29:22 | <ski> | (about whether to use `m' where `Monoid m', or use `[m]') |
| 13:29:57 | <ski> | (.. if i could find it, that would be nice) |
| 13:30:18 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 13:30:24 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 13:33:26 | → | jero98772 joins (~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) |
| 13:38:42 | <[Leary]> | ski: https://blog.ocharles.org.uk/posts/2022-06-22-list-of-monoids-pattern.html |
| 13:38:54 | <[Leary]> | I don't find it very compelling though. |
| 13:40:27 | <ski> | ty |
| 13:44:55 | × | `2jt quits (~jtomas@86.red-88-17-188.dynamicip.rima-tde.net) (Ping timeout: 244 seconds) |
| 13:45:06 | × | whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 13:46:01 | → | `2jt joins (~jtomas@86.red-88-17-188.dynamicip.rima-tde.net) |
| 13:51:21 | <int-e> | Hmm. So basically they're pushing an mconcat from the call site into the implementation, with the idea that if you need only one argument, [x] to pass a singleton is light-weight compared to mconcat [x,y] for combining multiple arguments? |
| 13:52:41 | × | tcard quits (~tcard@p1772079-ipngn12801hodogaya.kanagawa.ocn.ne.jp) (Ping timeout: 250 seconds) |
| 13:53:14 | × | doyougnu quits (~doyougnu@2001:7c0:921:0:85c2:c19d:1c67:c8bc) (Ping timeout: 268 seconds) |
| 13:53:16 | <int-e> | . o O ( Cute, but not much of a pattern; those tend to run deeper. ) |
| 13:58:34 | × | mestre quits (~mestre@191.177.181.194) (Quit: Lost terminal) |
| 14:06:50 | × | razetime quits (~quassel@117.254.35.161) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 14:06:51 | → | benin08 joins (benin@gateway/vpn/protonvpn/benin) |
| 14:08:48 | × | benin0 quits (~benin@183.82.204.58) (Ping timeout: 265 seconds) |
| 14:08:49 | benin08 | is now known as benin0 |
| 14:10:20 | × | frost quits (~frost@user/frost) (Ping timeout: 252 seconds) |
| 14:14:30 | → | nate1 joins (~nate@98.45.169.16) |
| 14:16:07 | → | benin02 joins (~benin@183.82.207.175) |
| 14:17:39 | × | benin0 quits (benin@gateway/vpn/protonvpn/benin) (Ping timeout: 248 seconds) |
| 14:17:39 | benin02 | is now known as benin0 |
| 14:19:05 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
| 14:20:12 | × | ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Quit: leaving) |
| 14:20:28 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 14:25:48 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:32:24 | <dminuoso> | I think for most uses of optparse-applicative, there will be more than just a singleton in most uses of Mod. |
| 14:32:53 | <dminuoso> | (Or there will be often exactly none in case of InfoMod) |
| 14:36:21 | → | weier joins (~z@219.70.204.146) |
| 14:38:59 | → | acidjnk joins (~acidjnk@p200300d6e7137a147dd3ef2b14c15b4a.dip0.t-ipconnect.de) |
| 14:40:56 | × | akegalj quits (~akegalj@93.138.18.60) (Quit: leaving) |
| 14:49:32 | × | benin0 quits (~benin@183.82.207.175) (Remote host closed the connection) |
| 14:58:20 | → | rockymarine joins (~rocky@user/rockymarine) |
| 15:03:29 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 15:04:16 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 15:16:09 | EvanR_ | is now known as Evanr |
| 15:16:11 | Evanr | is now known as EvanR |
| 15:18:51 | → | DavidBinder joins (~davidbind@134.2.10.18) |
| 15:19:49 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:23:00 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.6) |
| 15:25:35 | × | raym quits (~raym@user/raym) (Quit: gonna try artix) |
| 15:27:14 | × | DavidBinder quits (~davidbind@134.2.10.18) (Quit: Leaving) |
| 15:29:51 | → | DavidBinder joins (~DavidBind@134.2.10.18) |
| 15:29:59 | → | David_Binder joins (~DavidBind@134.2.10.18) |
| 15:29:59 | × | David_Binder quits (~DavidBind@134.2.10.18) (Client Quit) |
| 15:30:21 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:30:50 | × | jero98772 quits (~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) (Ping timeout: 244 seconds) |
| 15:36:12 | → | raehik joins (~raehik@zone3.jesus.cam.ac.uk) |
| 15:38:04 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 244 seconds) |
| 15:39:48 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 15:44:00 | → | jero98772 joins (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) |
| 15:49:49 | → | k` joins (~user@152.7.255.205) |
| 15:50:00 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:50:43 | ← | EashanHatti parts (~Thunderbi@c-24-126-44-70.hsd1.wv.comcast.net) () |
| 15:51:00 | <k`> | How do folks normally use Storable with CStringLen? Just manually peek and poke at the length and the length and the string, and assume the alignment will be right? |
| 15:54:51 | → | hochata joins (~user@user/hochata) |
| 16:01:40 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:03:23 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 16:03:32 | → | doyougnu joins (~doyougnu@2001:7c0:921:0:f282:6ee3:55a:e90f) |
| 16:06:46 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 16:06:47 | × | califax quits (~califax@user/califx) (Write error: Broken pipe) |
| 16:07:12 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 16:07:12 | → | califax joins (~califax@user/califx) |
| 16:10:45 | × | doyougnu quits (~doyougnu@2001:7c0:921:0:f282:6ee3:55a:e90f) (Ping timeout: 268 seconds) |
| 16:13:25 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:13:46 | → | tcard joins (~tcard@p696070-ipngn8501hodogaya.kanagawa.ocn.ne.jp) |
| 16:15:15 | × | DavidBinder quits (~DavidBind@134.2.10.18) (Remote host closed the connection) |
| 16:16:16 | → | causal joins (~user@50.35.83.177) |
| 16:19:59 | → | raym joins (~raym@user/raym) |
| 16:20:14 | → | nate1 joins (~nate@98.45.169.16) |
| 16:21:36 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 16:21:44 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 16:28:52 | → | titibandit joins (~titibandi@xdsl-87-78-162-143.nc.de) |
| 16:34:35 | <ski> | @hoogle withCStringLen |
| 16:34:36 | <lambdabot> | Foreign.C.String withCStringLen :: String -> (CStringLen -> IO a) -> IO a |
| 16:34:36 | <lambdabot> | GHC.Foreign withCStringLen :: TextEncoding -> String -> (CStringLen -> IO a) -> IO a |
| 16:34:36 | <lambdabot> | Data.Text.Foreign withCStringLen :: Text -> (CStringLen -> IO a) -> IO a |
| 16:34:45 | × | MajorBiscuit quits (~MajorBisc@145.94.160.96) (Ping timeout: 250 seconds) |
| 16:34:59 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 16:35:23 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 16:37:15 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 16:42:36 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:42:48 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:f304:45a9:c72c:4fdd) (Quit: WeeChat 2.8) |
| 16:44:11 | → | johnw joins (~johnw@2600:1700:cf00:db0:7521:269e:c5d9:26aa) |
| 16:44:59 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:49:03 | × | k` quits (~user@152.7.255.205) (Ping timeout: 252 seconds) |
| 16:49:47 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds) |
| 16:51:21 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:52:35 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 16:53:30 | × | TonyStone quits (~TonyStone@2603-7080-8607-c36a-c1e9-cb91-01c1-e3d9.res6.spectrum.com) (Ping timeout: 244 seconds) |
| 16:55:25 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 16:55:38 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 16:57:29 | × | titibandit quits (~titibandi@xdsl-87-78-162-143.nc.de) (Quit: Leaving.) |
| 16:57:59 | × | rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 265 seconds) |
| 17:00:02 | × | weier quits (~z@219.70.204.146) (Quit: Konversation terminated!) |
| 17:00:39 | → | rockymarine joins (~rocky@user/rockymarine) |
| 17:00:53 | → | whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com) |
| 17:01:33 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 17:03:35 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:05:31 | × | rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 250 seconds) |
| 17:05:39 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:05:40 | → | TonyStone joins (~TonyStone@2603-7080-8607-c36a-61f2-c7b2-cd95-6846.res6.spectrum.com) |
| 17:10:00 | → | waldo joins (~waldo@user/waldo) |
| 17:10:18 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 17:13:48 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 17:17:31 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 17:18:40 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 17:19:28 | → | econo joins (uid147250@user/econo) |
| 17:19:37 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in) |
| 17:20:16 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 17:20:49 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 17:21:05 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:21:07 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 17:24:23 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 17:25:53 | → | rockymarine joins (~rocky@user/rockymarine) |
| 17:32:18 | <sm> | @where operators |
| 17:32:18 | <lambdabot> | I know nothing about operators. |
| 17:32:56 | <sm> | @where+ operators https://www.fpcomplete.com/haskell/tutorial/operators |
| 17:32:56 | <lambdabot> | Done. |
| 17:33:59 | × | `2jt quits (~jtomas@86.red-88-17-188.dynamicip.rima-tde.net) (Ping timeout: 268 seconds) |
| 17:34:16 | <sm> | good article (found via https://news.ycombinator.com/item?id=32893762) |
| 17:35:53 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 17:37:43 | × | kuribas quits (~user@ptr-17d51epqora8ux5p3qo.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 17:39:57 | ski | just saw it in another channel, some hour or two ago |
| 17:40:28 | <ski> | (someone seemed to think it contained a bewildering plethora of operators .. but it mostly seemed pretty tame to me) |
| 17:40:36 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds) |
| 17:41:28 | <geekosaur> | my observation is that those who come from a fixed-operators background are often bewildered by the number of haskell operators, not to mention that it's trivial to define new ones |
| 17:43:49 | <EvanR> | I made this YMMV https://github.com/haskellcats/haskell-operators |
| 17:43:53 | × | jero98772 quits (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection) |
| 17:44:52 | <EvanR> | "too many operators" debunked! |
| 17:45:00 | → | `2jt joins (~jtomas@86.red-88-17-188.dynamicip.rima-tde.net) |
| 17:45:11 | × | hochata quits (~user@user/hochata) (Ping timeout: 268 seconds) |
| 17:46:43 | ski | . o O ( "but I do try to avoid doing that because it does sound arrogant and patronizing" -- "yeah, the ignorant tend to misunderstand and incorrectly infer intent" ) |
| 17:46:48 | × | raehik quits (~raehik@zone3.jesus.cam.ac.uk) (Ping timeout: 265 seconds) |
| 17:48:15 | ski | also mentioned <https://github.com/ekmett/lens/wiki/Operators> as a larger maze to get lost in |
| 17:48:37 | <EvanR> | wow there's no so many in lens as I thought |
| 17:48:50 | <EvanR> | oh, it's 4 columns... |
| 17:49:06 | <glguy> | EvanR: <> is in Prelude now |
| 17:49:13 | <EvanR> | yeah I realize that |
| 17:49:16 | <geekosaur> | but in lens at least they follow patterns and if you learn the patterns you get pretty much the entire suite of operators |
| 17:49:31 | <EvanR> | I need to dust off my table |
| 17:49:32 | <geekosaur> | and there's only like 4 patterns iirc |
| 17:49:38 | <ski> | (plus a few more in the Notes) |
| 17:51:32 | <dolio> | Clearly it's much less bewildering to overload the same small collection of operators in many different, incoherent ways depending on the context. |
| 17:53:46 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:55:10 | <EvanR> | that's kind of how alphabets work too |
| 17:55:38 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 17:56:05 | <EvanR> | most of the image space of a 8x13 pixel grid is going unused! |
| 17:56:14 | <geekosaur> | enh. it's incoherent in English but not Spanish |
| 17:56:34 | <geekosaur> | (or at least much less incoherent) |
| 17:56:54 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 17:57:00 | <int-e> | EvanR: ink is expensive |
| 17:57:47 | → | titibandit joins (~titibandi@xdsl-87-78-162-143.nc.de) |
| 17:57:51 | <sm> | I think the article did a great job explaining the most common and useful operators, with motivating examples.. good writing |
| 17:59:09 | <sm> | bad at displaying date and author alas |
| 17:59:21 | × | rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 265 seconds) |
| 18:00:09 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 18:04:11 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 18:10:10 | → | Tuplanolla joins (~Tuplanoll@91-159-69-34.elisa-laajakaista.fi) |
| 18:13:00 | × | Techcable quits (~Techcable@user/Techcable) (Remote host closed the connection) |
| 18:13:08 | → | Techcable joins (~Techcable@user/Techcable) |
| 18:15:29 | → | redviking joins (~redviking@24.48.51.166) |
| 18:17:23 | → | rockymarine joins (~rocky@user/rockymarine) |
| 18:21:56 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 18:23:25 | → | haskell_is_no_ha joins (~haskell_i@c-73-169-221-60.hsd1.wa.comcast.net) |
| 18:23:54 | → | tomboy64 joins (~tomboy64@user/tomboy64) |
| 18:29:02 | × | haskell_is_no_ha quits (~haskell_i@c-73-169-221-60.hsd1.wa.comcast.net) (Remote host closed the connection) |
| 18:31:21 | × | waldo quits (~waldo@user/waldo) (Ping timeout: 252 seconds) |
| 18:36:11 | → | Pickchea joins (~private@user/pickchea) |
| 18:36:55 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:37:36 | × | Linux quits (~kernel@user/OpenSource) (Ping timeout: 268 seconds) |
| 18:39:16 | → | Guest|59 joins (~Guest|59@80.143.205.77.rev.sfr.net) |
| 18:39:51 | × | Guest|59 quits (~Guest|59@80.143.205.77.rev.sfr.net) (Client Quit) |
| 18:40:11 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
| 18:44:55 | <zzz> | @type (, 7 ()) |
| 18:44:56 | <lambdabot> | Num (() -> t1) => t2 -> (t2, t1) |
| 18:45:02 | <zzz> | can anyone explain this to me? |
| 18:46:00 | <geekosaur> | (, x) for some x is a tuple section (requires TupleSections extension), which takes a parameter and produces a tuple |
| 18:46:14 | <zzz> | yes |
| 18:46:27 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 18:46:32 | <geekosaur> | `7 ()` reads `7` as a function which is passed a parameter `()`; this means a Num instance for a function i srequired |
| 18:46:44 | <geekosaur> | thus `Num (() -> t1)` |
| 18:46:51 | <zzz> | that's the part i'm having trouble with |
| 18:47:51 | <geekosaur> | Haskell does not know what a "number" is; any type for which you can write fromInteger can conceivably have a Num instance |
| 18:47:56 | <geekosaur> | including functions |
| 18:48:14 | <geekosaur> | :t 7 |
| 18:48:15 | <lambdabot> | Num p => p |
| 18:48:40 | <geekosaur> | numeric literals are treated specially: they are stored as Integer and fromInteger is called on them at runtime |
| 18:49:31 | <geekosaur> | btw it *is* possible to write a function instance of Num. moreover, it's possible to write a Num instance for any Applicative, not just functions |
| 18:50:29 | <zzz> | ah i get it |
| 18:50:31 | <zzz> | thanks |
| 18:50:39 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 18:51:08 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds) |
| 18:51:13 | <geekosaur> | (if it's got a decimal point, it's stored as a Rational and fromRational is called on them) |
| 18:52:38 | → | MoC joins (~moc@user/moc) |
| 18:53:26 | Lord_of_Life_ | is now known as Lord_of_Life |
| 18:54:55 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 18:55:27 | <geekosaur> | @let instance Num a => Num (b -> a) where (+) = liftA2 (+); (-) = liftA2 (-); (*) = liftA2 (*); negate = fmap negate; abs = fmap abs; signum = fmap signum; fromInteger = pure . fromInteger |
| 18:55:29 | <lambdabot> | Defined. |
| 18:55:44 | <geekosaur> | there's your instance for any Applicative including functions |
| 18:56:06 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 18:57:15 | <geekosaur> | well, wibble on "any Applicative": it has to have something with a Num instance "inside" it |
| 18:57:47 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 18:57:50 | <geekosaur> | so `7 ()` won't work with it unless you give () a Num instance (which is possible, just pretty useless) |
| 18:58:54 | × | MoC quits (~moc@user/moc) (Quit: Konversation terminated!) |
| 18:59:05 | × | chomwitt quits (~chomwitt@2a02:587:dc14:f500:b006:2ebc:491e:e6d5) (Ping timeout: 268 seconds) |
| 19:00:14 | <geekosaur> | @let instance Num () where _ + _ = (); _ - _ = (); negate = id; abs = id; signum = id; fromInteger _ = () |
| 19:00:15 | <lambdabot> | /sandbox/tmp/.L.hs:172:10: error: [-Wmissing-methods, -Werror=missing-methods] |
| 19:00:15 | <lambdabot> | • No explicit implementation for |
| 19:00:15 | <lambdabot> | ‘*’ |
| 19:00:30 | <geekosaur> | @let instance Num () where _ + _ = (); _ - _ = (); _ * _ = (); negate = id; abs = id; signum = id; fromInteger _ = () |
| 19:00:31 | <lambdabot> | Defined. |
| 19:01:05 | <geekosaur> | > (0, 7 ()) |
| 19:01:07 | <lambdabot> | ((),()) |
| 19:03:34 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
| 19:03:43 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:04:34 | <geekosaur> | (this is partly because ExtendedDefaultRules is enabled in lambdabot so () is also the default type instead of Integer; accordingly, that Num instance for () produces a lot of surprises in lambdabot and ghci) |
| 19:04:44 | <EvanR> | a numeric constant like 1.234e308 is stored as a Rational ? xD |
| 19:05:00 | <geekosaur> | iirc yes |
| 19:05:47 | × | `2jt quits (~jtomas@86.red-88-17-188.dynamicip.rima-tde.net) (Ping timeout: 244 seconds) |
| 19:06:17 | <geekosaur> | maybe someone who knows more about ghc internals can chime in about it; I think this might work out to be 1.234 stored as Rational and e becomes ^? |
| 19:06:26 | <zzz> | ok i'm bending my mind with the Num (b -> a) instance |
| 19:06:31 | <zzz> | thanks |
| 19:06:51 | <geekosaur> | function instances for anything are pretty mindbending |
| 19:07:13 | <EvanR> | even if the compiler is smart about it, now I'm scared about doing conversions at runtime through Rational heh |
| 19:07:26 | <geekosaur> | good, I think |
| 19:07:43 | <geekosaur> | it's not recommended for a number of reasons iirc |
| 19:07:57 | <geekosaur> | not just the chance for memory-filling denoms |
| 19:09:09 | × | redviking quits (~redviking@24.48.51.166) (Quit: Client closed) |
| 19:11:33 | → | sagri__ joins (~cpli@77.47.62.180) |
| 19:11:39 | <zzz> | f <*> g = \x -> f x (g x) -- this is fun |
| 19:11:42 | × | raym quits (~raym@user/raym) (Remote host closed the connection) |
| 19:12:27 | <Rembane> | Which bird is that? |
| 19:12:51 | <geekosaur> | `ap` / S combinator |
| 19:13:14 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 19:13:27 | <Rembane> | Sweet! Thank you! |
| 19:13:53 | sagri__ | is now known as sai |
| 19:14:01 | sai | is now known as saii |
| 19:14:09 | <Rembane> | Starling! |
| 19:14:33 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 19:15:46 | <EvanR> | that combinator comes up a lot |
| 19:16:03 | <EvanR> | so you use <*> and then no one understands the code |
| 19:19:14 | <zzz> | Rembane: https://gist.github.com/jrvieira/69c2af44f04cd6924aaf976f2a8d0fc3 |
| 19:20:40 | → | raym joins (~raym@user/raym) |
| 19:21:29 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Remote host closed the connection) |
| 19:21:35 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
| 19:22:22 | <Rembane> | zzz: Thank you! |
| 19:22:54 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 19:23:38 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 19:23:51 | <ski> | > sortBy (comparing length <> compare) (words "The quick brown fox jumps over the lazy dog") -- sorting primarily by length, secondarily by usual lexicographic ordering |
| 19:23:52 | × | saii quits (~cpli@77.47.62.180) (Quit: WeeChat 3.6) |
| 19:23:54 | <lambdabot> | ["The","dog","fox","the","lazy","over","brown","jumps","quick"] |
| 19:23:55 | <ski> | @where monoids |
| 19:23:55 | <lambdabot> | comment on "Monoids? In my programming language?" by Cale in 2008 (or 2009 ?) at <http://www.reddit.com/r/programming/comments/7cf4r/monoids_in_my_programming_language/c06adnx> about a use of ` |
| 19:23:55 | <lambdabot> | instance Monoid a => Monoid (rho -> a)' |
| 19:24:09 | <ski> | zzz : see ^ for another use of function instance |
| 19:24:09 | → | sagri_ joins (~cpli@77.47.62.180) |
| 19:24:19 | sagri_ | is now known as sai |
| 19:24:27 | <zzz> | i love that one |
| 19:25:20 | <ski> | > map (id^2 + 1) [0 .. 9] :: [Integer] |
| 19:25:22 | <lambdabot> | [1,2,5,10,17,26,37,50,65,82] |
| 19:25:44 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 19:25:54 | × | raym quits (~raym@user/raym) (Remote host closed the connection) |
| 19:25:56 | <ski> | > map (cos^2 + sin^2) [0,pi/4 .. 2*pi] |
| 19:25:58 | <lambdabot> | [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0] |
| 19:26:48 | <ski> | > map (fst^2 - fst*snd + snd^2) [(x,y) | [x,y] <- replicateM 2 [-1 .. 2]9 |
| 19:26:49 | <lambdabot> | <hint>:1:72: error: |
| 19:26:49 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
| 19:26:53 | <ski> | > map (fst^2 - fst*snd + snd^2) [(x,y) | [x,y] <- replicateM 2 [-1 .. 2]] |
| 19:26:54 | <lambdabot> | [()] |
| 19:27:04 | <ski> | > map (fst^2 - fst*snd + snd^2) [(x,y) | [x,y] <- replicateM 2 [-1 .. 2]] :: [Integer] |
| 19:27:06 | <lambdabot> | [1,1,3,7,1,0,1,4,3,1,1,3,7,4,3,4] |
| 19:27:23 | → | pavonia joins (~user@user/siracusa) |
| 19:27:38 | <dminuoso> | Is there builtin support for exceptions in ST? |
| 19:27:53 | <dminuoso> | Im almost convinced there is not, but maybe Im overlooking something |
| 19:27:58 | <dminuoso> | (Beyond using say ExceptT of course) |
| 19:28:24 | <ski> | afaik, no |
| 19:29:03 | <ski> | (hm .. how about `STM' ?) |
| 19:29:20 | sai | is now known as saii |
| 19:29:32 | <ski> | (not counting `retry', of course) |
| 19:30:12 | <dminuoso> | STM has exceptions yeah (throwSTM), but its not usable for me |
| 19:30:12 | <ski> | how are exceptions arising ? or you'd like to raise some yourself ? |
| 19:30:16 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 260 seconds) |
| 19:30:18 | <dminuoso> | I would like to raise some myself |
| 19:30:25 | <ski> | ok |
| 19:30:29 | → | MoC joins (~moc@user/moc) |
| 19:30:40 | <dminuoso> | But I can address it by switching from `traverse_` over a list into just recursing into that list, and producing an Either at the end |
| 19:30:57 | <ski> | probably `ExceptT', or some CPS variant, is where it is at |
| 19:32:10 | → | cg1 joins (~cg1@199.241.26.152) |
| 19:32:36 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds) |
| 19:34:33 | → | beteigeuze joins (~Thunderbi@p5090d00a.dip0.t-ipconnect.de) |
| 19:38:11 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 19:39:10 | → | gmg joins (~user@user/gehmehgeh) |
| 19:40:39 | → | raym joins (~raym@user/raym) |
| 19:41:46 | × | gmg quits (~user@user/gehmehgeh) (Client Quit) |
| 19:44:56 | → | waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
| 19:45:09 | → | OpenSource joins (~kernel@user/OpenSource) |
| 19:45:09 | → | trcc joins (~trcc@87-57-134-11-cable.dk.customer.tdc.net) |
| 19:46:54 | <ski> | @type (runState .) . mapM . (state .) |
| 19:46:56 | <lambdabot> | Traversable t => (a -> s -> (b, s)) -> t a -> s -> (t b, s) |
| 19:47:05 | <ski> | @type flip . (((swap .) . runState) .) . mapM . ((state . (swap .)) .) . flip |
| 19:47:07 | <lambdabot> | Traversable t => (s -> a -> (s, b)) -> s -> t a -> (s, t b) |
| 19:47:14 | <ski> | @hoogle mapAccumL |
| 19:47:15 | <lambdabot> | Data.List mapAccumL :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c) |
| 19:47:15 | <lambdabot> | Data.Traversable mapAccumL :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c) |
| 19:47:15 | <lambdabot> | GHC.OldList mapAccumL :: (acc -> x -> (acc, y)) -> acc -> [x] -> (acc, [y]) |
| 19:47:26 | <ski> | @type (execState .) . mapM . (state .) |
| 19:47:27 | <lambdabot> | Traversable t => (a -> s -> (b, s)) -> t a -> s -> s |
| 19:47:37 | <ski> | @type flip . ((execState) .) . mapM . ((state . (swap .)) .) . flip |
| 19:47:38 | <lambdabot> | Traversable t => (s -> a -> (s, b)) -> s -> t a -> s |
| 19:47:44 | <ski> | @hoogle mapAccumL_ |
| 19:47:45 | <lambdabot> | Stream mapAccumL_ :: Monad m => (c -> a -> m (c, b)) -> c -> Stream m a r -> Stream m b (c, r) |
| 19:47:53 | <ski> | @type (runExcept .) . mapM . (except .) |
| 19:47:55 | <lambdabot> | Traversable t => (a -> Either e b) -> t a -> Either e (t b) |
| 19:48:02 | <ski> | @type (runExceptT .) . mapM . (ExceptT .) |
| 19:48:03 | <lambdabot> | (Traversable t, Monad m) => (a -> m (Either e b)) -> t a -> m (Either e (t b)) |
| 19:48:12 | <ski> | @type (runExceptT .) . mapM_ . (ExceptT .) |
| 19:48:13 | <lambdabot> | (Foldable t, Monad m) => (a -> m (Either e b)) -> t a -> m (Either e ()) |
| 19:48:20 | <ski> | @type (execExceptT .) . mapM_ . (ExceptT .) |
| 19:48:21 | <lambdabot> | (Foldable t, Monad m) => (a -> m (Either e b)) -> t a -> m (Maybe e) |
| 19:50:12 | × | waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 244 seconds) |
| 19:51:44 | <trcc> | I have this: https://paste.tomsmeding.com/h8D57ics and I am wondering why I get an error with line 32 whereas lines 29-31 works fine. It is hspec with shouldSatisfy |
| 19:54:44 | <ski> | it apparently wants to be able to `Show' `result' |
| 19:54:54 | <geekosaur> | because `shouldSatisfy` wants to do `show` on the left parameter if the right parameter isn't satisfied. The one that works unwraps the Cmd.Failure and shows its contents; that and the error suggests that Cmd doesn't have a Show instance |
| 19:54:57 | <ski> | presumably if the check fails |
| 19:55:22 | <geekosaur> | which is different from its unwrapped content having one |
| 19:55:39 | <trcc> | geekosaur okay. Weird requirement in my opinion. Thank you though |
| 19:56:26 | <geekosaur> | why? it makes sense that a failure case would be displayed |
| 19:56:34 | → | adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan) |
| 19:56:43 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 19:58:35 | <trcc> | hm yes |
| 19:58:41 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 19:59:20 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 19:59:37 | <geekosaur> | it just doesn't necessarily fit with a parser where a success case might include non-`show`able components |
| 19:59:42 | × | rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 265 seconds) |
| 20:00:05 | <trcc> | just avoided the shouldsatisfy and called the function directly |
| 20:02:40 | <ski> | perhaps there could be a variant that is supplied with a (partial) accessor for the part to check |
| 20:03:07 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 20:04:06 | <ski> | shouldSatisfyPart :: (HasCallStack,Show b) => (a -> Maybe b) -> a -> (b -> Bool) -> Expectation -- or somesuch |
| 20:05:40 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
| 20:06:49 | × | trcc quits (~trcc@87-57-134-11-cable.dk.customer.tdc.net) (Quit: Connection closed) |
| 20:15:39 | × | tomboy64 quits (~tomboy64@user/tomboy64) (Read error: Connection reset by peer) |
| 20:15:48 | × | lyle quits (~lyle@104.246.145.85) (Quit: WeeChat 3.6) |
| 20:16:16 | → | tomboy64 joins (~tomboy64@user/tomboy64) |
| 20:17:38 | × | titibandit quits (~titibandi@xdsl-87-78-162-143.nc.de) (Remote host closed the connection) |
| 20:17:56 | → | hochata joins (~user@user/hochata) |
| 20:23:30 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 20:24:58 | → | ft_ joins (~ft@p3e9bc57b.dip0.t-ipconnect.de) |
| 20:25:54 | → | waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
| 20:26:03 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 20:26:50 | × | waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Read error: Connection reset by peer) |
| 20:26:55 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 20:28:13 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 20:29:03 | ft_ | is now known as ft |
| 20:30:18 | → | rockymarine joins (~rocky@user/rockymarine) |
| 20:31:55 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 20:34:10 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 20:38:15 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
| 20:39:41 | × | rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
| 20:41:14 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 20:45:59 | → | waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
| 20:46:29 | × | gay9 quits (~quassel@94-168-123-190.static.v4.ziggozakelijk.nl) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 20:47:22 | → | gay9 joins (~quassel@94-168-123-190.static.v4.ziggozakelijk.nl) |
| 20:49:29 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 20:56:51 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 20:58:02 | × | MoC quits (~moc@user/moc) (Quit: Konversation terminated!) |
| 20:59:03 | → | rockymarine joins (~rocky@user/rockymarine) |
| 21:06:05 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 21:08:48 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:09:37 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:10:57 | → | mestre joins (~mestre@191.177.181.194) |
| 21:11:09 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 268 seconds) |
| 21:11:41 | × | johnjaye quits (~pi@173.209.64.74) (Ping timeout: 268 seconds) |
| 21:12:49 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 21:13:04 | → | johnjaye joins (~pi@173.209.64.74) |
| 21:16:35 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 21:16:36 | jinsun | is now known as Guest9638 |
| 21:16:36 | × | Guest9638 quits (~jinsun@user/jinsun) (Killed (sodium.libera.chat (Nickname regained by services))) |
| 21:16:36 | jinsun__ | is now known as jinsun |
| 21:21:58 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 21:26:06 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 21:30:34 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 265 seconds) |
| 21:40:23 | OpenSource | is now known as QNX |
| 21:42:03 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:43:21 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 21:45:33 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:47:29 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 21:51:44 | × | coot quits (~coot@213.134.176.158) (Quit: coot) |
| 21:59:34 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 265 seconds) |
| 22:00:13 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 22:00:47 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 22:01:13 | × | vorpuni quits (~pvorp@2001:861:3881:c690:ce8:83c1:1cb7:4be9) (Remote host closed the connection) |
| 22:10:11 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 22:11:35 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 22:12:12 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 22:14:49 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 22:21:21 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:23:09 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 22:27:36 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 22:29:12 | × | acidjnk quits (~acidjnk@p200300d6e7137a147dd3ef2b14c15b4a.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 22:29:24 | × | mestre quits (~mestre@191.177.181.194) (Quit: Lost terminal) |
| 22:30:53 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 22:31:03 | × | zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
| 22:31:54 | <zzz> | how do i benchmark a function that takes the contents of a file as an input using criterion? |
| 22:32:26 | × | johnjaye quits (~pi@173.209.64.74) (Ping timeout: 265 seconds) |
| 22:34:55 | <zzz> | nvm i got over my problem |
| 22:35:24 | <glguy> | zzz: do you know about https://hackage.haskell.org/package/criterion-1.6.0.0/docs/Criterion-Main.html#v:env ? |
| 22:35:52 | → | johnjaye joins (~pi@173.209.64.74) |
| 22:36:18 | × | Tuplanolla quits (~Tuplanoll@91-159-69-34.elisa-laajakaista.fi) (Ping timeout: 265 seconds) |
| 22:37:47 | <zzz> | ah this is even nicer |
| 22:37:48 | <zzz> | thanks! |
| 22:40:55 | × | PiDelport quits (uid25146@id-25146.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 22:54:15 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 22:59:01 | × | rockymarine quits (~rocky@user/rockymarine) (Ping timeout: 265 seconds) |
| 23:00:59 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 23:02:44 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 23:04:22 | → | rockymarine joins (~rocky@user/rockymarine) |
| 23:07:14 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 265 seconds) |
| 23:16:46 | → | nate1 joins (~nate@98.45.169.16) |
| 23:20:35 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Read error: Connection timed out) |
| 23:21:45 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 265 seconds) |
| 23:22:43 | → | jero98772 joins (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) |
| 23:22:53 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 23:26:10 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 23:27:12 | × | LukeHoersten quits (~LukeHoers@user/lukehoersten) (Ping timeout: 244 seconds) |
| 23:30:35 | → | LukeHoersten joins (~LukeHoers@user/lukehoersten) |
| 23:30:55 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 23:35:57 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 23:40:35 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 265 seconds) |
| 23:40:48 | → | EashanHatti joins (~Thunderbi@c-24-126-44-70.hsd1.wv.comcast.net) |
| 23:41:49 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::c9e3) |
| 23:46:12 | → | nate1 joins (~nate@98.45.169.16) |
| 23:53:38 | × | waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 265 seconds) |
| 23:54:12 | → | edrx joins (~Eduardo@2804:56c:d2dc:ac00:e2ec:2fa5:102b:401a) |
| 23:55:32 | → | waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
| 23:59:19 | <edrx> | hi all, I am the author of this - <http://angg.twu.net/emacsconf2020.html>, "On why most of the best features in eev look like 5-minute hacks" - and now that I am learning cabal I am working on |
All times are in UTC on 2022-09-19.