Home liberachat/#haskell: Logs Calendar

Logs on 2024-06-30 (liberachat/#haskell)

00:01:48 × OscarZ quits (~oscarz@mobile-access-5d6ab7-137.dhcp.inet.fi) (Quit: Leaving)
00:14:40 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
00:25:30 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
00:26:23 × mhatta quits (~mhatta@www21123ui.sakura.ne.jp) (Remote host closed the connection)
00:29:07 × onliner10_ quits (uid656258@user/onliner10) (Quit: Connection closed for inactivity)
00:32:53 mhatta joins (~mhatta@www21123ui.sakura.ne.jp)
00:39:02 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
00:39:30 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:41:04 califax joins (~califax@user/califx)
00:44:44 × ft quits (~ft@i5C743B07.versanet.de) (Ping timeout: 268 seconds)
00:45:59 ft joins (~ft@mue-88-130-107-007.dsl.tropolys.de)
00:46:51 × phma quits (~phma@host-67-44-208-9.hnremote.net) (Read error: Connection reset by peer)
00:47:20 phma joins (~phma@2001:5b0:215d:ae38:bf89:58e8:737e:e16c)
00:51:49 hololeap is now known as progress-bot
00:52:35 progress-bot is now known as hololeap
01:13:17 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 240 seconds)
01:17:41 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 240 seconds)
01:25:03 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
01:26:04 mikess joins (~mikess@user/mikess)
01:33:42 rvalue joins (~rvalue@user/rvalue)
01:35:50 nek0 joins (~nek0@user/nek0)
01:45:19 × dcoutts quits (~duncan@2a02:8012:ae9a:0:9a7e:1cf5:7c51:c650) (Ping timeout: 246 seconds)
01:47:48 dcoutts joins (~duncan@2a02:8012:ae9a:0:9a7e:1cf5:7c51:c650)
01:51:22 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
01:57:13 rosco joins (~rosco@175.136.155.137)
02:05:04 × op_4 quits (~tslil@user/op-4/x-9116473) (Remote host closed the connection)
02:05:35 op_4 joins (~tslil@user/op-4/x-9116473)
02:08:25 × nadja quits (~dequbed@banana-new.kilobyte22.de) (Ping timeout: 246 seconds)
02:09:19 nadja joins (~dequbed@banana-new.kilobyte22.de)
02:10:56 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
02:11:33 × dyniec quits (~dyniec@dybiec.info) (Quit: WeeChat 4.2.2)
02:12:55 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 268 seconds)
02:14:47 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:17:43 aaronv joins (~aaronv@user/aaronv)
02:28:23 joeyadams joins (~joeyadams@2603:6010:5100:2ed:77d8:7bd:e37b:39ff)
02:32:55 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 272 seconds)
02:33:29 nhar joins (~noah@c-73-237-54-185.hsd1.ga.comcast.net)
02:37:42 × nhar quits (~noah@c-73-237-54-185.hsd1.ga.comcast.net) (Client Quit)
02:38:03 nhar joins (~noah@c-73-237-54-185.hsd1.ga.comcast.net)
02:42:30 × nhar quits (~noah@c-73-237-54-185.hsd1.ga.comcast.net) (Client Quit)
02:42:45 nhar joins (~noah@c-73-237-54-185.hsd1.ga.comcast.net)
02:44:23 × td_ quits (~td@i5387091C.versanet.de) (Ping timeout: 264 seconds)
02:45:50 td_ joins (~td@i5387093F.versanet.de)
02:54:55 × nhar quits (~noah@c-73-237-54-185.hsd1.ga.comcast.net) (Quit: leaving)
02:55:53 nhar joins (~noah@c-73-237-54-185.hsd1.ga.comcast.net)
02:57:23 bilegeek joins (~bilegeek@2600:1008:b057:7524:18e9:1f68:5cd:444a)
02:59:01 <nhar> hello world!
02:59:36 <nhar> is this the right place to ask questions?
03:03:40 aaronv joins (~aaronv@user/aaronv)
03:04:49 <mauke> well, one of them
03:05:00 <mauke> (hopefully they're haskell related)
03:05:45 <nhar> oh good! My setup works! (first time IRC user...wasn't sure my Nix setup worked).
03:05:53 <nhar> I do have a Haskell question though:
03:06:25 <nhar> I am trying to write a function with the following type: traverseJoin :: (Monad t, Traversable t, Applicative f) => (a -> f (t b)) -> t a -> m (t b)
03:07:30 <mauke> that looks wrong, even without the typo
03:08:02 <nhar> How so? I'm not trying to write an instance for `traverse` if that's what you mean
03:08:21 <mauke> where does that m come from?
03:08:40 <nhar> that's a typo, it should be f
03:08:54 <mauke> ah
03:09:14 <nhar> essientially I'm looking for something that optimizes: join <$> traverse f x
03:11:53 <joeyadams> :t \f x -> join <$> traverse f x
03:11:54 <lambdabot> (Monad m, Traversable m, Applicative f) => (a1 -> f (m a2)) -> m a1 -> f (m a2)
03:14:29 <joeyadams> :t concatMap
03:14:30 <lambdabot> Foldable t => (a -> [b]) -> t a -> [b]
03:19:22 <joeyadams> So are you asking if there's a generalized concatMap that isn't specialized to returning a list?
03:20:54 <nhar> kind of. I am looking for something that is like traverse but instead of the function returning pure values wrapped in the Applicative it returns new sub-trees of the data structure your traverse that would be stitched in "on the way up"
03:21:21 <nhar> traverse (f :: a -> m (t b)) x :: m (t (t b))
03:21:49 <nhar> and so join <$> traverse f x :: m (t b)
03:22:03 madhavanmiui joins (~madhavanm@2409:40f4:1030:9d51:8000::)
03:22:13 <nhar> the `join <$>` part has to crawl through t again just to perform the join
03:27:44 × robertm quits (robertm@lattice.rojoma.com) (Quit: WeeChat 3.8)
03:30:19 robertm joins (robertm@lattice.rojoma.com)
03:34:02 <joeyadams> To make this easier to think about, I'll specialize f to [] and t to Tree, giving: traverseJoin :: (a -> [Tree b]) -> Tree a -> [Tree b]
03:34:47 <nhar> good idea
03:35:37 × madhavanmiui quits (~madhavanm@2409:40f4:1030:9d51:8000::) (Quit: Quit)
03:35:45 <Leary> nhar: Perhaps you can use `Monoid (t b)` rather than `Monad t`?
03:35:51 <Leary> :t \f -> getAp . foldMap (Ap . f)
03:35:52 <lambdabot> forall k (t :: * -> *) (f :: k -> *) (a1 :: k) a2. (Foldable t, Monoid (Ap f a1)) => (a2 -> f a1) -> t a2 -> f a1
03:39:31 <nhar> that kind of works..however: instance (Applicative f, Monoid a1) => Monoid (Ap f a1)
03:39:54 <nhar> that would require a Monoid instance for `b` in my signature for traverseJoin
03:41:25 <Leary> Not if `Monoid (t b)` is satisfied regardless of `b`.
03:42:39 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
03:43:14 <Leary> The other option is Alternative.
03:43:17 <Leary> :t \f -> getAp . fmap getAlt . foldMap (Ap . fmap Alt . f)
03:43:18 <lambdabot> forall k (f1 :: * -> *) (t :: * -> *) (f2 :: k -> *) (a1 :: k) a2. (Foldable t, Applicative f1, Monoid (Alt f2 a1)) => (a2 -> f1 (f2 a1)) -> t a2 -> f1 (f2 a1)
03:43:50 <nhar> Leary: true. but to be more transparent my `t` type is an AST and I don't see a reasonable way to make a Monoid or Alternative instance for that
03:44:18 <nhar> data Exp a = Var a | Lam VarName (Exp a) | App (Exp a) (Exp a)
03:44:39 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
03:46:27 <nhar> I'm pretty sure at minimum I'll need Traversable t becuase Traversable is what re-constructs the original AST I'm folding over
03:49:43 <Leary> If you really want to optimise `join <$> traverse f x` for that, you're probably best off just writing it by hand.
03:51:15 <nhar> yeah...I think you're right. And if I need to make a new typeclass. Thanks for the help!
03:57:23 <nhar> wait...I think I figured out a better approach: \x h -> lift x >>= h :: (MonadTrans f, Monad t) => (a -> f (t a)) -> t a -> f (t b)
04:05:19 <mauke> (MonadTrans f, Monad t) => t a -> (a -> f t b) -> f t b
04:12:35 × CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
04:13:09 takuan joins (~takuan@178-116-218-225.access.telenet.be)
04:15:17 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
04:23:19 × aaronv quits (~aaronv@user/aaronv) (Remote host closed the connection)
04:23:44 aaronv joins (~aaronv@user/aaronv)
04:25:04 <Leary> nhar: You can write `newtype TraverseT t f a = TraverseT{ runTraverseT :: f (t a) }; instance (Traversable t, Monad t, Monad f) => Monad (TraverseT t f)` and use `\f x -> runTraverseT (TraverseT (pure x) >>= TraverseT . f)`, but that bind will end up doing exactly what you're trying to avoid.
04:25:41 × foul_owl quits (~kerry@185.219.141.162) (Ping timeout: 240 seconds)
04:29:57 lol_ joins (~lol@2603:3016:1e01:b940:c519:e2d2:dade:6025)
04:30:59 DreamDeckup joins (~DreamDeck@bras-base-lprrpq1404w-grc-06-184-145-181-233.dsl.bell.ca)
04:32:01 × zzz quits (~yin@user/zero) (Ping timeout: 256 seconds)
04:33:59 <nhar> Leary: Thanks! I think technically the MonadTrans direction is really what I'm looking for...you wouldn't happen to have used polysemy by any chance?
04:34:03 × jcarpenter2 quits (~lol@2603:3016:1e01:b940:c8a1:76:d03d:bf70) (Ping timeout: 255 seconds)
04:36:36 <Leary> nhar: Nope, and I don't recommend any of the early effect systems, especially if efficiency is a priority. Consider effectful or bluefin instead.
04:38:08 × DreamDeckup quits (~DreamDeck@bras-base-lprrpq1404w-grc-06-184-145-181-233.dsl.bell.ca) (Ping timeout: 252 seconds)
04:38:28 DreamDeckup joins (~DreamDeck@194.127.199.29)
04:38:29 zzz joins (~yin@user/zero)
04:40:48 <nhar> Leary: Thanks! I'll look into those! Not sure how to keep up with what's outdated etc...
04:50:35 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 256 seconds)
04:53:57 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
04:57:05 aaronv joins (~aaronv@user/aaronv)
05:05:30 × nhar quits (~noah@c-73-237-54-185.hsd1.ga.comcast.net) (Quit: leaving)
05:34:50 × DreamDeckup quits (~DreamDeck@194.127.199.29) (Remote host closed the connection)
05:46:27 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
05:50:42 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
05:51:17 rvalue joins (~rvalue@user/rvalue)
05:57:17 pavonia joins (~user@user/siracusa)
06:17:17 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 240 seconds)
06:22:24 aaronv joins (~aaronv@user/aaronv)
06:23:18 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:39:50 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
06:40:14 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 252 seconds)
06:45:08 euphores joins (~SASL_euph@user/euphores)
06:54:24 misterfish joins (~misterfis@84.53.85.146)
07:00:09 × tt12310978 quits (~tt1231@syn-075-185-104-199.res.spectrum.com) (Quit: The Lounge - https://thelounge.chat)
07:00:40 × bilegeek quits (~bilegeek@2600:1008:b057:7524:18e9:1f68:5cd:444a) (Quit: Leaving)
07:00:48 × bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
07:00:48 × califax quits (~califax@user/califx) (Remote host closed the connection)
07:00:48 × chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection)
07:00:48 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
07:00:48 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
07:00:48 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
07:01:12 califax joins (~califax@user/califx)
07:01:21 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
07:01:22 chexum joins (~quassel@gateway/tor-sasl/chexum)
07:01:32 stiell joins (~stiell@gateway/tor-sasl/stiell)
07:01:39 chiselfuse joins (~chiselfus@user/chiselfuse)
07:01:52 bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex)
07:03:13 tt123109783 joins (~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee)
07:07:40 × rosco quits (~rosco@175.136.155.137) (Quit: Lost terminal)
07:10:54 × joeyadams quits (~joeyadams@2603:6010:5100:2ed:77d8:7bd:e37b:39ff) (Quit: Leaving)
07:16:42 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds)
07:17:05 wootehfoot joins (~wootehfoo@user/wootehfoot)
07:18:20 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
07:23:04 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 246 seconds)
07:25:16 rosco joins (~rosco@175.136.155.137)
07:36:40 × sprout quits (~quassel@2a02-a448-3a80-0-d123-5da7-9ae5-44be.fixed6.kpn.net) (Ping timeout: 268 seconds)
07:37:21 sprout joins (~quassel@2a02-a448-3a80-0-6981-debe-91f4-8f74.fixed6.kpn.net)
07:37:36 × dcoutts quits (~duncan@2a02:8012:ae9a:0:9a7e:1cf5:7c51:c650) (Ping timeout: 268 seconds)
07:39:48 acidjnk_new3 joins (~acidjnk@p200300d6e72cfb4649ca0157bfe844d2.dip0.t-ipconnect.de)
07:52:11 misterfish joins (~misterfis@046044172198.static.ipv4.heldenvannu.net)
07:52:38 madhavanmiui joins (~madhavanm@152.58.253.222)
07:53:07 × madhavanmiui quits (~madhavanm@152.58.253.222) (Client Quit)
07:55:34 reuben joins (~reuben@183.82.114.12)
07:57:02 reuben parts (~reuben@183.82.114.12) ()
07:59:54 × tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection)
08:00:04 tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
08:02:40 reuben joins (~reuben@user/greuben)
08:03:11 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:05:17 aforemny joins (~aforemny@2001:9e8:6cdc:700:7c5a:7635:6125:375c)
08:06:54 × reuben quits (~reuben@user/greuben) (Quit: Konversation terminated!)
08:11:50 mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com)
08:16:35 gmg joins (~user@user/gehmehgeh)
08:25:09 × aaronv quits (~aaronv@user/aaronv) (Remote host closed the connection)
08:25:29 aaronv joins (~aaronv@user/aaronv)
08:38:16 target_i joins (~target_i@user/target-i/x-6023099)
08:39:16 × euleritian quits (~euleritia@dynamic-176-001-133-228.176.1.pool.telefonica.de) (Ping timeout: 268 seconds)
08:40:29 euleritian joins (~euleritia@dynamic-176-002-083-211.176.2.pool.telefonica.de)
08:44:49 defanor_ joins (~defanor@tart.uberspace.net)
08:46:11 × mikess quits (~mikess@user/mikess) (Ping timeout: 264 seconds)
08:52:12 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
08:54:14 soverysour joins (~soverysou@81.196.150.219)
08:54:14 × soverysour quits (~soverysou@81.196.150.219) (Changing host)
08:54:14 soverysour joins (~soverysou@user/soverysour)
09:02:28 TactfulCitrus joins (~al@2a02:8012:87a6:0:fbe0:6116:6e30:e047)
09:13:08 × zzz quits (~yin@user/zero) (Ping timeout: 252 seconds)
09:20:06 zzz joins (~yin@user/zero)
09:25:58 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
09:25:59 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
09:29:32 lxsameer joins (~lxsameer@Serene/lxsameer)
09:34:30 emm joins (~emm@user/edmeme)
09:41:18 sawilagar joins (~sawilagar@user/sawilagar)
09:46:21 dcoutts joins (~duncan@2a02:8012:ae9a:0:9a7e:1cf5:7c51:c650)
09:48:01 simendsjo joins (~user@84.209.170.3)
09:49:23 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:50:58 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
09:51:15 × misterfish quits (~misterfis@046044172198.static.ipv4.heldenvannu.net) (Ping timeout: 264 seconds)
09:56:39 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 268 seconds)
10:16:47 misterfish joins (~misterfis@046044172198.static.ipv4.heldenvannu.net)
10:19:18 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 256 seconds)
10:22:15 × dcoutts quits (~duncan@2a02:8012:ae9a:0:9a7e:1cf5:7c51:c650) (Ping timeout: 268 seconds)
10:23:21 × zzz quits (~yin@user/zero) (Ping timeout: 256 seconds)
10:23:21 × connrs quits (~connrs@user/connrs) (Read error: Connection reset by peer)
10:24:33 soverysour joins (~soverysou@81.196.150.219)
10:24:33 × soverysour quits (~soverysou@81.196.150.219) (Changing host)
10:24:33 soverysour joins (~soverysou@user/soverysour)
10:24:47 __monty__ joins (~toonn@user/toonn)
10:30:14 zzz joins (~yin@user/zero)
10:30:18 dcoutts joins (~duncan@2a02:8012:ae9a:0:9a7e:1cf5:7c51:c650)
10:37:21 × dcoutts quits (~duncan@2a02:8012:ae9a:0:9a7e:1cf5:7c51:c650) (Ping timeout: 268 seconds)
10:40:54 alexherbo2 joins (~alexherbo@2a02-8440-3215-598d-d54a-56ea-534f-abcf.rev.sfr.net)
10:40:59 connrs joins (~connrs@user/connrs)
10:44:55 × alexherbo2 quits (~alexherbo@2a02-8440-3215-598d-d54a-56ea-534f-abcf.rev.sfr.net) (Remote host closed the connection)
10:45:09 alexherbo2 joins (~alexherbo@2a02-8440-3215-598d-edb2-6673-65b4-fdc7.rev.sfr.net)
10:45:15 × euleritian quits (~euleritia@dynamic-176-002-083-211.176.2.pool.telefonica.de) (Ping timeout: 264 seconds)
10:46:12 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 255 seconds)
10:47:18 soverysour joins (~soverysou@81.196.150.219)
10:47:18 × soverysour quits (~soverysou@81.196.150.219) (Changing host)
10:47:18 soverysour joins (~soverysou@user/soverysour)
10:50:37 euleritian joins (~euleritia@77.22.252.56)
11:00:25 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 246 seconds)
11:02:36 × mrmr15533434 quits (~mrmr@user/mrmr) (Quit: Bye, See ya later!)
11:11:23 × misterfish quits (~misterfis@046044172198.static.ipv4.heldenvannu.net) (Ping timeout: 252 seconds)
11:16:11 <xerox> anybody knows of a swift introduction to template haskell? I'd like to reify a very small subset of haskell (lambdas, applications, and a handful of functions) into a data tree that I want to operate on, I think TH is how I could go about it pretty directly?
11:22:09 mrmr155334346 joins (~mrmr@user/mrmr)
11:26:20 <haskellbridge> <sm> ghc user guide maybe ?
11:28:16 misterfish joins (~misterfis@87.215.131.102)
11:31:02 <xerox> yeah just stumbled upon that one, excellent
11:32:01 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:33:22 oo_miguel joins (~Thunderbi@78.10.207.46)
11:35:21 soverysour joins (~soverysou@81.196.150.219)
11:35:21 × soverysour quits (~soverysou@81.196.150.219) (Changing host)
11:35:21 soverysour joins (~soverysou@user/soverysour)
11:45:40 × alexherbo2 quits (~alexherbo@2a02-8440-3215-598d-edb2-6673-65b4-fdc7.rev.sfr.net) (Remote host closed the connection)
11:46:01 alexherbo2 joins (~alexherbo@2a02-8440-3215-598d-edb2-6673-65b4-fdc7.rev.sfr.net)
11:49:12 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 268 seconds)
11:56:01 soverysour joins (~soverysou@user/soverysour)
12:05:10 × misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 246 seconds)
12:21:38 × alexherbo2 quits (~alexherbo@2a02-8440-3215-598d-edb2-6673-65b4-fdc7.rev.sfr.net) (Remote host closed the connection)
12:25:33 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:37:12 misterfish joins (~misterfis@87.215.131.102)
12:47:31 × euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 246 seconds)
12:48:22 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
12:51:11 × puke quits (~puke@user/puke) (Remote host closed the connection)
12:51:26 puke joins (~puke@user/puke)
12:58:05 × simendsjo quits (~user@84.209.170.3) (Ping timeout: 252 seconds)
12:58:11 alexherbo2 joins (~alexherbo@2a02-8440-3215-598d-c4fd-5ebf-ca0b-e80d.rev.sfr.net)
13:01:17 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 240 seconds)
13:09:47 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
13:13:01 ystael joins (~ystael@user/ystael)
13:14:04 × alexherbo2 quits (~alexherbo@2a02-8440-3215-598d-c4fd-5ebf-ca0b-e80d.rev.sfr.net) (Remote host closed the connection)
13:30:01 × ystael quits (~ystael@user/ystael) (Ping timeout: 268 seconds)
13:32:04 soverysour joins (~soverysou@user/soverysour)
13:37:11 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 264 seconds)
14:12:26 soverysour joins (~soverysou@81.196.150.219)
14:12:26 × soverysour quits (~soverysou@81.196.150.219) (Changing host)
14:12:26 soverysour joins (~soverysou@user/soverysour)
14:15:41 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
14:16:15 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
14:16:49 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 256 seconds)
14:19:47 × Teacup_ quits (~teacup@user/teacup) ()
14:20:05 Teacup joins (~teacup@user/teacup)
14:28:36 greuben joins (~reuben@user/greuben)
14:31:23 soverysour joins (~soverysou@81.196.150.219)
14:31:23 × soverysour quits (~soverysou@81.196.150.219) (Changing host)
14:31:23 soverysour joins (~soverysou@user/soverysour)
14:36:29 × greuben quits (~reuben@user/greuben) (Quit: Konversation terminated!)
14:46:14 × phma quits (~phma@2001:5b0:215d:ae38:bf89:58e8:737e:e16c) (Read error: Connection reset by peer)
14:47:07 phma joins (phma@2001:5b0:210b:8948:1a5:8d32:9eb9:6e63)
14:48:02 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 268 seconds)
15:02:52 × caryfitz quits (~caryfitz@2600:1700:e72:9000::47) (Remote host closed the connection)
15:03:16 caryfitz joins (~caryfitz@2600:1700:e72:9000::47)
15:16:02 soverysour joins (~soverysou@user/soverysour)
15:21:01 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 268 seconds)
15:49:57 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:51:56 soverysour joins (~soverysou@81.196.150.219)
15:51:56 × soverysour quits (~soverysou@81.196.150.219) (Changing host)
15:51:56 soverysour joins (~soverysou@user/soverysour)
15:57:06 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 268 seconds)
16:00:04 srk- joins (~sorki@user/srk)
16:00:26 × srk quits (~sorki@user/srk) (Ping timeout: 256 seconds)
16:02:55 srk- is now known as srk
16:09:50 × oo_miguel quits (~Thunderbi@78.10.207.46) (Quit: oo_miguel)
16:16:22 soverysour joins (~soverysou@user/soverysour)
16:16:45 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
16:20:15 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 260 seconds)
16:20:27 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:20:57 Maxdamantus joins (~Maxdamant@user/maxdamantus)
16:21:27 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
16:22:11 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:23:28 × koz quits (~koz@121.99.240.58) (Quit: ZNC 1.8.2 - https://znc.in)
16:24:45 koz joins (~koz@121.99.240.58)
16:26:09 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
16:27:41 Lawrence1erkheim joins (~LBerkheim@user/LawrenceBerkheim)
16:27:44 <Lawrence1erkheim> hello
16:29:37 <Rembane> Hi Lawrence1erkheim !
16:31:28 <Lawrence1erkheim> I had a dummy moment with a question, but then I googled it and figured it out haha
16:31:44 <Lawrence1erkheim> my bad
16:32:02 <geekosaur> rubber duck debugging at its finest
16:32:33 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
16:33:05 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
16:33:08 <Rembane> Lawrence1erkheim: No worries, you just won the internet!
16:34:05 <Rembane> Lawrence1erkheim: Mildly relevant: https://xkcd.com/979/
16:34:42 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
16:35:11 rvalue joins (~rvalue@user/rvalue)
16:36:43 joeyadams joins (~joeyadams@2603:6010:5100:2ed:af11:237f:c1e1:d41b)
16:41:53 Sgeo joins (~Sgeo@user/sgeo)
16:43:24 <Lawrence1erkheim> Uhm ok I'd love some advice on learning materials
16:43:39 <Lawrence1erkheim> Basically I learned haskell aaaaages ago when I did my bsc
16:43:57 <Lawrence1erkheim> Now I'm trying to refresh my knowledge because I'll assist a professor at the uni
16:44:13 <Lawrence1erkheim> I opened up learnyouahaskell.com, and started going through that
16:44:24 <Lawrence1erkheim> But I just figured out that I'm mostly familiar with the concepts
16:45:29 <Lawrence1erkheim> However, when I opened up the last year's exercises, I found stuff like `Module bla bla bla`, `import`, etc.
16:45:33 mikess joins (~mikess@user/mikess)
16:45:47 <Lawrence1erkheim> Which is different from the stuff that I just read which is basically functional programming concepts
16:45:56 <Lawrence1erkheim> Can you suggest any resources?
16:46:07 <Lawrence1erkheim> I'm not sure what to google because I don't know what that more engineering type of programming is called here
16:47:21 <Rembane> Lawrence1erkheim: Real World Haskell is ancient by now, but might be worth giving a skim.
16:47:53 <Rembane> Isn't there a list of resources in lambdabot or something? I can't remember the word to invoke them with though.
16:48:27 <Lawrence1erkheim> thank you o7
16:49:05 <Lawrence1erkheim> I very rarely come on to IRC, I barely managed to get on here so I'm affraid to brick my irssi while trying to invoke a bot
16:49:11 <haskellbridge> <sm> @ where and also https://haskell-links.org
16:49:49 <Rembane> Lawrence1erkheim: A potential stupid advice is to try to do the exercises for the course you'll work with yourself and ask here when you get stuck. :D
16:49:55 <Rembane> @where
16:49:55 <lambdabot> @where <key>, return element associated with key
16:50:01 <Rembane> lambdabot: @where
16:50:02 <lambdabot> @where <key>, return element associated with key
16:50:09 <Rembane> lambdabot: where
16:52:23 <Lawrence1erkheim> Rembane: Yea that's also on the table. For now I'm thinking that doing some reading will make the entire experience way smoother, although I _will_ have to do those exercises myself.
16:54:28 wootehfoot joins (~wootehfoo@user/wootehfoot)
16:54:33 <Rembane> Lawrence1erkheim: Woohoo! I was mostly hoping they would give you some terminology and break up the big gap of blank in some smaller pieces.
16:56:28 <mreh> Lawrence1erkheim: do you mind saying which uni?
16:57:56 <Lawrence1erkheim> mreh: I'd rather not, the internet is a spooky place.
16:58:56 dyniec joins (~dyniec@dybiec.info)
17:07:30 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
17:10:44 <mreh> I was looking at RWH the other day, it's still very relevant I would say. And free.
17:11:09 <mreh> https://book.realworldhaskell.org/read/
17:11:33 <Rembane> I think it depends on which parts of it you look at. It's not that easy to follow along because the version of Haskell is ancient and so are the packages.
17:11:57 <mreh> depends on his syllabus too
17:12:17 <Rembane> Indeed. This is where it gets tricky. :)
17:13:03 <mreh> YouTube is super good these days
17:13:09 <dolio> It doesn't seem likely that a college course on Haskell is going to be super focused on the details of particular trendy libraries.
17:13:45 <dolio> The concrete stuff asked about above just seems to be how to write programs with multiple files, or using libraries.
17:14:06 dcoutts joins (~duncan@212.187.183.33)
17:14:22 <mreh> did someone mention RWH??
17:14:37 <dolio> Yeah.
17:14:43 <mreh> sorry ignore that
17:14:57 <mreh> Lawrence1erkheim: honestly I would just do the exercises and ask in here if you get stuck
17:15:28 <geekosaur> I'd look at CIS194 and/or the wikibook
17:15:32 <geekosaur> @where cis194
17:15:32 <lambdabot> <https://github.com/byorgey/haskell-course>,<https://www.seas.upenn.edu/~cis194/spring13/lectures.html>
17:15:38 <geekosaur> @where wikibook
17:15:38 <lambdabot> http://en.wikibooks.org/wiki/Haskell
17:15:57 <geekosaur> byorgey keeps the first one up to date, the community keeps the second up to date
17:16:07 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:16:14 <monochrom> If the question is "what are module and import", the wikibook up there has it; but I learned it from the Haskell Report itself, the wikibook didn't exist back then. (Alternatively, it should be very easy to guess.)
17:16:54 <Lawrence1erkheim> Very nice
17:16:57 <monochrom> In the university setting, RWH is likely tangential. I mean, it is not called AWH for a reason. >:)
17:16:58 <Lawrence1erkheim> Thanks yall
17:17:17 <monochrom> or RUH haha
17:18:05 <monochrom> https://soupi.github.io/rfc/reading_simple_haskell/ can get you started quickly if you just need to read.
17:18:33 <dolio> It might explain the mundane details of how you actually compile and run a Haskell project, though. Which, like, the gentle introduction doesn't seem to do.
17:19:13 <geekosaur> the GI is fine if you already know SML/NJ, including how to build and run programs. it's lousy for any other background
17:19:18 <monochrom> (Well, I learned both Chinese and English by "just read/listen" and then "just stochastic parrot". Don't underestimate the power of that.)
17:19:43 <Rembane> Stochastic parrot is one of my favourite birds!
17:19:52 <dolio> Well, I was thinking about, 'I already know FP principles.' But it also doesn't provide the missing information.
17:19:52 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
17:19:53 × dcoutts quits (~duncan@212.187.183.33) (Ping timeout: 252 seconds)
17:20:13 <dolio> Also it's too old for any build tools to exist.
17:20:29 <dolio> Which I assume are being used.
17:20:48 <geekosaur> it even predates `ghc --make`!
17:20:59 <dolio> Hahaha. Yeah.
17:21:00 <geekosaur> muchless that becoming the default
17:21:04 <Lawrence1erkheim> omg based it explains what the `::` notation means
17:22:05 <Rembane> Lawrence1erkheim: I need to see that explanation! Where did you find it?
17:23:25 <Lawrence1erkheim> I'm just going through https://soupi.github.io/rfc/reading_simple_haskell/ that was suggested
17:23:55 <Lawrence1erkheim> Now looking at what `data` means. I found some lesson `.hs` files, and at lesson 2 they started dropping the `data` blablabla
17:24:22 simendsjo joins (~user@84.209.170.3)
17:24:30 <mreh> > data Basedness = Based | Debased
17:24:32 <lambdabot> <hint>:1:1: error: parse error on input ‘data’
17:24:42 <mreh> damn, I gotta brush up
17:24:54 <Lawrence1erkheim> I find the `Integer -> Integer -> Integer` very strange though
17:25:15 <Lawrence1erkheim> I assume it denotes a function that takes two integers and returns one
17:25:21 <monochrom> It means `Integer -> (Integer -> Integer)` if you know what I mean.
17:25:22 <mreh> functions in haskell are curried
17:25:42 <mreh> s/curried/Curried/
17:25:46 <Lawrence1erkheim> mmmm
17:26:13 <mreh> :t curry
17:26:14 <lambdabot> ((a, b) -> c) -> a -> b -> c
17:28:21 <Rembane> Lawrence1erkheim: Does slide 22 make you wiser or more confused wrt functions?
17:29:33 <mreh> :t (.)
17:29:35 <lambdabot> (b -> c) -> (a -> b) -> a -> c
17:30:54 <mreh> I guess the is author is grouping the types according to how they're parsed
17:31:11 <mreh> -> is a type constructor
17:31:26 <monochrom> Yes sometimes I add redundant parens when teaching.
17:31:30 <mreh> :k (->)
17:31:31 <lambdabot> * -> * -> *
17:32:01 <mreh> that's its kind signature, it takes two types and becomes a third
17:32:13 <monochrom> When I teach >>= I am like "foo >>= (\x -> bar >>= (\y -> ...". (I will comment "those parens are optional".)
17:32:42 × bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds)
17:32:54 mreh is available for Haskell tutoring
17:33:06 <mreh> monochrom: do you do private tutoring?
17:33:31 <monochrom> No unless referral from a friend.
17:34:29 <mreh> I'm just trying to monetize my addiction
17:34:32 <monochrom> Hahaha that means I am like those barristers in some countries. Not allowed to advertise and seek clients. Must sit there wait for solicitors to forward clients.
17:35:08 bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex)
17:35:21 <monochrom> OK my situation is just because I have already got teaching contracts at uni, so I don't need more monetization.
17:35:38 <Rembane> monochrom: Which one of (>>=) and (>=>) is easiest to teach?
17:35:52 <monochrom> Plus, no one ever asked me for Haskell tutoring. It's always boring stuff like discrete math and NP-completeness....
17:36:29 <monochrom> I don't know. I stick to >>= because it is more pragmatic and idiomatic.
17:36:52 pavonia joins (~user@user/siracusa)
17:37:18 <Rembane> monochrom: Got it! What makes it more idiomatic?
17:38:08 <monochrom> Just frequency in code people write.
17:40:48 L29Ah joins (~L29Ah@wikipedia/L29Ah)
17:40:53 dcoutts joins (~duncan@ip-185-104-136-57.ptr.icomera.net)
17:41:55 <monochrom> But I think I can describe why it's more pragmatic.
17:42:15 <Rembane> Sweet!
17:42:27 nhar joins (~noah@99-112-0-41.lightspeed.tukrga.sbcglobal.net)
17:43:00 <monochrom> You often need the equivalent of "... >>= \x -> ... x occurs a million times in a million levels of scopes ...". With >>= or do, you just write exactly that directly.
17:44:38 <Rembane> That's true, there's a quite straightforward mechanical translation between them that can be done in the head too!
17:44:46 <monochrom> With >=>, you have to introduce tuples and then eliminate them. It is indirect, it's an encoding. I am not even commenting on efficiency performance. I am commenting on whether you write what you mean or you write a translation and then the reader has to untranslate.
17:45:13 <monochrom> And you know it's true because why else the Arrow people went out of their way to invent do-proc notation.
17:45:59 <ncf> tuples?
17:46:02 <Rembane> I don't think you have to interact with tuples, let me see...
17:46:03 <jackdk> I find that teaching is good for highlighting how `do`-notation works, and the sort of code that people usually write. I find that `(>=>)` is good for highlighting the laws in an obvious way, and highlighting `join` makes it map more cleanly to the traditional definitions. It is often a good exercise to ask people to write each in terms of the other two.
17:46:06 <Rembane> :t (>=>)
17:46:07 <lambdabot> Monad m => (a -> m b) -> (b -> m c) -> a -> m c
17:46:12 <probie> I use `(>>=)` a lot more than `(>=>)`. `(>=>)` is nice for stating the laws because it's pretty much composition, but using it is about as ergonomic as writing all functions point-free
17:46:14 <Rembane> Nah, it's composition
17:46:17 <Rembane> Monad composition
17:46:26 <ncf> the (>=>)/(>>=) debate should be entirely analogous to the (.)/($) debate
17:46:40 <Rembane> ncf: Yes! Just add monads!
17:46:43 <geekosaur> right, but you more often use pure computations in monadic contexts than you compose monadic operations
17:46:52 <geekosaur> (the former being (>>=)
17:46:55 <geekosaur> )
17:47:17 <Rembane> It's sadly quite hard to mix (<&>) and (>=>)
17:47:33 <mreh> :t (<&>)
17:47:35 <lambdabot> Functor f => f a -> (a -> b) -> f b
17:47:44 <probie> I'd say it's closer to `(.)`/`(&)`
17:47:58 <probie> :t (>>=)
17:48:00 <lambdabot> Monad m => m a -> (a -> m b) -> m b
17:48:01 <probie> :t (&)
17:48:02 <lambdabot> a -> (a -> b) -> b
17:48:06 <probie> :t (=<<)
17:48:07 <lambdabot> Monad m => (a -> m b) -> m a -> m b
17:48:09 <probie> :t ($)
17:48:10 <lambdabot> (a -> b) -> a -> b
17:53:16 <monochrom> A while ago I also thought about how to make >>= more theoretically pleasing. I haven't finished, but I think the first step is to flip the argument order, (a -> m b) -> (m a -> m b). Then it is just the unsurprising functor from the Kleisli category back to the original category.
17:53:33 <Lawrence1erkheim> Oh my lord computerphile are so goated
17:53:41 <Lawrence1erkheim> I get currying now
17:53:46 <Lawrence1erkheim> Wait no, let me fix that
17:53:51 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:53:51 <Lawrence1erkheim> I think I get currying now*
17:57:36 <mreh> Is there an equivalent to a Map at the type level?
17:58:53 <nhar> mreh: i found this: https://hackage.haskell.org/package/type-level-sets-0.7
17:58:57 × dcoutts quits (~duncan@ip-185-104-136-57.ptr.icomera.net) (Ping timeout: 256 seconds)
17:59:45 <mreh> google is your friend
17:59:49 <mreh> nhar: thx
18:00:07 × soverysour quits (~soverysou@user/soverysour) (Ping timeout: 260 seconds)
18:00:36 <nhar> mreh: np! Not sure how user friendly it is - but if all else fails you could implement your own if your type-level-fu is up to it
18:00:43 <mreh> I'm generating GLSL and want to see if I can statically check all the vertex buffers and uniforms are there when it comes to run it
18:00:54 <mreh> nhar: I'm working on that
18:01:21 <mreh> Thinking With Types is a pretty nice book.
18:02:15 <nhar> > I'm generating GLSL...
18:02:17 <lambdabot> <hint>:1:23: error:
18:02:17 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
18:02:23 <nhar> I'm not sure that that is...
18:02:33 <nhar> what is GLSL?
18:02:52 <mreh> OpenGL Shading Language
18:02:54 <nhar> And I thought it was a great read! Super duper helpful
18:03:01 <Rembane> > -- Markdown block quotes doesn't really work here. :)
18:03:02 <lambdabot> <no location info>: error:
18:03:02 <lambdabot> not an expression: ‘-- Markdown block quotes doesn't really work here. :)’
18:03:05 <Rembane> :D
18:03:06 <mreh> nhar: has it been helpful?
18:03:23 <nhar> Rembane: thnkx! I'm new to IRC and have no clue what I'm doing xD
18:03:25 <mreh> I'm hoping I can actually tackle the stuff I want to do with types
18:04:39 <nhar> mreh: I've never done graphics before but it does sure sound like a challenge. From my experience I'm typically in the boat of "make your types super strong"...though I wish the UI for typelevel programing in haskell just re-used the value-level syntax...
18:04:54 <Rembane> mreh: No worries! We're all here to learn. :D
18:05:11 <mreh> nhar: ^
18:05:33 <nhar> has anyone ever heard of co-contextual type systems? https://www.informatik.uni-marburg.de/~seba/publications/cocontextual-type-checking.pdf
18:05:43 <nhar> Rembane: thanks!
18:06:16 <nhar> I'm learning how to implement a hindley-milner-damas type inference algorithm and it's hurting my brain...thought this might be a simpler solution...
18:06:18 × leah2 quits (~leah@vuxu.org) (Ping timeout: 255 seconds)
18:06:21 <monochrom> Ugh type-level GLSL haha
18:07:42 <mreh> it's only inputs to the pipeline that I'm going to record at the type level
18:08:58 <mreh> I might make something a bit more abstract for writing the shader code
18:09:28 <monochrom> I have not heard of the name "co-contextual", but Pierce's TaPL definitely presents type inference that way.
18:10:15 <nhar> mreh: is GLSL a strongly typed language?
18:10:16 <monochrom> Err maybe not, I am not reading carefully.
18:11:11 <mreh> nhar: well, there are implicit casts, but the types are enforced by the compiler
18:11:27 <nhar> monochrom: yeah. TaPL (types and programing languages?) The typing systems there start with simply-typed lambda calculus and kinda ends at F-w (or F*...can't remember which)...I don't think he covers hindley-milner
18:11:51 <mreh> so it's strong but not static
18:12:35 <nhar> mreh: oh fun...so you're leveraging the HS type sytem to make sure you're generating GLSL type-correct code?
18:13:30 <mreh> nhar: not quite, mainly taking out all the boilerplate of buffering data and then sprinkling some types on top
18:15:26 <monochrom> Chapter 22 "type reconstruction" is type inference.
18:15:48 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
18:16:27 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
18:16:29 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 240 seconds)
18:17:31 <nhar> mreh: nice! Well, good luck!
18:18:19 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
18:18:38 <nhar> monochrom: I'll have to pull it off the shelf. If you, by chance, remember: does the term-level syntax require type annotations? I'm implementing a language and I'd rather my user's not need type annotations
18:18:45 Lord_of_Life_ is now known as Lord_of_Life
18:18:57 <monochrom> Does not.
18:19:01 leah2 joins (~leah@vuxu.org)
18:19:33 × mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 268 seconds)
18:19:50 <nhar> monochrom: ooo! Ok, I'll have a look. Most of the material on hidnley-milner is a bit obtuse.
18:19:53 <nhar> Thanks!
18:20:46 <monochrom> I wrote https://www.cs.utoronto.ca/~trebla/CSCC24-2024-Summer/11-type-inference.html for my course.
18:21:33 Sgeo joins (~Sgeo@user/sgeo)
18:24:03 <nhar> monochrom: thanks so much! i'll take a look. My goal is to implement the algorithms using recursion-schemes
18:25:14 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
18:25:19 × nhar quits (~noah@99-112-0-41.lightspeed.tukrga.sbcglobal.net) (Changing host)
18:25:19 nhar joins (~noah@user/nhar)
18:27:14 aaronv joins (~aaronv@user/aaronv)
18:30:51 cheater_ joins (~Username@user/cheater)
18:33:35 × cheater quits (~Username@user/cheater) (Ping timeout: 264 seconds)
18:33:37 cheater_ is now known as cheater
18:37:28 L29Ah joins (~L29Ah@wikipedia/L29Ah)
18:38:03 Maxdaman1us joins (~Maxdamant@user/maxdamantus)
18:39:35 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 264 seconds)
18:40:36 TheCoffeMaker_ joins (~TheCoffeM@200.114.213.75)
18:41:26 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 268 seconds)
18:42:06 wootehfoot joins (~wootehfoo@user/wootehfoot)
18:43:54 × nhar quits (~noah@user/nhar) (Ping timeout: 268 seconds)
18:46:22 × mikess quits (~mikess@user/mikess) (Ping timeout: 268 seconds)
18:46:41 nhar joins (~noah@99-112-0-41.lightspeed.tukrga.sbcglobal.net)
18:47:16 × nhar quits (~noah@99-112-0-41.lightspeed.tukrga.sbcglobal.net) (Changing host)
18:47:16 nhar joins (~noah@user/nhar)
18:49:19 <nhar> monochrom: this is super helpful and well written. Thanks again
18:55:17 <Lawrence1erkheim> revisiting haskel after a masters is so good
18:55:33 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
18:56:14 × TheCoffeMaker_ quits (~TheCoffeM@200.114.213.75) (Ping timeout: 268 seconds)
18:58:53 TheCoffeMaker_ joins (~TheCoffeM@200.114.213.75)
19:00:15 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 264 seconds)
19:03:46 <nhar> Lawrence1erkheim: how so?
19:05:24 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
19:05:51 KingTrent joins (~KingTrent@111.92.44.73)
19:06:39 KingTrent parts (~KingTrent@111.92.44.73) (Leaving)
19:15:20 × TheCoffeMaker_ quits (~TheCoffeM@200.114.213.75) (Quit: So long and thanks for all the fish)
19:19:17 × simendsjo quits (~user@84.209.170.3) (Ping timeout: 272 seconds)
19:24:38 Joao[3] joins (~Joao003@190.108.99.178)
19:26:58 mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com)
19:29:22 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 260 seconds)
19:29:38 gmg joins (~user@user/gehmehgeh)
19:30:26 × rosco quits (~rosco@175.136.155.137) (Quit: Lost terminal)
19:37:46 × joeyadams quits (~joeyadams@2603:6010:5100:2ed:af11:237f:c1e1:d41b) (Quit: Leaving)
19:37:47 wootehfoot joins (~wootehfoo@user/wootehfoot)
19:42:51 alexherbo2 joins (~alexherbo@2a02-8440-3215-598d-b470-a88f-97cf-942e.rev.sfr.net)
19:46:11 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 264 seconds)
19:49:45 × nhar quits (~noah@user/nhar) (Quit: leaving)
19:50:59 × pieguy128 quits (~pieguy128@bras-base-mtrlpq5031w-grc-45-67-70-24-166.dsl.bell.ca) (Ping timeout: 264 seconds)
19:52:47 pieguy128 joins (~pieguy128@bras-base-mtrlpq5031w-grc-45-67-70-24-166.dsl.bell.ca)
20:00:30 × Lawrence1erkheim quits (~LBerkheim@user/LawrenceBerkheim) (Quit: leaving)
20:02:40 × phma quits (phma@2001:5b0:210b:8948:1a5:8d32:9eb9:6e63) (Read error: Connection reset by peer)
20:03:09 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:03:26 phma joins (~phma@2001:5b0:210f:618:1292:6c24:64e4:74a)
20:06:27 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:08:55 × Joao[3] quits (~Joao003@190.108.99.178) (Quit: Bye!)
20:42:54 × mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 255 seconds)
20:57:39 dcoutts joins (~duncan@ip-185-104-136-57.ptr.icomera.net)
21:02:04 dcoutts_ joins (~duncan@ip-185-104-136-57.ptr.icomera.net)
21:02:42 × dcoutts quits (~duncan@ip-185-104-136-57.ptr.icomera.net) (Ping timeout: 255 seconds)
21:05:26 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 268 seconds)
21:07:43 mikess joins (~mikess@user/mikess)
21:16:58 × infinity0 quits (~infinity0@pwned.gg) (Remote host closed the connection)
21:17:27 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:18:28 × phma quits (~phma@2001:5b0:210f:618:1292:6c24:64e4:74a) (Read error: Connection reset by peer)
21:19:04 infinity0 joins (~infinity0@pwned.gg)
21:27:08 × mxs9 quits (~mxs@user/mxs) (Quit: The Lounge - https://thelounge.chat)
21:30:34 phma joins (~phma@2001:5b0:215a:ef08:a1:7264:bc90:3efa)
21:30:55 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
21:32:40 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood)
21:33:11 aaronv joins (~aaronv@user/aaronv)
21:34:38 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
21:36:05 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:38:49 tzh_ joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
21:40:35 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Ping timeout: 252 seconds)
21:41:39 × dcoutts_ quits (~duncan@ip-185-104-136-57.ptr.icomera.net) (Ping timeout: 264 seconds)
21:43:05 × aaronv quits (~aaronv@user/aaronv) (Quit: Leaving)
21:48:53 × tzh_ quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
21:50:01 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
21:54:35 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
21:58:39 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
22:01:12 wootehfoot joins (~wootehfoo@user/wootehfoot)
22:12:08 lain` joins (lain`@user/lain/x-9874679)
22:12:40 dcoutts_ joins (~duncan@ip-185-104-136-57.ptr.icomera.net)
22:14:03 dcoutts__ joins (~duncan@212.187.244.86)
22:16:48 × alexherbo2 quits (~alexherbo@2a02-8440-3215-598d-b470-a88f-97cf-942e.rev.sfr.net) (Remote host closed the connection)
22:17:23 × dcoutts_ quits (~duncan@ip-185-104-136-57.ptr.icomera.net) (Ping timeout: 264 seconds)
22:18:00 alexherbo2 joins (~alexherbo@2a02-8440-3215-598d-4c2c-7398-d9af-2ab7.rev.sfr.net)
22:20:18 dcoutts_ joins (~duncan@185.201.60.220)
22:21:31 × alexherbo2 quits (~alexherbo@2a02-8440-3215-598d-4c2c-7398-d9af-2ab7.rev.sfr.net) (Remote host closed the connection)
22:23:01 × dcoutts__ quits (~duncan@212.187.244.86) (Ping timeout: 256 seconds)
22:23:40 ss4 joins (~wootehfoo@user/wootehfoot)
22:27:15 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 264 seconds)
22:27:31 × misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 260 seconds)
22:28:25 × dcoutts_ quits (~duncan@185.201.60.220) (Read error: Connection reset by peer)
22:31:23 × Nixkernal quits (~Nixkernal@240.17.194.178.dynamic.cust.swisscom.net) (Ping timeout: 256 seconds)
22:36:32 × nshepperd2 quits (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Quit: The Lounge - https://thelounge.chat)
22:36:56 mxs9 joins (~mxs@user/mxs)
22:37:22 nshepperd2 joins (nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
22:37:24 × lain` quits (lain`@user/lain/x-9874679) (Remote host closed the connection)
22:37:52 lain` joins (lain`@user/lain/x-9874679)
22:37:57 × nshepperd2 quits (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Client Quit)
22:38:27 × lain` quits (lain`@user/lain/x-9874679) (Remote host closed the connection)
22:38:54 lain` joins (lain`@user/lain/x-9874679)
22:39:50 × lain` quits (lain`@user/lain/x-9874679) (Remote host closed the connection)
22:40:17 lain` joins (lain`@user/lain/x-9874679)
22:40:21 × zzz quits (~yin@user/zero) (Ping timeout: 255 seconds)
22:40:28 nshepperd2 joins (~nshepperd@2a01:4f9:3b:4cc9::2)
22:41:22 × nshepperd2 quits (~nshepperd@2a01:4f9:3b:4cc9::2) (Client Quit)
22:42:52 joeyadams joins (~joeyadams@2603:6010:5100:2ed:2bef:3f32:3ac3:d5e)
22:43:39 dcoutts joins (~duncan@94.119.32.12)
22:46:12 nshepperd2 joins (~nshepperd@2a01:4f9:3b:4cc9::2)
22:46:18 <monochrom> w00t new cabal-install!
22:47:19 zzz joins (~yin@user/zero)
22:48:16 × dolio quits (~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
22:49:45 dolio joins (~dolio@130.44.134.54)
22:53:16 × dcoutts quits (~duncan@94.119.32.12) (Remote host closed the connection)
22:53:18 × dolio quits (~dolio@130.44.134.54) (Client Quit)
22:53:34 dcoutts joins (~duncan@94.119.32.5)
22:53:46 × nshepperd2 quits (~nshepperd@2a01:4f9:3b:4cc9::2) (Quit: The Lounge - https://thelounge.chat)
22:53:55 nshepperd2 joins (~nshepperd@2a01:4f9:3b:4cc9::2)
22:55:18 × nshepperd2 quits (~nshepperd@2a01:4f9:3b:4cc9::2) (Client Quit)
22:55:26 nshepperd2 joins (~nshepperd@2a01:4f9:3b:4cc9::2)
22:56:26 dolio joins (~dolio@130.44.134.54)
22:59:23 × dcoutts quits (~duncan@94.119.32.5) (Ping timeout: 264 seconds)
23:00:27 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:03:34 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
23:06:13 misterfish joins (~misterfis@84.53.85.146)
23:07:01 × emm quits (~emm@user/edmeme) (Ping timeout: 246 seconds)
23:09:08 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 252 seconds)
23:14:11 tomboy64 joins (~tomboy64@user/tomboy64)
23:20:04 × mxs9 quits (~mxs@user/mxs) (Quit: The Lounge - https://thelounge.chat)
23:30:01 mxs9 joins (~mxs@user/mxs)
23:31:08 × ss4 quits (~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds)
23:42:50 × phma quits (~phma@2001:5b0:215a:ef08:a1:7264:bc90:3efa) (Read error: Connection reset by peer)
23:45:46 phma joins (phma@2001:5b0:2144:3258:22dc:c425:bf48:7057)
23:48:09 × phma quits (phma@2001:5b0:2144:3258:22dc:c425:bf48:7057) (Read error: Connection reset by peer)
23:54:16 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 246 seconds)

All times are in UTC on 2024-06-30.