summaryrefslogtreecommitdiff
path: root/compiler/prelude/PrimOp.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/prelude/PrimOp.hs')
-rw-r--r--compiler/prelude/PrimOp.hs20
1 files changed, 7 insertions, 13 deletions
diff --git a/compiler/prelude/PrimOp.hs b/compiler/prelude/PrimOp.hs
index dbeade27bc..6b012ee5ea 100644
--- a/compiler/prelude/PrimOp.hs
+++ b/compiler/prelude/PrimOp.hs
@@ -38,7 +38,6 @@ import BasicTypes ( Arity, Fixity(..), FixityDirection(..), Boxity(..) )
import ForeignCall ( CLabelString )
import Unique ( Unique, mkPrimOpIdUnique )
import Outputable
-import FastTypes
import FastString
import Module ( PackageKey )
@@ -56,25 +55,20 @@ These are in \tr{state-interface.verb} order.
-- data PrimOp = ...
#include "primop-data-decl.hs-incl"
--- Used for the Ord instance
-
-primOpTag :: PrimOp -> Int
-primOpTag op = iBox (tagOf_PrimOp op)
-
-- supplies
--- tagOf_PrimOp :: PrimOp -> FastInt
+-- primOpTag :: PrimOp -> Int
#include "primop-tag.hs-incl"
-tagOf_PrimOp _ = error "tagOf_PrimOp: unknown primop"
+primOpTag _ = error "primOpTag: unknown primop"
instance Eq PrimOp where
- op1 == op2 = tagOf_PrimOp op1 ==# tagOf_PrimOp op2
+ op1 == op2 = primOpTag op1 == primOpTag op2
instance Ord PrimOp where
- op1 < op2 = tagOf_PrimOp op1 <# tagOf_PrimOp op2
- op1 <= op2 = tagOf_PrimOp op1 <=# tagOf_PrimOp op2
- op1 >= op2 = tagOf_PrimOp op1 >=# tagOf_PrimOp op2
- op1 > op2 = tagOf_PrimOp op1 ># tagOf_PrimOp op2
+ op1 < op2 = primOpTag op1 < primOpTag op2
+ op1 <= op2 = primOpTag op1 <= primOpTag op2
+ op1 >= op2 = primOpTag op1 >= primOpTag op2
+ op1 > op2 = primOpTag op1 > primOpTag op2
op1 `compare` op2 | op1 < op2 = LT
| op1 == op2 = EQ
| otherwise = GT