Logs on 2021-10-01 (liberachat/#haskell)
| 00:00:01 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 00:00:02 | × | zopsi quits (zopsi@2600:3c00::f03c:91ff:fe14:551f) (Quit: Oops) |
| 00:00:03 | × | hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection) |
| 00:00:17 | × | phma quits (~phma@host-67-44-208-25.hnremote.net) (Read error: Connection reset by peer) |
| 00:00:33 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 00:00:58 | → | zopsi joins (zopsi@2600:3c00::f03c:91ff:fe14:551f) |
| 00:00:59 | → | phma joins (~phma@host-67-44-209-109.hnremote.net) |
| 00:01:43 | → | hololeap joins (~hololeap@user/hololeap) |
| 00:08:47 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 00:09:13 | × | tommd quits (~tommd@75-164-130-101.ptld.qwest.net) (Ping timeout: 252 seconds) |
| 00:09:32 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 00:11:40 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:16:20 | <monochrom> | zzz: "if you can play n notes quickly, then you can play n+1 notes quickly?" :) |
| 00:18:02 | × | jaitoon quits (~Jaitoon@178.238.11.42) (Quit: Leaving) |
| 00:19:25 | <c_wraith> | when I play n notes quickly I feel like I'm losing control and it's all getting away from me. but sometimes I succeed. I'll succeed a bit less often with n+1 |
| 00:25:46 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds) |
| 00:28:47 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 00:30:01 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:c44c:b521:4020:aaef) (Remote host closed the connection) |
| 00:36:29 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:c44c:b521:4020:aaef) |
| 00:43:53 | <zzz> | something something monads mo problems |
| 00:45:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 00:45:59 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 250 seconds) |
| 00:47:00 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 00:48:34 | <Axman6> | jackdk: hmm? |
| 00:51:11 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 250 seconds) |
| 00:54:29 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 00:57:38 | × | Psybur quits (~Psybur@mobile-166-170-32-197.mycingular.net) (Remote host closed the connection) |
| 01:04:58 | × | xsperry quits (~xs@cpe-188-129-101-182.dynamic.amis.hr) () |
| 01:06:12 | × | yinghua quits (~yinghua@181.228.40.183) (Quit: Leaving) |
| 01:07:12 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
| 01:09:23 | → | xsperry joins (~xs@user/xsperry) |
| 01:15:46 | × | y04nn quits (~y04nn@193.32.127.238) (Ping timeout: 250 seconds) |
| 01:17:30 | × | xff0x quits (~xff0x@2001:1a81:53c2:e100:ccd2:b734:993c:a05c) (Ping timeout: 250 seconds) |
| 01:19:35 | → | xff0x joins (~xff0x@2001:1a81:53fd:8200:3ee9:4f56:71fd:a0c5) |
| 01:30:14 | × | hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection) |
| 01:31:41 | → | hololeap joins (~hololeap@user/hololeap) |
| 01:31:53 | → | neurocyte01328 joins (~neurocyte@185.117.69.4) |
| 01:31:53 | × | neurocyte01328 quits (~neurocyte@185.117.69.4) (Changing host) |
| 01:31:53 | → | neurocyte01328 joins (~neurocyte@user/neurocyte) |
| 01:32:04 | → | emf_ joins (~emf@2601:600:104:ef88:1466:bc65:7f72:4c40) |
| 01:33:30 | × | emf quits (~emf@2620:10d:c090:400::5:5b52) (Ping timeout: 260 seconds) |
| 01:33:47 | × | neurocyte0132 quits (~neurocyte@user/neurocyte) (Ping timeout: 240 seconds) |
| 01:33:47 | neurocyte01328 | is now known as neurocyte0132 |
| 01:35:01 | <hololeap> | % stateFirst s = StateT $ \(x,y) -> second (,y) <$> runStateT s x |
| 01:35:01 | <yahb> | hololeap: |
| 01:35:08 | <hololeap> | % :t stateFirst |
| 01:35:08 | <yahb> | hololeap: Functor m => StateT s m a -> StateT (s, t) m a |
| 01:36:10 | <hololeap> | anyone know of something that generalizes this, perhaps using lenses? |
| 01:36:42 | × | emf_ quits (~emf@2601:600:104:ef88:1466:bc65:7f72:4c40) (Client Quit) |
| 01:40:35 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 246 seconds) |
| 01:42:50 | <codygman[m]> | I just read something on classy lenses that feels adjacent hololeap http://michaelxavier.net/posts/2016-04-03-Enterprise-Haskell-Pattern-Lensed-Reader.html |
| 01:44:51 | <byorgey> | hololeap: zoom _1 ? |
| 01:45:45 | <byorgey> | hololeap: 'zoom' basically lets you "zoom in" on part of the state using a lens |
| 01:46:57 | <hololeap> | byorgey: awesome, that looks like it's exactly what I wanted |
| 01:47:38 | <hololeap> | codygman[m]: thanks for the link |
| 01:51:12 | → | Cajun joins (~Cajun@user/cajun) |
| 01:53:18 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 01:58:50 | × | mikoto-chan quits (~mikoto-ch@83.137.2.243) (Read error: Connection reset by peer) |
| 02:05:33 | → | Guest65 joins (~Guest65@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 02:07:46 | <Guest65> | Is there a Megaparsec primitive that ignores escape chars? ie parse "\t\r" as "\\t\\r" ? |
| 02:09:58 | × | lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
| 02:11:38 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 02:11:47 | × | lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
| 02:11:55 | <jackdk> | Guest65: Text.Megaparsec.Char.Lexer.charLiteral maybe? |
| 02:12:29 | <Guest65> | doesn't charLiteral do the opposite? |
| 02:12:58 | <jackdk> | Guest65: it delegates to Data.Char.readLitChar, which parses "using Haskell source-language escape conventions" |
| 02:13:14 | <jackdk> | oh yeah I think I see what you're asking |
| 02:14:09 | <Guest65> | I mean parse "\t" as ['\\', 't'] as if these was no escape char |
| 02:14:29 | <jackdk> | you could use Data.Char.showLitChar to unpack things? |
| 02:15:18 | <jackdk> | yeah, so perhaps your answer is "parse any char", then `fmap show` over that result? |
| 02:15:35 | <byorgey> | Guest65: how about char '"' *> many (anySingleBut '"') <* char '"' |
| 02:18:27 | → | pfurla joins (~pfurla@216.131.83.59) |
| 02:18:43 | <Guest65> | I don't know why bit anySingle still parses the whole escape code O_O |
| 02:19:09 | <Guest65> | I think I need to manually unpack it like jackdk suggested |
| 02:19:30 | <Guest65> | afterall Token Char ~ Char and `\t` is a Char |
| 02:19:44 | <Guest65> | there is no reason for megaprsec to see it any other way |
| 02:20:50 | × | pfurla_ quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 246 seconds) |
| 02:20:59 | <jackdk> | yeah so you need to be producing Text as the result of your parser, not Char, because the result is sometimes 1 character, sometimes two |
| 02:21:14 | → | falafel joins (~falafel@2603-8000-d800-688c-d1df-4118-0ede-09f0.res6.spectrum.com) |
| 02:22:03 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 02:22:14 | <Guest65> | Oh I do actually, but I can't say I saw it coming haha |
| 02:23:39 | → | xiongxin joins (~quassel@119.123.101.90) |
| 02:23:53 | <Guest65> | An unrelated question, say I want to parse a set like a^n b^n (never done any non-LL(1) grammars with megaparsec before) |
| 02:24:08 | <Guest65> | do I have to use the parser's State ? |
| 02:24:29 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 02:24:46 | <Guest65> | it would need to remember how many elements it parsed on the left ... |
| 02:25:14 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
| 02:25:23 | <Guest65> | wait I can just calculate how many a's I parsed in a do-block and parse that many afterwards |
| 02:25:38 | <Guest65> | it's more flexible than I thought |
| 02:26:17 | → | falafel_ joins (~falafel@2603-8000-d800-688c-5d7c-f952-1b32-cc6a.res6.spectrum.com) |
| 02:27:09 | → | wroathe joins (~wroathe@user/wroathe) |
| 02:28:06 | × | falafel quits (~falafel@2603-8000-d800-688c-d1df-4118-0ede-09f0.res6.spectrum.com) (Ping timeout: 260 seconds) |
| 02:28:29 | × | betelgeuse quits (~betelgeus@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat) |
| 02:36:55 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 250 seconds) |
| 02:38:13 | <codygman[m]> | Can anyone help me understand how what i labeled as `instance 1` is selected in my code rather than `instance 2`? |
| 02:38:13 | <codygman[m]> | Here is main: https://github.com/codygman/smol-monadorville-example/blob/fdf630393b4cf1639c9318b19c30ade6669fbacf/Main.hs#L60 |
| 02:41:08 | <int-e> | codygman[m]: Look at line 63... the m there will be IO because the result will be AppDebugSql IO [String] |
| 02:41:39 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:41:45 | <awpr> | you apply `runAppDebugSql` directly to the do-block, so its type is `AppDebugSql (...) a`, which doesn't match instance 2. |
| 02:42:55 | <awpr> | maybe ignore that, I'm not sure where it's actually trying to select an instance |
| 02:43:53 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 02:44:59 | <int-e> | codygman[m]: Does the code compile without line 65 if you change the type signature accordingly? |
| 02:45:34 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 02:45:36 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:1985:e1e8:468b:4573) |
| 02:46:30 | <awpr> | yeah, if it's the `selectSql` there, then wrapping it in the `AppDebugSql` constructor explicitly forces its type to be _not_ `AppDebugSql` and then just sticks it in the newtype |
| 02:46:37 | CodeKiwi | is now known as DigitalKiwi |
| 02:48:25 | × | alx741 quits (~alx741@181.196.69.214) (Quit: alx741) |
| 02:48:39 | <codygman[m]> | int-e after deriving MonadFail and asks me to define `MonadOrville conn0 (AppDebugSql (App ...))` which feels promising. |
| 02:48:39 | <codygman[m]> | It confuses me though because I thought that App was supposed to be the outermost monad. |
| 02:50:30 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:1985:e1e8:468b:4573) (Ping timeout: 268 seconds) |
| 02:51:59 | <int-e> | Well you have flip runReaderT dbPool . runApp . runAppDebugSql; the outermost monad comes last. |
| 02:52:16 | <awpr> | it might be easier to stick a Bool in some Reader context in the one-and-only App monad and consult that to decide whether to trace queries. then there'd be none of this hard-to-understand instance resolution fiddling |
| 02:52:55 | <int-e> | codygman[m]: Note, I have not tried to make sense of that stack. |
| 02:53:27 | awpr | was confused because "last" meant "leftmost" to me |
| 02:54:08 | <codygman[m]> | Well it's working now, about to push and ask why 😅 |
| 02:54:24 | <awpr> | apparently reading too much point-free code can overrule the left-to-right writing system bias :D |
| 02:58:27 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 02:58:27 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 02:58:27 | → | wroathe joins (~wroathe@user/wroathe) |
| 03:01:53 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 264 seconds) |
| 03:01:53 | × | td__ quits (~td@94.134.91.102) (Ping timeout: 264 seconds) |
| 03:03:14 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
| 03:03:19 | → | td_ joins (~td@94.134.91.208) |
| 03:03:46 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:09:43 | <codygman[m]> | Thank you int-e ! I'm embarrassed to admit how long that ones been stumping me 😄 |
| 03:10:02 | → | pfurla_ joins (~pfurla@ool-182ed2e2.dyn.optonline.net) |
| 03:12:54 | × | pfurla quits (~pfurla@216.131.83.59) (Ping timeout: 260 seconds) |
| 03:14:32 | <Guest65> | I have a contrived example to demonstrate something I don't understand about idiomatic style |
| 03:14:58 | <Guest65> | say `square x = x * x`, `index i xs = xs !! i` and `whatever i xs = square <$> index i xs` |
| 03:15:07 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 03:15:35 | <Guest65> | (I know xs is just a list but imagine it was a more abstract functor, like a monad) |
| 03:16:08 | <Guest65> | Q: how do I write `whatever` without using the `i xs` parameters |
| 03:16:26 | <codygman[m]> | I still don't understand why this selects instance 1: |
| 03:16:26 | <codygman[m]> | https://github.com/codygman/smol-monadorville-example/blob/07ad38a6e83e78b653996674045d35804ce6acde/Main.hs#L80 |
| 03:16:26 | <codygman[m]> | But I can finish what i'm doing |
| 03:16:28 | <Guest65> | I can usually avoid writing them when they repeat on either side but I can't do it here |
| 03:16:45 | <codygman[m]> | * i'm doing 😊 |
| 03:17:05 | <Axman6> | @pl whatever i xs = square <$> index i xs |
| 03:17:05 | <lambdabot> | whatever = ((square <$>) .) . index |
| 03:17:13 | <Axman6> | okease don't do that :) |
| 03:17:25 | <Axman6> | @pl whatever i xs = fmap square (index i xs) |
| 03:17:26 | <lambdabot> | whatever = (fmap square .) . index |
| 03:17:31 | <Axman6> | Also don't do that |
| 03:17:35 | <awpr> | `whatever i = fmap square . index i` => `(.:) = (.).(.); whatever = fmap square .: index` |
| 03:17:46 | <awpr> | normally I'd do the left one |
| 03:17:55 | <codygman[m]> | Need blackbird Guest65 |
| 03:18:58 | <codygman[m]> | I think anyway, see https://drewboardman.github.io/jekyll/update/2020/01/14/blackbird-operator.html |
| 03:19:11 | <Guest65> | aha first time I see blackbird |
| 03:19:30 | <codygman[m]> | Most people hate it FYI |
| 03:19:34 | <awpr> | never heard that name before, but yeah, that's exactly the same thing I wrote |
| 03:20:34 | <codygman[m]> | If you use it make it `infixr 7` https://www.reddit.com/r/haskell/comments/ea2fyk/is_the_blackbird_operator_infixr_9_for_a_reason/ |
| 03:21:10 | <Guest65> | I am not sure what `fmap square (.).(.) index` expands to .. |
| 03:21:24 | <awpr> | a parse error |
| 03:21:26 | <Guest65> | infixr 9? |
| 03:22:04 | <Guest65> | awpr: So what's the equivalent synax for what you wrote? |
| 03:22:48 | <codygman[m]> | fixity definitions of functions lets you affect parsing precedence |
| 03:23:13 | <awpr> | there's no way to use a compound subexpression as an infix operator; if you must inline it, it'd be `((.).(.)) (fmap square) index`, but that looks really hard to parse |
| 03:23:17 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 250 seconds) |
| 03:24:06 | × | doyougnu quits (~user@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 260 seconds) |
| 03:28:40 | × | xiongxin quits (~quassel@119.123.101.90) (Read error: Connection reset by peer) |
| 03:29:55 | → | xiongxin joins (~quassel@119.123.101.90) |
| 03:32:29 | <Guest65> | I find it confusing why `whatever i = fmap square . index i` doesn't also require the blackbird |
| 03:32:50 | <awpr> | it's composing over one fewer argument |
| 03:33:13 | <Guest65> | but what's so special about two+ arguments? |
| 03:33:35 | <awpr> | `(.)` composes over exactly one argument |
| 03:33:46 | <awpr> | `(.:)` composes over exactly two |
| 03:34:06 | <Guest65> | okay I definitely did not know that (.) composes over only one argument, thank you! |
| 03:34:49 | <Guest65> | is this limitation for the sake of the parser's simplicity or does it lead to ambiguous syntax? |
| 03:34:59 | → | kimjetwav joins (~user@2607:fea8:235f:9730:49e1:79a9:994b:782d) |
| 03:35:08 | <Guest65> | or something else entirely? |
| 03:35:11 | <awpr> | `(.)` is literally a function whose definition is to compose functions. nothing to do with a parser |
| 03:35:14 | <jle`> | it actualyl comes frmo the fact that (.) is a user-defined function :) |
| 03:35:32 | <jle`> | (f . g) x = f (g x) |
| 03:35:42 | <awpr> | `fmap square . index i` = `(\f g x -> f (g x)) (fmap square) (index i)` = `\x -> fmap square (index i x)` |
| 03:37:26 | <jle`> | or (.) f g x = f (g x) |
| 03:37:37 | <Guest65> | awpr, jle`: I see it clearly now, thank you again |
| 03:37:41 | <jle`> | (.) = \f -> \g -> \x -> f (g x) |
| 03:37:51 | <jle`> | so basically whenever you see (.), you can "substitute" the definition |
| 03:37:52 | <awpr> | in the same style, you could write `(.:)` as `(.:) f g x y = f (g x y)` |
| 03:37:58 | <jle`> | same thing as for other functions you can define in haskell |
| 03:38:09 | <Guest65> | awpr: I was just about to suggest that :o |
| 03:38:28 | <jle`> | ie, to evaluate myfunc x y = x * y + 3, for `myfunc 4 5`, you "substitute" in 4, and 5 for x, and y to get `4 * 5 + 3` |
| 03:38:29 | <awpr> | with that definition it's visually obvious why `.` works on one argument and `.:` works on two |
| 03:39:19 | <awpr> | because right there in the definition you can see the two arguments to the right-hand-side function |
| 03:39:41 | <jle`> | btw fmap square (.) . (.) index is actually not a parse error, but it's a type error |
| 03:39:59 | <jle`> | well, depending on the type of square and index |
| 03:40:09 | <jle`> | it could actually typecheck i think, but it probably won't do what you want :) |
| 03:40:27 | <awpr> | ah, yeah. it broke my brain's type-directed parser, but GHC's real parser would be fine with it |
| 03:41:23 | <jle`> | ah yeah, my point wasn't that you were wrong, but more to highlight that (.) is just a normal user-space function/operator and isn't any special syntax |
| 03:41:27 | × | statusbot quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection) |
| 03:41:40 | → | statusbot joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
| 03:42:20 | <awpr> | yeah. it's a syntax mistake (pasting the text of a definition in place of an infix operator) but the result is still valid syntax |
| 03:45:10 | → | lavaman joins (~lavaman@98.38.249.169) |
| 03:45:36 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 03:47:05 | → | fvr joins (uid503686@id-503686.uxbridge.irccloud.com) |
| 03:49:36 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
| 03:59:50 | → | wroathe joins (~wroathe@user/wroathe) |
| 04:03:19 | <nerdypepper> | is there a haskell library that is equivalent to https://github.com/rayon-rs/rayon? |
| 04:04:29 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 04:04:59 | × | aegon quits (~mike@174.127.249.180) (Remote host closed the connection) |
| 04:05:27 | <Axman6> | at first glance, async looks like a good place to start |
| 04:10:21 | <nerdypepper> | Axman6: map/forConcurrently look pretty handy, thanks |
| 04:11:03 | <Axman6> | I would highly recomend you read Simon Marlow's book on parallel and concurrent programming in haskell, it's free to read online |
| 04:11:24 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 04:11:44 | <nerdypepper> | Axman6: awesome, thanks! |
| 04:12:50 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 04:12:51 | <Axman6> | recommend too |
| 04:13:20 | × | falafel_ quits (~falafel@2603-8000-d800-688c-5d7c-f952-1b32-cc6a.res6.spectrum.com) (Remote host closed the connection) |
| 04:13:31 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Client Quit) |
| 04:13:40 | → | falafel_ joins (~falafel@2603-8000-d800-688c-5d7c-f952-1b32-cc6a.res6.spectrum.com) |
| 04:13:50 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 04:15:04 | × | ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 252 seconds) |
| 04:21:48 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 04:23:13 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 268 seconds) |
| 04:24:09 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
| 04:25:15 | → | hendursaga joins (~weechat@user/hendursaga) |
| 04:25:56 | × | fizzsegfaultbuzz quits (~segfaultf@135-180-0-138.static.sonic.net) (Ping timeout: 245 seconds) |
| 04:39:16 | × | erisco quits (~erisco@d24-57-249-233.home.cgocable.net) (Ping timeout: 252 seconds) |
| 04:40:39 | × | Guest65 quits (~Guest65@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed) |
| 04:40:56 | → | erisco joins (~erisco@d24-57-249-233.home.cgocable.net) |
| 04:41:38 | × | mud quits (~mud@user/kadoban) (Quit: quit) |
| 04:44:07 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 04:45:21 | → | emf joins (~emf@2601:602:9401:b660:47d:d5f4:4143:7c05) |
| 04:46:24 | × | emf quits (~emf@2601:602:9401:b660:47d:d5f4:4143:7c05) (Client Quit) |
| 04:47:47 | × | falafel_ quits (~falafel@2603-8000-d800-688c-5d7c-f952-1b32-cc6a.res6.spectrum.com) (Ping timeout: 250 seconds) |
| 04:55:16 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 05:01:35 | → | emf joins (~emf@2601:602:9401:b660:47d:d5f4:4143:7c05) |
| 05:08:01 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 268 seconds) |
| 05:12:16 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:12:33 | → | wroathe joins (~wroathe@user/wroathe) |
| 05:15:56 | → | emf_ joins (~emf@2601:600:108:7a24:462:20d8:dada:19d8) |
| 05:16:40 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 05:17:00 | × | emf_ quits (~emf@2601:600:108:7a24:462:20d8:dada:19d8) (Client Quit) |
| 05:18:22 | × | emf quits (~emf@2601:602:9401:b660:47d:d5f4:4143:7c05) (Ping timeout: 252 seconds) |
| 05:20:18 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 05:24:40 | → | lavaman joins (~lavaman@98.38.249.169) |
| 05:29:15 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:29:19 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 05:30:16 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:1985:e1e8:468b:4573) |
| 05:34:00 | → | vysn joins (~vysn@user/vysn) |
| 05:40:44 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:1985:e1e8:468b:4573) (Remote host closed the connection) |
| 05:41:22 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:1985:e1e8:468b:4573) |
| 05:43:07 | × | xff0x quits (~xff0x@2001:1a81:53fd:8200:3ee9:4f56:71fd:a0c5) (Ping timeout: 252 seconds) |
| 05:43:18 | → | mbuf joins (~Shakthi@223.184.49.124) |
| 05:43:45 | → | xff0x joins (~xff0x@2001:1a81:53fd:8200:e649:b21c:3aaf:4661) |
| 05:45:49 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 05:46:15 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:1985:e1e8:468b:4573) (Ping timeout: 268 seconds) |
| 05:46:29 | → | michalz joins (~michalz@185.246.204.89) |
| 05:51:15 | → | emf joins (~emf@2601:602:9400:84d:83e:973e:4aa8:d9e5) |
| 05:51:47 | × | hololeap quits (~hololeap@user/hololeap) (Quit: Bye) |
| 05:55:02 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:1985:e1e8:468b:4573) |
| 05:55:05 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:1985:e1e8:468b:4573) (Client Quit) |
| 05:57:40 | → | kuribas joins (~user@ptr-25vy0i7d2y83zcd1kk6.18120a2.ip6.access.telenet.be) |
| 05:58:19 | <kuribas> | Why did haskell not "succeed" => It didn't? |
| 05:58:44 | <kuribas> | We have a nice language, a production ready compiler, plenty of libraries, some shoddy, but working tooling, a growing amount of jobs... |
| 05:58:56 | <kuribas> | How is that not "succeeding"? |
| 06:03:13 | opqdonut_ | is now known as opqdonut |
| 06:03:16 | → | statusbot2 joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
| 06:04:25 | → | SoF1 joins (~skius@user/skius) |
| 06:05:27 | → | Athas_ joins (athas@2a01:7c8:aaac:1cf:bdef:2986:fd38:4ec7) |
| 06:05:30 | → | glguy_ joins (x@libera/staff/glguy) |
| 06:05:45 | → | Logio_ joins (em@kapsi.fi) |
| 06:06:06 | → | tabemann_ joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
| 06:06:12 | → | dsf_ joins (~dsf@cpe-66-75-56-205.san.res.rr.com) |
| 06:06:25 | → | kaizen__ joins (sid501599@id-501599.helmsley.irccloud.com) |
| 06:06:28 | → | carbolymer_ joins (~carbolyme@dropacid.net) |
| 06:06:31 | → | SquidDev7 joins (~SquidDev@autoclave.squiddev.cc) |
| 06:06:43 | → | lyxia_ joins (~lyxia@poisson.chat) |
| 06:06:51 | → | wolfshappen_ joins (~waff@irc.furworks.de) |
| 06:06:57 | → | turlando_ joins (~turlando@93-42-250-112.ip89.fastwebnet.it) |
| 06:07:13 | → | ezzieygu1wuf joins (~Unknown@user/ezzieyguywuf) |
| 06:07:35 | → | cfebs_ joins (~cfebs@user/cfebs) |
| 06:07:39 | → | connrs_ joins (~connrs@user/connrs) |
| 06:07:40 | → | typetetris_ joins (sid275937@id-275937.tinside.irccloud.com) |
| 06:07:50 | → | aweinsto1k joins (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) |
| 06:07:55 | → | xerox_ joins (~edi@user/edi) |
| 06:07:56 | → | emf_ joins (~emf@2620:10d:c090:400::5:2fc4) |
| 06:08:55 | → | hongminhee_ joins (sid295@id-295.tinside.irccloud.com) |
| 06:08:59 | → | fjmorazan_ joins (~quassel@user/fjmorazan) |
| 06:09:06 | → | elcaro_ joins (~anonymous@45.32.191.75) |
| 06:09:19 | → | piele_ joins (~piele@tbonesteak.creativeserver.net) |
| 06:09:52 | → | thaumavorio_ joins (~thaumavor@thaumavor.io) |
| 06:10:00 | → | np joins (~nerdypepp@user/nerdypepper) |
| 06:10:02 | → | tcard_ joins (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) |
| 06:10:03 | → | koz- joins (~koz@2404:4408:430f:a900:ca69:658c:ba89:aa9f) |
| 06:10:21 | → | jinsun__ joins (~quassel@user/jinsun) |
| 06:10:42 | × | emf quits (~emf@2601:602:9400:84d:83e:973e:4aa8:d9e5) (Ping timeout: 260 seconds) |
| 06:11:27 | → | incertia_ joins (~incertia@d4-50-26-103.nap.wideopenwest.com) |
| 06:11:41 | → | tlax_ joins (tlax@kapsi.fi) |
| 06:11:45 | → | achapman joins (~ajc@vmx14030.hosting24.com.au) |
| 06:11:49 | → | drewolson2 joins (~drewolson@user/drewolson) |
| 06:12:08 | → | Neuromancer_ joins (~Neuromanc@user/neuromancer) |
| 06:12:13 | → | andjjj23 joins (~irc@107.170.228.47) |
| 06:12:45 | → | meejah_ joins (~meejah@rutas.meejah.ca) |
| 06:13:13 | → | joeyh_ joins (joeyh@kitenet.net) |
| 06:13:14 | → | Alex_test_ joins (~al_test@178.34.161.150) |
| 06:13:50 | → | mjs2600_ joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 06:13:54 | → | pbrisbin_ joins (~patrick@pool-173-49-147-250.phlapa.fios.verizon.net) |
| 06:14:10 | → | dunj3_ joins (~dunj3@kingdread.de) |
| 06:14:18 | × | ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (*.net *.split) |
| 06:14:18 | × | statusbot quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (*.net *.split) |
| 06:14:18 | × | hyiltiz quits (~quassel@31.220.5.250) (*.net *.split) |
| 06:14:18 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (*.net *.split) |
| 06:14:18 | × | wolfshappen quits (~waff@irc.furworks.de) (*.net *.split) |
| 06:14:18 | × | xerox quits (~edi@user/edi) (*.net *.split) |
| 06:14:18 | × | juri_ quits (~juri@178.63.35.222) (*.net *.split) |
| 06:14:18 | × | shailangsa quits (~shailangs@host217-39-45-200.range217-39.btcentralplus.com) (*.net *.split) |
| 06:14:18 | × | jinsun quits (~quassel@user/jinsun) (*.net *.split) |
| 06:14:18 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (*.net *.split) |
| 06:14:18 | × | pbrisbin quits (~patrick@pool-173-49-147-250.phlapa.fios.verizon.net) (*.net *.split) |
| 06:14:18 | × | yaroot quits (~yaroot@6.3.30.125.dy.iij4u.or.jp) (*.net *.split) |
| 06:14:18 | × | rtjure quits (~rtjure@bras-79-132-17-74.comnet.bg) (*.net *.split) |
| 06:14:18 | × | terrorjack quits (~terrorjac@static.3.200.12.49.clients.your-server.de) (*.net *.split) |
| 06:14:18 | × | Neuromancer quits (~Neuromanc@user/neuromancer) (*.net *.split) |
| 06:14:18 | × | SquidDev quits (~SquidDev@autoclave.squiddev.cc) (*.net *.split) |
| 06:14:18 | × | sshine quits (~simon@hubris.eta.solutions) (*.net *.split) |
| 06:14:18 | × | connrs quits (~connrs@user/connrs) (*.net *.split) |
| 06:14:18 | × | Alex_test quits (~al_test@178.34.161.150) (*.net *.split) |
| 06:14:18 | × | dunj3 quits (~dunj3@kingdread.de) (*.net *.split) |
| 06:14:18 | × | amk quits (~amk@109.255.169.126) (*.net *.split) |
| 06:14:18 | × | fjmorazan quits (~quassel@user/fjmorazan) (*.net *.split) |
| 06:14:18 | × | SoF quits (~skius@user/skius) (*.net *.split) |
| 06:14:18 | × | shanemikel quits (~shanemike@desk.roadwar.net) (*.net *.split) |
| 06:14:18 | × | drewolson quits (~drewolson@user/drewolson) (*.net *.split) |
| 06:14:18 | × | Logio quits (em@kapsi.fi) (*.net *.split) |
| 06:14:18 | × | tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (*.net *.split) |
| 06:14:18 | × | joeyh quits (~joeyh@kitenet.net) (*.net *.split) |
| 06:14:18 | × | ryantrinkle quits (~ryan@66.152.129.6) (*.net *.split) |
| 06:14:18 | × | tcard quits (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) (*.net *.split) |
| 06:14:19 | × | turlando quits (~turlando@user/turlando) (*.net *.split) |
| 06:14:19 | × | glguy quits (x@libera/staff/glguy) (*.net *.split) |
| 06:14:19 | × | xlei quits (akans@pool-68-129-84-118.nycmny.fios.verizon.net) (*.net *.split) |
| 06:14:19 | × | wagle quits (~wagle@quassel.wagle.io) (*.net *.split) |
| 06:14:19 | × | pieguy128 quits (~pieguy128@bas1-montreal02-65-92-163-194.dsl.bell.ca) (*.net *.split) |
| 06:14:19 | × | superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (*.net *.split) |
| 06:14:19 | × | chronon quits (~chronon@user/chronon) (*.net *.split) |
| 06:14:19 | × | clever quits (~clever@99.192.114.98) (*.net *.split) |
| 06:14:19 | × | barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (*.net *.split) |
| 06:14:19 | × | koz quits (~koz@121.99.240.58) (*.net *.split) |
| 06:14:19 | × | anoe quits (~anoe@delanoe.org) (*.net *.split) |
| 06:14:19 | × | glider quits (~glider@user/glider) (*.net *.split) |
| 06:14:19 | × | wrunt quits (~ajc@vmx14030.hosting24.com.au) (*.net *.split) |
| 06:14:19 | × | jackhill quits (~jackhill@kalessin.dragonsnail.net) (*.net *.split) |
| 06:14:19 | × | aweinstock quits (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) (*.net *.split) |
| 06:14:19 | × | incertia quits (~incertia@d4-50-26-103.nap.wideopenwest.com) (*.net *.split) |
| 06:14:19 | × | dsf quits (~dsf@cpe-66-75-56-205.san.res.rr.com) (*.net *.split) |
| 06:14:19 | × | voldial quits (~user@user/voldial) (*.net *.split) |
| 06:14:19 | × | exarkun quits (~exarkun@user/exarkun) (*.net *.split) |
| 06:14:19 | × | elcaro quits (~anonymous@45.32.191.75) (*.net *.split) |
| 06:14:19 | × | tlax quits (tlax@kapsi.fi) (*.net *.split) |
| 06:14:19 | × | Athas quits (athas@sigkill.dk) (*.net *.split) |
| 06:14:19 | × | carbolymer quits (~carbolyme@dropacid.net) (*.net *.split) |
| 06:14:19 | × | typetetris quits (sid275937@tinside.irccloud.com) (*.net *.split) |
| 06:14:19 | × | hongminhee quits (sid295@tinside.irccloud.com) (*.net *.split) |
| 06:14:19 | × | davean quits (~davean@davean.sciesnet.net) (*.net *.split) |
| 06:14:19 | × | kaizen quits (sid501599@helmsley.irccloud.com) (*.net *.split) |
| 06:14:19 | × | meejah quits (~meejah@rutas.meejah.ca) (*.net *.split) |
| 06:14:19 | × | ent quits (entgod@kapsi.fi) (*.net *.split) |
| 06:14:19 | × | koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (*.net *.split) |
| 06:14:19 | × | nerdypepper quits (~nerdypepp@user/nerdypepper) (*.net *.split) |
| 06:14:19 | × | lyxia quits (~lyxia@poisson.chat) (*.net *.split) |
| 06:14:19 | × | auri quits (~quassel@fsf/member/auri) (*.net *.split) |
| 06:14:19 | × | thaumavorio quits (~thaumavor@thaumavor.io) (*.net *.split) |
| 06:14:19 | × | cfebs quits (~cfebs@user/cfebs) (*.net *.split) |
| 06:14:19 | × | piele quits (~piele@tbonesteak.creativeserver.net) (*.net *.split) |
| 06:14:19 | × | aforemny quits (~aforemny@static.248.158.34.188.clients.your-server.de) (*.net *.split) |
| 06:14:19 | × | andjjj23_ quits (~irc@107.170.228.47) (*.net *.split) |
| 06:14:19 | typetetris_ | is now known as typetetris |
| 06:14:19 | SquidDev7 | is now known as SquidDev |
| 06:14:19 | connrs_ | is now known as connrs |
| 06:14:19 | SoF1 | is now known as SoF |
| 06:14:19 | drewolson2 | is now known as drewolson |
| 06:14:19 | cfebs_ | is now known as cfebs |
| 06:14:19 | hongminhee_ | is now known as hongminhee |
| 06:14:21 | → | clever_ joins (~clever@99.192.114.98) |
| 06:14:21 | incertia_ | is now known as incertia |
| 06:14:21 | → | ent- joins (entgod@kapsi.fi) |
| 06:14:23 | kaizen__ | is now known as kaizen |
| 06:14:23 | Neuromancer_ | is now known as Neuromancer |
| 06:14:51 | → | rtjure joins (~rtjure@bras-79-132-17-74.comnet.bg) |
| 06:15:11 | → | superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net) |
| 06:15:21 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 06:15:44 | × | superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (Client Quit) |
| 06:16:04 | → | superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net) |
| 06:16:14 | → | terrorjack joins (~terrorjac@static.3.200.12.49.clients.your-server.de) |
| 06:16:18 | → | ubert joins (~Thunderbi@178.115.54.19.wireless.dyn.drei.com) |
| 06:16:26 | → | amk joins (~amk@109.255.169.126) |
| 06:16:26 | → | yaroot joins (~yaroot@6.3.30.125.dy.iij4u.or.jp) |
| 06:16:26 | → | sshine joins (~simon@hubris.eta.solutions) |
| 06:16:26 | → | xlei joins (akans@pool-68-129-84-118.nycmny.fios.verizon.net) |
| 06:16:26 | → | wagle joins (~wagle@quassel.wagle.io) |
| 06:16:26 | → | pieguy128 joins (~pieguy128@bas1-montreal02-65-92-163-194.dsl.bell.ca) |
| 06:16:26 | → | chronon joins (~chronon@user/chronon) |
| 06:16:26 | → | glider joins (~glider@user/glider) |
| 06:16:26 | → | davean joins (~davean@davean.sciesnet.net) |
| 06:16:26 | → | aforemny joins (~aforemny@static.248.158.34.188.clients.your-server.de) |
| 06:16:50 | → | shanemikel joins (~shanemike@desk.roadwar.net) |
| 06:16:50 | → | jinsun joins (~quassel@user/jinsun) |
| 06:17:04 | × | drewolson quits (~drewolson@user/drewolson) (Remote host closed the connection) |
| 06:17:04 | × | jinsun__ quits (~quassel@user/jinsun) (Read error: Connection reset by peer) |
| 06:17:12 | → | drewolson9 joins (~drewolson@user/drewolson) |
| 06:17:20 | → | auri joins (~quassel@fsf/member/auri) |
| 06:17:54 | × | cln quits (sid336875@id-336875.ilkley.irccloud.com) (Ping timeout: 250 seconds) |
| 06:18:04 | → | jackhill joins (~jackhill@kalessin.dragonsnail.net) |
| 06:18:06 | → | ryantrinkle joins (~ryan@66.152.129.6) |
| 06:18:46 | → | juri_ joins (~juri@178.63.35.222) |
| 06:18:59 | → | anoe joins (~anoe@delanoe.org) |
| 06:19:08 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 06:19:24 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 06:19:57 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 06:19:58 | → | barrucadu joins (~barrucadu@carcosa.barrucadu.co.uk) |
| 06:20:09 | → | voldial joins (~user@195.179.201.175) |
| 06:20:12 | → | cln joins (sid336875@id-336875.ilkley.irccloud.com) |
| 06:20:56 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 246 seconds) |
| 06:21:48 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 06:21:50 | xerox_ | is now known as xerox |
| 06:25:26 | → | yaroot4 joins (~yaroot@6.3.30.125.dy.iij4u.or.jp) |
| 06:25:39 | meejah_ | is now known as meejah |
| 06:26:08 | → | wagle_ joins (~wagle@quassel.wagle.io) |
| 06:26:24 | × | amk quits (~amk@109.255.169.126) (Ping timeout: 252 seconds) |
| 06:26:24 | × | wagle quits (~wagle@quassel.wagle.io) (Ping timeout: 252 seconds) |
| 06:27:01 | → | amk joins (~amk@109.255.169.126) |
| 06:27:04 | × | xlei quits (akans@pool-68-129-84-118.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
| 06:27:04 | × | davean quits (~davean@davean.sciesnet.net) (Ping timeout: 252 seconds) |
| 06:27:37 | × | yaroot quits (~yaroot@6.3.30.125.dy.iij4u.or.jp) (Ping timeout: 252 seconds) |
| 06:27:37 | yaroot4 | is now known as yaroot |
| 06:27:45 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 06:28:24 | → | davean joins (~davean@davean.sciesnet.net) |
| 06:30:18 | → | lavaman joins (~lavaman@98.38.249.169) |
| 06:30:31 | <sm> | succeed more, they mean |
| 06:32:14 | <dminuoso> | Honestly, I think what some people might forget is the survivor bias. There's only a very small handful of languages finding adoption, and there's a very rapid feedback loop. |
| 06:32:25 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:7de3:3a15:d47c:a7f5) |
| 06:32:42 | → | xlei joins (akans@pool-68-129-84-118.nycmny.fios.verizon.net) |
| 06:32:55 | <kuribas> | The only reason go is popular is because of google backing. |
| 06:32:57 | <dminuoso> | The first language to gain foothold in a given domain, say PHP in the web for server side stuff, has a huge advantage - as soon as a critical number of components, libraries and tooling is reached first, that's the language to be "successful" |
| 06:33:07 | <kuribas> | And java has also had a huga amount of corporate backing. |
| 06:33:15 | <dminuoso> | Sure, corporate backing is a large part of it. |
| 06:33:19 | <kuribas> | dminuoso: yeah, that also. |
| 06:33:27 | × | brainfreeze quits (~brainfree@2a03:1b20:4:f011::20d) (Remote host closed the connection) |
| 06:34:26 | <amirouche> | corporate backend and... excellent coders? |
| 06:34:38 | × | renzhi quits (~xp@2607:fa49:6500:b100::5845) (Ping timeout: 265 seconds) |
| 06:34:40 | → | fef joins (~thedawn@user/thedawn) |
| 06:34:43 | <amirouche> | I mean you also need to bring the pl off-the-ground to get started. |
| 06:34:54 | <amirouche> | which is the case of haskell. |
| 06:34:58 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
| 06:35:06 | <dminuoso> | Thing is, languages find adoption out of popularity, not because the language is inherently good. When people say "Python is great for data stuff", they dont mean that the language is particularly good at it (it's really not, python has incredibly poor performance), just that a) they find a lot of resources, b) answers on stack overflow, c) pre-existing libraries for stuff. |
| 06:35:08 | <kuribas> | what is off-the-ground? |
| 06:35:19 | <kuribas> | There are plenty of curious languages with a decent compiler. |
| 06:35:32 | <dminuoso> | And corporate backing helps with all these things as it gives rise to manuals, tools, libraries. |
| 06:35:56 | <amirouche> | Last time I tried to argue with a collegue relating something to how haskell does things, they told me: "[Haskell] is a theorical language" or "Haskell is a language for developing theories" something like that |
| 06:35:57 | koz- | is now known as koz |
| 06:36:23 | <amirouche> | that is a there is a lot of mis understanding about haskell in particular. |
| 06:36:26 | <amirouche> | dminuoso: +1 |
| 06:36:47 | <kuribas> | dminuoso: Python is great for data stuff, just means it has many library bindings, and somewhat stable API for those. |
| 06:36:53 | <dminuoso> | kuribas: Right. |
| 06:37:44 | <dminuoso> | And it's a fair point, to be honest. When I want to do number crunching, then |
| 06:38:03 | <dminuoso> | if I can just ruthlessly plug data science libraries together to achieve some result in small development time, it's definitely a good thing. |
| 06:38:05 | <amirouche> | re haskell is theory: also worse than just dismissing haskell as viable pl, they dismissed the knowledge that was discovered / invented with haskell [but that was portable to Python]. |
| 06:38:21 | <dminuoso> | amirouche: The crucial problem is not relating to facts. |
| 06:38:30 | <amirouche> | +1 dminuoso |
| 06:38:31 | <dminuoso> | It's just that people like to be experts on things they have no knowledge of. |
| 06:38:39 | <amirouche> | +0 |
| 06:38:42 | <kuribas> | amirouche: haskell isn't even a good language for theory. |
| 06:38:59 | <amirouche> | dminuoso: I am unsure what "expert on things they have no knowledge of" |
| 06:39:09 | <kuribas> | amirouche: idris, agda, etc... are all better |
| 06:39:23 | <dminuoso> | amirouche: Does your colleague have a haskell background? |
| 06:39:33 | <dminuoso> | That is, has he spent the time to learn Haskell, solve problems with it? |
| 06:39:41 | <dminuoso> | Study its history and present situation? |
| 06:39:53 | <amirouche> | kuribas: I am not sure what they meant by "haskell is for theory"... it is clear they do not mean theory in the math sense, but something along the line "haskell is research-y hence of no use for / in the industry" |
| 06:39:54 | <dminuoso> | If not, it's really hard to judge a language |
| 06:40:19 | <amirouche> | dminuoso: yes |
| 06:40:23 | <dminuoso> | But honestly, once a discussion goes there, I usually do not have interest of proceeding. |
| 06:40:29 | <amirouche> | yes |
| 06:40:32 | <kuribas> | amirouche: yeah, you hear that argument often. Rarely with any interesting motivation. |
| 06:40:38 | <dminuoso> | Trying to argue with someone who has already made up their mind is not a good way to spend my time. |
| 06:41:07 | <amirouche> | no they do not have xp with haskell, they know only PHP and Java. |
| 06:41:27 | <dminuoso> | amirouche: Perhaps its useful to understand their mind model. |
| 06:41:34 | <kuribas> | amirouche: and lots of easily refutable arguments. Like pure FP is not performant (it's more performant than ruby/python/JS), it has bad resource management (the same as any GC language). |
| 06:41:52 | <amirouche> | dminuoso: the mind mode of my collegue? |
| 06:42:35 | <amirouche> | they mind model can be summarized as: we are not a tech company, with hack together quick-wins with filling-the-blanks and off-the-shelf solutions. |
| 06:42:51 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 265 seconds) |
| 06:42:57 | <dminuoso> | It's quite possible that this person is simply intimidated by the language, perhaps they dont have an academic background either. And a lot of discussions on the internet about Haskell relates to the top 5% complicated, math-obsessed topics, which dont really relate to the rest 95% |
| 06:43:10 | <kuribas> | amirouche: so the typical software company :) |
| 06:43:29 | <amirouche> | kuribas: sadly. |
| 06:43:31 | <dminuoso> | So you can very quickly gain a skewed perspective, be intimidated, and write it off as "it's useful to explore kan extensions in category theory, but not writing a web server in it" |
| 06:44:06 | <dminuoso> | To me personally, this "its used in academia" is a bonus point, its well principled enough that it can be researched into easily. |
| 06:44:09 | <kuribas> | dminuoso: it's true there is a lot of literature on topics which are only mildly useful (though interesting). Like recursion-schemes. |
| 06:44:29 | → | acidjnk joins (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) |
| 06:44:29 | → | acidjnk_new joins (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) |
| 06:44:30 | <kuribas> | or free monads. |
| 06:44:37 | <dminuoso> | I like SQL precisely because its well founded in academia, that doesnt constrict it, it gives me strict confidence in that it does get a lot of things right. |
| 06:44:39 | → | mikoto-chan joins (~mikoto-ch@83.137.2.243) |
| 06:44:44 | <amirouche> | fwiw, the concept / algorithm / approach I tried to introduce to them is parser combinators, I mentioned pandoc, then the conversation went south. |
| 06:45:16 | <kuribas> | amirouche: also "there are no big programs in haskell". There are pleny, but most of them are backends, so not really visible. |
| 06:45:19 | <dminuoso> | Relational algebra doesnt make SQL more complicated, in fact - arguably - its what allows ruthless optimizations on the server side. |
| 06:45:36 | <amirouche> | dminuoso: I know from personal xp, there is social issue (nobody does haskell around me) and a personnal mastery problem (it is hard to learn a new language) |
| 06:45:50 | <dminuoso> | SQL servers transform every query into relational algebra, then they employ these pure transformations into equivalent algebraic expressions that happen to be be much faster, and then execute them. |
| 06:46:12 | <dminuoso> | amirouche: So perhaps its useful to show these people that this link to academia is actually a good thing! |
| 06:46:30 | <dminuoso> | Rather than trying to fight it. Starting with "yes you are right!" is always an ice breaker in arguments. |
| 06:46:45 | <amirouche> | I take note of "yes you are right". |
| 06:46:46 | <dminuoso> | Just some thoughts. |
| 06:47:10 | <kuribas> | dminuoso: yes, you are right, haskell is academic, and useless in practice? |
| 06:47:12 | → | renzhi joins (~xp@2607:fa49:6500:b100::1d9d) |
| 06:47:29 | <dminuoso> | No "haskell finds use in academia, let's have a look why that is" |
| 06:47:39 | <amirouche> | re no big programs in haskell, similarly there is little big program in python that are open-source in fact. There is a lot of inertia / existing material but not that much big programs. |
| 06:48:57 | <amirouche> | there is also a / the problem that in general people think programs are built by a team, that wrong from xp, cursory look, and various academic studies: software is built by a handful of person anytime, anywhere. |
| 06:49:36 | <amirouche> | also, given a good basis software, even if painful, it is easier to maintain that start from scratch. |
| 06:49:46 | <amirouche> | but I am changing subject. |
| 06:49:54 | → | pieguy128_ joins (~pieguy128@bras-base-mtrlpq5031w-grc-57-65-92-163-194.dsl.bell.ca) |
| 06:50:08 | glguy_ | is now known as glguy |
| 06:50:24 | <amirouche> | in anycase, I think we need more software engineering studies, to understand better how and what makes great software. |
| 06:50:30 | → | glider_ joins (~glider@user/glider) |
| 06:50:32 | × | glider quits (~glider@user/glider) (Ping timeout: 252 seconds) |
| 06:50:38 | × | pieguy128 quits (~pieguy128@bas1-montreal02-65-92-163-194.dsl.bell.ca) (Read error: Connection reset by peer) |
| 06:50:41 | <amirouche> | and not just hacking together "something that works" (tm) |
| 06:50:45 | <dminuoso> | amirouche: By the way, at facebook, every single user interaction (whether you write a message, give a thumbs up, add a friend) world wide runs through a classification system called sigma at several million requests per second. Sigma is extended with a lot of rules that concurrently consult all kinds of databases and sources. |
| 06:50:53 | <dminuoso> | Take one guess what language this is all written in. |
| 06:51:04 | <amirouche> | haskell? |
| 06:51:06 | <dminuoso> | Yes. |
| 06:51:12 | <amirouche> | wow. |
| 06:51:12 | <kuribas> | dminuoso: that's the haxl thing? |
| 06:51:14 | <dminuoso> | https://engineering.fb.com/2015/06/26/security/fighting-spam-with-haskell/ |
| 06:51:15 | <dminuoso> | kuribas: Yes. |
| 06:51:32 | <kuribas> | dminuoso: haxl is also a good example of why a small linear inefficiencies don't matter. |
| 06:51:42 | <amirouche> | It is some kind of AI but rule based? Strange and not so strange at the same time. |
| 06:51:55 | <kuribas> | Because they way batches "optimally", you gain more than you loose over a low level language like C++. |
| 06:52:08 | <kuribas> | Good luck implementing this kind of batching in C++. |
| 06:52:16 | <dminuoso> | amirouche: No, it's broadly just programs that just consult databases, and based on various properties make decisions. |
| 06:52:41 | <amirouche> | I keep repeating to my collegue, if they think they will find even a 100% increase in productivity tool in the wild, they are hopeless. If a company has such a tool, they will not market it widly. |
| 06:52:53 | <dminuoso> | amirouche: Take a look at the article, there's also a youtube video linked (I dont know that one though), other presentations exist too. |
| 06:53:49 | × | kaol quits (~kaol@178.62.241.234) (Ping timeout: 265 seconds) |
| 06:53:49 | <amirouche> | quote from the blog post: "Sigma is a rule engine". That is what I was thinking. |
| 06:54:34 | <dminuoso> | amirouche: Functionality wise, it's similar to perhaps rspamd. |
| 06:54:43 | → | kaol joins (~kaol@178.62.241.234) |
| 06:56:38 | <dminuoso> | Anyway, gotta get back to work. |
| 06:57:19 | × | mikoto-chan quits (~mikoto-ch@83.137.2.243) (Ping timeout: 252 seconds) |
| 06:57:55 | × | aforemny quits (~aforemny@static.248.158.34.188.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in) |
| 06:58:19 | × | xff0x quits (~xff0x@2001:1a81:53fd:8200:e649:b21c:3aaf:4661) (Ping timeout: 265 seconds) |
| 06:58:21 | → | mikoto-chan joins (~mikoto-ch@83.137.2.243) |
| 06:58:33 | × | emf_ quits (~emf@2620:10d:c090:400::5:2fc4) (Quit: emf_) |
| 06:58:35 | <amirouche> | From the outside, it looks to me similar to the rule engine called duckling https://duckling.wit.ai/ |
| 06:58:45 | → | aforemny joins (~aforemny@static.248.158.34.188.clients.your-server.de) |
| 06:58:49 | <amirouche> | but for fighting spam. |
| 06:58:57 | → | xff0x joins (~xff0x@2001:1a81:53fd:8200:7263:a828:f9a7:9516) |
| 06:59:08 | aweinsto1k | is now known as aweinstock |
| 06:59:27 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 07:01:53 | <kuribas> | is there anything where haskell is still bringing advancements in? |
| 07:02:13 | <kuribas> | I think now dependently typed languages bring more value for research. |
| 07:02:25 | <kuribas> | For example, idris has linear types. |
| 07:02:50 | <jneira[m]> | and haskell too afaik |
| 07:03:13 | <jneira[m]> | https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/linear_types.html |
| 07:03:26 | <kuribas> | it's more elegant in idris. |
| 07:04:12 | <jneira[m]> | sure, being a brand new language gives you lot of room for elegance :-) |
| 07:04:18 | <kuribas> | sure |
| 07:05:25 | → | emf joins (~emf@2620:10d:c090:400::5:2fc4) |
| 07:06:06 | × | tzh_ quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 07:06:30 | <jneira[m]> | and Edwin Brady is a really clever compiler dev of course |
| 07:06:36 | <kuribas> | hmm, dependent types already existed before I was born |
| 07:06:57 | <kuribas> | "In 1969 Howard observes that another, more "high-level" proof system, referred to as natural deduction, can be directly interpreted in its intuitionistic version as a typed variant of the model of computation known as lambda calculus." |
| 07:07:21 | × | emf quits (~emf@2620:10d:c090:400::5:2fc4) (Client Quit) |
| 07:07:36 | <jneira[m]> | implementations are younger though |
| 07:08:19 | <kuribas> | the wikipedia doesn't really elaborate on it. |
| 07:08:58 | → | chele joins (~chele@user/chele) |
| 07:09:20 | <kuribas> | "Intuitionistic type theory was created by Per Martin-Löf, a Swedish mathematician and philosopher, who first published it in 1972." |
| 07:10:20 | × | vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.2) |
| 07:10:39 | → | vysn joins (~vysn@user/vysn) |
| 07:11:16 | → | seeg3 joins (~thelounge@static.89.161.217.95.clients.your-server.de) |
| 07:11:49 | → | mcfrd joins (~mcfrdy@user/mcfrdy) |
| 07:11:53 | → | Nahra` joins (~user@static.161.95.99.88.clients.your-server.de) |
| 07:12:17 | × | Nahra quits (~user@static.161.95.99.88.clients.your-server.de) (Ping timeout: 252 seconds) |
| 07:12:50 | × | mcfrdy quits (~mcfrdy@user/mcfrdy) (Ping timeout: 252 seconds) |
| 07:12:50 | × | kosmikus quits (~kosmikus@nullzig.kosmikus.org) (Ping timeout: 252 seconds) |
| 07:12:50 | × | seeg quits (~thelounge@static.89.161.217.95.clients.your-server.de) (Ping timeout: 252 seconds) |
| 07:12:50 | seeg3 | is now known as seeg |
| 07:13:03 | → | kosmikus joins (~kosmikus@nullzig.kosmikus.org) |
| 07:14:50 | mcfrd | is now known as mcfrdy |
| 07:15:53 | → | shailangsa joins (~shailangs@host217-39-45-200.range217-39.btcentralplus.com) |
| 07:16:31 | × | chele quits (~chele@user/chele) (Read error: Connection reset by peer) |
| 07:16:35 | → | Kaipi joins (~Kaiepi@156.34.44.192) |
| 07:16:40 | → | chele_ joins (~chele@user/chele) |
| 07:17:38 | × | abraham quits (~abraham@143.244.185.86) (Quit: Ping timeout (120 seconds)) |
| 07:18:06 | → | abraham joins (~abraham@143.244.185.86) |
| 07:19:06 | → | lstor_ joins (~lstor@user/lstor) |
| 07:19:12 | → | taeaad_ joins (~taeaad@user/taeaad) |
| 07:19:26 | × | xiongxin quits (~quassel@119.123.101.90) (Ping timeout: 252 seconds) |
| 07:19:33 | → | davl_ joins (~davl@207.154.228.18) |
| 07:19:39 | <kuribas> | It's no coincidence that we get towards dependent types, because mathematical logic is the best way to reason formally about programs. |
| 07:21:11 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 252 seconds) |
| 07:21:11 | × | lstor quits (~lstor@user/lstor) (Ping timeout: 252 seconds) |
| 07:21:11 | × | Kaiepi quits (~Kaiepi@156.34.44.192) (Ping timeout: 252 seconds) |
| 07:21:12 | × | taeaad quits (~taeaad@user/taeaad) (Ping timeout: 252 seconds) |
| 07:21:12 | × | bsima1 quits (~bsima@simatime.com) (Ping timeout: 252 seconds) |
| 07:21:12 | × | davl quits (~davl@207.154.228.18) (Ping timeout: 252 seconds) |
| 07:21:12 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Ping timeout: 252 seconds) |
| 07:21:12 | × | kar1 quits (~kar1@2001:470:69fc:105::c308) (Ping timeout: 252 seconds) |
| 07:21:14 | → | bsima joins (~bsima@simatime.com) |
| 07:21:20 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 07:21:24 | → | kar1 joins (~kar1@2001:470:69fc:105::c308) |
| 07:21:32 | → | Guest34 joins (~Guest34@103.142.31.135) |
| 07:21:40 | × | thomasjm[m] quits (~thomasjmm@2001:470:69fc:105::c6d9) (Ping timeout: 252 seconds) |
| 07:21:53 | × | pie_ quits (~pie_bnc@user/pie/x-2818909) (Ping timeout: 252 seconds) |
| 07:21:54 | → | thomasjm[m] joins (~thomasjmm@2001:470:69fc:105::c6d9) |
| 07:22:14 | × | fgaz quits (~fgaz@2001:470:69fc:105::842) (Ping timeout: 252 seconds) |
| 07:22:30 | → | seeg1 joins (~thelounge@static.89.161.217.95.clients.your-server.de) |
| 07:22:40 | → | pie_ joins (~pie_bnc@user/pie/x-2818909) |
| 07:23:04 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 07:24:49 | → | samebchase9 joins (~thelounge@51.15.68.182) |
| 07:25:06 | → | dagi53949 joins (~dagit@2001:558:6025:38:6476:a063:d05a:44da) |
| 07:25:40 | → | peutri_ joins (~peutri@ns317027.ip-94-23-46.eu) |
| 07:26:13 | × | mikoto-chan quits (~mikoto-ch@83.137.2.243) (Read error: Connection reset by peer) |
| 07:26:19 | → | erinvanderveen[4 joins (~erinvande@2001:470:69fc:105::e8f3) |
| 07:26:22 | → | bitonic1 joins (~bitonic@2001:470:69fc:105::1812) |
| 07:26:25 | → | econo_ joins (uid147250@user/econo) |
| 07:26:50 | → | df joins (~ben@justworks.xyz) |
| 07:27:00 | → | fgaz joins (~fgaz@2001:470:69fc:105::842) |
| 07:27:02 | × | APic quits (apic@apic.name) (Ping timeout: 252 seconds) |
| 07:27:02 | × | guibou quits (~guibou@mail.fmap.fr) (Ping timeout: 252 seconds) |
| 07:27:02 | × | seeg quits (~thelounge@static.89.161.217.95.clients.your-server.de) (Read error: Connection reset by peer) |
| 07:27:02 | × | econo quits (uid147250@user/econo) (Ping timeout: 252 seconds) |
| 07:27:02 | × | alp quits (~alp@user/alp) (Ping timeout: 252 seconds) |
| 07:27:02 | × | dagit quits (~dagit@2001:558:6025:38:6476:a063:d05a:44da) (Remote host closed the connection) |
| 07:27:02 | × | peutri quits (~peutri@ns317027.ip-94-23-46.eu) (Ping timeout: 252 seconds) |
| 07:27:02 | × | samebchase quits (~thelounge@51.15.68.182) (Read error: Connection reset by peer) |
| 07:27:02 | → | alp joins (~alp@mail.fmap.fr) |
| 07:27:02 | × | erinvanderveen[m quits (~erinvande@2001:470:69fc:105::e8f3) (Ping timeout: 252 seconds) |
| 07:27:02 | × | bitonic quits (~bitonic@2001:470:69fc:105::1812) (Ping timeout: 252 seconds) |
| 07:27:02 | × | df_ quits (~ben@justworks.xyz) (Ping timeout: 252 seconds) |
| 07:27:02 | → | guibou- joins (~guibou@163.172.83.213) |
| 07:27:03 | seeg1 | is now known as seeg |
| 07:27:03 | econo_ | is now known as econo |
| 07:27:03 | → | EPic_ joins (apic@apic.name) |
| 07:28:36 | → | Guest4 joins (~Guest4@103.142.31.135) |
| 07:30:17 | × | neurocyte0132 quits (~neurocyte@user/neurocyte) (Ping timeout: 250 seconds) |
| 07:31:02 | Guest34 | is now known as vijaicv |
| 07:31:13 | → | Aleksejs_Home joins (~Aleksejs@haskell.lv) |
| 07:31:41 | → | Guest753 joins (~Guest7@103.142.31.135) |
| 07:31:41 | → | Rishi joins (~Rishi@103.142.31.135) |
| 07:31:42 | → | lortabac_ joins (~lortabac@88.125.6.227) |
| 07:31:42 | vijaicv | is now known as Vijai |
| 07:31:46 | → | RK65 joins (~RK65@103.142.31.135) |
| 07:32:06 | ← | Vijai parts (~Guest34@103.142.31.135) () |
| 07:32:11 | → | Althaf joins (~Althaf@103.142.31.135) |
| 07:32:16 | → | pippijn joins (~pippijn@ra.xinutec.org) |
| 07:32:24 | × | Guest753 quits (~Guest7@103.142.31.135) (Client Quit) |
| 07:32:25 | → | Vijai joins (~Guest34@103.142.31.135) |
| 07:32:34 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:7de3:3a15:d47c:a7f5) (Ping timeout: 252 seconds) |
| 07:32:43 | × | Guest4 quits (~Guest4@103.142.31.135) (Client Quit) |
| 07:32:49 | → | Abhirami joins (~Abhirami@103.142.31.135) |
| 07:32:55 | → | anoop joins (~anoop@103.142.31.135) |
| 07:33:15 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:33:19 | anoop | is now known as Guest6108 |
| 07:33:34 | → | Vaishnavi joins (~Vaishnavi@103.142.31.135) |
| 07:33:57 | ← | Vijai parts (~Guest34@103.142.31.135) () |
| 07:33:58 | × | Vaishnavi quits (~Vaishnavi@103.142.31.135) (Client Quit) |
| 07:34:29 | → | Vaishnavi joins (~Vaishnavi@103.142.31.135) |
| 07:34:42 | × | Aleksejs quits (~Aleksejs@haskell.lv) (Ping timeout: 252 seconds) |
| 07:34:42 | × | pippijn_ quits (~pippijn@ra.xinutec.org) (Ping timeout: 252 seconds) |
| 07:34:42 | × | alp quits (~alp@mail.fmap.fr) (Ping timeout: 252 seconds) |
| 07:34:43 | × | loonycyborg quits (~loonycybo@wesnoth/developer/loonycyborg) (Ping timeout: 252 seconds) |
| 07:34:43 | × | MatrixTravelerbo quits (~voyagert2@2001:470:69fc:105::22) (Ping timeout: 252 seconds) |
| 07:34:43 | → | alp joins (~alp@mail.fmap.fr) |
| 07:34:52 | × | guibou- quits (~guibou@163.172.83.213) (Ping timeout: 252 seconds) |
| 07:34:54 | × | vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.2) |
| 07:34:59 | × | RK65 quits (~RK65@103.142.31.135) (Client Quit) |
| 07:35:07 | → | guibou joins (~guibou@mail.fmap.fr) |
| 07:35:09 | → | emf joins (~emf@2620:10d:c090:400::5:2fc4) |
| 07:35:14 | → | loonycyborg joins (~loonycybo@wesnoth/developer/loonycyborg) |
| 07:35:22 | → | vysn joins (~vysn@user/vysn) |
| 07:35:25 | × | dexterfoo quits (dexter@2a01:7e00::f03c:91ff:fe86:59ec) (Ping timeout: 252 seconds) |
| 07:35:27 | → | MatrixTravelerb4 joins (~voyagert2@2001:470:69fc:105::22) |
| 07:35:54 | → | dexterfoo joins (dexter@2a01:7e00::f03c:91ff:fe86:59ec) |
| 07:36:05 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 264 seconds) |
| 07:36:20 | Abhirami | is now known as mnb |
| 07:36:24 | → | Preeti joins (~Preeti@103.142.31.135) |
| 07:36:42 | → | mikoto-chan joins (~mikoto-ch@83.137.2.243) |
| 07:36:43 | × | mnb quits (~Abhirami@103.142.31.135) (Client Quit) |
| 07:36:49 | → | Zeenath joins (~Zeenath@103.142.31.135) |
| 07:38:58 | × | Guest2141 quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 07:43:04 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:43:10 | × | cfebs quits (~cfebs@user/cfebs) (Ping timeout: 250 seconds) |
| 07:43:28 | → | cfebs joins (~cfebs@user/cfebs) |
| 07:43:40 | × | Deewiant quits (~deewiant@2001:470:69fc:105::2fd3) (Ping timeout: 250 seconds) |
| 07:43:51 | → | Deewiant joins (~deewiant@2001:470:69fc:105::2fd3) |
| 07:44:02 | × | Morrow[m] quits (~morrowmma@2001:470:69fc:105::1d0) (Ping timeout: 250 seconds) |
| 07:44:17 | → | Morrow[m] joins (~morrowmma@2001:470:69fc:105::1d0) |
| 07:44:45 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Ping timeout: 260 seconds) |
| 07:44:55 | → | nerdypepper joins (~nerdypepp@user/nerdypepper) |
| 07:45:12 | × | justache quits (~justache@user/justache) (Ping timeout: 250 seconds) |
| 07:45:15 | → | justache joins (~justache@user/justache) |
| 07:45:17 | × | np quits (~nerdypepp@user/nerdypepper) (Read error: Connection reset by peer) |
| 07:45:46 | × | edr quits (~edr@user/edr) (Ping timeout: 250 seconds) |
| 07:45:53 | → | hgolden_ joins (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) |
| 07:46:06 | → | skn2 joins (~znc@sec.nimmagadda.net) |
| 07:46:28 | × | skn quits (~znc@2001:19f0:5:701:5400:ff:fe7c:4e5c) (Ping timeout: 250 seconds) |
| 07:46:28 | × | damien3 quits (~damien@248.ip-149-56-13.net) (Ping timeout: 250 seconds) |
| 07:46:28 | × | hgolden quits (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Read error: Connection reset by peer) |
| 07:46:28 | × | ericson2314 quits (~ericson23@2001:470:69fc:105::70c) (Ping timeout: 250 seconds) |
| 07:46:30 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 07:46:33 | → | ericson23141 joins (~ericson23@2001:470:69fc:105::70c) |
| 07:46:49 | × | lortabac_ quits (~lortabac@88.125.6.227) (Ping timeout: 252 seconds) |
| 07:46:50 | → | edr joins (~edr@enlo.co) |
| 07:46:50 | × | edr quits (~edr@enlo.co) (Changing host) |
| 07:46:50 | → | edr joins (~edr@user/edr) |
| 07:46:58 | <Axman6> | amirouche: Sigma is a long way from being a rule engine, but it is used to build rules on top of many other services. at its core is the ability to query many different services in a highly concurrent way, while also have ing the smarts to batch together similar queries (if you write a query which says "give me the friend of A" and "give me the friends of B", it will rewrite that into a query that is "give me the friends of A and B". If you also ask "How many |
| 07:46:58 | <Axman6> | posts has this used made in the last 5 minutes", thay will be a query to another service, but Sigma (well, Haxl) will take care of running the friends of A and B and how many posts queries at the same time. When Facebook first announced it, Sigma was processing 2m requests per second across facebook, and had new rules being deployed globally every 5 minutes |
| 07:47:04 | × | Skyfire quits (~pyon@user/pyon) (Ping timeout: 250 seconds) |
| 07:47:04 | × | swistak quits (~swistak@185.21.216.141) (Ping timeout: 250 seconds) |
| 07:47:22 | → | Skyfire joins (~pyon@user/pyon) |
| 07:47:22 | × | xsperry quits (~xs@user/xsperry) (Remote host closed the connection) |
| 07:47:36 | → | damien3 joins (~damien@248.ip-149-56-13.net) |
| 07:48:26 | → | xsperry joins (~xs@cpe-188-129-101-182.dynamic.amis.hr) |
| 07:48:45 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 07:48:53 | → | lortabac_ joins (~lortabac@2a01:e0a:541:b8f0:25dc:3c77:c611:d13f) |
| 07:49:22 | → | swistak joins (~swistak@185.21.216.141) |
| 07:49:58 | × | Rishi quits (~Rishi@103.142.31.135) (Quit: Client closed) |
| 07:51:55 | <Axman6> | amirouche: also, interesting that you mention duckling, that used to be written in Haskell! |
| 07:52:03 | × | Vaishnavi quits (~Vaishnavi@103.142.31.135) (Quit: Client closed) |
| 07:53:43 | <amirouche> | yep |
| 07:53:49 | × | amirouche quits (~amirouche@user/amirouche) (Quit: i will be back) |
| 07:54:41 | × | darkstardevx quits (~darkstard@2601:1c2:300:c8a0::f2b6) (Ping timeout: 264 seconds) |
| 07:55:48 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 07:55:59 | <Hecate> | Axman6: it's not anymore? |
| 07:58:06 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:c44c:b521:4020:aaef) (Remote host closed the connection) |
| 08:00:42 | → | emf_ joins (~emf@2601:602:9400:84d:83e:973e:4aa8:d9e5) |
| 08:02:38 | → | darkstardevx joins (~darkstard@c-24-21-53-33.hsd1.or.comcast.net) |
| 08:04:06 | × | emf quits (~emf@2620:10d:c090:400::5:2fc4) (Ping timeout: 260 seconds) |
| 08:04:50 | → | emf joins (~emf@2620:10d:c090:400::5:2fc4) |
| 08:05:25 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 08:05:38 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 08:05:48 | × | Preeti quits (~Preeti@103.142.31.135) (Quit: Client closed) |
| 08:05:57 | <Axman6> | Looks like Clojure now |
| 08:06:54 | × | emf_ quits (~emf@2601:602:9400:84d:83e:973e:4aa8:d9e5) (Ping timeout: 260 seconds) |
| 08:06:58 | <Hecate> | real shame |
| 08:07:10 | <Axman6> | oh I'm wrong, it went the other way around |
| 08:07:19 | <Axman6> | https://github.com/facebook/duckling |
| 08:07:49 | × | Guest6108 quits (~anoop@103.142.31.135) (Quit: Client closed) |
| 08:08:46 | <Hecate> | yes, duckling clojure was deprecated in 2019 |
| 08:08:52 | × | Althaf quits (~Althaf@103.142.31.135) (Quit: Client closed) |
| 08:08:55 | <Hecate> | well, another victory for Marlow I imagine :-P |
| 08:09:03 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
| 08:09:41 | <Axman6> | yah |
| 08:11:07 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 240 seconds) |
| 08:12:43 | → | cfricke joins (~cfricke@user/cfricke) |
| 08:13:22 | × | mikoto-chan quits (~mikoto-ch@83.137.2.243) (Ping timeout: 252 seconds) |
| 08:15:19 | → | mikoto-chan joins (~mikoto-ch@83.137.2.243) |
| 08:16:06 | × | elcaro_ quits (~anonymous@45.32.191.75) (Ping timeout: 250 seconds) |
| 08:16:14 | → | elcaro joins (~anonymous@45.32.191.75) |
| 08:17:12 | → | max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
| 08:17:12 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 08:17:33 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 08:17:33 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 08:17:36 | allbery_b | is now known as geekosaur |
| 08:20:51 | × | Zeenath quits (~Zeenath@103.142.31.135) (Quit: Client closed) |
| 08:22:07 | → | benin0369323016 joins (~benin@183.82.205.250) |
| 08:23:25 | → | iridium__ joins (~iridium@122.175.138.158) |
| 08:25:19 | → | acidjnk_new3 joins (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) |
| 08:25:42 | → | chele__ joins (~chele@user/chele) |
| 08:26:30 | × | chele_ quits (~chele@user/chele) (Read error: Connection reset by peer) |
| 08:26:30 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 252 seconds) |
| 08:26:30 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Read error: Connection reset by peer) |
| 08:26:34 | <lortabac_> | kuribas: in some sense pi types are the natural progression in generalization power: simple types -> forall -> pi |
| 08:26:37 | × | acidjnk_new quits (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 08:26:45 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 08:26:46 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Excess Flood) |
| 08:26:47 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 08:26:55 | → | acidjnk_new joins (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) |
| 08:27:03 | → | dibblego joins (~dibblego@122-199-1-30.ip4.superloop.com) |
| 08:27:03 | × | dibblego quits (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
| 08:27:03 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 08:27:11 | → | dmj`_ joins (sid72307@id-72307.hampstead.irccloud.com) |
| 08:27:12 | → | sclv_ joins (sid39734@haskell/developer/sclv) |
| 08:28:58 | × | hnOsmium0001 quits (uid453710@id-453710.hampstead.irccloud.com) (Ping timeout: 252 seconds) |
| 08:28:58 | × | dmj` quits (sid72307@id-72307.hampstead.irccloud.com) (Ping timeout: 252 seconds) |
| 08:28:58 | × | sclv quits (sid39734@haskell/developer/sclv) (Ping timeout: 252 seconds) |
| 08:28:58 | × | acidjnk quits (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 08:28:58 | × | SrPx quits (sid108780@id-108780.uxbridge.irccloud.com) (Ping timeout: 252 seconds) |
| 08:28:58 | × | Techcable quits (~Techcable@168.235.93.147) (Ping timeout: 252 seconds) |
| 08:28:58 | sclv_ | is now known as sclv |
| 08:28:58 | dmj`_ | is now known as dmj` |
| 08:29:13 | × | integral quits (sid296274@user/integral) (Ping timeout: 252 seconds) |
| 08:29:14 | → | Techcable joins (~Techcable@168.235.93.147) |
| 08:29:31 | → | hnOsmium0001 joins (uid453710@id-453710.hampstead.irccloud.com) |
| 08:29:42 | → | retro_ joins (~retro@176.255.22.194) |
| 08:29:46 | × | retroid_ quits (~retro@176.255.22.194) (Ping timeout: 252 seconds) |
| 08:29:46 | × | cawfee quits (~root@2406:3003:2077:2758::babe) (Ping timeout: 252 seconds) |
| 08:30:08 | → | thyriaen joins (~thyriaen@dynamic-078-054-200-070.78.54.pool.telefonica.de) |
| 08:30:53 | × | lechner quits (~lechner@debian/lechner) (Quit: WeeChat 3.0) |
| 08:31:43 | → | SrPx joins (sid108780@id-108780.uxbridge.irccloud.com) |
| 08:32:11 | → | integral joins (sid296274@user/integral) |
| 08:33:16 | → | cawfee joins (~root@2406:3003:2077:2758::babe) |
| 08:33:32 | → | unmanbearpig joins (~unmanbear@45.76.95.141) |
| 08:34:59 | × | unmanbearpig quits (~unmanbear@45.76.95.141) (Changing host) |
| 08:34:59 | → | unmanbearpig joins (~unmanbear@user/unmanbearpig) |
| 08:35:17 | × | unmanbearpig quits (~unmanbear@user/unmanbearpig) (Client Quit) |
| 08:35:46 | → | lavaman joins (~lavaman@98.38.249.169) |
| 08:35:53 | → | unmanbearpig joins (~unmanbear@45.76.95.141) |
| 08:36:03 | × | unmanbearpig quits (~unmanbear@45.76.95.141) (Changing host) |
| 08:36:03 | → | unmanbearpig joins (~unmanbear@user/unmanbearpig) |
| 08:36:47 | → | vpan joins (~vilius@212.117.1.172) |
| 08:38:22 | × | unmanbearpig quits (~unmanbear@user/unmanbearpig) (Client Quit) |
| 08:38:40 | → | unmanbearpig joins (~unmanbear@user/unmanbearpig) |
| 08:40:21 | × | Kaipi quits (~Kaiepi@156.34.44.192) (Read error: Connection reset by peer) |
| 08:40:22 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
| 08:40:46 | × | scav quits (sid309693@id-309693.helmsley.irccloud.com) (Ping timeout: 252 seconds) |
| 08:40:55 | × | christiaanb quits (sid84827@id-84827.lymington.irccloud.com) (Ping timeout: 252 seconds) |
| 08:40:55 | × | royo quits (~royo@user/royo) (Ping timeout: 252 seconds) |
| 08:41:19 | × | shailangsa quits (~shailangs@host217-39-45-200.range217-39.btcentralplus.com) (Ping timeout: 252 seconds) |
| 08:41:38 | → | christiaanb joins (sid84827@id-84827.lymington.irccloud.com) |
| 08:41:39 | → | scav joins (sid309693@id-309693.helmsley.irccloud.com) |
| 08:41:55 | → | royo joins (~royo@user/royo) |
| 08:42:29 | × | Philonous quits (~Philonous@user/philonous) (Ping timeout: 252 seconds) |
| 08:42:29 | × | juhp quits (~juhp@128.106.188.220) (Ping timeout: 252 seconds) |
| 08:42:29 | × | tinwood quits (~tinwood@canonical/tinwood) (Ping timeout: 252 seconds) |
| 08:42:29 | × | acertain quits (sid470584@id-470584.hampstead.irccloud.com) (Ping timeout: 252 seconds) |
| 08:42:29 | × | caubert quits (~caubert@136.244.111.235) (Ping timeout: 252 seconds) |
| 08:42:29 | × | Pent quits (sid313808@id-313808.lymington.irccloud.com) (Ping timeout: 252 seconds) |
| 08:42:29 | × | dsal quits (sid13060@id-13060.lymington.irccloud.com) (Ping timeout: 252 seconds) |
| 08:42:35 | → | dsal_ joins (sid13060@id-13060.lymington.irccloud.com) |
| 08:42:44 | → | Kaiepi joins (~Kaiepi@156.34.44.192) |
| 08:42:52 | → | Pent joins (sid313808@id-313808.lymington.irccloud.com) |
| 08:42:58 | × | Nahra` quits (~user@static.161.95.99.88.clients.your-server.de) (Ping timeout: 252 seconds) |
| 08:42:58 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 252 seconds) |
| 08:42:58 | × | root1 quits (root@2600:3c02::f03c:92ff:fe1a:c779) (Ping timeout: 252 seconds) |
| 08:42:58 | × | edwardk quits (sid47016@haskell/developer/edwardk) (Ping timeout: 252 seconds) |
| 08:42:58 | × | aria quits (sid380617@2a03:5180:f:2::5:cec9) (Ping timeout: 252 seconds) |
| 08:42:58 | × | kritzefitz quits (~kritzefit@picard.host.weltraumschlangen.de) (Ping timeout: 252 seconds) |
| 08:42:58 | × | siers quits (~ij@user/ij) (Ping timeout: 252 seconds) |
| 08:42:58 | × | berberman quits (~berberman@user/berberman) (Ping timeout: 252 seconds) |
| 08:42:58 | × | hendi quits (sid489601@id-489601.lymington.irccloud.com) (Ping timeout: 252 seconds) |
| 08:42:58 | × | nrr quits (sid20938@id-20938.lymington.irccloud.com) (Ping timeout: 252 seconds) |
| 08:43:06 | → | kritzefitz joins (~kritzefit@picard.host.weltraumschlangen.de) |
| 08:43:07 | → | edwardk joins (sid47016@haskell/developer/edwardk) |
| 08:43:07 | → | aria joins (sid380617@id-380617.lymington.irccloud.com) |
| 08:43:08 | → | hendi joins (sid489601@id-489601.lymington.irccloud.com) |
| 08:43:13 | → | tinwood joins (~tinwood@general.default.akavanagh.uk0.bigv.io) |
| 08:43:13 | × | tinwood quits (~tinwood@general.default.akavanagh.uk0.bigv.io) (Changing host) |
| 08:43:14 | → | tinwood joins (~tinwood@canonical/tinwood) |
| 08:43:17 | → | berberman joins (~berberman@user/berberman) |
| 08:43:18 | → | siers joins (~ij@user/ij) |
| 08:43:19 | → | root1 joins (root@2600:3c02::f03c:92ff:fe1a:c779) |
| 08:43:27 | → | Philonous joins (~Philonous@user/philonous) |
| 08:43:31 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 252 seconds) |
| 08:43:31 | × | typedfern__ quits (~Typedfern@171.red-83-51-60.dynamicip.rima-tde.net) (Ping timeout: 252 seconds) |
| 08:43:31 | × | synthmeat quits (~synthmeat@user/synthmeat) (Ping timeout: 252 seconds) |
| 08:43:35 | → | vysn joins (~vysn@user/vysn) |
| 08:43:40 | → | caubert joins (~caubert@136.244.111.235) |
| 08:43:54 | → | typedfern__ joins (~Typedfern@171.red-83-51-60.dynamicip.rima-tde.net) |
| 08:43:54 | → | Nahra` joins (~user@static.161.95.99.88.clients.your-server.de) |
| 08:43:56 | → | synthmeat joins (~synthmeat@user/synthmeat) |
| 08:44:15 | → | acertain joins (sid470584@id-470584.hampstead.irccloud.com) |
| 08:45:05 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 08:45:16 | × | emf quits (~emf@2620:10d:c090:400::5:2fc4) (Quit: emf) |
| 08:45:48 | → | nrr joins (sid20938@id-20938.lymington.irccloud.com) |
| 08:46:23 | → | emf joins (~emf@2620:10d:c090:400::5:2fc4) |
| 08:46:55 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 08:47:39 | × | emf quits (~emf@2620:10d:c090:400::5:2fc4) (Client Quit) |
| 08:47:40 | × | shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit) |
| 08:48:54 | → | y04nn joins (~y04nn@193.32.127.238) |
| 08:49:28 | × | hnOsmium0001 quits (uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 08:51:18 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 08:51:36 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 08:52:17 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 08:53:29 | → | CiaoSen joins (~Jura@p200300c9571bb9002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 08:54:22 | → | xiongxin joins (~quassel@119.123.101.32) |
| 08:55:17 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Ping timeout: 264 seconds) |
| 08:56:43 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 252 seconds) |
| 08:57:13 | → | ubert1 joins (~Thunderbi@178.115.54.19.wireless.dyn.drei.com) |
| 08:57:23 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 08:58:11 | × | ubert quits (~Thunderbi@178.115.54.19.wireless.dyn.drei.com) (Ping timeout: 265 seconds) |
| 08:58:11 | ubert1 | is now known as ubert |
| 09:01:07 | × | CiaoSen quits (~Jura@p200300c9571bb9002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 09:01:43 | → | CiaoSen joins (~Jura@p5dcc151c.dip0.t-ipconnect.de) |
| 09:02:08 | lortabac_ | is now known as lortabac |
| 09:03:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 09:03:27 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 09:05:42 | × | thyriaen quits (~thyriaen@dynamic-078-054-200-070.78.54.pool.telefonica.de) (Read error: Connection reset by peer) |
| 09:06:10 | → | chele_ joins (~chele@user/chele) |
| 09:06:54 | → | Philonous_ joins (~Philonous@user/philonous) |
| 09:07:16 | × | __xor quits (~xor@74.215.232.67) (Quit: WeeChat 3.2.1) |
| 09:07:40 | × | Philonous quits (~Philonous@user/philonous) (Ping timeout: 252 seconds) |
| 09:07:40 | × | Nahra` quits (~user@static.161.95.99.88.clients.your-server.de) (Ping timeout: 252 seconds) |
| 09:07:40 | × | df quits (~ben@justworks.xyz) (Ping timeout: 252 seconds) |
| 09:07:40 | × | seeg quits (~thelounge@static.89.161.217.95.clients.your-server.de) (Remote host closed the connection) |
| 09:07:54 | → | df joins (~ben@justworks.xyz) |
| 09:07:57 | → | thyriaen joins (~thyriaen@dynamic-078-054-200-070.78.54.pool.telefonica.de) |
| 09:08:26 | → | _xor joins (~xor@74.215.232.67) |
| 09:08:26 | × | royo quits (~royo@user/royo) (Ping timeout: 252 seconds) |
| 09:08:26 | × | pie_ quits (~pie_bnc@user/pie/x-2818909) (Ping timeout: 252 seconds) |
| 09:08:36 | → | Nahra` joins (~user@static.161.95.99.88.clients.your-server.de) |
| 09:09:20 | → | pie_ joins (~pie_bnc@user/pie/x-2818909) |
| 09:10:48 | → | typedfern_ joins (~Typedfern@171.red-83-51-60.dynamicip.rima-tde.net) |
| 09:11:17 | → | Co0kie joins (~Jura@p200300c9571bb9002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 09:13:04 | → | np joins (~nerdypepp@user/nerdypepper) |
| 09:13:23 | → | kosmikus_ joins (~kosmikus@nullzig.kosmikus.org) |
| 09:13:41 | → | edro joins (~edr@enlo.co) |
| 09:13:42 | × | edro quits (~edr@enlo.co) (Changing host) |
| 09:13:42 | → | edro joins (~edr@user/edr) |
| 09:14:39 | × | chele__ quits (~chele@user/chele) (Ping timeout: 252 seconds) |
| 09:14:39 | × | edr quits (~edr@user/edr) (Ping timeout: 252 seconds) |
| 09:14:39 | × | abraham quits (~abraham@143.244.185.86) (Ping timeout: 252 seconds) |
| 09:14:39 | × | xsperry quits (~xs@cpe-188-129-101-182.dynamic.amis.hr) (Ping timeout: 252 seconds) |
| 09:14:39 | × | typedfern__ quits (~Typedfern@171.red-83-51-60.dynamicip.rima-tde.net) (Ping timeout: 252 seconds) |
| 09:14:39 | × | CiaoSen quits (~Jura@p5dcc151c.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 09:14:39 | × | chronon quits (~chronon@user/chronon) (Ping timeout: 252 seconds) |
| 09:14:39 | × | elcaro quits (~anonymous@45.32.191.75) (Ping timeout: 252 seconds) |
| 09:14:39 | × | nerdypepper quits (~nerdypepp@user/nerdypepper) (Ping timeout: 252 seconds) |
| 09:14:39 | × | kosmikus quits (~kosmikus@nullzig.kosmikus.org) (Ping timeout: 252 seconds) |
| 09:14:39 | → | elcaro joins (~anonymous@45.32.191.75) |
| 09:14:39 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 252 seconds) |
| 09:14:39 | × | sshine quits (~simon@hubris.eta.solutions) (Ping timeout: 252 seconds) |
| 09:14:58 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 09:15:51 | → | neurocyte0132 joins (~neurocyte@185.117.69.4) |
| 09:15:51 | × | neurocyte0132 quits (~neurocyte@185.117.69.4) (Changing host) |
| 09:15:51 | → | neurocyte0132 joins (~neurocyte@user/neurocyte) |
| 09:16:14 | → | chronon joins (~chronon@user/chronon) |
| 09:16:17 | → | xsperry joins (~xs@cpe-188-129-101-182.dynamic.amis.hr) |
| 09:16:25 | → | sshine joins (~simon@hubris.eta.solutions) |
| 09:16:31 | × | Co0kie quits (~Jura@p200300c9571bb9002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 09:17:34 | → | Co0kie joins (~Jura@p5dcc151c.dip0.t-ipconnect.de) |
| 09:18:43 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 252 seconds) |
| 09:20:09 | × | darkstardevx quits (~darkstard@c-24-21-53-33.hsd1.or.comcast.net) (Remote host closed the connection) |
| 09:20:18 | × | y04nn quits (~y04nn@193.32.127.238) (Remote host closed the connection) |
| 09:20:23 | × | acidjnk_new3 quits (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 09:20:30 | → | y04nn joins (~y04nn@193.32.127.238) |
| 09:20:31 | → | darkstardevx joins (~darkstard@2601:1c2:300:c8a0::f2b6) |
| 09:20:46 | → | acidjnk joins (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) |
| 09:20:48 | → | acidjnk_new3 joins (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) |
| 09:22:04 | → | rond_ joins (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) |
| 09:22:07 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds) |
| 09:22:56 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 09:23:13 | × | acidjnk_new quits (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 09:29:49 | × | turlando_ quits (~turlando@93-42-250-112.ip89.fastwebnet.it) (Quit: turlando_) |
| 09:30:14 | → | turlando joins (~turlando@93-42-250-112.ip89.fastwebnet.it) |
| 09:30:14 | × | turlando quits (~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host) |
| 09:30:14 | → | turlando joins (~turlando@user/turlando) |
| 09:34:44 | × | azeem quits (~azeem@2a00:801:2d7:a6ce:1ae9:943a:b76:848d) (Read error: Connection reset by peer) |
| 09:34:57 | → | azeem joins (~azeem@emp-93-135.eduroam.uu.se) |
| 09:36:32 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 09:37:06 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 09:38:01 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.2.1) |
| 09:38:21 | → | cfricke joins (~cfricke@user/cfricke) |
| 09:40:39 | → | shailangsa_ joins (~shailangs@host217-39-45-200.range217-39.btcentralplus.com) |
| 09:42:41 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 09:45:16 | Athas_ | is now known as Athtas |
| 09:45:18 | Athtas | is now known as Athas |
| 09:45:34 | × | hendursa1 quits (~weechat@user/hendursaga) (Remote host closed the connection) |
| 09:48:27 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 09:49:06 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 09:49:28 | × | y04nn quits (~y04nn@193.32.127.238) (Ping timeout: 252 seconds) |
| 09:52:31 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 268 seconds) |
| 09:53:41 | EPic_ | is now known as APic |
| 09:54:58 | × | neurocyte0132 quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds) |
| 10:01:59 | → | y04nn joins (~y04nn@193.32.127.238) |
| 10:02:14 | × | y04nn quits (~y04nn@193.32.127.238) (Remote host closed the connection) |
| 10:07:14 | → | neurocyte0132 joins (~neurocyte@185.117.69.4) |
| 10:07:14 | × | neurocyte0132 quits (~neurocyte@185.117.69.4) (Changing host) |
| 10:07:14 | → | neurocyte0132 joins (~neurocyte@user/neurocyte) |
| 10:07:14 | × | azeem quits (~azeem@emp-93-135.eduroam.uu.se) (Read error: Connection reset by peer) |
| 10:08:41 | → | azeem joins (~azeem@emp-93-135.eduroam.uu.se) |
| 10:09:21 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 10:10:03 | wagle_ | is now known as wagle |
| 10:10:31 | <maerwald> | https://hackage.haskell.org/package/lol |
| 10:10:33 | <maerwald> | ok |
| 10:10:50 | → | ub joins (~Thunderbi@178.115.54.19.wireless.dyn.drei.com) |
| 10:12:46 | → | acidjnk_new joins (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) |
| 10:13:43 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 252 seconds) |
| 10:15:55 | × | acidjnk_new3 quits (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 10:15:55 | × | acidjnk quits (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 10:16:58 | → | acidjnk joins (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) |
| 10:18:40 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 10:19:41 | × | Cajun quits (~Cajun@user/cajun) (Quit: Client closed) |
| 10:19:43 | × | ub quits (~Thunderbi@178.115.54.19.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 10:19:47 | → | ubert1 joins (~Thunderbi@91.141.77.30.wireless.dyn.drei.com) |
| 10:19:48 | → | ub1 joins (~Thunderbi@91.141.77.30.wireless.dyn.drei.com) |
| 10:19:49 | → | royo joins (~royo@user/royo) |
| 10:20:19 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:20:19 | × | ubert quits (~Thunderbi@178.115.54.19.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 10:20:19 | ub1 | is now known as ubert |
| 10:21:17 | → | acidjnk_new3 joins (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) |
| 10:24:16 | × | acidjnk_new quits (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 10:24:34 | → | acidjnk_new joins (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) |
| 10:24:43 | × | acidjnk quits (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 10:25:13 | × | Co0kie quits (~Jura@p5dcc151c.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 10:25:46 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 10:25:52 | × | Athas quits (athas@2a01:7c8:aaac:1cf:bdef:2986:fd38:4ec7) (Quit: ZNC 1.8.2 - https://znc.in) |
| 10:26:03 | → | Athas joins (athas@sigkill.dk) |
| 10:26:11 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:28:40 | × | rond_ quits (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed) |
| 10:28:40 | × | xiongxin quits (~quassel@119.123.101.32) (Ping timeout: 252 seconds) |
| 10:31:16 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 10:32:01 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:36:38 | → | vysn joins (~vysn@user/vysn) |
| 10:38:01 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 10:38:12 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:42:17 | clever_ | is now known as clever |
| 10:44:22 | × | mikoto-chan quits (~mikoto-ch@83.137.2.243) (Quit: mikoto-chan) |
| 10:45:46 | → | alzgh joins (~alzgh@user/alzgh) |
| 10:46:49 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 10:48:22 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 10:49:28 | × | azeem quits (~azeem@emp-93-135.eduroam.uu.se) (Ping timeout: 252 seconds) |
| 10:49:45 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:50:16 | <kuribas> | lortabac: pi *is* forall, in the logic sense. |
| 10:54:56 | → | notzmv joins (~zmv@user/notzmv) |
| 10:56:44 | → | fendor joins (~fendor@e234-173.eduroam.tuwien.ac.at) |
| 10:56:53 | → | azeem joins (~azeem@2a00:801:2d7:a6ce:1ae9:943a:b76:848d) |
| 10:57:25 | × | azeem quits (~azeem@2a00:801:2d7:a6ce:1ae9:943a:b76:848d) (Read error: Connection reset by peer) |
| 10:59:23 | → | azeem joins (~azeem@emp-93-135.eduroam.uu.se) |
| 11:00:44 | → | alx741 joins (~alx741@181.196.69.214) |
| 11:04:16 | → | xiongxin joins (~quassel@113.116.35.63) |
| 11:05:38 | → | Cajun joins (~Cajun@user/cajun) |
| 11:07:46 | → | Pickchea joins (~private@user/pickchea) |
| 11:07:56 | peutri_ | is now known as peutri |
| 11:08:17 | <kuribas> | The difference is that in haskell forall, it can only take a type as parameter. |
| 11:08:23 | → | dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be) |
| 11:08:51 | <kuribas> | where in pi, it can take any type. |
| 11:11:35 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 11:13:59 | <tomsmeding_> | kuribas: "in haskell, forall can only take a type as parameter, where in pi, it can take any type" |
| 11:14:11 | <tomsmeding_> | that's twice the same thing, right? :p |
| 11:14:28 | tomsmeding_ | is now known as tomsmeding |
| 11:14:56 | <[exa]> | +1 I failed to parse that too |
| 11:15:11 | → | lavaman joins (~lavaman@98.38.249.169) |
| 11:17:13 | <Hecate> | s/a/one/ maybe? |
| 11:17:30 | <Hecate> | or Type as opposed to (Type -> Type) ? |
| 11:17:31 | × | azeem quits (~azeem@emp-93-135.eduroam.uu.se) (Read error: Connection reset by peer) |
| 11:18:15 | → | azeem joins (~azeem@emp-93-135.eduroam.uu.se) |
| 11:18:17 | <lortabac> | kuribas: yes, I meant: just as you gain generalization power by going from simple types to ML-style polymorphism, you can gain even more generality with pi |
| 11:20:17 | <lortabac> | in this sense, dependent types are kind-of a natural next step for languages with polymorphism |
| 11:20:55 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
| 11:24:54 | × | neurocyte0132 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
| 11:25:04 | → | neurocyte0132 joins (~neurocyte@185.117.69.4) |
| 11:25:04 | × | neurocyte0132 quits (~neurocyte@185.117.69.4) (Changing host) |
| 11:25:04 | → | neurocyte0132 joins (~neurocyte@user/neurocyte) |
| 11:25:35 | <byorgey> | I think that should say "where in pi, it can take any term" |
| 11:27:28 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 11:29:10 | × | azeem quits (~azeem@emp-93-135.eduroam.uu.se) (Ping timeout: 252 seconds) |
| 11:29:49 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 11:31:55 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 252 seconds) |
| 11:32:33 | → | azeem joins (~azeem@emp-93-135.eduroam.uu.se) |
| 11:33:33 | → | user133769 joins (~Jaitoon@188.241.156.59) |
| 11:34:58 | × | user133769 quits (~Jaitoon@188.241.156.59) (Client Quit) |
| 11:35:17 | → | user133769 joins (~Jaitoon@188.241.156.59) |
| 11:35:25 | × | user133769 quits (~Jaitoon@188.241.156.59) (Remote host closed the connection) |
| 11:35:43 | → | jaitoon joins (~Jaitoon@188.241.156.59) |
| 11:40:07 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 240 seconds) |
| 11:40:31 | → | waleee joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
| 11:41:10 | × | acidjnk_new quits (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 11:41:10 | × | acidjnk_new3 quits (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 11:43:10 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 11:44:30 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 11:47:32 | absence_ | is now known as absence |
| 11:49:18 | → | lechner joins (~lechner@debian/lechner) |
| 11:50:28 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 11:52:27 | <absence> | i'm a bit confused by the async library. i only see "hi there" when i run this program, but i had expected to see at least "before" as well. what am i missing? https://pastebin.com/eM9JFa4v |
| 11:54:25 | <merijn> | the usage of flip and withAsync there is confusing as hell |
| 11:55:03 | <merijn> | My suspiciion is that your use of pure is rather confusing/misleading there |
| 11:55:16 | <merijn> | You also basically don't use the async in your code |
| 11:55:43 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 11:55:52 | <absence> | don't use it? what do you mean? |
| 11:57:44 | <merijn> | absence: the idea of withAsync (and similar with functions) is that the scope of your use is limited to that with block |
| 11:57:59 | <merijn> | Instead you're (ab)using pure to leak the handle outside of the with block and using it then |
| 11:58:15 | <absence> | oh, i didn't realise that was abuse |
| 11:58:23 | <merijn> | tbh, I'm not even sure what's supposed to happen in your code |
| 11:59:06 | <absence> | ahh, sorry, i didn't catch the part of the documentation that says the thread is killed after withAsync finishes |
| 11:59:15 | <absence> | my bad |
| 11:59:17 | <merijn> | absence: What you should be doing is move your do block into a name, then withAsync yourDoBlock $ \handle -> do { link handle; putStrLn "hi there"; threadDelay 1000000000 }" |
| 11:59:39 | <merijn> | absence: The entire point of withAsync is to prevent leaving long running threads when the main code that needed them exits/crashes |
| 12:00:24 | × | max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 265 seconds) |
| 12:00:29 | <absence> | merijn: right, whereas i want to spawn something to run in the background, so that's clearly the opposite of what i want :) |
| 12:08:21 | <kuribas> | tomsmeding: I mean, in pi it can take a variable of any type. |
| 12:08:28 | <kuribas> | tomsmeding: instead of just type "Type". |
| 12:10:48 | × | mei quits (~mei@user/mei) (Read error: Connection reset by peer) |
| 12:11:56 | → | fendor_ joins (~fendor@e234-029.eduroam.tuwien.ac.at) |
| 12:13:42 | × | spruit11 quits (~quassel@2a02:a467:ccd6:1:ed67:f262:991e:7f5) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 12:14:26 | × | benin0369323016 quits (~benin@183.82.205.250) (Ping timeout: 250 seconds) |
| 12:14:43 | × | fendor quits (~fendor@e234-173.eduroam.tuwien.ac.at) (Ping timeout: 252 seconds) |
| 12:14:56 | → | fendor__ joins (~fendor@e237-169.eduroam.tuwien.ac.at) |
| 12:17:25 | × | fendor_ quits (~fendor@e234-029.eduroam.tuwien.ac.at) (Ping timeout: 252 seconds) |
| 12:18:07 | × | renzhi quits (~xp@2607:fa49:6500:b100::1d9d) (Ping timeout: 240 seconds) |
| 12:20:49 | → | exarkun joins (~exarkun@user/exarkun) |
| 12:22:24 | × | exarkun quits (~exarkun@user/exarkun) (Client Quit) |
| 12:23:47 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 12:24:24 | → | exarkun joins (~exarkun@user/exarkun) |
| 12:25:54 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:27:12 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 12:28:03 | → | cherryblossom joins (~cherryblo@user/cherryblossom) |
| 12:28:18 | ← | cherryblossom parts (~cherryblo@user/cherryblossom) () |
| 12:28:51 | <tomsmeding> | kuribas: ah, the capitalised T was significant ;) |
| 12:29:09 | → | spruit11 joins (~quassel@2a02:a467:ccd6:1:791a:e64e:ebb5:e20) |
| 12:30:23 | × | mrckndt quits (~mrckndt@user/mrckndt) (Quit: mrckndt) |
| 12:30:35 | × | yahb quits (xsbot@user/mniip/bot/yahb) (Ping timeout: 260 seconds) |
| 12:30:49 | → | mrckndt joins (~mrckndt@user/mrckndt) |
| 12:31:27 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 12:32:34 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 12:34:27 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
| 12:35:43 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 252 seconds) |
| 12:37:28 | × | mniip quits (mniip@libera/staff/mniip) (Ping timeout: 619 seconds) |
| 12:38:37 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 12:40:14 | → | Lorra joins (~lorenzo@aftr-62-216-215-27.dynamic.mnet-online.de) |
| 12:42:50 | × | cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds) |
| 12:47:02 | → | a6a45081-2b83 joins (~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507) |
| 12:47:28 | <a6a45081-2b83> | am I confusing call by need in expecting `[(x1,x2)|(x1:x2:_)<-mapM(const[0..1])[0..]]` to terminate? |
| 12:49:08 | <janus> | > [(x1,x2)|(x1:x2:_)<-mapM(const[0..1])[0..]] |
| 12:49:14 | <lambdabot> | mueval-core: Time limit exceeded |
| 12:49:37 | <janus> | > [(x1,x2)|(x1:x2:_)<-mapM(const[0..1])[0..20]] |
| 12:49:39 | <lambdabot> | [(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,... |
| 12:50:27 | <geekosaur> | iirc list comprehensions expand to use filter, which doesn't know there's a limit |
| 12:50:39 | <geekosaur> | so it just keeps going |
| 12:50:39 | → | ph88 joins (~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de) |
| 12:51:05 | <geekosaur> | "call-by-need" only goes so far |
| 12:51:22 | <janus> | has there always been haskellers writing with minimal spacing? or is it a new phenomenon? |
| 12:51:37 | <a6a45081-2b83> | what would be an alternative way to then write this expression so that it terminates? |
| 12:52:05 | <a6a45081-2b83> | janus: off-chance I wrote it like that |
| 12:52:57 | <geekosaur> | actually writing that without spaces is slightly dangerous, because [x|...] is treated as a quasiquote, not a list comprehension. (defeated here by it being a tuple instead of a single variable) |
| 12:53:07 | <janus> | what does "off-chance" mean? dictionary says "just in case". but that doesn't make sense in this context |
| 12:53:26 | <geekosaur> | "it might be that" |
| 12:53:30 | × | mrckndt quits (~mrckndt@user/mrckndt) (Quit: mrckndt) |
| 12:54:06 | → | mrckndt joins (~mrckndt@user/mrckndt) |
| 12:54:18 | <janus> | ah, i was thinking that you wrote it like that because you had joined the movement :P but i guess there really is no minimal-spacing haskell movement then |
| 12:54:27 | <janus> | or it is incognito o_O |
| 12:54:56 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 12:55:27 | × | xff0x quits (~xff0x@2001:1a81:53fd:8200:7263:a828:f9a7:9516) (Ping timeout: 240 seconds) |
| 12:57:39 | Alex_test_ | is now known as Alex_test |
| 12:58:43 | × | azeem quits (~azeem@emp-93-135.eduroam.uu.se) (Ping timeout: 252 seconds) |
| 12:59:36 | → | kenran joins (~kenran@b2b-37-24-119-190.unitymedia.biz) |
| 12:59:43 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 12:59:58 | → | Vajb joins (~Vajb@2001:999:61:625c:bbee:9460:f413:8697) |
| 13:01:07 | × | thyriaen quits (~thyriaen@dynamic-078-054-200-070.78.54.pool.telefonica.de) (Quit: Leaving) |
| 13:01:08 | × | Vajb quits (~Vajb@2001:999:61:625c:bbee:9460:f413:8697) (Read error: Connection reset by peer) |
| 13:01:41 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 13:02:04 | × | fvr quits (uid503686@id-503686.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 13:02:04 | <geekosaur> | in general we don't go for minimal spacing because it's way better when you can read it easily |
| 13:02:47 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 13:02:56 | <geekosaur> | (granting that "read it easily" in Haskell often means having the right math on tap — but then, that makes being able to read it easily even more important if you don't) |
| 13:03:28 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 13:03:32 | → | azeem joins (~azeem@emp-93-135.eduroam.uu.se) |
| 13:03:50 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 13:04:05 | <geekosaur> | what I find most helpful with things like that is considering that I need to be able to easily understand what I wrote when I come back to it 6 months later after having worked on other stuff |
| 13:04:18 | <geekosaur> | future you will thank you a lot for being as clear as possible |
| 13:04:43 | <geekosaur> | clear coding, good comments, and so on |
| 13:06:05 | × | Cajun quits (~Cajun@user/cajun) (Quit: Client closed) |
| 13:08:04 | → | Co0kie joins (~Jura@p5dcc151c.dip0.t-ipconnect.de) |
| 13:09:08 | × | Co0kie quits (~Jura@p5dcc151c.dip0.t-ipconnect.de) (Client Quit) |
| 13:09:10 | × | neurocyte0132 quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds) |
| 13:10:16 | fendor__ | is now known as fendor |
| 13:10:18 | → | zebrag joins (~chris@user/zebrag) |
| 13:10:31 | → | CiaoSen joins (~Jura@p200300c9571bb9002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 13:11:02 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 13:11:19 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 13:11:31 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 13:12:07 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 13:13:28 | × | jespada quits (~jespada@2803:9800:9842:7a62:a5:6e91:7fa0:aa24) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:14:44 | × | tureba quits (~tureba@tureba.org) (Quit: leaving) |
| 13:15:34 | → | tureba joins (~tureba@tureba.org) |
| 13:18:24 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 13:18:45 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 13:19:16 | → | xff0x joins (~xff0x@2001:1a81:53fd:8200:7263:a828:f9a7:9516) |
| 13:28:38 | × | iridium__ quits (~iridium@122.175.138.158) (Quit: Lost terminal) |
| 13:30:36 | → | yahb joins (xsbot@user/mniip/bot/yahb) |
| 13:30:55 | → | mniip joins (mniip@libera/staff/mniip) |
| 13:35:21 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 13:35:28 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 13:36:40 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 13:38:07 | × | fendor quits (~fendor@e237-169.eduroam.tuwien.ac.at) (Remote host closed the connection) |
| 13:39:07 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 13:43:00 | → | max22- joins (~maxime@2a01cb0883359800cfca41976f0516e3.ipv6.abo.wanadoo.fr) |
| 13:43:49 | × | spruit11 quits (~quassel@2a02:a467:ccd6:1:791a:e64e:ebb5:e20) (Ping timeout: 252 seconds) |
| 13:44:16 | → | betelgeuse joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:44:22 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 252 seconds) |
| 13:45:38 | → | neurocyte0132 joins (~neurocyte@185.117.69.4) |
| 13:45:38 | × | neurocyte0132 quits (~neurocyte@185.117.69.4) (Changing host) |
| 13:45:38 | → | neurocyte0132 joins (~neurocyte@user/neurocyte) |
| 13:47:03 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 13:47:03 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 13:47:03 | → | wroathe joins (~wroathe@user/wroathe) |
| 14:01:26 | <merijn> | geekosaur: More opaque newtypes is also a great thing :p |
| 14:03:07 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 14:03:07 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 14:05:12 | × | neurocyte0132 quits (~neurocyte@user/neurocyte) (Read error: Connection reset by peer) |
| 14:05:48 | → | neurocyte0132 joins (~neurocyte@user/neurocyte) |
| 14:05:48 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 14:06:07 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 14:08:48 | → | spruit11 joins (~quassel@2a02:a467:ccd6:1:791a:e64e:ebb5:e20) |
| 14:09:21 | → | mei joins (~mei@user/mei) |
| 14:09:41 | → | neurocyte01325 joins (~neurocyte@185.117.69.4) |
| 14:09:41 | × | neurocyte01325 quits (~neurocyte@185.117.69.4) (Changing host) |
| 14:09:41 | → | neurocyte01325 joins (~neurocyte@user/neurocyte) |
| 14:10:51 | × | ystael_ quits (~ystael@user/ystael) (Quit: Lost terminal) |
| 14:11:14 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 14:11:16 | × | neurocyte0132 quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds) |
| 14:11:16 | neurocyte01325 | is now known as neurocyte0132 |
| 14:12:07 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:13:32 | → | ystael joins (~ystael@user/ystael) |
| 14:17:06 | → | sburggsx joins (~steve@dsl-50-5-238-32.fuse.net) |
| 14:18:37 | × | dragestil quits (~znc@user/dragestil) (Remote host closed the connection) |
| 14:18:56 | → | dragestil joins (~znc@user/dragestil) |
| 14:19:38 | → | fusionr86 joins (~fusion@2a02-a44c-e6e5-1-66d1-af5d-92c9-e79c.fixed6.kpn.net) |
| 14:20:51 | × | gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 276 seconds) |
| 14:20:58 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 14:22:48 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 14:24:47 | → | son0p joins (~ff@181.136.122.143) |
| 14:25:37 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 252 seconds) |
| 14:27:28 | <jaitoon> | hi, do you guys have any recommendations for a good beginner FP book? |
| 14:28:25 | <merijn> | @where books |
| 14:28:25 | <lambdabot> | https://www.extrema.is/articles/haskell-books, see also @where LYAH, RWH, YAHT, SOE, HR, PIH, TFwH, wikibook, PCPH, HPFFP, HTAC, TwT, FoP, PFAD, WYAH, non-haskell-books |
| 14:28:57 | <merijn> | @where PIH |
| 14:28:57 | <lambdabot> | "Programming in Haskell" by Graham Hutton in 2007-01-15,2016-09-01 at <http://www.cs.nott.ac.uk/~pszgmh/pih.html> |
| 14:29:08 | <[itchyjunk]> | @where non-haskell-books |
| 14:29:08 | <lambdabot> | `SICP',`CTM',`TaPL',`AtTaPL',`APLD',`PLAI',`TAOCP',`SF',`CPDT',`TTFP',`PFPL',`SICM',`TTT',`EOPL',`AIMA',`PAIP',`AoP',`PLFA',`CTfP',`book-acronyms' |
| 14:29:36 | <merijn> | jaitoon: That one I've heard good things about, there's also Richard Bird's "Thinking Functionally with Haskell" |
| 14:29:40 | <merijn> | and |
| 14:29:46 | <merijn> | @where HPFFP |
| 14:29:46 | <lambdabot> | "Haskell Programming: from first principles - Pure functional programming without fear or frustration" by Chistopher Allen (bitemyapp),Julie Moronuki at <http://haskellbook.com/>,#haskell-beginners |
| 14:30:45 | → | shriekingnoise joins (~shrieking@186.137.144.80) |
| 14:33:25 | × | spruit11 quits (~quassel@2a02:a467:ccd6:1:791a:e64e:ebb5:e20) (Ping timeout: 252 seconds) |
| 14:33:51 | × | gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 276 seconds) |
| 14:34:54 | <[itchyjunk]> | Hmm, i have a dumb question on this topic. is there a FP book i could read during commute where i can't be trying out the code and such? |
| 14:35:18 | × | kenran quits (~kenran@b2b-37-24-119-190.unitymedia.biz) (Quit: WeeChat info:version) |
| 14:35:24 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 14:35:50 | <janus> | is Generics code generation? or is there a more accurate moniker? |
| 14:35:55 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 14:36:06 | <justsomeguy> | [itchyjunk]: I've used https://www.replit.com for trying out code snippits on my phone. |
| 14:36:32 | × | ystael quits (~ystael@user/ystael) (Read error: Connection reset by peer) |
| 14:36:43 | <justsomeguy> | It would be nice if there were a codecademy style course for Haskell with an in-line interactive environment, but I haven't seen one yet. |
| 14:40:01 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 14:40:38 | → | Psybur joins (~Psybur@mobile-166-170-32-197.mycingular.net) |
| 14:41:54 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
| 14:42:40 | → | hololeap joins (~hololeap@user/hololeap) |
| 14:42:56 | → | mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 14:43:05 | → | ystael joins (~ystael@user/ystael) |
| 14:43:15 | × | fusionr86 quits (~fusion@2a02-a44c-e6e5-1-66d1-af5d-92c9-e79c.fixed6.kpn.net) (Quit: Leaving) |
| 14:43:22 | × | hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1) |
| 14:43:46 | → | hendursaga joins (~weechat@user/hendursaga) |
| 14:43:48 | → | Pickchea joins (~private@user/pickchea) |
| 14:44:58 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds) |
| 14:46:38 | → | spruit11 joins (~quassel@2a02:a467:ccd6:1:791a:e64e:ebb5:e20) |
| 14:52:35 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 14:53:29 | × | spruit11 quits (~quassel@2a02:a467:ccd6:1:791a:e64e:ebb5:e20) (Ping timeout: 264 seconds) |
| 14:55:14 | <byorgey> | janus: Generics is not code generation, though it can serve a similar purpose. Generics makes a common generic representation for all data types, so you can write code that works in the same way for all data types once and for all |
| 14:55:19 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 14:55:25 | <byorgey> | so you don't have to keep re-implementing the same pattern over and over for each new data types |
| 15:00:48 | <ldlework> | byorgey: Isn't it true that for some languages the compiler really does generate "concrete implementations" under the hood? |
| 15:01:09 | <ldlework> | I think that's the sense in which they probably meant "code generation" |
| 15:01:28 | × | azeem quits (~azeem@emp-93-135.eduroam.uu.se) (Ping timeout: 252 seconds) |
| 15:02:40 | <kuribas> | ldlework: not sure what you mean, generics is something specific to haskell. |
| 15:02:50 | <byorgey> | I suppose it might, with SPECIALIZE pragmas or something. And of course when you 'derive Generic' the compiler is generating the code for a Generic instance |
| 15:03:23 | <ldlework> | kuribas: generics isn't something specific to haskell...? |
| 15:03:36 | <byorgey> | kuribas: it can be, or it could refer to e.g. Java generics, as in polymorphism. I'm not sure which janus meant, actually. |
| 15:03:46 | <kuribas> | ldlework: then which language has it? |
| 15:03:49 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 15:03:54 | <byorgey> | ldlework: https://hackage.haskell.org/package/base-4.15.0.0/docs/GHC-Generics.html |
| 15:03:56 | <ldlework> | kuribas: lots of languages have generics.. |
| 15:04:28 | <kuribas> | ldlework: yes, but as byorgey says, generics means something else there, namely parameteric polymorphism. |
| 15:04:36 | <ldlework> | byorgey: in Nim or Typescript for example, add<T>(a: T, b: T) => a + b, or whatever, under the hood, the compiler generates "concrete implementation" versions of add, for each concrete type used in the program |
| 15:04:39 | <byorgey> | words have multiple meanings, news at 11! |
| 15:04:58 | <kuribas> | ok, so they mean parametric polymorphism :) |
| 15:05:25 | <ldlework> | well that's one valid interpretation of their question, and the one that most aligns with an intuition of code generation |
| 15:05:34 | <byorgey> | ldlework: yes, if we're talking about generics-the-general-language-feature, some languages (but not all) do generate code for each concrete type used. Most famously C++ does this. |
| 15:05:59 | <byorgey> | But Haskell does not (unless you specifically ask it to), and I don't think Java does either. |
| 15:06:27 | <kuribas> | ldlework: usually GHC creates a polymorphic (non specialized) function, but it will specialize it in some cases for performance, or if you ask for it. |
| 15:06:40 | <ldlework> | Also, whether or not the compiler implementation detail exists, it's not a bad initial mental model for parametric polymorphism. |
| 15:07:46 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:07:46 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 15:07:46 | → | wroathe joins (~wroathe@user/wroathe) |
| 15:12:13 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:25dc:3c77:c611:d13f) (Quit: WeeChat 2.8) |
| 15:14:56 | → | hnOsmium0001 joins (uid453710@id-453710.hampstead.irccloud.com) |
| 15:15:44 | <janus> | byorgey: let's say i use DeriveGeneric, and I derive ToJSON with it. Is it code generation? What is the distinguishing criteria? Let's say I only derive Eq, and nothing else. Is it code generation? I wouldn't need DeriveGeneric for that. |
| 15:15:54 | → | azeem joins (~azeem@2a00:801:428:f4e3:face:8eed:b26f:ce9c) |
| 15:16:27 | → | spruit11 joins (~quassel@2a02:a467:ccd6:1:791a:e64e:ebb5:e20) |
| 15:16:43 | <janus> | or is it just code gen whenever i have "deriving" independently of whether i use Generic or not? |
| 15:16:54 | <dminuoso> | Well deriving certainly does generate code, but only on demand. |
| 15:17:08 | <dminuoso> | If you dont specify deriving, nothing gets generated. |
| 15:17:26 | <dminuoso> | The ToJSON instance implicitly also generates code (in terms of the simplifier, *if* it kicks in) |
| 15:17:29 | × | ubert1 quits (~Thunderbi@91.141.77.30.wireless.dyn.drei.com) (Remote host closed the connection) |
| 15:17:51 | <dminuoso> | It's an interesting example certainly |
| 15:17:55 | → | lavaman joins (~lavaman@98.38.249.169) |
| 15:18:21 | <dminuoso> | Because usually for generic code, users often implicitly assume the simplifer will massage the generic code into the most efficient shape (which is quite a mistake in my opinion, and yet here we are) |
| 15:20:30 | → | Digit joins (~user@user/digit) |
| 15:20:43 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 15:22:16 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
| 15:22:23 | × | a6a45081-2b83 quits (~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507) (Read error: Connection reset by peer) |
| 15:24:58 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 15:26:22 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 15:26:22 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 15:26:44 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 15:26:48 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 15:26:56 | <janus> | it's just that I see some people being weary of 'deriving Generic', maybe preferring TH or spelling it all out. But really, isn't it just moving code from the compiler itself to the standard library? Doesn't seem like its fundamentally different to rely on "stock deriving" and building on Generic |
| 15:27:55 | <geekosaur> | the main reason to be wary of deriving Generic is that the compiler can do it but is not at all guaranteed to generate goood code in the process |
| 15:28:12 | <Digit> | hi. attempting to use termonad, but FontSizePoints refuses to use 4.5, and seems there's no FontSizePixels. I can set it to 4.5 using the preferences gui, but since it does not keep these settings, would need to for every instance ~ not-fun workflow. Any suggestions/pointers (besides use different font size) welcome. |
| 15:31:17 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 264 seconds) |
| 15:31:32 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:31:32 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 15:31:32 | → | wroathe joins (~wroathe@user/wroathe) |
| 15:34:12 | <janus> | geekosaur: all the instances that can be "stock derived" will have good generated code? (never minding the fact that Show uses linked lists) |
| 15:35:01 | <geekosaur> | all the instances that can be "stock derived" ae trivial and will either have good code or will be easily fixed by the simplifier |
| 15:35:20 | <geekosaur> | DeriveGeneric produces a lot of complex code |
| 15:35:27 | <janus> | hmm i wonder if the code that PureScript generates for BoundedEnum is bad, since they use Generic for that... |
| 15:35:40 | <dminuoso> | With Foldable/Traversable hand written code can in edge cases be more performant, though. |
| 15:35:45 | <janus> | but they probably just hope v8 will solve everything |
| 15:36:07 | × | CiaoSen quits (~Jura@p200300c9571bb9002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 15:36:11 | <dminuoso> | But really, you hear this from GHC folks too, that you should absolutely not rely on Generic code being efficient. |
| 15:36:26 | → | chisui joins (~chisui@200116b8683fc700452c17731eb61342.dip.versatel-1u1.de) |
| 15:36:41 | → | Null_A joins (~null_a@2601:645:8700:2290:e9de:2461:c7b1:d42b) |
| 15:36:59 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 15:36:59 | <janus> | i am mostly worried about compile times and the lack of greppability (for i.e. ToJSON) |
| 15:37:00 | <dminuoso> | Plus, like geekosaur said, generic code is extremely complex, so that costs a lot of performance and RAM in the simplifier. |
| 15:37:06 | → | CiaoSen joins (~Jura@p5dcc151c.dip0.t-ipconnect.de) |
| 15:37:17 | <dminuoso> | Aeson comes with TH helpers https://hackage.haskell.org/package/aeson-1.5.6.0/docs/Data-Aeson-TH.html |
| 15:37:44 | × | rtjure quits (~rtjure@bras-79-132-17-74.comnet.bg) (Ping timeout: 252 seconds) |
| 15:38:06 | <janus> | it's just fascinating how different these approaches are |
| 15:38:09 | <dminuoso> | Our experience is that generic aeson instances blew up compilation times horribly. |
| 15:38:31 | <dminuoso> | We still use them because the places where they appear dont change often, so its only rare recompilations that take a few minutes. |
| 15:39:25 | × | spruit11 quits (~quassel@2a02:a467:ccd6:1:791a:e64e:ebb5:e20) (Ping timeout: 252 seconds) |
| 15:39:47 | → | goepsilongo joins (~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com) |
| 15:41:17 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 246 seconds) |
| 15:43:57 | → | fizzsegfaultbuzz joins (~segfaultf@135-180-0-138.static.sonic.net) |
| 15:44:13 | × | mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Read error: Connection reset by peer) |
| 15:44:47 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds) |
| 15:47:26 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 15:48:21 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 15:49:19 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 15:49:54 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 15:51:05 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.2.1) |
| 15:54:47 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 15:55:16 | → | spruit11 joins (~quassel@2a02:a467:ccd6:1:791a:e64e:ebb5:e20) |
| 15:55:49 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 252 seconds) |
| 15:56:28 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 252 seconds) |
| 15:56:30 | → | amirouche joins (~amirouche@user/amirouche) |
| 15:57:11 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:57:11 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 15:57:11 | → | wroathe joins (~wroathe@user/wroathe) |
| 16:00:38 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 16:03:28 | → | Vajb joins (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) |
| 16:05:37 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 16:06:23 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 16:06:27 | × | chele_ quits (~chele@user/chele) (Remote host closed the connection) |
| 16:06:27 | → | juhp joins (~juhp@128.106.188.220) |
| 16:06:43 | → | alzgh joins (~alzgh@user/alzgh) |
| 16:06:54 | × | ryantrinkle quits (~ryan@66.152.129.6) (Ping timeout: 265 seconds) |
| 16:07:30 | → | emf joins (~emf@2620:10d:c090:400::5:113f) |
| 16:08:57 | × | xiongxin quits (~quassel@113.116.35.63) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 16:13:57 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
| 16:14:37 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 16:16:16 | × | vpan quits (~vilius@212.117.1.172) (Ping timeout: 252 seconds) |
| 16:20:27 | × | kuribas quits (~user@ptr-25vy0i7d2y83zcd1kk6.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 16:26:43 | × | Clint quits (~Clint@user/clint) (Ping timeout: 265 seconds) |
| 16:28:16 | → | Clint joins (~Clint@user/clint) |
| 16:29:04 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 16:31:15 | → | vpan joins (~vilius@212.117.1.172) |
| 16:32:53 | → | mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 16:33:53 | → | nfd joins (~nfd@user/nfd) |
| 16:35:37 | tomsmeding | wonders when tunes.org-style logging will arrive, given that the topics says that it "should be coming soon" |
| 16:35:45 | <myShoggoth> | Haskell Foundation September Seven Month Update Extravaganza: https://haskell-foundation.medium.com/haskell-foundation-september-seven-month-update-extravaganza-f1533862f1e7 |
| 16:36:28 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds) |
| 16:38:01 | geekosaur | has been wondering that since he set the /topic |
| 16:38:17 | <geekosaur> | actually I considered dropping that part since it didn't seem to be happening |
| 16:38:44 | ChanServ | sets mode +o geekosaur |
| 16:39:01 | geekosaur | sets topic to "https://www.reddit.com/r/haskell | Admin: #haskell-ops | Offtopic: #haskell-offtopic | https://downloads.haskell.org | Paste code/errors: https://paste.tomsmeding.com | Logs: https://ircbrowse.tomsmeding.com/browse/lchaskell" |
| 16:39:05 | geekosaur | sets mode -o geekosaur |
| 16:42:24 | <tomsmeding> | lol geekosaur |
| 16:42:33 | <tomsmeding> | oh you also said something |
| 16:42:46 | × | alzgh quits (~alzgh@user/alzgh) (Remote host closed the connection) |
| 16:42:52 | <tomsmeding> | for a second there I thought you'd just removed that entry from the topic without saying anything |
| 16:43:06 | → | alzgh joins (~alzgh@user/alzgh) |
| 16:43:23 | <tomsmeding> | I mean, I can host the znc log files that ircbrowse is reading from |
| 16:43:33 | <tomsmeding> | from what I remember that's what tunes hosted anyway |
| 16:43:40 | <geekosaur> | yeh |
| 16:43:58 | <geekosaur> | although iirc it did provide minimal browsing capability |
| 16:44:21 | <geekosaur> | ?C=N&O=D whatever that meant to its browser |
| 16:44:21 | <lambdabot> | Unknown command, try @list |
| 16:44:40 | <tomsmeding> | I think I tried to remove those parameters at some point and I got the same content back, but not sure |
| 16:45:25 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 16:46:04 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 16:50:23 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 16:53:00 | × | smitop quits (~smitop@user/smitop) (Remote host closed the connection) |
| 16:53:58 | × | chisui quits (~chisui@200116b8683fc700452c17731eb61342.dip.versatel-1u1.de) (Quit: Client closed) |
| 16:54:24 | → | benin0369323016 joins (~benin@183.82.177.177) |
| 16:54:26 | → | chisui joins (~chisui@200116b8683fc700452c17731eb61342.dip.versatel-1u1.de) |
| 16:54:55 | → | jespada joins (~jespada@2803:9800:9842:7a62:9c1:415b:60ea:5a71) |
| 16:56:22 | × | jespada quits (~jespada@2803:9800:9842:7a62:9c1:415b:60ea:5a71) (Client Quit) |
| 16:58:31 | × | Vajb quits (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 16:58:44 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 17:00:36 | → | econo joins (uid147250@user/econo) |
| 17:04:27 | × | vpan quits (~vilius@212.117.1.172) (Quit: Leaving.) |
| 17:06:10 | → | MQ-17J joins (~MQ-17J@2607:fb90:8848:a516:92d8:c446:e2f1:d98e) |
| 17:08:13 | → | ub joins (~Thunderbi@178.115.52.70.wireless.dyn.drei.com) |
| 17:09:31 | × | ubert quits (~Thunderbi@91.141.77.30.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 17:09:31 | ub | is now known as ubert |
| 17:10:08 | × | Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds) |
| 17:12:28 | × | turlando quits (~turlando@user/turlando) (Read error: Connection reset by peer) |
| 17:12:45 | → | turlando joins (~turlando@user/turlando) |
| 17:13:40 | × | mbuf quits (~Shakthi@223.184.49.124) (Quit: Leaving) |
| 17:18:44 | <sm> | there's logs available in #haskell:libera.chat on matrix, FWIW |
| 17:19:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 17:19:28 | <sm> | not as fast to view, and not seen by search engines, but more precisely searchable by humans |
| 17:20:18 | → | Fusion86 joins (~Fusion@80-60-181-180.fixed.kpn.net) |
| 17:20:41 | <tomsmeding> | sm: what do you mean with "more precisely searchable"? |
| 17:21:30 | <sm> | when you search, it'll show just matching lines (a few at a time) which you can click on to get back to that point in history |
| 17:22:00 | <sm> | compared to a google search where you would have got a huge log page |
| 17:23:06 | <sm> | ah, but, the logs can be viewed by "Members only (since they joined)", so they are more restricted |
| 17:23:50 | <sm> | I'm not sure if that's "since the general matrix IRC bridge went online" or "since this user visited that channel through matrix" |
| 17:28:19 | × | mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 252 seconds) |
| 17:29:02 | → | Tom[m]1 joins (~tomtomsme@2001:470:69fc:105::1:95a) |
| 17:30:37 | <tomsmeding> | presumably those matrix logs are also more reliable / with less breaks than my logs :p |
| 17:30:59 | <tomsmeding> | assuming that they manage server updates better than "sorry no logs while restarting" |
| 17:32:36 | <sm> | yes I would think so. It's hard to get a copy of the whole thing, but I think it's just that the current clients haven't implemented it |
| 17:32:44 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Remote host closed the connection) |
| 17:33:38 | ← | Tom[m]1 parts (~tomtomsme@2001:470:69fc:105::1:95a) () |
| 17:34:11 | → | tomsmeding[m] joins (~tomsmedin@2001:470:69fc:105::1:95c) |
| 17:34:40 | <tomsmeding[m]> | sm: speaking from matrix here, seems I can't see anything before my matrix user joined just now |
| 17:34:47 | <sm> | ah, thanks for testing. Bummer |
| 17:34:57 | ← | tomsmeding[m] parts (~tomsmedin@2001:470:69fc:105::1:95c) () |
| 17:35:10 | <sm> | tomsmeding I forgot your logs exist and are in the topic, so what are we talking about again ? Ah I guess geekosaur fixed an obsolete reference to tunes |
| 17:35:20 | <tomsmeding> | yes :) |
| 17:35:43 | <sm> | 👍️ |
| 17:36:35 | → | aegon joins (~mike@174.127.249.180) |
| 17:38:02 | <tomsmeding> | (I first joined with my conduit account, then realised that's not a good test because conduit doesn't fetch history before you joined anyway) |
| 17:42:37 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 17:43:00 | × | goepsilongo quits (~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com) (Quit: Konversation terminated!) |
| 17:43:38 | × | MQ-17J quits (~MQ-17J@2607:fb90:8848:a516:92d8:c446:e2f1:d98e) (Read error: Connection reset by peer) |
| 17:44:44 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 17:46:10 | → | fendor joins (~fendor@178.115.78.156.wireless.dyn.drei.com) |
| 17:46:40 | × | fendor quits (~fendor@178.115.78.156.wireless.dyn.drei.com) (Client Quit) |
| 17:46:40 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 17:46:46 | → | doyougnu joins (~user@c-73-25-202-122.hsd1.or.comcast.net) |
| 17:48:04 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 17:48:42 | → | Vaishnavi joins (~Vaishnavi@122.174.107.64) |
| 17:48:46 | <Fusion86> | Good evening all, for a school course I need to create a small game. For this game I tried to create a small function which tries to load all assets inside a given directory, and inserts them into a Map. After an embarrassingly long time I finally got something which works, but I feel like it isn't the best solution (by far). If anyone could take a quick look at it and give some feedback it would be greatly appreciated :) |
| 17:48:47 | <Fusion86> | https://paste.tomsmeding.com/OZqNlWtE |
| 17:49:27 | ← | Vaishnavi parts (~Vaishnavi@122.174.107.64) () |
| 17:50:03 | <Fusion86> | I implemented it using both foldr and map, but both of them have some quirks (notably the 'abuse?' of the return thingy) |
| 17:50:33 | <Fusion86> | When it can't load a given file (using loadJuicyPNG) it should just ignore it and not add it to the map. |
| 17:51:19 | <tomsmeding> | Fusion86: try using foldM instead of foldr |
| 17:51:34 | <opqdonut> | Fusion86: I think the mapM solution is pretty nice |
| 17:52:02 | <awpr> | second version looks pretty good to me. I don't see any problem with the 'returns' in either solution. you could hoist them outside of the `case`, though, if you want fewer of them |
| 17:52:03 | <tomsmeding> | hm ah yes that one is nicer |
| 17:52:11 | × | dajoer quits (~david@user/gvx) (Quit: leaving) |
| 17:52:34 | <awpr> | the foldr one is a bit weird in that it loads the rest of the images twice if loading the present image fails |
| 17:52:43 | <awpr> | in that sense it needs _more_ returns :) |
| 17:52:49 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:f920:a9dd:18bc:fca2) |
| 17:52:57 | <opqdonut> | Fusion86: you could simplify a bit with something like `loadAsset f = fmap ((,) takeBaseName f) (loadJuicyPNG f)` |
| 17:53:13 | <tomsmeding> | loadAsset f = fmap (takeBaseName f,) <$> loadJuicyPNG f |
| 17:53:14 | <tomsmeding> | ;) |
| 17:53:21 | <opqdonut> | yeah double fmap sorry |
| 17:53:23 | <tomsmeding> | understand that first before you use it though |
| 17:53:35 | tomsmeding | high-fives opqdonut |
| 17:53:54 | <awpr> | (-XTupleSections) |
| 17:53:55 | <tomsmeding> | opqdonut: also some parens around (takeBaseName f) |
| 17:54:06 | <opqdonut> | for sure |
| 17:54:21 | <opqdonut> | Fusion86: I'd only go with the foldM solution if I needed to stop loading at the first failure or something |
| 17:54:34 | <opqdonut> | otherwise mapM is the right pattern: you want to do the same thing for every file (and then combine the results) |
| 17:57:05 | <Fusion86> | Are both solutions not equal? I assumed that loadAssetsFoldr does exactly the same as loadAssets? |
| 17:57:05 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 17:57:15 | <Fusion86> | If not, then I don't fully understand either fold or return |
| 17:57:16 | → | sebeko joins (~xsebek@176.74.150.21) |
| 17:57:19 | × | CiaoSen quits (~Jura@p5dcc151c.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 17:57:37 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 17:57:43 | <awpr> | they're almost the same, except in how they work when loading a file fails |
| 17:58:45 | <awpr> | `a` is "try loading the rest of the files after this one"; you run it once first, then load the present file, and if it succeeds, combine the results and finish, but if it fails, then you re-run `a` |
| 18:00:07 | <awpr> | `return` is just "promote a value to a no-op IO action" |
| 18:00:11 | <tomsmeding> | (the more intuitive fold here is probably foldM) |
| 18:01:10 | <Fusion86> | Hmm, I don't really understand it yet, but I'll make a note of it and come back to this snippet once I actually understand what Monads/IOs are. |
| 18:01:32 | <Fusion86> | Thanks for the help :) |
| 18:01:53 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:02:49 | → | mikoto-chan joins (~mikoto-ch@83.137.2.243) |
| 18:05:35 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 18:07:25 | × | jess quits (~jess@libera/staff/jess) (Quit: Lost terminal) |
| 18:15:10 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:16:18 | → | f-a joins (f2a@f2a.jujube.ircnow.org) |
| 18:16:27 | nf | is now known as nfernal |
| 18:19:26 | → | cheater joins (~Username@user/cheater) |
| 18:22:50 | → | jess joins (~jess@libera/staff/jess) |
| 18:24:44 | glguy | is now known as ghoulguy |
| 18:25:31 | → | sy4 joins (~sy4@user/sy4) |
| 18:28:29 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:29:53 | <janus> | how does haskell treat types that are re-exported? let's say i have a custom prelude that reexports Functor from base, that would be fine. but what if I had a separate functor definition? i suspect it would be super inconvenient to use, but why exactly? |
| 18:30:16 | ← | f-a parts (f2a@f2a.jujube.ircnow.org) () |
| 18:30:29 | <janus> | so is it possible to make a prelude with Monad without fail, and have it work on e.g. ghc 8.6? |
| 18:30:53 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:30:53 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 18:30:53 | → | wroathe joins (~wroathe@user/wroathe) |
| 18:31:23 | × | max22- quits (~maxime@2a01cb0883359800cfca41976f0516e3.ipv6.abo.wanadoo.fr) (Ping timeout: 246 seconds) |
| 18:32:53 | <tomsmeding> | janus: existing packages will refer to the existing types |
| 18:33:34 | <tomsmeding> | re-exporting types exports the _same_ types (same internal identity); if you export your own thing called "Functor", it happens to have the same unqualified name but it's a different thing |
| 18:35:43 | <monochrom> | My http://www.vex.net/~trebla/haskell/module.xhtml#terminology may help. |
| 18:35:50 | <janus> | tomsmeding: so basically, all preludes will depend on Monad having fail if they run on 8.6, because Monad is tied to do notation and therefore can't be re-defined? |
| 18:36:26 | <tomsmeding> | janus: what do-notation refers to is a whole different question again :) |
| 18:36:56 | <tomsmeding> | that does indeed refer to the built-in Monad type, unless you use QualifiedDo or OverloadedSyntax; not sure how early those extensions are available |
| 18:37:25 | <janus> | but the assertion is still correct, i think. preludes can't attempt to backport the final stage of the MonadFail transition strategy to 8.6 |
| 18:37:51 | <geekosaur> | OverloadedSyntax goes back a good ways; QualifiedDo is new in 9.x iirc |
| 18:38:26 | <geekosaur> | that said what exactly is covered by OverloadedSyntax has changed a few times |
| 18:40:04 | <tomsmeding> | janus: pretty sure generation of 'fail' upon pattern match failure in 'do' is built into the compiler |
| 18:40:24 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:40:25 | <geekosaur> | yes |
| 18:41:03 | <geekosaur> | OverloadedSyntax or QualifiedDo can change which definition of fail is used, but generation of it is wired in and unchangeable |
| 18:41:15 | <janus> | what does an incomplete pattern match do after completion of the MonadFail strategy? it just calls 'error' instead of 'fail'? |
| 18:41:37 | <geekosaur> | it incurs a MonadFail constraint, which brings along a definition of fail |
| 18:41:57 | <janus> | aah ok, i wouldn't know because we disallow incomplete pat matches... |
| 18:41:59 | <geekosaur> | you can think of MonadFail as extending Monad |
| 18:42:10 | <tomsmeding> | @type do { Just _ <- undefined ; return () } |
| 18:42:11 | <lambdabot> | MonadFail m => m () |
| 18:42:25 | <Fusion86> | I currently use "stack build --file-watch" to watch&build my stack project, however the linking step takes pretty long (~10 sec). Is there a way to speed this up? |
| 18:42:26 | <tomsmeding> | @type do { _ <- undefined ; return () } |
| 18:42:27 | <lambdabot> | Monad m => m () |
| 18:43:17 | <janus> | i hadn't realized this... incomplete pattern matches could result in shorter programs that are still safe :O but while it is still in Monad, i guess it is too dangerous? |
| 18:43:51 | <sm> | Fusion86: adding --fast can speed up the compilation but not the linking unfortunately |
| 18:43:54 | <sm> | consider using ghcid instead, which avoids linking |
| 18:43:55 | <geekosaur> | are you prepared to handle `fail`? |
| 18:44:20 | <geekosaur> | (note that what `fail` does depends on the monad) |
| 18:44:29 | <tomsmeding> | Fusion86: windows-only issue, but that doesn't help you; don't know if it can be solved if you need the executable |
| 18:44:32 | <sm> | Fusion86: also no need to feel embarassed, haskell has that same effect on many of us... |
| 18:44:33 | <janus> | well how can't i be (post MFP)? i would have implemented fail myself |
| 18:44:55 | <janus> | i guess the disadvantage is that many people just write "fail = error", probably IO does that? |
| 18:45:00 | <geekosaur> | you had to be before MFP as well, it's just that `fail` was part of Monad |
| 18:45:23 | <geekosaur> | IO does throwIO so it's synchronous, but it amounts to the same thing |
| 18:45:36 | <geekosaur> | but in Maybe it's Nothing and in list it's [] |
| 18:45:51 | <janus> | but pre-MFP people didn't have an option not to implement fail, they were kinda forced to do lazy impls like fail=error |
| 18:46:13 | <Fusion86> | If it is indeed a windows only issue then I'll just use my linux laptop instead of my desktop next time. |
| 18:46:15 | × | fef quits (~thedawn@user/thedawn) (Remote host closed the connection) |
| 18:46:59 | <janus> | if there was only a way to ensure i wasn't using code that does 'fail = error' i would be much more comfy with incomplete pat matches |
| 18:47:35 | <geekosaur> | there isn't one currently, you can't inspect how fail behaves in the current monad |
| 18:49:29 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:49:51 | → | Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
| 18:52:55 | × | spruit11 quits (~quassel@2a02:a467:ccd6:1:791a:e64e:ebb5:e20) (Ping timeout: 252 seconds) |
| 18:54:20 | → | max22- joins (~maxime@2a01cb088335980098b0bbe63a5a4455.ipv6.abo.wanadoo.fr) |
| 18:56:49 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 18:58:53 | → | lavaman joins (~lavaman@98.38.249.169) |
| 19:01:02 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:f920:a9dd:18bc:fca2) (Remote host closed the connection) |
| 19:01:30 | → | spruit11 joins (~quassel@2a02:a467:ccd6:1:791a:e64e:ebb5:e20) |
| 19:01:49 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 19:04:28 | × | lechner quits (~lechner@debian/lechner) (Ping timeout: 252 seconds) |
| 19:05:09 | → | ryantrinkle joins (~ryan@50.239.20.147) |
| 19:06:02 | × | michalz quits (~michalz@185.246.204.89) (Remote host closed the connection) |
| 19:06:39 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 19:06:56 | → | lavaman joins (~lavaman@98.38.249.169) |
| 19:07:00 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:07:23 | → | michalz joins (~michalz@185.246.204.77) |
| 19:07:57 | × | michalz quits (~michalz@185.246.204.77) (Remote host closed the connection) |
| 19:08:33 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 19:10:55 | ezzieygu1wuf | is now known as ezzieyguywuf |
| 19:11:51 | → | DNH joins (~DNH@2a02:8108:1100:16d8:4c54:3aa3:ad7c:33c2) |
| 19:13:28 | × | mikoto-chan quits (~mikoto-ch@83.137.2.243) (Ping timeout: 268 seconds) |
| 19:15:13 | → | mikoto-chan joins (~mikoto-ch@83.137.2.243) |
| 19:15:38 | × | slep quits (~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net) (Ping timeout: 260 seconds) |
| 19:19:17 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 19:19:26 | → | slep joins (~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net) |
| 19:20:10 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 19:22:23 | × | slep quits (~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net) (Client Quit) |
| 19:24:08 | → | slep joins (~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net) |
| 19:27:29 | → | lavaman joins (~lavaman@98.38.249.169) |
| 19:28:33 | → | lechner joins (~lechner@debian/lechner) |
| 19:32:12 | × | Fusion86 quits (~Fusion@80-60-181-180.fixed.kpn.net) (Quit: Leaving) |
| 19:35:08 | × | mikoto-chan quits (~mikoto-ch@83.137.2.243) (Read error: Connection reset by peer) |
| 19:37:14 | × | DNH quits (~DNH@2a02:8108:1100:16d8:4c54:3aa3:ad7c:33c2) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:37:17 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:39:41 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Remote host closed the connection) |
| 19:42:45 | × | sebeko quits (~xsebek@176.74.150.21) (Quit: sebeko) |
| 19:43:22 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 19:44:26 | × | Lorra quits (~lorenzo@aftr-62-216-215-27.dynamic.mnet-online.de) (Quit: Konversation terminated!) |
| 19:46:49 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 19:47:16 | → | koala_man joins (~vidar@157.146.251.23.bc.googleusercontent.com) |
| 19:48:16 | × | NinjaTrappeur quits (~ninja@user/ninjatrappeur) (Ping timeout: 265 seconds) |
| 19:48:50 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 19:49:15 | → | sebeko joins (~xsebek@176.74.150.21) |
| 19:49:23 | → | NinjaTrappeur joins (~ninja@user/ninjatrappeur) |
| 19:49:36 | × | sebeko quits (~xsebek@176.74.150.21) (Client Quit) |
| 19:51:55 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 19:55:14 | × | _xor quits (~xor@74.215.232.67) (Read error: Connection reset by peer) |
| 19:55:36 | → | _xor joins (~xor@74.215.232.67) |
| 19:59:09 | <hololeap> | foo f (T1 (T2 x)) (T1 (T2 y)) = T1 (T2 (f x y)) |
| 19:59:31 | <hololeap> | is there a way to write this with lenses, assuming we have lenses for T1 and T2? |
| 20:02:00 | <c_wraith> | that doesn't look especially lensy |
| 20:02:12 | <c_wraith> | it's much more liftA2-y |
| 20:02:43 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 20:03:26 | <hololeap> | % :t over |
| 20:03:27 | <yahb> | hololeap: ASetter s t a b -> (a -> b) -> s -> t |
| 20:03:46 | <c_wraith> | yeah, that doesn't fit especially well into the lens paradigm because lens is intended to work with arbitrary products |
| 20:03:46 | <awpr> | if they're newtypes, `coerce f`? |
| 20:05:31 | × | juhp quits (~juhp@128.106.188.220) (Ping timeout: 252 seconds) |
| 20:05:38 | <c_wraith> | Like.. a lens-based solution would need a generalized way to handle when T1 and T2 have multiple arguments |
| 20:05:50 | <c_wraith> | and there's no general way to handle that |
| 20:06:49 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:08:45 | <hololeap> | this is what I'm working on, and it would be nice to reduce the clutter: http://sprunge.us/bGDMtW |
| 20:09:43 | <c_wraith> | is Children a type alias for Identity? |
| 20:10:17 | → | juhp joins (~juhp@128.106.188.220) |
| 20:10:20 | → | acidjnk_new joins (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) |
| 20:10:20 | → | acidjnk_new3 joins (~acidjnk@p200300d0c703cb709cd806e9bafd3ecc.dip0.t-ipconnect.de) |
| 20:10:28 | <awpr> | looks like Cofree is an alias for CofreeT Identity |
| 20:10:30 | <hololeap> | (obviously there are some typos in that...) |
| 20:10:43 | <hololeap> | I'm using the Cofree from Control.Comonad.Trans.Cofree |
| 20:11:36 | <c_wraith> | It looks to me like you should implement Applicative and then that's liftA2 (<>) |
| 20:11:54 | <mrianbloom> | What is a fast, safe way to get a Bytestring (encoding 32bit floats) into an accelerate host array. Currently I'm using genericGetVectorWith from Data.Vector.Binary. Transferring the pointer from those vectors to the array works initially but it also freed the pointer when haskell garbage collected the vector and created a dangling pointer. |
| 20:13:21 | → | Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 20:16:49 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:18:00 | Partmedia2 | is now known as Partmedia |
| 20:19:17 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 20:19:49 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 20:19:49 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 20:19:49 | → | wroathe joins (~wroathe@user/wroathe) |
| 20:20:13 | <hololeap> | a bunch of `coerce` seems to work |
| 20:24:17 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 20:24:43 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 20:26:41 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:29:47 | × | Null_A quits (~null_a@2601:645:8700:2290:e9de:2461:c7b1:d42b) (Remote host closed the connection) |
| 20:33:31 | × | benin0369323016 quits (~benin@183.82.177.177) (Ping timeout: 252 seconds) |
| 20:34:03 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:35:34 | → | Null_A joins (~null_a@2601:645:8700:2290:e9de:2461:c7b1:d42b) |
| 20:35:42 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 20:40:13 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 20:44:23 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) (Ping timeout: 246 seconds) |
| 20:48:14 | → | Pickchea joins (~private@user/pickchea) |
| 20:48:38 | <janus> | i wonder why there is no "instance Coercible a b, Coercible b c => Coercible a c" |
| 20:49:23 | dsal_ | is now known as dsal |
| 20:49:30 | <awpr> | Coercible doesn't "have" instances, GHC just fabricates them as needed |
| 20:50:20 | <awpr> | and unless I'm mistaken, GHC should be willing to fabricate that one. but I guess I should double-check |
| 20:50:31 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:75c8:94d0:d9df:71f1) |
| 20:52:14 | <awpr> | yep, it will |
| 20:52:29 | <janus> | oh, but then why did hololeap write 'a bunch of coerce'? |
| 20:52:55 | × | ph88 quits (~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 20:52:56 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 20:53:09 | <awpr> | probably because type inference difficulties sometimes make something like `coerce . f . coerce` work more easily than `coerce f` |
| 20:53:15 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:54:00 | <janus> | what is a common example of a Coercible instance from base? |
| 20:54:18 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 20:54:29 | <monochrom> | I don't think coerce is happy with converting f in the first place. |
| 20:55:17 | × | emf quits (~emf@2620:10d:c090:400::5:113f) (Quit: emf) |
| 20:55:24 | <awpr> | any newtype is coercible to its underlying type and vice versa, e.g. `Coercible a (Const a b)` |
| 20:56:10 | <monochrom> | On second thought, any elaborate on why I said that will go back to what awpr said about type inference difficulties. :) |
| 20:56:53 | <awpr> | yeah, the situation is roughly that if you try to coerce something polymorphic, you might think it's obvious what it should be instantiated with, but GHC can't figure it out |
| 20:58:22 | <awpr> | since `coerce` is like, extremely over-polymorphic, to the extent that it totally prevents any type inference information from passing through it |
| 21:00:12 | <awpr> | actually, it seems like maybe instances for nominal roles could look like `a ~ b => Coercible (f a) (f b)`, which would let some information through. not sure whether it behaves that way in practice |
| 21:02:35 | → | emf joins (~emf@163.114.132.1) |
| 21:02:35 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 21:02:53 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 21:04:25 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:04:25 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 21:04:25 | → | wroathe joins (~wroathe@user/wroathe) |
| 21:05:09 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 21:09:36 | <awpr> | awesome, it actually does. TIL. |
| 21:11:24 | <awpr> | https://paste.tomsmeding.com/vWYZMAtg demonstrates it: the instance of `HasThing` can only be selected because `Thing` has a nominal role |
| 21:14:00 | × | _xor quits (~xor@74.215.232.67) (Read error: Connection reset by peer) |
| 21:14:22 | × | nfd quits (~nfd@user/nfd) (Ping timeout: 252 seconds) |
| 21:14:46 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 21:14:54 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 21:15:59 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
| 21:16:12 | Lord_of_Life_ | is now known as Lord_of_Life |
| 21:17:02 | → | lavaman joins (~lavaman@98.38.249.169) |
| 21:17:54 | → | _xor joins (~xor@74.215.232.67) |
| 21:17:57 | → | yinghua joins (~yinghua@181.228.40.183) |
| 21:18:12 | → | vysn joins (~vysn@user/vysn) |
| 21:18:15 | → | ss4 joins (~wootehfoo@user/wootehfoot) |
| 21:20:50 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 21:21:25 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
| 21:22:04 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds) |
| 21:24:41 | → | Lycurgus joins (~juan@98.4.112.204) |
| 21:26:04 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 21:27:20 | × | Null_A quits (~null_a@2601:645:8700:2290:e9de:2461:c7b1:d42b) (Remote host closed the connection) |
| 21:27:57 | → | Null_A joins (~null_a@2601:645:8700:2290:e9de:2461:c7b1:d42b) |
| 21:27:58 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 21:28:27 | × | Gestotterd quits (~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net) (Remote host closed the connection) |
| 21:28:42 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 21:30:42 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 21:31:15 | → | ph88 joins (~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de) |
| 21:31:19 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:31:19 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 21:31:19 | → | wroathe joins (~wroathe@user/wroathe) |
| 21:31:49 | → | lavaman joins (~lavaman@98.38.249.169) |
| 21:35:40 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 21:36:59 | × | shailangsa_ quits (~shailangs@host217-39-45-200.range217-39.btcentralplus.com) () |
| 21:46:22 | × | Null_A quits (~null_a@2601:645:8700:2290:e9de:2461:c7b1:d42b) (Ping timeout: 260 seconds) |
| 21:49:23 | zzz | is now known as zero |
| 21:51:08 | × | zero quits (~yin@user/yin) (Changing host) |
| 21:51:08 | → | zero joins (~yin@user/zero) |
| 21:52:36 | nfernal | is now known as nf |
| 21:54:37 | → | jaitoon1 joins (~Jaitoon@2a02:c7f:a5f:1d00:546d:550:f4e1:8ed7) |
| 21:58:13 | × | jaitoon quits (~Jaitoon@188.241.156.59) (Ping timeout: 252 seconds) |
| 21:58:58 | → | DNH joins (~DNH@2a02:8108:1100:16d8:4c54:3aa3:ad7c:33c2) |
| 22:00:34 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
| 22:02:17 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 22:04:30 | × | hololeap quits (~hololeap@user/hololeap) (Quit: Bye) |
| 22:12:02 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 22:12:15 | → | lavaman joins (~lavaman@98.38.249.169) |
| 22:13:29 | → | shailangsa joins (~shailangs@host217-39-45-200.range217-39.btcentralplus.com) |
| 22:17:06 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 22:17:21 | → | lavaman joins (~lavaman@98.38.249.169) |
| 22:17:28 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 22:21:25 | → | lavaman joins (~lavaman@98.38.249.169) |
| 22:22:28 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 252 seconds) |
| 22:25:05 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 22:25:22 | × | chisui quits (~chisui@200116b8683fc700452c17731eb61342.dip.versatel-1u1.de) (Quit: Client closed) |
| 22:26:08 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 22:26:22 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 22:27:27 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2) |
| 22:29:19 | → | chisui joins (~chisui@200116b8683fc700cf2a945a88454e85.dip.versatel-1u1.de) |
| 22:31:16 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 22:33:42 | → | jaitoon2 joins (~Jaitoon@94.46.244.24) |
| 22:34:03 | <janus> | :t do { let (Just i) = Just 1; pure i } |
| 22:34:05 | <lambdabot> | error: parse error on input ‘}’ |
| 22:34:24 | <janus> | what's wrong with this? |
| 22:34:37 | <geekosaur> | the fact that iut's a one-liner |
| 22:35:00 | <geekosaur> | :t do { let { Just i = Just 1 }; pure i } |
| 22:35:01 | <lambdabot> | (Applicative f, Num a) => f a |
| 22:35:25 | <geekosaur> | let also uses braces, and the compiler gets confused when it's inside a braced do |
| 22:35:41 | <janus> | ok, i had no idea :O i only use braces in here |
| 22:36:57 | → | lavaman joins (~lavaman@98.38.249.169) |
| 22:37:14 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 22:37:25 | × | jaitoon1 quits (~Jaitoon@2a02:c7f:a5f:1d00:546d:550:f4e1:8ed7) (Ping timeout: 252 seconds) |
| 22:37:25 | <geekosaur> | more precisely it hands the semicolon and close brace to the let instead oif the do, then parsing breaks because `pure i` isn't an assignment |
| 22:38:02 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 22:38:05 | <geekosaur> | brace parsing is a bit hacky; you can check the Report for details |
| 22:39:31 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds) |
| 22:41:03 | <janus> | what is the motivation for let's and monadic binds working differently regarding incomplete patterns? |
| 22:41:39 | <janus> | it seems to me that it would be sufficient to have the <- or the = only affect what's on the left side, it doesn't need to care about how to match on it, that logic could be shared for both |
| 22:41:53 | <janus> | *affect what's on the RIGHT side, i meant |
| 22:42:46 | <geekosaur> | you always want to error on a let pattern match failure, because there's no other option |
| 22:42:54 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:43:11 | <geekosaur> | but in do, there is another option: fail. which means Nothing for Maybe, [] for list, Left msg for Either, ... |
| 22:43:35 | <geekosaur> | s/Either/& String/ |
| 22:43:54 | <awpr> | something I had missed about this question initially: inside do-notation, you could define that `let` should use the monad's `fail` for partial patterns |
| 22:44:28 | <awpr> | it'd be weird for `let`-as-a-statement to be different from `let`-as-an-expression |
| 22:44:51 | → | boxscape_ joins (~boxscape_@mue-88-130-59-180.dsl.tropolys.de) |
| 22:44:52 | <awpr> | but it's also a bit weird that `pat <- pure expr` is not the same as `let pat = expr` |
| 22:46:33 | <janus> | aaah right, ok , that explains it. the preferrence is for let to behave the same inside and outside do-blocks, instead of having all pattern failures behave the same inside the do block. |
| 22:51:38 | <jaitoon2> | thanks merijn and [itchyjunk] for the book recommendations :) |
| 22:52:24 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 276 seconds) |
| 22:53:03 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 22:54:47 | <geekosaur> | well, it also rather simplifiues how do blocks are expanded because "statement let" can just expand to normal let-in |
| 22:55:25 | → | lavaman joins (~lavaman@98.38.249.169) |
| 22:55:38 | <geekosaur> | (of course that's not a great argument these days since MonadFail and ApplicativeDo have made much bigger messes of do than desugaring let differently would have) |
| 22:56:21 | <geekosaur> | but you do have the question of whether you then go on to treat statement-let differently from let-in inside a do |
| 22:57:15 | <geekosaur> | so they just took the simplest solution |
| 22:57:37 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 22:58:37 | × | emf quits (~emf@163.114.132.1) (Quit: emf) |
| 22:59:46 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 23:03:04 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 23:03:04 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 23:03:04 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:03:07 | → | lavaman joins (~lavaman@98.38.249.169) |
| 23:07:07 | <awpr> | > `do let x = 5 in x` |
| 23:07:08 | <lambdabot> | <hint>:1:1: error: parse error on input ‘`’ |
| 23:07:14 | <awpr> | > do let x = 5 in x |
| 23:07:15 | <lambdabot> | 5 |
| 23:07:17 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 23:07:35 | <awpr> | some do-blocks have no monad to use for let-in anyway :) |
| 23:07:48 | × | karim quits (uid519758@id-519758.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 23:11:08 | → | mikoto-chan joins (~mikoto-ch@83.137.2.243) |
| 23:12:05 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 23:14:30 | → | lavaman joins (~lavaman@98.38.249.169) |
| 23:15:35 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 23:19:40 | → | tlaxkit joins (~hexchat@170.253.34.130) |
| 23:21:16 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds) |
| 23:24:14 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:28:24 | <orzo> | I want to implement MVector for a buffer owned by a c library (opengl) that has a lot of state associated. I don't want to support the ST monad, but the MVector type class seems to want a constructor for an arbitrary PrimMonad instance. A runtime error call for non-IO usage is acceptable to me but I cant figure out how to do that. I need a Typeable constraint that i'm not provided with to |
| 23:28:30 | <orzo> | accomplish it. |
| 23:29:00 | → | cwmcrb joins (~cwmcrb@c-98-208-68-237.hsd1.ca.comcast.net) |
| 23:29:36 | <orzo> | Is it possible to assert (possibly even at runtime) that the given PrimMonad is IO? |
| 23:29:51 | <geekosaur> | (PrimMonad m, M ~ IO) => ... ? |
| 23:30:05 | <geekosaur> | er. m ~ IO |
| 23:30:10 | × | DNH quits (~DNH@2a02:8108:1100:16d8:4c54:3aa3:ad7c:33c2) (Quit: Textual IRC Client: www.textualapp.com) |
| 23:30:18 | <orzo> | I'm trying to ipmement the api in Data.Vector.Generic.Mutable.Base |
| 23:30:29 | <orzo> | basicUnsafeNew :: PrimMonad m => Int -> m (v (PrimState m) a) |
| 23:31:04 | <orzo> | i made a GADT constructor for my v type that forces the state argument ot be RealWOrld |
| 23:31:16 | <orzo> | but that's not good enough here because i can't pattern match on the return value |
| 23:32:24 | × | cwmcrb quits (~cwmcrb@c-98-208-68-237.hsd1.ca.comcast.net) (Quit: Leaving...) |
| 23:32:29 | × | max22- quits (~maxime@2a01cb088335980098b0bbe63a5a4455.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
| 23:33:47 | <orzo> | i can use something like unsafeIOToPrim |
| 23:34:07 | <orzo> | but i'm not sure what would happen if somebody tried to then make an ST version of my MVector |
| 23:34:32 | <awpr> | presumably it would perform whatever IO you did in the creation of the vector |
| 23:34:49 | <orzo> | well, that doesn't sound good |
| 23:34:56 | <orzo> | i'd rather error out |
| 23:35:14 | <awpr> | if it's appropriate to pretend the allocation is no less pure than allocating a normal vector, then it might be fine |
| 23:35:37 | <awpr> | seems like it depends on what the backing storage is and such |
| 23:36:20 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 23:36:21 | <orzo> | it's an opengl vbo |
| 23:36:53 | <dolio> | How is that represented in Haskell? |
| 23:37:04 | <orzo> | a couple of Ints |
| 23:37:28 | <orzo> | primarily a single int that identifies the buffer |
| 23:37:45 | <dolio> | Oh, so it's not like a pointer or something? It uses some API for access that only works in IO? |
| 23:37:51 | <orzo> | yes |
| 23:38:26 | <orzo> | i'd like it to check the IO usage at compile time or even at run time |
| 23:38:39 | <orzo> | i just want to satisfy MVector so i can use some other code |
| 23:38:56 | <awpr> | I don't think that inherently has to be a problem; writing to memory like you would in ST is also I/O, and the core libraries people have just decided that kind of IO is okay to put in independent state threads |
| 23:39:11 | <awpr> | but being an OpenGL object raises concerns |
| 23:39:16 | <orzo> | ya |
| 23:39:19 | <orzo> | it raises concerns |
| 23:39:26 | <orzo> | i dont want it to be used that way |
| 23:39:34 | <awpr> | sounds like it can't be an MVector, then |
| 23:39:48 | <orzo> | well it can, just in a pretty unsafe way |
| 23:40:00 | <dolio> | I don't think there's a way to tell you're in ST rather than IO. |
| 23:40:19 | <awpr> | right, "can't" as in it doesn't fit into the intended meaning of MVector |
| 23:41:16 | <orzo> | i dont think it would be unsafe for IO usage of MVector |
| 23:41:34 | <orzo> | i think that would be fine |
| 23:41:39 | <awpr> | but MVector is defined to be a class of things that can be used in all PrimMonads |
| 23:42:04 | <awpr> | although I'm still not totally sure it wouldn't be appropriate to do in ST. how much invisible stateful nonsense is there in creating/writing these? |
| 23:42:06 | <orzo> | yeah, well i mean, i don't think a programmer who uses it with IO would run into an issue |
| 23:42:40 | <awpr> | that seems true. you could also write a Monad instance whose >>= is `error`, and programmers who only use `return` wouldn't run into any issues |
| 23:43:15 | <orzo> | right, but in this case, i can't even write error |
| 23:43:27 | <orzo> | i just have to pretend i'm in IO |
| 23:43:28 | <orzo> | heh |
| 23:43:43 | <awpr> | same sort of situation: the class wants more generality than the particular type can provide, and that's unfortunate because a lot of the stuff that abstracts over the class would be useful |
| 23:44:27 | <awpr> | this is why I'm prodding at whether you can get away with allowing it in ST: if you can, then the problem goes away on its own |
| 23:44:35 | <orzo> | i'm okay with errorIfST if it was doable |
| 23:45:16 | <dolio> | It isn't, though. PrimMonad doesn't have that. |
| 23:46:07 | <orzo> | PrimMonad should have a Typable m parent constraint |
| 23:46:14 | <orzo> | then you could do hacky foo like this |
| 23:47:28 | <orzo> | or MVector class should mention m as one of the arguments |
| 23:47:40 | × | hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds) |
| 23:49:31 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 23:50:09 | → | hololeap joins (~hololeap@user/hololeap) |
| 23:50:55 | → | danso joins (~danso@23-233-111-52.cpe.pppoe.ca) |
| 23:51:22 | × | Adran quits (~adran@botters/adran) (Quit: Este é o fim.) |
| 23:53:01 | <awpr> | what's the code you want to use it with that expects MVector? if it's something you wrote, you could change it to use a new class with e.g. just a write-at-index-i method |
| 23:53:54 | <orzo> | data-vector-growable |
| 23:54:35 | <orzo> | its not a whole lot, i had started re-implementing it, but then I foold myself into thinking it was possible to implmenet MVector with a GADT |
| 23:54:35 | → | Adran joins (adran@botters/adran) |
| 23:55:27 | <awpr> | hmm, yeah, that seems like it wants to be written against an MVector-like thing that's capable of constraining the `m` |
| 23:55:35 | <orzo> | now i'm torn between re-implmenting and using some unsafe hack |
| 23:57:34 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
All times are in UTC on 2021-10-01.