{-# LANGUAGE GADTs #-}
module Data.Pass.Prep
  ( Prep(..)
  ) where

import Data.Pass.Thrist

infixr 5 `prep`

class Prep t where
  prep :: k a b -> t k b c -> t k a c

instance Prep Thrist where
  prep x Nil       = x :- Nil
  prep x (y :- ys) = y :- prep x ys