[Haskell-cafe] Fwd: [Haskell-beginners] Monad instances and type synonyms

Daniil Frumin difrumin at gmail.com
Sun Apr 14 13:11:42 CEST 2013


Oh, I see that I'm late to the party, sorry, wasn't able to push my mail for some time 
—

On Sun, Apr 14, 2013 at 3:09 PM, Daniil Frumin <difrumin at gmail.com> wrote:

> Maybe you can try "curried" definition:
> type Adjustment = (->) SaleVariables
> I had a similar problem awhile ago.
> Hth
>> On Sun, Apr 14, 2013 at 9:11 AM, Christopher Howard <christopher.howard at frigidcode.com="mailto:christopher.howard at frigidcode.com">> wrote:
> I asked this question in Haskell-beginners, but I haven't heard anything 
> yet, so I'm forwarding to Cafe. 
> -------- Original Message -------- 
> Subject: [Haskell-beginners] Monad instances and type synonyms 
> Date: Sat, 13 Apr 2013 17:03:57 -0800 
> From: Christopher Howard <christopher.howard at frigidcode.com> 
> Reply-To: The Haskell-Beginners Mailing List - Discussion of primarily 
> beginner-level topics related to Haskell <beginners at haskell.org> 
> To: Haskell Beginners <beginners at haskell.org> 
> I am playing around with some trivial code (for learning purposes) I 
> wanted to take 
> code: 
> -------- 
> -- SaleVariables a concrete type defined early 
> -- `Adjustment' represents adjustment in a price calculation 
> -- Allows functions of type (a -> Adjustment a) to be composed 
> -- with an appropriate composition function 
> type Adjustment a = SaleVariables -> a 
> -------- 
> And put it into 
> code: 
> -------- 
> instance Monad Adjustment where 
>  (>>=) = ... 
>  return = ... 
> -------- 
> If I try this, I get 
> code: 
> -------- 
> Type synonym `Adjustment' should have 1 argument, but has been given none 
> In the instance declaration for `Monad Adjustment' 
> -------- 
> But if I give an argument, then it doesn't compile either (it becomes a 
> "*" kind). And I didn't want to make the type with a regular "data" 
> declaration either, because then I have to give it a constructor, which 
> doesn't fit with what I want the type to do. 
> -- 
> frigidcode.com 
> <Attached Message Part>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20130414/e5c15e56/attachment.htm>


More information about the Haskell-Cafe mailing list