{-# language DataKinds, TypeFamilyDependencies #-} module MnistRnnRanked2 where import Data.Kind (Type) import GHC.TypeLits (Nat) type family Value r where type family Ranked r = (t :: Nat -> Type) | t -> r rnnMnistZeroR :: Num (Value r) => r rnnMnistZeroR = undefined -- foo :: (Num (Value r), Ranked (Value r) 42 ~ Maybe (Value r)) => r foo :: Ranked (Value r) 42 ~ Maybe (Value r) => r foo = rnnMnistZeroR