к
Size: a a a
к
AN
data X a
= (a ~ String) => A Int
| (a ~ Int) => B String
к
к
data X a
= (a ~ String) => A Int
| (a ~ Int) => B String
к
JS
AN
data Expr a
= (a ~ Int) => LitInt Int
| (a ~ Bool) => LitBool Bool
| (a ~ Int) => Plus (Expr Int) (Expr Int)
| (a ~ Bool) => And (Expr Bool) (Expr Bool)
| (a ~ a) => If (Expr Bool) (Expr a) (Expr a)
| (a ~ Bool) => Eq (Expr a) (Expr a) (Expr Bool)
к
к
data Expr a
= (a ~ Int) => LitInt Int
| (a ~ Bool) => LitBool Bool
| (a ~ Int) => Plus (Expr Int) (Expr Int)
| (a ~ Bool) => And (Expr Bool) (Expr Bool)
| (a ~ a) => If (Expr Bool) (Expr a) (Expr a)
| (a ~ Bool) => Eq (Expr a) (Expr a) (Expr Bool)
| If (Expr Bool) (Expr a) (Expr a)
JS
к
JS
JS
к
JS
data Eizer a b where
LeftInt :: Eizer Int b
RightString :: Eizer a String
f :: Eizer Int b -> Int
f LeftInt = 0
a.hs:9:1-13: warning: [-Wincomplete-patterns]
Pattern match(es) are non-exhaustive
In an equation for ‘f’: Patterns not matched: RightString
|
9 | f LeftInt = 0
| ^^^^^^^^^^^^^
к
JS
JS
JS
к