a3: CircumcircularArc[A, M3, B]
  1. Create the hyperbolic line tool
Use the Boolean variables isDiameter and isIdeal to distinguish between the three cases. The isDiameter variable tests whether or not points A and B are collinear with O and isIdeal tests whether or not both A and B are on γ. Then use nested If[<Condition>, <Then>, <Else>] commands to combine the three cases. Note that in traditional programming languages, only the objects which are needed would be constructed. In this construction, however, the objects used in all three cases are always created and the nested If statement is used to display the valid object.