class (Lattice a) <= BooleanAlgebra a where
complement :: a -> a
instance booleanBoolean :: BooleanAlgebra Boolean
booleanNegate :: Boolean -> Boolean
not :: forall b. (BooleanAlgebra b) => b -> b
class (JoinSemilattice l) <= LowerSemilattice l where
bottom :: l
class (MeetSemilattice l) <= UpperSemilattice l where
top :: l
instance lowerSemilatticeBoolean :: LowerSemilattice Boolean
instance upperSemilatticeBoolean :: UpperSemilattice Boolean
class (AbelianAddMonoid g, AddGroup g) <= AbelianAddGroup g where
class (AbelianMonoid g, Group g) <= AbelianGroup g where
class (AbelianMultMonoid g, MultGroup g) <= AbelianMultGroup g where
class (AddMonoid g) <= AddGroup g where
negate :: g -> g
(-) :: g -> g -> g
class (Monoid g) <= Group g where
inverse :: g -> g
class (MultMonoid g) <= MultGroup g where
recip :: g -> g
(/) :: g -> g -> g
instance abelianAddGroup :: AbelianAddGroup Number
instance abelianMultGroup :: AbelianMultGroup Number
instance additiveNumber :: AddGroup Number
instance multiplicativeNumber :: MultGroup Number
numDivide :: Number -> Number -> Number
numMinus :: Number -> Number -> Number
class (LowerSemilattice l, UpperSemilattice l) <= Lattice l where
instance latticeBoolean :: Lattice Boolean
class (LeftModule m r, RightModule m r) <= Module m r where
class (AbelianAddSemigroup m, AddMonoid m) <= AbelianAddMonoid m where
class (AbelianSemigroup m, Monoid m) <= AbelianMonoid m where
class (AbelianMultSemigroup m, MultMonoid m) <= AbelianMultMonoid m where
class (AddSemigroup m) <= AddMonoid m where
zero :: m
class (Semigroup m) <= Monoid m where
mempty :: m
class (MultSemigroup m) <= MultMonoid m where
one :: m
instance abelianAddMonoid :: AbelianAddMonoid Number
instance abelianMultMonoid :: AbelianMultMonoid Number
instance additiveNumber :: AddMonoid Number
instance monoidString :: Monoid String
instance multiplicativeNumber :: MultMonoid Number
class (AbelianAddMonoid r, MultMonoid r) <= Rig r where
class (AbelianAddGroup r, MultMonoid r) <= Ring r where
class (AbelianAddGroup r, MultSemigroup r) <= Rng r where
instance ringNumber :: Ring Number
class (AddSemigroup s) <= AbelianAddSemigroup s where
class (MultSemigroup s) <= AbelianMultSemigroup s where
class (Semigroup s) <= AbelianSemigroup s where
class AddSemigroup s where
(+) :: s -> s -> s
class MultSemigroup s where
(*) :: s -> s -> s
class Semigroup s where
(<>) :: s -> s -> s
instance abelianAddSemigroup :: AbelianAddSemigroup Number
instance abelianMultSemigroup :: AbelianMultSemigroup Number
instance additiveNumber :: AddSemigroup Number
instance multiplicativeNumber :: MultSemigroup Number
instance semigroupString :: Semigroup String
numPlus :: Number -> Number -> Number
numTimes :: Number -> Number -> Number
strConcat :: String -> String -> String
class JoinSemilattice j where
(\/) :: j -> j -> j
class MeetSemilattice m where
(/\) :: m -> m -> m
instance joinSemilatticeBoolean :: JoinSemilattice Boolean
instance meetSemilatticeBoolean :: MeetSemilattice Boolean
booleanAnd :: Boolean -> Boolean -> Boolean
booleanOr :: Boolean -> Boolean -> Boolean
class (AbelianAddGroup m, Ring r) <= LeftModule m r where
(*<) :: r -> m -> m
class (AbelianAddGroup m, Ring r) <= RightModule m r where
(>*) :: m -> r -> m