Logs on 2020-12-29 (freenode/#haskell)
| 00:00:00 | → | matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
| 00:00:53 | <glguy> | ij, the +1 causes your scale-1 case to wrap around to 0 |
| 00:01:00 | <glguy> | and your 0 case to go to 1 |
| 00:01:18 | <glguy> | 0 and 1 are the two results that are less than 2 |
| 00:01:55 | <ij> | ah, right it doesn't accumulate and screw with next cycles |
| 00:02:06 | <glguy> | ij, is that for advent of code day 20? |
| 00:02:30 | <ij> | no, :) pipe maze |
| 00:03:02 | <ij> | 2d ascii pipe characters, all of which have to be connected |
| 00:03:19 | <madjestic> | ski: yeah, there must be a way to translate that to massiv sytax :-> |
| 00:03:26 | <ski> | (presumably `scale' is nonnegative ..) |
| 00:03:57 | <glguy> | ski, a negative-width checkerboard sounds cool |
| 00:04:02 | <ski> | > 5 `mod''` 0 |
| 00:04:05 | <lambdabot> | 5 |
| 00:04:16 | → | christo joins (~chris@81.96.113.213) |
| 00:04:29 | <ph88_> | is it possible to pattern match head and tail on Vector ? |
| 00:05:00 | <hpc> | do view patterns count? :P |
| 00:05:02 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 00:05:06 | <glguy> | ph88_, You could write such a pattern synonym, but I don't think one is in the library |
| 00:05:44 | → | christo joins (~chris@81.96.113.213) |
| 00:06:07 | <ph88_> | what could be the reason it's not in the library ? |
| 00:06:37 | × | matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in) |
| 00:06:49 | → | matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
| 00:08:25 | × | sgibber2018 quits (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Quit: WeeChat 3.0) |
| 00:09:14 | × | ransom quits (~c4264035@8.47.12.52) (Read error: Connection reset by peer) |
| 00:09:23 | × | matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit) |
| 00:09:44 | → | matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
| 00:10:04 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 260 seconds) |
| 00:11:44 | → | christo joins (~chris@81.96.113.213) |
| 00:12:45 | <ij> | ski, naturally :) |
| 00:12:49 | <ph88_> | lol |
| 00:14:26 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 00:16:03 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:16:55 | × | madjestic quits (~madjestic@86-88-72-244.fixed.kpn.net) (Remote host closed the connection) |
| 00:17:15 | <fuzzypixelz> | dsal: I did it! https://bpa.st/BC4Q |
| 00:17:50 | <fuzzypixelz> | dsal: there was this function `iterateMaybeM` in monad-extras which did exactly what I needed |
| 00:18:42 | <fuzzypixelz> | dsal: it stops when the monad evaluates to a Nothing, but there is aslo `iterateM` which can be given a `a -> Bool` |
| 00:18:59 | <fuzzypixelz> | https://hackage.haskell.org/package/monad-extras-0.6.0/docs/Control-Monad-Extra.html#v:iterateMaybeM |
| 00:19:01 | <ski> | % unConsV :: V.Vector a -> Maybe (a,V.Vector a); unConsV v | V.null v = Nothing | otherwise = Just (V.head v,V.tail v); {-# COMPLETE NilV,ConsV #-}; pattern NilV :: V.Vector a; pattern NilV <- (unConsV -> Nothing); pattern ConsV :: a -> V.Vector a -> V.Vector a; pattern ConsV x xs <- (unConsV -> Just (x,xs)) |
| 00:19:01 | <yahb> | ski: |
| 00:19:41 | → | jle` joins (~mstksg@cpe-23-240-75-236.socal.res.rr.com) |
| 00:19:41 | × | jle` quits (~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host) |
| 00:19:41 | → | jle` joins (~mstksg@unaffiliated/mstksg) |
| 00:19:45 | <fuzzypixelz> | dsal: Although the code works (it's Haskell of course it works) It lacks style |
| 00:20:00 | <fuzzypixelz> | I mixed all sorts of syntax |
| 00:20:33 | <ski> | % case V.generate 4 (^2) of NilV -> V.empty; ConsV x xs -> fmap (x,) xs |
| 00:20:33 | <yahb> | ski: [(0,1),(0,4),(0,9)] |
| 00:21:08 | <ski> | ph88_ : something like that ^, perhaps ? |
| 00:21:09 | <fuzzypixelz> | But the State monad is very cool |
| 00:22:18 | → | christo joins (~chris@81.96.113.213) |
| 00:23:30 | <Kronic> | sounds like you solved a problem that was annoying you for a while, nice fuzzypixelz |
| 00:24:12 | <ski> | (i guess, for completeness, one should also add `where NilV = V.empty' and `where ConsV = V.cons') |
| 00:25:14 | → | davr0s joins (~davrs@host81-147-72-1.range81-147.btcentralplus.com) |
| 00:25:45 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye) |
| 00:25:55 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew) |
| 00:27:19 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 00:27:48 | × | matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in) |
| 00:28:06 | → | matryoshka joins (~matryoshk@184.75.223.227) |
| 00:29:22 | <fuzzypixelz> | question: is it a "good" idea to simulate stateful code with monads rather than trying to do it the "pure functional way"? |
| 00:30:13 | × | davr0s quits (~davrs@host81-147-72-1.range81-147.btcentralplus.com) (Ping timeout: 264 seconds) |
| 00:30:31 | × | jmchael quits (~jmchael@81.174.205.210) (Ping timeout: 265 seconds) |
| 00:31:20 | <Kronic> | That question is probably too broad to answer with anything other than "it depends on the specific case" |
| 00:31:38 | × | Entertainment quits (~entertain@104.246.132.210) (Ping timeout: 260 seconds) |
| 00:31:58 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 265 seconds) |
| 00:34:40 | → | sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) |
| 00:36:05 | → | ArsenArsen joins (~Arsen@fsf/member/ArsenArsen) |
| 00:38:39 | × | alx741 quits (~alx741@181.196.68.114) (Ping timeout: 260 seconds) |
| 00:40:10 | <ph88_> | looks good ski ! would it be possible to overload : to be able to write (x:xs) ?? |
| 00:40:28 | <ski> | fuzzypixelz : brackets in `(Exec ns n) <- get' are redundant. you can replace the latter two of the three following `let's (in that `do') by three spaces, each. i would probably replace `instruc = instrucs !! n; op = getOp instruc; arg = getArg instruc' (semis option, if you use layout) with `Instruc op arg = instrucs !! n'. you could put that `case' with definitions of `m' in a `(m,nextGlobal) = case op of |
| 00:40:34 | <ski> | ...' and define `nextExec' separately |
| 00:40:37 | <ski> | ph88_ : no |
| 00:40:51 | <ph88_> | ski, why is that not possible ? |
| 00:40:52 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:f14e:f414:9b65:b890:9d87) |
| 00:40:57 | <ski> | you could invent some infix operator, though |
| 00:41:45 | × | dnlkrgr quits (~dnlkrgr@HSI-KBW-46-223-1-192.hsi.kabel-badenwuerttemberg.de) (Quit: WeeChat 2.9) |
| 00:41:50 | <ph88_> | is (x:xs) build into ghc ? |
| 00:42:27 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 260 seconds) |
| 00:43:17 | → | revprez_anzio joins (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) |
| 00:43:22 | <ski> | % unConsV :: V.Vector a -> Maybe (a,V.Vector a); unConsV v | V.null v = Nothing | otherwise = Just (V.head v,V.tail v); {-# COMPLETE NilV,(:@) #-}; pattern NilV :: V.Vector a; pattern NilV <- (unConsV -> Nothing) where {NilV = V.empty}; infixr 5 :@; pattern (:@) :: a -> V.Vector a -> V.Vector a; pattern x :@ xs <- (unConsV -> Just (x,xs)) where {(:@) = V.cons} |
| 00:43:23 | <yahb> | ski: |
| 00:43:50 | <ski> | @let data Foo = Int : Bool |
| 00:43:50 | <lambdabot> | Parse failed: Parse error: : |
| 00:43:52 | <ski> | % data Foo = Int : Bool |
| 00:43:52 | <yahb> | ski: ; <interactive>:68:12: error: Illegal binding of built-in syntax: : |
| 00:44:09 | <ski> | ph88_ : yes, it's a special case in the syntax |
| 00:44:28 | <ski> | % case V.generate 4 (^2) of NilV -> V.empty; x :@ xs -> fmap (x,) xs |
| 00:44:28 | <yahb> | ski: [(0,1),(0,4),(0,9)] |
| 00:44:58 | <ski> | > 2 :@ 3 :@ 5 :@ 7 :@ NilV |
| 00:45:00 | <lambdabot> | error: |
| 00:45:00 | <lambdabot> | • Data constructor not in scope: (:@) :: t4 -> t5 -> t2 |
| 00:45:00 | <lambdabot> | • Perhaps you meant one of these: |
| 00:45:04 | × | cheater quits (~user@unaffiliated/cheater) (Ping timeout: 260 seconds) |
| 00:45:09 | <ski> | oh, right, that was yahb |
| 00:45:12 | <ski> | % 2 :@ 3 :@ 5 :@ 7 :@ NilV |
| 00:45:13 | <yahb> | ski: [2,3,5,7] |
| 00:46:07 | <ph88_> | cool =) |
| 00:46:17 | → | sfvm joins (~sfvm@37.228.215.77) |
| 00:46:18 | ski | thinks `instance Show a => Show (Vector a)' is broken, ought to respond with `Data.Vector.fromList [2,3,5,7]' or somesuch, there .. |
| 00:46:25 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 264 seconds) |
| 00:47:01 | × | Anthaas quits (~Anthaas@unaffiliated/anthaas) (Ping timeout: 264 seconds) |
| 00:47:02 | <Feuermagier> | how do i append duplicate free to a list? |
| 00:47:05 | <ski> | > listArray (-3,3) [i ^ 2 | i <- range (-3,3)] |
| 00:47:09 | <lambdabot> | array (-3,3) [(-3,9),(-2,4),(-1,1),(0,0),(1,1),(2,4),(3,9)] |
| 00:47:12 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 00:48:09 | <ski> | Feuermagier : are you sure you want to use a list ? |
| 00:48:29 | <Feuermagier> | hmm, a hashset would probably be wiser |
| 00:48:39 | <Feuermagier> | valid point. thx |
| 00:48:45 | → | Anthaas joins (~Anthaas@unaffiliated/anthaas) |
| 00:48:53 | <ski> | what should the result of appending `3' to `[2,3,5,2]' be ? |
| 00:49:00 | hackage | pcre2 1.1.3 - Regular expressions via the PCRE2 C library (included) https://hackage.haskell.org/package/pcre2-1.1.3 (SShuck) |
| 00:49:05 | <Feuermagier> | [2,3,5,2] |
| 00:49:08 | <Feuermagier> | order doesnt matter |
| 00:49:14 | <Feuermagier> | so it really is a set |
| 00:49:24 | <ski> | yea |
| 00:49:25 | <Feuermagier> | but i haven't worked with sets yet |
| 00:49:32 | <Feuermagier> | (at least not in haskell) |
| 00:49:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 00:51:06 | → | alx741 joins (~alx741@181.196.68.142) |
| 00:51:48 | <Feuermagier> | do i need to add a build dependancy for those? |
| 00:52:38 | <monochrom> | Yes. |
| 00:53:35 | <Feuermagier> | ah, int set and containers. thx! |
| 00:53:43 | <Feuermagier> | what are qualified imports? |
| 00:53:45 | <monochrom> | containers comes with GHC, and has Data.Set, binary search tree. Although it comes with GHC, it is still not base, in cabal you have to explicitly say "depends: containers" |
| 00:54:10 | <monochrom> | For hashing-based things, unordered-containers. |
| 00:56:06 | → | sparsity joins (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) |
| 00:56:40 | × | Darwin226 quits (5fa87473@95.168.116.115) (Remote host closed the connection) |
| 00:57:30 | hackage | cherry-core-alpha 0.3.0.0 - The core library for Cherry Haskell. https://hackage.haskell.org/package/cherry-core-alpha-0.3.0.0 (terezasokol) |
| 00:57:50 | × | amerigo quits (uid331857@gateway/web/irccloud.com/x-qydxjmmxyizatjlm) (Quit: Connection closed for inactivity) |
| 00:58:52 | → | cheater joins (~user@unaffiliated/cheater) |
| 00:58:56 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds) |
| 00:59:20 | <Feuermagier> | how do I define a Set as argument? |
| 00:59:30 | <Feuermagier> | et (Int, Int) -> Something |
| 00:59:34 | <Feuermagier> | S* |
| 01:00:24 | <Feuermagier> | oh, i guess Í shouldnt have imported as qualified |
| 01:01:08 | <Feuermagier> | oh god now every filter, map and size is broken |
| 01:01:11 | <Feuermagier> | ._. |
| 01:01:32 | × | usr25 quits (~usr25@unaffiliated/usr25) (Quit: Leaving) |
| 01:01:44 | <Feuermagier> | shouldn't the compiler be able to deduce those? |
| 01:01:50 | <monochrom> | You probably haven't known the trick of having two import lines for the "same" module. |
| 01:02:17 | <monochrom> | import Data.Set (Set); import qualified Data.Set as S |
| 01:03:03 | <monochrom> | So you can just say "Set" for the type, no need to say "S.Set", but you don't have a name clash with filter etc. |
| 01:03:27 | × | sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 260 seconds) |
| 01:04:21 | <Feuermagier> | so. what should I import if I want to use Set, but don't want conflicts with List ? |
| 01:04:50 | <monochrom> | <monochrom> import Data.Set (Set); import qualified Data.Set as S |
| 01:05:05 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 01:05:06 | <Feuermagier> | so, what if i want to use sizeOfSet ? |
| 01:05:16 | <monochrom> | S.size |
| 01:05:22 | <Feuermagier> | ah, ok. thx! |
| 01:05:23 | <monochrom> | There is no "sizeOfSet". |
| 01:05:27 | <ski> | @let ximap :: (Ix i,Ix j,Monoid e) => (j,j) -> (i -> j) -> (Array i e -> Array j e); ximap ix f arr = accumArray (<>) mempty ix (map (first f) (assocs arr)) |
| 01:05:28 | <lambdabot> | Defined. |
| 01:05:30 | <ski> | @undefine |
| 01:05:30 | <ski> | @let ximap :: (Ix i,Ix j,Monoid e) => (j,j) -> (i -> j) -> (Array i e -> Array j e); ximap ix f arr = accumArray (<>) mempty ix (map (first f) (assocs arr)) |
| 01:05:30 | <lambdabot> | Undefined. |
| 01:05:31 | <lambdabot> | Defined. |
| 01:05:38 | <ski> | > map getSum (elems (ximap (0,3) (listArray (0,4) [0,3,1,0,1] !) (listArray (0,4) (map Sum [3,4,5,6,7])))) |
| 01:05:41 | <lambdabot> | [9,12,0,4] |
| 01:07:01 | <Feuermagier> | can I take stuff out of a set in (x : xs) style? |
| 01:07:07 | <ski> | no |
| 01:07:13 | <Feuermagier> | ._. |
| 01:07:24 | <Feuermagier> | how do i iterate through elegantly then? |
| 01:07:31 | <ski> | @hoogle Set a -> Maybe (a,Set a) |
| 01:07:32 | <lambdabot> | Data.Set maxView :: Set a -> Maybe (a, Set a) |
| 01:07:32 | <lambdabot> | Data.Set minView :: Set a -> Maybe (a, Set a) |
| 01:07:32 | <lambdabot> | Data.Set.Internal maxView :: Set a -> Maybe (a, Set a) |
| 01:07:35 | <ski> | is one way |
| 01:07:52 | <dsal> | Feuermagier: what are you trying to do? |
| 01:08:00 | <ski> | @hoogle Set a -> [a] |
| 01:08:01 | <lambdabot> | Data.Set elems :: Set a -> [a] |
| 01:08:02 | <lambdabot> | Data.Set toList :: Set a -> [a] |
| 01:08:02 | <lambdabot> | Data.Set toAscList :: Set a -> [a] |
| 01:08:07 | <dsal> | Sets are foldable. |
| 01:08:16 | <monochrom> | Use minView or maxView. Or even better, use Foldable or Traversable methods. |
| 01:08:51 | <monochrom> | Err oops, not Foldable or Traversable methods. |
| 01:09:18 | × | Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 256 seconds) |
| 01:09:23 | <monochrom> | But it has S.map, S.foldr, S.foldl, etc. |
| 01:09:26 | <Feuermagier> | dsal, oh, that's a bit complicated :D - essentially something like a for loop that maps elements from one list into another list duplicate free. (The elements aren't copied tho. they are used in a function that generates new elements) |
| 01:09:30 | <monochrom> | See the doc for the full list. |
| 01:09:41 | <dsal> | Feuermagier: Set.map ? |
| 01:10:40 | <ski> | @type S.map |
| 01:10:41 | <lambdabot> | Ord b => (a -> b) -> S.Set a -> S.Set b |
| 01:11:11 | <Feuermagier> | interesting |
| 01:11:15 | <Feuermagier> | that might work |
| 01:11:36 | <dsal> | If you're always working in Sets, "duplicates" isn't a thing. If you're thinking "iterate" or "for loop" or whatever, it might be helpful to think in terms of higher level folds or maps or whatever. |
| 01:11:45 | <ski> | > S.map (\case 0 -> 0; 1 -> 3; 2 -> 1; 3 -> 0; 4 -> 1) (S.fromList [0,1,2,3,4]) |
| 01:11:47 | <lambdabot> | fromList [0,1,3] |
| 01:13:31 | <Feuermagier> | I'll try it. |
| 01:13:41 | <Feuermagier> | See you in a bit for more questions :D |
| 01:14:05 | × | hiroaki_ quits (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
| 01:15:21 | <ski> | % :set -XOverloadedLists |
| 01:15:21 | <yahb> | ski: |
| 01:15:28 | <ski> | % case [0,1,2] :: V.Vector Int of [x,y,z] -> (x,y,z) |
| 01:15:28 | <yahb> | ski: (0,1,2) |
| 01:15:39 | <ski> | % case [0,1,2] :: V.Vector Int of x:xs -> (x,xs) |
| 01:15:39 | <yahb> | ski: ; <interactive>:78:33: error:; * Couldn't match expected type `V.Vector Int' with actual type `[a]'; * In the pattern: x : xs; In a case alternative: x : xs -> (x, xs); In the expression: case [0, 1, 2] :: V.Vector Int of { x : xs -> (x, xs) }; * Relevant bindings include it :: (a, [a]) (bound at <interactive>:78:1) |
| 01:15:44 | <Feuermagier> | how do I pattern match for an empty set? |
| 01:16:22 | <ski> | > S.null (S.fromList [2,3,5,7]) |
| 01:16:25 | <lambdabot> | False |
| 01:16:43 | <Feuermagier> | oh, just S. null, not S.Set.null |
| 01:17:30 | <ski> | > case S.fromList [2,3,5,7] of (S.maxView -> Just (x,xs)) -> (x,xs) |
| 01:17:31 | <Feuermagier> | hmm, " Qualified name in binding position: S.null" |
| 01:17:32 | <lambdabot> | (7,fromList [2,3,5]) |
| 01:17:52 | <ski> | you don't match on `null', it's a predicate/function |
| 01:18:48 | <ski> | > case S.fromList [2,3,5,7] of s@(S.null -> False) -> S.findMax s |
| 01:18:50 | <lambdabot> | 7 |
| 01:20:05 | <Feuermagier> | how would I match on an empty Set then? |
| 01:20:29 | <koz_> | Feuermagier: Either case-match on size, or use 'if S.null mySet then blah else foo' |
| 01:22:18 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 01:23:32 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:23:38 | <dsal> | > null S.empty |
| 01:23:40 | <lambdabot> | True |
| 01:24:44 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 01:24:48 | <dsal> | > let f s | null s = "iz null"; f _ = "iz not null" in f <$> [S.empty, S.singleton 1] |
| 01:24:50 | <lambdabot> | ["iz null","iz not null"] |
| 01:25:39 | <Feuermagier> | if i have a match case and guards, and the guards are non-exhaustive, will it fall through to other matches? |
| 01:25:51 | <dsal> | ^ lambdabot |
| 01:25:55 | <xsperry> | Feuermagier, there's also S.toList |
| 01:26:02 | <dsal> | :t toList |
| 01:26:04 | <lambdabot> | error: |
| 01:26:04 | <lambdabot> | Ambiguous occurrence ‘toList’ |
| 01:26:04 | <lambdabot> | It could refer to |
| 01:26:31 | <xsperry> | :t S.toList |
| 01:26:32 | <lambdabot> | S.Set a -> [a] |
| 01:26:33 | <dsal> | Set is foldable. You can do all the folds. But the questions suggest there's an easier way to do stuff. e.g., S.map, various folds, etc... |
| 01:27:10 | <dsal> | I just mean you don't need S.toList. Set is foldable. |
| 01:27:25 | <Feuermagier> | I think I'll need a foldright, as I also need to change the state of a gameboard along the way |
| 01:27:31 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Remote host closed the connection) |
| 01:27:54 | <xsperry> | might be an option if he's manually recursing over the elements, in some minority cases manual recursion makes for a cleaner code |
| 01:28:18 | → | hiroaki_ joins (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) |
| 01:29:07 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 01:29:17 | <dsal> | :t foldM |
| 01:29:18 | <lambdabot> | (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b |
| 01:29:25 | <ski> | % pattern EmptyS :: S.Set a; pattern EmptyS <- (S.null -> True) where {EmptyS = S.empty} |
| 01:29:25 | <yahb> | ski: |
| 01:29:30 | <ski> | % {-# COMPLETE EmptyS,AddMin #-}; pattern AddMin :: Ord a => a -> S.Set a -> S.Set a; pattern AddMin min set <- (S.minView -> Just (min,set)) where AddMin min set | min `S.notMember` set = S.insert min set |
| 01:29:30 | <yahb> | ski: |
| 01:29:37 | <ski> | % {-# COMPLETE EmptyS,AddMax #-}; pattern AddMax :: Ord a => a -> S.Set a -> S.Set a; pattern AddMax max set <- (S.maxView -> Just (max,set)) where AddMax max set | max `S.notMember` set = S.insert max set |
| 01:29:37 | <yahb> | ski: |
| 01:29:44 | <ski> | % case S.fromList [2,3,5,7] of AddMax x xs -> (x,xs) |
| 01:29:45 | <yahb> | ski: (7,fromList [2,3,5]) |
| 01:30:09 | <ski> | % AddMax 7 [2,3,5] |
| 01:30:09 | <yahb> | ski: fromList [2,3,5,7] |
| 01:30:14 | <ski> | % AddMax 7 [2,3,5,7] |
| 01:30:15 | <yahb> | ski: fromList *** Exception: Ghci44:1:1: Non-exhaustive patterns in function $bAddMax |
| 01:30:16 | <ski> | % AddMax 7 [2,3,5,11] |
| 01:30:17 | <yahb> | ski: fromList [2,3,5,7,11] |
| 01:30:20 | → | ezzieyguywuf joins (~Unknown@unaffiliated/ezzieyguywuf) |
| 01:30:31 | <ski> | oh, oops :) |
| 01:31:52 | → | Fischmiep joins (~Fischmiep@46.59.219.2) |
| 01:32:15 | <ski> | % {-# COMPLETE EmptyS,AddMin #-}; pattern AddMin :: Ord a => a -> S.Set a -> S.Set a; pattern AddMin min set <- (S.minView -> Just (min,set)) where AddMin min set | min < S.findMin set = S.insert min set |
| 01:32:15 | <yahb> | ski: |
| 01:32:19 | <ski> | % {-# COMPLETE EmptyS,AddMax #-}; pattern AddMax :: Ord a => a -> S.Set a -> S.Set a; pattern AddMax max set <- (S.maxView -> Just (max,set)) where AddMax max set | max > S.findMax set = S.insert max set |
| 01:32:19 | <yahb> | ski: |
| 01:32:25 | <ski> | % AddMax 7 [2,3,5] |
| 01:32:25 | <yahb> | ski: fromList [2,3,5,7] |
| 01:32:29 | <ski> | % AddMax 7 [2,3,5,7] |
| 01:32:29 | <yahb> | ski: fromList *** Exception: Ghci53:1:1: Non-exhaustive patterns in function $bAddMax |
| 01:32:30 | hackage | pcre2 1.1.3.1 - Regular expressions via the PCRE2 C library (included) https://hackage.haskell.org/package/pcre2-1.1.3.1 (SShuck) |
| 01:32:32 | <ski> | % AddMax 7 [2,3,5,11] |
| 01:32:33 | <yahb> | ski: fromList *** Exception: Ghci53:1:1: Non-exhaustive patterns in function $bAddMax |
| 01:33:48 | <ski> | Feuermagier : if you really want to match on empty set, and perhaps alternatively also on min/max & remainder of set, you could use pattern synonyms like ^ |
| 01:34:02 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) |
| 01:34:11 | <Feuermagier> | ski, i simply used a guard |
| 01:34:19 | → | loller_ joins (uid358106@gateway/web/irccloud.com/x-aepjfnaneozrdleq) |
| 01:34:35 | <Feuermagier> | I'm about to write one absolutely massive foldr |
| 01:34:45 | <ski> | (Feuermagier : "if i have a match case and guards, and the guards are non-exhaustive, will it fall through to other matches?" -- yes, as dsal showed) |
| 01:34:58 | × | Fischmie1 quits (~Fischmiep@84.46.41.145) (Ping timeout: 256 seconds) |
| 01:35:29 | <ski> | Feuermagier : what's your fold computing ? |
| 01:36:38 | → | notzmv` joins (~user@191.205.12.9) |
| 01:39:23 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
| 01:39:24 | <Feuermagier> | ski, I perform moves in a game. A stone is placed. As a result of that up to 5 fields change (in that step). All fields changed could be in an unstable state and initiate further changes using the same function as the initial stone-place. My input is a Set of Fields in (potentially) unstable state. I go through the set, update the board along the way. If the update results in more changed fields i'll have to repeat (call recursively with new board) |
| 01:40:16 | × | columbarius quits (~columbari@87.123.198.157) (Ping timeout: 246 seconds) |
| 01:40:43 | × | sphalerite quits (~sphalerit@NixOS/user/lheckemann) (Ping timeout: 258 seconds) |
| 01:40:51 | <Feuermagier> | So the input is one (potentially unstable) coordinate for a field (where I just placed a stone) + a board. And the output is a new board. |
| 01:41:51 | <ski> | hmm .. should there be a `divideSet :: Ord a => Int -> Set a -> [Set a]' where `divideSet k set' divides `set' into a partition of `k' parts, all elements of an earlier set in the list less than all elements of a later set, and if the set has `n' elements, then the first `mod n k' sets have `div n k + 1' elements, and the remaining `n - mod n k' sets have `div n k' elements ? |
| 01:42:20 | <Feuermagier> | probably...not |
| 01:42:26 | <ski> | (well, i guess it's not quite a partition, since the parts would be allowed to be empty ..) |
| 01:42:32 | × | notzmv` quits (~user@191.205.12.9) (Ping timeout: 260 seconds) |
| 01:42:42 | → | columbarius joins (~columbari@i5E86B356.versanet.de) |
| 01:43:06 | <Feuermagier> | think of it in this way: I have to update the entire board "breadth first" - because every move in "one level" can generate more unstable ones |
| 01:43:22 | → | notzmv``` joins (~user@191.205.12.9) |
| 01:43:55 | <Feuermagier> | ski, actually, if you are intereted, just take a look here: https://virusga.me/ |
| 01:44:10 | <Feuermagier> | watch a replay of one of the longer games |
| 01:46:52 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 01:47:03 | × | Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:1e7:f4eb:ff4e:8154) (Read error: Connection reset by peer) |
| 01:47:35 | <Feuermagier> | When does it make sense to use a mutable datastructure in haskell (and how hard to use are they) - because I think I might have a case here |
| 01:50:20 | <ski> | hm, i'm still not sure what you're using the set for |
| 01:50:38 | <Feuermagier> | ski, the set is the accumulation of volatile fields |
| 01:50:41 | <ski> | (i'm not sure what you mean by "field" .. is that a square on the board ?) |
| 01:50:46 | <Feuermagier> | yes, squares |
| 01:51:02 | ski | was first thinking of record fields |
| 01:51:10 | × | notzmv``` quits (~user@191.205.12.9) (Ping timeout: 256 seconds) |
| 01:52:17 | → | notzmv joins (~user@unaffiliated/zmv) |
| 01:52:18 | <Feuermagier> | ski, atm my gameboard is a [[Int]], so I should probably use an indexable array, or even a mutable one, right? |
| 01:54:04 | → | sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) |
| 01:54:49 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 264 seconds) |
| 01:55:57 | × | mrchampion quits (~mrchampio@38.18.109.23) (Read error: Connection reset by peer) |
| 01:56:39 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:56:44 | <ski> | i'm wondering if you could define the new game state "in one go" from the old one, in some nifty way |
| 01:57:41 | <Feuermagier> | ski, there definitly need to be steps. currently i'm thinking of one step as one recursive call. |
| 01:59:25 | × | sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 240 seconds) |
| 01:59:27 | <Feuermagier> | essentially a while (there are unstable squares) loop |
| 01:59:56 | → | mrchampion joins (~mrchampio@38.18.109.23) |
| 02:06:10 | × | GuerrillaMonkey quits (~Jeanne-Ka@static-198-54-134-46.cust.tzulo.com) (Ping timeout: 246 seconds) |
| 02:08:10 | → | isovector joins (~isovector@172.103.216.166) |
| 02:08:48 | <isovector> | is there any good way of debugging vector "index of out bounds?" |
| 02:09:02 | <isovector> | i'm in pure code and have a super tight loop that is doing vector lookups |
| 02:11:02 | × | sm2n quits (~sm2n@bras-base-hmtnon1497w-grc-43-64-231-95-247.dsl.bell.ca) (Remote host closed the connection) |
| 02:11:43 | × | cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds) |
| 02:11:44 | <Axman6> | Debug.Trace can be very helpful for that, I've written plenty of code that looks like foo a b n | trace ("some note",a,b,n) False = undefined | otherwise = ... |
| 02:11:46 | <Axman6> | :t trace |
| 02:11:48 | <lambdabot> | error: Variable not in scope: trace |
| 02:11:54 | <Axman6> | %:t trace |
| 02:11:55 | <Uniaika> | isovector: I would just print the index and vector size at each iteration? You're doing safe-yet-throwy Vector lookups, right? |
| 02:11:56 | × | plutoniix quits (~q@node-ufv.pool-125-24.dynamic.totinternet.net) (Quit: Leaving) |
| 02:12:00 | hackage | hledger-lib 1.20.2 - A reusable library providing the core functionality of hledger https://hackage.haskell.org/package/hledger-lib-1.20.2 (SimonMichael) |
| 02:12:37 | <Axman6> | @hoogle trace |
| 02:12:37 | <lambdabot> | Debug.Trace trace :: String -> a -> a |
| 02:12:37 | <lambdabot> | Linear.Matrix trace :: (Trace m, Num a) => m (m a) -> a |
| 02:12:37 | <lambdabot> | Linear.Matrix trace :: (Trace m, Foldable m, Num a) => m (m a) -> a |
| 02:13:01 | <isovector> | Uniaika: it's a really really tight loop. we're talking a few million indices |
| 02:13:24 | <isovector> | in parallel |
| 02:13:36 | <isovector> | trace is just asking for a bad time |
| 02:13:38 | <Uniaika> | :O |
| 02:13:40 | <Uniaika> | okay |
| 02:14:25 | <Axman6> | you cpuld conditionally trace the appropriate values by computing the indices and only printing when they are out of bounds |
| 02:14:33 | <isovector> | i tried `fromJust . V.!?` and sticking HasCallStacks everywhere. sorta helps |
| 02:14:37 | <isovector> | oh that's a good idea |
| 02:14:57 | <Axman6> | but often it's too late at that point to see how you got to the wrong place |
| 02:14:59 | <isovector> | it's amazing how shitty haskell is at this sort of stuff |
| 02:15:19 | → | fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 02:15:56 | → | cantstanya joins (~chatting@gateway/tor-sasl/cantstanya) |
| 02:16:36 | → | toorevitimirp joins (~tooreviti@117.182.181.108) |
| 02:17:18 | <isovector> | can i attach things to the callstack? |
| 02:17:31 | <isovector> | without writing a bunch of dumb wrappers |
| 02:19:22 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Client Quit) |
| 02:20:36 | × | toorevitimirp quits (~tooreviti@117.182.181.108) (Remote host closed the connection) |
| 02:21:43 | → | sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) |
| 02:29:25 | × | notzmv quits (~user@unaffiliated/zmv) (Ping timeout: 240 seconds) |
| 02:29:34 | <ski> | Feuermagier : "I have to update the entire board \"breadth first\"" -- mm, so given the board, and a change-set on some squares, you figure out the new values of those squares (after checking whether any would be unstable, and in that case computing the resulting stable square, plus adjacent changes), collecting the change-set of adjacent squares. then you repeat until the change-set is empty |
| 02:30:39 | → | notzmv joins (~user@unaffiliated/zmv) |
| 02:30:54 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 02:31:24 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 02:31:53 | <Feuermagier> | ski, exactly |
| 02:32:19 | <Feuermagier> | i think it'll be much shorter and more elegant than expected (almost done) |
| 02:32:34 | <Feuermagier> | foldr is magic |
| 02:32:39 | <ski> | possibly you could use `Map (Int,Int) T' or `IntMap (IntMap T)' to represent your board. i think probably `Array (Int,Int) T' is not that suitable here (unless you could figure out some way to compute the full set of changes in one go, without having to generate a new array inbetween) |
| 02:33:28 | <Feuermagier> | i'll worry about performance once it works |
| 02:34:19 | <ski> | i guess one could also handle it one single (unstable to stable square, possibly triggering changes of adjecent squares) change/trickle at a time, rather than the above (change-)set-at-a-time .. but that (latter/above) approach seems nicer to me, for some reason .. |
| 02:34:48 | <Feuermagier> | ski, i'll show you what i'm doing soon |
| 02:35:47 | <ski> | (you could also consider using some mutable array (in `ST s', or `IO'), either with one-at-a-time or set-at-a-time .. but i'm not sure that's that called for) |
| 02:37:49 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Remote host closed the connection) |
| 02:38:06 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) |
| 02:38:07 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
| 02:38:50 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Remote host closed the connection) |
| 02:40:20 | <Feuermagier> | ski, https://pastebin.com/jXmeVriB |
| 02:40:54 | <Feuermagier> | ski, overflow will update the board and return new unsafe squares |
| 02:43:16 | ← | isovector parts (~isovector@172.103.216.166) ("WeeChat 2.9") |
| 02:45:49 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 264 seconds) |
| 02:48:41 | <ski> | Feuermagier : instead of `\pos newBoard -> ..(fst newBoard)..(snd newBoard)..', use `\pos (unstableSoFar,boardSoFar) -> ..unstableSoFar..boardSoFar..'. also use `let (adjacentUnstable,updatedBoard) = overflow ... in ..adjacentUnstable..updatedBoard..' |
| 02:49:00 | <ski> | (rename local variables as you prefer) |
| 02:49:15 | <Feuermagier> | ah, nice suggestion |
| 02:49:50 | × | ph88 quits (~ph88@2a02:8109:9e00:7e5c:8c3f:4fda:4ef5:759f) (Ping timeout: 264 seconds) |
| 02:49:52 | <ski> | the first suggestion is more cosmetic (making it more readable). the second also avoids recomputing that `overflow' call |
| 02:52:10 | <Feuermagier> | where do I place the let? |
| 02:52:22 | mnrmnaugh | is now known as ringzero |
| 02:52:32 | × | xff0x_ quits (~fox@2001:1a81:52f4:bf00:5dee:641f:6949:4e53) (Ping timeout: 260 seconds) |
| 02:53:15 | <ski> | (also, what i was sketching above was not to update the board for each possibly unstable position that you inspect in the change-set, but rather to accumulate/compute a set of updates (in addition to computing the new unstable change-set), and then to apply that set of updates all at once, before looping around (checking if new unstable change-set is empty, otherwise going throught it again, &c. ..)) |
| 02:53:29 | <ski> | Feuermagier : right after the `->' |
| 02:54:08 | → | xff0x_ joins (~fox@2001:1a81:532a:2200:39fa:9b50:744f:71fe) |
| 02:54:56 | <ski> | Feuermagier : or, instead of using a lambda, define `inspectChanged pos (unstableSoFar,boardSoFar) = ...' in a `where'. then you can have a further `where' nested inside that, with `(adjacentUnstable,updatedBoard) = overflow ...' |
| 02:55:11 | <ski> | (passing `inspectChanged' to `foldr') |
| 02:55:13 | × | matryoshka quits (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in) |
| 02:55:27 | → | matryoshka joins (~matryoshk@184.75.223.227) |
| 02:55:31 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds) |
| 02:55:36 | <Feuermagier> | figured the 'let' out, thx! |
| 02:55:57 | <ski> | the `where's might look more readable. you could try both out, and see which you prefer |
| 02:58:59 | → | jedws joins (~jedws@121.209.189.201) |
| 02:59:01 | ringzero | is now known as mnrmnaugh |
| 02:59:17 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) |
| 03:00:03 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:01:33 | × | electricityZZZZ quits (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 03:03:59 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Ping timeout: 272 seconds) |
| 03:05:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 03:06:27 | → | rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-qgjtzfvygbpsyzjy) |
| 03:06:43 | × | theDon quits (~td@94.134.91.184) (Ping timeout: 246 seconds) |
| 03:07:16 | × | puffnfresh quits (~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) (Ping timeout: 272 seconds) |
| 03:08:33 | × | acidjnk_new quits (~acidjnk@p200300d0c704e7909c09b71b3d2bb082.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 03:08:39 | → | theDon joins (~td@muedsl-82-207-238-118.citykom.de) |
| 03:09:05 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 03:09:51 | → | christo joins (~chris@81.96.113.213) |
| 03:13:20 | → | xirhtogal joins (~lagothrix@unaffiliated/lagothrix) |
| 03:13:20 | × | lagothrix quits (~lagothrix@unaffiliated/lagothrix) (Killed (card.freenode.net (Nickname regained by services))) |
| 03:13:20 | xirhtogal | is now known as lagothrix |
| 03:13:22 | × | jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:14:22 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 265 seconds) |
| 03:15:01 | → | CMCDragonkai2 joins (~Thunderbi@124.19.3.250) |
| 03:15:14 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 03:16:44 | → | drbean joins (~drbean@TC210-63-209-95.static.apol.com.tw) |
| 03:17:01 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 03:18:42 | → | knam joins (~knam@d172-218-172-104.bchsia.telus.net) |
| 03:20:50 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) |
| 03:24:12 | × | sparsity quits (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed) |
| 03:24:47 | <ezzieyguywuf> | I dunno who phadej is, but I see that name on all sorts of haskell projects |
| 03:25:28 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Ping timeout: 260 seconds) |
| 03:31:00 | <jle`> | one of the great Olegs of Haskell |
| 03:31:20 | → | drbean_ joins (~drbean@TC210-63-209-52.static.apol.com.tw) |
| 03:32:07 | <ski> | @quote oleg |
| 03:32:07 | <lambdabot> | oleg says: I submit that a type-checker that accepts ill-typed terms, loops and causes segmentation faults is not correct. |
| 03:32:16 | × | drbean quits (~drbean@TC210-63-209-95.static.apol.com.tw) (Ping timeout: 256 seconds) |
| 03:34:37 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:37:05 | → | christo joins (~chris@81.96.113.213) |
| 03:37:46 | → | wei2912 joins (~wei2912@unaffiliated/wei2912) |
| 03:40:55 | ezzieyguywuf | nods |
| 03:41:32 | × | m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 260 seconds) |
| 03:41:49 | <ezzieyguywuf> | i only just pulled my screen closer to look at his github avator. from afar, my brain interpreted as a candy skull á la Día de los Muertos |
| 03:42:17 | ski | . o O ( Simon,Oleg,Edward,.. ) |
| 03:44:17 | <MarcelineVQ> | thor* |
| 03:44:27 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 260 seconds) |
| 03:46:19 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 03:46:35 | <ezzieyguywuf> | do y'all use darcs? |
| 03:46:40 | <ezzieyguywuf> | I've never tried it nor heard of it |
| 03:46:48 | <dsal> | I used to years ago |
| 03:47:01 | <dsal> | It's very friendly |
| 03:47:06 | <ezzieyguywuf> | dsal: why'd you stop? |
| 03:47:47 | <dsal> | hg and then github, I guess. I've used it recently as well |
| 03:48:15 | → | plutoniix joins (~q@184.82.194.56) |
| 03:48:33 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) |
| 03:50:00 | <ezzieyguywuf> | dsal: github, or git? |
| 03:50:15 | <ezzieyguywuf> | as unfamiliar as I am with darcs, I dunno if it is more comparable to the former or the latter |
| 03:50:28 | <dsal> | Probably more github |
| 03:51:09 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 03:51:19 | <ezzieyguywuf> | how can I browse the darcs source online? |
| 03:51:28 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr) |
| 03:51:32 | <ezzieyguywuf> | the hackage page points me to darcs.net |
| 03:52:25 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 03:52:54 | <dsal> | git is probably the fourth dvcs I've spent time in. It captured the section of my brain that models revision control. darcs is quite different |
| 03:53:12 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Ping timeout: 260 seconds) |
| 03:54:35 | <ephemient> | as the instructions on the hackage page say, `darcs get http://darcs.net/` gets the source code |
| 03:54:58 | <ezzieyguywuf> | ephemient: sure, but I was specifically wanting to browse online, I don't presently have darcs installed |
| 03:55:16 | <dsal> | , darcs # :) |
| 03:55:40 | <ezzieyguywuf> | ? |
| 03:55:59 | <ephemient> | there's darcsweb set up on hub.darcs.net |
| 03:56:09 | <dsal> | github.com/shopify/comma |
| 03:56:41 | <ephemient> | but browsing locally would be faster I think |
| 03:56:51 | <ezzieyguywuf> | dsal: hah nice. |
| 03:58:20 | <ezzieyguywuf> | hah, even this isn't too helpful https://hub.darcs.net/darcs , as I don't know what the most recent commit or source is |
| 03:58:41 | <dsal> | ezzieyguywuf: the model is a bit different from what you're used to. |
| 03:58:50 | <ezzieyguywuf> | indeed |
| 03:59:07 | <ezzieyguywuf> | I'm mostly just wanting to find out if they've bumped their quickcheck upperbound yet or not |
| 03:59:44 | <dsal> | Patch chronology is less important than other systems. |
| 04:00:43 | <dsal> | It does mean that merging "unrelated" repositories is natural in a way that's really confusing if you're coming from git. |
| 04:00:58 | × | Wuzzy quits (~Wuzzy@p5790e186.dip0.t-ipconnect.de) (Quit: Wuzzy) |
| 04:01:20 | <dolio> | I think you can merge two completely unrelated git repos. |
| 04:01:47 | <dsal> | You *can*. I've done an 18-way octopus merge before. But it's a lot more natural in darcs. |
| 04:02:46 | <ephemient> | I think Git nowadays warns if you're merging different roots together (but it'll still do it) |
| 04:02:54 | × | sakirious quits (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat) |
| 04:03:49 | <dsal> | In the pre-github days, darcs was really neat for contributing in a non-centralized way. You could git clone from a random URL, make local changes, and then 'darcs send' your changes back. It'd email them. I had a thing that would receive those and apply them if they were signed properly |
| 04:04:06 | → | sakirious joins (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
| 04:04:18 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 04:04:46 | <ezzieyguywuf> | it's a post-github world |
| 04:04:58 | <ephemient> | I remember doing that with SVK, but definitely cleaner in Darcs |
| 04:06:16 | × | edwtjo quits (~edwtjo@fsf/member/edwtjo) (Ping timeout: 240 seconds) |
| 04:06:53 | → | drbean joins (~drbean@TC210-63-209-41.static.apol.com.tw) |
| 04:07:37 | × | drbean_ quits (~drbean@TC210-63-209-52.static.apol.com.tw) (Ping timeout: 246 seconds) |
| 04:08:09 | <dsal> | ezzieyguywuf: It's post-github, but the alternatives are basically just "github-but-not-github." git used to have some email infrastructure that was kind of neat, but by almost every metric, git was worse than darcs when I started using git from darcs. |
| 04:08:57 | × | xff0x_ quits (~fox@2001:1a81:532a:2200:39fa:9b50:744f:71fe) (Ping timeout: 260 seconds) |
| 04:09:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 04:09:24 | → | xff0x_ joins (~fox@2001:1a81:532a:2200:95e9:9dd9:cd9c:c473) |
| 04:09:50 | <ezzieyguywuf> | in here, the >= 2.11 is redundant right? "QuickCheck >= 2.11 && ^>= 2.14" |
| 04:11:29 | <dolio> | No, I don't think so. |
| 04:11:31 | → | knupfer joins (~Thunderbi@87.123.206.165) |
| 04:11:44 | × | Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
| 04:12:05 | × | CMCDragonkai2 quits (~Thunderbi@124.19.3.250) (Ping timeout: 240 seconds) |
| 04:12:37 | <ezzieyguywuf> | if it has to be >= 2.14, then it can't really be 2.11 can it? |
| 04:12:52 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 04:14:03 | <dolio> | Isn't ^>= like <, but can be relaxed? |
| 04:14:54 | <ezzieyguywuf> | dolio: I think per the documentanio, ^>= 2.14 is like '>=2.14 && <2.15' |
| 04:15:26 | <ezzieyguywuf> | or I completely misunderstood the documentation.. |
| 04:16:21 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
| 04:17:32 | <dolio> | Yeah, that does seem to be the case. |
| 04:17:56 | × | rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds) |
| 04:20:18 | × | kderme quits (2eb0d7c7@ppp046176215199.access.hol.gr) (Remote host closed the connection) |
| 04:20:30 | <ezzieyguywuf> | dolio: it seems to be the case that I misunderstood? |
| 04:20:39 | <dolio> | Oh, sorry, no. :) |
| 04:20:57 | <ezzieyguywuf> | lol! |
| 04:21:09 | <dolio> | You read correctly, and the >= 2.11 seems redundant. |
| 04:21:11 | <ezzieyguywuf> | no worries, just trying to make sure I understand |
| 04:21:48 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 04:22:30 | → | christo joins (~chris@81.96.113.213) |
| 04:27:04 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 256 seconds) |
| 04:29:22 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds) |
| 04:30:25 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) |
| 04:31:56 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 04:34:27 | → | sgibber2018 joins (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) |
| 04:34:55 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Remote host closed the connection) |
| 04:35:01 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) |
| 04:35:41 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:36:24 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Remote host closed the connection) |
| 04:36:44 | × | thunderrd quits (~thunderrd@183.182.111.131) (Remote host closed the connection) |
| 04:39:07 | × | matryoshka quits (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in) |
| 04:40:07 | → | matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
| 04:40:57 | × | kupi quits (uid212005@gateway/web/irccloud.com/x-nyttljrtonzbgexf) (Quit: Connection closed for inactivity) |
| 04:41:19 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 04:42:21 | × | concept2 quits (~concept2@unaffiliated/tubo) (Quit: Ping timeout (120 seconds)) |
| 04:42:32 | → | TooDifficult joins (~TooDiffic@139.59.59.230) |
| 04:42:42 | → | concept2 joins (~concept2@unaffiliated/tubo) |
| 04:43:22 | × | ByronJohnson quits (~bairyn@unaffiliated/bob0) (Ping timeout: 260 seconds) |
| 04:43:32 | → | thunderrd joins (~thunderrd@183.182.111.131) |
| 04:44:34 | × | pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 04:47:25 | → | ByronJohnson joins (~bairyn@unaffiliated/bob0) |
| 04:51:25 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 04:56:12 | × | DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Ping timeout: 260 seconds) |
| 04:56:16 | × | ByronJohnson quits (~bairyn@unaffiliated/bob0) (Ping timeout: 240 seconds) |
| 04:56:16 | × | Tene quits (~tene@poipu/supporter/slacker/tene) (Ping timeout: 240 seconds) |
| 04:56:58 | → | Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
| 04:57:59 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 04:58:18 | → | DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
| 04:58:34 | × | Sheilong quits (uid293653@gateway/web/irccloud.com/x-qwjibsljgvydusqt) () |
| 05:01:10 | → | Tene joins (~tene@mail.digitalkingdom.org) |
| 05:01:10 | × | Tene quits (~tene@mail.digitalkingdom.org) (Changing host) |
| 05:01:10 | → | Tene joins (~tene@poipu/supporter/slacker/tene) |
| 05:01:38 | × | Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 256 seconds) |
| 05:02:32 | → | ADG1089__ joins (~aditya@223.235.213.117) |
| 05:07:21 | → | ByronJohnson joins (~bairyn@unaffiliated/bob0) |
| 05:13:28 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:c48f:1a20:b814:adb4) |
| 05:15:37 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:15:56 | × | ByronJohnson quits (~bairyn@unaffiliated/bob0) (Ping timeout: 240 seconds) |
| 05:16:45 | × | Tene quits (~tene@poipu/supporter/slacker/tene) (Ping timeout: 240 seconds) |
| 05:17:27 | × | coppro quits (~coppro@185.204.1.185) (Remote host closed the connection) |
| 05:19:34 | × | thunderrd quits (~thunderrd@183.182.111.131) (Remote host closed the connection) |
| 05:19:53 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:8ef:49b9:dcb7:f65d) |
| 05:24:47 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:8ef:49b9:dcb7:f65d) (Ping timeout: 260 seconds) |
| 05:27:21 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 05:27:49 | × | knam quits (~knam@d172-218-172-104.bchsia.telus.net) (Quit: Konversation terminated!) |
| 05:29:27 | → | Tene joins (~tene@mail.digitalkingdom.org) |
| 05:29:27 | × | Tene quits (~tene@mail.digitalkingdom.org) (Changing host) |
| 05:29:27 | → | Tene joins (~tene@poipu/supporter/slacker/tene) |
| 05:29:28 | → | ByronJohnson joins (~bairyn@unaffiliated/bob0) |
| 05:30:55 | × | shutdown_-h_now quits (~arjan@2001:1c06:2d0b:2312:ac1c:ca8f:6bba:6ac5) (Ping timeout: 272 seconds) |
| 05:34:11 | → | jedws joins (~jedws@121.209.189.201) |
| 05:34:17 | × | jedws quits (~jedws@121.209.189.201) (Client Quit) |
| 05:36:11 | → | jedws joins (~jedws@121.209.189.201) |
| 05:36:29 | → | thunderrd joins (~thunderrd@183.182.111.131) |
| 05:38:17 | → | shutdown_-h_now joins (~arjan@2001:1c06:2d0b:2312:a87e:8f8c:63a3:698b) |
| 05:43:04 | × | thunderrd quits (~thunderrd@183.182.111.131) (Remote host closed the connection) |
| 05:44:55 | → | thunderrd joins (~thunderrd@183.182.111.131) |
| 05:48:59 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) () |
| 05:50:02 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 05:51:47 | × | thunderrd quits (~thunderrd@183.182.111.131) (Remote host closed the connection) |
| 05:53:25 | × | ADG1089__ quits (~aditya@223.235.213.117) (Quit: Konversation terminated!) |
| 05:53:25 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 05:53:41 | → | ADG1089__ joins (~aditya@223.235.213.117) |
| 05:54:18 | → | Tario joins (~Tario@201.192.165.173) |
| 05:57:19 | × | gxt quits (~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection) |
| 05:57:40 | × | jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 05:57:41 | → | gxt joins (~gxt@gateway/tor-sasl/gxt) |
| 06:05:56 | × | ADG1089__ quits (~aditya@223.235.213.117) (Ping timeout: 240 seconds) |
| 06:06:55 | × | sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 265 seconds) |
| 06:12:38 | × | ddellacosta quits (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds) |
| 06:15:32 | × | cheater quits (~user@unaffiliated/cheater) (Ping timeout: 260 seconds) |
| 06:17:29 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:18:33 | × | eacameron quits (uid256985@gateway/web/irccloud.com/x-oyeaqbkzntopnzns) (Quit: Connection closed for inactivity) |
| 06:19:36 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 240 seconds) |
| 06:22:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 06:25:27 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 06:26:16 | × | Anthaas quits (~Anthaas@unaffiliated/anthaas) (Ping timeout: 240 seconds) |
| 06:27:00 | → | Anthaas joins (~Anthaas@unaffiliated/anthaas) |
| 06:31:12 | → | cheater joins (~user@unaffiliated/cheater) |
| 06:32:46 | → | aljce joins (617326cd@97-115-38-205.ptld.qwest.net) |
| 06:34:09 | <aljce> | Does anyone know how to coerce newtypes in accelerate? I have newtype Foo = Foo Word16 and I want to write the function fromWord16 :: Exp Word16 -> Exp Foo |
| 06:35:46 | → | ADG1089__ joins (~aditya@223.235.213.117) |
| 06:40:35 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 06:49:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:51:46 | × | knupfer quits (~Thunderbi@87.123.206.165) (Ping timeout: 246 seconds) |
| 06:59:35 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 07:03:56 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 07:13:07 | <dminuoso> | aljce: Maybe this? bitcast :: (Elt a, Elt b, IsScalar (EltR a), IsScalar (EltR b), BitSizeEq (EltR a) (EltR b)) => Exp a -> Exp b |
| 07:16:05 | × | ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection) |
| 07:16:13 | <dminuoso> | Since the data constructor of Exp is not exposed, you can't pierce that with a coerce. |
| 07:16:34 | → | ADG1089__ joins (~aditya@223.235.213.117) |
| 07:17:17 | <dminuoso> | So just provide an `instance Elt Foo` and it should suffice |
| 07:17:42 | <dminuoso> | (If you use generalized newtype deriving, then it should be a no brainer) |
| 07:23:28 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 07:25:23 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:d44b:5996:fadb:8476) |
| 07:25:52 | → | Franciman joins (~francesco@host-95-250-152-231.retail.telecomitalia.it) |
| 07:27:08 | → | cads joins (~cads@ip-64-72-99-232.lasvegas.net) |
| 07:27:18 | × | ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection) |
| 07:29:51 | → | ADG1089__ joins (~aditya@223.235.213.117) |
| 07:30:12 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:d44b:5996:fadb:8476) (Ping timeout: 260 seconds) |
| 07:30:53 | × | sfvm quits (~sfvm@37.228.215.77) (Remote host closed the connection) |
| 07:31:36 | → | ransom joins (~c4264035@2a09:bac0:72::82f:c34) |
| 07:32:22 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:c8e8:1946:fcf7:4676) |
| 07:32:27 | × | Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
| 07:32:51 | × | ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection) |
| 07:36:44 | × | gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds) |
| 07:37:12 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:c8e8:1946:fcf7:4676) (Ping timeout: 260 seconds) |
| 07:37:39 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 07:38:57 | → | gxt joins (~gxt@gateway/tor-sasl/gxt) |
| 07:39:12 | × | ransom quits (~c4264035@2a09:bac0:72::82f:c34) (Ping timeout: 260 seconds) |
| 07:49:13 | → | ADG1089__ joins (~aditya@171.76.164.4) |
| 07:50:25 | × | ADG1089__ quits (~aditya@171.76.164.4) (Remote host closed the connection) |
| 07:52:43 | × | philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Quit: Lost terminal) |
| 07:52:57 | × | darjeeling_ quits (~darjeelin@122.245.217.190) (Ping timeout: 260 seconds) |
| 07:56:54 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
| 07:57:05 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:7c82:3285:3449:9fb4) |
| 07:57:19 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:04:53 | × | loller_ quits (uid358106@gateway/web/irccloud.com/x-aepjfnaneozrdleq) (Quit: Connection closed for inactivity) |
| 08:05:00 | → | ransom joins (~c4264035@8.47.12.52) |
| 08:05:35 | → | bitmagie joins (~Thunderbi@200116b8064af400cdd108708eb3d2c6.dip.versatel-1u1.de) |
| 08:06:54 | → | thunderrd joins (~thunderrd@183.182.111.131) |
| 08:07:12 | × | bitmagie quits (~Thunderbi@200116b8064af400cdd108708eb3d2c6.dip.versatel-1u1.de) (Client Quit) |
| 08:07:40 | → | darjeeling_ joins (~darjeelin@122.245.217.190) |
| 08:09:22 | × | ransom quits (~c4264035@8.47.12.52) (Ping timeout: 256 seconds) |
| 08:13:48 | → | niko joins (~niko@freenode/staff/ubuntu.member.niko) |
| 08:14:35 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 08:14:58 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:c48f:1a20:b814:adb4) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:16:12 | → | jedws joins (~jedws@121.209.189.201) |
| 08:17:58 | × | sgibber2018 quits (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Quit: WeeChat 3.0) |
| 08:23:10 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 08:24:29 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:8076:48dd:339c:ba44) |
| 08:26:50 | → | guestghc joins (3dded63f@61-222-214-63.HINET-IP.hinet.net) |
| 08:26:59 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Remote host closed the connection) |
| 08:29:26 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:8076:48dd:339c:ba44) (Ping timeout: 264 seconds) |
| 08:32:21 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 08:37:33 | × | cheater quits (~user@unaffiliated/cheater) (Ping timeout: 256 seconds) |
| 08:39:14 | → | cheater joins (~user@unaffiliated/cheater) |
| 08:41:53 | → | ransom joins (~c4264035@8.47.12.52) |
| 08:42:18 | × | sunfreakz- quits (~sunfreakz@51.194.80.91) (Ping timeout: 272 seconds) |
| 08:43:51 | → | toast52 joins (97c0a219@151.192.162.25) |
| 08:44:13 | × | jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:45:17 | → | jedws joins (~jedws@121.209.189.201) |
| 08:45:56 | → | knupfer joins (~Thunderbi@200116b82c7e8f00d8220a72dd894f13.dip.versatel-1u1.de) |
| 08:46:25 | × | ransom quits (~c4264035@8.47.12.52) (Ping timeout: 240 seconds) |
| 08:47:53 | <dminuoso> | Question, I have a higher kinded datatype D parametrized over a tyfam that appears in the fields. Ideally, I want haddock documentation for one particular choice of a tyfam. |
| 08:48:47 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 08:49:31 | <dminuoso> | So say, I have `data D f = D { a1 :: f ...; a2 :: f ...; }`, and I want to have haddock documentation for `D F` (since F is a canonical choice), such that users know clearly what types each field resolve to |
| 08:49:36 | × | jedws quits (~jedws@121.209.189.201) (Ping timeout: 240 seconds) |
| 08:51:00 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 08:53:16 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 08:57:32 | → | sunfreakz joins (~sunfreakz@51.194.80.91) |
| 08:57:49 | × | drbean quits (~drbean@TC210-63-209-41.static.apol.com.tw) (Ping timeout: 264 seconds) |
| 09:00:07 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 09:01:36 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:110c:c1b9:2826:d6c3) |
| 09:03:32 | → | ADG1089__ joins (~aditya@223.235.213.117) |
| 09:04:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 09:06:22 | × | jle` quits (~mstksg@unaffiliated/mstksg) (Ping timeout: 272 seconds) |
| 09:06:27 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:110c:c1b9:2826:d6c3) (Ping timeout: 260 seconds) |
| 09:08:20 | → | wonko7 joins (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) |
| 09:09:26 | × | rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-qgjtzfvygbpsyzjy) (Quit: Connection closed for inactivity) |
| 09:10:40 | → | pera joins (~pera@unaffiliated/pera) |
| 09:13:31 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-pwweyillfwqhggwn) (Quit: Connection closed for inactivity) |
| 09:13:40 | → | michalz joins (~user@185.246.204.81) |
| 09:14:38 | <Kronic> | What is a decent logging framework? Seems like there are a lot of options out there... |
| 09:18:02 | <dminuoso> | Kronic: Depends a bit on what you need exactly. There's roughly two different dimensions. |
| 09:18:41 | <dminuoso> | There's two very similar frameworks that let you parametrize your monad stack over an arbitrary logger with general utilities. monad-logger and katip belong into this. |
| 09:19:28 | <dminuoso> | And then there's frameworks that rather implement a particular way of writing logs, like fast-logger. |
| 09:19:53 | → | jle` joins (~mstksg@unaffiliated/mstksg) |
| 09:19:58 | → | pavonia joins (~user@unaffiliated/siracusa) |
| 09:20:07 | <dminuoso> | They complement each other, for instance monad-logger comes out of the box with some very simplistic fast-logger adapters |
| 09:20:09 | × | Mikagami quits (~MOSCOS@122.54.107.175) (Remote host closed the connection) |
| 09:20:13 | → | ransom joins (~c4264035@2a09:bac0:72::82f:c34) |
| 09:20:45 | → | Mikagami joins (~MOSCOS@122.54.107.175) |
| 09:20:49 | <Kronic> | What would your recommendation be for a newbie working on their first project? |
| 09:23:23 | × | erisco quits (~erisco@104-195-141-253.cpe.teksavvy.com) (Read error: Connection reset by peer) |
| 09:23:31 | → | bitmagie joins (~Thunderbi@200116b8064af400cdd108708eb3d2c6.dip.versatel-1u1.de) |
| 09:24:07 | <dminuoso> | Personally Im fond of monad-logger since it's really simplistic, and with the various run* utilities it fits most simplistic use-cases well eonugh |
| 09:24:20 | <dminuoso> | And it separates the "where/what do I want logged" from "how is the logging carried out" well |
| 09:25:59 | × | StoneToad quits (~StoneToad@104-192-232-50.ppp.storm.ca) (Ping timeout: 260 seconds) |
| 09:26:27 | <Kronic> | That sounds good to me, I was trying out something called co-log and I was getting wrapped up over myself trying to figure it out |
| 09:27:07 | × | ransom quits (~c4264035@2a09:bac0:72::82f:c34) (Ping timeout: 268 seconds) |
| 09:27:07 | → | StoneToad joins (~StoneToad@104-192-232-50.ppp.storm.ca) |
| 09:27:21 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) |
| 09:27:45 | <dminuoso> | There's also hslogger which is a very simplistic low-dependency logging solution. |
| 09:28:10 | <kritzefitz> | dminuoso, The specialization of haddock documentation for specific tyfam instances sounds really useful. If you find something, please let me know. |
| 09:28:37 | <dminuoso> | If you're not comfortable with either mtl-style/transformers, Id say hslogger is much easier to use. |
| 09:31:50 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 264 seconds) |
| 09:33:19 | → | christo joins (~chris@81.96.113.213) |
| 09:35:57 | × | guestghc quits (3dded63f@61-222-214-63.HINET-IP.hinet.net) (Remote host closed the connection) |
| 09:37:05 | → | argento joins (~argent0@168.227.96.51) |
| 09:37:13 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 09:38:08 | × | pera quits (~pera@unaffiliated/pera) (Ping timeout: 265 seconds) |
| 09:41:02 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 09:42:18 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 09:46:38 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:110c:c1b9:2826:d6c3) |
| 09:47:50 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 09:51:38 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:110c:c1b9:2826:d6c3) (Ping timeout: 264 seconds) |
| 09:53:01 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 09:54:12 | <Kronic> | So, a question arising from my use of the monad-logger lib - I have a monad stack that is predefined by a library I'm using, how exactly do I "add" a monad to the stack so that I can log something out ? |
| 09:55:27 | <dminuoso> | Kronic: Mmm, that might not be possible then. Which library are you using? |
| 09:56:04 | <Kronic> | So, I'm using discord-haskell, the particular monad-stack that I have on hand is ReaderT DiscordHandle IO () -- I was looking at monad-logger and seen there is an instance for ReaderT |
| 09:56:21 | <Kronic> | It's just a little hard to discern what I am meant to do to get this right is all |
| 09:56:35 | → | pera joins (~pera@unaffiliated/pera) |
| 09:57:09 | <dminuoso> | Can you point me out in the haddock for discord-haskell where that monad is used? |
| 09:57:12 | × | cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 260 seconds) |
| 09:57:26 | × | wei2912 quits (~wei2912@unaffiliated/wei2912) (Remote host closed the connection) |
| 09:57:56 | <dminuoso> | Oh, nevermind I found it. |
| 09:58:16 | × | Guest26328 quits (sid30093@gateway/web/irccloud.com/x-kgjzhrkziqnooytj) (Changing host) |
| 09:58:16 | → | Guest26328 joins (sid30093@musicbrainz/user/ocharles) |
| 09:58:26 | Guest26328 | is now known as ocharles |
| 09:58:39 | <dminuoso> | Yeah, that doesnt seem to work out of the box. With this little you could just provide your own wrappers. But I guess it requires a bit of competency here. |
| 09:58:59 | <dminuoso> | Perhaps hslogger is a better fit for you then, that certainly will work (you just need to use `liftIO` every time you want to log) |
| 09:59:06 | <dminuoso> | With no extra effort |
| 09:59:58 | <Kronic> | Well, this project I'm writing is purely for my own education on my own accord, so... not sure, what would you recommend, is it worth learning why this won't work right now or is there something more basal I can look at to understand what is going on and how you came to this conclusion? |
| 10:03:44 | <dminuoso> | Kronic: So if you wanted to use any of the primitives here, like `sendCommand :: GatewaySendable -> DiscordHandler () ` they are pinned directly to `ReaderT DiscordHandle IO`. If the library written like `sendCommand :: (MonadReader DiscordHandler m, MonadIO m) => GatewaySendable -> m ()` you could have picked your own monad stack |
| 10:03:58 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 10:04:39 | → | christo joins (~chris@81.96.113.213) |
| 10:05:19 | <dminuoso> | Furthermore, if you look at the definition of `runDiscord` you'll see there is a lot more going on than just unwrapping this ReaderT, so you can't just provide very naive wrappers around all these functions like sendCommand - you'd have to reimplement `runDiscord` for your custom monad stack, but the implementation needs access to stuff that seems not exporter./ |
| 10:06:09 | <dminuoso> | Kronic: Question, do you need to log in the middle of discord interaction, or is it fine to log around it? |
| 10:06:24 | <Kronic> | Logging around it would be acceptable in my mind, I guess |
| 10:06:55 | <dminuoso> | Then you have the option of just running this locally everywhere |
| 10:08:19 | <kritzefitz> | dminuoso, shouldn't it be possible to run the LoggingT on top of the existing transformer stack? |
| 10:08:55 | <kritzefitz> | (and do a lot of `lift`ing` for all non-logging operations) |
| 10:08:56 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 256 seconds) |
| 10:08:58 | <dminuoso> | kritzefitz: Ah, I guess there is *one* way, that works nicely with monad-logger |
| 10:09:01 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:09:13 | <dminuoso> | Let me roughly show you how |
| 10:09:25 | <dminuoso> | (It only works if your monad stack has MonadUnliftIO) |
| 10:10:17 | → | christo joins (~chris@81.96.113.213) |
| 10:10:26 | <dminuoso> | kritzefitz: and just lifting is not enough, you need to be able to unlift too |
| 10:10:35 | <dminuoso> | and closures |
| 10:11:08 | × | bitmagie quits (~Thunderbi@200116b8064af400cdd108708eb3d2c6.dip.versatel-1u1.de) (Quit: bitmagie) |
| 10:11:17 | <dminuoso> | Kronic: You know what, for this, just use hslogger. :p |
| 10:12:27 | <Kronic> | I'll take a loook |
| 10:13:51 | → | MOSCOS joins (~MOSCOS@152.32.70.55) |
| 10:16:38 | × | toast52 quits (97c0a219@151.192.162.25) (Remote host closed the connection) |
| 10:16:45 | × | Mikagami quits (~MOSCOS@122.54.107.175) (Ping timeout: 240 seconds) |
| 10:17:07 | → | Mikagami joins (~MOSCOS@122.54.107.175) |
| 10:18:04 | → | ransom joins (~c4264035@8.47.12.52) |
| 10:18:45 | × | MOSCOS quits (~MOSCOS@152.32.70.55) (Ping timeout: 240 seconds) |
| 10:19:50 | → | cads joins (~cads@ip-64-72-99-232.lasvegas.net) |
| 10:21:11 | → | acidjnk_new joins (~acidjnk@p200300d0c704e72638e4a99bdd618e88.dip0.t-ipconnect.de) |
| 10:23:16 | <Squarism> | If your class has a data-declaration, can you somehow impose constraint on it? |
| 10:23:38 | × | ransom quits (~c4264035@8.47.12.52) (Ping timeout: 272 seconds) |
| 10:23:38 | → | bitmagie joins (~Thunderbi@200116b8064af400cdd108708eb3d2c6.dip.versatel-1u1.de) |
| 10:23:54 | <Squarism> | as in what instances it requires ? |
| 10:24:28 | × | bitmagie quits (~Thunderbi@200116b8064af400cdd108708eb3d2c6.dip.versatel-1u1.de) (Client Quit) |
| 10:24:39 | <kritzefitz> | Squarism, I think you mean `instance (Baz (Bar a)) => Foo a where data Bar a` where Foo is your class, Bar is your data and Baz is your required constraint- |
| 10:24:41 | <__monty__> | Squarism: Are you sure that gets you what you want? Constraints on data types rarely are. |
| 10:26:17 | <Squarism> | kritzefitz, i tried that but it seems GHC doesnt seem to dig it. Or maybe i need to read what it actually says. |
| 10:26:19 | <Kronic> | hslogger was fairly easy to get going with, thank you for your time dminuoso |
| 10:26:30 | → | DavidEichmann joins (~david@62.110.198.146.dyn.plus.net) |
| 10:26:51 | × | pera quits (~pera@unaffiliated/pera) (Ping timeout: 256 seconds) |
| 10:27:37 | <kritzefitz> | Squarism, At leats I have seen it used in Reflex.Class where `Reflex t` requires `Functor (Dynamic t)` using this method. |
| 10:28:49 | → | son0p joins (~son0p@181.58.39.182) |
| 10:28:55 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) |
| 10:31:57 | → | coot joins (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) |
| 10:32:01 | <Squarism> | So i have : class Eq (Baz a) => Foo a where ; data Baz a |
| 10:33:22 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 260 seconds) |
| 10:33:28 | <Squarism> | Then trying to create a record that contains "Baz a" and derives Eq, ghc says no instance Eq (Baz a) |
| 10:33:38 | × | p-core quits (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Remote host closed the connection) |
| 10:35:56 | <kritzefitz> | Squarism, I think that's because mentioning `Baz a` doesn't imply `Foo a`, so `Eq (Baz a)` isn't given as well. Maybe you can try a standalone `deriving instance Foo a => Eq (YourRecord a)`? |
| 10:36:49 | <Squarism> | ill experiment for a bit |
| 10:39:23 | <kritzefitz> | Squarism, https://gitlab.com/-/snippets/2055078 |
| 10:39:28 | → | ransom joins (~c4264035@2a09:bac0:72::82f:c34) |
| 10:39:58 | <Squarism> | kritzefitz, thanks! |
| 10:40:37 | → | sphalerite joins (~sphalerit@NixOS/user/lheckemann) |
| 10:43:20 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 10:43:54 | × | ransom quits (~c4264035@2a09:bac0:72::82f:c34) (Ping timeout: 258 seconds) |
| 10:46:33 | → | dhil joins (~dhil@78.156.97.38) |
| 10:47:14 | × | dminuoso quits (~dminuoso@unaffiliated/dminuoso) (Ping timeout: 256 seconds) |
| 10:48:49 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 10:50:57 | → | jollygood2 joins (~bc815220@217.29.117.252) |
| 10:51:21 | <kritzefitz> | Squarism, I think this is because you could defined `fakeBar :: Bar (IO a); fakeBar = undefined`, where the mere existence of a value with type `Bar b` doesn't imply `Eq (Bar b)`. |
| 10:53:00 | → | m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
| 10:53:49 | → | puffnfresh joins (~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) |
| 10:55:32 | × | Kronic quits (~Kronic___@84.203.96.46) (Quit: Leaving) |
| 10:58:31 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 10:58:52 | → | dminuoso joins (~dminuoso@unaffiliated/dminuoso) |
| 11:00:05 | × | mozzarella quits (~sam@unaffiliated/sam113101) (Ping timeout: 240 seconds) |
| 11:01:06 | → | fendor joins (~fendor@77.119.131.12.wireless.dyn.drei.com) |
| 11:03:25 | × | haritz quits (~hrtz@unaffiliated/haritz) (Ping timeout: 246 seconds) |
| 11:05:11 | → | haritz joins (~hrtz@62.3.70.206) |
| 11:05:11 | × | haritz quits (~hrtz@62.3.70.206) (Changing host) |
| 11:05:11 | → | haritz joins (~hrtz@unaffiliated/haritz) |
| 11:05:13 | → | delYsid joins (~user@84-115-55-45.cable.dynamic.surfer.at) |
| 11:05:45 | × | aidecoe quits (~aidecoe@unaffiliated/aidecoe) (Remote host closed the connection) |
| 11:06:16 | <delYsid> | Isn't the order of definitions supposed to be irrelevant in Haskell? I needed to move a type synonym up a few lines recently, is this a bug or am I remembering things badly? |
| 11:09:23 | × | hekkaidekapus} quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 11:09:27 | <lortabac> | delYsid: it is relevant if you use TemplateHaskell |
| 11:12:09 | → | hekkaidekapus} joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 11:13:01 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 11:13:18 | × | ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection) |
| 11:13:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:14:26 | → | danza joins (~francesco@151.53.79.89) |
| 11:14:40 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) () |
| 11:17:00 | → | ClaudiusMaximus joins (~claude@196.67.6.51.dyn.plus.net) |
| 11:17:00 | × | ClaudiusMaximus quits (~claude@196.67.6.51.dyn.plus.net) (Changing host) |
| 11:17:00 | → | ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus) |
| 11:19:17 | <delYsid> | lortabac: Ah, I see. Thanks! |
| 11:19:27 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 11:22:04 | → | archena joins (~user@2a02:c7f:a6aa:1800:7fbf:c53e:4f8e:494d) |
| 11:22:21 | → | plam4u joins (~plam4u@131.red-83-38-238.dynamicip.rima-tde.net) |
| 11:22:58 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 11:24:17 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 268 seconds) |
| 11:24:18 | × | berberman_ quits (~berberman@unaffiliated/berberman) (Max SendQ exceeded) |
| 11:24:47 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 11:26:52 | <dminuoso> | delYsid: Mind my asking, which editor do you use? |
| 11:27:37 | → | pera joins (~pera@unaffiliated/pera) |
| 11:29:21 | × | fendor quits (~fendor@77.119.131.12.wireless.dyn.drei.com) (Remote host closed the connection) |
| 11:29:21 | → | ransom joins (~c4264035@8.47.12.52) |
| 11:30:19 | × | argento quits (~argent0@168.227.96.51) (Ping timeout: 256 seconds) |
| 11:33:00 | × | boothead quits (25192c87@37.25.44.135) (Remote host closed the connection) |
| 11:34:30 | × | ransom quits (~c4264035@8.47.12.52) (Ping timeout: 256 seconds) |
| 11:34:31 | × | cp- quits (~cp-@b157153.ppp.asahi-net.or.jp) (Quit: Disappeared in a puff of smoke) |
| 11:34:55 | → | ADG1089__ joins (~aditya@223.235.213.117) |
| 11:42:23 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Ping timeout: 240 seconds) |
| 11:43:26 | × | son0p quits (~son0p@181.58.39.182) (Quit: leaving) |
| 11:45:44 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:48:17 | → | ransom joins (~c4264035@8.47.12.52) |
| 11:52:36 | × | ransom quits (~c4264035@8.47.12.52) (Ping timeout: 240 seconds) |
| 11:55:40 | → | b5er joins (~b5er_@91.193.4.202) |
| 11:57:14 | → | jb55 joins (~jb55@gateway/tor-sasl/jb55) |
| 12:00:25 | × | ADG1089__ quits (~aditya@223.235.213.117) (Quit: Konversation terminated!) |
| 12:01:41 | × | tzlil quits (~tzlil@unaffiliated/tzlil) (Ping timeout: 272 seconds) |
| 12:02:34 | <delYsid> | dminuoso: Emacs, mostly. |
| 12:03:35 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:5d8:4076:d5fd:ffd0) |
| 12:04:02 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 12:04:09 | → | GZJ0X_ joins (~gzj@unaffiliated/gzj) |
| 12:06:14 | → | argento joins (~argent0@168.227.96.51) |
| 12:07:17 | × | GZJ0X_ quits (~gzj@unaffiliated/gzj) (Client Quit) |
| 12:07:37 | → | Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:312b:ad1d:8657:d010) |
| 12:08:27 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:5d8:4076:d5fd:ffd0) (Ping timeout: 260 seconds) |
| 12:11:00 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 12:11:22 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
| 12:11:36 | → | bitmagie joins (~Thunderbi@200116b8064af4000d02ad855163b034.dip.versatel-1u1.de) |
| 12:12:05 | <delYsid> | I wish (&) (and (~>)) were in base, they're too neat to not have. |
| 12:12:32 | × | Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:312b:ad1d:8657:d010) (Ping timeout: 260 seconds) |
| 12:13:06 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cc9a:47f4:f68e:a6dd) |
| 12:13:58 | <tomsmeding> | ( (&) is in base, just not in Prelude ;) ) |
| 12:15:59 | → | Entertainment joins (~entertain@104.246.132.210) |
| 12:17:05 | → | drbean joins (~drbean@TC210-63-209-162.static.apol.com.tw) |
| 12:18:02 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cc9a:47f4:f68e:a6dd) (Ping timeout: 264 seconds) |
| 12:19:43 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 12:20:35 | → | madjestic joins (~madjestic@86-88-72-244.fixed.kpn.net) |
| 12:21:57 | → | ransom joins (~c4264035@8.47.12.52) |
| 12:22:18 | → | ph88^ joins (~ph88@2a02:8109:9e00:7e5c:41c2:9b01:cf42:baca) |
| 12:22:35 | × | archena quits (~user@2a02:c7f:a6aa:1800:7fbf:c53e:4f8e:494d) (Ping timeout: 272 seconds) |
| 12:24:55 | → | fendor joins (~fendor@77.119.131.12.wireless.dyn.drei.com) |
| 12:25:58 | → | ggole joins (~ggole@2001:8003:8119:7200:fc49:98ab:ef5a:2f0f) |
| 12:26:13 | × | ph88_ quits (~ph88@2a02:8109:9e00:7e5c:f45d:3271:263a:193e) (Ping timeout: 260 seconds) |
| 12:27:56 | × | ransom quits (~c4264035@8.47.12.52) (Ping timeout: 240 seconds) |
| 12:30:07 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) |
| 12:31:26 | → | nfd9001 joins (~nfd9001@c-67-183-38-33.hsd1.wa.comcast.net) |
| 12:34:44 | × | nfd quits (~nfd9001@c-67-183-38-33.hsd1.wa.comcast.net) (Ping timeout: 272 seconds) |
| 12:35:17 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 260 seconds) |
| 12:36:15 | × | Alleria_ quits (~AllahuAkb@69.202.254.168) (Quit: Textual IRC Client: www.textualapp.com) |
| 12:40:25 | → | Kalernor joins (2df18079@45.241.128.121) |
| 12:41:39 | × | Kalernor quits (2df18079@45.241.128.121) (Remote host closed the connection) |
| 12:43:00 | → | geekosaur joins (ac3a3b06@172.58.59.6) |
| 12:43:05 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 12:43:26 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 12:45:13 | × | wonko7 quits (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) (Quit: See You Space Cowboy..) |
| 12:45:26 | → | wonko7 joins (~wonko7@2a01:e35:2ffb:7040:aa95:463a:bcd8:60e4) |
| 12:47:08 | <delYsid> | tomsmeding: oh |
| 12:49:50 | × | wonko7 quits (~wonko7@2a01:e35:2ffb:7040:aa95:463a:bcd8:60e4) (Client Quit) |
| 12:50:02 | → | wonko7 joins (~wonko7@2a01:e35:2ffb:7040:aa95:463a:bcd8:60e4) |
| 12:50:37 | → | Alex84 joins (923c59d2@dslb-146-060-089-210.146.060.pools.vodafone-ip.de) |
| 12:50:44 | <xsperry> | :t (~>) |
| 12:50:46 | <lambdabot> | error: |
| 12:50:46 | <lambdabot> | • Variable not in scope: ~> |
| 12:50:46 | <lambdabot> | • Perhaps you meant one of these: |
| 12:50:54 | <xsperry> | @hoogle ~> |
| 12:50:54 | <lambdabot> | Pipes (~>) :: Functor m => (a -> Proxy x' x b' b m a') -> (b -> Proxy x' x c' c m b') -> a -> Proxy x' x c' c m a' |
| 12:50:55 | <lambdabot> | Data.Singletons type a ~> b = TyFun a b -> Type |
| 12:50:55 | <lambdabot> | Development.Shake (~>) :: Located => String -> Action () -> Rules () |
| 12:51:52 | → | jneira joins (5127adb4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.180) |
| 12:54:38 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 12:57:13 | → | Alleria_ joins (~AllahuAkb@2603-7000-3040-0000-a876-e3dc-1017-f48b.res6.spectrum.com) |
| 13:00:04 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 13:00:22 | × | madjestic quits (~madjestic@86-88-72-244.fixed.kpn.net) (Remote host closed the connection) |
| 13:00:22 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 260 seconds) |
| 13:04:04 | × | plutoniix quits (~q@184.82.194.56) (Quit: Leaving) |
| 13:13:42 | → | nyd joins (~nyd@unaffiliated/elysian) |
| 13:17:44 | × | nek0 quits (~nek0@mail.nek0.eu) (Remote host closed the connection) |
| 13:17:49 | → | carthia joins (~carthia@gateway/tor-sasl/carthia) |
| 13:18:01 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 13:18:20 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 13:22:20 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:f14e:f414:9b65:b890:9d87) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:24:19 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 13:25:08 | → | solonarv joins (~solonarv@astrasbourg-653-1-157-135.w90-6.abo.wanadoo.fr) |
| 13:27:23 | → | carthia_mr joins (~carthia@gateway/tor-sasl/carthia) |
| 13:27:47 | × | haritz quits (~hrtz@unaffiliated/haritz) (Read error: Connection timed out) |
| 13:27:54 | → | haritz joins (~hrtz@62.3.70.206) |
| 13:27:54 | × | haritz quits (~hrtz@62.3.70.206) (Changing host) |
| 13:27:54 | → | haritz joins (~hrtz@unaffiliated/haritz) |
| 13:30:03 | × | carthia quits (~carthia@gateway/tor-sasl/carthia) (Ping timeout: 240 seconds) |
| 13:30:58 | × | unlink2 quits (~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 13:32:03 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 13:33:39 | × | coot quits (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 13:35:33 | → | Gorbel joins (~Gorbel@p5790e186.dip0.t-ipconnect.de) |
| 13:35:48 | × | bitmagie quits (~Thunderbi@200116b8064af4000d02ad855163b034.dip.versatel-1u1.de) (Remote host closed the connection) |
| 13:36:36 | → | Sheilong joins (uid293653@gateway/web/irccloud.com/x-unmksdzihnsijttq) |
| 13:36:42 | <delYsid> | xsperry: type a ~> b = forall x. a x -> b x |
| 13:38:00 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 13:38:40 | × | delYsid quits (~user@84-115-55-45.cable.dynamic.surfer.at) (Quit: ERC (IRC client for Emacs 27.1.50)) |
| 13:39:08 | × | knupfer quits (~Thunderbi@200116b82c7e8f00d8220a72dd894f13.dip.versatel-1u1.de) (Quit: knupfer) |
| 13:39:58 | → | unlink2 joins (~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de) |
| 13:40:00 | → | knupfer joins (~Thunderbi@200116b82c7e8f00f9b60c4a663b1e20.dip.versatel-1u1.de) |
| 13:40:03 | × | knupfer quits (~Thunderbi@200116b82c7e8f00f9b60c4a663b1e20.dip.versatel-1u1.de) (Client Quit) |
| 13:40:36 | → | knupfer joins (~Thunderbi@200116b82c7e8f00bcf25ba387c5fed6.dip.versatel-1u1.de) |
| 13:40:54 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 13:42:55 | → | polman joins (~tema@217.118.92.215) |
| 13:44:25 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 13:44:56 | × | knupfer quits (~Thunderbi@200116b82c7e8f00bcf25ba387c5fed6.dip.versatel-1u1.de) (Client Quit) |
| 13:45:13 | → | knupfer joins (~Thunderbi@200116b82c7e8f00b1e89f88fb97f1fb.dip.versatel-1u1.de) |
| 13:45:16 | × | qwerty quits (~tema@217.118.92.215) (Ping timeout: 240 seconds) |
| 13:47:27 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:f14e:f414:9b65:b890:9d87) |
| 13:49:14 | × | jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
| 13:50:01 | × | drbean quits (~drbean@TC210-63-209-162.static.apol.com.tw) (Ping timeout: 264 seconds) |
| 13:50:43 | → | qwerty joins (~tema@217.118.92.215) |
| 13:53:36 | × | polman quits (~tema@217.118.92.215) (Ping timeout: 240 seconds) |
| 13:57:51 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:a54e:b06e:1927:13af) |
| 13:58:10 | → | son0p joins (~son0p@181.136.122.143) |
| 13:58:14 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:f14e:f414:9b65:b890:9d87) (Ping timeout: 264 seconds) |
| 14:00:17 | × | revprez_anzio quits (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Quit: Lost terminal) |
| 14:00:35 | → | ADG1089__ joins (~aditya@223.235.213.117) |
| 14:00:48 | → | mozzarella joins (~sam@unaffiliated/sam113101) |
| 14:01:57 | → | stef204 joins (~stef204@unaffiliated/stef-204/x-384198) |
| 14:02:12 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 260 seconds) |
| 14:02:26 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:a54e:b06e:1927:13af) (Ping timeout: 264 seconds) |
| 14:02:28 | → | sic_mundus7 joins (~dark@2401:4900:36bb:7915:7cba:c855:29cc:a26b) |
| 14:04:41 | × | unlink2 quits (~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 14:06:02 | → | unlink2 joins (~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de) |
| 14:07:21 | ← | sic_mundus7 parts (~dark@2401:4900:36bb:7915:7cba:c855:29cc:a26b) () |
| 14:09:07 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 14:09:28 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 14:13:13 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 14:14:09 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 14:14:30 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 14:15:13 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 14:15:14 | → | jmchael joins (~jmchael@81.174.205.210) |
| 14:15:35 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 14:18:07 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 14:18:28 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 14:18:48 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:ac06:2bf9:3ff5:c290) |
| 14:19:10 | × | gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
| 14:19:32 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 14:19:48 | → | Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) |
| 14:21:46 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr) |
| 14:22:45 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 14:23:12 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:ac06:2bf9:3ff5:c290) (Ping timeout: 260 seconds) |
| 14:24:22 | × | Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) (Ping timeout: 260 seconds) |
| 14:26:32 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:f14e:750f:83e8:c56e:b09f) |
| 14:27:45 | × | son0p quits (~son0p@181.136.122.143) (Ping timeout: 240 seconds) |
| 14:29:24 | → | son0p joins (~son0p@181.136.122.143) |
| 14:29:31 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 14:30:09 | <johnnyboy[m]> | is it possible to match tabs with regex-tdfa? |
| 14:30:33 | <johnnyboy[m]> | `\t` and `[:space:]` don't seem to work |
| 14:30:58 | × | gzj quits (~gzj@unaffiliated/gzj) (Ping timeout: 246 seconds) |
| 14:31:23 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) |
| 14:32:46 | × | orcus quits (~orcus@unaffiliated/orcus) (Quit: ZNC 1.7.5 - https://znc.in) |
| 14:33:37 | <johnnyboy[m]> | of course, I can preprosess my data by replacing tabs with spaces |
| 14:33:56 | → | Tario joins (~Tario@201.192.165.173) |
| 14:34:17 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:f14e:750f:83e8:c56e:b09f) (Ping timeout: 260 seconds) |
| 14:34:17 | → | orcus joins (~orcus@unaffiliated/orcus) |
| 14:34:53 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 14:35:37 | → | ransom joins (~c4264035@2a09:bac0:72::82f:c34) |
| 14:36:34 | × | son0p quits (~son0p@181.136.122.143) (Ping timeout: 246 seconds) |
| 14:36:36 | × | TooDifficult quits (~TooDiffic@139.59.59.230) (Ping timeout: 240 seconds) |
| 14:36:37 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 260 seconds) |
| 14:37:53 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 14:38:15 | <pjb> | johnnyboy[m]: that's the best thing to do. Remember, programmers who use spaces are paid more than those who use tabs. |
| 14:38:30 | → | son0p joins (~son0p@181.136.122.143) |
| 14:39:59 | <geekosaur> | I'm a little surprised \t doesn't work. Possibly it needs to be \\t but it still seems somewhat weird that a literal tab wouldn't match |
| 14:40:34 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 14:40:42 | × | ransom quits (~c4264035@2a09:bac0:72::82f:c34) (Ping timeout: 260 seconds) |
| 14:41:00 | × | orcus quits (~orcus@unaffiliated/orcus) (Quit: ZNC 1.8.1 - https://znc.in) |
| 14:41:42 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
| 14:42:46 | → | orcus joins (~orcus@unaffiliated/orcus) |
| 14:44:41 | <johnnyboy[m]> | `\\t` does't seem to work either |
| 14:44:42 | × | unlink2 quits (~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 14:44:53 | <johnnyboy[m]> | or maybe I have something wrong elsewhere again |
| 14:44:57 | <johnnyboy[m]> | woudln't be the first time |
| 14:46:10 | → | unlink2 joins (~unlink2@p5dc0acf8.dip0.t-ipconnect.de) |
| 14:47:21 | × | carthia_mr quits (~carthia@gateway/tor-sasl/carthia) (Quit: carthia_mr) |
| 14:48:18 | × | ezzieyguywuf quits (~Unknown@unaffiliated/ezzieyguywuf) (Ping timeout: 256 seconds) |
| 14:48:36 | × | geekosaur quits (ac3a3b06@172.58.59.6) (Remote host closed the connection) |
| 14:49:24 | → | Matt_P joins (~Matt_P@217.146.82.202) |
| 14:49:32 | → | Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
| 14:49:47 | <johnnyboy[m]> | actually, `\\t` does seem to work |
| 14:50:37 | <__monty__> | Weird that you need the extra escape. |
| 14:51:15 | <merijn> | __monty__: Not really |
| 14:51:46 | <merijn> | __monty__: If the string is fed to a regex library that wants \t, as opposed to an actual tab |
| 14:52:11 | <merijn> | You need to escape the \ to actually get the \\t the regex library expects, as opposed to giving it an actual tab character |
| 14:53:55 | → | brisbin joins (~patrick@174-081-116-011.res.spectrum.com) |
| 14:54:07 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 14:54:16 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) |
| 14:55:03 | → | ransom joins (~c4264035@8.47.12.52) |
| 14:55:48 | × | knupfer quits (~Thunderbi@200116b82c7e8f00b1e89f88fb97f1fb.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
| 15:02:46 | <ij> | would haskell optimize any/all on hardcoded lists not to traverse it as a list? |
| 15:03:06 | <merijn> | Yes, no, maybe, it depends |
| 15:03:12 | × | Alex84 quits (923c59d2@dslb-146-060-089-210.146.060.pools.vodafone-ip.de) (Remote host closed the connection) |
| 15:04:11 | <ij> | is it required to specify that I'm using ghc? |
| 15:04:30 | <merijn> | Your question has no definite answer |
| 15:04:55 | <ij> | I wasn't looking for one either |
| 15:05:30 | <[exa]> | ij: the inliner may inline it, under some (complicated) conditions |
| 15:05:47 | <[exa]> | I wouldn't bet on that tough |
| 15:05:53 | <merijn> | In general neither Haskell nor GHC provide any guarantees about the runtime representation of any datatype |
| 15:05:53 | <[exa]> | *though |
| 15:06:00 | → | djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) |
| 15:06:03 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:f14e:750f:83e8:c56e:b09f) |
| 15:06:36 | <[exa]> | ij: there's a paper about "the architecture of haskell inliner" somewhere, it's a good read about the basic challenges of such optimizations |
| 15:06:44 | <merijn> | Will it do something fancy? Probably not, but nothing is specified or promised |
| 15:08:30 | <[exa]> | in short, please do not depend on that |
| 15:09:27 | <ij> | just curious :) |
| 15:10:08 | <__monty__> | merijn: You can give it any other character so why not tab? |
| 15:10:46 | <merijn> | __monty__: Sure, but does that have the same meaning in the regex syntax? |
| 15:10:53 | <lortabac> | __monty__: I suppose because you can format and indent regexes |
| 15:11:02 | × | ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection) |
| 15:11:11 | <merijn> | __monty__: Which in turn depends on the exact regex flavour in use |
| 15:13:43 | × | stef204 quits (~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.0) |
| 15:13:45 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 15:14:16 | × | brisbin quits (~patrick@174-081-116-011.res.spectrum.com) (Ping timeout: 240 seconds) |
| 15:14:36 | → | Tario joins (~Tario@201.192.165.173) |
| 15:15:20 | <siraben> | what libraries are good for interacting with IRC? |
| 15:15:56 | → | stef204 joins (~stef204@unaffiliated/stef-204/x-384198) |
| 15:16:17 | → | Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com) |
| 15:18:24 | <__monty__> | "Formatting" regexes sounds like the stuff of nightmares. Why are you even writing regexes monstrous enough to require formatting and does this mean even spaces need to be escaped? |
| 15:18:44 | × | stef204 quits (~stef204@unaffiliated/stef-204/x-384198) (Client Quit) |
| 15:19:25 | × | argento quits (~argent0@168.227.96.51) (Ping timeout: 240 seconds) |
| 15:20:03 | → | chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
| 15:21:30 | × | notzmv quits (~user@unaffiliated/zmv) (Read error: No route to host) |
| 15:22:01 | → | stef204 joins (~stef204@unaffiliated/stef-204/x-384198) |
| 15:22:07 | × | thunderrd quits (~thunderrd@183.182.111.131) (Remote host closed the connection) |
| 15:23:04 | → | fendor_ joins (~fendor@178.165.130.45.wireless.dyn.drei.com) |
| 15:23:39 | → | notzmv joins (~user@unaffiliated/zmv) |
| 15:24:59 | <lortabac> | __monty__: years ago I worked at a company where the regexes were so big that they needed to be formatted (IIRC they were just split over multiple lines) |
| 15:25:20 | <rowbee> | perl |
| 15:25:25 | → | toorevitimirp joins (~tooreviti@117.182.181.108) |
| 15:25:31 | × | djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Quit: #ruby) |
| 15:25:42 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 15:25:45 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 15:25:54 | × | fendor quits (~fendor@77.119.131.12.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
| 15:26:05 | <lortabac> | as for why, I have no idea |
| 15:27:47 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 15:31:52 | → | ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta) |
| 15:32:06 | × | danza quits (~francesco@151.53.79.89) (Quit: Leaving) |
| 15:32:46 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) |
| 15:33:09 | → | bitmagie joins (~Thunderbi@200116b8064af40045a56632dbc644bc.dip.versatel-1u1.de) |
| 15:35:56 | × | toorevitimirp quits (~tooreviti@117.182.181.108) (Ping timeout: 240 seconds) |
| 15:37:52 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 260 seconds) |
| 15:40:49 | → | thunderrd joins (~thunderrd@183.182.111.131) |
| 15:44:01 | × | b5er quits (~b5er_@91.193.4.202) (Ping timeout: 264 seconds) |
| 15:44:29 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:f14e:750f:83e8:c56e:b09f) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 15:46:10 | <idnar> | :t \f xs -> mconcat (f <$> xs) |
| 15:46:12 | <lambdabot> | Monoid a1 => (a2 -> a1) -> [a2] -> a1 |
| 15:46:58 | <idnar> | @hoogle Monoid a1 => (a2 -> a1) -> [a2] -> a1 |
| 15:46:59 | <lambdabot> | Data.List.Extra mconcatMap :: Monoid b => (a -> b) -> [a] -> b |
| 15:46:59 | <lambdabot> | Extra mconcatMap :: Monoid b => (a -> b) -> [a] -> b |
| 15:46:59 | <lambdabot> | Prelude foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m |
| 15:47:23 | × | gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds) |
| 15:47:30 | → | Zetagon joins (~leo@c151-177-52-233.bredband.comhem.se) |
| 15:47:32 | <idnar> | ah, foldMap |
| 15:48:50 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:f14e:750f:83e8:c56e:b09f) |
| 15:49:38 | → | gxt joins (~gxt@gateway/tor-sasl/gxt) |
| 15:49:47 | → | argento joins (~argent0@168.227.96.26) |
| 15:51:53 | → | knupfer joins (~Thunderbi@200116b82c7e8f00a8f2c6fffebe0d91.dip.versatel-1u1.de) |
| 15:52:59 | × | knupfer quits (~Thunderbi@200116b82c7e8f00a8f2c6fffebe0d91.dip.versatel-1u1.de) (Remote host closed the connection) |
| 15:53:13 | → | knupfer joins (~Thunderbi@200116b82c7e8f00b4797c962f7b5000.dip.versatel-1u1.de) |
| 15:53:45 | <idnar> | @pl \f g (x, y) -> f (g x) <> f (g y) |
| 15:53:46 | <lambdabot> | flip flip snd . (ap .) . flip flip fst . ((.) .) . ap (ap . ((flip . (((.) . (<>)) .)) .) . (.)) (.) |
| 15:54:23 | → | Tops2 joins (~Tobias@dyndsl-095-033-094-200.ewe-ip-backbone.de) |
| 15:54:25 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 15:54:26 | <idnar> | not quite |
| 15:54:40 | <idnar> | @pl \(x, y) -> f (g x) <> f (g y) |
| 15:54:40 | <lambdabot> | uncurry ((. (f . g)) . (<>) . f . g) |
| 15:55:37 | <idnar> | :t bimap |
| 15:55:39 | <lambdabot> | Bifunctor p => (a -> b) -> (c -> d) -> p a c -> p b d |
| 15:55:59 | → | TheMule joins (~TheMule@2a02:908:3a3:8660:8a32:79ab:f6b:7a6a) |
| 15:56:05 | × | TheMule quits (~TheMule@2a02:908:3a3:8660:8a32:79ab:f6b:7a6a) (Client Quit) |
| 15:57:04 | <idnar> | @hoogle Bifunctor p => (a -> b) -> p a a -> p b b |
| 15:57:05 | <lambdabot> | Relude.Extra.Bifunctor bimapBoth :: Bifunctor f => (a -> b) -> f a a -> f b b |
| 15:57:08 | → | eacameron joins (uid256985@gateway/web/irccloud.com/x-wupypehaymlqhtxd) |
| 15:58:01 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 16:00:44 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 16:04:22 | × | ransom quits (~c4264035@8.47.12.52) (Ping timeout: 272 seconds) |
| 16:04:25 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 264 seconds) |
| 16:05:36 | × | qwerty quits (~tema@217.118.92.215) (Ping timeout: 240 seconds) |
| 16:06:03 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 16:10:41 | → | christo joins (~chris@81.96.113.213) |
| 16:13:02 | → | philopsos joins (~caecilius@gateway/tor-sasl/caecilius) |
| 16:13:11 | <ddellacosta> | Is there any reason to use ContT here other than simplifying resource cleanup? There are non-with* versions of all these functions in the alsa-seq library https://hackage.haskell.org/package/alsa-seq-0.6.0.7/src/examples/beat.hs |
| 16:14:02 | <[exa]> | hackage could have a nice "this is used by" button |
| 16:14:22 | → | Tario joins (~Tario@201.192.165.173) |
| 16:19:33 | × | jollygood2 quits (~bc815220@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
| 16:19:42 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:f14e:750f:83e8:c56e:b09f) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:19:44 | <merijn> | [exa]: So... https://packdeps.haskellers.com/reverse ? :p |
| 16:19:49 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:c48f:1a20:b814:adb4) |
| 16:20:26 | → | revprez_anzio joins (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) |
| 16:21:17 | <[exa]> | this is for packages, I want it for actual definitions... Everyone's gonna use mtl/transformers, not many packages actually touch ContT directly |
| 16:23:45 | → | mlugg joins (522733ea@cpc95124-newt39-2-0-cust489.19-3.cable.virginm.net) |
| 16:24:18 | <merijn> | ah |
| 16:24:29 | <merijn> | github code search? :p |
| 16:26:10 | <mlugg> | I have a typeclass `Foo a`, with an `instance Foo Text` and an `instance Foo (IO ())` (using `FlexibleInstances` for the latter instance). I also have a value `x :: (Foo a) => a`. If I evaluate `x` at the GHCi prompt, I expect the IO instance to be detected and used for the evaluation. Instead, I get an error about an ambiguous type variable for |
| 16:26:11 | <mlugg> | `print`, showing that GHCi is trying to find a `show`-able instance instead. However, if I enable GADTs so I can use equality constraints and replace the second instance with `instance (a ~ ()) => Foo (IO a)`, it works as expected. Why does this happen, and is there any way I can get this behaviour without GADTs/TypeFamilies? |
| 16:27:11 | → | coot joins (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) |
| 16:27:23 | × | philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
| 16:29:32 | × | acidjnk_new quits (~acidjnk@p200300d0c704e72638e4a99bdd618e88.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 16:30:05 | → | philopsos joins (~caecilius@gateway/tor-sasl/caecilius) |
| 16:30:52 | × | argento quits (~argent0@168.227.96.26) (Ping timeout: 256 seconds) |
| 16:34:08 | × | son0p quits (~son0p@181.136.122.143) (Quit: leaving) |
| 16:38:01 | × | tessier quits (~treed@kernel-panic/copilotco) (Ping timeout: 246 seconds) |
| 16:39:22 | → | juuandyy joins (~juuandyy@90.166.144.65) |
| 16:40:30 | → | DarkRanger joins (b6bc8329@182.188.131.41) |
| 16:40:55 | × | bitmagie quits (~Thunderbi@200116b8064af40045a56632dbc644bc.dip.versatel-1u1.de) (Quit: bitmagie) |
| 16:41:25 | × | DarkRanger quits (b6bc8329@182.188.131.41) (Remote host closed the connection) |
| 16:42:17 | → | kuribas joins (~user@ptr-25vy0i9jslvkgmof4mc.18120a2.ip6.access.telenet.be) |
| 16:43:13 | → | obihann joins (~jhann@142.177.168.17) |
| 16:43:18 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) () |
| 16:43:42 | → | DarkRanger joins (b6bc8329@182.188.131.41) |
| 16:44:28 | × | Zetagon quits (~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 256 seconds) |
| 16:44:55 | → | hekkaidekapus[ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 16:46:00 | × | DarkRanger quits (b6bc8329@182.188.131.41) (Remote host closed the connection) |
| 16:46:43 | × | hekkaidekapus} quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 16:47:38 | × | coot quits (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 16:51:14 | → | geekosaur joins (42d52137@66.213.33.55) |
| 16:53:52 | <statusfailed> | what's the stack equivalent of cabal.project's "constraints: ..." line ? |
| 16:53:54 | × | knupfer quits (~Thunderbi@200116b82c7e8f00b4797c962f7b5000.dip.versatel-1u1.de) (Quit: knupfer) |
| 16:55:01 | → | ransom joins (~c4264035@2a09:bac0:72::82f:c34) |
| 16:57:54 | × | plam4u quits (~plam4u@131.red-83-38-238.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 17:00:23 | × | ransom quits (~c4264035@2a09:bac0:72::82f:c34) (Ping timeout: 260 seconds) |
| 17:01:45 | <tomsmeding> | mlugg: what you're relying on here is ghci's special defaulting rules for IO things; the wording in this piece of documentation seems to suggest that it specifically looks for a way to unify with 'IO a', which will not work for the IO () instance: https://downloads.haskell.org/ghc/latest/docs/html/users_guide/ghci.html#i-o-actions-at-the-prompt |
| 17:01:45 | <sm[m]> | statusfailed: I think there isn't one, as stack declares a specific version for each package |
| 17:02:35 | <tomsmeding> | I think that this "instability", for as much as it is an instability, is basically why FlexibleInstances is an extension -- but I'm not sure |
| 17:03:20 | <tomsmeding> | also, I'm now reading that piece of documentation way too precisely, so the implementation may not match my reading :p |
| 17:04:54 | <geekosaur> | % putStrLn "hi" -- IO () works |
| 17:04:54 | <yahb> | geekosaur: hi |
| 17:05:22 | <tomsmeding> | that's because the type 'IO ()' can be unified with 'IO a' |
| 17:05:38 | <tomsmeding> | the type 'Foo a => a' cannot be unified with 'IO a' without further knowledge |
| 17:05:57 | tomsmeding | thinks |
| 17:07:52 | × | Franciman quits (~francesco@host-95-250-152-231.retail.telecomitalia.it) (Quit: Leaving) |
| 17:10:24 | × | chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:12:26 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) |
| 17:12:34 | <merijn> | statusfailed: Eh, there's no such thing |
| 17:12:47 | <merijn> | statusfailed: The LTS snapshots effectively *are* just sets of constraints |
| 17:13:29 | <tomsmeding> | mlugg: can't find the place where the IO stuff is handled in the ghci source, but that's probably my unfamiliarity |
| 17:14:13 | → | ransom joins (~c4264035@8.47.12.52) |
| 17:15:05 | → | nek0 joins (~nek0@mail.nek0.eu) |
| 17:15:14 | <mlugg> | tomsmeding: Ah, that makes sense, thanks. Whereas the constraint variant allows unifying with IO a, it just also pushes an equality constraint forcing a to be () |
| 17:15:29 | <tomsmeding> | that's what I'm thinking, yes |
| 17:15:41 | <dminuoso> | What I find surprising, is how GHCi hasn't managed to surprise me so far (apart from MMR). It's almost as if Haskell has a sane definable way to be run interactively. :) |
| 17:15:52 | <tomsmeding> | in particular, what if you had instances for both Foo (IO ()) and Foo (IO Int) |
| 17:16:00 | <tomsmeding> | there'd be no reasonable way to choose |
| 17:16:12 | <sm[m]> | GHCI is great |
| 17:16:17 | <tomsmeding> | and you can't make those two separate instances without FlexibleInstances :) |
| 17:16:20 | <tomsmeding> | ghci is amazing |
| 17:17:02 | <tomsmeding> | (except for bringing stuff into scope that I don't want in scope upon reload :p ) |
| 17:17:09 | <mlugg> | Ohhh that makes a lot of sense actually |
| 17:17:16 | <mlugg> | So TL;DR I have to do it with the equality constraint |
| 17:20:22 | × | juuandyy quits (~juuandyy@90.166.144.65) (Ping timeout: 272 seconds) |
| 17:24:49 | → | mirrorbird joins (~psutcliff@2a00:801:42b:8314:3772:eb7f:91f1:698c) |
| 17:25:08 | <statusfailed> | sm[m], merijn ah weird, you can put other stuff in cabal.project's constraints field, I guess like package flags? |
| 17:25:22 | <statusfailed> | I know stack has the flags section for that though |
| 17:27:11 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 17:27:28 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@static-198-54-134-164.cust.tzulo.com) |
| 17:28:58 | → | plam4u joins (~plam4u@131.red-83-38-238.dynamicip.rima-tde.net) |
| 17:31:35 | → | argento joins (~argent0@168.227.96.26) |
| 17:32:26 | × | gzj quits (~gzj@unaffiliated/gzj) (Ping timeout: 268 seconds) |
| 17:35:13 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:c48f:1a20:b814:adb4) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:35:21 | × | thunderrd quits (~thunderrd@183.182.111.131) (Remote host closed the connection) |
| 17:38:37 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 17:40:32 | → | thallada joins (~thallada@fsf/member/thallada) |
| 17:42:00 | × | mirrorbird quits (~psutcliff@2a00:801:42b:8314:3772:eb7f:91f1:698c) (Quit: Leaving) |
| 17:42:13 | → | knupfer joins (~Thunderbi@200116b82c7e8f0029e8d9a0b516f068.dip.versatel-1u1.de) |
| 17:42:29 | → | justsomeguy joins (~justsomeg@2603-9000-960a-fc00-c4d2-5b73-c7b7-3a2b.inf6.spectrum.com) |
| 17:42:29 | × | justsomeguy quits (~justsomeg@2603-9000-960a-fc00-c4d2-5b73-c7b7-3a2b.inf6.spectrum.com) (Changing host) |
| 17:42:29 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 17:43:23 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) |
| 17:44:26 | × | denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection) |
| 17:44:38 | × | knupfer quits (~Thunderbi@200116b82c7e8f0029e8d9a0b516f068.dip.versatel-1u1.de) (Remote host closed the connection) |
| 17:44:47 | → | denisse joins (~spaceCat@gateway/tor-sasl/alephzer0) |
| 17:44:56 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
| 17:46:04 | × | ransom quits (~c4264035@8.47.12.52) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:46:55 | → | juuandyy joins (~juuandyy@90.166.144.65) |
| 17:47:10 | × | geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 245 seconds) |
| 17:52:27 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 17:56:17 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:57:28 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 17:59:21 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) |
| 18:02:52 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 18:04:03 | → | chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
| 18:04:36 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
| 18:04:42 | × | plam4u quits (~plam4u@131.red-83-38-238.dynamicip.rima-tde.net) () |
| 18:05:02 | → | jb55 joins (~jb55@gateway/tor-sasl/jb55) |
| 18:05:37 | → | sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) |
| 18:07:12 | → | brisbin joins (~patrick@174-081-116-011.res.spectrum.com) |
| 18:07:36 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 18:12:58 | → | carthia joins (~carthia@gateway/tor-sasl/carthia) |
| 18:13:50 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 18:14:23 | → | geekosaur joins (42d52137@66.213.33.55) |
| 18:14:24 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 18:15:14 | → | Forlorn joins (~Forlorn@unaffiliated/forlorn) |
| 18:15:31 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) |
| 18:15:43 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
| 18:16:19 | → | Tario joins (~Tario@201.192.165.173) |
| 18:17:31 | × | brisbin quits (~patrick@174-081-116-011.res.spectrum.com) (Quit: WeeChat 2.9) |
| 18:17:33 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 18:17:34 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 18:18:05 | × | sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 240 seconds) |
| 18:21:06 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 265 seconds) |
| 18:21:10 | × | Mikagami quits (~MOSCOS@122.54.107.175) (Remote host closed the connection) |
| 18:21:33 | → | Mikagami joins (~MOSCOS@122.54.107.175) |
| 18:22:09 | → | Tario joins (~Tario@200.119.186.210) |
| 18:22:31 | <statusfailed> | Does ghci do linking differently to ghc somehow? I have a program which I can compile but ghci gives me a linker error |
| 18:22:55 | <geekosaur> | ghci has its own linker which is known to not handle all cases |
| 18:23:09 | <statusfailed> | ah |
| 18:23:21 | → | sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) |
| 18:23:47 | <geekosaur> | that said, most of the time it's something like being in the wrong directory or something similar, not hitting one of the edge cases |
| 18:23:54 | <statusfailed> | Is there a way I can debug the link step of ghci? I have the command "cabal repl" is using, but I don't see how to affect linking |
| 18:24:06 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 18:24:14 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@static-198-54-134-164.cust.tzulo.com) (Ping timeout: 268 seconds) |
| 18:24:15 | <statusfailed> | geekosaur: wouldn't being in the wrong directory also affect ghc ? |
| 18:25:10 | <geekosaur> | if you were certain they were doing the same thing, yes. if you're using "cabal repl", you may have something misconfigured |
| 18:26:20 | <statusfailed> | geekosaur: I took the "ghc --interactive ..." command that "cabal repl" used and just removed the --interactive flag |
| 18:26:27 | <statusfailed> | with --interactive I get link errors, without that flag things work |
| 18:28:08 | <statusfailed> | ("things work" = I get an executable that I can run without errors) |
| 18:29:09 | × | pera quits (~pera@unaffiliated/pera) (Ping timeout: 256 seconds) |
| 18:29:17 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 18:31:25 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr) |
| 18:36:37 | × | philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection) |
| 18:36:49 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 18:36:53 | → | philopsos joins (~caecilius@gateway/tor-sasl/caecilius) |
| 18:37:30 | × | carthia quits (~carthia@gateway/tor-sasl/carthia) (Remote host closed the connection) |
| 18:37:39 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 18:37:59 | → | carthia joins (~carthia@gateway/tor-sasl/carthia) |
| 18:38:12 | → | bps joins (~bps@103.118.146.114) |
| 18:38:51 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) |
| 18:41:56 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:42:28 | → | coot joins (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) |
| 18:42:51 | × | dhil quits (~dhil@78.156.97.38) (Quit: Leaving) |
| 18:44:45 | → | iekfkk joins (~username@117.200.9.42) |
| 18:47:03 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Remote host closed the connection) |
| 18:47:22 | → | Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 18:47:26 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 18:47:31 | × | bisickcor quits (~username@117.200.14.227) (Ping timeout: 246 seconds) |
| 18:48:56 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds) |
| 18:48:56 | Lord_of_Life_ | is now known as Lord_of_Life |
| 18:49:13 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 18:49:37 | × | Melanie quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 265 seconds) |
| 18:49:53 | → | christo joins (~chris@81.96.113.213) |
| 18:50:39 | × | sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 260 seconds) |
| 18:52:12 | × | argento quits (~argent0@168.227.96.26) (Ping timeout: 272 seconds) |
| 18:52:40 | → | rmk236 joins (~lcampos@2a02:908:3616:b100:849c:a12b:ff95:e193) |
| 18:53:45 | <statusfailed> | Hrm, seems like GHCi doesn't like linking with libstdc++ |
| 18:53:54 | → | argento joins (~argent0@168.227.96.26) |
| 18:53:59 | → | Melanie joins (~Melanie@192-0-134-138.cpe.teksavvy.com) |
| 18:54:44 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 272 seconds) |
| 18:55:09 | → | samsepiol joins (~jh@94.31.85.251) |
| 18:55:26 | <geekosaur> | that fails to surprise me, given linkers need to handle template specialization and ghci's built-in linker probably doesn't |
| 18:56:19 | → | o1lo01ol1o joins (~o1lo01ol1@31.22.145.144) |
| 18:57:57 | × | samsepiol quits (~jh@94.31.85.251) (Client Quit) |
| 18:58:13 | → | samsepiol joins (~jh@94.31.85.251) |
| 19:00:13 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 19:01:09 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.145.144) (Ping timeout: 260 seconds) |
| 19:02:50 | × | samsepiol quits (~jh@94.31.85.251) (Client Quit) |
| 19:02:57 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
| 19:03:27 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 19:04:21 | → | sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) |
| 19:04:32 | × | berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 258 seconds) |
| 19:04:56 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 19:05:16 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:05:37 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Remote host closed the connection) |
| 19:06:47 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Quit: birdd) |
| 19:06:51 | → | christo joins (~chris@81.96.113.213) |
| 19:07:31 | → | p8m joins (p8m@gateway/vpn/protonvpn/p8m) |
| 19:08:03 | <tomsmeding> | the linker needs to handle template specialisation? I knew less about c++ than I thought |
| 19:08:36 | <geekosaur> | what happens when two different .cc files do the same specialization for the same template? |
| 19:08:54 | <geekosaur> | the linker needs to either pick one, or do the specialization itself |
| 19:09:29 | <geekosaur> | this is actually one of the lesser problems; c++ is a mess |
| 19:09:49 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 19:09:50 | <tomsmeding> | is that even allowed in the first place? |
| 19:10:03 | × | chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:10:05 | <geekosaur> | sure, and STL relies on it |
| 19:10:37 | × | Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 246 seconds) |
| 19:13:20 | <dsal> | I'm trying to figure out how to do something with optparse-applicative that doesn't seem like it should be that hard. I want to use `many (argument ..)` and do something different for a length of 0, 1, or 2. I can do `sub <$> many (argument str (metavar "args..."))` and have a different parser for each, but I can't make a length of 3 fail gracefully. |
| 19:13:26 | → | chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
| 19:13:48 | <dsal> | I also tried <|> between parsers for 2, 1, and 0, but the 1 case never works because it doesn't backtrack that far. |
| 19:14:50 | <dsal> | I have a subcommand "config" that lists the config with 0 args, gets a particular value with 1, and sets a value with 2. It works fine if I just pass the args down and make the decision later, but I'm trying to see if I can model this earlier. |
| 19:15:35 | <Melanie> | case split on the result of the parse is my first guess |
| 19:16:04 | <tomsmeding> | geekosaur: my compiler doesn't allow it :p https://paste.tomsmeding.com/bjtSuLwg |
| 19:16:12 | <tomsmeding> | or I'm misunderstanding you |
| 19:16:26 | <tomsmeding> | oh crap that shell session is wrong |
| 19:16:53 | × | xff0x_ quits (~fox@2001:1a81:532a:2200:95e9:9dd9:cd9c:c473) (Ping timeout: 260 seconds) |
| 19:16:53 | <tomsmeding> | geekosaur: https://paste.tomsmeding.com/pDkgNCqc that's the correct one |
| 19:17:01 | <geekosaur> | I'm probably using the wrong terminology |
| 19:17:06 | <dsal> | Melanie: Yeah, I tried that, but the parser isn't monadic, so it's not clear to me how to join. |
| 19:17:19 | <geekosaur> | instantiation instead of specialization, maybe |
| 19:17:23 | → | xff0x_ joins (~fox@2001:1a81:532a:2200:ffb2:f24f:b99c:824f) |
| 19:17:45 | <geekosaur> | the point here is duplicated code if you handle it naïvely |
| 19:17:52 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@static-198-54-134-43.cust.tzulo.com) |
| 19:18:15 | <statusfailed> | geekosaur: isn't the second link showing that you actually get duplicated code in C++? |
| 19:18:20 | <statusfailed> | and therefore the linker isn't doing any template stuff? |
| 19:18:22 | <tomsmeding> | right, that would be _implicit_ template specialisations, where the compiler specialises a template function (defined in some header file) for the type with which it is used -- in multiple files separately |
| 19:18:34 | → | Guest99 joins (59217720@gateway/web/cgi-irc/kiwiirc.com/ip.89.33.119.32) |
| 19:19:09 | <Guest99> | @pl lift2 f k1 k2 = (f <$> k1) <*> k2 |
| 19:19:09 | <lambdabot> | lift2 = ((<*>) .) . (<$>) |
| 19:19:34 | <tomsmeding> | :t liftA2 |
| 19:19:35 | <lambdabot> | Applicative f => (a -> b -> c) -> f a -> f b -> f c |
| 19:20:47 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 19:21:25 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) |
| 19:21:51 | → | madjestic joins (~Android@86-88-72-244.fixed.kpn.net) |
| 19:22:42 | <tomsmeding> | geekosaur: I thought that was just deduplication though, not actual instantiation in the linker (which would be outrageous complexity inside a linker) |
| 19:23:09 | ← | Guest99 parts (59217720@gateway/web/cgi-irc/kiwiirc.com/ip.89.33.119.32) () |
| 19:23:19 | <geekosaur> | deduplication is harder than it looks, iirc |
| 19:23:40 | → | GuerrillaMonkey joins (~Jeanne-Ka@static-198-54-134-62.cust.tzulo.com) |
| 19:24:16 | → | Guest99 joins (59217720@gateway/web/cgi-irc/kiwiirc.com/ip.89.33.119.32) |
| 19:25:04 | <tomsmeding> | seems so, indeed; TIL |
| 19:26:32 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@static-198-54-134-43.cust.tzulo.com) (Ping timeout: 260 seconds) |
| 19:26:48 | × | matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Ping timeout: 260 seconds) |
| 19:27:13 | × | icebreaker quits (michalc@unaffiliated/icebreaker) (Ping timeout: 264 seconds) |
| 19:27:30 | → | icebreaker joins (michalc@unaffiliated/icebreaker) |
| 19:27:45 | × | robotmay quits (~beepboop@2001:8b0:7af0:2580:9553:dae8:6cf1:18d0) (Ping timeout: 268 seconds) |
| 19:28:02 | → | robotmay joins (~beepboop@2001:8b0:7af0:2580:80b7:418d:2e2d:4473) |
| 19:29:00 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-rpdhzkafohuoilye) (Quit: Connection closed for inactivity) |
| 19:30:59 | × | kuribas quits (~user@ptr-25vy0i9jslvkgmof4mc.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 19:31:19 | ← | Guest99 parts (59217720@gateway/web/cgi-irc/kiwiirc.com/ip.89.33.119.32) () |
| 19:32:22 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Remote host closed the connection) |
| 19:32:36 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds) |
| 19:33:39 | <ProofTechnique> | dsal: https://stackoverflow.com/questions/49751139/how-to-combine-parsers-up-to-n-times-in-haskell Something like that might help? Not sure if that's _too_ restrictive for your case |
| 19:36:02 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz) |
| 19:36:24 | <dsal> | ProofTechnique: thanks. I'll play around a bit more. It's easy to do this with monadic parsers, but I'm doing it wrong down here. |
| 19:37:27 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) (Remote host closed the connection) |
| 19:38:06 | <ProofTechnique> | dsal: Also, a shockingly relevant answer from the author: https://stackoverflow.com/questions/25956558/optparse-applicative-backtracking |
| 19:39:02 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 19:39:07 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 19:39:11 | <dsal> | ProofTechnique: ha. Yes, that's it. |
| 19:39:58 | → | justsomeguy joins (~justsomeg@216.186.218.241) |
| 19:39:58 | × | justsomeguy quits (~justsomeg@216.186.218.241) (Changing host) |
| 19:39:58 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 19:40:17 | <dsal> | I'll just leave the error for later in the runtime. It's not a bad user experience and nobody will likely ever see this anyway. Just started doing more work this lib and had a few neat things come out of it. |
| 19:42:43 | × | xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 240 seconds) |
| 19:42:45 | → | boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
| 19:42:48 | × | denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Quit: ZNC 1.7.5 - https://znc.in) |
| 19:43:05 | → | denisse joins (~spaceCat@gateway/tor-sasl/alephzer0) |
| 19:44:04 | × | cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds) |
| 19:44:23 | × | carthia quits (~carthia@gateway/tor-sasl/carthia) (Ping timeout: 240 seconds) |
| 19:44:23 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Ping timeout: 240 seconds) |
| 19:44:24 | × | gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds) |
| 19:44:24 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
| 19:44:43 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds) |
| 19:45:03 | × | philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
| 19:45:04 | × | hekkaidekapus[ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 19:45:04 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
| 19:45:22 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 19:45:44 | × | tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds) |
| 19:46:03 | × | andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds) |
| 19:46:07 | → | carthia joins (~carthia@gateway/tor-sasl/carthia) |
| 19:46:27 | × | ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->) |
| 19:46:30 | → | aveltras joins (uid364989@gateway/web/irccloud.com/x-kccvjjqcpxkkewrw) |
| 19:47:13 | → | christo joins (~chris@81.96.113.213) |
| 19:47:14 | → | gxt joins (~gxt@gateway/tor-sasl/gxt) |
| 19:47:19 | → | cantstanya joins (~chatting@gateway/tor-sasl/cantstanya) |
| 19:49:37 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 19:49:43 | × | srk quits (~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds) |
| 19:49:43 | × | hexo quits (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds) |
| 19:50:43 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 19:51:14 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:53:29 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) |
| 19:54:18 | → | vicfred_ joins (~vicfred@unaffiliated/vicfred) |
| 19:54:44 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
| 19:55:02 | → | mp___ joins (~mp@hell.cx) |
| 19:56:13 | → | bitmapper joins (uid464869@gateway/web/irccloud.com/x-eafppdbbqgpahaet) |
| 19:56:55 | × | sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 256 seconds) |
| 19:56:57 | → | christo joins (~chris@81.96.113.213) |
| 19:57:03 | × | GuerrillaMonkey quits (~Jeanne-Ka@static-198-54-134-62.cust.tzulo.com) (Quit: Leaving) |
| 19:57:08 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Ping timeout: 256 seconds) |
| 19:57:46 | → | vicfred__ joins (~vicfred@unaffiliated/vicfred) |
| 19:57:52 | → | tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64) |
| 19:57:55 | → | hexo joins (~hexo@gateway/tor-sasl/hexo) |
| 19:57:55 | → | srk joins (~sorki@gateway/tor-sasl/sorki) |
| 19:57:58 | → | sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) |
| 19:57:58 | → | gioyik joins (~gioyik@179.32.228.107) |
| 19:57:59 | → | xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar) |
| 19:58:38 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 19:59:33 | → | philopsos joins (~caecilius@gateway/tor-sasl/caecilius) |
| 19:59:40 | → | jb55 joins (~jb55@gateway/tor-sasl/jb55) |
| 19:59:46 | → | matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
| 20:00:05 | × | geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 245 seconds) |
| 20:00:19 | × | vicfred_ quits (~vicfred@unaffiliated/vicfred) (Ping timeout: 246 seconds) |
| 20:00:28 | × | vicfred__ quits (~vicfred@unaffiliated/vicfred) (Client Quit) |
| 20:01:22 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 20:01:31 | → | hekkaidekapus[ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 20:01:42 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 20:06:28 | × | wonko7 quits (~wonko7@2a01:e35:2ffb:7040:aa95:463a:bcd8:60e4) (Ping timeout: 260 seconds) |
| 20:09:19 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) |
| 20:11:50 | × | bps quits (~bps@103.118.146.114) (Quit: Leaving) |
| 20:13:08 | → | al3x27 joins (~plovs@85.254.74.40) |
| 20:13:47 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) (Ping timeout: 260 seconds) |
| 20:15:58 | → | geekosaur joins (42d52137@66.213.33.55) |
| 20:16:09 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 20:19:25 | × | sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 240 seconds) |
| 20:20:07 | × | nyd quits (~nyd@unaffiliated/elysian) (Quit: nyd) |
| 20:20:41 | → | dfeuer joins (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) |
| 20:20:50 | → | acidjnk_new joins (~acidjnk@p200300d0c704e726458729e8ce1a3b25.dip0.t-ipconnect.de) |
| 20:20:53 | → | bor0 joins (~boro@unaffiliated/boro/x-000000001) |
| 20:20:54 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) |
| 20:21:36 | → | sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) |
| 20:22:01 | × | thallada quits (~thallada@fsf/member/thallada) (Ping timeout: 268 seconds) |
| 20:23:14 | → | wonko7 joins (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) |
| 20:25:49 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) |
| 20:26:42 | → | Deide joins (~Deide@217.155.19.23) |
| 20:30:41 | × | argento quits (~argent0@168.227.96.26) (Quit: leaving) |
| 20:32:10 | × | coot quits (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 20:35:31 | × | juuandyy quits (~juuandyy@90.166.144.65) (Quit: Konversation terminated!) |
| 20:35:52 | → | andreas303 joins (~andreas@gateway/tor-sasl/andreas303) |
| 20:36:03 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 20:37:23 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-rbphamfimqkpbxje) |
| 20:37:57 | → | neiluj joins (~jco@30.106.204.77.rev.sfr.net) |
| 20:37:57 | × | neiluj quits (~jco@30.106.204.77.rev.sfr.net) (Changing host) |
| 20:37:57 | → | neiluj joins (~jco@unaffiliated/neiluj) |
| 20:38:09 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 20:38:52 | × | hiroaki_ quits (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
| 20:39:41 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
| 20:40:01 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 20:43:36 | × | chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 20:44:00 | × | neiluj quits (~jco@unaffiliated/neiluj) (Remote host closed the connection) |
| 20:44:24 | → | neiluj joins (~jco@30.106.204.77.rev.sfr.net) |
| 20:45:01 | × | neiluj quits (~jco@30.106.204.77.rev.sfr.net) (Changing host) |
| 20:45:01 | → | neiluj joins (~jco@unaffiliated/neiluj) |
| 20:46:31 | × | ggole quits (~ggole@2001:8003:8119:7200:fc49:98ab:ef5a:2f0f) (Quit: Leaving) |
| 20:47:23 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
| 20:49:43 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
| 20:49:49 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
| 20:50:49 | × | bor0 quits (~boro@unaffiliated/boro/x-000000001) (Quit: Leaving) |
| 20:51:05 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 20:51:18 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 20:51:25 | → | hiroaki_ joins (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) |
| 20:51:44 | ← | mnrmnaugh parts (~mnrmnaugh@unaffiliated/mnrmnaugh) ("Leaving") |
| 20:54:46 | × | neiluj quits (~jco@unaffiliated/neiluj) (Ping timeout: 256 seconds) |
| 20:55:29 | → | neiluj joins (~jco@30.106.204.77.rev.sfr.net) |
| 20:56:22 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 20:56:29 | × | neiluj quits (~jco@30.106.204.77.rev.sfr.net) (Changing host) |
| 20:56:29 | → | neiluj joins (~jco@unaffiliated/neiluj) |
| 20:58:46 | × | mp___ quits (~mp@hell.cx) (Ping timeout: 246 seconds) |
| 21:06:12 | → | bisickcor joins (~username@117.200.6.145) |
| 21:06:14 | → | eruiucuiviucuiv joins (dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162) |
| 21:07:32 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:07:47 | → | ke4pcx joins (~ke4pcx@024-158-093-129.res.spectrum.com) |
| 21:08:08 | × | eruiucuiviucuiv quits (dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162) (Client Quit) |
| 21:08:57 | → | eruiucuiviucuiv joins (dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162) |
| 21:10:22 | × | iekfkk quits (~username@117.200.9.42) (Ping timeout: 260 seconds) |
| 21:11:10 | → | son0p joins (~son0p@181.136.122.143) |
| 21:14:57 | → | ezzieyguywuf joins (~Unknown@unaffiliated/ezzieyguywuf) |
| 21:15:16 | × | michalz quits (~user@185.246.204.81) (Remote host closed the connection) |
| 21:20:02 | → | pera joins (~pera@unaffiliated/pera) |
| 21:20:03 | → | knupfer joins (~Thunderbi@200116b82c7e8f006d2991337593e4d1.dip.versatel-1u1.de) |
| 21:20:37 | → | dan64- joins (~dan64@dannyadam.com) |
| 21:21:09 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 260 seconds) |
| 21:22:16 | × | dan64 quits (~dan64@dannyadam.com) (Ping timeout: 240 seconds) |
| 21:25:25 | × | neiluj quits (~jco@unaffiliated/neiluj) (Ping timeout: 264 seconds) |
| 21:25:44 | → | neiluj joins (~jco@30.106.204.77.rev.sfr.net) |
| 21:27:23 | × | neiluj quits (~jco@30.106.204.77.rev.sfr.net) (Changing host) |
| 21:27:23 | → | neiluj joins (~jco@unaffiliated/neiluj) |
| 21:28:06 | × | acertain quits (sid470584@gateway/web/irccloud.com/x-qeytvjvyzprldktf) (Ping timeout: 246 seconds) |
| 21:28:18 | × | gluegadget quits (sid22336@gateway/web/irccloud.com/x-dtblqsqvfgxmasgf) (Ping timeout: 264 seconds) |
| 21:28:31 | × | dmj` quits (sid72307@gateway/web/irccloud.com/x-vmhiwakulamkftfj) (Ping timeout: 272 seconds) |
| 21:28:31 | × | hamishmack quits (sid389057@gateway/web/irccloud.com/x-waeuuwgsuejagktr) (Ping timeout: 246 seconds) |
| 21:28:40 | × | Firedancer quits (sid336191@gateway/web/irccloud.com/x-xkgtkehsqkpbtolh) (Ping timeout: 258 seconds) |
| 21:28:41 | × | rann quits (sid175221@gateway/web/irccloud.com/x-mnfqxkvscoribbyj) (Read error: Connection reset by peer) |
| 21:28:43 | × | heyj quits (sid171370@gateway/web/irccloud.com/x-ofkusdzepocmjaiw) (Ping timeout: 260 seconds) |
| 21:28:47 | × | dsturnbull quits (sid347899@gateway/web/irccloud.com/x-vorxxyotrrrkmyad) (Read error: Connection reset by peer) |
| 21:29:05 | → | dsturnbull joins (sid347899@gateway/web/irccloud.com/x-lpnbxtxtmytjyfdn) |
| 21:29:05 | → | gluegadget joins (sid22336@gateway/web/irccloud.com/x-mzkaypjsiixomsyk) |
| 21:29:09 | × | SanchayanMaity quits (sid478177@gateway/web/irccloud.com/x-gmsaydqqxiwaogmm) (Ping timeout: 272 seconds) |
| 21:29:13 | → | rann joins (sid175221@gateway/web/irccloud.com/x-ovijerzeskjjnqsz) |
| 21:29:22 | → | acertain joins (sid470584@gateway/web/irccloud.com/x-btwolubrdhxdebcc) |
| 21:29:23 | → | hamishmack joins (sid389057@gateway/web/irccloud.com/x-ytehzspaibvviimj) |
| 21:29:59 | → | Firedancer joins (sid336191@gateway/web/irccloud.com/x-wwtwmrdjuxzlppmn) |
| 21:30:30 | × | eruiucuiviucuiv quits (dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162) (Quit: Connection closed) |
| 21:30:49 | → | dmj` joins (sid72307@gateway/web/irccloud.com/x-usztejhjqqsoahly) |
| 21:31:21 | → | SanchayanMaity joins (sid478177@gateway/web/irccloud.com/x-edlobfvvakeaqpnf) |
| 21:31:29 | → | heyj joins (sid171370@gateway/web/irccloud.com/x-mtsoiqubeqpujjfv) |
| 21:34:59 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 21:35:13 | × | roconnor quits (~roconnor@host-45-78-199-13.dyn.295.ca) (Read error: Connection reset by peer) |
| 21:36:43 | × | neiluj quits (~jco@unaffiliated/neiluj) (Ping timeout: 256 seconds) |
| 21:37:21 | → | neiluj joins (~jco@30.106.204.77.rev.sfr.net) |
| 21:37:36 | <merijn> | dsal: What was your question? |
| 21:39:33 | <merijn> | dsal: Oh, I see. Wouldn't it be much simpler to make the 1 and 2 argument cases subcommands of the 0 argument case? |
| 21:42:04 | × | motherfsck quits (~motherfsc@unaffiliated/motherfsck) (Remote host closed the connection) |
| 21:45:07 | × | geekosaur quits (42d52137@66.213.33.55) (Remote host closed the connection) |
| 21:45:36 | → | Lowl3v3l joins (~Lowl3v3l@dslb-084-062-101-233.084.062.pools.vodafone-ip.de) |
| 21:45:49 | × | neiluj quits (~jco@30.106.204.77.rev.sfr.net) (Ping timeout: 264 seconds) |
| 21:46:58 | <dsal> | merijn: That's how I did it initially, but they're effectively different commands. The command is 'config' where no args lists all things, one argument gets the current value, and two arguments sets a value. If I made them config-list, config-get, and config-set then this would be obvious, but I was hoping to do something a bit fancier. |
| 21:47:35 | <merijn> | dsal: |
| 21:47:36 | <dsal> | I did end up going a little better since all config parameters are known at compile time, so I can at least validate that if given and differentiate 0 from non-zero params. |
| 21:47:50 | <merijn> | dsal: No, I meant "make those subcommands of config" |
| 21:48:02 | <merijn> | So you get "config" "config set" "config get" or whatever |
| 21:48:10 | <merijn> | Subcommands can have subcommands |
| 21:48:17 | <merijn> | Nested arbitrarily deeply |
| 21:48:19 | <dsal> | Hmm... That's an idea. |
| 21:48:26 | <dsal> | Yeah, I might try that later. Thanks. |
| 21:48:29 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:48:34 | <merijn> | I think I have like 5 layers in my code, doing pretty much that :p |
| 21:48:36 | <dsal> | (I'm literally the only user here, but I'm enjoying the learning experience) |
| 21:48:53 | <merijn> | Although inverted |
| 21:49:08 | → | leafiest0 joins (~leafiest@165.227.53.12) |
| 21:49:17 | × | leafiest0 quits (~leafiest@165.227.53.12) (Client Quit) |
| 21:49:19 | <merijn> | So I have like "set foo bar 5" to update bar to 5 for foo |
| 21:51:47 | → | neiluj joins (~jco@30.106.204.77.rev.sfr.net) |
| 21:51:47 | <dsal> | I have three config parameters. heh. A lot of this code is unnecessary, just in case someone wants to use this program and not interact with sqlite directly. |
| 21:54:50 | <dsal> | I could also generate subcommands from my config parameters. That'd be interesting. |
| 21:55:04 | → | mp___ joins (~mp@hell.cx) |
| 21:55:47 | → | hexfive joins (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) |
| 21:56:16 | × | hexfive quits (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Client Quit) |
| 21:58:08 | <gentauro> | merijn: «If a program generates a lot of garbage, turning on multithreading (-threaded) and parallel garbage collection (-qg0 -N) may make it run faster.» https://notes.abhinavsarkar.net/2020/aoc-learnings |
| 21:58:12 | <gentauro> | :) |
| 21:58:35 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) |
| 22:00:31 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 22:00:42 | → | leafiest0 joins (~leafiest@165.227.53.12) |
| 22:01:19 | × | leafiest quits (~leafiest@c-73-118-152-9.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat) |
| 22:01:27 | → | aidecoe joins (~aidecoe@unaffiliated/aidecoe) |
| 22:01:44 | → | o1lo01ol1o joins (~o1lo01ol1@31.22.145.144) |
| 22:01:47 | <merijn> | That is...almost certainly incorrect |
| 22:01:48 | <pie_> | bitonic: how can i get cabal to show the gcc commands or what? i passed -v3 but no gcc commands afaict |
| 22:01:50 | leafiest0 | is now known as leafiest |
| 22:02:19 | <dcoutts> | pie_: you'd need to get ghc to show the gcc invocations. |
| 22:02:26 | <dcoutts> | use --ghc-options=-v iirc |
| 22:02:47 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 22:02:50 | <dcoutts> | cabal does not invoke gcc directly (much), ghc does it |
| 22:03:24 | <merijn> | gentauro: parallel GC may help if you have lots of *non*-garbage |
| 22:03:38 | <pie_> | mm ok |
| 22:03:56 | <merijn> | gentauro: And even then you don't want it to be parallel equal to number of capabilities like the default, you probably want a handful of threads at most |
| 22:04:23 | <gentauro> | merijn: the current API I'm working up against, only allow for 52 concurrent connections |
| 22:04:26 | <merijn> | gentauro: Also note that, iirc -qg and -qg0 don't do the same thing (not sure) |
| 22:04:34 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:05:32 | <gentauro> | so using `mapConcurrently` (`async`) without previous `chunkOf` gave a lot of "maximum connection reached" |
| 22:05:33 | → | Widget joins (~widget@2a04:ee41:6:7207:c11:a26b:c8ca:962a) |
| 22:05:42 | <gentauro> | 23:04 < merijn> gentauro: Also note that, iirc -qg and -qg0 don't do the same thing (not sure) |
| 22:05:56 | <gentauro> | merijn: it is, the `docs` says that the default value is zero so … |
| 22:06:22 | <merijn> | gentauro: Right and the default is bad :) |
| 22:06:22 | <gentauro> | https://downloads.haskell.org/~ghc/8.8.4/docs/html/users_guide/runtime_control.html#rts-flag--qg%20%E2%9F%A8gen%E2%9F%A9 |
| 22:06:36 | × | neiluj quits (~jco@30.106.204.77.rev.sfr.net) (Quit: leaving) |
| 22:07:33 | <gentauro> | merijn: so you would rather `hardcode` the zero in case it changes? |
| 22:07:43 | <merijn> | gentauro: No |
| 22:07:51 | <merijn> | You want "-qg" without the 0 at all |
| 22:07:58 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@static-198-54-134-148.cust.tzulo.com) |
| 22:07:59 | <merijn> | -qg0 still enables parallel GC |
| 22:08:08 | <merijn> | -qg (without any number) disables parallel GC |
| 22:08:09 | <gentauro> | roger that. It's what I'm using :) |
| 22:08:29 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.145.144) (Remote host closed the connection) |
| 22:08:32 | <merijn> | You almost certainly *don't* want parallel GC, as in most applications its considerably worse |
| 22:09:07 | <merijn> | Especially not in combination with -N |
| 22:09:40 | <gentauro> | merijn: I understand |
| 22:11:19 | → | MOSCOS joins (~MOSCOS@152.32.70.55) |
| 22:12:23 | <aljce> | Does anyone know how to coerce newtypes in accelerate? I have newtype Foo = Foo Word16 and I want to write the function fromWord16 :: Exp Word16 -> Exp Foo |
| 22:13:01 | × | Widget quits (~widget@2a04:ee41:6:7207:c11:a26b:c8ca:962a) (Ping timeout: 268 seconds) |
| 22:13:25 | × | hiroaki_ quits (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
| 22:14:12 | → | ransom joins (~c4264035@2a09:bac0:72::82f:c34) |
| 22:14:52 | × | Mikagami quits (~MOSCOS@122.54.107.175) (Ping timeout: 272 seconds) |
| 22:15:33 | → | Mikagami joins (~MOSCOS@122.54.107.175) |
| 22:16:05 | × | MOSCOS quits (~MOSCOS@152.32.70.55) (Ping timeout: 240 seconds) |
| 22:17:06 | × | rmk236 quits (~lcampos@2a02:908:3616:b100:849c:a12b:ff95:e193) (Quit: Leaving.) |
| 22:21:56 | × | dfeuer quits (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 22:23:52 | → | SeMas joins (uid32977@gateway/web/irccloud.com/x-ewxsbmmdfjckxyvi) |
| 22:24:40 | PM_me_your_fzf | is now known as dysfigured |
| 22:26:16 | → | hiroaki_ joins (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) |
| 22:26:21 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 22:26:57 | → | christo joins (~chris@81.96.113.213) |
| 22:30:09 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Remote host closed the connection) |
| 22:30:18 | × | knupfer quits (~Thunderbi@200116b82c7e8f006d2991337593e4d1.dip.versatel-1u1.de) (Quit: knupfer) |
| 22:30:29 | → | knupfer joins (~Thunderbi@200116b82c7e8f00c80444b93720a5cc.dip.versatel-1u1.de) |
| 22:30:31 | × | knupfer quits (~Thunderbi@200116b82c7e8f00c80444b93720a5cc.dip.versatel-1u1.de) (Client Quit) |
| 22:31:31 | → | knupfer joins (~Thunderbi@200116b82c7e8f0071cb7f91529dc1c7.dip.versatel-1u1.de) |
| 22:31:32 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 258 seconds) |
| 22:32:09 | × | knupfer quits (~Thunderbi@200116b82c7e8f0071cb7f91529dc1c7.dip.versatel-1u1.de) (Client Quit) |
| 22:32:18 | → | knupfer joins (~Thunderbi@200116b82c7e8f000014a7704583bd48.dip.versatel-1u1.de) |
| 22:32:42 | × | knupfer quits (~Thunderbi@200116b82c7e8f000014a7704583bd48.dip.versatel-1u1.de) (Client Quit) |
| 22:33:11 | → | knupfer joins (~Thunderbi@200116b82c7e8f0061e62b7ff26d62cd.dip.versatel-1u1.de) |
| 22:33:23 | × | knupfer quits (~Thunderbi@200116b82c7e8f0061e62b7ff26d62cd.dip.versatel-1u1.de) (Client Quit) |
| 22:33:49 | → | knupfer joins (~Thunderbi@200116b82c7e8f007188ba0de3569746.dip.versatel-1u1.de) |
| 22:33:50 | × | knupfer quits (~Thunderbi@200116b82c7e8f007188ba0de3569746.dip.versatel-1u1.de) (Read error: Connection reset by peer) |
| 22:34:51 | → | knupfer joins (~Thunderbi@200116b82c7e8f002d6363f423dba2c0.dip.versatel-1u1.de) |
| 22:35:23 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 22:35:25 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 22:35:41 | × | knupfer quits (~Thunderbi@200116b82c7e8f002d6363f423dba2c0.dip.versatel-1u1.de) (Client Quit) |
| 22:35:52 | → | knupfer joins (~Thunderbi@200116b82c7e8f0039b8789eeb6acf88.dip.versatel-1u1.de) |
| 22:37:37 | × | knupfer quits (~Thunderbi@200116b82c7e8f0039b8789eeb6acf88.dip.versatel-1u1.de) (Client Quit) |
| 22:37:44 | → | christo joins (~chris@81.96.113.213) |
| 22:37:45 | → | knupfer joins (~Thunderbi@200116b82c7e8f00bd6d1b305dfa49c4.dip.versatel-1u1.de) |
| 22:41:19 | → | Widget joins (~widget@2a04:ee41:6:7207:c11:a26b:c8ca:962a) |
| 22:41:37 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 265 seconds) |
| 22:44:49 | → | anhedonite joins (~anhedonit@c-73-78-103-7.hsd1.co.comcast.net) |
| 22:44:55 | ← | anhedonite parts (~anhedonit@c-73-78-103-7.hsd1.co.comcast.net) () |
| 22:45:54 | × | fendor_ quits (~fendor@178.165.130.45.wireless.dyn.drei.com) (Remote host closed the connection) |
| 22:46:03 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
| 22:46:32 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 22:47:27 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 22:49:32 | → | smitop joins (uid328768@gateway/web/irccloud.com/x-tanlhsstfzbvbzcf) |
| 22:50:45 | → | leat joins (~leat@128-71-108-164.broadband.corbina.ru) |
| 22:51:02 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds) |
| 22:51:26 | × | sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 256 seconds) |
| 23:00:32 | <sshine> | aljce, I don't know accellerate, but it sounds like you want 'fmap Foo'? |
| 23:00:44 | → | teardown_ joins (~user@gateway/tor-sasl/mrush) |
| 23:01:16 | × | mp___ quits (~mp@hell.cx) (Ping timeout: 246 seconds) |
| 23:01:47 | <sshine> | if 'Foo :: Word16 -> Foo', and Exp is a Functor, then 'fmap Foo :: Exp Word16 -> Exp Foo' |
| 23:01:55 | × | Tario quits (~Tario@200.119.186.210) (Ping timeout: 265 seconds) |
| 23:02:02 | → | Tario joins (~Tario@201.192.165.173) |
| 23:02:06 | × | boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
| 23:02:08 | <sshine> | sorry, accelerate. |
| 23:02:33 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 23:02:35 | <Melanie> | aljce: it looks like you want 'lift1 Foo' since I don't see a Functor instance for Exp |
| 23:02:45 | <Melanie> | granted I don't know accelerate either |
| 23:03:21 | <sshine> | I'm trying to compile the 'show-prettyprint' package against the latest Stackage. I'm getting a bunch of dependency problems related to trifecta-2.1. I can see on https://github.com/commercialhaskell/stackage/commit/f562e28566a8116a56310b24f415ece80249746e that some people have mitigated this by restricting themselves to trifecta < 2.1. but then I run into a bunch of upper bound constraints because the |
| 23:03:27 | <sshine> | older versions are, well, old. |
| 23:03:43 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
| 23:04:10 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 23:08:42 | × | pera quits (~pera@unaffiliated/pera) (Ping timeout: 272 seconds) |
| 23:08:51 | × | perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0) |
| 23:10:47 | × | pjb quits (~t@2a01cb04063ec5009cc234517582f902.ipv6.abo.wanadoo.fr) (Read error: Connection reset by peer) |
| 23:10:56 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 256 seconds) |
| 23:14:50 | → | mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
| 23:16:41 | × | ransom quits (~c4264035@2a09:bac0:72::82f:c34) (Read error: Connection reset by peer) |
| 23:17:31 | → | ransom joins (~c4264035@8.47.12.52) |
| 23:18:54 | × | knupfer quits (~Thunderbi@200116b82c7e8f00bd6d1b305dfa49c4.dip.versatel-1u1.de) (Quit: knupfer) |
| 23:19:09 | → | knupfer joins (~Thunderbi@200116b82c7e8f00084d19594ac0a1d9.dip.versatel-1u1.de) |
| 23:21:44 | × | mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 265 seconds) |
| 23:22:14 | × | yumh quits (~yumh@mail.xglobe.in) (Quit: ZNC - https://znc.in) |
| 23:25:07 | → | yumh joins (~yumh@mail.xglobe.in) |
| 23:25:42 | × | son0p quits (~son0p@181.136.122.143) (Quit: Lost terminal) |
| 23:26:01 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) (Remote host closed the connection) |
| 23:26:07 | → | dfeuer joins (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) |
| 23:26:12 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 23:26:38 | → | sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) |
| 23:26:47 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) |
| 23:28:42 | × | yumh quits (~yumh@mail.xglobe.in) (Remote host closed the connection) |
| 23:29:24 | <sshine> | if I don't 'allow-never: true', what is the shortest path forward for me? -- oh, this is funny. in my procrastination, I started looking at https://github.com/NorfairKing/sydtest/ and saw that it touted use of 'ppShow' which comes from 'pretty-show'. easy. :) |
| 23:29:53 | → | lawid joins (~quassel@dslb-178-005-075-009.178.005.pools.vodafone-ip.de) |
| 23:31:32 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) (Ping timeout: 260 seconds) |
| 23:32:01 | × | sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 264 seconds) |
| 23:33:23 | → | yumh joins (~yumh@mail.xglobe.in) |
| 23:33:58 | × | Rudd0 quits (~Rudd0@185.189.115.103) (Remote host closed the connection) |
| 23:35:36 | <sm[m]> | sshine: pretty-simple is also good |
| 23:37:17 | <sshine> | sm[m], ah. it has better overlap with my existing dependencies. thanks. |
| 23:38:31 | → | Tesseraction joins (~Tesseract@unaffiliated/tesseraction) |
| 23:46:17 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) |
| 23:47:49 | × | verement quits (~anonymous@cpe-76-167-229-223.san.res.rr.com) (Quit: verement) |
| 23:49:47 | × | yumh quits (~yumh@mail.xglobe.in) (Quit: ZNC - https://znc.in) |
| 23:49:47 | × | Gorbel quits (~Gorbel@p5790e186.dip0.t-ipconnect.de) (Quit: Gorbel) |
| 23:50:31 | → | yumh joins (~yumh@mail.xglobe.in) |
| 23:52:47 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) (Ping timeout: 260 seconds) |
| 23:52:56 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
| 23:54:09 | × | knupfer quits (~Thunderbi@200116b82c7e8f00084d19594ac0a1d9.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
| 23:54:32 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
| 23:55:03 | → | mp___ joins (~mp@hell.cx) |
| 23:56:27 | × | yumh quits (~yumh@mail.xglobe.in) (Quit: ZNC - https://znc.in) |
All times are in UTC on 2020-12-29.