@@ -291,13 +291,20 @@ mkIty' (App (App (P _ (UN "FFunction") _) _) (App (P _ (UN "FAny") _) (App (P _
291mkIty' (App (App (P _ (UN "FFunction") _) _) _) = FFunction
291mkIty' (App (App (P _ (UN "FFunction") _) _) _) = FFunction
292mkIty' _ = FAny
292mkIty' _ = FAny
294+-- would be better if these FInt types were evaluated at compile time
295+-- TODO: add %eval directive for such things
294mkIty "FFloat" = FDouble
297mkIty "FFloat" = FDouble
295−mkIty "FChar" = FChar
298+mkIty "FInt" = mkIntIty "ITNative"
299+mkIty "FChar" = mkIntIty "IT8"
300+mkIty "FShort" = mkIntIty "IT16"
301+mkIty "FLong" = mkIntIty "IT64"
296mkIty "FString" = FString
302mkIty "FString" = FString
297mkIty "FPtr" = FPtr
303mkIty "FPtr" = FPtr
298mkIty "FUnit" = FUnit
304mkIty "FUnit" = FUnit
299mkIty "FFunction" = FFunction
305mkIty "FFunction" = FFunction
300mkIty "FFunctionIO" = FFunctionIO
306mkIty "FFunctionIO" = FFunctionIO
307+mkIty x = error $ "Unknown type " ++ x
302mkIntIty "ITNative" = FInt ITNative
309mkIntIty "ITNative" = FInt ITNative
303mkIntIty "IT8" = FInt IT8
310mkIntIty "IT8" = FInt IT8