{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE TypeApplications #-} module Main where import Data.List.NonEmpty (NonEmpty(..)) --import qualified Data.List.NonEmpty as N import Cybus main :: IO () main = putStr $ show $ mm' @212 tst1 :: Mat (4 ':| [5,3]) Int tst1 = gen id tst2 :: Mat (4 ':| '[]) (Mat (5 ':| '[3]) Int) tst2 = toVec (gen @(4 ':| [5,3]) id) tst3 :: Mat (n ':| n1 ': ns) a -> Mat (n ':| '[]) (Mat (n1 ':| ns) a) tst3 = toVec tst4 :: Mat2 4 7 Int tst4 = mat2 @4 @3 [1..] `multMat` mat2 @3 @7 [1..] {- >tst3 (mm @234) Mat@[2] [Mat@[3,4] [ [1,2,3,4], [5,6,7,8], [9,10,11,12] ] ,Mat@[3,4] [ [13,14,15,16], [17,18,19,20], [21,22,23,24] ] ] it :: Mat (2 ':| '[]) (Mat (3 ':| '[4]) Int) -}