Results 33 comments of Litchi Pi

> Maybe we could prevent this by (assuming that Bar is defined as Bar

One idea would be to have a unified type definition, and create pre-defined types `type Num = %num%`, `type Str = %str%`, etc ... to handle builtins types, while having...

After some experimentations, I arrive to a form like this which I find satisfactory: ``` let SharedObjectFile = fun label value => if builtins.isStr value then if strings.isMatch value m#"\.so$"#m...

It's not about applying a contract to a type, it's about telling that any field of type `ShareObjectPath` would have to be a `Str` satisfying the contracts `PathContact` and `SharedObjectFile`.

Let me explain a bit why contracts over types, the original example still stands, but is a bit less elegant: ``` let type t = { foo: Num } in...

Okay so in other words, what I was talking about is already possible and implemented. What you need is a syntactic sugar for re-used type annotations, and handling these type-annotations...

I have a problem dealing with a line in the `lalrpop` grammar: ``` CheckUnbound: Types = =>? check_unbound(&t, mk_span(src_id, l, r)).map_err(|e| lalrpop_util::ParseError::User{error: e}).and(Ok(t)); ``` It checks for unbound type variables,...

I tried to have the minimal amount of propagated inputs, and this setup should now work ! Also I squashed and rebased over `release-branch-maintenance` so it should be cherry-pickable if...

Well bad news I don't know why it worked but it didn't work twice Apparently you have to use double quotes instead, ``` diff single_quote_whitespaced() { if [[ $1 ==...