diff options
author | Ben Sima <ben@bsima.me> | 2020-03-17 18:32:14 -0700 |
---|---|---|
committer | Ben Sima <ben@bsima.me> | 2020-03-17 18:34:56 -0700 |
commit | e77e424fdbbc7b541a5542883f3d3559f9535340 (patch) | |
tree | 52af539b98a4bfcc334c188db22ef0cf73d9cf8b | |
parent | 70e534303c5cdc37ccc86d631573be6bb265857c (diff) |
Add double fmap, switch "say" to Text, and autoformat
-rw-r--r-- | Com/Simatime/Alpha.hs | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/Com/Simatime/Alpha.hs b/Com/Simatime/Alpha.hs index 438b97a..16d21e3 100644 --- a/Com/Simatime/Alpha.hs +++ b/Com/Simatime/Alpha.hs @@ -1,24 +1,33 @@ {-# LANGUAGE NoImplicitPrelude #-} -- | Commonly useful functions, a Prelude replacement. -module Com.Simatime.Alpha ( +module Com.Simatime.Alpha + ( -- * Re-export Protolude - module X + module X -- * General functions , (/@) + , (/@@) -- * Debugging tools , say -- * TODO: remove this , Prelude.read - ) where + ) +where +import Data.Text ( Text ) import qualified Prelude -import Protolude as X -import Data.String +import Protolude as X +import Data.String -- | Debugging printf -say :: String -> IO () +say :: Text -> IO () say msg = putStrLn msg --- | Alias for map, fmap, <$> +-- | Alias for map, fmap, <$>. Inspired by Mathematica. (/@) :: Functor f => (a -> b) -> f a -> f b (/@) = fmap + +-- | Double fmap. +-- (/@@) :: (Functor f1, Functor f2) => f1 (a -> b) -> f1 (f2 a) -> f1 (f2 b) +(/@@) :: (Functor f0, Functor f1) => (a -> b) -> f0 (f1 a) -> f0 (f1 b) +(/@@) = fmap . fmap |