module PlutusTx.Function (fix) where

fix :: forall a b. ((a -> b) -> a -> b) -> a -> b
fix :: forall a b. ((a -> b) -> a -> b) -> a -> b
fix (a -> b) -> a -> b
f = let ~a -> b
x = (a -> b) -> a -> b
f a -> b
x in a -> b
x
{-# OPAQUE fix #-}