Add one error test case
Split out utils
Split out predicates
Split out predicates and parsers
Split out checkable type compilation