{-# LANGUAGE GADTs #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeOperators #-}
{-# OPTIONS_HADDOCK hide #-}
module Data.Array.Accelerate.LLVM.Analysis.Match (
module Data.Array.Accelerate.Analysis.Match,
module Data.Array.Accelerate.LLVM.Analysis.Match,
) where
import Data.Array.Accelerate.Analysis.Match
import Data.Array.Accelerate.Array.Sugar
import Data.Typeable
matchShapeType
:: forall sh sh'. (Shape sh, Shape sh')
=> sh
-> sh'
-> Maybe (sh :~: sh')
matchShapeType _ _
| Just Refl <- matchTupleType (eltType (undefined::sh)) (eltType (undefined::sh'))
= gcast Refl
matchShapeType _ _
= Nothing