{-# LANGUAGE QuantifiedConstraints, MonoLocalBinds, UndecidableInstances #-} module HordeAd.Core.AstInterpret ( ) where import Prelude import GHC.TypeLits (KnownNat) class Num (ranked r y) => BooleanMatchesYR ranked r y where instance Num (ranked r y) => BooleanMatchesYR ranked r y where class (forall rc42 y42. (Show rc42, Eq rc42, KnownNat y42) => c ranked rc42 y42) => CRankedY2 ranked c where instance (forall rc42 y42. (Show rc42, Eq rc42, KnownNat y42) => c ranked rc42 y42) => CRankedY2 ranked c where interpretAst :: forall ranked n r. ( Show r , Ord r , KnownNat n , CRankedY2 ranked BooleanMatchesYR , Tensor ranked ) => ranked r n -> ranked r n interpretAst arg = arg + arg class (forall r20 y20. (KnownNat y20, Ord r20) => c (ranked r20 y20)) => CRankedR ranked c where instance (forall r20 y20. (KnownNat y20, Ord r20) => c (ranked r20 y20)) => CRankedR ranked c where class CRankedR ranked Num => Tensor ranked where