[Haskell-cafe] Layer on a layer of record syntax in the type synonym?
Ivan Lazar Miljenovic
ivan.miljenovic at gmail.com
Fri Dec 21 14:42:44 CET 2012
On 22 December 2012 00:36, Christopher Howard
<christopher.howard at frigidcode.com> wrote:
> Using a simple type I gave earlier from my monadic type question...
>
> code:
> --------
> data Socket3 a b c = Socket3 a b c
> deriving (Show)
> --------
>
> Is it possible somehow to layer on record syntax onto a synonym of the type?
>
> The idea would be something like this...
>
> code:
> --------
> type SpaceShip =
> Socket3 { engine :: Last Engine
> , hull :: Last Hull
> , guns :: [Guns]
> }
> --------
>
> ...purely for the convenience. But this doesn't seem to work with "type"
> as it assumes you are referring to already made constructors, and
> evidently "newtype" only allows use of a single record. I could wrap it
> in a normal "data" declaration but that would add an extra layer of
> complexity I think.
No, you can't suddenly add records in just for a type alias. You
might be able to create lenses though for setters/getters, though if
you just want getters you can just write them yourself.
>
> --
> frigidcode.com
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
--
Ivan Lazar Miljenovic
Ivan.Miljenovic at gmail.com
http://IvanMiljenovic.wordpress.com
More information about the Haskell-Cafe
mailing list