-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
On page 9, you define Vec thus:
data Vec (a :: *) (n :: Nat) where
VNil :: Vec a Zero
VCons :: a -> Vec a n -> Vec a (Suc n)
infixr 5 ‘VCons‘
Then, on page 13, you proceed to discussing Applicative instance and lament that:
... we cannot make
Vecan actual instance of theApplicativeclass: [t]he parameters ofVecare in the wrong order for that.
— But it was you who had chosen the order. It is not explained why this choice of order of arguments is still preferred, despite being adverse to the instantiation of usual classes.
I think it would be beneficial to either add some reasoning to this design choice, or defer the reader elsewhere.
Metadata
Metadata
Assignees
Labels
No labels