{-# LANGUAGE TypeFamilies #-} module Numeric.LAPACK.Matrix.Hermitian.Private where import Numeric.LAPACK.Scalar (RealOf) newtype Diagonal f g a = Diagonal {Diagonal f g a -> g (RealOf a) -> f a runDiagonal :: g (RealOf a) -> f a} newtype TakeDiagonal f g a = TakeDiagonal {TakeDiagonal f g a -> f a -> g (RealOf a) runTakeDiagonal :: f a -> g (RealOf a)} newtype Determinant f a = Determinant {Determinant f a -> f a -> RealOf a getDeterminant :: f a -> RealOf a}