Ho un numero di livello aUncurry per funzioni n-ario
data Z deriving Typeable
data S n deriving Typeable
e n-ario funzioni (codice dal pacchetto-vector fissa)
-- | Type family for n-ary functions.
type family Fn n a b
type instance Fn Z a b = b
type instance Fn (S n) a b = a -> Fn n a b
-- | Newtype wrapper which is used to make 'Fn' injective. It's also a
-- reader monad.
newtype Fun n a b = Fun { unFun :: Fn n a b }
ho bisogno funzione come
uncurryN :: Fun (n + k) a b -> Fun n a (Fun k a b)
Ho letto diversi articoli sui calcoli a livello di caratteri, ma tutto sulla concatenazione di tipo lista sicura.
Tipo concatenazione lista sicura? Da quando quello standard non è sicuro? –
@uraf Forse è con liste eterogenee. – AndrewC