summaryrefslogtreecommitdiff
path: root/testsuite/tests/indexed-types/should_fail/T8227.hs
blob: 97e8ef5855ec7ae6ae4e467a834dab0fa07aeb51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{-# LANGUAGE TypeFamilies #-}
module T8227
  ( 
    absoluteToParam
  ) where

import T8227a

type family Scalar a :: *
type instance Scalar (a -> v) = a -> Scalar v

arcLengthToParam :: Scalar (V p) -> p -> Scalar (V p) -> Scalar (V p)
arcLengthToParam = undefined

absoluteToParam :: Scalar (V a) -> a -> Scalar (V a)
absoluteToParam eps seg = arcLengthToParam eps eps

{-

Scalar (V a) ~ Scalar (V p0)
Scalar (V a) ~ p0
Scalar (V a) ~ Scalar (V p0) -> Scalar (V p0)

--->
Scalar (V a)  ~ fuv0
Scalar (V p0) ~ fuv1
fuv0 ~ fuv1
fuv0 ~ p0
fuv0 ~ fuv1 -> fuv1

---> p0 := fuv0

Scalar (V a)    ~ fuv0    (CFunEqCan)
Scalar (V fuv0) ~ fuv1    (CFunEqCan)
fuv0 ~ fuv1
p0 ~ fuv0
fuv0 ~ fuv1 -> fuv1


-}