Logs: freenode/#haskell
| 2020-11-02 14:33:26 | <dminuoso> | merijn: Question, do you ever use OverloadedStrings? |
| 2020-11-02 14:33:29 | <dminuoso> | say for text |
| 2020-11-02 14:33:41 | <dminuoso> | (I know you can use T.pack, but lets face it, who does it) |
| 2020-11-02 14:33:55 | <geekosaur> | OerloadedStrings is not something where use internally forces use externally |
| 2020-11-02 14:34:04 | <dminuoso> | Ah |
| 2020-11-02 14:34:06 | <merijn> | I don't really like it, but yes |
| 2020-11-02 14:34:07 | <geekosaur> | it's a convenience externally |
| 2020-11-02 14:35:30 | hackage | prolude 0.0.0.5 - ITProTV's custom prelude https://hackage.haskell.org/package/prolude-0.0.0.5 (saramuse) |
| 2020-11-02 14:35:43 | × | bliminse quits (~bliminse@host109-156-197-211.range109-156.btcentralplus.com) (Ping timeout: 265 seconds) |
| 2020-11-02 14:36:27 | → | bliminse joins (~bliminse@host109-156-197-211.range109-156.btcentralplus.com) |
| 2020-11-02 14:36:59 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds) |
| 2020-11-02 14:39:11 | → | Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 2020-11-02 14:39:30 | hackage | primitive-unlifted 1.0.0.0 - Primitive GHC types with unlifted types inside https://hackage.haskell.org/package/primitive-unlifted-1.0.0.0 (andrewthad) |
| 2020-11-02 14:39:33 | × | sam___ quits (~sam@187.164.185.81.rev.sfr.net) (Quit: Lost terminal) |
| 2020-11-02 14:41:30 | hackage | persistent 2.10.5.3 - Type-safe, multi-backend data serialization. https://hackage.haskell.org/package/persistent-2.10.5.3 (parsonsmatt) |
| 2020-11-02 14:43:14 | → | LKoen_ joins (~LKoen@79.160.9.109.rev.sfr.net) |
| 2020-11-02 14:44:31 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 2020-11-02 14:45:32 | × | LKoen quits (~LKoen@79.160.9.109.rev.sfr.net) (Ping timeout: 260 seconds) |
| 2020-11-02 14:47:04 | <bqv> | dminuoso: I used to |
| 2020-11-02 14:47:14 | <bqv> | I used to avoid every and all extensions |
| 2020-11-02 14:47:24 | <bqv> | That meant a lot of pack |
| 2020-11-02 14:47:30 | × | geekosaur quits (ac3a8c5f@172.58.140.95) (Remote host closed the connection) |
| 2020-11-02 14:47:31 | <bqv> | And a lot of unpack |
| 2020-11-02 14:48:02 | × | borne quits (~fritjof@200116b864ec3c00c8b76624f4b75a13.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 2020-11-02 14:48:05 | <bqv> | Sometimes in that order... |
| 2020-11-02 14:48:41 | <dminuoso> | bqv: What about packages that impose FlexibleContexts/FlexibleInstances on you? |
| 2020-11-02 14:48:53 | <dminuoso> | Especially since 8.10 it's getting increasingly harder to avoid extensions |
| 2020-11-02 14:49:07 | <dminuoso> | (The change itself is welcome, but the impact could be undesirable) |
| 2020-11-02 14:49:11 | <bqv> | Never had the pleasure of one back then |
| 2020-11-02 14:49:15 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds) |
| 2020-11-02 14:49:54 | <bqv> | Nowadays of course, my haskell files come with lists of extensions like I'm ordering á la carte |
| 2020-11-02 14:50:11 | <bqv> | If I can't have none, not much point being skiddish |
| 2020-11-02 14:50:24 | × | chaosmasttter quits (~chaosmast@p200300c4a72dee01a86cafb086ba766e.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 2020-11-02 14:50:41 | × | alx741 quits (~alx741@186.178.110.178) (Ping timeout: 268 seconds) |
| 2020-11-02 14:51:05 | <bqv> | I would care about portable haskell, but ghc has a pretty unholy monopoly thats really not going anywhere anyway |
| 2020-11-02 14:52:24 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 2020-11-02 14:56:44 | → | ensyde joins (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
| 2020-11-02 14:56:54 | × | idhugo quits (~idhugo@80-62-116-101-mobile.dk.customer.tdc.net) (Ping timeout: 258 seconds) |
| 2020-11-02 14:58:48 | → | Gurkenglas__ joins (~Gurkengla@unaffiliated/gurkenglas) |
| 2020-11-02 14:59:30 | hackage | wai-log 0.3.0.0 - A logging middleware for WAI applications https://hackage.haskell.org/package/wai-log-0.3.0.0 (jonathanjouty_scrive) |
| 2020-11-02 15:00:01 | × | notmyname quits (~notmyname@84.39.116.180) () |
| 2020-11-02 15:00:34 | × | nkly quits (~nkly@ip5b40d080.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 2020-11-02 15:01:27 | × | ensyde quits (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds) |
| 2020-11-02 15:01:49 | × | toorevitimirp quits (~tooreviti@117.182.183.132) (Remote host closed the connection) |
| 2020-11-02 15:02:28 | × | hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Read error: Connection reset by peer) |
| 2020-11-02 15:04:11 | → | PacoV joins (2d535a95@gateway/web/cgi-irc/kiwiirc.com/ip.45.83.90.149) |
| 2020-11-02 15:04:46 | <PacoV> | Hi there. |
| 2020-11-02 15:04:57 | → | alx741 joins (~alx741@186.178.110.193) |
| 2020-11-02 15:05:20 | <yushyin> | Hi PacoV |
| 2020-11-02 15:05:42 | <PacoV> | I've multiple functions of type "a -> mb" and a list of "[a]". |
| 2020-11-02 15:06:06 | <PacoV> | At the moment I do "mapM_ function list" for each function. |
| 2020-11-02 15:06:34 | <PacoV> | Is there a way to call every function with the list as arguments (and discard the result)? |
| 2020-11-02 15:07:42 | <dminuoso> | PacoV: That's still traverse_/mapM_ |
| 2020-11-02 15:08:01 | <dminuoso> | traverse ($ xs) [f, g, h] |
| 2020-11-02 15:08:04 | <dminuoso> | traverse_ ($ xs) [f, g, h] |
| 2020-11-02 15:08:43 | <dminuoso> | % traverse_ ($ "foo") [putStr, putStr, putStr] |
| 2020-11-02 15:08:43 | <yahb> | dminuoso: foofoofoo |
| 2020-11-02 15:08:45 | × | sveit quits (~sveit@2001:19f0:ac01:247:5400:ff:fe5c:689f) (Quit: Bye) |
| 2020-11-02 15:08:49 | <PacoV> | Ok, I'll have a look at traverse. |
| 2020-11-02 15:08:56 | <merijn> | dminuoso: That's just a single item, though, not a list of items |
| 2020-11-02 15:09:00 | <dminuoso> | PacoV: traverse/traverse_ are just mapM/mapM_ |
| 2020-11-02 15:09:13 | <PacoV> | Ho, so, not enough. |
| 2020-11-02 15:09:16 | → | Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net) |
| 2020-11-02 15:09:17 | <merijn> | :t \fs as -> mapM_ (sequence fs) as |
| 2020-11-02 15:09:18 | <lambdabot> | (Monad m, Traversable m, Foldable t) => m (a -> b) -> t a -> m () |
| 2020-11-02 15:09:22 | <dminuoso> | merijn: huh? |
| 2020-11-02 15:09:22 | <merijn> | boom |
| 2020-11-02 15:09:29 | → | texasmynsted joins (~texasmyns@212.102.45.115) |
| 2020-11-02 15:09:33 | <merijn> | dminuoso: He wants to apply a list of functions to a list of values |
| 2020-11-02 15:09:52 | <dminuoso> | Guess there's two ways to read this.. |
| 2020-11-02 15:10:21 | <merijn> | % mapM_ (sequence [print, print]) [1..5] |
| 2020-11-02 15:10:22 | <yahb> | merijn: ; <interactive>:331:1: error:; * Could not deduce: Item (m (a0 -> b0)) ~ (a1 -> IO ()); from the context: (Monad m, Traversable m, Show a, IsList (m (a2 -> b)), IsList (t a2), Num (Item (t a2)), Enum (Item (t a2)), Foldable t, Item (m (a2 -> b)) ~ (a -> IO ())); bound by the inferred type for `it':; forall (m :: * -> *) a a2 b (t :: * -> *). (Monad m, Traversable m, |
| 2020-11-02 15:10:58 | <merijn> | ugh, how do I reset yahb? |
| 2020-11-02 15:11:10 | <dminuoso> | It's ghci |
| 2020-11-02 15:11:11 | → | sveit joins (~sveit@45.77.0.246) |
| 2020-11-02 15:11:12 | <dminuoso> | So :q |
| 2020-11-02 15:11:16 | <merijn> | % :q |
| 2020-11-02 15:11:16 | <yahb> | merijn: |
| 2020-11-02 15:11:18 | <merijn> | % mapM_ (sequence [print, print]) [1..5] |
| 2020-11-02 15:11:20 | <yahb> | merijn: [(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),()] |
| 2020-11-02 15:11:37 | <merijn> | that's not right.. |
| 2020-11-02 15:12:00 | <dminuoso> | well.. |
| 2020-11-02 15:12:05 | <merijn> | :t sequence [print, print] |
| 2020-11-02 15:12:07 | <lambdabot> | Show a => a -> [IO ()] |
| 2020-11-02 15:12:13 | → | borne joins (~fritjof@200116b864ec3c00c8b76624f4b75a13.dip.versatel-1u1.de) |
| 2020-11-02 15:12:14 | <merijn> | ah |
| 2020-11-02 15:12:15 | <dminuoso> | this is just ap.. |
| 2020-11-02 15:12:35 | <merijn> | % mapM_ (sequence_ [print, print]) [1..5] |
| 2020-11-02 15:12:35 | <yahb> | merijn: ; <interactive>:2:8: error:; * Couldn't match type `()' with `m b0'; Expected type: a0 -> m b0; Actual type: a0 -> (); * In the first argument of `mapM_', namely `(sequence_ [print, print])'; In the expression: mapM_ (sequence_ [print, print]) [1 .. 5]; In an equation for `it': it = mapM_ (sequence_ [print, print]) [1 .. 5]; * Relevant bindings include it :: m () (bou |
| 2020-11-02 15:12:49 | <dminuoso> | % sequence ([print, print] <$> [1...5]) |
| 2020-11-02 15:12:49 | <yahb> | dminuoso: ; <interactive>:3:11: error:; * Couldn't match expected type `Over p0 f0 s0 t0 a1 b0 -> m a' with actual type `[a0 -> IO ()]'; * In the first argument of `(<$>)', namely `[print, print]'; In the first argument of `sequence', namely `([print, print] <$> [1 ... 5])'; In the expression: sequence ([print, print] <$> [1 ... 5]); * Relevant bindings include it :: m [a] (bound at <inter |
| 2020-11-02 15:12:50 | <PacoV> | It looks just about what I need. |
| 2020-11-02 15:12:50 | <merijn> | ok, I give up on making it work :p |
| 2020-11-02 15:13:06 | <dminuoso> | % sequence ([print, print] <*> [1...5]) |
| 2020-11-02 15:13:06 | <yahb> | dminuoso: ; <interactive>:4:12: error:; * No instance for (Show (Over p0 f0 s0 t0 a0 b0)) arising from a use of `print'; (maybe you haven't applied a function to enough arguments?); * In the expression: print; In the first argument of `(<*>)', namely `[print, print]'; In the first argument of `sequence', namely `([print, print] <*> [1 ... 5])'; <interactive>:4:31: error:; * No insta |
| 2020-11-02 15:13:13 | <PacoV> | Thanks! |
| 2020-11-02 15:13:15 | <dminuoso> | huh |
| 2020-11-02 15:13:21 | <dminuoso> | % sequence ([print, print] <*> [1...5] :: [Int]) |
| 2020-11-02 15:13:21 | <yahb> | dminuoso: ; <interactive>:5:11: error:; * Couldn't match type `IO ()' with `Int'; Expected type: [Int]; Actual type: [IO ()]; * In the first argument of `sequence', namely `([print, print] <*> [1 ... 5] :: [Int])'; In the expression: sequence ([print, print] <*> [1 ... 5] :: [Int]); In an equation for `it': it = sequence ([print, print] <*> [1 ... 5] :: [Int]); <interactive>:5:11: |
| 2020-11-02 15:13:26 | <dminuoso> | *shrugs* |
All times are in UTC.