{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TypeSynonymInstances #-}
module Discokitty.Examples.LesJustesUniverse
( Universe (..)
, UniverseN
, universe
, dim
)
where
import Discokitty
data Universe
= Universe
| Yanek
| Dora
| Boris
| Duke
| Stepan
| Nephew
| Skouratov
| Poet
| Revolutionary
| Terrorist
| Saviour
| Innocent
| Tsarist
| Alive
| Life
| Poetry
| Chemistry
| Propaganda
| Bomb
| IsTrue
| IsFalse
| IsRighteous
| IsWrong
| IsPlot
deriving (Eq, Show, Bounded, Enum, Ord)
universe :: [Universe]
universe = [minBound .. maxBound]
type UniverseN = [Universe]
instance Dim UniverseN where
dim = length