···11+{-# LANGUAGE DataKinds #-}
22+{-# LANGUAGE TypeOperators #-}
33+{-# LANGUAGE RankNTypes #-}
44+{-# LANGUAGE TypeApplications #-}
55+66+module CHMM where
77+88+import Prelude(undefined)
99+import Papa
1010+1111+import GHC.TypeNats
1212+import Data.Proxy
1313+import Linear.V
1414+import Combinatorics
1515+import qualified Data.Vector as Vec
1616+1717+-----------------------
1818+1919+trajectory :: forall n t a . (KnownNat n, KnownNat t) => Proxy t -> V n a -> V (n ^ t) (V n a)
2020+trajectory p = V . Vec.fromList . fmap (V . Vec.fromList) . variateRep t . toList
2121+ where
2222+ t = fromIntegral $ natVal p