Boolean 0.1.0 → 0.1.1
raw patch · 3 files changed
+77/−4 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.Boolean.Overload: (&&) :: Boolean a => a -> a -> a
+ Data.Boolean.Overload: (/=) :: EqB a => a -> a -> BooleanOf a
+ Data.Boolean.Overload: (<) :: OrdB a => a -> a -> BooleanOf a
+ Data.Boolean.Overload: (<=) :: OrdB a => a -> a -> BooleanOf a
+ Data.Boolean.Overload: (==) :: EqB a => a -> a -> BooleanOf a
+ Data.Boolean.Overload: (>) :: OrdB a => a -> a -> BooleanOf a
+ Data.Boolean.Overload: (>=) :: OrdB a => a -> a -> BooleanOf a
+ Data.Boolean.Overload: (||) :: Boolean a => a -> a -> a
+ Data.Boolean.Overload: ifThenElse :: IfB a => BooleanOf a -> a -> a -> a
+ Data.Boolean.Overload: max :: (IfB a, OrdB a) => a -> a -> a
+ Data.Boolean.Overload: min :: (IfB a, OrdB a) => a -> a -> a
+ Data.Boolean.Overload: not :: Boolean a => a -> a
Files
- Boolean.cabal +4/−3
- src/Data/Boolean.hs +1/−1
- src/Data/Boolean/Overload.hs +72/−0
Boolean.cabal view
@@ -1,13 +1,14 @@ Name: Boolean-Version: 0.1.0-Cabal-Version: >= 1.6+Version: 0.1.1 Synopsis: Generalized booleans Category: Data+Cabal-Version: >= 1.6 Description: Some classes for generalized boolean operations. Starting with 0.1.0, this package uses type families. Up to version 0.0.2, it used MPTCs with functional dependencies. My thanks to Andy Gill for suggesting & helping with the change.+ Thanks also to Alex Horsman for the overloading module. . Copyright 2009-2012 Conal Elliott; BSD3 license. Author: Conal Elliott@@ -28,7 +29,7 @@ Build-Depends: base<5 Exposed-Modules: Data.Boolean- + Data.Boolean.Overload ghc-options: -Wall -- ghc-prof-options: -prof -auto-all
src/Data/Boolean.hs view
@@ -106,7 +106,7 @@ maxB :: (IfB a, OrdB a) => a -> a -> a u `maxB` v = ifB (u >=* v) u v --- | Variant of 'min' using 'ifB' and '(<=*)'+-- | Variant of 'min' and 'max' using 'ifB' and '(<=*)' sort2B :: (IfB a, OrdB a) => (a,a) -> (a,a) sort2B (u,v) = ifB (u <=* v) (u,v) (v,u)
+ src/Data/Boolean/Overload.hs view
@@ -0,0 +1,72 @@+{-# OPTIONS_GHC -Wall #-}++----------------------------------------------------------------------+-- |+-- Module : Data.Boolean.Overload+-- License : BSD3+-- +-- Author : Alex Horsman (aninhumer)+-- Maintainer : conal@conal.net+-- Stability : experimental+-- +-- +-- Definitions of Prelude function names in terms of their corresponding+-- Data.Boolean generalised implementation. This can then be used as part+-- of a partial or complete Prelude replacement.+--+-- Also exports ifThenElse for use with RebindableSyntax.+----------------------------------------------------------------------++module Data.Boolean.Overload+ ( module Data.Boolean,+ (&&), (||), not,+ ifThenElse,+ (==), (/=), + (<), (>), (<=), (>=),+ min, max+ ) where++import Data.Boolean+import Prelude hiding+ ( (&&), (||), not,+ (==), (/=), + (<), (>), (<=), (>=),+ min, max+ )++(&&) :: Boolean a => a -> a -> a+(&&) = (&&*)++(||) :: Boolean a => a -> a -> a+(||) = (||*)++not :: Boolean a => a -> a+not = notB+++-- For use with RebindableSyntax+ifThenElse :: IfB a => BooleanOf a -> a -> a -> a+ifThenElse = ifB+++(==) :: EqB a => a -> a -> BooleanOf a+(==) = (==*)+(/=) :: EqB a => a -> a -> BooleanOf a+(/=) = (/=*)+++(<) :: OrdB a => a -> a -> BooleanOf a+(<) = (<*)+(>) :: OrdB a => a -> a -> BooleanOf a+(>) = (>*)+(<=) :: OrdB a => a -> a -> BooleanOf a+(<=) = (<=*)+(>=) :: OrdB a => a -> a -> BooleanOf a+(>=) = (>=*)++min :: (IfB a, OrdB a) => a -> a -> a+min = minB+max :: (IfB a, OrdB a) => a -> a -> a+max = maxB++