In order to study the axiomatization of the if-then-else construct over possibly non-halting programs and tests, the notion of C-sets was introduced in the literature by considering the tests from an abstract C-algebra. This paper extends the notion of C-sets to C-monoids which include the composition of programs as well as composition of programs with tests. For the class of C-monoids where the C-algebras are adas a canonical representation in terms of functional C-monoids is obtained.2010 Mathematics Subject Classification. 08A70, 03G25 and 68N15.There are multiple studies (e.g., see [3,7,13,14]) on extending two-valued Boolean logic to three-valued logic. However McCarthy's logic (cf. [17]) is distinct in that it models the short-circuit evaluation exhibited by programming languages that evaluate expressions in sequential order, from left to right. In [6] Guzmán and Squier gave a complete axiomatization of McCarthy's three-valued logic and called the corresponding algebra a C-algebra, or the algebra of conditional logic. While studying if-then-else algebras in [15], Manes defined an ada (Algebra of Disjoint Alternatives) which is essentially a C-algebra equipped with an oracle for the halting problem.Jackson and Stokes in [11] studied the algebraic theory of computable functions, which can be viewed as possibly non-halting programs, together with composition, if-then-else and while-do. In this work they assumed that the tests form a Boolean algebra. Further, they demonstrated how an algebra of non-halting tests could be constructed from Boolean tests in their setting. Jackson and Stokes proposed an alternative approach by considering an abstract collection of non-halting tests and posed the following problem:Characterize the algebras of computable functions associated with an abstract C-algebra of non-halting tests.The authors in [19] have approached the problem by adopting the approach of Jackson and Stokes in [10]. The notion of a C-set was introduced through which a complete axiomatization for if-then-else over a class of possibly non-halting programs and tests, where tests are drawn from an ada, was provided.In this paper, following the approach of Jackson and Stokes in [10], we extend the notion of C-sets to include composition of possibly non-halting programs and of these programs with possibly non-halting tests. This object is termed a Cmonoid and we show that every C-monoid where the tests are drawn from an ada is embeddable in a canonical model of C-monoids, viz., functional C-monoids.