2026/06/19

Newest at the top

2026-06-19 09:59:30 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds)
2026-06-19 09:50:30 +0000danza(~danza@user/danza) danza
2026-06-19 09:42:04 +0000puke(~puke@user/puke) (Read error: Connection reset by peer)
2026-06-19 09:37:36 +0000puke(~puke@user/puke) puke
2026-06-19 09:37:21 +0000puke(~puke@user/puke) (Read error: Connection reset by peer)
2026-06-19 09:34:10 +0000 <probie> +1 for calling <*> "ap"
2026-06-19 09:32:39 +0000 <Rembane> It's like the aliens in Mars Attacks!
2026-06-19 09:29:33 +0000 <int-e> I love English. :)
2026-06-19 09:29:29 +0000 <int-e> or pronounceable
2026-06-19 09:29:07 +0000 <int-e> It's `ap` for Applicative, and `ap` is pronouncible.
2026-06-19 09:28:24 +0000 <fp1> Applicate?
2026-06-19 09:27:51 +0000 <Rembane> fp1: I say "fancy star", but there must be a better name out there somewhere
2026-06-19 09:22:07 +0000 <fp1> How does one say <*> ? Sequential apply? apply?
2026-06-19 09:17:58 +0000 <int-e> mauke: lol, (@Int `id` 2) would not be confusing at all ;)
2026-06-19 09:13:40 +0000acidjnk(~acidjnk@p200300d6e700e516c0b200d7530e938a.dip0.t-ipconnect.de) acidjnk
2026-06-19 09:13:25 +0000acidjnk_new(~acidjnk@p200300d6e700e516c0b200d7530e938a.dip0.t-ipconnect.de)
2026-06-19 09:10:10 +0000tromp(~textual@2001:1c00:340e:2700:ed09:73b3:83dd:1e97)
2026-06-19 09:07:08 +0000 <fp1> I see
2026-06-19 09:06:28 +0000 <merijn> fp1: That said, the compiler used to build everything has to support all extensions of your transitive dependencies
2026-06-19 09:06:06 +0000 <merijn> fp1: To answer your extension question: Libraries are compiled independently, so enabling extension X in a package will **only** enable it in that package
2026-06-19 09:04:22 +0000 <yahb2> False
2026-06-19 09:04:22 +0000 <jaror> % (==) @Int 1 2
2026-06-19 09:04:08 +0000 <yahb2> <interactive>:51:2: error: [GHC-58481] parse error on input ‘@’
2026-06-19 09:04:08 +0000 <mauke> % (@Int == 1) 2
2026-06-19 09:02:47 +0000 <yahb2> "42"
2026-06-19 09:02:46 +0000 <mauke> % show @Int 42
2026-06-19 09:02:42 +0000 <yahb2> "42.0"
2026-06-19 09:02:42 +0000 <mauke> % show @Double 42
2026-06-19 08:53:06 +0000emilym(~Thunderbi@user/emilym) emilym
2026-06-19 08:49:33 +0000 <yahb2> id :: forall a. a -> a
2026-06-19 08:49:33 +0000 <int-e> % :t id
2026-06-19 08:49:31 +0000 <yahb2> <no output>
2026-06-19 08:49:31 +0000 <int-e> % :set -fprint-explicit-foralls
2026-06-19 08:48:50 +0000 <int-e> (you can read the `forall` as a type lambda)
2026-06-19 08:48:31 +0000 <int-e> fp1: The full type of id is id :: forall a. a -> a; the @ supplies a type to use as `a`.
2026-06-19 08:47:30 +0000 <yahb2> id :: Int -> Int :: Int -> Int
2026-06-19 08:47:30 +0000 <int-e> % :t id :: Int -> Int
2026-06-19 08:47:24 +0000 <yahb2> id @Int :: Int -> Int
2026-06-19 08:47:24 +0000 <int-e> % :t id @Int
2026-06-19 08:46:30 +0000 <int-e> (I don't see search engines finding this from just Haskell and `@`)
2026-06-19 08:46:26 +0000 <fp1> what's the difference from :: ?
2026-06-19 08:46:16 +0000tromp(~textual@2001:1c00:340e:2700:ed09:73b3:83dd:1e97) (Quit: My iMac has gone to sleep. ZZZzzz…)
2026-06-19 08:45:57 +0000 <int-e> Oh, and the '@' is syntax... you have to know that it's a type application
2026-06-19 08:45:56 +0000 <[exa]> as in, the @ is a special syntax from the extension and you probably won't hoogle it
2026-06-19 08:45:44 +0000 <fp1> I see
2026-06-19 08:45:36 +0000 <fp1> I also tried just @
2026-06-19 08:45:36 +0000 <[exa]> fp1: the `@` is a type application, and [] is a normal type
2026-06-19 08:45:32 +0000 <yahb2> type List :: * -> * ; data List a = [] | a : [a] ; -- Defined in ‘GHC.Internal.Types’ ; instance Monoid [a] -- Defined in ‘GHC.Internal.Base’ ; instance Foldable [] -- Defined in ‘GHC.Internal.D...
2026-06-19 08:45:31 +0000 <int-e> % :i []
2026-06-19 08:45:25 +0000 <[exa]> anyway yeah some libraries just ask "hey simply enable OverloadedString to make the code look digestible"