<commit_before>%
% (c) The AQUA Project, Glasgow University, 1994-1996
%

\section[PrelCCall]{Module @PrelCCall@}

\begin{code}
{-# OPTIONS -fno-implicit-prelude #-}

module PrelCCall (
	CCallable(..), CReturnable(..),
	Word(..)
   ) where

import PrelBase
import PrelGHC
\end{code}

%*********************************************************
%*							*
\subsection{Classes @CCallable@ and @CReturnable@}
%*							*
%*********************************************************

\begin{code}
instance CCallable Char
instance CCallable   Char#
instance CReturnable Char

instance CCallable   Int
instance CCallable   Int#
instance CReturnable Int

-- DsCCall knows how to pass strings...
instance CCallable   [Char]

instance CCallable   Float
instance CCallable   Float#
instance CReturnable Float

instance CCallable   Double
instance CCallable   Double#
instance CReturnable Double

data Word = W# Word# 	deriving (Eq, Ord) -- Glasgow extension

instance CCallable Word
instance CCallable Word#
instance CReturnable Word

instance CReturnable () -- Why, exactly?
\end{code}
<commit_msg>[project @ 1998-08-14 12:56:27 by sof] Define Int64 and Word64 types<commit_after>%
% (c) The AQUA Project, Glasgow University, 1994-1996
%

\section[PrelCCall]{Module @PrelCCall@}

\begin{code}
{-# OPTIONS -fno-implicit-prelude #-}

module PrelCCall (
	CCallable(..),
	CReturnable(..),

	Word(..),
	Word64(..),
	Int64(..)
   ) where

import PrelBase
import PrelGHC
\end{code}

%*********************************************************
%*							*
\subsection{Classes @CCallable@ and @CReturnable@}
%*							*
%*********************************************************

\begin{code}
instance CCallable Char
instance CCallable   Char#
instance CReturnable Char

instance CCallable   Int
instance CCallable   Int#
instance CReturnable Int

-- DsCCall knows how to pass strings...
instance CCallable   [Char]

instance CCallable   Float
instance CCallable   Float#
instance CReturnable Float

instance CCallable   Double
instance CCallable   Double#
instance CReturnable Double

data Word = W# Word# 	   deriving (Eq, Ord) -- Glasgow extension

instance CCallable Word
instance CCallable Word#
instance CReturnable Word


data Word64 = W64# Word64# --deriving (Eq, Ord) -- Glasgow extension
data Int64  = I64# Int64#  --deriving (Eq, Ord) -- Glasgow extension

instance CCallable   Word64
instance CCallable   Word64#
instance CReturnable Word64

instance CCallable   Int64
instance CCallable   Int64#
instance CReturnable Int64

instance CReturnable () -- Why, exactly?
\end{code}

{'fraction_non_alphanumeric': 0.17901716068642745, 'fraction_numerical': 0.02418096723868955, 'mean_word_length': 4.5280172413793105, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7216202', 'n_tokens_mistral': 880, 'n_tokens_neox': 827, 'n_words': 241}