@@ -29,7 +29,6 @@ module Prelude
2929 , ComplementedLattice, not
3030 , DistributiveLattice
3131 , BooleanAlgebra
32− , Bits, (.&.), (.|.), (.^.), shl, shr, zshr, complement
3332 ) where
3433
3534 -- | The `Unit` type has a single inhabitant, called `unit`. It represents values with no computational content.
@@ -874,90 +873,6 @@ module Prelude
874873 }
875874 """ :: Boolean -> Boolean
876875
877− infixl 10 .&.
878− infixl 10 .|.
879− infixl 10 .^.
880−
881− -- | The `Bits` type class identifies types which support bitwise operations.
882− class Bits b where
883− (.&.) :: b -> b -> b
884− (.|.) :: b -> b -> b
885− (.^.) :: b -> b -> b
886− shl :: b -> Number -> b
887− shr :: b -> Number -> b
888− zshr :: b -> Number -> b
889− complement :: b -> b
890−
891− instance bitsNumber :: Bits Number where
892− (.&.) = numAnd
893− (.|.) = numOr
894− (.^.) = numXor
895− shl = numShl
896− shr = numShr
897− zshr = numZshr
898− complement = numComplement
899−
900− foreign import numAnd
901− """
902− function numAnd(n1) {
903− return function(n2) {
904− return n1 & n2;
905− };
906− }
907− """ :: Number -> Number -> Number
908−
909− foreign import numOr
910− """
911− function numOr(n1) {
912− return function(n2) {
913− return n1 | n2;
914− };
915− }
916− """ :: Number -> Number -> Number
917−
918− foreign import numXor
919− """
920− function numXor(n1) {
921− return function(n2) {
922− return n1 ^ n2;
923− };
924− }
925− """ :: Number -> Number -> Number
926−
927− foreign import numShl
928− """
929− function numShl(n1) {
930− return function(n2) {
931− return n1 << n2;
932− };
933− }
934− """ :: Number -> Number -> Number
935−
936− foreign import numShr
937− """
938− function numShr(n1) {
939− return function(n2) {
940− return n1 >> n2;
941− };
942− }
943− """ :: Number -> Number -> Number
944−
945− foreign import numZshr
946− """
947− function numZshr(n1) {
948− return function(n2) {
949− return n1 >>> n2;
950− };
951− }
952− """ :: Number -> Number -> Number
953−
954− foreign import numComplement
955− """
956− function numComplement(n) {
957− return ~n;
958− }
959− """ :: Number -> Number
960−
961876module Data.Function where
962877
963878 -- | The `on` function is used to change the domain of a binary operator.