{-# OPTIONS_HADDOCK hide #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE LinearTypes #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Prelude.Linear.Internal where
import qualified Prelude as Prelude
import qualified Unsafe.Linear as Unsafe
import Data.Functor.Identity
($) :: (a %1-> b) %1-> a %1-> b
$ :: forall a b. (a %1 -> b) %1 -> a %1 -> b
($) a %1 -> b
f a
x = a %1 -> b
f a
x
infixr 0 $
(&) :: a %1-> (a %1-> b) %1-> b
a
x & :: forall a b. a %1 -> (a %1 -> b) %1 -> b
& a %1 -> b
f = a %1 -> b
f a
x
infixl 1 &
id :: a %1-> a
id :: forall a. a %1 -> a
id a
x = a
x
const :: a %1-> b -> a
const :: forall a b. a %1 -> b -> a
const a
x b
_ = a
x
asTypeOf :: a %1-> a -> a
asTypeOf :: forall a. a %1 -> a -> a
asTypeOf = a %1 -> a -> a
forall a b. a %1 -> b -> a
const
seq :: a -> b %1-> b
seq :: forall a b. a -> b %1 -> b
seq a
x = (b -> b) %1 -> b %1 -> b
forall a b (p :: Multiplicity). (a %p -> b) %1 -> a %1 -> b
Unsafe.toLinear (a -> b -> b
Prelude.seq a
x)
($!) :: (a %1-> b) %1-> a %1-> b
$! :: forall a b. (a %1 -> b) %1 -> a %1 -> b
($!) a %1 -> b
f !a
a = a %1 -> b
f a
a
curry :: ((a, b) %1-> c) %1-> a %1-> b %1-> c
curry :: forall a b c. ((a, b) %1 -> c) %1 -> a %1 -> b %1 -> c
curry (a, b) %1 -> c
f a
x b
y = (a, b) %1 -> c
f (a
x, b
y)
uncurry :: (a %1-> b %1-> c) %1-> (a, b) %1-> c
uncurry :: forall a b c. (a %1 -> b %1 -> c) %1 -> (a, b) %1 -> c
uncurry a %1 -> b %1 -> c
f (a
x,b
y) = a %1 -> b %1 -> c
f a
x b
y
(.) :: (b %1-> c) %1-> (a %1-> b) %1-> a %1-> c
b %1 -> c
f . :: forall b c a. (b %1 -> c) %1 -> (a %1 -> b) %1 -> a %1 -> c
. a %1 -> b
g = \a
x -> b %1 -> c
f (a %1 -> b
g a
x)
forget :: (a %1-> b) %1-> a -> b
forget :: forall a b. (a %1 -> b) %1 -> a -> b
forget a %1 -> b
f a
a = a %1 -> b
f a
a
runIdentity' :: Identity a %1-> a
runIdentity' :: forall a. Identity a %1 -> a
runIdentity' (Identity a
x) = a
x