home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / MacHaskell 2.2 / progs / lib / cl / logop.hs < prev    next >
Encoding:
Text File  |  1994-09-27  |  1.4 KB  |  64 lines  |  [TEXT/YHS2]

  1. -- logop.hs -- logical operations on numbers
  2. --
  3. -- author :  Sandra Loosemore
  4. -- date   :  19 June 1993
  5. --
  6.  
  7. module LogOp where
  8.  
  9. import LogOpPrims  -- from logop-prims.hi
  10.  
  11. class LogOperand a where
  12.   logior    :: a -> a -> a
  13.   logxor    :: a -> a -> a
  14.   logand    :: a -> a -> a
  15.   logeqv    :: a -> a -> a
  16.   lognand    :: a -> a -> a
  17.   lognor    :: a -> a -> a
  18.   logandc1    :: a -> a -> a
  19.   logandc2    :: a -> a -> a
  20.   logorc1    :: a -> a -> a
  21.   logorc2    :: a -> a -> a
  22.   lognot    :: a -> a
  23.   logtest    :: a -> a -> a
  24.   logbitp    :: Int -> a -> a
  25.   ash        :: a -> Int -> a
  26.   logcount    :: a -> Int
  27.   integerLength :: a -> Int
  28.  
  29. instance LogOperand Integer where
  30.   logior    = logiorInteger
  31.   logxor    = logxorInteger
  32.   logand    = logandInteger
  33.   logeqv    = logeqvInteger
  34.   lognand    = lognandInteger
  35.   lognor    = lognorInteger
  36.   logandc1    = logandc1Integer
  37.   logandc2    = logandc2Integer
  38.   logorc1    = logorc1Integer
  39.   logorc2    = logorc2Integer
  40.   lognot    = lognotInteger
  41.   logtest    = logtestInteger
  42.   logbitp    = logbitpInteger
  43.   ash        = ashInteger
  44.   logcount    = logcountInteger
  45.   integerLength    = integerLengthInteger
  46.  
  47. instance LogOperand Int where
  48.   logior    = logiorInt
  49.   logxor    = logxorInt
  50.   logand    = logandInt
  51.   logeqv    = logeqvInt
  52.   lognand    = lognandInt
  53.   lognor    = lognorInt
  54.   logandc1    = logandc1Int
  55.   logandc2    = logandc2Int
  56.   logorc1    = logorc1Int
  57.   logorc2    = logorc2Int
  58.   lognot    = lognotInt
  59.   logtest    = logtestInt
  60.   logbitp    = logbitpInt
  61.   ash        = ashInt
  62.   logcount    = logcountInt
  63.   integerLength    = integerLengthInt
  64.