Index: src/prelude/builtins.c
===================================================================
--- src/prelude/builtins.c	(revision 7aa257aec5e0711da5735ad9ea7b3b9bb7726176)
+++ src/prelude/builtins.c	(revision a5853962bf23b5d7a28c561f2c6749df02ac9144)
@@ -80,9 +80,14 @@
 } // ?\?
 
-static inline forall( otype T | { void ?{}( T & this, one_t ); T ?*?( T, T ); double ?/?( double, T ); } )
-double ?\?( T x, signed long int y ) {
-    if ( y >=  0 ) return (double)(x \ (unsigned long int)y);
-    else return 1.0 / x \ (unsigned long int)(-y);
-} // ?\?
+// FIXME (x \ (unsigned long int)y) relies on X ?\?(T, unsigned long) a function that is neither 
+// defined, nor passed as an assertion parameter. Without user-defined conversions, cannot specify 
+// X as a type that casts to double, yet it doesn't make sense to write functions with that type 
+// signature where X is double.
+
+// static inline forall( otype T | { void ?{}( T & this, one_t ); T ?*?( T, T ); double ?/?( double, T ); } )
+// double ?\?( T x, signed long int y ) {
+//     if ( y >=  0 ) return (double)(x \ (unsigned long int)y);
+//     else return 1.0 / x \ (unsigned long int)(-y);
+// } // ?\?
 
 static inline long int ?\=?( long int & x, unsigned long int y ) { x = x \ y; return x; }
