{-| 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