Let "M" be a monoid with identity element "e" and let "A" be the set of all subsets of "M". For two such subsets "S" and "T", let "S" + "T" be the union of "S" and "T" and set "ST" = {"st" : "s" in "S" and "t" in "T"}. "S"* is defined as the submonoid of "M" generated by "S", which can be described as {"e"} ∪ "S" ∪ "SS" ∪ "SSS" ∪ ... Then "A" forms a Kleene algebra with 0 being the empty set and 1 being {"e"}. An analogous construction can be performed for any small category.