Coming From Haskell¶
This is a short guide of things to keep in mind when using Catln for programmers from a Haskell background.
Arrow notation¶
Both Haskell and Catln use an arrow notation a -> b
in types. However, they have different meanings.
In Haskell, a -> b
would be read that you have a function which accepts an argument of type a
and returns a value of type b
.
If you see a -> b
in Catln, it means that something of type a
can be converted into something of type b
. For example, List -> Set
says that any list can be converted into a set.
To describe a function type, it would look like f(a) -> b
where f
is the function name or the argument name of the function. One benefit of this system is that having a name for f
makes it easy to describe the function. It is also possible to have classes of functions such as Monotonic f(a) -> b
where the class Monotonic
is applied to f
.