packages feed

AERN-Basics-2011.1: src/Numeric/AERN/Basics/RefinementOrder/Extrema.hs

{-|
    Module      :  Numeric.AERN.Basics.RefinementOrder.Extrema
    Description :  types that have top and bottom  
    Copyright   :  (c) Michal Konecny, Jan Duracz
    License     :  BSD3

    Maintainer  :  mikkonecny@gmail.com
    Stability   :  experimental
    Portability :  portable
    
    Types that have top and bottom.
    
    This module is hidden and reexported via its parent RefinementOrder. 
-}
module Numeric.AERN.Basics.RefinementOrder.Extrema where

{-|
    A type with extrema.
-}
class (HasTop t, HasBottom t) => HasExtrema t

{-|
    A type with a top element.
-}
class HasTop t where
    top :: t

{-|
    A type with a top element.
-}
class HasBottom t where
    bottom :: t

-- | Convenience Unicode notation for 'top'
(⊤) :: (HasTop t) => t   
(⊤) = top

-- | Convenience Unicode notation for 'bottom'
(⊥) :: (HasBottom t) => t   
(⊥) = bottom