Top "Type-systems" questions

Type systems impose constraints on what programs may be written, by providing a syntactic method for operating with those constraints.

Dynamic type languages versus static type languages

What are the advantages and limitations of dynamic type languages compared to static type languages? See also: whats with the …

programming-languages dynamic-languages type-systems
Difference between static and dynamic programming languages

What is the different between static and dynamic programming languages? I know that it is all about type systems but …

dynamic static programming-languages type-systems
Small and good scala projects to learn scala -- especially functional programming and type system

I've studied scala for several months, but still at the beginner level. Now I found I have huge trouble with …

scala functional-programming type-systems
Why is there "data" and "newtype" in Haskell?

It seems that a newtype definition is just a data definition that obeys some restrictions (e.g., only one constructor), …

haskell types language-design type-systems
What is an existential type?

I read through the Wikipedia article Existential types. I gathered that they're called existential types because of the existential operator (∃). …

language-agnostic types type-systems existential-type
What does it mean to say a type is "boxed"?

I have heard of types being referred to as "boxed" in some languages. In Java, I have heard of "autoboxing". …

java types terminology type-systems autoboxing
Difference between `data` and `newtype` in Haskell

What is the difference when I write this? data Book = Book Int Int versus newtype Book = Book (Int, Int) -- "…

haskell types type-systems newtype
What does the `#` operator mean in Scala?

I see this code in this blog: Type-Level Programming in Scala: // define the abstract types and bounds trait Recurse { type …

scala type-systems
Why can't I use the as keyword for a struct?

I defined the following struct: public struct Call { public SourceFile caller; public SourceFile callee; public Call(SourceFile caller, SourceFile callee) { …

c# .net casting type-systems as-operator
OCaml Printf.sprintf

Why does this behavior occur? # Printf.sprintf ("Foo %d %s") 2 "bar";; - : string = "Foo 2 bar" # Printf.sprintf ("Foo %d" ^ " %s") 2 "…

ocaml printf type-systems