haskell - Getting datakind recognised in GADT -


I'm not sure how I really look at my design, but to my GADT to see that the Mt must be in the MarketType , because of the reason for MarketIndex ?

I think the current type of investigation is going on mt :: * hence MarketIndex mt fails, instead we have a MarketIndex mt requires bulid, so it should restrict mt :: MarketType .

  {- # LANGUAGE Datacunds # -} {- # Language Type Females # -} Modules Market.TypesDK Where Data MarketType = WinDrawWin | Asian Handicrafts Derivative (Show) Type Family Market Index (Mount :: MarketType) :: Type Type MarketIndex WinDrawWin = () Type Example MarketIndex AsianHDAP = Double Data Market :: MarketType - & gt; * Where instances :: MT - & gt; Market Index MT - & gt; Market Mt  

The error I get is:

  [1 of 1] Consolidating the market. Type DK (Type DK.hs, Explanation) Type DK.hs: 32: 33: The first argument of 'Market Index' should be 'MarketType', but 'MT' type '*' type 'Market index MT' in the Data Constructor Failed to declare data for 'instant' market in the definition, loaded modules: None  

Maybe I have a syntax wrong or maybe I'm asking too much?

Your GADT syntax is fine, but only type of type * And since mt is used as a field, it gets kindened by * by typing notation, whatever you are trying to do, This is a measure of that AA is the so-called singleton type that maps your custom type type to the value level.

  Data SMarketType mt where SWinDrawWin :: SMarketType WinDrawWin SAsianHandicap :: SMKet Type Asian Exception Data Markets :: MarketType - & gt; * Example: SMarketType mt - & gt; Market Index MT - & gt; Market MT  

Comments

Popular posts from this blog

winforms - C# Form - Property Change -

javascript - amcharts makechart not working -

java - Algorithm negotiation fail SSH in Jenkins -