country-0.2.4.2: src/Continent/Unsafe.hs
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
module Continent.Unsafe
( Continent (..)
, pattern Africa
, pattern Asia
, pattern Antarctica
, pattern Europe
, pattern NorthAmerica
, pattern Oceania
, pattern SouthAmerica
, continentNameDb
) where
import Data.Text (Text)
import Data.Word (Word8)
newtype Continent = Continent Word8
deriving (Eq, Ord, Enum)
{-# COMPLETE Africa, Asia, Antarctica, Europe, NorthAmerica, Oceania, SouthAmerica #-}
pattern Africa, Asia, Antarctica, Europe, NorthAmerica, Oceania, SouthAmerica :: Continent
pattern Africa = Continent 0
pattern Asia = Continent 1
pattern Antarctica = Continent 2
pattern Europe = Continent 3
pattern NorthAmerica = Continent 4
pattern Oceania = Continent 5
pattern SouthAmerica = Continent 6
continentNameDb :: [(Word8, Text, (Char, Char))]
continentNameDb =
[ (0, "Africa", ('A', 'F'))
, (1, "Asia", ('A', 'N'))
, (2, "Antarctica", ('A', 'S'))
, (3, "Europe", ('E', 'U'))
, (4, "North america", ('N', 'A'))
, (5, "Oceania", ('O', 'C'))
, (6, "South america", ('S', 'A'))
]
instance Bounded Continent where
minBound = Continent 0
maxBound = Continent 6
instance Show Continent where
show Africa = "Africa"
show Asia = "Asia"
show Antarctica = "Antarctica"
show Europe = "Europe"
show NorthAmerica = "NorthAmerica"
show Oceania = "Oceania"
show SouthAmerica = "SouthAmerica"