Primitive Domains
What happens if we try to evaluate
substr ((A concat (B concat C)), one , four)
We need to use error => add an error element to String and
extend all other operations appropriately.
The one element domain
Domain Unit,
Operations
This domain may be used whenever an operation needs a dummy
arguments e.g.let f: Unit ? Nat be f(x) = one; thus f() = one.