[Haskell-beginners] Monad instances and type synonyms

Christopher Howard christopher.howard at frigidcode.com
Sun Apr 14 03:03:57 CEST 2013


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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 555 bytes
Desc: OpenPGP digital signature
URL: <http://www.haskell.org/pipermail/beginners/attachments/20130413/56ba5159/attachment.pgp>


More information about the Beginners mailing list