Logs on 2023-12-08 (liberachat/#haskell)
| 00:02:24 | <monochrom> | I don't think you should split hair to the point that Engine and Car are split into two modules. |
| 00:03:24 | <monochrom> | Especially since, for example, Engine refers to Car, it is not like Engine is "resuable for other things like Ships" anyway. |
| 00:04:10 | × | idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1) |
| 00:04:44 | <EvanR> | yeah you can easily put the mutually recursive type definitions in 1 module and have modules for the operations elsewhere that import that |
| 00:05:13 | <EvanR> | one type per file is ... probably not a good hill to die on in haskell |
| 00:08:32 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 256 seconds) |
| 00:09:25 | → | Square2 joins (~Square4@user/square) |
| 00:10:18 | <int-e> | maybe if GHC was smarter about cyclic imports |
| 00:10:47 | <int-e> | (though even then, do you really want to split your syntax tree into several files? for example.) |
| 00:12:01 | × | Square quits (~Square@user/square) (Ping timeout: 256 seconds) |
| 00:22:30 | → | nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
| 00:23:12 | → | steew_ joins (~steew@user/steew) |
| 00:23:50 | steew_ | is now known as steew |
| 00:23:59 | <geekosaur> | henning does… |
| 00:25:40 | <Axman6> | DerDummNemetzkii: an alternative solution is to make the reference to car in the engine a type variable, data Engine' car = Engine {...}, then elsewhere you can have type Engine = Engine' Car |
| 00:27:11 | × | nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
| 00:31:54 | <monochrom> | The fundamental theorem of modules: mutual import, separate compilation,100% type inference: Pick two. |
| 00:32:22 | <glguy> | That's pretty good that we get to pick 2 |
| 00:32:45 | <c_wraith> | I'm really not all that wedded to separate compilation. |
| 00:33:08 | <geekosaur> | I am, I have no intention of waiting for text or aeson to compile every time |
| 00:33:21 | <monochrom> | For example, in *ML, they gave up the 3rd one. In fact, their best practice is that whether you have mutual imports or not, you still handwrite module signatures (we call them "hs-boot"s). |
| 00:33:22 | <geekosaur> | (or more to the point, all the dependencies of dbus for my xmonad config…) |
| 00:33:31 | <glguy> | doctor, it hurts when I use aeson |
| 00:34:25 | <c_wraith> | I mean, javac has done mutual imports with pretty good dependency tracking to avoid unnecessary recompiler for 20 years |
| 00:34:32 | <c_wraith> | *recompiles |
| 00:35:05 | <monochrom> | Therefore, I don't understand why Haskellers complain so bitterly about having to write hs-boots for mutual imports and praise how "easy" it is in other languages. |
| 00:35:42 | <monochrom> | c_wraith, javac did not do any type inference for 20 years. |
| 00:35:52 | → | juri_ joins (~juri@79.140.117.153) |
| 00:36:14 | <monochrom> | And probably still do little or none today. |
| 00:37:15 | <c_wraith> | well, for one, hs-boot files are not documented in a readable way. I've looked into using them before, and the conclusion I got was "it's better to use a worse module structure that doesn't need this" |
| 00:37:27 | <monochrom> | But perhaps you can cite dynamically typed languages such as shell, tcl, and python. |
| 00:38:39 | <glguy> | if backpack had found more adoption, maybe we'd be used to it more |
| 00:39:14 | <c_wraith> | amusingly, I've used one portion of backpack repeatedly. It was documented well. |
| 00:39:25 | → | flebron joins (~flebron@2a00:79e1:abc:1208:c9ca:d32c:f1ea:8834) |
| 00:43:55 | × | juri_ quits (~juri@79.140.117.153) (Ping timeout: 276 seconds) |
| 00:45:27 | <flebron> | Hi folks :) I'm implementing an idea by Oleg Kiselyov in his paper https://arxiv.org/pdf/1109.0784.pdf "Implementing Explicit and Finding Implicit Sharing in Embedded DSLs". I have this sort of structure: |
| 00:45:28 | <flebron> | ``` |
| 00:45:28 | <flebron> | data ExprF rep where |
| 00:45:29 | <flebron> | ParamF :: Int -> ExprF rep |
| 00:45:29 | <flebron> | ConstantF :: SomeArray -> ExprF rep |
| 00:45:30 | <flebron> | AddF :: rep -> rep -> ExprF rep |
| 00:45:30 | <flebron> | SubF :: rep -> rep -> ExprF rep |
| 00:45:31 | <flebron> | ... |
| 00:45:31 | <flebron> | deriving (Traversable, Foldable, Show, Functor, Ord, Eq) |
| 00:45:32 | <flebron> | type Shaxpr = Fix ShaxprF |
| 00:45:32 | <flebron> | ``` |
| 00:45:33 | <flebron> | Now suppose I have some heavily nested expression tree, `tree :: Expr`. There are repeated subtrees here, and I'd like to dedup them. I thus create this function: |
| 00:45:33 | <flebron> | ``` |
| 00:45:34 | <flebron> | type LabelState = BiMap (ExprF Int) |
| 00:45:34 | <flebron> | labeler :: ExprF Int -> State LabelState Int |
| 00:45:35 | <flebron> | labeler expr = do |
| 00:45:35 | <flebron> | m <- get |
| 00:45:36 | <flebron> | let (k, m') = insert expr m |
| 00:47:10 | × | sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 276 seconds) |
| 00:47:26 | <monochrom> | What is ShaxprF? |
| 00:48:35 | <flebron> | Just ExprF that I forgot to rename for this :) |
| 00:48:47 | <flebron> | (I thought I gottem all...) |
| 00:51:00 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 00:54:23 | → | juri_ joins (~juri@faikvm.com) |
| 01:02:23 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 01:03:55 | → | califax joins (~califax@user/califx) |
| 01:11:41 | ← | thegeekinside parts (~thegeekin@189.217.90.224) () |
| 01:13:06 | → | thegeekinside joins (~thegeekin@189.217.90.224) |
| 01:15:27 | × | carcif^ quits (~carcif@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection) |
| 01:19:23 | → | emmanuelux_ joins (~emmanuelu@user/emmanuelux) |
| 01:21:11 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Ping timeout: 260 seconds) |
| 01:35:56 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 01:35:56 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 01:35:56 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:36:24 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 01:44:49 | × | mixfix41 quits (~plaguedog@user/mixfix41) (Ping timeout: 256 seconds) |
| 01:57:26 | × | machinedgod quits (~machinedg@93-138-62-133.adsl.net.t-com.hr) (Ping timeout: 245 seconds) |
| 01:59:21 | → | machinedgod joins (~machinedg@93-136-199-108.adsl.net.t-com.hr) |
| 02:00:38 | × | wroathe quits (~wroathe@user/wroathe) (Quit: leaving) |
| 02:05:21 | × | machinedgod quits (~machinedg@93-136-199-108.adsl.net.t-com.hr) (Ping timeout: 256 seconds) |
| 02:06:43 | × | flebron quits (~flebron@2a00:79e1:abc:1208:c9ca:d32c:f1ea:8834) (Quit: Client closed) |
| 02:15:10 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 02:20:48 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Quit: peterbecich) |
| 02:21:20 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 02:23:18 | → | Guest67 joins (~Guest67@ec2-52-221-159-193.ap-southeast-1.compute.amazonaws.com) |
| 02:23:31 | × | Guest67 quits (~Guest67@ec2-52-221-159-193.ap-southeast-1.compute.amazonaws.com) (Client Quit) |
| 02:30:36 | → | flebron joins (~flebron@2a00:79e1:abc:1208:c9ca:d32c:f1ea:8834) |
| 02:31:16 | × | flebron quits (~flebron@2a00:79e1:abc:1208:c9ca:d32c:f1ea:8834) (Client Quit) |
| 02:39:35 | × | thegeekinside quits (~thegeekin@189.217.90.224) (Remote host closed the connection) |
| 02:39:55 | → | ddellacosta joins (~ddellacos@ool-44c73d16.dyn.optonline.net) |
| 02:43:07 | × | jargon quits (~jargon@174-22-221-51.phnx.qwest.net) (Remote host closed the connection) |
| 02:43:22 | × | xff0x quits (~xff0x@ai096045.d.east.v6connect.net) (Ping timeout: 255 seconds) |
| 02:55:01 | × | tomith quits (tomith@user/tomith) (Quit: tomith) |
| 02:57:40 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds) |
| 03:00:04 | × | Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
| 03:08:15 | × | qqq quits (~qqq@92.43.167.61) (Remote host closed the connection) |
| 03:08:15 | × | Igloo quits (~ian@2001:8b0:645c::210) (Ping timeout: 256 seconds) |
| 03:17:00 | <iqubic> | I have a GHCI question. If I load a local file with ":l Foo" to load the definitions from "Foo.hs", is there a way to unload the definitions without killing GHCI and restarting it? |
| 03:19:11 | <int-e> | apparently you can use ':l' without arguments |
| 03:19:45 | <iqubic> | I see... That's cool. |
| 03:20:11 | → | Igloo joins (~ian@2001:8b0:645c::210) |
| 03:27:08 | <ddellacosta> | TIL |
| 03:27:32 | <ddellacosta> | I assumed that would reload Main |
| 03:27:52 | <ddellacosta> | "Ok, no modules loaded." |
| 03:28:57 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 03:35:42 | × | Igloo quits (~ian@2001:8b0:645c::210) (Ping timeout: 260 seconds) |
| 03:36:49 | → | Igloo joins (~ian@matrix.chaos.earth.li) |
| 03:36:52 | <int-e> | ddellacosta: there's a dedicated :r for reloading |
| 03:40:39 | × | edr quits (~edr@user/edr) (Quit: Leaving) |
| 03:42:05 | × | Igloo quits (~ian@matrix.chaos.earth.li) (Ping timeout: 240 seconds) |
| 03:42:36 | × | terrorjack quits (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat) |
| 03:44:06 | → | Igloo joins (~ian@matrix.chaos.earth.li) |
| 03:44:31 | × | td_ quits (~td@i53870937.versanet.de) (Ping timeout: 245 seconds) |
| 03:45:26 | → | nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
| 03:45:54 | → | terrorjack joins (~terrorjac@2a01:4f8:c17:87f8::) |
| 03:46:28 | → | td_ joins (~td@i5387090D.versanet.de) |
| 03:47:49 | <ddellacosta> | int-e: I guess I was conflating the two |
| 03:47:54 | <ddellacosta> | thanks! |
| 03:52:54 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:52:54 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 03:52:54 | finn_elija | is now known as FinnElija |
| 03:53:08 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:a11c:b194:25be:95ba) (Remote host closed the connection) |
| 03:53:23 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 04:02:34 | × | ddellacosta quits (~ddellacos@ool-44c73d16.dyn.optonline.net) (Ping timeout: 256 seconds) |
| 04:04:08 | → | ddellacosta joins (~ddellacos@ool-44c73d16.dyn.optonline.net) |
| 04:10:21 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
| 04:11:00 | → | oneeyedalien joins (~oneeyedal@user/oneeyedalien) |
| 04:11:48 | → | mosul joins (~mosul@user/vilya) |
| 04:12:14 | × | mosul quits (~mosul@user/vilya) (Client Quit) |
| 04:12:50 | → | mosul joins (~mosul@user/mosul) |
| 04:16:14 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 04:17:53 | → | Nixkernal_ joins (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) |
| 04:19:11 | × | Nixkernal quits (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) (Ping timeout: 264 seconds) |
| 04:43:25 | → | aforemny joins (~aforemny@i59F516CC.versanet.de) |
| 04:44:06 | × | aforemny_ quits (~aforemny@i59F516C0.versanet.de) (Ping timeout: 245 seconds) |
| 04:45:00 | × | mosul quits (~mosul@user/mosul) (Quit: Lost terminal) |
| 04:46:41 | × | oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Quit: Leaving) |
| 04:47:17 | × | Square2 quits (~Square4@user/square) (Ping timeout: 256 seconds) |
| 04:48:45 | × | nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
| 04:49:06 | × | YuutaW quits (~YuutaW@mail.yuuta.moe) (Ping timeout: 245 seconds) |
| 04:53:10 | → | YuutaW joins (~YuutaW@mail.yuuta.moe) |
| 05:04:07 | → | ksqsf joins (~user@2409:8a70:3c11:f3f0:f1d1:e7f:6014:caf7) |
| 05:13:42 | → | lane joins (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) |
| 05:16:04 | ← | ksqsf parts (~user@2409:8a70:3c11:f3f0:f1d1:e7f:6014:caf7) (ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1.90)) |
| 05:43:33 | → | misterfish joins (~misterfis@84-53-85-146.bbserv.nl) |
| 05:47:57 | × | lg188 quits (~lg188@82.18.98.230) (Quit: Ping timeout (120 seconds)) |
| 05:48:17 | → | lg188 joins (~lg188@82.18.98.230) |
| 05:49:47 | → | lane1 joins (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) |
| 05:52:43 | × | lane quits (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) (Ping timeout: 255 seconds) |
| 05:56:54 | → | rosco joins (~rosco@175.136.158.171) |
| 05:59:49 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 276 seconds) |
| 06:01:09 | → | misterfish joins (~misterfis@84-53-85-146.bbserv.nl) |
| 06:02:00 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 06:03:31 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 06:03:49 | → | euleritian joins (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) |
| 06:07:58 | × | euleritian quits (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 06:08:15 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 06:08:46 | → | trev joins (~trev@user/trev) |
| 06:14:14 | <EvanR> | that's the second day I got the star but did not understand why |
| 06:16:49 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds) |
| 06:17:55 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:20:01 | <iqubic> | Heh... Yeah... today's puzzle is interesting. |
| 06:20:22 | × | tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
| 06:20:38 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Read error: Connection reset by peer) |
| 06:21:16 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:22:32 | → | tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 06:23:13 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 06:23:52 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 06:25:56 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 06:26:50 | → | chomwitt joins (~chomwitt@2a02:587:7a09:c300:1ac0:4dff:fedb:a3f1) |
| 06:26:56 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 06:27:49 | × | echoreply quits (~echoreply@45.32.163.16) (Quit: WeeChat 2.8) |
| 06:27:50 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 06:29:08 | → | echoreply joins (~echoreply@45.32.163.16) |
| 06:29:19 | → | euleritian joins (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) |
| 06:32:15 | × | euleritian quits (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 06:32:34 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 06:33:31 | → | qqq joins (~qqq@92.43.167.61) |
| 06:34:17 | → | igemnace joins (~ian@user/igemnace) |
| 06:40:23 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 06:40:46 | <int-e> | Yeah, solving the stated problem properly is quite a bit of effort. |
| 06:41:28 | → | euleritian joins (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) |
| 06:46:04 | → | nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
| 06:47:59 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 264 seconds) |
| 06:48:49 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 06:51:49 | × | nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 276 seconds) |
| 06:58:25 | → | acidjnk_new joins (~acidjnk@p200300d6e72b93646479aa555f408eaf.dip0.t-ipconnect.de) |
| 07:14:38 | × | EvanR quits (~EvanR@user/evanr) (Remote host closed the connection) |
| 07:14:57 | → | EvanR joins (~EvanR@user/evanr) |
| 07:14:58 | <c_wraith> | I solved it properly |
| 07:15:23 | <int-e> | I did too but not initially. |
| 07:15:45 | <c_wraith> | It helped that I had code for <magical math function> lying around already |
| 07:16:08 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 268 seconds) |
| 07:17:40 | <int-e> | hmm I think that's not the hard part though |
| 07:17:51 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:18:20 | <int-e> | but whatever, it's probably still too early to discuss details |
| 07:21:15 | <c_wraith> | oh. I didn't anticipate the input would make that unnecessary |
| 07:21:25 | <c_wraith> | So I just threw the industrial strength math at it. |
| 07:21:58 | <c_wraith> | No thinking about whether I'm on a special case, just throw the stuff that handles all cases |
| 07:33:58 | <probie> | I don't think there's anything wrong with "check for special case, and if so use fast algorithm", especially when the problem text and example both hint at it being the special case |
| 07:37:07 | × | lane1 quits (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) (Ping timeout: 255 seconds) |
| 07:38:40 | × | nitrix quits (~nitrix@user/nitrix) (Quit: ZNC 1.8.2 - https://znc.in) |
| 07:39:28 | → | nitrix joins (~nitrix@user/nitrix) |
| 07:39:45 | <int-e> | well since there's only one input we're closer to "don't even implement the general case" territory |
| 07:40:43 | <Hooloovoo> | if there's only one input you're probably in "don't even bother with special case" territory |
| 07:40:47 | <Hooloovoo> | just print the answer |
| 07:41:05 | <int-e> | Hooloovoo: well... how do you find the answer? |
| 07:41:47 | <Hooloovoo> | (I don't even know the question, I assume it's some sort of programming challenge thing?) |
| 07:42:35 | <Hooloovoo> | (but yeah, you're right) |
| 07:43:45 | → | drdo5 joins (~drdo@bl14-14-49.dsl.telepac.pt) |
| 07:45:43 | × | drdo quits (~drdo@bl14-14-49.dsl.telepac.pt) (Ping timeout: 260 seconds) |
| 07:45:43 | drdo5 | is now known as drdo |
| 07:47:18 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:47:55 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit) |
| 07:48:28 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:48:44 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 07:49:21 | <int-e> | Hooloovoo: I mean, sometimes you can find an answer with pen and paper and without writing any code. That's, of course, fine for challenges that only check the answer rather than testing a program on various inputs. But most of the time the computations are too unwieldy. |
| 07:49:58 | <int-e> | The concrete context is Advent of Code (today, part 2). |
| 07:50:08 | <int-e> | (Which you won't see without solving part 1.) |
| 07:50:30 | × | euleritian quits (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 07:50:48 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 07:51:25 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 07:53:56 | <Hooloovoo> | I assume part 2 is just part 1 with way the heck more pairs? |
| 07:54:52 | <probie> | Nah, advent of code almost always uses the same input data for both part 1 and part 2 |
| 07:55:34 | <int-e> | "heck more pairs" - kind of correct though ;) |
| 07:55:44 | <int-e> | just have to find the right pairs |
| 07:56:34 | <int-e> | (this comment is not supposed to be helpful) |
| 07:58:25 | Hooloovoo | didn't auth to find the actual input... just doesn't look like the tuple list is... especially interesting |
| 07:58:52 | <int-e> | indeed part 1 isn't too interesting |
| 08:04:07 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 08:04:33 | → | euleritian joins (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) |
| 08:05:09 | → | misterfish joins (~misterfis@87.215.131.102) |
| 08:05:09 | × | euleritian quits (~euleritia@dynamic-046-114-201-163.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 08:05:27 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 08:08:53 | × | cods quits (~fred@tuxee.net) (Ping timeout: 240 seconds) |
| 08:10:20 | → | alp_ joins (~alp@2001:861:e3d6:8f80:98df:4b4d:4787:7761) |
| 08:13:00 | → | gmg joins (~user@user/gehmehgeh) |
| 08:14:16 | → | oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
| 08:17:49 | → | fendor joins (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) |
| 08:23:25 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) |
| 08:28:08 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 08:28:33 | → | machinedgod joins (~machinedg@93-136-199-108.adsl.net.t-com.hr) |
| 08:33:13 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 08:37:47 | → | actioninja joins (~actioninj@user/actioninja) |
| 08:45:55 | → | Buggys joins (Buggys@shelltalk.net) |
| 08:46:44 | → | vpan joins (~vpan@mail.elitnet.lt) |
| 08:48:48 | × | qqq quits (~qqq@92.43.167.61) (Remote host closed the connection) |
| 08:53:45 | × | tzh quits (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz) |
| 08:54:29 | → | coot joins (~coot@89-69-206-216.dynamic.chello.pl) |
| 08:58:52 | × | ft quits (~ft@p3e9bc784.dip0.t-ipconnect.de) (Quit: leaving) |
| 09:03:17 | × | mechap quits (~mechap@user/mechap) (Quit: WeeChat 4.1.2) |
| 09:03:45 | → | chele joins (~chele@user/chele) |
| 09:04:06 | → | qqq joins (~qqq@92.43.167.61) |
| 09:21:22 | × | qqq quits (~qqq@92.43.167.61) (Quit: leaving) |
| 09:23:40 | → | notzmv joins (~zmv@user/notzmv) |
| 09:25:22 | → | cfricke joins (~cfricke@user/cfricke) |
| 09:25:43 | → | CiaoSen joins (~Jura@2a05:5800:283:ec00:ca4b:d6ff:fec1:99da) |
| 09:32:07 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 09:35:06 | × | bilegeek quits (~bilegeek@2600:1008:b042:9b48:fb5c:1866:504a:bda4) (Quit: Leaving) |
| 09:40:44 | → | idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 09:47:52 | → | dhil joins (~dhil@2001:8e0:2014:3100:7b3d:f8f2:337f:eb5a) |
| 09:49:25 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 09:57:39 | → | mmhat joins (~mmh@p200300f1c7269374ee086bfffe095315.dip0.t-ipconnect.de) |
| 09:57:43 | → | Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
| 10:02:49 | <trev> | does anyone know any blogs that write up details about solutions? i vaguely remember a haskell one but can't seem to find it |
| 10:04:44 | <trev> | nevermind, it was mmhaskell but it looks like they aren't doing it this year (yet?) |
| 10:09:47 | → | aliosablack joins (~chomwitt@2a02:587:7a09:c300:1ac0:4dff:fedb:a3f1) |
| 10:12:03 | → | wib_jonas joins (~wib_jonas@business-37-191-60-209.business.broadband.hu) |
| 10:12:22 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds) |
| 10:17:46 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds) |
| 10:17:49 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 10:18:25 | × | rosco quits (~rosco@175.136.158.171) (Quit: Lost terminal) |
| 10:20:48 | Lord_of_Life_ | is now known as Lord_of_Life |
| 10:22:07 | × | mmhat quits (~mmh@p200300f1c7269374ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.1.2) |
| 10:23:27 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds) |
| 10:24:33 | × | aliosablack quits (~chomwitt@2a02:587:7a09:c300:1ac0:4dff:fedb:a3f1) (Quit: Leaving) |
| 10:30:32 | × | anpad quits (~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in) |
| 10:32:01 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 10:32:37 | → | anpad joins (~pandeyan@user/anpad) |
| 10:35:36 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 10:39:36 | × | phma quits (~phma@2001:5b0:211b:f698:7c9e:ca7b:e453:391) (Read error: Connection reset by peer) |
| 10:40:25 | → | phma joins (~phma@host-67-44-208-50.hnremote.net) |
| 10:40:57 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 10:53:22 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 10:58:50 | → | danza joins (~francesco@rm-19-49-89.service.infuturo.it) |
| 11:05:04 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.0.5) |
| 11:08:40 | × | swamp_ quits (~zmt00@user/zmt00) (Ping timeout: 246 seconds) |
| 11:09:45 | × | krei-se quits (~krei-se@p5085dea2.dip0.t-ipconnect.de) (Quit: ZNC 1.8.2 - https://znc.in) |
| 11:10:17 | → | cfricke joins (~cfricke@user/cfricke) |
| 11:10:21 | → | alexherbo2 joins (~alexherbo@2a02-8440-b214-7d9d-0c9c-4724-3c34-5adb.rev.sfr.net) |
| 11:14:19 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 11:14:43 | × | alexherbo2 quits (~alexherbo@2a02-8440-b214-7d9d-0c9c-4724-3c34-5adb.rev.sfr.net) (Remote host closed the connection) |
| 11:15:10 | → | euleritian joins (~euleritia@77.22.252.56) |
| 11:16:35 | → | akegalj joins (~akegalj@78-1-90-118.adsl.net.t-com.hr) |
| 11:19:00 | → | krei-se joins (~krei-se@p5085dea2.dip0.t-ipconnect.de) |
| 11:23:24 | <akegalj> | I am solving day8 advent of code atm and I am confused why this leaks https://github.com/akegalj/algorithms_playground/blob/master/advent-of-code/2023/Day8.hs#L16 ? I didn't yet profile it or dumped core to see details but my intuition says this shouldn't leak. Its basically `findIndex (..) . scanl (..) . cycle` . My intuition is that this should compile to efficient lazy stream |
| 11:23:33 | → | alexherbo2 joins (~alexherbo@2a02-8440-b214-7d9d-2de4-00d5-d93d-0252.rev.sfr.net) |
| 11:28:31 | <hippoid> | is there a way to index into Text values, like give me the 5th element? or do you have to context Text to [Char]? |
| 11:28:47 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds) |
| 11:29:15 | <akegalj> | hippoid: https://hackage.haskell.org/package/text-2.1/docs/Data-Text.html#v:index |
| 11:30:04 | <danza> | thanks akegalj |
| 11:30:56 | <hippoid> | thanks akegalj! |
| 11:31:00 | <akegalj> | note that it is O(n) |
| 11:32:56 | <hippoid> | yeah, thats a clue there's a better way to do what i want |
| 11:35:02 | <dminuoso_> | hippoid: What does "5th element" even mean to you? |
| 11:35:11 | <dminuoso_> | What is an "element"? |
| 11:35:36 | <dminuoso_> | Are you talking byte? If yes, which encoding? Are you talking unicode code point? Are you talking glyphs? What about ligatures? |
| 11:36:31 | × | machinedgod quits (~machinedg@93-136-199-108.adsl.net.t-com.hr) (Ping timeout: 255 seconds) |
| 11:36:33 | <danza> | that interface returns a Char though |
| 11:38:41 | <akegalj> | danza: if you are using ascii then bytestring might be better as it has O(1) indexing (https://hackage.haskell.org/package/bytestring-0.12.0.2/docs/Data-ByteString.html#v:index) |
| 11:39:26 | <danza> | makes sense, not sure what hippoid is using |
| 11:40:44 | <danza> | Char does not have to be ASCII though, or does it? |
| 11:40:55 | <dminuoso_> | Char represents unicode codepoints. |
| 11:41:02 | <danza> | cheers |
| 11:41:56 | <akegalj> | danza: Word8 from bytestring can canpture ascii, Char is unicode |
| 11:44:05 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 11:44:05 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 11:44:05 | finn_elija | is now known as FinnElija |
| 11:44:22 | <hippoid> | it's all ascii, i think i can just switch to bytestring |
| 11:44:43 | <dminuoso_> | That's going to be a lot faster, then. |
| 11:45:18 | <dminuoso_> | Sometimes Im a bit sad about the state of text in Haskell. |
| 11:45:31 | <danza> | text or Text? |
| 11:45:47 | <dminuoso_> | Yes. |
| 11:45:56 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 11:46:00 | <dminuoso_> | Everything text related. |
| 11:46:15 | <dminuoso_> | Show, Read, parsing, pretty printing, Text, String, ByteString. |
| 11:46:57 | <dminuoso_> | (And yes, I realize ByteString is a general binary buffers interface - it pops up often when interfacing with text native libraries) |
| 11:47:12 | <danza> | wow, parsing even |
| 11:48:39 | <danza> | what is wrong with Show and Read? |
| 11:48:45 | <dminuoso_> | Literally everything. |
| 11:49:01 | <dminuoso_> | They dont do what most users think it does. |
| 11:49:25 | <dminuoso_> | Show is a debugging crutsh, and read is.. well a poor mans eval. |
| 11:50:12 | <dminuoso_> | Read/Show both go through String - which if you ever use Text imposes a T.unpack/T.pack onto every all site. |
| 11:50:39 | <danza> | i can live with that. I like Show, at least. I think there is work in progress to give Read a better interface. Its partiality is not the best |
| 11:50:57 | <dminuoso_> | The partiality is honestly the one thing I could somewhat live with. |
| 11:51:52 | <dminuoso_> | The thing with Show is that the deriving generated interface must yield a valid haskell expression that evaluates back to the "same" (whatever that even means) value. |
| 11:52:08 | <dminuoso_> | You have no format control |
| 11:52:10 | <dminuoso_> | It produces String. |
| 11:53:22 | <dminuoso_> | Say you have `data IPv4 = IPv4 Word32` |
| 11:53:39 | <dminuoso_> | And you do `show (myIP :: IPv4)` you would really expect it to print something like "127.0.0.1", right? |
| 11:54:01 | <danza> | depends |
| 11:54:58 | <danza> | > data I = I String; show I "127.0.0.0" |
| 11:55:00 | <lambdabot> | <hint>:1:1: error: parse error on input ‘data’ |
| 11:55:02 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 11:56:31 | <danza> | % data I = I String; show $ I "127.0.0.1" |
| 11:56:31 | <yahb2> | <interactive>:95:20: error: ; Parse error: module header, import declaration ; or top-level declaration expected. |
| 11:57:25 | <danza> | hmm i thought i had seen ; used there before, but maybe it had been defined |
| 11:57:33 | <danza> | % data I = I String |
| 11:57:33 | <yahb2> | <no output> |
| 11:57:37 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 11:57:57 | <danza> | % show $ I "127.0.0.1" |
| 11:57:57 | <yahb2> | <interactive>:99:1: error: ; • No instance for (Show I) arising from a use of ‘show’ ; • In the first argument of ‘($)’, namely ‘show’ ; In the expression: show $ I "127.0.0.1" ; ... |
| 11:58:06 | <danza> | % data I = I String deriving Show |
| 11:58:06 | <yahb2> | <no output> |
| 11:58:08 | <danza> | % show $ I "127.0.0.1" |
| 11:58:08 | <yahb2> | "I \"127.0.0.1\"" |
| 11:58:29 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
| 11:58:47 | <danza> | the type prefix? Is that annoying you? |
| 12:01:18 | <tromp> | i tried (a->b,a->c) -> a -> (b,c) in hoogle and was surprised to get no results |
| 12:01:36 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 252 seconds) |
| 12:01:59 | <danza> | did you try with (a->b) -> (a->c) and the rest the same? |
| 12:02:33 | <danza> | :t uncurry |
| 12:02:34 | <lambdabot> | (a -> b -> c) -> (a, b) -> c |
| 12:02:41 | <anon1123> | hi! im having difficulty finding the correct way to indent. i wish to know how to place the expression after the `do` in multiple lines in the exampolary 3 lines i will paste: |
| 12:02:44 | <anon1123> | f i |
| 12:02:46 | <anon1123> | | i > 0 = do i <- 1 + 1; i |
| 12:02:48 | <anon1123> | | otherwise = 2 |
| 12:02:50 | <anon1123> | --- |
| 12:03:59 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 12:04:00 | <tromp> | @danza ah thx, that works |
| 12:04:00 | <lambdabot> | Unknown command, try @list |
| 12:04:37 | <danza> | oh was not familiar with do without {}, that must be where i have seen the floating ; here, without noticing the `do` |
| 12:05:23 | <ncf> | is anything mathematically interesting known about haskell's First and Last monoids? are they free functors into some interesting subcategory of monoids? |
| 12:07:44 | <anon1123> | 3> {}s |
| 12:07:48 | <anon1123> | ^ thanks, danza |
| 12:08:06 | <danza> | that was it? Alright then XD |
| 12:11:44 | → | Lears joins (~Leary]@user/Leary/x-0910699) |
| 12:14:03 | × | yaroot quits (~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c) (Ping timeout: 260 seconds) |
| 12:14:10 | × | [Leary] quits (~Leary]@user/Leary/x-0910699) (Ping timeout: 260 seconds) |
| 12:17:25 | → | tremon joins (~tremon@83.80.159.219) |
| 12:17:26 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 245 seconds) |
| 12:20:51 | × | whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 12:23:03 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 12:23:57 | → | xff0x joins (~xff0x@2405:6580:b080:900:9024:2952:42f7:bdd9) |
| 12:26:43 | × | misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 246 seconds) |
| 12:26:54 | × | danza quits (~francesco@rm-19-49-89.service.infuturo.it) (Ping timeout: 252 seconds) |
| 12:27:02 | × | alexherbo2 quits (~alexherbo@2a02-8440-b214-7d9d-2de4-00d5-d93d-0252.rev.sfr.net) (Remote host closed the connection) |
| 12:27:22 | → | yaroot joins (~yaroot@p3152107-ipngn5801souka.saitama.ocn.ne.jp) |
| 12:28:09 | × | wib_jonas quits (~wib_jonas@business-37-191-60-209.business.broadband.hu) (Quit: Client closed) |
| 12:40:19 | → | cods joins (~fred@tuxee.net) |
| 12:44:26 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.0.5) |
| 12:54:00 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 13:01:08 | <ncf> | answering my own question: Data.Semigroup.First (resp. Last) is the free left zero (resp. right zero) semigroup on a set (this is even an equivalence rather than just an adjunction), and Data.Monoid.First (resp. Last) is the free monoid on that semigroup |
| 13:01:35 | <ncf> | (i.e. Monoid.First a has the same Monoid instance as Maybe (Semigroup.First a)) |
| 13:09:58 | × | xff0x quits (~xff0x@2405:6580:b080:900:9024:2952:42f7:bdd9) (Ping timeout: 256 seconds) |
| 13:10:13 | → | danza joins (~francesco@151.47.82.6) |
| 13:11:51 | → | xff0x joins (~xff0x@2405:6580:b080:900:9024:2952:42f7:bdd9) |
| 13:13:44 | <danza> | that sounds interesting ncf although i only have a very vague understanding of what it means... |
| 13:22:16 | × | danza quits (~francesco@151.47.82.6) (Quit: Leaving) |
| 13:22:33 | → | danza joins (~francesco@151.47.82.6) |
| 13:22:43 | × | rncwnd quits (~quassel@2a01:4f8:221:27c6::1) (Quit: Later) |
| 13:23:32 | → | rncwnd joins (~quassel@2a01:4f8:221:27c6::1) |
| 13:24:10 | × | Lycurgus quits (~georg@user/Lycurgus) (Quit: leaving) |
| 13:24:27 | → | Lycurgus joins (~georg@user/Lycurgus) |
| 13:25:47 | × | danza quits (~francesco@151.47.82.6) (Client Quit) |
| 13:26:04 | → | danza joins (~danza@151.47.82.6) |
| 13:26:57 | × | rncwnd quits (~quassel@2a01:4f8:221:27c6::1) (Client Quit) |
| 13:27:23 | → | rncwnd joins (~quassel@2a01:4f8:221:27c6::1) |
| 13:31:14 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1) |
| 13:35:37 | <sshine> | I wonder when that is useful. I don't think I ever was aware that I worked with a monoid that only had left or right zeros, or worked with code where it was beneficial to constrain it to only need a left or a right zero. |
| 13:36:00 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 13:44:20 | × | euleritian quits (~euleritia@77.22.252.56) (Read error: Connection reset by peer) |
| 13:45:37 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 13:48:58 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 13:49:33 | <akegalj> | `findIndex (const False) $ iterate id 0` leaks memory. Why is that? I would expect this to loop forever but not to leak |
| 13:50:21 | → | Square joins (~Square@user/square) |
| 13:51:50 | <danza> | @source findIndex |
| 13:51:50 | <lambdabot> | Unknown command, try @list |
| 13:52:39 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
| 13:52:39 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
| 13:53:16 | <akegalj> | danza: from Data.List.findIndex |
| 13:53:24 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 13:53:25 | → | euleritian joins (~euleritia@dynamic-046-114-201-059.46.114.pool.telefonica.de) |
| 13:53:45 | <danza> | i think there is a command to show the source here |
| 13:56:49 | <danza> | @src findIndex |
| 13:56:49 | <lambdabot> | findIndex p = listToMaybe . findIndices p |
| 13:57:02 | <danza> | @src findIndices |
| 13:57:02 | <lambdabot> | findIndices p xs = [ i | (x,i) <- zip xs [0..], p x] |
| 13:59:03 | <danza> | akegalj... `const False` will go through the whole list |
| 13:59:47 | <ncf> | well yes it diverges, but it could diverge in constant space |
| 14:00:24 | <akegalj> | ncf: yes I would expect to do it in constant space |
| 14:01:00 | <danza> | there is not discarding of evaluating items until the function finishes and memory is freed, i think |
| 14:01:06 | <danza> | *evaluated |
| 14:02:25 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 14:02:33 | zer0bitz_ | is now known as zer0bitz |
| 14:02:36 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 14:03:18 | <danza> | but i would not consider this a "leak", it is expected |
| 14:03:29 | <ncf> | what |
| 14:03:43 | <akegalj> | danza: that seems so strange. Why would findIndex retain element |
| 14:03:46 | <ncf> | akegalj: repeat 0 doesn't leak, so maybe it has to do with the inlining annotations? |
| 14:04:18 | <danza> | is my analysis wrong ncf ? |
| 14:04:21 | <akegalj> | ncf: yes, `findIndex (const False) $ repeat 0` dosn't leak |
| 14:04:44 | <danza> | then i guess the answer is "yes" |
| 14:04:44 | <akegalj> | this also doesn't leak `findIndex (==1) $ iterate id 0` |
| 14:05:09 | <ncf> | fascinating |
| 14:06:01 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 276 seconds) |
| 14:07:01 | → | misterfish joins (~misterfis@87.215.131.102) |
| 14:07:40 | × | p3n quits (~p3n@217.198.124.246) (Quit: ZNC 1.8.2 - https://znc.in) |
| 14:07:57 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 14:09:42 | → | p3n joins (~p3n@217.198.124.246) |
| 14:13:40 | <akegalj> | ncf: I think I found problem. findIndex is defined as via findIndices findIndices p xs = [ i | (x,i) <- zip xs [0..], p x] . When I tried to implement findIndex as ` findIndices p xs = head [ i | (x,i) <- zip xs [0..], p x]` it leaked. When I made it strict in field then it was constant space ` findIndices p xs = head [ i | (!x,i) <- zip xs [0..], p x]` |
| 14:14:06 | <akegalj> | So i guess we should maybe add findIndex' that forces evaluation |
| 14:16:14 | <ncf> | that doesn't tell me why the unevaluated thunks survive after going through const False |
| 14:17:41 | <akegalj> | ncf: no, sorry... ignore last message. It still leaks. I was testing something else |
| 14:18:21 | × | igemnace quits (~ian@user/igemnace) (Read error: Connection reset by peer) |
| 14:19:20 | <ncf> | doesn't leak for me |
| 14:19:29 | <akegalj> | ncf: which ghc? |
| 14:20:01 | <akegalj> | ncf: ps, which version doesn't leak? Original findIndex right? |
| 14:20:02 | <ncf> | 9.4.7 |
| 14:20:10 | <ncf> | your strict one |
| 14:20:25 | <ncf> | let f p xs = head [i | (!x, i) <- zip xs [0..], p x] in f (const False) (iterate id 0) |
| 14:20:38 | × | pastly quits (~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection) |
| 14:21:01 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 14:21:03 | → | pastly joins (~pastly@gateway/tor-sasl/pastly) |
| 14:21:47 | <akegalj> | ncf: yes I thought it didn't leak for me as well but last time i checked it did. I was switching versions so maybe I tested on different ghc. Let me check 9.4.7 and report back |
| 14:22:36 | <ncf> | i'm testing in ghci btw. with -O the leak goes away |
| 14:22:56 | <akegalj> | ncf: I was testing with ghc -=2 |
| 14:23:02 | <akegalj> | ghc -O2 |
| 14:23:27 | <akegalj> | ncf: you are right, in ghci it doesn't leak |
| 14:23:40 | ← | sm[i] parts (~user@plaintextaccounting/sm) (ERC 5.4.1 (IRC client for GNU Emacs 29.0.50)) |
| 14:23:51 | → | sm[i] joins (~user@plaintextaccounting/sm) |
| 14:28:29 | <sm[i]> | @where stack |
| 14:28:30 | <lambdabot> | All-in-one haskell installer/reproducible build tool for all platforms: https://www.fpcomplete.com/haskell/get-started |
| 14:29:23 | <sm[i]> | @where+ stack https://haskellstack.org all-in-one haskell installer/reproducible build tool, an alternative to cabal-install |
| 14:29:23 | <lambdabot> | Good to know. |
| 14:29:57 | → | edr joins (~edr@user/edr) |
| 14:30:03 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 14:31:34 | <sm[i]> | @where cabal |
| 14:31:34 | <lambdabot> | Flexible haskell build tool for all platforms: http://www.haskell.org/cabal |
| 14:32:07 | <sm[i]> | @where+ cabal https://cabal.readthedocs.io flexible haskell build tool |
| 14:32:07 | <lambdabot> | Nice! |
| 14:32:53 | <sm[i]> | (FP complete's getting started page is gone and https://www.haskell.org/cabal/ is rather cobwebby) |
| 14:33:11 | <danza> | @where cabal |
| 14:33:11 | <lambdabot> | https://cabal.readthedocs.io flexible haskell build tool |
| 14:33:23 | <danza> | overwriting + |
| 14:34:43 | <danza> | oh i see why |
| 14:35:34 | → | igemnace joins (~ian@user/igemnace) |
| 14:35:58 | <sm[i]> | reminder, you can look these up at https://haskell-links.org/?q=cabal or https://haskell-links.org/cabal |
| 14:36:10 | × | CiaoSen quits (~Jura@2a05:5800:283:ec00:ca4b:d6ff:fec1:99da) (Ping timeout: 255 seconds) |
| 14:36:41 | <danza> | oh nice |
| 14:38:05 | → | lane joins (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) |
| 14:38:39 | sm[i] | has these configured as browser shortcuts |
| 14:40:05 | <danza> | it does not look like it can be added to custom engines. What do you mean by that? Keyboard shortcuts? |
| 14:41:40 | <sm[i]> | browsers have builtin (firefox) or as an extension (safari) a feature were you can type CMD ARG into the address bar and CMD and ARG are converted to a url |
| 14:42:06 | <sm[i]> | saves a lot of time |
| 14:43:21 | <danza> | handy |
| 14:45:25 | sm[i] | has "ha PKG" (hackage), "hal PKG" (haskell-links search), "halj PKG" (haskell-links jump), "ho func" (hoogle) etc. |
| 14:48:32 | <danza> | is that saved in code? Could share the settings that way |
| 14:50:02 | <sm[i]> | I can't easily export them from safari KeywordSearch extension but eg you configure them like ha = https://hackage.haskell.org/package/@@@ |
| 14:50:15 | <sm[i]> | just take a working url and templatise it |
| 14:50:43 | <danza> | guessed the syntax was easy. Just a shame it cannot be shared |
| 14:50:57 | <sm[i]> | I see.. yes you're right |
| 14:51:27 | <sm[i]> | I'll try harder |
| 14:51:49 | <danza> | oh are you the extension author? |
| 14:52:29 | <sm[i]> | no, but it must have a data file somewhere |
| 14:53:01 | × | alp_ quits (~alp@2001:861:e3d6:8f80:98df:4b4d:4787:7761) (Remote host closed the connection) |
| 14:53:24 | × | Square quits (~Square@user/square) (Ping timeout: 268 seconds) |
| 14:55:51 | <danza> | huh i do not even find how to add that template to firefox, it just leads me to a web with add-ons. Awful |
| 14:56:31 | × | akegalj quits (~akegalj@78-1-90-118.adsl.net.t-com.hr) (Quit: leaving) |
| 14:56:37 | <sm[i]> | ok here's my haskell ones: https://termbin.com/fow0 |
| 14:57:00 | → | flebron joins (~flebron@2600:1010:a000:e1ef:19e5:1a07:7fe4:8b87) |
| 14:57:06 | <sm[i]> | in Firefox it's a "keyword" field inside the bookmark manager |
| 14:58:00 | <danza> | cool, why don't you put them on a repo? |
| 14:58:36 | <sm[i]> | readable version: https://termbin.com/lqxs |
| 15:02:45 | <danza> | "hal" =D |
| 15:04:04 | <sm[i]> | @where+ browser-keywords https://gist.github.com/simonmichael/6f95f7d72048649a9ba05c7b31e44968 time-saving Haskell-related url macros |
| 15:04:04 | <lambdabot> | It is forever etched in my memory. |
| 15:04:07 | <sm[i]> | for a start |
| 15:04:45 | <danza> | great! \o/ |
| 15:06:59 | <danza> | my bookmarks manager only shows a "keyword" field in each bookmark card, does not look like the stuff you are mentioning... |
| 15:07:57 | → | akegalj joins (~akegalj@89-164-101-220.dsl.iskon.hr) |
| 15:09:05 | <akegalj> | ncf: `findIndex (\x -> x `seq` False) $ iterate id 0` works fine also |
| 15:09:39 | <danza> | interesting |
| 15:09:50 | × | flebron quits (~flebron@2600:1010:a000:e1ef:19e5:1a07:7fe4:8b87) (Quit: Client closed) |
| 15:10:25 | <sm[i]> | danza: if it's firefox, that's the one. The placeholder is probably something other than @@@ |
| 15:11:07 | <danza> | oh so the format on github is for safari |
| 15:11:33 | <danza> | yeah that was in the doc -facepalm- |
| 15:12:51 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 15:21:25 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 15:25:06 | <probie> | Are there any good constraint solver libraries in Haskell (either pure Haskell, or more likely wrapping something else)? |
| 15:25:07 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds) |
| 15:26:01 | <kuribas> | what kind of constraints? |
| 15:28:29 | × | nadja quits (~dequbed@banana-new.kilobyte22.de) (Ping timeout: 240 seconds) |
| 15:29:51 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 15:30:48 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 15:32:04 | × | potato44 quits (uid421314@id-421314.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 15:36:38 | → | nadja joins (~dequbed@banana-new.kilobyte22.de) |
| 15:40:24 | → | __monty__ joins (~toonn@user/toonn) |
| 15:41:22 | × | misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 260 seconds) |
| 15:41:23 | <probie> | Just boolean propositions and integer inequalities, although with a very large number of constraints, ideally with a solver that can handle optimisation problems as well as just satisfaction problems |
| 15:43:21 | <probie> | For context, I'm currently arguing with gecode (which is C++) and wishing I could do this in Haskell |
| 15:44:28 | <danza> | i have seen `constraints` mentioned in haskell cafe https://hackage.haskell.org/package/constraints |
| 15:44:59 | × | xff0x quits (~xff0x@2405:6580:b080:900:9024:2952:42f7:bdd9) (Ping timeout: 260 seconds) |
| 15:46:59 | → | xff0x joins (~xff0x@ai096045.d.east.v6connect.net) |
| 15:47:06 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) (Remote host closed the connection) |
| 15:47:21 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) |
| 15:51:25 | × | myxos quits (~myxos@065-028-251-121.inf.spectrum.com) (Quit: myxos) |
| 15:53:23 | <lortabac> | @hackage holmes -- probie |
| 15:53:23 | <lambdabot> | https://hackage.haskell.org/package/holmes -- probie |
| 15:54:16 | <danza> | neat |
| 15:54:27 | <lortabac> | last time I tried it I wasn't able to use backtracking, IIRC the search didn't terminate |
| 15:56:03 | <lortabac> | my advice would be to call a Prolog program via HTTP or pipes |
| 15:57:04 | → | sabino joins (~sabino@user/sabino) |
| 15:57:22 | <lortabac> | or some specialized language like Minizinc or Conjure |
| 15:57:44 | <exarkun> | in https://serokell.io/blog/introduction-to-free-monads what do the notations "(fancy S)(regular S)" and "(italic M),(regular M)" mean? |
| 16:01:14 | × | tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
| 16:03:32 | <probie> | Gecode is the default solver for minizinc. Perhaps writing some Haskell to generate flatzinc and then feeding that to gecode would work |
| 16:04:27 | × | haskellbridge quits (~haskellbr@069-135-003-034.biz.spectrum.com) (Remote host closed the connection) |
| 16:04:49 | <sshine> | exarkun, I can't say. looks like almost a rendering error, I think. |
| 16:05:48 | <sshine> | exarkun, yea, I think that's what it is. if you inspect the source code, you'll get one <math> tag and one <span class="katex-html"> tag. |
| 16:06:39 | <sshine> | exarkun, so I think something went wrong hiding one of those two representations, assuming the first one worked. maybe you're a firefox user like me, and this is just a case of Firefox dying? |
| 16:07:10 | → | haskellbridge joins (~haskellbr@069-135-003-034.biz.spectrum.com) |
| 16:07:10 | ChanServ | sets mode +v haskellbridge |
| 16:07:43 | <sshine> | exarkun, it would really surprise me that they put such effort into introducing foundations, and then completely overlook that someone with basic math wouldn't know what this double notation means. :-D |
| 16:08:22 | <sshine> | (as in, I also don't know what to make of it, except for the speculation that it's a rendering error.) |
| 16:09:23 | <exarkun> | Oof, okay, fun stuff. I guess they did also say the theory part isn't necessary, I guess I'll stop trying to make sense of it and read the rest, and then maybe look for theory elsewhere. Thanks :) |
| 16:10:53 | <danza> | "not necessary"? Certification? |
| 16:14:06 | <exarkun> | what they actually say is "This part is a bit theory-heavy, so if it is not your cup of tea, feel free to skim over it." :) |
| 16:15:03 | <danza> | just curious whether this is a certification path or just you got hired or changed project or something |
| 16:16:37 | <exarkun> | just continuing my personal random walk through haskell-related ideas |
| 16:16:55 | → | nilradical joins (~nilradica@user/naso) |
| 16:16:59 | × | nilradical quits (~nilradica@user/naso) (Remote host closed the connection) |
| 16:17:10 | <danza> | i see, enjoy |
| 16:19:15 | <exarkun> | thanks :) |
| 16:22:43 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 16:23:11 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 16:24:14 | → | kuribas` joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 16:24:27 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Read error: Connection reset by peer) |
| 16:24:50 | × | euleritian quits (~euleritia@dynamic-046-114-201-059.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:25:09 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:25:42 | → | econo_ joins (uid147250@id-147250.tinside.irccloud.com) |
| 16:31:39 | → | ft joins (~ft@p3e9bc784.dip0.t-ipconnect.de) |
| 16:50:33 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 16:50:43 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:53:50 | × | akegalj quits (~akegalj@89-164-101-220.dsl.iskon.hr) (Quit: leaving) |
| 16:57:37 | × | kuribas` quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
| 16:58:09 | → | Guest23 joins (~Guest37@2402:3a80:46d1:8496:33bd:67c1:c3d6:b116) |
| 16:58:31 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 16:58:35 | × | Guest23 quits (~Guest37@2402:3a80:46d1:8496:33bd:67c1:c3d6:b116) (Client Quit) |
| 17:04:05 | × | danza quits (~danza@151.47.82.6) (Ping timeout: 240 seconds) |
| 17:05:34 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 255 seconds) |
| 17:10:04 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 17:10:39 | → | euleritian joins (~euleritia@dynamic-046-114-201-059.46.114.pool.telefonica.de) |
| 17:11:52 | → | tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
| 17:15:29 | → | erty joins (~user@user/aeroplane) |
| 17:16:40 | → | danza joins (~danza@151.47.94.187) |
| 17:18:33 | × | euleritian quits (~euleritia@dynamic-046-114-201-059.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 17:18:50 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 17:20:17 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 17:21:27 | <erty> | Hello everyone, I was looking for a package for AI and found "neural" on hackage. Now, when I added it to extra-deps in stack.yaml list |
| 17:22:07 | <erty> | and dependencies: in package.yaml it shows error [/myproj/neural: getDirectoryContents:openDirStream: does not exist (No such file or directory)] |
| 17:22:46 | <erty> | how can I resolve it?Thanks! |
| 17:22:57 | <haskellbridge> | 06<sm> check your syntax for each yaml file |
| 17:23:17 | <haskellbridge> | 06<sm> (they are different) |
| 17:25:01 | <erty> | haskellbridge: This is a new project which I generated using "stack new myproj" and simply added these dependency in a new line "- neural" |
| 17:25:18 | <haskellbridge> | 06<sm> package.yaml dependencies syntax: https://github.com/sol/hpack#dependencies |
| 17:27:20 | <haskellbridge> | 06<sm> show us your whole package.yaml file and whole output in a pastebin if you like |
| 17:27:34 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 17:28:13 | <haskellbridge> | 06<sm> and stack.yaml file |
| 17:29:18 | <haskellbridge> | 06<sm> here's the stack.yaml syntax: https://docs.haskellstack.org/en/stable/yaml_configuration/#extra-deps |
| 17:29:21 | <erty> | haskellbridge: thanks, this package.yaml [https://paste.rs/0UMiS] and stack.yaml [https://paste.rs/Yv3vF] |
| 17:30:35 | <haskellbridge> | 06<sm> you need to write the package version number in stack.yaml |
| 17:32:13 | <haskellbridge> | 06<sm> (in extra-deps:) |
| 17:34:10 | → | potato44 joins (uid421314@id-421314.lymington.irccloud.com) |
| 17:35:16 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 268 seconds) |
| 17:37:20 | <erty> | haskellbridge: I did that and I think its working. Since the package I need to add hask multiple dependencies, do I need to add all those dependencies as well? https://paste.rs/tQTK2 |
| 17:37:51 | <erty> | I need the package "neural" https://hackage.haskell.org/package/neural |
| 17:38:40 | <glguy> | erty: stack.yaml is a list of *all* the things in one workspace you happen to be using. A resolver is a set of packages. Anything you want to use not in that set you have to add to your workspace via extra-deps |
| 17:38:41 | × | chomwitt quits (~chomwitt@2a02:587:7a09:c300:1ac0:4dff:fedb:a3f1) (Ping timeout: 245 seconds) |
| 17:38:45 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) (Remote host closed the connection) |
| 17:39:27 | <glguy> | erty: package.yaml is an old way to make your project's .cabal file. That lists the direct dependencies of the package you're developing and specifies the range of versions you support |
| 17:41:33 | <erty> | glguy: Is there a better way, since I dont want to add all those dependencies by myself. |
| 17:42:12 | <glguy> | The stack model is that you specify exactly the versions of everything you're using in your current workspace |
| 17:42:13 | <erty> | can I somehow bypass those extra steps |
| 17:42:54 | <glguy> | you can copy/paste from the error message stack is giving you into your stack.yaml |
| 17:44:12 | × | m1dnight quits (~christoph@78-22-4-67.access.telenet.be) (Quit: WeeChat 4.1.0) |
| 17:46:56 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) |
| 17:48:24 | <erty> | Well guess everything seems to be working, one last extra step need was to add "allow-newer: true" in /home/.stack/config.yaml |
| 17:48:41 | → | m1dnight joins (~christoph@78-22-4-67.access.telenet.be) |
| 17:49:05 | <glguy> | erty: remember that you did that. It's going to break something down the road and be hard to find |
| 17:50:17 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 17:50:29 | <c_wraith> | can't you give allow-newer a package name instead of true? |
| 17:50:32 | <haskellbridge> | 06<sm> erty: no real shortcut to listing all those things explicitly - except use cabal, which figures out the stack.yaml's resolver and extra-deps on its own (but les reliably) |
| 17:51:00 | → | elevenkb joins (elevenkb@2607:5300:203:b92b::185) |
| 17:51:01 | <haskellbridge> | 06<sm> I don't think you got it to actually build neural, did you ? |
| 17:51:03 | <glguy> | putting allow-newer in your ~/.stack means it'll affect all your workspaces, and allow-newer in general will just cause build failures |
| 17:52:27 | <haskellbridge> | 06<sm> neural was released in 2017 and requires a version of GHC older than I can install on this machine |
| 17:53:51 | <erty> | I am sorry, I am new to building stack and stuff. I needed to add "allow-newer: true" since one of the packages complained that it neede base to be something between 4.17 and 4.18 (dont know exact numbers) |
| 17:54:55 | <erty> | and now its installing and install command has crossed over 3000 lines |
| 17:55:56 | <haskellbridge> | 06<sm> no problem, yes it's complicated. Adding allow-newer: true allowed it to find a "compatible looking" build plan, so it's installing a hundred deps. But when it gets to the neural package it will fail, because that package requires a 2017-era GHC version and its bounds don't declare that |
| 17:56:18 | <haskellbridge> | 06<sm> I'm a few steps ahead, since I figured you'd be asking about that |
| 17:56:29 | → | Square joins (~Square@user/square) |
| 17:56:58 | → | tzh joins (~tzh@c-71-193-181-0.hsd1.or.comcast.net) |
| 17:57:08 | × | vpan quits (~vpan@mail.elitnet.lt) (Quit: Leaving.) |
| 17:57:21 | <haskellbridge> | 06<sm> it was last tested with ghc 8.0, so stack --resolver lts-9.21 build neural pipes-zlib typelits-witnesses might work better |
| 17:57:57 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) (Remote host closed the connection) |
| 17:58:27 | <erty> | haskellbridge: I am sorry, I only want to try implementing AI in haskel. So I looked around and found this package. I don't know whats the best way to build a simple neural nework i Haskell |
| 17:59:18 | <haskellbridge> | 06<sm> installing things from hackage isn't always easy - it's best to check their upload date first, and try to find one that's less than a year or two old |
| 17:59:49 | <haskellbridge> | 06<sm> for older packages like this, it usually requires installing an old GHC version |
| 18:01:18 | <haskellbridge> | 06<sm> you can sort hackage's search results by upload date |
| 18:02:50 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 18:06:39 | <erty> | haskellbridge: Thanks for help, I think support for AI in haskell is not that good. As, If browse hackage, I can not find latest packages |
| 18:06:44 | <erty> | https://hackage.haskell.org/packages/browse?terms=%28tag%3Aai%29 |
| 18:07:38 | <[exa]> | erty: there are good NN packages around, haskell people are usually just reasonably reluctant to label these as AI |
| 18:07:50 | <[exa]> | https://hackage.haskell.org/package/grenade etc |
| 18:09:46 | <glguy> | I didn't find a build plan for grenade using any GHC back to 9.2 |
| 18:09:53 | <erty> | [exa]: yes, but still, it was last updated on 2017-04-12 and probably need only ghc version to run |
| 18:10:10 | → | myxos joins (~myxos@065-028-251-121.inf.spectrum.com) |
| 18:10:15 | <erty> | *old |
| 18:11:31 | → | qqq joins (~qqq@92.43.167.61) |
| 18:13:40 | <erty> | Also its sad to see that none of the packages have more than 40 downloads |
| 18:14:08 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) |
| 18:15:38 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 18:21:33 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 18:22:30 | <haskellbridge> | 06<sm> erty: so, that stack command I showed above is an easy way to use older GHC versions. It's pretty common (though obviously not ideal) to do that when working with old packages. |
| 18:28:31 | <haskellbridge> | 12<Celestial> How exactly do cross-platform / platform dependent packages work? I was using `vty` on my linux desktop which worked fine, and on windows under wsl I had to use `vty-crossplatform` but now back on linux its giving me `unknown package: vty-crossplatform`? |
| 18:29:17 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:30:06 | <geekosaur> | how recently have you run `cabal update`? |
| 18:30:16 | <haskellbridge> | 06<sm> glguy: I see what you mean about grenade.. I could try cloning the repo and building from there, but I have lost the will |
| 18:30:58 | <haskellbridge> | 12<Celestial> geekosaur: thanks that was it ... my bad |
| 18:31:00 | <haskellbridge> | 06<sm> erty might be right |
| 18:31:10 | <haskellbridge> | 06<sm> silly cabal |
| 18:31:46 | <geekosaur> | I puled it up in hackage and saw it was only about a month old |
| 18:32:28 | <haskellbridge> | 12<Celestial> (I should probably run `cabal update` more frequently) |
| 18:36:56 | × | Hooloovoo quits (~Hooloovoo@hax0rbana.org) (Ping timeout: 256 seconds) |
| 18:38:02 | → | Hooloovoo joins (~Hooloovoo@hax0rbana.org) |
| 18:38:51 | <geekosaur> | erty, apparently the download count is broken and hasn't been updated in a while |
| 18:39:19 | <geekosaur> | come to think of it, that was mentioned on haskell-cafe but I'm not sure anyone told #haskell-infrastructure |
| 18:41:48 | → | target_i joins (~target_i@217.175.14.39) |
| 18:41:58 | <erty> | haskellbridge: I ran your command and it still tells me to add "allow-newer: true" in my home dir. I think best thing to do is to go and read stack doc for now |
| 18:44:28 | <erty> | For AI I think, one should only use python as its used industry wide |
| 18:45:15 | <erty> | but I will still try to train a single neuron in Haskell |
| 18:45:47 | → | mosul joins (~mosul@user/mosul) |
| 18:47:58 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:52:09 | <haskellbridge> | 06<sm> 👍️ somewhere out there is a NN project for Haskell that builds |
| 18:53:54 | × | danza quits (~danza@151.47.94.187) (Ping timeout: 268 seconds) |
| 18:55:29 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
| 18:56:04 | <erty> | :-| |
| 18:57:30 | <haskellbridge> | 06<sm> what about https://hackage.haskell.org/package/hnn |
| 19:01:01 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 19:01:25 | <srk> | aargh, I have a patch for grenade |
| 19:01:41 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 19:02:12 | <haskellbridge> | 06<sm> stack build hnn --resolver lts-18.28 mwc-random-0.14.0.0 random-1.1 maybe |
| 19:02:29 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 19:03:09 | <glguy> | cabal repl -w ghc-9.6 --build-dep hnn # worked here |
| 19:03:58 | <erty> | haskellbridge: hnn does have a nice tutorial https://hackage.haskell.org/package/hnn-0.3/docs/AI-HNN-FF-Network.html I'll look into that |
| 19:08:05 | <haskellbridge> | 06<sm> glguy nice one. cabal repl hnn should be made to do the same (like stack) |
| 19:08:53 | <haskellbridge> | 06<sm> Another satisfied customer! NEXT! |
| 19:18:05 | → | misterfish joins (~misterfis@84-53-85-146.bbserv.nl) |
| 19:18:35 | → | Guest97 joins (~Guest97@134.117.247.129) |
| 19:18:53 | × | fendor quits (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection) |
| 19:24:55 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds) |
| 19:25:24 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 19:25:50 | → | chomwitt joins (~chomwitt@2a02:587:7a09:c300:1ac0:4dff:fedb:a3f1) |
| 19:30:21 | <srk> | glguy: this works https://github.com/HuwCampbell/grenade/pull/107 |
| 19:30:50 | <srk> | sm[i]: ^ |
| 19:31:25 | <haskellbridge> | 06<sm> 👍️ |
| 19:31:59 | <srk> | I've had a port to singletons-base that I forgot to PR and someone beat me to it hah |
| 19:32:04 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 19:33:09 | <srk> | seems like the bridge has trouble with emoji :D |
| 19:34:09 | <glguy> | srk: https://ibb.co/BV0f5yf that's what I saw |
| 19:34:11 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 264 seconds) |
| 19:34:40 | <telser_> | I've been meaning to ask about this.. With PatternSynonyms, when you create a record pattern, it would seem that you can't export it using the usual record syntax like MyRecord(..). Anyone know if there is a hard reason for that? |
| 19:35:02 | <srk> | glguy: hmm, interesting. I've recently fixed some of them in urxvt by adding xft:Symbola because Noto emoji didn't handle many but this one is borken |
| 19:35:15 | <geekosaur> | I think patterns require `ExplicitNamespaces` and `pattern …` |
| 19:35:46 | <telser_> | They do, but as far as I can tell you still don't get the ability to export all the fields in it. |
| 19:35:57 | <telser_> | Without manually listing them |
| 19:36:27 | <geekosaur> | hm. I'd report that |
| 19:37:00 | <srk> | 👍 seems to work |
| 19:38:03 | <telser_> | geekosaur: Okay, I'll get together a small example and open an issue, thanks! |
| 19:39:48 | <glguy> | srk: you fixed it? |
| 19:40:15 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:40:35 | <srk> | no, when I copy it from web and paste to term it just works, but not the one via bridge |
| 19:40:46 | <glguy> | srk: the UTF-8 representation for the two is identital |
| 19:40:54 | <glguy> | The bridge message was "\x0306<s\xe2\x80\x8bm> \x0f\xf0\x9f\x91\x8d\xef\xb8\x8f somewhere out there is a NN project for Haskell that builds" |
| 19:41:09 | <glguy> | yours was "\xf0\x9f\x91\x8d seems to work" |
| 19:41:27 | <srk> | interesting, was wondering how someone debugs such a thing :) |
| 19:41:34 | <glguy> | it's possible your client didn't like the formatting reset code just before the emoji |
| 19:42:09 | <srk> | so it's probably irssi bug? |
| 19:42:25 | <g> | replay for test case 06<sm> 👍️ somewhere out there is a NN project for Haskell that builds |
| 19:42:54 | <srk> | fail. |
| 19:43:06 | srk | should try glirc |
| 19:43:14 | <g> | replay for test case 👍 seems to work |
| 19:43:35 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:43:39 | <g> | just the leading formatting thing 👍 breaks it? |
| 19:43:48 | <glguy> | did that last message break it? |
| 19:44:07 | <srk> | nope, only the orig. one from sm breaks |
| 19:44:38 | <geekosaur> | thta makes me wonder if it's the invisible code inserted into the relayed nick that is breaking it |
| 19:44:53 | <geekosaur> | (I have relaying configured with "NOPINGNICK") |
| 19:46:44 | → | lane1 joins (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) |
| 19:47:26 | <haskellbridge> | 14<geekosaur> does this break? 👍 |
| 19:47:44 | <glguy> | srk: I'm debugging this with my second client called "snowcone" that's more of an automation platform than a normal console. In that one I can click on arbitrary messages to see exactly how they were composed and can then run the commands to replay those string literals for testing |
| 19:48:13 | <srk> | cool! last one from geekosaur is fine |
| 19:48:54 | <haskellbridge> | 06<sm> glguy are you wearing Matrix shades ? you must be wearing Matrix shades |
| 19:49:03 | <geekosaur> | okay, so it doesn't like the no-ping character. unfortunately I Nsuspect those of us on both sides of the bridge won't like being pinged all the time |
| 19:49:22 | × | lane quits (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) (Ping timeout: 255 seconds) |
| 19:49:36 | <glguy> | I bet when it sees that character it thinks that thing is latin1 or cp1251 or something and not utf-8 |
| 19:49:59 | <srk> | https://ibb.co/nzG2gxt |
| 19:50:51 | haskellbridge | 06<sm> refrains from spamming a matrix shades image just in time |
| 19:54:01 | <monochrom> | telser_: For now, I have found a work around: "pattern Y{b,n} = ..." can be exported as "(pattern Y, b, n)". To be sure, this is unsatisfactory, I want my "pattern Y(...)"! |
| 19:54:48 | → | gdown joins (~gavin@h69-11-149-109.kndrid.broadband.dynamic.tds.net) |
| 19:54:53 | <monochrom> | Or even just "pattern Y" should already export the whole thing because like what's the point |
| 19:55:30 | <telser_> | monochrom: Right, you can explictly list them all out, but when you have a big record.. I won't be able to convince people to use it. |
| 19:55:45 | <telser_> | s/it/PatternSynonyms/ |
| 20:01:25 | × | trev quits (~trev@user/trev) (Quit: trev) |
| 20:06:55 | × | Guest97 quits (~Guest97@134.117.247.129) (Quit: Client closed) |
| 20:09:16 | → | cheater_ joins (~Username@user/cheater) |
| 20:10:09 | <EvanR> | big records are all the rage in web world |
| 20:10:29 | × | cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds) |
| 20:10:32 | <EvanR> | haskell has some features to make them wieldy |
| 20:10:33 | cheater_ | is now known as cheater |
| 20:11:01 | <haskellbridge> | 06<sm> DUAL WIELD |
| 20:17:02 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 20:17:21 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 20:17:48 | <EvanR> | big record as main weapon, unboxed int in offhand |
| 20:20:29 | <ski> | "the invisible code inserted into the relayed nick" -- imho, the bridge ought not to insert that, at least not if there's no user with that nick joined to the channel that the bridge is relaying into |
| 20:20:57 | <geekosaur> | sadly it doesn't have that option, it's all or nothing |
| 20:21:27 | <ski> | (i can understand not wanting to be pinged by yourself all the time, if you're on both sides, with the same nick) |
| 20:22:33 | <ski> | (for me, the inserted character looks like a dotted box, overlayed over the previous glyph (first character of the nickname)) |
| 20:22:33 | <geekosaur> | discord bridges do the same thing, again all or nothing |
| 20:27:00 | <slideshow6052> | hi |
| 20:27:55 | <slideshow6052> | i am struggling with monad i want to use state to keep track of an int |
| 20:28:05 | <slideshow6052> | https://www.irccloud.com/pastebin/8ne3txlx/ |
| 20:28:19 | <slideshow6052> | but i can't use this modify inside the inner do, how do i get that to work? |
| 20:28:43 | <ski> | exarkun : "in https://serokell.io/blog/introduction-to-free-monads what do the notations "(fancy S)(regular S)" and "(italic M),(regular M)" mean?" -- looks to me that there's some fancy (TeX ? MathML ?) rendering, and a fallback to simpler symbols, and for some reason both are being shown |
| 20:30:02 | <EvanR> | slideshow6052, where you have let (cs', gs') =, but you want the right side to be more State action code, use (cs', gs') <-... instead |
| 20:30:11 | <ski> | slideshow6052 : instead of .. what EvanR just said :p |
| 20:30:35 | <ski> | you also need to wrap the first two branches in `pure'/`return' |
| 20:30:36 | <EvanR> | on line 13 where you have just x, that would need to be return x |
| 20:30:57 | <EvanR> | same on 7 and 8 |
| 20:31:20 | <ski> | slideshow6052 : also, `(Goal ctx expr ty)' can be just `Goal ctx expr ty', and `(Lam x m)' can be just `Lam x m' |
| 20:32:28 | <slideshow6052> | ah i see |
| 20:32:36 | <slideshow6052> | thank you both, it works now :) |
| 20:32:38 | <ski> | slideshow6052 : also, your gs' is always the empty list, so far |
| 20:33:04 | <slideshow6052> | yes atm i am slowly figuring it all out haha |
| 20:33:04 | <int-e> | ski: it looks like there's supposed to be something that hides one of those alternatives (one is in a <semantics> element and the other is in an <annotation> element, MathML stuff) |
| 20:33:22 | <ski> | int-e : right |
| 20:34:01 | → | akegalj joins (~akegalj@89-164-101-220.dsl.iskon.hr) |
| 20:34:23 | <slideshow6052> | also is there some cool way to do modify(+1) and n <- get in one line? |
| 20:35:02 | <tomsmeding> | ski: exarkun: looks like they're using katex but forgot to add the katex.css stylesheet |
| 20:35:21 | <Rembane> | slideshow6052: get << modify (+1) |
| 20:35:32 | <tomsmeding> | that's also why the "fancy S" isn't all that fancy |
| 20:35:34 | <monochrom> | slideshow6052: The library doesn't have it. But yeah it is a much overlooked nicety. |
| 20:35:36 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 20:36:33 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 20:37:06 | <slideshow6052> | do i need to import << or something? it doesn't work for me |
| 20:37:12 | <akegalj> | Hm. Program `main = print $ filter (const False) [0..]` leaks when compiled with -O2 . Doesn't leak when compiled with -O0 (tested on ghc-9.4.8 and ghc-9.8.1) . Should this be considered a bug? |
| 20:37:15 | <Rembane> | slideshow6052: Yeah, it's in Control.Monad I think |
| 20:37:25 | <ski> | slideshow6052,monochrom : i guess one could imagine `preModify,postModify :: State s m => (s -> s) -> m s', or somesuch |
| 20:37:31 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 20:37:49 | <slideshow6052> | oh hi monochrom |
| 20:38:17 | <ski> | there is `state :: State s m => (s -> (a,s)) -> s a', but it's not as nice to type `n <- state (join (,) . (1 +))' i guess |
| 20:38:24 | <slideshow6052> | i remember i was on here about a year ago (different account i lost that one) and you helped me out |
| 20:38:28 | <slideshow6052> | :) |
| 20:38:37 | → | euleritian joins (~euleritia@dynamic-046-114-201-059.46.114.pool.telefonica.de) |
| 20:38:56 | <slideshow6052> | ah i see. it's okay ill stik to what i had. was asking just in case because you never know with haskell, sometimes it has cool stuff like that |
| 20:38:58 | <EvanR> | state (\i -> (i, i + 1)) |
| 20:39:13 | <EvanR> | I might have that backwards |
| 20:39:24 | <ski> | no, it's right |
| 20:40:04 | <ski> | (that's the postincrement. the `join (,)' was preincrement) |
| 20:40:10 | <EvanR> | doing get then modify on another line wins the one-thing-per-line award popular in oop |
| 20:40:31 | <slideshow6052> | yep i think ill stick to that |
| 20:40:42 | <ski> | .. i gusess `n <- state (id &&& (1 +))' or `n <- state (graph (1 +))' is preincrement |
| 20:40:55 | <EvanR> | :t graph |
| 20:40:56 | <lambdabot> | error: Variable not in scope: graph |
| 20:41:49 | <ski> | @let graph :: Arrow ar => ar a b -> ar a (a,b); graph = (arr id &&&); cograph :: ArrowChoice ar => ar a b -> ar (Either a b) b; cograph = (||| arr id) |
| 20:41:50 | <lambdabot> | Defined. |
| 20:41:58 | <ski> | EvanR ^ |
| 20:41:58 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 20:43:46 | <ski> | the `ar a (a,b)' is a subobject of `(a,b)' expressing the graph of the morphism `ar a b' as a relation. the `ar (Either a b) b' is a quotient object of `Either a b' (essentially a table of inputs-outputs, putting inputs that map to the same output in the same equivalence class as the output), "expressing the cograph of the morphism" |
| 20:45:03 | <ski> | (i'd use `Category' instead of `Arrow' (to avoid the `arr'), except i also need access to subclasses for categorical product and categorical coproduct) |
| 20:45:05 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 256 seconds) |
| 20:45:34 | <EvanR> | *so you want to increment your variable, let me first introduce you to some category theory xD* |
| 20:45:57 | <slideshow6052> | haha this is how i feel every time i come on here xd |
| 20:46:03 | <ski> | makes perfect sense, right ? |
| 20:48:34 | <ski> | bwe : hm, not sure what you mean by "how can I inspect `author` and depend a control flow on it?" |
| 20:49:38 | <ski> | slideshow6052 : anyway, something like `preModify' and `postModify' would be neat to use here. in the absence of that, just go for `get' and `modify', or else `get' and `put' |
| 20:50:41 | × | target_i quits (~target_i@217.175.14.39) (Quit: leaving) |
| 20:52:40 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1) |
| 20:57:44 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 21:00:34 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 21:00:59 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 21:01:19 | × | akegalj quits (~akegalj@89-164-101-220.dsl.iskon.hr) (Quit: leaving) |
| 21:01:58 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds) |
| 21:07:56 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:11:34 | × | euleritian quits (~euleritia@dynamic-046-114-201-059.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 21:11:53 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 21:15:09 | × | lg188 quits (~lg188@82.18.98.230) (Quit: Ping timeout (120 seconds)) |
| 21:15:31 | → | lg188 joins (~lg188@82.18.98.230) |
| 21:19:09 | → | alexherbo2 joins (~alexherbo@2a02-8440-b214-7d9d-8410-795e-9151-6da8.rev.sfr.net) |
| 21:21:10 | → | jargon joins (~jargon@32.sub-174-238-226.myvzw.com) |
| 21:21:30 | × | benjaminl quits (~benjaminl@user/benjaminl) (Remote host closed the connection) |
| 21:22:16 | → | benjaminl joins (~benjaminl@user/benjaminl) |
| 21:22:16 | × | benjaminl quits (~benjaminl@user/benjaminl) (Remote host closed the connection) |
| 21:23:27 | → | benjaminl joins (~benjaminl@user/benjaminl) |
| 21:24:34 | × | coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
| 21:27:00 | → | petrichor joins (~znc-user@user/petrichor) |
| 21:29:46 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:33:31 | → | Guest27 joins (~Guest29@86-82-248-239.fixed.kpn.net) |
| 21:34:19 | → | coot joins (~coot@89-69-206-216.dynamic.chello.pl) |
| 21:35:38 | × | Guest27 quits (~Guest29@86-82-248-239.fixed.kpn.net) (Client Quit) |
| 21:40:28 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
| 21:41:58 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 21:53:29 | × | mosul quits (~mosul@user/mosul) (Quit: Lost terminal) |
| 21:56:37 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds) |
| 21:56:55 | × | YoungFrog quits (~youngfrog@2a02:a03f:ca07:f900:1f5c:a3c6:297:feeb) (Ping timeout: 256 seconds) |
| 21:59:21 | → | YoungFrog joins (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) |
| 22:00:45 | <petrichor> | hi folks o/ |
| 22:01:07 | <[exa]> | o/ |
| 22:01:11 | <Rembane> | \œ |
| 22:01:33 | → | cimento joins (CO2@gateway/vpn/protonvpn/cimento) |
| 22:01:54 | <ski> | ehlo petrichor |
| 22:04:55 | <petrichor> | thought it was about time joined here as i'm doing advent of code in haskell ^^ |
| 22:05:42 | <EvanR> | get the leaderboard code in the topic (if there's room) |
| 22:06:28 | <petrichor> | EvanR: cool, thanks |
| 22:06:43 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) (Remote host closed the connection) |
| 22:11:49 | <petrichor> | i am not going to be high up that leaderboard >_< |
| 22:13:33 | <EvanR> | technically you can still catch up |
| 22:13:55 | <EvanR> | I am regularly pushed down by people finishing after me xD |
| 22:14:46 | <glguy> | petrichor: There's a wide range of people on the leaderboard. It's more about doing it in Haskell than doing it fast |
| 22:15:31 | × | igemnace quits (~ian@user/igemnace) (Read error: Connection reset by peer) |
| 22:15:56 | → | igemnace joins (~ian@user/igemnace) |
| 22:18:46 | <petrichor> | <3 |
| 22:18:55 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 22:20:15 | <petrichor> | sounds good to me, i've only managed to complete it on christmas day and that wasn't in haskell |
| 22:20:41 | <petrichor> | *on christmas day *once* |
| 22:26:59 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Ping timeout: 264 seconds) |
| 22:29:18 | <EvanR> | I could only complete it once, and it was mid january by that point |
| 22:29:26 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 22:29:45 | <EvanR> | the last five days of that aoc were brain melting |
| 22:30:09 | <EvanR> | I'm not sure how I could've done it without haskell xD |
| 22:30:39 | → | zetef joins (~quassel@2a02:2f00:530a:a300:54fc:7521:3870:34b2) |
| 22:41:23 | × | chomwitt quits (~chomwitt@2a02:587:7a09:c300:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
| 22:43:01 | <int-e> | . o O ( You can write Haskell in any language, it's just more code and you need to do your own type checking. ) |
| 22:44:26 | × | zetef quits (~quassel@2a02:2f00:530a:a300:54fc:7521:3870:34b2) (Remote host closed the connection) |
| 22:46:39 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 22:49:08 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 22:49:22 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:11bf:d345:9651:e652) |
| 22:52:02 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:54:16 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:58:24 | × | jle` quits (~jle`@2603-8001-3b02-84d4-cc77-9348-89d2-92f3.res6.spectrum.com) (Ping timeout: 268 seconds) |
| 23:03:08 | × | coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
| 23:05:07 | × | dhil quits (~dhil@2001:8e0:2014:3100:7b3d:f8f2:337f:eb5a) (Ping timeout: 246 seconds) |
| 23:10:11 | × | lane1 quits (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) (Ping timeout: 264 seconds) |
| 23:11:00 | → | machinedgod joins (~machinedg@93-136-199-108.adsl.net.t-com.hr) |
| 23:16:05 | → | bilegeek joins (~bilegeek@2600:1008:b049:5a95:99c5:8ca9:6c97:5a13) |
| 23:17:18 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds) |
| 23:19:58 | × | mikess quits (~sam@user/mikess) (Ping timeout: 255 seconds) |
| 23:22:54 | → | mikess joins (~sam@user/mikess) |
| 23:28:26 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 23:31:39 | × | mikess quits (~sam@user/mikess) (Quit: leaving) |
| 23:32:41 | → | lane joins (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) |
| 23:34:05 | × | acidjnk_new quits (~acidjnk@p200300d6e72b93646479aa555f408eaf.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 23:34:43 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 23:40:05 | × | lane quits (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
| 23:49:19 | → | lane joins (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) |
| 23:49:31 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 23:50:28 | × | tremon quits (~tremon@83.80.159.219) (Quit: getting boxed in) |
| 23:52:32 | → | mosul joins (~mosul@user/mosul) |
| 23:55:03 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 23:57:45 | × | lane quits (~lane@pool-98-113-180-17.nycmny.fios.verizon.net) (Ping timeout: 256 seconds) |
| 23:58:43 | × | [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
All times are in UTC on 2023-12-08.