On Tue, Jul 02, 2013 at 03:03:08PM +0200, Vlatko Basic wrote:
> Is there a nicer way to extract the 'IO String' from 'IOS',
> without 'case' or without pattern matching the whole 'P'?
> 
> newtype IOS = IOS (IO String)
> data P = P {
>   getA :: String,
>   getB :: String,
>   getC :: IOS
>   } deriving (Show, Eq)
> 
> 
> getC_IO :: P -> IO String
> getC_IO p =
>   case getC p of
>     IOS a -> a
> getC_IO (P _ _ (IOS a)) = a

How about

    unIOS :: IOS -> IO String
    unIOS (IOS a) = a

    getC_IO :: P -> IO String
    getC_IO = unIOS . getC

Tom

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to