Logs on 2024-06-29 (liberachat/#haskell)
| 00:00:59 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 00:02:49 | × | sgarcia quits (sgarcia@swarm.znchost.com) (Quit: Hosted by www.ZNCHost.com) |
| 00:40:47 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 00:51:14 | × | haskellbridge quits (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
| 00:58:09 | → | haskellbridge joins (~hackager@syn-024-093-192-219.res.spectrum.com) |
| 00:58:09 | ChanServ | sets mode +v haskellbridge |
| 01:07:16 | × | DreamDeckup quits (~DreamDeck@184.145.181.233) (Ping timeout: 246 seconds) |
| 01:07:34 | → | DreamDeckup joins (~DreamDeck@194.127.199.91) |
| 01:16:22 | <glguy> | andrea_r: seems like you're using alloca incorrectly |
| 01:17:56 | <glguy> | You shouldn't be peeking it before poking it, and the pointer isn't valid that it passes to the continuation once the continuation returns |
| 01:19:45 | <glguy> | You need malloc instead of alloca |
| 01:20:17 | <glguy> | Specifically you can use: new :: Storable a => a -> IO (Ptr a) |
| 01:31:16 | → | danza joins (~francesco@151.46.223.232) |
| 01:32:15 | × | phma quits (phma@2001:5b0:211c:3a08:71e1:2206:9a0a:f676) (Read error: Connection reset by peer) |
| 01:32:40 | → | phma joins (phma@2001:5b0:211c:3a08:71e1:2206:9a0a:f676) |
| 01:41:23 | × | CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 01:44:00 | → | CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 01:53:03 | × | nitrix quits (~nitrix@user/meow/nitrix) (Quit: ZNC 1.8.2 - https://znc.in) |
| 01:54:41 | → | nitrix joins (~nitrix@user/meow/nitrix) |
| 01:56:50 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 02:00:35 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 02:01:27 | → | danza_ joins (~francesco@151.44.142.105) |
| 02:01:39 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 02:02:03 | × | machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds) |
| 02:03:03 | × | petrichor quits (~znc-user@user/petrichor) (Quit: ZNC 1.8.2 - https://znc.in) |
| 02:03:58 | × | danza quits (~francesco@151.46.223.232) (Ping timeout: 246 seconds) |
| 02:04:22 | → | petrichor joins (~znc-user@user/petrichor) |
| 02:46:05 | × | td_ quits (~td@i53870939.versanet.de) (Ping timeout: 240 seconds) |
| 02:48:07 | → | td_ joins (~td@i5387091C.versanet.de) |
| 03:02:03 | × | zzz quits (~yin@user/zero) (Ping timeout: 264 seconds) |
| 03:08:26 | → | zzz joins (~yin@user/zero) |
| 03:16:17 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 03:17:18 | → | euleritian joins (~euleritia@dynamic-176-007-199-084.176.7.pool.telefonica.de) |
| 03:17:44 | <glguy> | andrea_r: even fixing those mistakes I still get the crash on 9.8 but not 9.10 |
| 03:18:52 | × | zzz quits (~yin@user/zero) (Ping timeout: 246 seconds) |
| 03:26:02 | → | zzz joins (~yin@user/zero) |
| 03:32:45 | → | abrantesasf joins (~abrantesa@179.217.48.72) |
| 03:37:33 | × | DreamDeckup quits (~DreamDeck@194.127.199.91) (Read error: Connection reset by peer) |
| 03:43:37 | → | aaronv joins (~aaronv@user/aaronv) |
| 03:50:08 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 03:50:53 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 04:01:30 | × | Goodbye_Vincent quits (cyvahl@freakshells.net) (Quit: ) |
| 04:02:09 | × | Pixi quits (~Pixi@user/pixi) (Read error: Connection reset by peer) |
| 04:02:39 | × | zzz quits (~yin@user/zero) (Ping timeout: 264 seconds) |
| 04:03:48 | → | Pixi joins (~Pixi@user/pixi) |
| 04:05:03 | × | abrantesasf quits (~abrantesa@179.217.48.72) (Remote host closed the connection) |
| 04:08:24 | × | joeyadams quits (~joeyadams@2603:6010:5100:2ed:8ec3:58dc:1906:fdfb) (Quit: Leaving) |
| 04:09:02 | → | zzz joins (~yin@user/zero) |
| 04:16:20 | × | euleritian quits (~euleritia@dynamic-176-007-199-084.176.7.pool.telefonica.de) (Ping timeout: 268 seconds) |
| 04:23:25 | → | euleritian joins (~euleritia@dynamic-176-004-188-141.176.4.pool.telefonica.de) |
| 04:28:57 | → | rekahsoft joins (~rekahsoft@bras-base-orllon1103w-grc-05-70-51-80-57.dsl.bell.ca) |
| 04:30:56 | × | euleritian quits (~euleritia@dynamic-176-004-188-141.176.4.pool.telefonica.de) (Read error: Connection reset by peer) |
| 04:31:14 | → | euleritian joins (~euleritia@77.22.252.56) |
| 04:32:11 | × | zzz quits (~yin@user/zero) (Ping timeout: 252 seconds) |
| 04:36:16 | → | Goodbye_Vincent joins (cyvahl@freakshells.net) |
| 04:37:44 | <cheater> | how would you encode: function f takes a type a and returns another value of type a that is larger than the parameter (larger meaning that all the values held inside the parameter are also held in the return value) |
| 04:38:06 | × | rekahsoft quits (~rekahsoft@bras-base-orllon1103w-grc-05-70-51-80-57.dsl.bell.ca) (Ping timeout: 255 seconds) |
| 04:38:51 | → | zzz joins (~yin@user/zero) |
| 04:46:29 | <c_wraith> | It's either trivial due to parametricity, or an ad-hoc mess that can be anything. |
| 04:48:24 | × | danza_ quits (~francesco@151.44.142.105) (Ping timeout: 268 seconds) |
| 04:54:08 | → | danza_ joins (~francesco@151.44.142.105) |
| 04:55:11 | × | zzz quits (~yin@user/zero) (Ping timeout: 268 seconds) |
| 04:56:59 | <danza_> | or a function that was previously partially applied |
| 05:01:32 | → | zzz joins (~yin@user/zero) |
| 05:02:38 | × | tabemann__ quits (~tabemann@2600:1700:7990:24e0:fc27:3b97:9d0e:b091) (Remote host closed the connection) |
| 05:03:09 | → | tabemann__ joins (~tabemann@2600:1700:7990:24e0:2727:c00:50bb:6a1f) |
| 05:06:56 | <cheater> | are y'all talking to me |
| 05:07:18 | <cheater> | i'm talking about a function f :: a -> a |
| 05:07:41 | <cheater> | but i want to enhance the type to explain that if f x = y where y = ..., then y `largerThan` x for a specific largerThan |
| 05:07:54 | <cheater> | or something else to that effect |
| 05:10:08 | × | tomku quits (~tomku@syn-141-126-184-057.res.spectrum.com) (Ping timeout: 252 seconds) |
| 05:12:06 | <c_wraith> | Do you want to choose a type that actually says what you mean? |
| 05:12:26 | <c_wraith> | Like... do you mean something more like f :: A -> A? |
| 05:14:34 | <c_wraith> | (capitalization matters. If you're actually talking about some concrete but opaque type, use capital letters) |
| 05:15:06 | <danza_> | nah it sounds more like the untyped behaviour is the topic, but the question is not really clear. That `largerThan`, for instance, seems like it would be an argument to `f` |
| 05:16:38 | → | harveypwca joins (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) |
| 05:17:59 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
| 05:19:01 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 05:19:45 | <c_wraith> | Or maybe you want f :: LargerThan a b => a -> b |
| 05:26:39 | × | erty quits (~user@user/aeroplane) (Ping timeout: 264 seconds) |
| 05:30:49 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 05:30:59 | × | wbooze quits (~wbooze@2a02:908:1244:9a20:b98a:b09d:31d2:62c5) (Remote host closed the connection) |
| 05:36:46 | × | wagle quits (~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
| 05:37:39 | → | wagle joins (~wagle@quassel.wagle.io) |
| 05:48:26 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 05:57:15 | → | acidjnk_new3 joins (~acidjnk@p200300d6e714dc649d6268bc0b57d2a1.dip0.t-ipconnect.de) |
| 05:57:21 | → | euphores joins (~SASL_euph@user/euphores) |
| 06:01:39 | → | danza__ joins (~francesco@151.44.205.235) |
| 06:04:02 | × | danza_ quits (~francesco@151.44.142.105) (Ping timeout: 252 seconds) |
| 06:24:19 | × | danza__ quits (~francesco@151.44.205.235) (Ping timeout: 256 seconds) |
| 06:25:13 | → | danza__ joins (~francesco@151.44.205.235) |
| 06:29:40 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:30:36 | × | danza__ quits (~francesco@151.44.205.235) (Ping timeout: 255 seconds) |
| 06:32:00 | × | machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 268 seconds) |
| 06:35:05 | × | zzz quits (~yin@user/zero) (Ping timeout: 268 seconds) |
| 06:41:29 | → | zzz joins (~yin@user/zero) |
| 06:49:11 | × | zzz quits (~yin@user/zero) (Ping timeout: 264 seconds) |
| 06:55:11 | × | euleritian quits (~euleritia@77.22.252.56) (Read error: Connection reset by peer) |
| 06:55:23 | → | euleritian joins (~euleritia@77.22.252.56) |
| 06:56:01 | → | zzz joins (~yin@user/zero) |
| 06:57:24 | × | euleritian quits (~euleritia@77.22.252.56) (Read error: Connection reset by peer) |
| 06:57:48 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 06:57:58 | × | mikess quits (~mikess@user/mikess) (Ping timeout: 246 seconds) |
| 07:02:02 | × | harveypwca quits (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) (Quit: Leaving) |
| 07:22:00 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 07:22:33 | × | poscat quits (~poscat@user/poscat) (Quit: Bye) |
| 07:22:53 | × | aaronv quits (~aaronv@user/aaronv) (Ping timeout: 240 seconds) |
| 07:26:50 | → | poscat joins (~poscat@user/poscat) |
| 07:32:01 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 08:01:29 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:07:10 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 08:13:06 | → | gmg joins (~user@user/gehmehgeh) |
| 08:16:02 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 08:16:13 | → | euleritian joins (~euleritia@dynamic-176-004-183-092.176.4.pool.telefonica.de) |
| 08:17:09 | → | rvalue- joins (~rvalue@user/rvalue) |
| 08:17:59 | × | ft quits (~ft@p4fc2ab80.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 08:18:41 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 268 seconds) |
| 08:21:10 | rvalue- | is now known as rvalue |
| 08:22:49 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:24:10 | → | Nixkernal joins (~Nixkernal@240.17.194.178.dynamic.cust.swisscom.net) |
| 08:46:40 | <probie> | cheater: Not Haskell, but in a dependently typed language you can have a type like (using Coq's syntax) `forall (x: nat), { y: nat | x < y }` (a function which takes a nat, and returns a pair containing a nat and a proof that the returned nat is bigger than the input) |
| 08:50:36 | <geekosaur> | I was thinking liquid haskell might be able to do it |
| 08:57:13 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 08:57:19 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 246 seconds) |
| 09:14:06 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 09:15:56 | × | zzz quits (~yin@user/zero) (Ping timeout: 256 seconds) |
| 09:22:44 | → | zzz joins (~yin@user/zero) |
| 09:23:54 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:31:03 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:31:26 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds) |
| 09:31:27 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 09:35:49 | → | __monty__ joins (~toonn@user/toonn) |
| 09:42:16 | → | danza__ joins (~francesco@151.44.205.235) |
| 09:42:34 | → | soverysour joins (~soverysou@user/soverysour) |
| 09:50:49 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:53:17 | × | soverysour quits (~soverysou@user/soverysour) (Ping timeout: 240 seconds) |
| 09:56:45 | → | KaitoDaumoto joins (~asdf@user/kaitodaumoto) |
| 10:01:45 | → | danza_ joins (~francesco@na-19-73-233.service.infuturo.it) |
| 10:03:52 | × | danza__ quits (~francesco@151.44.205.235) (Read error: Connection reset by peer) |
| 10:07:40 | × | euleritian quits (~euleritia@dynamic-176-004-183-092.176.4.pool.telefonica.de) (Ping timeout: 246 seconds) |
| 10:09:14 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 10:13:49 | → | mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com) |
| 10:20:23 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 10:25:54 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 10:37:11 | <cheater> | what about using type level lists |
| 10:37:13 | <cheater> | could that do that |
| 10:38:11 | <cheater> | ] <c_wraith> Like... do you mean something more like f :: A -> A? <<< well i mean we start with something that just takes the same type and returns it, and then, yeah, we find a type signature that also encodes the property i'm talking about |
| 10:38:39 | <cheater> | but yeah, probably start with f :: A -> A, i was just trying to say "the input type and output type are the same (ish) " |
| 10:38:48 | <cheater> | i don't necessarily need it to be polymorphic |
| 10:39:51 | <cheater> | <c_wraith> Or maybe you want f :: LargerThan a b => a -> b <<< i was thinking about that, but how would i implement LargerThan? |
| 10:44:09 | <mreh> | @paste |
| 10:44:09 | <lambdabot> | A pastebin: https://paste.debian.net/ |
| 10:45:40 | <danza_> | it sounded like you needed at least a `largerThan` passed as an arg to the function, because you want it to return a different value in a way that's controlled by f |
| 10:47:10 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 10:49:05 | <mreh> | Am I mistaken in thinking `Symbol` and `Type` are different kinds? https://paste.debian.net/1321825/ |
| 10:50:04 | <mreh> | Or can GHC not infer kinds from signatures like it can for type signatures |
| 10:53:48 | <mreh> | full code with better highlighting https://paste.debian.net/1321828/ |
| 10:54:15 | → | euleritian joins (~euleritia@dynamic-176-001-128-156.176.1.pool.telefonica.de) |
| 10:58:18 | <mreh> | given the instance head has to match the indexed type, why do I still need to supply a kind signature I guess is my question |
| 10:58:21 | <danza_> | huh... |
| 10:58:26 | <danza_> | > :k Type |
| 10:58:28 | <lambdabot> | <hint>:1:1: error: parse error on input ‘:’ |
| 10:58:38 | <danza_> | % :k Type |
| 10:58:38 | <yahb2> | <interactive>:1:1: error: ; Not in scope: type constructor or class ‘Type’ |
| 10:58:43 | × | euleritian quits (~euleritia@dynamic-176-001-128-156.176.1.pool.telefonica.de) (Ping timeout: 268 seconds) |
| 10:59:11 | <danza_> | @hoogle Type |
| 10:59:11 | <lambdabot> | Data.Kind type Type = Type |
| 10:59:11 | <lambdabot> | module GHC.Exception.Type |
| 10:59:11 | <lambdabot> | GHC.Exts data TYPE (a :: RuntimeRep) |
| 10:59:22 | <danza_> | % import Data.Kind |
| 10:59:22 | <yahb2> | <no output> |
| 10:59:26 | <danza_> | % :k Type |
| 10:59:27 | <yahb2> | Type :: * |
| 10:59:33 | <danza_> | % :k Symbol |
| 10:59:34 | <yahb2> | <interactive>:1:1: error: ; Not in scope: type constructor or class ‘Symbol’ |
| 10:59:41 | <danza_> | @hoogle Symbol |
| 10:59:42 | <lambdabot> | Text.Read Symbol :: String -> Lexeme |
| 10:59:42 | <lambdabot> | Text.Read.Lex Symbol :: String -> Lexeme |
| 10:59:42 | <lambdabot> | GHC.TypeLits data Symbol |
| 10:59:43 | <mreh> | GHC.TypeLits.Symbol |
| 10:59:49 | × | zzz quits (~yin@user/zero) (Ping timeout: 246 seconds) |
| 11:00:06 | <danza_> | % import GHC.TypeLits.Symbol |
| 11:00:06 | <yahb2> | <no location info>: error: ; Could not find module ‘GHC.TypeLits.Symbol’ ; It is not a module in the current program, or in any known package. |
| 11:00:10 | <danza_> | % import GHC.TypeLits |
| 11:00:10 | <yahb2> | <no output> |
| 11:00:13 | <danza_> | % :k Symbol |
| 11:00:13 | <yahb2> | Symbol :: * |
| 11:00:20 | <danza_> | yeah same kind |
| 11:01:16 | <mreh> | Those are terms though. I'm using them promotoed to the type level I thought. |
| 11:01:50 | <mreh> | Maybe I'm misunderstanding something. *goes to the back of the class* |
| 11:01:53 | <danza_> | you mean `Type` and `Symbol` are terms? |
| 11:03:07 | <mreh> | yeah https://hackage.haskell.org/package/ghc-prim-0.11.0/docs/src/GHC.Types.html#Symbol |
| 11:03:29 | <mreh> | hmm. maybe not |
| 11:03:59 | <danza_> | huh isn't that a different module anyway? |
| 11:04:41 | <danza_> | but may be exported through TypeLits, i don't know |
| 11:06:46 | → | zzz joins (~yin@user/zero) |
| 11:19:43 | → | rosco joins (~rosco@175.136.155.137) |
| 11:23:38 | → | emm joins (~emm@user/edmeme) |
| 11:31:44 | → | wbooze joins (~wbooze@2a02:908:1244:9a20:dc6b:1b70:a3f1:ce01) |
| 11:32:49 | → | madhavanmiui joins (~madhavanm@2409:40f4:1035:24a8:8000::) |
| 11:34:23 | × | madhavanmiui quits (~madhavanm@2409:40f4:1035:24a8:8000::) (Client Quit) |
| 11:44:52 | × | wbooze quits (~wbooze@2a02:908:1244:9a20:dc6b:1b70:a3f1:ce01) (Quit: Konversation terminated!) |
| 11:46:31 | → | wbooze joins (~wbooze@2a02:908:1244:9a20:dc6b:1b70:a3f1:ce01) |
| 11:48:49 | → | killy joins (~killy@staticline-31-183-161-180.toya.net.pl) |
| 11:50:55 | × | emm quits (~emm@user/edmeme) (Ping timeout: 246 seconds) |
| 12:06:15 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 12:06:51 | × | danza_ quits (~francesco@na-19-73-233.service.infuturo.it) (Ping timeout: 268 seconds) |
| 12:13:30 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 255 seconds) |
| 12:18:53 | × | acidjnk_new3 quits (~acidjnk@p200300d6e714dc649d6268bc0b57d2a1.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 12:45:48 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 12:47:33 | × | wbooze quits (~wbooze@2a02:908:1244:9a20:dc6b:1b70:a3f1:ce01) (Quit: Konversation terminated!) |
| 12:55:30 | → | wbooze joins (~wbooze@2a02:908:1244:9a20:7544:9b2d:46bd:449a) |
| 12:59:49 | × | nek0 quits (~nek0@user/nek0) (Quit: The Lounge - https://thelounge.chat) |
| 13:18:32 | → | harveypwca joins (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) |
| 13:20:23 | × | RiXSon quits (~rixson@77-234-86-141.pool.digikabel.hu) (Ping timeout: 264 seconds) |
| 13:22:01 | → | RiXSon joins (~rixson@178-164-206-66.pool.digikabel.hu) |
| 13:25:52 | × | wbooze quits (~wbooze@2a02:908:1244:9a20:7544:9b2d:46bd:449a) (Quit: Konversation terminated!) |
| 13:33:05 | → | soverysour joins (~soverysou@81.196.150.219) |
| 13:33:05 | × | soverysour quits (~soverysou@81.196.150.219) (Changing host) |
| 13:33:05 | → | soverysour joins (~soverysou@user/soverysour) |
| 13:36:02 | × | cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds) |
| 13:36:33 | → | madeleine-sydney joins (~madeleine@c-71-229-185-228.hsd1.co.comcast.net) |
| 13:37:49 | × | soverysour quits (~soverysou@user/soverysour) (Ping timeout: 268 seconds) |
| 13:38:42 | × | madeleine-sydney quits (~madeleine@c-71-229-185-228.hsd1.co.comcast.net) (Remote host closed the connection) |
| 13:41:29 | → | ft joins (~ft@i5C743B07.versanet.de) |
| 13:43:06 | → | wbooze joins (~wbooze@2a02:908:1244:9a20:ac6f:59e0:9f9e:dd87) |
| 13:47:55 | × | rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
| 13:48:25 | → | rvalue joins (~rvalue@user/rvalue) |
| 13:49:10 | × | rosco quits (~rosco@175.136.155.137) (Quit: Lost terminal) |
| 13:51:55 | → | acidjnk_new3 joins (~acidjnk@p200300d6e714dc64f17ffbaa6306596b.dip0.t-ipconnect.de) |
| 13:52:33 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 13:53:27 | → | Guest52 joins (~Guest52@97-117-76-196.slkc.qwest.net) |
| 13:56:13 | <Guest52> | When using nonmoving-gc is it possible somehow at a specific point in my program to do a full gc more along the lines of a moving collection? A problem we are seeing is when using moving collection we see large pauses (latency) during gc. The nonmoving collector solves this, but the problem there is we are not seeing memory released at all with |
| 13:56:13 | <Guest52> | nonmoving on. |
| 14:20:35 | × | killy quits (~killy@staticline-31-183-161-180.toya.net.pl) (Quit: leaving) |
| 14:24:25 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 14:30:02 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 14:42:50 | × | inedia quits (~irc@2600:3c00:e000:287::1) (Remote host closed the connection) |
| 14:45:36 | → | inedia joins (~irc@2600:3c00:e000:287::1) |
| 14:49:27 | <xerox> | is there somebody here that knows why stackage lost all of the links to all of the hoogle searches? |
| 15:00:26 | <haskellbridge> | <sm> got an example ? |
| 15:04:14 | → | madhavanmiui joins (~madhavanm@152.58.212.232) |
| 15:04:39 | × | madhavanmiui quits (~madhavanm@152.58.212.232) (Client Quit) |
| 15:08:43 | <xerox> | sm: any search on stackage.org |
| 15:09:32 | <xerox> | you can pick any set https://www.stackage.org/nightly-2024-06-28/hoogle?q=Data.Set https://www.stackage.org/lts-22.27/hoogle?q=Data.Set https://www.stackage.org/lts-22.20/hoogle?q=Data.Set |
| 15:27:16 | <xerox> | sm: curiously package pages are also devoid of links to the modules' docs https://www.stackage.org/lts-22.27/package/containers-0.6.7 |
| 15:30:24 | × | wbooze quits (~wbooze@2a02:908:1244:9a20:ac6f:59e0:9f9e:dd87) (Quit: Konversation terminated!) |
| 15:32:23 | <haskellbridge> | <sm> ah, all stackage.org hoogle searches returning "The given Hoogle database is not available." eh. Seems like a recent outage |
| 15:32:31 | → | mikess joins (~mikess@user/mikess) |
| 15:32:50 | <xerox> | :/ |
| 15:33:15 | <haskellbridge> | <sm> reported in the stackage room |
| 15:33:43 | <xerox> | is it on irc as well? |
| 15:37:56 | → | emm joins (~emm@user/edmeme) |
| 15:38:59 | × | destituion quits (~destituio@2a02:2121:6cb:fbc3:5940:6cf4:b639:63ef) (Ping timeout: 268 seconds) |
| 15:39:17 | → | joeyadams joins (~joeyadams@2603:6010:5100:2ed:9050:10e4:443d:2f1c) |
| 15:58:38 | <zzz> | if i use 'cabal install program', which directory would that program consider its root directory? |
| 15:59:34 | <mreh> | xerox: I thought we've not been able to search within snapshots for a while |
| 15:59:51 | <mreh> | consuming too much disk space or some such |
| 16:00:06 | <xerox> | mreh: does any other kind of search work? |
| 16:01:13 | <EvanR> | Guest52, did you try performMajorGC |
| 16:01:15 | <mreh> | hmm no, but it used to revert to the latest I thought |
| 16:01:28 | <EvanR> | or performBlockingMajorGC |
| 16:01:45 | <EvanR> | in System.Mem |
| 16:02:15 | <xerox> | when the default search box on the page doesn't work something's iffy |
| 16:02:18 | × | mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Quit: leaving) |
| 16:02:41 | → | mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com) |
| 16:02:42 | <zzz> | i guess it's the cwd from where you launched it |
| 16:05:45 | <haskellbridge> | <sm> xerox: theres an irc channel.. but no, not really |
| 16:08:43 | <mreh> | looks like people have reported it in the past on github |
| 16:08:49 | <mreh> | https://github.com/commercialhaskell/stackage/issues/7314 |
| 16:09:15 | × | CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 16:11:42 | → | CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 16:12:11 | <haskellbridge> | <4d5a9000> hi... I'm new to Haskell, can I ask a question here? |
| 16:12:20 | <xerox> | please do |
| 16:12:30 | <haskellbridge> | <4d5a9000> ghci> succ() |
| 16:12:30 | <haskellbridge> | *** Exception: Prelude.Enum.().succ: bad argumentWhy does this cause a runtime exception instead of a type error? |
| 16:12:49 | <xerox> | mreh: that gives some hope that's a faily mechanical fix :) |
| 16:13:05 | <mreh> | It still might not help you since this: https://github.com/commercialhaskell/stackage-server/issues/305 |
| 16:13:19 | <mreh> | they only support searching in one LTS and one Nightly |
| 16:14:00 | <xerox> | 4d5a9000: I think that's ()'s succ implementation |
| 16:14:14 | <monochrom> | What type error would it be? |
| 16:14:55 | <mreh> | > fromEnum () |
| 16:14:57 | <lambdabot> | 0 |
| 16:15:05 | <haskellbridge> | <4d5a9000> monochrom something likeghci> succ(1,2) |
| 16:15:05 | <haskellbridge> | ... long message truncated: https://kf8nh.com/_matrix/media/v3/download/kf8nh.com/fqYbOiweVCIfgxInGNBIjgNu (6 lines) |
| 16:15:43 | <mreh> | kinda weird () has an Enum instance |
| 16:15:56 | <xerox> | https://hackage.haskell.org/package/ghc-internal-9.1001.0/docs/src/GHC.Internal.Enum.html it's in here |
| 16:16:12 | <mauke> | > [() .. ()] |
| 16:16:14 | <lambdabot> | [()] |
| 16:16:23 | <mreh> | it's not superficially very useful |
| 16:16:29 | <mauke> | I mean, technically () is an enum type with one element |
| 16:16:55 | <mreh> | > toEnum 2 :: Bool |
| 16:16:56 | <lambdabot> | *Exception: Prelude.Enum.Bool.toEnum: bad argument |
| 16:17:19 | <joeyadams> | That should return FileNotFound. |
| 16:17:21 | <mauke> | > toEnum maxBound :: Integer |
| 16:17:22 | <lambdabot> | 9223372036854775807 |
| 16:17:37 | <mreh> | > succ maxBound :: Int |
| 16:17:38 | <lambdabot> | *Exception: Prelude.Enum.succ{Int}: tried to take `succ' of maxBound |
| 16:17:55 | <mreh> | lol |
| 16:18:19 | <haskellbridge> | <4d5a9000> Well that's weird but I'll just take it |
| 16:18:38 | <mauke> | > succ 3.14 |
| 16:18:38 | × | euphores quits (~SASL_euph@user/euphores) (Read error: Connection reset by peer) |
| 16:18:39 | <lambdabot> | 4.140000000000001 |
| 16:18:43 | <xerox> | 4d5a9000 keep in mind that parens are not function application syntax here, () is the one element of the () type (called "unit"), and (1,2) is a tuple |
| 16:18:44 | <mauke> | ... I guess |
| 16:18:47 | <mreh> | Whoever wrte Enum didn't want () to feel left out |
| 16:19:22 | <mreh> | mauke: haha, that one is amusing |
| 16:20:12 | <mreh> | > toEnum 3.141 |
| 16:20:13 | <lambdabot> | error: |
| 16:20:14 | <lambdabot> | • Could not deduce (Fractional Int) |
| 16:20:14 | <lambdabot> | arising from the literal ‘3.141’ |
| 16:20:39 | <mreh> | whoops |
| 16:20:50 | <mreh> | > fromEnum 3.141 |
| 16:20:52 | <lambdabot> | 3 |
| 16:21:17 | <haskellbridge> | <4d5a9000> xerox I know that, but it still seems weird for "succ ()" to pass the type check xD |
| 16:22:04 | <xerox> | I guess somebody with enough pull needed the Enum instance for … something, and it can't do much else |
| 16:22:20 | <mauke> | > [1.5 .. pi] |
| 16:22:22 | <lambdabot> | [1.5,2.5,3.5] |
| 16:23:35 | × | Pixi quits (~Pixi@user/pixi) (Quit: Leaving) |
| 16:23:40 | <mreh> | I can't think of an example where `succ` is total |
| 16:23:49 | <mreh> | why should () not have an Enum instance |
| 16:24:01 | <Leary> | I doubt it's there because someone needed it. Instances are written when they morally should exist. () is enumerable, so it has Enum. That's it. |
| 16:24:13 | <mreh> | exactly |
| 16:26:02 | <haskellbridge> | <4d5a9000> Also why does "length(repeat(succ()))" not throw an exception, and will just run forever? |
| 16:26:23 | <xerox> | > length (repeat undefined) |
| 16:26:32 | <lambdabot> | mueval.real: ExitFailure 1 |
| 16:26:48 | <xerox> | length doesn't evaluate the elements in the list, only the spine that repeat keeps producing |
| 16:27:20 | <mreh> | 4d5a9000: laziness |
| 16:27:24 | <mauke> | > error "oops" |
| 16:27:25 | <lambdabot> | *Exception: oops |
| 16:27:31 | <mauke> | > let x = error "oops" in length [x, x] |
| 16:27:32 | <lambdabot> | 2 |
| 16:28:06 | <mauke> | mreh: Integer.succ is probably total |
| 16:28:21 | <mreh> | > succ maxBound :: Integer |
| 16:28:23 | <lambdabot> | error: |
| 16:28:23 | <lambdabot> | • No instance for (Bounded Integer) |
| 16:28:23 | <lambdabot> | arising from a use of ‘maxBound’ |
| 16:28:24 | <mauke> | inb4 most-positive-bignum |
| 16:28:43 | <mreh> | no max bound?! |
| 16:28:49 | <mauke> | unboundled |
| 16:29:03 | <c_wraith> | technically, there's a max bound of around 2^(2^64) |
| 16:29:14 | <c_wraith> | but you don't have that much RAM |
| 16:29:18 | → | euphores joins (~SASL_euph@user/euphores) |
| 16:29:45 | <monochrom> | When I was a kid, I conflated "largest" with "largest expressible under a language", so I thought the largest number was something like 999 billion 999 million ... |
| 16:29:58 | <haskellbridge> | <4d5a9000> That's 16 exabytes of RAM |
| 16:30:20 | <c_wraith> | And that max bound is only an implementation detail |
| 16:30:28 | <c_wraith> | whenever we get 128-bit GHC, it'll go up. :) |
| 16:30:34 | <monochrom> | :) |
| 16:30:41 | <monochrom> | \∩/ 128-bit GHC |
| 16:30:48 | <mreh> | okay, that's one `succ` that's total |
| 16:32:24 | <mauke> | https://www.jwz.org/blog/2008/03/most-positive-bignum/ |
| 16:34:23 | <monochrom> | Haha bit-level hacks in Lisp?! |
| 16:35:07 | <monochrom> | And here we say/scaremonger that such hacks are UB in C. |
| 16:35:23 | <dolio> | monochrom: Everyone knows 24 is the highest number. |
| 16:36:19 | <monochrom> | Wait, why is 24 the highest number? |
| 16:36:33 | <dolio> | https://www.youtube.com/watch?v=9P2ROAbQZYw |
| 16:38:11 | <monochrom> | haha OK |
| 16:44:42 | → | cheater joins (~Username@user/cheater) |
| 16:45:04 | → | Pixi joins (~Pixi@user/pixi) |
| 16:46:55 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 16:58:32 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 268 seconds) |
| 17:05:36 | → | bolivood joins (~bolivood@user/bolivood) |
| 17:09:29 | × | phma quits (phma@2001:5b0:211c:3a08:71e1:2206:9a0a:f676) (Read error: Connection reset by peer) |
| 17:10:09 | → | phma joins (~phma@host-67-44-208-9.hnremote.net) |
| 17:27:06 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 17:30:55 | → | aaronv joins (~aaronv@user/aaronv) |
| 17:35:57 | <EvanR> | I thought 420 was the highest |
| 17:50:13 | × | harveypwca quits (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) (Quit: Leaving) |
| 17:52:53 | → | euleritian joins (~euleritia@dynamic-176-001-133-228.176.1.pool.telefonica.de) |
| 17:54:17 | × | EvanR quits (~EvanR@user/evanr) (Quit: Leaving) |
| 17:54:43 | × | bolivood quits (~bolivood@user/bolivood) (Quit: Leaving) |
| 17:56:29 | → | soverysour joins (~soverysou@user/soverysour) |
| 18:14:44 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 18:14:59 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds) |
| 18:16:05 | Lord_of_Life_ | is now known as Lord_of_Life |
| 18:35:44 | → | pavonia joins (~user@user/siracusa) |
| 18:43:22 | → | alexherbo2 joins (~alexherbo@2a02-8440-3216-58a7-4198-eabe-8a40-71c0.rev.sfr.net) |
| 18:43:31 | × | joeyadams quits (~joeyadams@2603:6010:5100:2ed:9050:10e4:443d:2f1c) (Quit: Leaving) |
| 18:45:13 | × | aaronv quits (~aaronv@user/aaronv) (Ping timeout: 268 seconds) |
| 18:49:25 | → | aaronv joins (~aaronv@user/aaronv) |
| 18:51:26 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 18:55:25 | → | destituion joins (~destituio@2a02:2121:6cb:fbc3:5940:6cf4:b639:63ef) |
| 18:56:25 | → | euphores joins (~SASL_euph@user/euphores) |
| 18:57:00 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 19:01:49 | × | soverysour quits (~soverysou@user/soverysour) (Ping timeout: 256 seconds) |
| 19:20:27 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 19:22:37 | → | madeleine-sydney joins (~madeleine@c-71-229-185-228.hsd1.co.comcast.net) |
| 19:25:02 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 260 seconds) |
| 19:25:58 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds) |
| 19:26:51 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:27:03 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 19:27:42 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 19:35:13 | × | CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 19:37:55 | → | CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 19:45:35 | → | JimL joins (~quassel@89.162.16.26) |
| 19:48:59 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 19:49:20 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 19:50:00 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 20:12:28 | → | robotsnowfall joins (~robotsnow@user/robotsnowfall) |
| 20:14:22 | × | madeleine-sydney quits (~madeleine@c-71-229-185-228.hsd1.co.comcast.net) (Remote host closed the connection) |
| 20:21:58 | × | robotsnowfall quits (~robotsnow@user/robotsnowfall) (Quit: ZNC 1.9.0 - https://znc.in) |
| 20:22:21 | → | robotsnowfall joins (~robotsnow@user/robotsnowfall) |
| 20:27:20 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:37:10 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:48:15 | × | gabiruh_ quits (~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 264 seconds) |
| 20:49:10 | → | gabiruh joins (~gabiruh@vps19177.publiccloud.com.br) |
| 20:49:47 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 264 seconds) |
| 20:51:13 | → | noumenon joins (~noumenon@113.51-175-156.customer.lyse.net) |
| 20:55:50 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:10:34 | × | mikess quits (~mikess@user/mikess) (Ping timeout: 246 seconds) |
| 21:10:38 | <haskellbridge> | <zwro> > succ () |
| 21:11:18 | <zzz> | > succ () |
| 21:11:19 | <lambdabot> | *Exception: Prelude.Enum.().succ: bad argument |
| 21:11:29 | <haskellbridge> | <zwro> thanks |
| 21:12:57 | <haskellbridge> | <zwro> why this error? why not 'No instance for Enum () ...' |
| 21:13:09 | → | mikess joins (~mikess@user/mikess) |
| 21:13:37 | <geekosaur> | > enumFrom () |
| 21:13:38 | <lambdabot> | [()] |
| 21:13:53 | <geekosaur> | some parts of `Enum` work, just not `succ` |
| 21:14:10 | <zzz> | oh damn |
| 21:14:22 | <zzz> | :i Enum |
| 21:14:34 | <geekosaur> | which is the same behavior you get if you derive `Enum` on a single-constructor data type |
| 21:14:47 | <zzz> | this is not good |
| 21:14:59 | <geekosaur> | also, ghci doesn't do :i |
| 21:15:00 | <haskellbridge> | <zwro> agree |
| 21:15:05 | <geekosaur> | %% :i () |
| 21:15:06 | <yahb2> | https://paste.tomsmeding.com/ViUAlIlm |
| 21:15:37 | × | machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 272 seconds) |
| 21:15:57 | <zzz> | geekosaur: ghci doesn't do i? |
| 21:16:04 | <zzz> | i think it does |
| 21:16:09 | <geekosaur> | lambdabot isn't ghci |
| 21:16:25 | <geekosaur> | yahb is, which is why I directed it there |
| 21:16:26 | × | Guest52 quits (~Guest52@97-117-76-196.slkc.qwest.net) (Quit: Client closed) |
| 21:18:31 | <zzz> | ah, you meant 'lambdabot doesn't do :i' |
| 21:18:34 | <zzz> | right |
| 21:18:59 | <geekosaur> | oh, sorry yes |
| 21:19:42 | <geekosaur> | I was halfweay between lambdabot (not ghci) and yahb2 (ghci) and got muddled because I've had maybe 4 hours of sleep 😞 |
| 21:20:06 | <zzz> | so wait, when creating a class instance we don't need to satisfy {-# MINIMAL ... #-} ? |
| 21:20:46 | <geekosaur> | eh? the method exists, it just fails because there's no successor in a single-constructor type |
| 21:20:56 | <geekosaur> | > succ True |
| 21:20:57 | <lambdabot> | *Exception: Prelude.Enum.Bool.succ: bad argument |
| 21:21:02 | <zzz> | oh |
| 21:21:03 | <geekosaur> | same error |
| 21:21:11 | <zzz> | > succ False |
| 21:21:12 | <lambdabot> | True |
| 21:21:14 | <zzz> | i get it |
| 21:21:26 | <zzz> | succ is not total :( |
| 21:22:43 | <zzz> | hate the idea of deriving non-total functions |
| 21:23:09 | <geekosaur> | what's it supposed to do? |
| 21:23:20 | <geekosaur> | also I think the Report specifies this |
| 21:23:45 | <geekosaur> | and it's recoverable if you also derive Bounded |
| 21:23:54 | <geekosaur> | > maxBound :: () |
| 21:23:56 | <lambdabot> | () |
| 21:24:04 | <zzz> | succ :: Enum a -> a -> Maybe a ? |
| 21:24:18 | <geekosaur> | sadly that's not how the Report definees it |
| 21:24:21 | <zzz> | s/->/=> |
| 21:24:55 | <zzz> | sadly ye |
| 21:25:06 | <zzz> | i personally don't use succ |
| 21:26:09 | <zzz> | https://github.com/jrvieira/zero/blob/d5a6356bf1ee5deee254e5881823f3b38e324bf6/src/Zero.hs#L44-L56 |
| 21:27:38 | <geekosaur> | https://www.haskell.org/onlinereport/haskell2010/haskellch6.html#dx13-131007 |
| 21:27:57 | <geekosaur> | (I really wish they provided links to subsections) |
| 21:30:08 | <zzz> | i have a question |
| 21:30:22 | <zzz> | :t 99999999999999999999999999999999999999999999999999999999999999 |
| 21:30:22 | <geekosaur> | it also opens a can of worms because you have to ask when it produces Nothing for non-derived instances witgh gaps |
| 21:30:23 | <lambdabot> | Num p => p |
| 21:30:37 | <zzz> | geekosaur: good point |
| 21:31:04 | <zzz> | in this case, what can p be other than Integer? |
| 21:31:13 | <geekosaur> | Scientific |
| 21:31:38 | <geekosaur> | https://hackage.haskell.org/package/scientific |
| 21:32:02 | <geekosaur> | it can also be Double, with some loss of precision (but that's expected for floating point) |
| 21:32:29 | <geekosaur> | also CReal from the numbers package |
| 21:32:40 | <zzz> | so literals still work like this even if no possible instances are in scope? |
| 21:32:44 | <geekosaur> | yes |
| 21:32:52 | <zzz> | oh that's weird |
| 21:33:02 | <geekosaur> | again, that's Report-mandated |
| 21:34:24 | <geekosaur> | the Report tends to specify a lowest-common-denominator behavior |
| 21:35:06 | <geekosaur> | in this case, the spec is "does it have a decimal point or exponent? store as a Rational and wrap in fromRational. otherwise, store as Integer and wrap in fromInteger |
| 21:35:25 | <geekosaur> | " |
| 21:36:51 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:37:17 | → | EvanR joins (~EvanR@user/evanr) |
| 21:37:19 | <zzz> | is there something like {-# LANGUAGE NoImplicitGHC #-} ? |
| 21:37:23 | <zzz> | :P |
| 21:37:52 | <zzz> | i guess that would be GHC and not LANGUAGE |
| 21:41:18 | <monochrom> | What would that mean? |
| 21:41:37 | <zzz> | well... the GHC module is always implicitly imported, isn't it? |
| 21:41:51 | <monochrom> | Who told you that? But the answer is no. |
| 21:42:03 | <zzz> | (what i'm trying to do is not having access to Integer) |
| 21:42:07 | <geekosaur> | Prelude is the only implicitly imported module, and this has nothing to do with Prelude, it's compiler behavior |
| 21:42:26 | <zzz> | oh ok |
| 21:42:32 | <zzz> | so where does Integer live? |
| 21:42:45 | <monochrom> | Integer is specified by Haskell2010 and before. Hugs has to provide Integer, too. |
| 21:43:02 | <zzz> | i see |
| 21:43:17 | <zzz> | so we can't get rid of it? |
| 21:43:28 | <geekosaur> | and that compiler behavior is likely to break your intent because it's wired-in. it's possible that NoImplicitPrelude + the RebindableSyntax big hammer would work |
| 21:43:51 | <geekosaur> | but only by letting you provide your own Integer |
| 21:44:02 | <geekosaur> | it's deeply wired into the compiler |
| 21:44:03 | <monochrom> | I am too lazy to even call it an XY problem, so I will just say no we can't get rid of it. |
| 21:44:52 | <zzz> | monochrom: i'm just curiously exploring the edges of the language. no X nor Y problem |
| 21:46:34 | <geekosaur> | you would need some modification / LANGUAGE pragma that disabled Report-specified numeric behavior. which would probably be difficult to implement, since obeying the Report results in Integer and Rational being deeply wired in |
| 21:46:57 | <geekosaur> | it also has been complicating the move toward runtime-selectable Integer backends |
| 21:47:42 | <geekosaur> | (Rational reduces to Integer since in practice it's just two Integers) |
| 21:48:04 | → | madeleine-sydney joins (~madeleine@c-71-229-185-228.hsd1.co.comcast.net) |
| 21:48:14 | <zzz> | that makes sense. literals should be guaranteed to have at least one correponding type |
| 21:49:20 | <zzz> | now if literals should ideally exist, that's another question |
| 21:49:38 | <monochrom> | Frankly and bluntly I have trouble logically reconciling "curious and exploring the edge of the language" with having never read the Haskell 2010 Report (or even 98). But I'll drop the issue now. |
| 21:49:48 | → | dcoutts joins (~duncan@2a02:8012:ae9a:0:9a7e:1cf5:7c51:c650) |
| 21:51:38 | <geekosaur> | I don't, since "the language" in practice has diverged significantly from the Report (FAM, Num's "superclasses", FTP among others, not to mention all the actual language extensions although GHC at least tries to keep those hidden behind LANGUAGE pragmas for the most part) |
| 21:52:11 | <zzz> | monochrom: i hear you. it comes down to opportunity. the investment of reading the report is not worth it for me (i use haskell recreationally) and i had the opportunity to ask here, by chance. i happen to be relaxing and just chatting |
| 21:54:19 | <zzz> | if i ever use haskell for work (i wish) i'll read it gladly |
| 21:55:20 | × | noumenon quits (~noumenon@113.51-175-156.customer.lyse.net) (Read error: Connection reset by peer) |
| 21:55:37 | <monochrom> | geekosaur: Even in music where musicians deviate and/or disregard theories of music and harmony all the time, the consensus is "you have to know the rules before you break them". |
| 21:56:25 | <monochrom> | The Haskell 2010 Report is a baseline. And then one can talk about which parts of it are superceded. |
| 21:57:52 | <monochrom> | And for things like the detailed strictness of "case ~(x : (y : zs))", it is still Haskell 2010. |
| 21:58:06 | × | mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 256 seconds) |
| 21:58:43 | <monochrom> | err "case ... of ~(x : (y : zs))" |
| 21:59:31 | <zzz> | monochrom: some musicians agree, others disagree. some very highly regarded musicians never learned basic theory |
| 21:59:38 | <zzz> | think of it like this: https://www.youtube.com/watch?v=NTYg9cgHvkA |
| 21:59:39 | <zzz> | :) |
| 21:59:46 | ← | canta parts (~canta@user/canta) (WeeChat 3.5) |
| 21:59:59 | <haskellbridge> | <sm> zzz true |
| 22:00:12 | <geekosaur> | I'll agree with that |
| 22:00:34 | <geekosaur> | for that matter, I have no formal CS training and barely any programming training (I once took a fortran course) |
| 22:01:27 | <zzz> | that being said, i recognise the importance of knowing |
| 22:02:21 | <geekosaur> | but in this case, I'll also argue that many of the rules you have to know about aren't just from the Report; they're from how early GHC devs chose to implement them and the resulting technical debt |
| 22:02:30 | <geekosaur> | cf. Integer behavior |
| 22:02:52 | <geekosaur> | and you can't get that even from the GHC manual |
| 22:04:12 | <geekosaur> | much of it you have to get by reading the source to the ghc-bignum package |
| 22:05:21 | <geekosaur> | which you won't even know about unless you get curious about ghc-pkg --global output, or pay very close attention to ghc release notes |
| 22:07:29 | × | aaronv quits (~aaronv@user/aaronv) (Ping timeout: 268 seconds) |
| 22:11:00 | → | aaronv joins (~aaronv@user/aaronv) |
| 22:11:48 | × | mikess quits (~mikess@user/mikess) (Ping timeout: 268 seconds) |
| 22:16:26 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:38:19 | × | emm quits (~emm@user/edmeme) (Ping timeout: 268 seconds) |
| 22:46:10 | × | xdminsy quits (~xdminsy@117.147.70.231) (Quit: Konversation terminated!) |
| 22:46:24 | × | aaronv quits (~aaronv@user/aaronv) (Remote host closed the connection) |
| 22:46:36 | → | xdminsy joins (~xdminsy@117.147.70.231) |
| 22:46:43 | → | aaronv joins (~aaronv@user/aaronv) |
| 22:48:30 | → | mikess joins (~mikess@user/mikess) |
| 23:01:07 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 23:07:11 | × | mikess quits (~mikess@user/mikess) (Ping timeout: 264 seconds) |
| 23:10:53 | × | acidjnk_new3 quits (~acidjnk@p200300d6e714dc64f17ffbaa6306596b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 23:17:10 | × | aaronv quits (~aaronv@user/aaronv) (Ping timeout: 268 seconds) |
| 23:17:59 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 23:27:20 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 23:28:32 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 23:29:25 | × | sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 256 seconds) |
| 23:30:58 | → | aaronv joins (~aaronv@user/aaronv) |
| 23:34:48 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 23:41:01 | × | madeleine-sydney quits (~madeleine@c-71-229-185-228.hsd1.co.comcast.net) (Remote host closed the connection) |
| 23:42:10 | × | alexherbo2 quits (~alexherbo@2a02-8440-3216-58a7-4198-eabe-8a40-71c0.rev.sfr.net) (Remote host closed the connection) |
| 23:55:06 | → | OscarZ joins (~oscarz@mobile-access-5d6ab7-137.dhcp.inet.fi) |
| 23:55:16 | × | pavonia quits (~user@user/siracusa) (Read error: Connection reset by peer) |
| 23:57:52 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 23:59:01 | → | pavonia joins (~user@user/siracusa) |
All times are in UTC on 2024-06-29.