{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE AllowAmbiguousTypes #-} module Classes.Renderable where class Renderable a where type VertexObjects a :: * type ShaderObjects a :: * init :: VertexObjects a -> ShaderObjects a -> a -> IO () draw :: VertexObjects a -> ShaderObjects a -> a -> IO () clean :: a -> IO ()