sMartin Escardo 2012 \begin{code} {-# OPTIONS --safe --without-K #-} module EffectfulForcing.MFPSAndVariations.Combinators where open import MLTT.Spartan hiding (rec) ΔΆ : {X Y : π€ Μ } β X β Y β X ΔΆ x y = x Ε : {X Y Z : π€ Μ } β (X β Y β Z) β (X β Y) β X β Z Ε f g x = f x (g x) iter : {X : π€ Μ } β (X β X) β X β β β X iter f x 0 = x iter f x (succ n) = f (iter f x n) rec : {X : π€ Μ } β (β β X β X) β X β β β X rec f x 0 = x rec f x (succ n) = f n (rec f x n) \end{code}