(original) (raw)

{-# LANGUAGE Trustworthy #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_HADDOCK print-explicit-runtime-reps #-}

module Data.Function ( id, const, (.), flip, ($)

, (&) , fix , on ) where

import GHC.Base ( ($), (.), id, const, flip )

infixl 0 on infixl 1 &

fix :: (a -> a) -> a fix :: forall a. (a -> a) -> a fix a -> a f = let x :: a x = a -> a f a x in a x

on :: (b -> b -> c) -> (a -> b) -> a -> a -> c b -> b -> c (.*.) on :: forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c on a -> b f = \a x a y -> a -> b f a x b -> b -> c .*. a -> b f a y

(&) :: a -> (a -> b) -> b a x & :: forall a b. a -> (a -> b) -> b & a -> b f = a -> b f a x