2024/07/13

2024-07-13 00:11:35 +0200ryck(~ryck@user/ryck) (Remote host closed the connection)
2024-07-13 00:14:49 +0200 <geekosaur> Leary: haskellbridge (heisenbridge) replaces backticks with double quotes
2024-07-13 00:16:04 +0200 <geekosaur> @hashirama:hashi.sbs, `additionalKeysP` can't be used at the top level, it should be appended to your existing `additionalKeysP`
2024-07-13 00:16:04 +0200 <lambdabot> Unknown command, try @list
2024-07-13 00:16:49 +0200 <geekosaur> you're applying an operator to your xmonad config record, so it needs a config record
2024-07-13 00:17:22 +0200 <geekosaur> you might do better going through the wikibook to learn how Haskell works at least partially
2024-07-13 00:17:29 +0200 <geekosaur> @where wikibook
2024-07-13 00:17:30 +0200 <lambdabot> http://en.wikibooks.org/wiki/Haskell
2024-07-13 01:30:10 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: yes, i was reading a bit
2024-07-13 01:31:19 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: i'll move that snippet of code to other place then, it seems that it cant be before the Config definition, right?
2024-07-13 01:32:49 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: i was watching a video about PF, and it scared me a bit
2024-07-13 01:32:49 +0200 <haskellbridge> ... long message truncated: https://kf8nh.com/_matrix/media/v3/download/kf8nh.com/yiukShyIwqxQtwsVvAaoLBXe (3 lines)
2024-07-13 01:42:01 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> i also saw this:
2024-07-13 01:42:01 +0200 <haskellbridge> "additionalKeysP can only be used as part of the configuration function, not as a standalone declaration."
2024-07-13 01:42:04 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> now it makes sense
2024-07-13 01:49:52 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> oh god, it was just the damn indentation problem!
2024-07-13 01:49:52 +0200 <haskellbridge> lol....
2024-07-13 01:55:58 +0200 <geekosaur> yeh, I had it indented for a reason (but the indentation matched my config and might be wrong for others)
2024-07-13 01:56:45 +0200 <geekosaur> https://github.com/geekosaur/xmonad.hs/blob/hilfy-2023/xmonad.hs#L140-L279
2024-07-13 02:00:45 +0200 <geekosaur> also: IO does take some brain rewiring… but lazy evaluation will really break your brain until you get used to it
2024-07-13 02:01:52 +0200 <geekosaur> > [1..]
2024-07-13 02:01:53 +0200 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,...
2024-07-13 02:03:29 +0200 <geekosaur> ^ lazy evaluation is what makes this work, not special-casing by the bot. you can think of it as evaluation turning a crank until it gets a value, and stopping turning the crank when it no longer needs values (in this case, because lambdabot only prints output to a certain size and truncates)
2024-07-13 02:04:54 +0200 <geekosaur> (you can't use the bot from matrix, because heisenbridge only puppets the matrix side, so everything you send has a prefix on the IRC side)
2024-07-13 02:08:26 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: oh, this is just like a set in mathematics
2024-07-13 02:08:34 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> this is the set of all integers
2024-07-13 02:08:55 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: this is cool, might save a lot of work
2024-07-13 02:09:19 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: i assumeed haskell didnt had indentation because of the brackets
2024-07-13 02:09:46 +0200 <geekosaur> indentation/"layout" is how we normally do things. it is possible to use brackets to override, but we usually don't
2024-07-13 02:09:49 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> btw, the code did compiled, but i didnt understood the key convention
2024-07-13 02:10:00 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> C-M-1 copies to the first workspace?
2024-07-13 02:10:23 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> i tried pressing it, but it does nothing at all
2024-07-13 02:10:32 +0200 <geekosaur> the brackets you see in xmonad, though, aren't about indentation: they're record update syntax `record {field1 = newvalue, field2 = newvalue2, …}`
2024-07-13 02:10:54 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: so it's different from the most languages huh...
2024-07-13 02:12:18 +0200 <geekosaur> your configuration usually starts from `def` (the default value for `XConfig`), then replaces field values using record update syntax, then applies other modifications with e.g. `additionalKeysP :: XConfig -> [(String,X ())] -> XConfig`
2024-07-13 02:12:58 +0200 <geekosaur> then we use combinators to apply other things (ex. https://github.com/geekosaur/xmonad.hs/blob/hilfy-2023/xmonad.hs#L140-L141)
2024-07-13 02:13:44 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> i was reading about what $ represents, and it's basically the "eval" of haskell (comparing it to lisp)
2024-07-13 02:13:48 +0200 <geekosaur> the keybinds list is usually long enough that we prefer it to come after the main config instead of before it
2024-07-13 02:13:55 +0200 <geekosaur> well, no
2024-07-13 02:14:19 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: isnt?
2024-07-13 02:14:19 +0200 <haskellbridge> ... long message truncated: https://kf8nh.com/_matrix/media/v3/download/kf8nh.com/MArPkTCdXAGCdRKoVxYdoXgs (3 lines)
2024-07-13 02:14:23 +0200 <geekosaur> `f $ x` is the same as `f x`, but the precedence of `$` is very low so it kinda acts like backwards parentheses
2024-07-13 02:14:39 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: oh
2024-07-13 02:15:04 +0200 <geekosaur> we also sometimes use it when we want application to be visible as an operator (thus, usually an operator secction)
2024-07-13 02:15:56 +0200 <geekosaur> > map ($ x) [sin,cos]
2024-07-13 02:15:57 +0200 <lambdabot> [sin x,cos x]
2024-07-13 02:16:22 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> maybe the keybinding has no effect because the way that im declaring the workspaces is wrong
2024-07-13 02:16:25 +0200 <geekosaur> (that's also showing off th simple-reflect package)
2024-07-13 02:16:37 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> https://paste.tomsmeding.com/4EWuKRFT
2024-07-13 02:17:04 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: apply x into each element of the list, right?
2024-07-13 02:17:12 +0200 <geekosaur> also, lisp's "apply" applies a function to parameters specified as a list. There's no good way to do that in Haskell
2024-07-13 02:17:55 +0200 <geekosaur> especially if the parameters have different types, because all elements of a Haskell list must have the same type
2024-07-13 02:18:04 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: haskell requires a different way of thinking then
2024-07-13 02:18:14 +0200 <geekosaur> yes
2024-07-13 02:19:10 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> i wanted to ask something , i dont know if it's off topic , but it's haskell related
2024-07-13 02:19:28 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> if haskell is a PF language, then if you "eval" something today, you wont get a different result in the future
2024-07-13 02:19:46 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> thus, is it safe to assume that the programs we made today, will basically live on forever?
2024-07-13 02:20:05 +0200 <geekosaur> well, no, because other things change
2024-07-13 02:20:20 +0200 <geekosaur> the world inside the program only changes when in IO
2024-07-13 02:20:36 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> ik, but we can control what gets in
2024-07-13 02:20:51 +0200 <geekosaur> running a previously compiled program may change because e.g. the running kernel doesn't support the system calls it makes any more
2024-07-13 02:21:23 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: hmmmm, that'd take a few decades to reach this point
2024-07-13 02:22:08 +0200 <geekosaur> and trying to rebuild it may fail because the language has changed in the meantime (we're kinda poor at backward compatibility, sadly) and trying to use an older compiler may fail (I tried to install ghc 7.10 the other day and it SIGILLed on me)
2024-07-13 02:22:50 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> oh
2024-07-13 02:22:52 +0200 <geekosaur> it was built for an older Ubuntu release; I'm not sure what they changed to cause that
2024-07-13 02:36:14 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: this is what i was missing:
2024-07-13 02:36:14 +0200 <haskellbridge> https://github.com/geekosaur/xmonad.hs/blob/44b4c3678dbe3da159c1f88b9ea28df0e7ff36fc/xmonad.hs#L144
2024-07-13 02:38:10 +0200 <geekosaur> yes
2024-07-13 02:38:34 +0200 <geekosaur> I bound it separately so I could use it from multiple places (notably, from that keybinding)
2024-07-13 02:42:15 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> weird, you didnt imported the stackset
2024-07-13 02:43:12 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> here it gives a ambiguity error tho
2024-07-13 02:43:12 +0200 <haskellbridge> https://paste.tomsmeding.com/s3OHE4ag
2024-07-13 02:49:22 +0200 <geekosaur> imported here https://github.com/geekosaur/xmonad.hs/blob/hilfy-2023/xmonad.hs#L46
2024-07-13 02:50:20 +0200 <geekosaur> I think I don't get the ambiguity error because I imported it qualified, so the unqualified name always means the one imported from `XMonad`
2024-07-13 02:50:49 +0200 <geekosaur> you really want to import `XMonad.StackSet` qualified, because it clashes with not only that but a bunch of things from `Prelude` which is implicitly imported
2024-07-13 02:58:22 +0200 <geekosaur> collisions if you import it unqualified: workspaces, member, delete (I think), filter, modify, modify' (the latter two with MonadState from mtl or transformers)
2024-07-13 02:59:32 +0200 <geekosaur> by convention we always import XMonad.StackSet qualified as W, so code snippets using functions from it generally work for everyone
2024-07-13 03:48:52 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: i did like this:
2024-07-13 03:48:52 +0200 <haskellbridge> import qualified XMonad.StackSet as W
2024-07-13 03:48:59 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: yes
2024-07-13 03:49:45 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> that's a really weird error then, i dont know why it says it's ambiguous
2024-07-13 03:50:19 +0200 <geekosaur> can you pastebin your entire xmonad.hs?
2024-07-13 03:50:25 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> yes
2024-07-13 03:50:46 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> https://paste.tomsmeding.com/yTgJ5Am0
2024-07-13 03:53:21 +0200 <geekosaur> you are importing XMonad.StackSet three times: once on line 28 (limited to RationalRect), once on line 39 unqualified (this is the one the error message is referencing), once on line 48 qualified
2024-07-13 03:55:29 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> so i should import it once and import all from it?
2024-07-13 03:55:44 +0200 <geekosaur> it makes sense to keep the first, just remove the second
2024-07-13 03:56:12 +0200 <geekosaur> although you could look for your uses of RationalRect and qualify them with W, then you could get rid of the first one as well
2024-07-13 03:56:17 +0200 <geekosaur> that's up to you
2024-07-13 03:57:16 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> i did this, kept the first
2024-07-13 03:57:16 +0200 <haskellbridge> but still it throws the same error, of a ambiguous reference
2024-07-13 03:57:29 +0200 <geekosaur> you removed line 39?
2024-07-13 03:58:15 +0200 <geekosaur> oh, you're also importing unqualified on line 9 "import XMonad.StackSet as W -- float purposes"
2024-07-13 03:58:25 +0200 <geekosaur> remove that too
2024-07-13 03:58:48 +0200 <geekosaur> it ws being shadowed by the import on line 39 and became active when you removed that
2024-07-13 04:00:04 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> alright, so i removed all , and now im left with the qualified one
2024-07-13 04:00:05 +0200ml|(~ml|@user/ml/x-5298235) (Ping timeout: 240 seconds)
2024-07-13 04:00:32 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> ooohhh!!! it works now!
2024-07-13 04:00:50 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> thanks you very much
2024-07-13 04:13:54 +0200ml|(~ml|@user/ml/x-5298235)
2024-07-13 04:28:31 +0200td_(~td@i53870910.versanet.de) (Ping timeout: 260 seconds)
2024-07-13 04:30:11 +0200td_(~td@i5387091C.versanet.de)
2024-07-13 04:43:52 +0200terrorjack(~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat)
2024-07-13 04:47:58 +0200terrorjack(~terrorjac@2a01:4f8:c17:87f8::)
2024-07-13 10:35:12 +0200ash3en(~ash3en@2a01:c22:9183:5200:c03d:8904:4cd7:fab0)
2024-07-13 10:37:52 +0200ash3en(~ash3en@2a01:c22:9183:5200:c03d:8904:4cd7:fab0) (Remote host closed the connection)
2024-07-13 10:46:04 +0200Solitary(~Solitary@user/solitary) (Quit: All work and no play makes Jack a dull boy.)
2024-07-13 11:32:29 +0200Solitary(~Solitary@user/solitary)
2024-07-13 11:34:33 +0200ash3en(~ash3en@2a01:c22:9183:5200:c03d:8904:4cd7:fab0)
2024-07-13 11:38:14 +0200tremon(~tremon@83.80.159.219)
2024-07-13 12:13:01 +0200hightower2(~hightower@213.186.15.36) (Read error: Connection reset by peer)
2024-07-13 13:39:02 +0200burp(~quassel@hedgewars/sysadmin/burp) (Server closed connection)
2024-07-13 13:39:12 +0200burp(~quassel@hedgewars/sysadmin/burp)
2024-07-13 13:57:38 +0200Aminautf(~Aminautf@167.172.225.175) (Server closed connection)
2024-07-13 13:57:52 +0200Aminautf(~Aminautf@167.172.225.175)
2024-07-13 14:28:35 +0200ash3en(~ash3en@2a01:c22:9183:5200:c03d:8904:4cd7:fab0) (Ping timeout: 256 seconds)
2024-07-13 14:29:22 +0200hiecaq(~hiecaq@user/hiecaq)
2024-07-13 14:41:45 +0200hiecaq(~hiecaq@user/hiecaq) (Remote host closed the connection)
2024-07-13 14:44:10 +0200hiecaq(~hiecaq@user/hiecaq)
2024-07-13 15:13:35 +0200RMSBach(~guygastin@137.184.131.156) (Server closed connection)
2024-07-13 15:14:26 +0200RMSBach(~guygastin@137.184.131.156)
2024-07-13 16:43:46 +0200ash3en(~ash3en@2a01:c23:9461:f701:9ec8:8856:9bf9:672)
2024-07-13 16:50:15 +0200ash3en(~ash3en@2a01:c23:9461:f701:9ec8:8856:9bf9:672) (Ping timeout: 256 seconds)
2024-07-13 16:52:46 +0200ash3en(~ash3en@2a01:c23:8dbe:7b00:c358:807f:b77e:de14)
2024-07-13 17:06:41 +0200ash3en(~ash3en@2a01:c23:8dbe:7b00:c358:807f:b77e:de14) (Ping timeout: 256 seconds)
2024-07-13 17:17:09 +0200ash3en(~ash3en@2a01:c23:8886:7700:a039:baee:74cf:6b33)
2024-07-13 19:03:15 +0200catman(~catman@user/catman) (Ping timeout: 256 seconds)
2024-07-13 20:06:46 +0200ash3en(~ash3en@2a01:c23:8886:7700:a039:baee:74cf:6b33) (Remote host closed the connection)
2024-07-13 20:18:31 +0200ash3en(~ash3en@2a01:c23:8886:7700:a039:baee:74cf:6b33)
2024-07-13 20:18:56 +0200ash3en(~ash3en@2a01:c23:8886:7700:a039:baee:74cf:6b33) (Remote host closed the connection)
2024-07-13 20:25:32 +0200ash3en(~ash3en@2a01:c23:8886:7700:a039:baee:74cf:6b33)
2024-07-13 20:29:13 +0200ash3en(~ash3en@2a01:c23:8886:7700:a039:baee:74cf:6b33) (Remote host closed the connection)
2024-07-13 20:41:47 +0200ash3en(~ash3en@2a01:c23:8886:7700:a039:baee:74cf:6b33)
2024-07-13 21:15:11 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> what can be considered "basic haskell" ?
2024-07-13 21:15:11 +0200 <haskellbridge> and is it enough for dealing with xmonad?
2024-07-13 21:16:13 +0200 <geekosaur> it will be good enough for your `xmonad.hs`, possibly not good enough for reading internal source
2024-07-13 21:17:49 +0200 <geekosaur> if you are using the wikibook I pointed you to earlier, the first two sections of the Beginner's Track should be enough
2024-07-13 21:19:43 +0200 <geekosaur> if you want to understand what the various components are doing, you'll want to finish the beginner's track and the beginning of "Fun with Types" in the Advanced Track
2024-07-13 21:20:11 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: thank you, will do some notes on that
2024-07-13 21:20:21 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: that too
2024-07-13 21:20:33 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> i saw a bit of the "ducking type" of haskell
2024-07-13 21:20:33 +0200 <geekosaur> but we deliberately try to keep what users need to configure their xmonad.hs simple
2024-07-13 21:21:05 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> geekosaur: yeah, i've noticed that xmonad indeed has a high-level of abstraction, i really appreciate that
2024-07-13 21:21:45 +0200 <geekosaur> which means some complexity in the implementation in order to expose easy-to-use interfaces
2024-07-13 21:22:52 +0200 <haskellbridge> <柱間 (@hashirama:hashi.sbs)> btw you've mentioned yesterday that some programs in haskell wont work after a few years, but most of the old extensions included in xmonad-contrib are quite old and still work
2024-07-13 21:26:40 +0200 <geekosaur> we've patched them up as needed when the compiler changes enough to break them, plus we discard or replace things that break too much (cf. https://github.com/xmonad/xmonad-contrib/issues/793)
2024-07-13 21:29:02 +0200 <geekosaur> _most_ of the compiler changes either don't affect us (e.g. changes to `Monad` and `Num`'s prerequisites) or are easily fixed (recently spacing was made more consistent, which required some tweaking but not much because the changes cvodified what was already considered a best practice)
2024-07-13 21:31:17 +0200mekeor(~user@2001:a61:24fd:e001:35e:e281:1be5:12cd)
2024-07-13 22:16:39 +0200ash3en(~ash3en@2a01:c23:8886:7700:a039:baee:74cf:6b33) (Ping timeout: 256 seconds)
2024-07-13 23:17:16 +0200ash3en(~ash3en@193.32.248.188)
2024-07-13 23:24:56 +0200Deadm0th(~mikoshi@user/Deadm0th) (Server closed connection)
2024-07-13 23:25:19 +0200Deadm0th(~mikoshi@83.168.107.192)
2024-07-13 23:25:20 +0200Deadm0th(~mikoshi@83.168.107.192) (Changing host)
2024-07-13 23:25:20 +0200Deadm0th(~mikoshi@user/Deadm0th)
2024-07-13 23:28:56 +0200ash3en(~ash3en@193.32.248.188) (Remote host closed the connection)
2024-07-13 23:29:15 +0200ash3en(~ash3en@193.32.248.188)
2024-07-13 23:33:11 +0200ash3en(~ash3en@193.32.248.188) (Remote host closed the connection)
2024-07-13 23:54:12 +0200catman(~catman@user/catman)