Francois Brodeur

Results 24 issues of Francois Brodeur

Have you given any thought on recursive row types? The classic implementation for a list goes as follow (in F#): ```fsharp type List

enhancement

Check #285 This is a WIP for now. It breaks a bunch of stuff.

```erlang -module(test2). -spec test1(integer()) -> integer() | zero. test1(0) -> zero; test1(I) -> I. -spec test2(integer()) -> integer() | zero. test2(I) -> case I of 0 -> zero; I ->...

```erlang -module(test2). -spec test(binary()) -> binary(). test(Bin) -> . ``` With verbose: ``` Checking module test2 Checking function test/1 4:1: Checking clause :: binary() 4:14: Checking that :: binary() 4:16:...

I came twice across this and it's a pretty frustrating experience: OTP finally exporting types/functions since 23. The examples I've seen so far: * supervisor's `startlink_ret` type * erlang's operators...

`nth1` and `nth4` passes. I think it shouldn't be too hard to get `nth3` to pass but `nth2` will require more finesse. It looks a bit like the guard work...

I know this is a feature that is supported by Erlang and the documentation even explains how it works but I feel Gradualizer could figure out if something should be...

Would it be possible to make sure the init function of a `gen_server:start` and `gen_server:start_link` check the init function? Considering we pass the module as the first argument, it *seems*...

I came along this example while playing with cowboy: https://github.com/ninenines/cowboy/blob/master/src/cowboy_http2.erl#L25-L68 I also recreated a simpler version: ```erlang -type one() :: #{ one => atom(), two => atom() }. -type opts()...

Hey guys. Was about to finish #245 when I got sidetracked a little bit. It seems like the refinement process when threading through the different function clauses is not as...