{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE Trustworthy #-}
{-# OPTIONS_GHC -Wno-orphans #-}

{-|
Module:      Control.Transformation.RULES
Copyright:   (C) 2015 The University of Kansas
License:     BSD-style (see the file LICENSE)
Maintainer:  Andy Gill
Stability:   Experimental

= GHC RULE for Natural Transformation


@
  RULES "natural free theorem" [~]
     forall h (r :: (Functor f, Functor g, Transformation f g t) => t) .
       fmap h . (r \#) = (r #) . fmap h
@

-}
module Control.Natural.RULES () where

import Control.Natural

{-# RULES "natural free theorem" [~]
     forall h (r :: (Functor f, Functor g, Transformation f g t) => t) .
       fmap h . (r #) = (r #) . fmap h
  #-}