[Haskell-cafe] "Casting" newtype to base type?
Vlatko Basic
vlatko.basic at gmail.com
Tue Jul 2 15:31:07 CEST 2013
-------- Original Message --------
Subject: Re: [Haskell-cafe] "Casting" newtype to base type?
From: Tom Ellis <tom-lists-haskell-cafe-2013 at jaguarpaw.co.uk>
To: haskell-cafe at haskell.org
Date: 02.07.2013 15:25
> 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
>
Thanks for your answer.
I had those two funcs, but thought there might be a shorter/prettier one-func
one-liner. :-)
> Tom
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
More information about the Haskell-Cafe
mailing list