Module

Control.Monad.ST.Uncurried

Package
purescript-st
Repository
purescript/purescript-st

This module defines types for STf uncurried functions, as well as functions for converting back and forth between them.

The general naming scheme for functions and types in this module is as follows:

  • STFn{N} means, an uncurried function which accepts N arguments and performs some STs. The first N arguments are the actual function's argument. The last type argument is the return type.
  • runSTFn{N} takes an STFn of N arguments, and converts it into the normal PureScript form: a curried function which returns an ST action.
  • mkSTFn{N} is the inverse of runSTFn{N}. It can be useful for callbacks.

#STFn1 Source

data STFn1 :: Type -> Region -> Type -> Typedata STFn1 t0 t1 t2

#STFn2 Source

data STFn2 :: Type -> Type -> Region -> Type -> Typedata STFn2 t0 t1 t2 t3

#STFn3 Source

data STFn3 :: Type -> Type -> Type -> Region -> Type -> Typedata STFn3 t0 t1 t2 t3 t4

#STFn4 Source

data STFn4 :: Type -> Type -> Type -> Type -> Region -> Type -> Typedata STFn4 t0 t1 t2 t3 t4 t5

#STFn5 Source

data STFn5 :: Type -> Type -> Type -> Type -> Type -> Region -> Type -> Typedata STFn5 t0 t1 t2 t3 t4 t5 t6

#STFn6 Source

data STFn6 :: Type -> Type -> Type -> Type -> Type -> Type -> Region -> Type -> Typedata STFn6 t0 t1 t2 t3 t4 t5 t6 t7

#STFn7 Source

data STFn7 :: Type -> Type -> Type -> Type -> Type -> Type -> Type -> Region -> Type -> Typedata STFn7 t0 t1 t2 t3 t4 t5 t6 t7 t8

#STFn8 Source

data STFn8 :: Type -> Type -> Type -> Type -> Type -> Type -> Type -> Type -> Region -> Type -> Typedata STFn8 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9

#STFn9 Source

data STFn9 :: Type -> Type -> Type -> Type -> Type -> Type -> Type -> Type -> Type -> Region -> Type -> Typedata STFn9 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10

#STFn10 Source

data STFn10 :: Type -> Type -> Type -> Type -> Type -> Type -> Type -> Type -> Type -> Type -> Region -> Type -> Typedata STFn10 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11

#mkSTFn1 Source

mkSTFn1 :: forall a t r. (a -> ST t r) -> STFn1 a t r

#mkSTFn2 Source

mkSTFn2 :: forall a b t r. (a -> b -> ST t r) -> STFn2 a b t r

#mkSTFn3 Source

mkSTFn3 :: forall a b c t r. (a -> b -> c -> ST t r) -> STFn3 a b c t r

#mkSTFn4 Source

mkSTFn4 :: forall a b c d t r. (a -> b -> c -> d -> ST t r) -> STFn4 a b c d t r

#mkSTFn5 Source

mkSTFn5 :: forall a b c d e t r. (a -> b -> c -> d -> e -> ST t r) -> STFn5 a b c d e t r

#mkSTFn6 Source

mkSTFn6 :: forall a b c d e f t r. (a -> b -> c -> d -> e -> f -> ST t r) -> STFn6 a b c d e f t r

#mkSTFn7 Source

mkSTFn7 :: forall a b c d e f g t r. (a -> b -> c -> d -> e -> f -> g -> ST t r) -> STFn7 a b c d e f g t r

#mkSTFn8 Source

mkSTFn8 :: forall a b c d e f g h t r. (a -> b -> c -> d -> e -> f -> g -> h -> ST t r) -> STFn8 a b c d e f g h t r

#mkSTFn9 Source

mkSTFn9 :: forall a b c d e f g h i t r. (a -> b -> c -> d -> e -> f -> g -> h -> i -> ST t r) -> STFn9 a b c d e f g h i t r

#mkSTFn10 Source

mkSTFn10 :: forall a b c d e f g h i j t r. (a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> ST t r) -> STFn10 a b c d e f g h i j t r

#runSTFn1 Source

runSTFn1 :: forall a t r. STFn1 a t r -> a -> ST t r

#runSTFn2 Source

runSTFn2 :: forall a b t r. STFn2 a b t r -> a -> b -> ST t r

#runSTFn3 Source

runSTFn3 :: forall a b c t r. STFn3 a b c t r -> a -> b -> c -> ST t r

#runSTFn4 Source

runSTFn4 :: forall a b c d t r. STFn4 a b c d t r -> a -> b -> c -> d -> ST t r

#runSTFn5 Source

runSTFn5 :: forall a b c d e t r. STFn5 a b c d e t r -> a -> b -> c -> d -> e -> ST t r

#runSTFn6 Source

runSTFn6 :: forall a b c d e f t r. STFn6 a b c d e f t r -> a -> b -> c -> d -> e -> f -> ST t r

#runSTFn7 Source

runSTFn7 :: forall a b c d e f g t r. STFn7 a b c d e f g t r -> a -> b -> c -> d -> e -> f -> g -> ST t r

#runSTFn8 Source

runSTFn8 :: forall a b c d e f g h t r. STFn8 a b c d e f g h t r -> a -> b -> c -> d -> e -> f -> g -> h -> ST t r

#runSTFn9 Source

runSTFn9 :: forall a b c d e f g h i t r. STFn9 a b c d e f g h i t r -> a -> b -> c -> d -> e -> f -> g -> h -> i -> ST t r

#runSTFn10 Source

runSTFn10 :: forall a b c d e f g h i j t r. STFn10 a b c d e f g h i j t r -> a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> ST t r