{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE PolyKinds #-}
module Data.Grid.Internal.Identity where

import Data.Grid.Internal.Grid
import Data.Vector as V
import Data.Proxy
import GHC.TypeNats

-- idMatrix
--   :: forall (n :: Nat) (ns :: [Nat]) ind x
--    . (Num x, Dimensions (n : ns), Dimensions ns)
--   => Grid (n : ns) x
-- idMatrix = Grid ns
--  where
--   ns = V.generate (inhabitants @(n : ns)) thing
--   thing n = if n `mod` (inhabitants @ns + 1) == 0 then 1 else 0