2024/06/30

Newest at the top

2024-06-30 20:03:25 +0200 <mreh> I'm hoping I can actually tackle the stuff I want to do with types
2024-06-30 20:03:23 +0200 <nhar> Rembane: thnkx! I'm new to IRC and have no clue what I'm doing xD
2024-06-30 20:03:06 +0200 <mreh> nhar: has it been helpful?
2024-06-30 20:03:05 +0200 <Rembane> :D
2024-06-30 20:03:02 +0200 <lambdabot> not an expression: ‘-- Markdown block quotes doesn't really work here. :)’
2024-06-30 20:03:02 +0200 <lambdabot> <no location info>: error:
2024-06-30 20:03:01 +0200 <Rembane> > -- Markdown block quotes doesn't really work here. :)
2024-06-30 20:02:54 +0200 <nhar> And I thought it was a great read! Super duper helpful
2024-06-30 20:02:52 +0200 <mreh> OpenGL Shading Language
2024-06-30 20:02:33 +0200 <nhar> what is GLSL?
2024-06-30 20:02:23 +0200 <nhar> I'm not sure that that is...
2024-06-30 20:02:17 +0200 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
2024-06-30 20:02:17 +0200 <lambdabot> <hint>:1:23: error:
2024-06-30 20:02:15 +0200 <nhar> > I'm generating GLSL...
2024-06-30 20:01:21 +0200 <mreh> Thinking With Types is a pretty nice book.
2024-06-30 20:00:54 +0200 <mreh> nhar: I'm working on that
2024-06-30 20:00:43 +0200 <mreh> I'm generating GLSL and want to see if I can statically check all the vertex buffers and uniforms are there when it comes to run it
2024-06-30 20:00:36 +0200 <nhar> mreh: np! Not sure how user friendly it is - but if all else fails you could implement your own if your type-level-fu is up to it
2024-06-30 20:00:07 +0200soverysour(~soverysou@user/soverysour) (Ping timeout: 260 seconds)
2024-06-30 19:59:49 +0200 <mreh> nhar: thx
2024-06-30 19:59:45 +0200 <mreh> google is your friend
2024-06-30 19:58:57 +0200dcoutts(~duncan@ip-185-104-136-57.ptr.icomera.net) (Ping timeout: 256 seconds)
2024-06-30 19:58:53 +0200 <nhar> mreh: i found this: https://hackage.haskell.org/package/type-level-sets-0.7
2024-06-30 19:57:36 +0200 <mreh> Is there an equivalent to a Map at the type level?
2024-06-30 19:53:51 +0200 <Lawrence1erkheim> I think I get currying now*
2024-06-30 19:53:51 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-06-30 19:53:46 +0200 <Lawrence1erkheim> Wait no, let me fix that
2024-06-30 19:53:41 +0200 <Lawrence1erkheim> I get currying now
2024-06-30 19:53:33 +0200 <Lawrence1erkheim> Oh my lord computerphile are so goated
2024-06-30 19:53:16 +0200 <monochrom> A while ago I also thought about how to make >>= more theoretically pleasing. I haven't finished, but I think the first step is to flip the argument order, (a -> m b) -> (m a -> m b). Then it is just the unsurprising functor from the Kleisli category back to the original category.
2024-06-30 19:48:10 +0200 <lambdabot> (a -> b) -> a -> b
2024-06-30 19:48:09 +0200 <probie> :t ($)
2024-06-30 19:48:07 +0200 <lambdabot> Monad m => (a -> m b) -> m a -> m b
2024-06-30 19:48:06 +0200 <probie> :t (=<<)
2024-06-30 19:48:02 +0200 <lambdabot> a -> (a -> b) -> b
2024-06-30 19:48:01 +0200 <probie> :t (&)
2024-06-30 19:48:00 +0200 <lambdabot> Monad m => m a -> (a -> m b) -> m b
2024-06-30 19:47:58 +0200 <probie> :t (>>=)
2024-06-30 19:47:44 +0200 <probie> I'd say it's closer to `(.)`/`(&)`
2024-06-30 19:47:35 +0200 <lambdabot> Functor f => f a -> (a -> b) -> f b
2024-06-30 19:47:33 +0200 <mreh> :t (<&>)
2024-06-30 19:47:17 +0200 <Rembane> It's sadly quite hard to mix (<&>) and (>=>)
2024-06-30 19:46:55 +0200 <geekosaur> )
2024-06-30 19:46:52 +0200 <geekosaur> (the former being (>>=)
2024-06-30 19:46:43 +0200 <geekosaur> right, but you more often use pure computations in monadic contexts than you compose monadic operations
2024-06-30 19:46:40 +0200 <Rembane> ncf: Yes! Just add monads!
2024-06-30 19:46:26 +0200 <ncf> the (>=>)/(>>=) debate should be entirely analogous to the (.)/($) debate
2024-06-30 19:46:17 +0200 <Rembane> Monad composition
2024-06-30 19:46:14 +0200 <Rembane> Nah, it's composition
2024-06-30 19:46:12 +0200 <probie> I use `(>>=)` a lot more than `(>=>)`. `(>=>)` is nice for stating the laws because it's pretty much composition, but using it is about as ergonomic as writing all functions point-free