packages feed

ca-0.0.0.1: Data/Neighborhood/Hex.hs

module Data.Neighborhood.Hex where

import Prelude hiding (Eq, Ord (..))
import qualified Prelude

import Relation.Binary.Comparison as A

data Nbhd = N0 | N1 | N2o | N2m | N2p | N3v | N3a | N3s | N4o | N4m | N4p | N5 | N6
  deriving (Prelude.Eq, Show, Enum)

instance PartialEq Nbhd where (≡) = (==)
instance Eq Nbhd

instance Preord Nbhd where
    N0  ≤ _   = True
    _   ≤ N0  = False
    _   ≤ N6  = True
    N6  ≤ _   = False

    N1  ≤ _   = True
    _   ≤ N1  = False
    _   ≤ N5  = True
    N5  ≤ _   = False

    N2o ≤ N2m = False
    N2o ≤ N2p = False
    N2o ≤ _   = True
    N2m ≤ N2o = False
    N2m ≤ N2p = False
    N2m ≤ _   = True
    N2p ≤ N2o = False
    N2p ≤ N2m = False
    N2p ≤ N3v = False
    N2p ≤ N3s = False
    N2p ≤ _   = True
    N3v ≤ N3v = True
    N3v ≤ N4o = True
    N3v ≤ N4m = True
    N3v ≤ _   = False
    N3a ≤ N3a = True
    N3a ≤ N4o = True
    N3a ≤ N4m = True
    N3a ≤ N4p = True
    N3a ≤ _   = True
    N3s ≤ N3s = True
    N3s ≤ N4m = True
    N3s ≤ _   = False
    _   ≤ _   = False

instance PartialOrd Nbhd