From 93f29997a90474b740f624729029acf184906b35 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 2 Sep 2012 02:07:15 -0400 Subject: [PATCH] reduce some boilerplate using ghc extensions --- Assistant/WebApp/Types.hs | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/Assistant/WebApp/Types.hs b/Assistant/WebApp/Types.hs index 988f909d74..26b73af9d2 100644 --- a/Assistant/WebApp/Types.hs +++ b/Assistant/WebApp/Types.hs @@ -5,7 +5,9 @@ - Licensed under the GNU GPL version 3 or higher. -} -{-# LANGUAGE TypeFamilies, QuasiQuotes, MultiParamTypeClasses, TemplateHaskell, OverloadedStrings, RankNTypes #-} +{-# LANGUAGE FlexibleInstances, UndecidableInstances #-} +{-# LANGUAGE TypeFamilies, QuasiQuotes, MultiParamTypeClasses #-} +{-# LANGUAGE TemplateHaskell, OverloadedStrings, RankNTypes #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module Assistant.WebApp.Types where @@ -77,19 +79,7 @@ data SshData = SshData } deriving (Read, Show, Eq) -instance PathPiece SshData where - toPathPiece = pack . show - fromPathPiece = readish . unpack - - -instance PathPiece NotificationId where - toPathPiece = pack . show - fromPathPiece = readish . unpack - -instance PathPiece AlertId where - toPathPiece = pack . show - fromPathPiece = readish . unpack - -instance PathPiece Transfer where +{- Allow any serializable data type to be used as a PathPiece -} +instance (Show a, Read a) => PathPiece a where toPathPiece = pack . show fromPathPiece = readish . unpack