module NhcFloats ( floatToInt , doubleToInts ) where import NHC.GreenCard %fun floatToInt :: Float -> Int %call (float fl) %code % union { % float f; % int i; % } tmp; % tmp.f = fl; %result (int "tmp.i") %fun doubleToInts :: Double -> (Int,Int) %call (double db) %code % union { % double d; % int i[2]; % } tmp; % tmp.d = db; %result (int "tmp.i[0]", int "tmp.i[1]")