packages feed

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