module PlutusCore.InlineUtils (InlineHints(..)) where import Data.Semigroup (Any (..)) newtype InlineHints name a = InlineHints { InlineHints name a -> a -> name -> Bool shouldInline :: a -> name -> Bool } deriving (b -> InlineHints name a -> InlineHints name a NonEmpty (InlineHints name a) -> InlineHints name a InlineHints name a -> InlineHints name a -> InlineHints name a (InlineHints name a -> InlineHints name a -> InlineHints name a) -> (NonEmpty (InlineHints name a) -> InlineHints name a) -> (forall b. Integral b => b -> InlineHints name a -> InlineHints name a) -> Semigroup (InlineHints name a) forall b. Integral b => b -> InlineHints name a -> InlineHints name a forall a. (a -> a -> a) -> (NonEmpty a -> a) -> (forall b. Integral b => b -> a -> a) -> Semigroup a forall a name. NonEmpty (InlineHints name a) -> InlineHints name a forall a name. InlineHints name a -> InlineHints name a -> InlineHints name a forall a name b. Integral b => b -> InlineHints name a -> InlineHints name a stimes :: b -> InlineHints name a -> InlineHints name a $cstimes :: forall a name b. Integral b => b -> InlineHints name a -> InlineHints name a sconcat :: NonEmpty (InlineHints name a) -> InlineHints name a $csconcat :: forall a name. NonEmpty (InlineHints name a) -> InlineHints name a <> :: InlineHints name a -> InlineHints name a -> InlineHints name a $c<> :: forall a name. InlineHints name a -> InlineHints name a -> InlineHints name a Semigroup, Semigroup (InlineHints name a) InlineHints name a Semigroup (InlineHints name a) -> InlineHints name a -> (InlineHints name a -> InlineHints name a -> InlineHints name a) -> ([InlineHints name a] -> InlineHints name a) -> Monoid (InlineHints name a) [InlineHints name a] -> InlineHints name a InlineHints name a -> InlineHints name a -> InlineHints name a forall a. Semigroup a -> a -> (a -> a -> a) -> ([a] -> a) -> Monoid a forall a name. Semigroup (InlineHints name a) forall a name. InlineHints name a forall a name. [InlineHints name a] -> InlineHints name a forall a name. InlineHints name a -> InlineHints name a -> InlineHints name a mconcat :: [InlineHints name a] -> InlineHints name a $cmconcat :: forall a name. [InlineHints name a] -> InlineHints name a mappend :: InlineHints name a -> InlineHints name a -> InlineHints name a $cmappend :: forall a name. InlineHints name a -> InlineHints name a -> InlineHints name a mempty :: InlineHints name a $cmempty :: forall a name. InlineHints name a $cp1Monoid :: forall a name. Semigroup (InlineHints name a) Monoid) via (a -> name -> Any) instance Show (InlineHints name a) where show :: InlineHints name a -> String show InlineHints name a _ = String "<inline hints>"