Could add constructions and rules for lists or arrays, but
in principle these notions can be represented in our system.
Not possible to define algorithms in our language.
We can axiomatize
the behavior of algorithms, but we cannot execute them in our language.
If wanted,
could add some formalism to define functions using pattern matching.
Such a formalism would also allow to
prove properties of algorithms in the language itself.
We do not have subtyping in our language, but we can simulate subtyping
by coercions.
Proof checkers like Lego and Coq can be used to perform tasks.