edge-0.8.18: AfterEffect.hs
{-# LANGUAGE ExistentialQuantification #-}
module AfterEffect ( AfterEffect (..) ) where
import Animation (Audible(..), Animation(..))
import Updating (InternallyUpdating(..), Transient(..))
import Moving (Locatable(..))
data AfterEffect =
forall a. ( Animation a
, Locatable a
, Transient a
, Audible a
) => AfterEffect a
instance InternallyUpdating AfterEffect where
preUpdate (AfterEffect a) et = AfterEffect (preUpdate a et)
postUpdate (AfterEffect a) et = AfterEffect (postUpdate a et)
instance Transient AfterEffect where
expired' (AfterEffect a) = expired' a
instance Audible AfterEffect where
processAudio (AfterEffect a) c = do b <- processAudio a c
return (AfterEffect b)
terminateAudio (AfterEffect a) = do b <- terminateAudio a
return (AfterEffect b)