primops: Add some notes regarding the meaning of the "type" field
authorBen Gamari <ben@smart-cactus.org>
Tue, 26 Sep 2017 13:33:53 +0000 (09:33 -0400)
committerBen Gamari <ben@smart-cactus.org>
Tue, 26 Sep 2017 15:59:53 +0000 (11:59 -0400)
The overloading of "monadic" definitely deserved some explanation.

[skip ci]

compiler/prelude/primops.txt.pp

index f2c02ec..afe5849 100644 (file)
 -- processors of this file to easily get hold of simple info
 -- (eg, out_of_line), whilst avoiding parsing complex expressions
 -- needed for strictness info.
+--
+-- type refers to the general category of the primop. Valid settings include,
+--
+--  * Compare:   A comparison operation of the shape a -> a -> Int#
+--  * Monadic:   A unary operation of shape a -> a
+--  * Dyadic:    A binary operation of shape a -> a -> a
+--  * GenPrimOp: Any other sort of primop
+--
 
 -- The vector attribute is rather special. It takes a list of 3-tuples, each of
 -- which is of the form <ELEM_TYPE,SCALAR_TYPE,LENGTH>. ELEM_TYPE is the type of