Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data K
- data Linear z r c k where
- type family KMerge a b :: K
- type family KRep a :: * -> *
- toR :: Rep c => Linear z r c k -> Linear z r c KR
- z :: Rep c => z -> Z c -> Linear z r c KZ
- z1 :: Rep c => z -> Linear z r c KZ
- r :: Rep c => r -> R c -> Linear z r c KR
- r1 :: Rep c => r -> Linear z r c KR
- con :: Rep c => Z c -> Linear z r c KZ
- c0 :: Rep c => Linear z r c KZ
- c1 :: Rep c => Linear z r c KZ
- on2 :: (b -> c) -> (a, b) -> (a, c)
- neg :: Rep c => Linear z r c k -> Linear z r c k
- (.*) :: Rep c => Linear z r c k -> KRep k c -> Linear z r c k
- (*.) :: Rep c => KRep k c -> Linear z r c k -> Linear z r c k
- (.+.) :: Rep c => Linear z r c k1 -> Linear z r c k2 -> Linear z r c (KMerge k1 k2)
- (.-.) :: Rep c => Linear z r c k1 -> Linear z r c k2 -> Linear z r c (KMerge k1 k2)
- eval :: (Rep c, Ord z, Ord r) => Assignment z r c -> Linear z r c k -> KRep k c
- evalR :: (Rep c, Ord z, Ord r) => Assignment z r c -> Linear z r c k -> R c
Documentation
toR :: Rep c => Linear z r c k -> Linear z r c KR Source
Any linear function can be made into a real, as it is the upper bound / top