The type is apparently not canonical, so strict and relaxed can appear without shared.  Fixes #13.
Stricter type checking for relational operators.  Fixes #18.