module BishBosh.Property.ExtendedPositionDescription(
ReadsEPD(..),
ShowsEPD(..),
showsNullField,
showsSeparator,
readEPD,
showEPD
) where
class ReadsEPD a where
readsEPD :: ReadS a
class ShowsEPD a where
showsEPD :: a -> ShowS
readEPD :: ReadsEPD a => String -> a
readEPD :: String -> a
readEPD String
s = case ReadS a
forall a. ReadsEPD a => ReadS a
readsEPD String
s of
[(a
a, String
_)] -> a
a
[(a, String)]
_ -> String -> a
forall a. HasCallStack => String -> a
error (String -> a) -> (String -> String) -> String -> a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> String -> String
showString String
"BishBosh.Property.ExtendedPositionDescription.readEPD:\tfailed to parse " (String -> a) -> String -> a
forall a b. (a -> b) -> a -> b
$ String -> String -> String
forall a. Show a => a -> String -> String
shows String
s String
"."
showEPD :: ShowsEPD a => a -> String
showEPD :: a -> String
showEPD a
a = a -> String -> String
forall a. ShowsEPD a => a -> String -> String
showsEPD a
a String
""
showsNullField :: ShowS
showsNullField :: String -> String
showsNullField = Char -> String -> String
showChar Char
'-'
showsSeparator :: ShowS
showsSeparator :: String -> String
showsSeparator = Char -> String -> String
showChar Char
' '