For a start it's a discriminated union (a sum type), its set of values is:
a + 1
`a` is the values in the `Just` case, and 1 is the `Nothing` case. It's obvious why they're called sum-types when you view it like this.`Maybe a` is a type-lambda abstraction (still a type)
`Maybe Int` is a type-application, passing Int to the `Maybe a` type-lambda as an argument, to get a `Maybe Int` in return (still a type).