The type-inference tag has no wiki summary.
5
votes
0answers
41 views
What makes type inference for dependent types undecidable?
I have seen it mentioned that dependent type systems are not inferable, but are checkable. I was wondering if there is a simple explanation of why that is so, and whether or not there is there a limit ...
0
votes
1answer
45 views
Is constant a variable or subtype?
I think of type as a range of values that the variable can take whereas the rest is known constant or does not matter. Variables (instances or objects), which share common properties, are considered ...
2
votes
0answers
47 views
Encoding row types
I'm working on a type system with extensible records, similar to ones explained in "A Polymorphic Type System for Extensible Records and Variants - Benedict R. Gaster and Mark P. Jones" and ...
3
votes
1answer
39 views
ML - Type Interface
From my recitation class -
Can you please explain
why does operator $"+"$ signature is $ int \rightarrow (int \rightarrow int)$ ?
How does this graph is build ?
And what is mean $t=u ...
4
votes
3answers
127 views
How can SML infer types like this?
Wikipedia says:
fun factorial n =
if n = 0 then 1 else n * factorial (n-1)
A Standard ML compiler is required to infer the static type int -> int of ...
8
votes
1answer
167 views
Concise example of exponential cost of ML type inference
It was brought to my attention that the cost of type inference in a functional language like OCaml can be very high. The claim is that there is a sequence of expressions such that for each expression ...
6
votes
1answer
97 views
Inferring refinement types
At work I’ve been tasked with inferring some type information about a dynamic language. I rewrite sequences of statements into nested let expressions, like so:
...
3
votes
1answer
148 views
Is the type inference here really complicated?
There's a question on SO asking why in Java the right type doesn't get picked in a concrete case. I know that Java can't do it in such "complicated" cases, but I'm asking myself WHY?
The (for ...