`type point`
`val ccw : point -> point -> point -> bool`

The counterclockwise relation `ccw p q r` states that the circle through points `(p,q,r)` is traversed counterclockwise when we encounter the points in cyclic order `p,q,r,p,...` *

`val in_circle : point -> point -> point -> point -> bool`

The relation `in_circle p q r s` states that `s` lies inside the circle `(p,q,r)` if `ccw p q r` is true, or outside that circle if `ccw p q r` is false.