blas-0.6: Data/Matrix/Banded/ST.hs
{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, UndecidableInstances,
Rank2Types #-}
-----------------------------------------------------------------------------
-- |
-- Module : Data.Matrix.Banded.ST
-- Copyright : Copyright (c) , Patrick Perry <patperry@stanford.edu>
-- License : BSD3
-- Maintainer : Patrick Perry <patperry@stanford.edu>
-- Stability : experimental
--
module Data.Matrix.Banded.ST (
-- * The @STBanded@ data type
STBanded,
runSTBanded,
unsafeIOBandedToSTBanded,
unsafeSTBandedToIOBanded,
module Data.Matrix.Banded.Class,
) where
import Control.Monad.ST
import Data.Matrix.Banded.Internal( Banded(..) )
import Data.Matrix.Banded.Class
import Data.Matrix.Banded.Class.Internal( STBanded, unsafeIOBandedToSTBanded,
unsafeSTBandedToIOBanded )
runSTBanded :: (forall s . ST s (STBanded s mn e)) -> Banded mn e
runSTBanded x = runST $ x >>= return . B . unsafeSTBandedToIOBanded