Logs: freenode/#haskell
| 2020-10-16 15:16:00 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
| 2020-10-16 15:23:07 | → | unlink2 joins (~unlink2@p57b852f3.dip0.t-ipconnect.de) |
| 2020-10-16 15:23:15 | → | thir joins (~thir@p200300f27f0258004ce58c845c83e0b2.dip0.t-ipconnect.de) |
| 2020-10-16 15:23:38 | → | addcninblue joins (~addison@c-73-158-198-149.hsd1.ca.comcast.net) |
| 2020-10-16 15:24:55 | × | dhil quits (~dhil@78.156.97.38) (Ping timeout: 246 seconds) |
| 2020-10-16 15:27:25 | × | thir quits (~thir@p200300f27f0258004ce58c845c83e0b2.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 2020-10-16 15:30:21 | → | isovector1 joins (~isovector@172.103.216.166.cable.tpia.cipherkey.com) |
| 2020-10-16 15:30:27 | hackage | subG 0.1.0.0 - Some extension to the Foldable and Monoid classes. https://hackage.haskell.org/package/subG-0.1.0.0 (OleksandrZhabenko) |
| 2020-10-16 15:30:35 | → | pera joins (~pera@unaffiliated/pera) |
| 2020-10-16 15:32:15 | → | Guest37834 joins (uid469646@gateway/web/irccloud.com/x-jcuztqspwxvcsinh) |
| 2020-10-16 15:32:53 | × | Guest37834 quits (uid469646@gateway/web/irccloud.com/x-jcuztqspwxvcsinh) (Client Quit) |
| 2020-10-16 15:34:04 | × | snakemas1 quits (~snakemast@213.100.206.23) (Quit: WeeChat 2.9) |
| 2020-10-16 15:35:58 | × | pera quits (~pera@unaffiliated/pera) (Ping timeout: 260 seconds) |
| 2020-10-16 15:36:19 | → | chris joins (~chris@81.96.113.213) |
| 2020-10-16 15:36:42 | chris | is now known as Guest67441 |
| 2020-10-16 15:37:00 | → | blip joins (5e86b451@gateway/web/cgi-irc/kiwiirc.com/ip.94.134.180.81) |
| 2020-10-16 15:37:36 | <blip> | Is it possible to get the ghc version used to compile a module without cpp? |
| 2020-10-16 15:38:27 | × | Guest67441 quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 2020-10-16 15:38:27 | <kuribas> | merijn: I'd like a language which allows type level computations in it using the same language. |
| 2020-10-16 15:38:44 | <kuribas> | merijn: but still with separation between types and kinds (not dependend types). |
| 2020-10-16 15:39:11 | <kuribas> | merijn: so you can still have hindley millner inference for most programs. |
| 2020-10-16 15:39:45 | × | xff0x quits (~fox@217.110.198.158) (Ping timeout: 240 seconds) |
| 2020-10-16 15:40:03 | <kuribas> | merijn: GRIN looks nice as an IR. |
| 2020-10-16 15:41:35 | <dolio> | Have you tried dependently typed languages? Agda and Idris are not exactly poor when it comes to inference. |
| 2020-10-16 15:42:10 | <kuribas> | dolio: I still prefer haskell inference |
| 2020-10-16 15:43:00 | <kuribas> | merijn: if you want to make a derivative language using GRIN, you can count me in :) |
| 2020-10-16 15:43:22 | <monochrom> | "One IR to rule them all" sounds like standardizing C all over again, you will just end up having 90% of it UB or implementation-defined. |
| 2020-10-16 15:43:52 | <kuribas> | monochrom: GRIN is meant as a step above C or LLVM, to defunctionalize a program. |
| 2020-10-16 15:44:02 | <kuribas> | monochrom: it's not meant to be between the machine and the program |
| 2020-10-16 15:44:04 | <hyperisco> | every time you read or hear "the IO monad" just imagine "the dog animal" |
| 2020-10-16 15:44:24 | <hyperisco> | and we can expunge this from common parlance |
| 2020-10-16 15:44:31 | <monochrom> | Do you also extend that to "the Maybe monad"? |
| 2020-10-16 15:45:01 | × | emmanuel_erc quits (~user@2604:2000:1382:ce03:1864:d59f:f9f2:35b1) (Ping timeout: 272 seconds) |
| 2020-10-16 15:45:01 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-10-16 15:45:10 | <dolio> | How about the free monoid monad? |
| 2020-10-16 15:45:21 | <monochrom> | "the integer monoid"? "the integer group"? "the integer ring"? "the integer commutative ring"? "the integer module"? |
| 2020-10-16 15:45:42 | <monochrom> | "the human species"? "the dog species"? |
| 2020-10-16 15:47:16 | <monochrom> | I know there are terrible writers who write "the IO monad" blindly. But for the rest of us, if we bother to write that, the context is we're focusing on the monadness. Just like when we bother to write "the human species" instead of just "humans". |
| 2020-10-16 15:47:16 | → | pera joins (~pera@unaffiliated/pera) |
| 2020-10-16 15:47:17 | × | Wamanuz quits (~wamanuz@78-70-34-81-no84.tbcn.telia.com) (Remote host closed the connection) |
| 2020-10-16 15:48:23 | <carbolymer> | I'm looking for mutable thread-safe, performant, hash map implementation, sth like Java's concurrenthashmap; I've found stm-containers, but the docs are vague and after reading the code I'm under impression ithat it just shoves whole multimap into TVar - which isn't really what I want |
| 2020-10-16 15:49:08 | <hyperisco> | well then the substitution makes sense and you can carry on :P |
| 2020-10-16 15:49:42 | <hyperisco> | I guess we don't say "dog animal", even though it follows the same pattern |
| 2020-10-16 15:50:05 | <dolio> | They do in Battlefield Earth. |
| 2020-10-16 15:50:17 | <carbolymer> | do you know which map implementation would be good? or should I just use `Map Text (TMVar DList a)` ? |
| 2020-10-16 15:50:50 | <monochrom> | We say "the dog phylum" or whatever level in the hierarchy it is, similar to "the human species". |
| 2020-10-16 15:51:18 | <monochrom> | because "animal" is too broad in that hierarchy. |
| 2020-10-16 15:51:33 | <monochrom> | and "the sine function", and "the sine wave". |
| 2020-10-16 15:52:16 | → | emmanuel_erc joins (~user@2604:2000:1382:ce03:e422:6bdf:36af:752a) |
| 2020-10-16 15:52:25 | <monochrom> | There is a reason natural languages nor programming languages are xz files. |
| 2020-10-16 15:53:06 | <hyperisco> | hm, is "the sine function" another extraneous phrase |
| 2020-10-16 15:54:04 | <monochrom> | NO |
| 2020-10-16 15:54:17 | <monochrom> | <monochrom> "the integer monoid"? "the integer group"? "the integer ring"? "the integer commutative ring"? "the integer module"? |
| 2020-10-16 15:54:30 | <monochrom> | Read that 100 times until it feels natural. |
| 2020-10-16 15:54:47 | <hyperisco> | it feels natural if we're talking about algebraic structures |
| 2020-10-16 15:54:50 | <monochrom> | err s/100 times/repeatedly/ |
| 2020-10-16 15:55:27 | <monochrom> | Then "the sine function" is natural when talking about function structures. "the sine wave" is natural when talking wave structures. |
| 2020-10-16 15:55:39 | <monochrom> | "the IO monad" is natural when talking about monad structures. |
| 2020-10-16 15:55:51 | <hyperisco> | yes I am just saying I think I usually hear "the sine function" and never simply "sine" |
| 2020-10-16 15:55:53 | <monochrom> | So you have always known it, you just don't want to admit it. |
| 2020-10-16 15:56:16 | <EvanR> | carbolymer: any reason you need specifically that data structure |
| 2020-10-16 15:56:20 | × | acidjnk_new2 quits (~acidjnk@p200300d0c723787058597087ca157dd5.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 2020-10-16 15:56:20 | <hyperisco> | granted, it is a homophone with too many other meanings |
| 2020-10-16 15:56:45 | <EvanR> | generally haskell's GC works better with immutable |
| 2020-10-16 15:57:40 | <hyperisco> | the weirdness isn't when you're talking about >>= and you say "the IO monad", it is when you're talking about putStrLn and you say "it runs in the IO monad" |
| 2020-10-16 15:58:11 | <monochrom> | The Haskell library doesn't have imperative lock-free concurrent mutable data structures. |
| 2020-10-16 15:58:22 | <monochrom> | There is not enough demand to begin with. |
| 2020-10-16 15:58:39 | <hyperisco> | but maybe that happens because "IO" isn't unambiguous enough |
| 2020-10-16 15:59:24 | × | da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2020-10-16 15:59:36 | <monochrom> | One single IORef, atomically used, that points to an immutable version, solves 99% of the same problems. |
| 2020-10-16 15:59:51 | <monochrom> | Note that you get ACID automatically. |
| 2020-10-16 16:02:56 | → | sfvm joins (~sfvm@37.228.215.148) |
| 2020-10-16 16:03:04 | → | toorevitimirp joins (~tooreviti@117.182.180.0) |
| 2020-10-16 16:03:26 | <kuribas> | the danger is that the monadicness of IO looks like something special by beginners. But IO works perfectly without a Monad instance. |
| 2020-10-16 16:03:49 | × | addcninblue quits (~addison@c-73-158-198-149.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
| 2020-10-16 16:03:53 | × | polyrain_ quits (~polyrain@58.161.83.164) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2020-10-16 16:04:01 | <c_wraith> | and conversely, monads have nothing to do with "impurity" |
| 2020-10-16 16:04:28 | <dolio> | Seems like sometimes people decide it's useful to communicate with more than the absolute minimum number of bits of information possible, and that isn't really a problem to be solved. |
| 2020-10-16 16:04:35 | → | addcninblue joins (~addison@c-73-158-198-149.hsd1.ca.comcast.net) |
| 2020-10-16 16:04:46 | <monochrom> | Right, I don't say "monad" when the context is teaching IO itself. |
| 2020-10-16 16:04:51 | → | solonarv joins (~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr) |
| 2020-10-16 16:04:53 | × | jespada quits (~jespada@90.254.245.15) (Quit: Leaving) |
| 2020-10-16 16:04:54 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-wfqfiwhdaazevkgj) |
| 2020-10-16 16:05:10 | <monochrom> | But that is hardly the only valid context. |
| 2020-10-16 16:05:54 | <c_wraith> | dolio: no, I think this one is. The problem is that people really do think monads are special because they think IO is what monads are. It's IO that's special, not monads. But they get conflated by a *lot* of people because they always see IO described as a monad. |
| 2020-10-16 16:06:19 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 2020-10-16 16:06:27 | → | fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
| 2020-10-16 16:08:27 | hackage | subG 0.1.1.0 - Some extension to the Foldable and Monoid classes. https://hackage.haskell.org/package/subG-0.1.1.0 (OleksandrZhabenko) |
| 2020-10-16 16:08:47 | <blip> | Why are there only Natural nums on the type level? |
| 2020-10-16 16:09:04 | <kuribas> | Then it seems monads are only necessary because you have a pure language, and they are no more than a kludge to fix a language that can only appeal to accedemics. |
| 2020-10-16 16:09:08 | <blip> | What about a promoted 4.7? |
| 2020-10-16 16:09:14 | <Rembane> | blip: Because it's almost impossible to put other kind of numbers there. |
| 2020-10-16 16:09:21 | <Rembane> | blip: How would you represent 4.7 as a type? |
| 2020-10-16 16:09:44 | <blip> | for example : Proxy :: Proxy (4, 7) |
| 2020-10-16 16:10:00 | <blip> | why wouldn't that be possible? |
| 2020-10-16 16:10:30 | × | pera quits (~pera@unaffiliated/pera) (Ping timeout: 256 seconds) |
| 2020-10-16 16:10:48 | <blip> | why isn't it syntactically suported? Often I use negative numbers at the type level |
| 2020-10-16 16:12:30 | <Rembane> | blip: That sounds like a more possible, representation. |
| 2020-10-16 16:12:37 | × | Deide quits (~Deide@217.155.19.23) (Read error: Connection reset by peer) |
| 2020-10-16 16:12:47 | <solonarv> | it probably just isn't supported because nobody has said to GHC devs "hey, I really need type level non-integer numbers" |
All times are in UTC.