bed-and-breakfast-0.3.2: src/Numeric/Matrix/Sugar.hs
{-# LANGUAGE Haskell2010, TemplateHaskell #-}
module Numeric.Matrix.Sugar (
iMatrix, dMatrix
) where
import Numeric.Matrix
import Language.Haskell.TH
import Language.Haskell.TH.Quote
import Data.Data
import Data.Complex
import Data.Ratio
type ReadM a = String -> Matrix a
iMatrix = QuasiQuoter
(quoter (read :: ReadM Integer))
undefined undefined undefined
dMatrix = QuasiQuoter
(quoter (read :: ReadM Double))
undefined undefined undefined
quoter :: (Data e, MatrixElement e)
=> (String -> Matrix e) -> String -> Q Exp
quoter read str = do
let qExp = dataToExpQ (const Nothing) (toList (read str))
[e| fromList $qExp |]