ffunctor (empty) → 1.0.0
raw patch · 3 files changed
+75/−0 lines, 3 filesdep +base
Dependencies added: base
Files
- LICENSE +31/−0
- ffunctor.cabal +33/−0
- library/Data/FFunctor.hs +11/−0
+ LICENSE view
@@ -0,0 +1,31 @@+FFunctor++Copyright 2019, Sam Halliday+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++- Redistributions of source code must retain the above copyright notice,+this list of conditions and the following disclaimer.+ +- Redistributions in binary form must reproduce the above copyright notice,+this list of conditions and the following disclaimer in the documentation+and/or other materials provided with the distribution.+ +- Neither name of the University nor the names of its contributors may be+used to endorse or promote products derived from this software without+specific prior written permission. ++THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF+GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE+UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH+DAMAGE.
+ ffunctor.cabal view
@@ -0,0 +1,33 @@+cabal-version: 2.2+name: ffunctor+version: 1.0.0+synopsis: FFunctor typeclass+license: BSD-3-Clause+license-file: LICENSE+author: Sam Halliday+maintainer: Sam Halliday+copyright: 2019 Sam Halliday+bug-reports: https://gitlab.com/fommil/fommil/merge_requests+tested-with: GHC ^>= 8.4.4 || ^>= 8.6.3+category: Constraints+description:+ Micro library with a Higher kinded Functor in the spirit of HFunctor,+ MFunctor and MonadTrans.+ .+ Useful to map over the type parameter in a record of+ functions, e.g. https://www.benjamin.pizza/posts/2017-12-15-functor-functors.html++source-repository head+ type: git+ location: https://gitlab.com/fommil/ffunctor+ +common deps+ build-depends: , base ^>= 4.11.1.0 || ^>= 4.12.0.0+ ghc-options: -Wall+ -Werror=missing-home-modules+ default-language: Haskell2010++library+ import: deps+ hs-source-dirs: library+ exposed-modules: Data.FFunctor
+ library/Data/FFunctor.hs view
@@ -0,0 +1,11 @@+{-# LANGUAGE ExplicitForAll #-}+{-# LANGUAGE KindSignatures #-}++-- | Functor of Functors+module Data.FFunctor where++class FFunctor (f :: (* -> *) -> *) where+--ffmap :: (Functor m, Functor n) => (m ~> n) -> f m -> f n+ ffmap :: forall m n a . (Functor m, Functor n) => (m a -> n a) -> f m -> f n++-- TODO is there anything from stdlib that could have an instance?