Newest at the top
2024-11-08 20:50:01 +0100 | <yin> | is there a better way to write ` f x | Pattern <- g x , y <- g x = h y ; ...` ? |
2024-11-08 20:49:42 +0100 | <briandaed> | no need to sorry |
2024-11-08 20:49:12 +0100 | <darkling> | Sorry. |
2024-11-08 20:49:10 +0100 | <darkling> | -ECHANNEL |
2024-11-08 20:47:54 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-11-08 20:47:11 +0100 | misterfish | (~misterfis@84.53.85.146) misterfish |
2024-11-08 20:46:55 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3200-3777-6c66-54b5-7b86-7066.rev.sfr.net) alexherbo2 |
2024-11-08 20:46:49 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-11-08 20:45:34 +0100 | <EvanR> | .oO( parse don't validate ? ) |
2024-11-08 20:40:04 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2024-11-08 20:36:02 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-11-08 20:34:33 +0100 | <darkling> | *Beered. |
2024-11-08 20:34:25 +0100 | <darkling> | I are Beard. |
2024-11-08 20:32:01 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-11-08 20:31:01 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-11-08 20:29:58 +0100 | user363627 | (~user@user/user363627) user363627 |
2024-11-08 20:28:37 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-11-08 20:24:37 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-11-08 20:20:17 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-11-08 20:17:50 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-11-08 20:15:14 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-11-08 20:14:19 +0100 | <tomsmeding> | is what I meant |
2024-11-08 20:14:17 +0100 | <kaol> | Are you sure you didn't do it with megaparsec the last time? It has more knobs including type variable for the error type. |
2024-11-08 20:14:16 +0100 | <tomsmeding> | sure, but the Parser monad doesn't support anything more general than String |
2024-11-08 20:14:09 +0100 | <geekosaur> | `fail :: String -> m a` |
2024-11-08 20:13:57 +0100 | <geekosaur> | https://downloads.haskell.org/ghc/latest/docs/libraries/base-4.20.0.0-1f57/Control-Monad-Fail.html… |
2024-11-08 20:13:43 +0100 | <tomsmeding> | "requires"? |
2024-11-08 20:13:19 +0100 | <geekosaur> | afaik `fail` itself requires it? |
2024-11-08 20:12:57 +0100 | <tomsmeding> | and the type that `fail` uses in the parser monad looks pretty monomorphically String |
2024-11-08 20:11:50 +0100 | <tomsmeding> | it has `fail` if you're okay with strings |
2024-11-08 20:11:41 +0100 | <kqr> | Hm. I'd hoped I could hook into the parser monad itself, but maybe it doesn't support failure in the way I think of it? |
2024-11-08 20:11:15 +0100 | <kaol> | ExceptT is one option. |
2024-11-08 20:07:43 +0100 | <kqr> | Hm. I'm looking at doing some validation in an Attoparsec parser and I want to fail the parse if the validation fails – ideally with a value of some custom error type. I feel like I have done this before but I cannot for the life of me figure out how I did it now. |
2024-11-08 20:07:03 +0100 | longlongdouble | (~longlongd@169.150.196.101) (Ping timeout: 245 seconds) |
2024-11-08 20:06:06 +0100 | <ncf> | ah, https://en.wikipedia.org/wiki/Natural_transformation#Whiskering |
2024-11-08 20:06:05 +0100 | <famubu> | Okay, looks like I got a few terms to look up. Thanks. Had seen horizonatal composition mentioned in the wikipedia article. Reading nlab now. |
2024-11-08 20:05:10 +0100 | <ncf> | or pure @T @(T a) |
2024-11-08 20:04:40 +0100 | shapr | (~user@2601:19c:417e:5434:6d2c:aeb2:81b3:3df4) shapr |
2024-11-08 20:04:30 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-11-08 20:04:06 +0100 | <ncf> | in haskell, Tη is fmap @T pure, while ηT is pure @(T a) |
2024-11-08 20:03:29 +0100 | <ncf> | also called horizontal compositions: https://en.wikipedia.org/wiki/Natural_transformation#Operations_with_natural_transformations |
2024-11-08 20:03:09 +0100 | <ncf> | famubu: those are whiskerings |
2024-11-08 20:00:18 +0100 | <tomsmeding> | perhaps wait until someone like ncf comes along lol |
2024-11-08 20:00:09 +0100 | <tomsmeding> | I'm not sure what I just said is correct |
2024-11-08 19:59:51 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-11-08 19:58:51 +0100 | <tomsmeding> | the difference is that the source and target of T(mu_X) have an additional T() around them |
2024-11-08 19:58:37 +0100 | <tomsmeding> | see e.g. the third commutative diagram: you have mu_X on the bottom arrow, and T(mu_X) on the top arrow |
2024-11-08 19:58:10 +0100 | <tomsmeding> | they denote that by applying T to the natural transformation |
2024-11-08 19:57:56 +0100 | <tomsmeding> | if you have a natural transformation between two functors T1 and T2, and a functor T, then you can build a natural transformation from T . T1 to T . T2 |
2024-11-08 19:57:09 +0100 | longlongdouble | (~longlongd@169.150.196.101) |