diff --git a/Data/Array/Parallel/Base/Closure.hs b/Data/Array/Parallel/Base/Closure.hs new file mode 100644 index 0000000000000000000000000000000000000000..e08bdbb974de6065eb3cc420db89a28c7a9ba65a --- /dev/null +++ b/Data/Array/Parallel/Base/Closure.hs @@ -0,0 +1,15 @@ +module Data.Array.Parallel.Base.Closure ( + (:->)(..), closure, ($:) +) where + +infixr 0 :-> +infixr 0 $: + +data a :-> b = forall e. Clo !(e -> a -> b) e + +closure :: (e -> a -> b) -> e -> (a :-> b) +closure = Clo + +($:) :: (a :-> b) -> a -> b +Clo f e $: x = f e x + diff --git a/ndp.cabal b/ndp.cabal index 71f498cb646d78f846cde1bf6f2bbb7bf95e7ef0..9f0fb647fc6c9eeab52a0789485775a9e1e0a0d7 100644 --- a/ndp.cabal +++ b/ndp.cabal @@ -12,6 +12,7 @@ exposed-modules: Data.Array.Parallel.Unlifted Data.Array.Parallel.Unlifted.Distributed Data.Array.Parallel.Unlifted.Parallel + Data.Array.Parallel.Base.Closure other-modules: Data.Array.Parallel.Base.Config Data.Array.Parallel.Base.Debug diff --git a/package.conf.in b/package.conf.in index a2aafd4ee10835eea7d6a559aca0cd76d0bd2594..6e4f27c8785af1fb8d4be38a74c76548e44714d6 100644 --- a/package.conf.in +++ b/package.conf.in @@ -5,10 +5,11 @@ maintainer: ndp@cse.unsw.edu.au exposed: True exposed-modules: - Data.Array.Parallel, - Data.Array.Parallel.Unlifted, + Data.Array.Parallel + Data.Array.Parallel.Unlifted Data.Array.Parallel.Unlifted.Distributed Data.Array.Parallel.Unlifted.Parallel + Data.Array.Parallel.Base.Closure hidden-modules: Data.Array.Parallel.Base.Config