Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,803,144 events total
2025-10-27 04:09:07 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-10-27 04:09:22 <Leary> Uhh. I don't think that constraint is satisfiable without `instance Hashable a`.
2025-10-27 04:12:23 <jackdk> Ah, you're correct. Nevertheless, you can define `toList` without constraints (`toList ha hsa = unhash ha : toList hsa`) and then `foldMap f = foldMap f . toList`
2025-10-27 04:13:03 <Leary> Yes, that's equivalent to `deriving Foldable`. Not that it really makes sense for unordered containers in the first place.
2025-10-27 04:14:49 <hololeap> Foldable doesn't make sense?
2025-10-27 04:15:08 <hololeap> it's mostly to be able to use `all` and `any`
2025-10-27 04:15:47 <hololeap> so the ordering doesn't really matter. I could do what jackdk says and then remove the inner Foldable constraint on the data type
2025-10-27 04:17:21 <hololeap> glguy: what is the difference between on the outside vs the inside?
2025-10-27 04:17:51 <monochrom> Oh! It's equivalent to "data N a where N :: Hashable a => N (Hashed a) (HashSet a)". You're using GADTs.
2025-10-27 04:18:22 <hololeap> oh... I have GHC2021 turned on
2025-10-27 04:18:29 <monochrom> :)
2025-10-27 04:18:47 <monochrom> FWIW, it also means you don't need explicit RankNTypes :)
2025-10-27 04:19:13 <hololeap> I thought it was using RankNTypes and I wanted to make it explicit
2025-10-27 04:19:34 <hololeap> I didn't think of GADTs
2025-10-27 04:20:05 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-27 04:20:13 <monochrom> RankNTypes would be like "data N = N (forall a. Hashable a => ...)"
2025-10-27 04:20:15 <hololeap> that's actually a reason not to use GHC2021
2025-10-27 04:22:30 <hololeap> monochrom: what is the difference?
2025-10-27 04:23:03 <hololeap> between that and `= Hashable a => NEHashSet (Hashed a) (HashSet a)`
2025-10-27 04:23:56 <hololeap> I remember one of them is using ExistentialQuantification, but which one?
2025-10-27 04:24:43 <monochrom> I will use a toy example. "data X a = X a" vs "data Y = Y (forall a. a)". I can make "x :: X Int; x = X 5". I cannot make a value of Y, short of Y undefined.
2025-10-27 04:25:02 <hololeap> ok
2025-10-27 04:25:20 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-27 04:26:14 <hololeap> but how is this different: `= Hashable a => NEHashSet (Hashed a) (HashSet a)`
2025-10-27 04:26:26 <hololeap> I would think it means the same thing
2025-10-27 04:26:28 <monochrom> Existential type would be like "data E = forall a. Haskable a => ..."
2025-10-27 04:27:00 <monochrom> err, "data E = forall a. Hashable a => E (Hashed a) (HashSet a)"
2025-10-27 04:29:20 <monochrom> Yours is different from X, Y, E. Yours is a bonus feature that allows a constraint on a type parameter.
2025-10-27 04:29:57 <hololeap> I think the weird thing about my example is that every operation I can do on Hashed and HashSet already has a Hashable constraint
2025-10-27 04:32:16 <hololeap> so maybe that makes existential quantification behave like universal quantification in this example
2025-10-27 04:32:22 × chromoblob quits (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-10-27 04:32:48 chromoblob joins (~chromoblo@user/chromob1ot1c)
2025-10-27 04:35:52 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-27 04:39:09 aforemny_ joins (~aforemny@2001:9e8:6cf1:1000:4e89:d612:c448:7493)
2025-10-27 04:39:11 × aforemny quits (~aforemny@2001:9e8:6cd1:6c00:4f63:56d8:3d93:b87f) (Ping timeout: 244 seconds)
2025-10-27 04:39:47 × trickard quits (~trickard@cpe-55-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-10-27 04:40:00 trickard_ joins (~trickard@cpe-55-98-47-163.wireline.com.au)
2025-10-27 04:41:11 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-10-27 04:50:04 × trickard_ quits (~trickard@cpe-55-98-47-163.wireline.com.au) (Ping timeout: 246 seconds)
2025-10-27 04:50:46 trickard_ joins (~trickard@cpe-55-98-47-163.wireline.com.au)
2025-10-27 04:51:38 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-27 04:55:51 × Googulator quits (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) (Quit: Client closed)
2025-10-27 04:56:06 Googulator joins (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu)
2025-10-27 04:56:30 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-27 04:56:50 Square2 joins (~Square@user/square)
2025-10-27 04:59:10 × karenw quits (~karenw@user/karenw) (Ping timeout: 246 seconds)
2025-10-27 05:00:48 Googulator56 joins (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu)
2025-10-27 05:01:09 × Googulator quits (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) (Quit: Client closed)
2025-10-27 05:01:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-27 05:06:08 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-27 05:06:46 irfan joins (~irfan@user/irfan)
2025-10-27 05:07:51 michalz joins (~michalz@185.246.207.221)
2025-10-27 05:10:37 irfan is now known as flareon
2025-10-27 05:11:25 flareon is now known as vulpix
2025-10-27 05:11:31 vulpix is now known as evee
2025-10-27 05:12:10 × evee quits (~irfan@user/irfan) (Quit: WeeChat 4.7.1)
2025-10-27 05:15:02 × jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 240 seconds)
2025-10-27 05:17:02 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-27 05:20:37 Googulator21 joins (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu)
2025-10-27 05:20:49 × Googulator56 quits (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) (Quit: Client closed)
2025-10-27 05:21:05 irfan joins (~irfan@user/irfan)
2025-10-27 05:21:14 × irfan quits (~irfan@user/irfan) (Client Quit)
2025-10-27 05:21:55 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-10-27 05:25:46 × Googulator21 quits (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) (Quit: Client closed)
2025-10-27 05:25:47 Googulator26 joins (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu)
2025-10-27 05:32:46 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-27 05:37:22 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-10-27 05:43:05 peterbecich joins (~Thunderbi@172.222.148.214)
2025-10-27 05:48:32 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-27 05:50:17 × haltingsolver quits (~cmo@2604:3d09:207f:8000::d1dc) (Ping timeout: 260 seconds)
2025-10-27 05:53:25 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-10-27 05:57:20 Lycurgus joins (~juan@user/Lycurgus)
2025-10-27 05:58:21 trickard_ is now known as trickard
2025-10-27 06:04:02 Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net)
2025-10-27 06:04:18 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-27 06:04:46 × Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-10-27 06:07:59 × rvalue quits (~rvalue@about/hackers/rvalue) (Read error: Connection reset by peer)
2025-10-27 06:08:25 rvalue joins (~rvalue@about/hackers/rvalue)
2025-10-27 06:08:59 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-10-27 06:20:05 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-27 06:20:39 × Googulator26 quits (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) (Quit: Client closed)
2025-10-27 06:20:40 Googulator15 joins (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu)
2025-10-27 06:24:55 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-10-27 06:35:53 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-27 06:42:08 × peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 240 seconds)
2025-10-27 06:42:22 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-10-27 06:45:03 sord937 joins (~sord937@gateway/tor-sasl/sord937)
2025-10-27 06:50:41 × Googulator15 quits (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu) (Quit: Client closed)
2025-10-27 06:50:46 Googulator96 joins (~Googulato@2a01-036d-0106-03fa-d161-d36f-e0e5-1b0a.pool6.digikabel.hu)
2025-10-27 06:53:56 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-27 06:58:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-10-27 06:59:02 × Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 240 seconds)
2025-10-27 07:00:48 diddy joins (~user@user/pranshu)
2025-10-27 07:02:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-27 07:04:12 × Square2 quits (~Square@user/square) (Remote host closed the connection)
2025-10-27 07:04:13 Square joins (~Square4@user/square)
2025-10-27 07:04:36 Square2 joins (~Square@user/square)
2025-10-27 07:07:17 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-10-27 07:09:37 × Square2 quits (~Square@user/square) (Ping timeout: 264 seconds)
2025-10-27 07:12:21 tromp joins (~textual@2001:1c00:3487:1b00:b825:23c0:1f89:fdbd)

All times are in UTC.