21 lines
419 B
Haskell
21 lines
419 B
Haskell
{-# LANGUAGE ExistentialQuantification #-}
|
|
|
|
module Debris ( Debris(..)
|
|
, SomeDebris(..)
|
|
) where
|
|
|
|
import Tank
|
|
|
|
class Show a => Debris a where
|
|
collideTank :: a -> Tank -> Tank
|
|
|
|
|
|
data SomeDebris = forall a. Debris a => SomeDebris a
|
|
|
|
instance Show SomeDebris
|
|
where
|
|
show (SomeDebris a) = show a
|
|
|
|
instance Debris SomeDebris
|
|
where
|
|
collideTank (SomeDebris a) = collideTank a
|