rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<discocaml>
<struktured> Has anyone run into getting an "incomplete" frame with https://github.com/vbmithr/ocaml-websocket ? It's a new problem for me, but when the payload size exceeds 2048 bytes the message gets truncated. I suppose it's possible the websocket service I'm connecting to changed but I doubt it.
rgrinberg has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
rgrinberg has joined #ocaml
<greenbagels>
It gets truncated instead of split into multiple frames?
pi3ce has quit [Quit: No Ping reply in 180 seconds.]
andrzejku has joined #ocaml
pi3ce has joined #ocaml
andrzejku has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
andrzejku has joined #ocaml
andrzejku has quit [Client Quit]
andrzejku has joined #ocaml
andrzejku has quit [Ping timeout: 245 seconds]
azimut has joined #ocaml
<discocaml>
<lukstafi> Hi! Why is my `index.mld` file highlighted top-to-bottom as OCaml code, could we avoid that? Makes it harder to notice unclosed `[...]` "inline" code blocks. (And also maybe `[...]` should be limited to truly being inline.)
mima has joined #ocaml
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mima has quit [Ping timeout: 252 seconds]
bartholin has joined #ocaml
azimut has quit [Remote host closed the connection]
<discocaml>
<lukstafi> Unrelated: what's your usual representation for a constant string set? Hashtable vs. regular expression.
azimut has joined #ocaml
bartholin has quit [Quit: Leaving]
Tuplanolla has joined #ocaml
waleee has joined #ocaml
azimut has quit [Remote host closed the connection]
azimut has joined #ocaml
waleee has quit [Ping timeout: 245 seconds]
waleee has joined #ocaml
rgrinberg has joined #ocaml
rgrinberg has quit [Client Quit]
rgrinberg has joined #ocaml
azimut has quit [Ping timeout: 240 seconds]
waleee has quit [Ping timeout: 256 seconds]
<discocaml>
<lukstafi> My first time encountering labels defeat parametricity in the wild: `This expression has type
<discocaml>
<lukstafi> loc:location -> structure_item list -> structure_item
<discocaml>
<lukstafi> but an expression was expected of type 'a -> 'b`
<rage>
is it bad to use Thread.delay inside of a Domain.spawn? should I be using something else?
<discocaml>
<lukstafi> My first time encountering labels defeat parametricity in the wild: `This expression has type
<discocaml>
<lukstafi> loc:location -> structure_item list -> structure_item
<discocaml>
<lukstafi> but an expression was expected of type 'a -> 'b` (ETA: solving it with eta-expansion.)
<discocaml>
<struktured> <greenbagels> The first frame does not have the full message, I guess. I'm trying to aggregate frames now but the async pipe mysteriously stops after the first one currently. Debugging it.
struktured has joined #ocaml
<discocaml>
<lukstafi> My first time encountering labels defeat parametricity in the wild: `This expression has type
<discocaml>
<lukstafi> loc:location -> structure_item list -> structure_item
<discocaml>
<lukstafi> but an expression was expected of type 'a -> 'b` (ETA: -solving it with eta-expansion- err, solved it by trial-and-error, not sure how the types actually expand.)
<discocaml>
<lukstafi> My first time encountering labels defeat parametricity in the wild: `This expression has type
<discocaml>
<lukstafi> loc:location -> structure_item list -> structure_item
<discocaml>
<lukstafi> but an expression was expected of type 'a -> 'b` (ETA: --solving it with eta-expansion-- err, solved it by trial-and-error, not sure how the types actually expand.)
<companion_cube>
rage : I don't think it's a problem to use thread.delay no
<discocaml>
<darrenldl> @leostera can i compose `App.t` in Minttea? or do a widget system of sort where each component has its own update function etc
<discocaml>
<leostera> yup! if you look at most of the components that’s how they are designed
<discocaml>
<darrenldl> how does it decide which one is in focus though?
azimut has joined #ocaml
<discocaml>
<intgrah> Is there a reason for the difference between
<discocaml>
<intgrah> ```ocaml
<discocaml>
<intgrah> type t = |
<discocaml>
<intgrah> type t' = ..
<discocaml>
<intgrah> type t''
<discocaml>
<intgrah> ``` which all represent the empty type?
<discocaml>
<intgrah> Only `t` can be matched with only a refutation case `function _ -> .` and is also the only one which is extensible by `type t += Foo`
<discocaml>
<intgrah> Is there a reason for the difference between
<discocaml>
<intgrah> ```ocaml
<discocaml>
<intgrah> type t = |
<discocaml>
<intgrah> type t' = ..
<discocaml>
<intgrah> type t''
<discocaml>
<intgrah> ``` which all represent the empty type?
<discocaml>
<intgrah> Only `t` can be matched with only a refutation case `let never : t -> int = function _ -> .` and is also the only one which is extensible by `type t += Foo`
<rage>
companion_cube: thanks
<discocaml>
<leostera> that’s up to you! not every TUI is built the same so the concept of focus doesn’t apply uniformly
<discocaml>
<_ggole> Only the first of those is actually the empty type
<discocaml>
<_ggole> `type t = ..` is an extensible type, and `type t` is abstract, not empty
<discocaml>
<leostera> for example you could keep a tabulation index and move the focus around
<discocaml>
<leostera> but most likely you’ll still want to call the update call on many other things (animated components for example)
<discocaml>
<darrenldl> yeah fair, i was thinking of mimicking mouse support from nottui
<discocaml>
<intgrah> what does an abstract type do? you can write this outside of module signatures too
<discocaml>
<darrenldl> fwiw i think ill most likely still stick with nottui (self adjusting computation sits bit better in my mind) but to either riot or miou
<discocaml>
<darrenldl> thanks for answering!
<discocaml>
<_ggole> Abstract doesn't allow the type checker to assume which values the type can and can't range over, unlike the empty type
<discocaml>
<intgrah> Ah I see, thank you
<discocaml>
<_ggole> For an example, see `stdlib.ml`, where there's `type in_channel` and `type out_channel`, and the only way to get values of those types is to call the provided primitives
<discocaml>
<_ggole> You might think of it as naming a type without giving any of the means to construct one
azimut has quit [Ping timeout: 240 seconds]
rgrinberg has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
waleee has joined #ocaml
azimut has joined #ocaml
<discocaml>
<froyo> yea even `t = ..` is inhabited (with constructors that are defined later)