並行制約プログラミング
Janusは、GHCなどの並行論理プログラミング言語の影響を受けてSaraswatが開発した分散処理向け制約プログラミング言語で、多重集合と配列の書換えに基づく制約処理モデルを持つ。Janusの多重集合と配列とは循環を含んでよく、多重集合は無限の「超多重集合」を表現でき、配列は論理プログラミング言語での項(term)を拡張した、有限幅の無限木を表現できる。さらに、ローマ神話のヤーヌスの二つの顔のように、実行時に現れる同じ変数は2回(入力側と出力側)以下という構文的な制限があり、実行時に失敗することがない特性を持っている。Janusは並行論理プログラミング言語と同じく、ストリームに基づいたデータフロー型のプログラムを素直にプログラムできる。
また、Janusの機能を制限したLucyと呼ばれる言語でアクターモデルが自然に表現できるため、KahnとSaraswatはアクターモデルが並行制約プログラミングの特別なケースだと主張した 。