foundation-0.0.1: Foundation/Convertible.hs
-- |
-- Module : Foundation.Convertible
-- License : BSD-style
-- Maintainer : Vincent Hanquez <vincent@snarc.org>
-- Stability : experimental
-- Portability : portable
--
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FlexibleInstances #-}
module Foundation.Convertible
( Convertible(..)
) where
import Foundation.Internal.Base
import Foundation.Internal.Proxy
-- | Class of things that can be converted from a to b
class Convertible a b where
type Convert a b
convert :: Proxy b -> a -> Convert a b
instance Convertible a a where
type Convert a a = a
convert _ = id