module Repr.Interpret (
    evalMany,
    evalManyOn,
) where

import Data.Foldable

import Deck.Diff

evalMany :: (Traversable t, DeckSYM m) => t (m (DeckRep m) -> m (DeckRep m)) -> m (DeckRep m)
evalMany = flip evalManyOn empty

evalManyOn :: (Traversable t, DeckSYM m) => t (m (DeckRep m) -> m (DeckRep m)) -> m (DeckRep m) -> m (DeckRep m)
evalManyOn = flip (foldl' (\acc f -> f acc))