[Haskell-cafe] Fwd: [Haskell-beginners] Monad instances and type synonyms
Daniil Frumin
difrumin at gmail.com
Sun Apr 14 13:09:40 CEST 2013
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/c8b845dc/attachment.htm>
More information about the Haskell-Cafe
mailing list